2007-10-07 Andreia Gaita <avidigal@novell.com>
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2007-10-07  Andreia Gaita <avidigal@novell.com>
2
3         * HtmlDocument.cs, HtmlElement.cs, WebBrowser.cs: Added dom support
4         * WebBrowserBase.cs: Added dialog support, calling the
5           WebBrowserDialogs classes for each specific dialog type.
6
7 2007-10-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8
9         * ListView.cs: When the last item is focused and is removed,
10         move the focus to the previous item (in Items order). This is what MS
11         does.
12         Fixes #330415.
13
14 2007-10-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15
16         * ListView.cs: In ListViewItemCollection, make Remove call RemoveAt,
17         instead of the opposite (RemoveAt call Remove). This is a better
18         approach since we don't need to to a pair of traversals when using
19         RemoveAt.
20
21 2006-10-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
22
23         * TreeView.cs: When Keys.Left is pressed, before trying to Collapse
24         check that the node actually has nodes, and if not, move to the
25         parent node instead. 
26         Fixes #325265.
27
28 2006-10-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
29
30         * TreeView.cs: Move the previous change to the general case (to
31         call Application.DoEvents in cases where the method was called by
32         different places).
33
34 2007_10-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
35
36         * TreeView.cs: When calling EndEdit and we need to hide the textbox,
37         call Application.DoEvents. This is neccessary when we get a call to
38         BeginEdit from an AfterLabelEdit handler, because the focus always
39         goes to the TreeView, even if we try to give it to our
40         LabelEditTextBox. The call do Application.DoEvents seems to
41         synchronize the focus, basically.
42         Fixes #325244.
43
44 2007-10-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
45
46         * TreeView.cs: When AfterLabelEdit event is fired, TreeNode.IsEditing
47         should be false. This also removes some nasty recursive paths. Fixes
48         part of #325244.
49
50 2007-10-04  Everaldo Canuto  <ecanuto@novell.com>
51
52         * MdiClient.cs: When cascade (layout) mdi window that is maximized, set the
53         state to normal. Also resize window when cascading. Fixes #325433. 
54
55 2007-10-04  Jonathan Pobst  <monkey@jpobst.com>
56
57         * RichTextBox.cs: When SelectionColor is set to Color.Empty, use
58         DefaultForeColor, as drawing empty colored lines isn't very useful.
59         [Fixes the not drawn lines part of bug #324358]
60
61 2007-10-04  Jonathan Pobst  <monkey@jpobst.com>
62
63         * TextControl.cs: Move Line and LineTag classes into separate files to
64         make things easier to find.
65         * Line.cs, LineTag.cs: Bring coding standards up to Mono's guidelines.
66         * RichTextBox.cs: Capitalize LineTag.Length property access.
67         - This is purely an organizational/formatting change, no logic changed. -
68
69 2007-10-03  Everaldo Canuto  <ecanuto@novell.com>
70
71         * ThemeWin32Classic.cs: Do not show focus rectangle in radio buttons when
72         text is empty.
73
74 2007-10-03  Everaldo Canuto  <ecanuto@novell.com>
75
76         * ThemeWin32Classic.cs: Do not show focus rectangle in checkboxes when
77         text is empty.
78
79 2007-10-03  Everaldo Canuto  <ecanuto@novell.com>
80
81         * ComboBox.cs: On contructor use backgound_color instead of BackColor to
82         prevent calling of OnBackColorChanged. Fixes #325321.
83
84 2007-10-03  Everaldo Canuto  <ecanuto@novell.com>
85
86         * TextBox.cs: When check enabled uses Enabled property instead of is_enabled
87         because control can be disabled because owner is disabled.
88
89 2007-10-02  Jonathan Pobst  <monkey@jpobst.com>
90
91         * ComboBox.cs: For the 1.1 profile, the default SelectedText is
92         string.Empty, test failed from previous change.
93
94 2007-10-02  Jonathan Pobst  <monkey@jpobst.com>
95
96         * TextBoxBase.cs: For the 1.1 profile, the default SelectedText
97         is null, not String.Empty.  See bug #323038.
98
99 2007-10-01  Jonathan Pobst  <monkey@jpobst.com>
100
101         * TextControl.cs: Change the margins to match MS a little better.
102         Still not perfect for X11 due to some DrawString differences, but
103         is still an improvement over the old stuff.
104         Partially fixes #324467.
105
106 2007-09-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
107
108         * FolderBrowserDialog.cs: When using MyComputer as 
109         RootFolder, let absolute paths be considered as valid ones. Also, use
110         Path.DirectorySeparatorChar instead of Path.AltDirectorySeparatorChar,
111         for Windows compatibility.
112         Partially fixes #325247.
113
114 2007-09-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
115
116         * FolderBrowserDialog.cs: Fix the recursive FindPathInNodes method.
117         Also remove the stack.Count > 0 check in FBTreeView.SetSelectedNode
118         method, since it causes the dialog to not select folders directly
119         under the root path (when setting SelectedPath property).
120
121 2007-09-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
122
123         * TreeNode.cs: When calling Expand/Collapse and need to call 
124         ExpandBelow/CollapseBelow respectively, take into account
125         partially visible nodes (previously Expanding/Collapsing
126         a partially visible node in the bottom was not updating its +- sign).
127
128 2007-09-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
129
130         * TreeView.cs: When calling Expand on a TreeNode, and we need to
131         expand nodes below (ExpandBelow), scroll the entire Viewport
132         area if the node is above it and not visible (instead of scrolling
133         the area from node's Bottom, which applies only when the node is
134         visible).
135         Fixes #325266.
136
137 2007-09-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
138
139         * TreeView.cs: When calling ExpandAll, set SelectedNode to the top
140         node in the bottom area (as .Net does). This is done to preserve the
141         scroll position when ExpandAll is called before handle is created for
142         the 1.1 profile (bottom area, as opposed to top area in 2.0).
143         Fixes #324103.
144
145 2007-09-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
146
147         * TreeView.cs: When calling ExpandAll, don't move the scroll to the 
148         bottom area if we are in fact not using the vertical scroll bar.
149         Fixes #324824.
150
151 2007-09-27  Jonathan Pobst  <monkey@jpobst.com>
152
153         * Control.cs: Comment out a double buffering optimization that doesn't
154         take into account invalidates created in OnPaint, causing the control
155         to never be redrawn.  It would take quite a bit of work to work around
156         this, but I left it commented with an explanation for later possible
157         optimization.
158         [Fixes bug #328681]
159
160 2007-09-27  Jonathan Pobst  <monkey@jpobst.com>
161
162         * Control.cs: Ask parent to perform a layout if control is AutoSize and
163         the text changes.
164         * RadioButton.cs: Implement GetPreferredSizeCore.
165         [Fixes bug #328672]
166
167 2007-09-26  Jonathan Pobst  <monkey@jpobst.com>
168
169         * RichTextBox.cs, TextBoxBase.cs, WindowsFormsSynchronizationContext.cs:
170         corcompare stuffs.
171
172 2007-09-26  Jonathan Pobst  <monkey@jpobst.com>
173
174         * Application.cs: Move the sync context stuff to Run instead of RunLoop
175         so that it doesn't get uninstalled on modal forms.
176         * Control.cs: Install a sync context when a control is created.
177         * WindowsFormsSyncronizationContext.cs: Create a private static control
178         to invoke on.  This is easier than trying to find a created control we
179         can use.
180         [Fixes bug #327608]
181
182 2007-09-25  Jonathan Pobst  <monkey@jpobst.com>
183
184         * Application.cs: Install a WindowsFormsSynchronizationContext in the
185         run loop, and uninstall it when done.
186         * WindowsFormsSynchronizationContext.cs: Implement.
187         [Fixes the common case in bug #327608]
188
189 2007-09-23  Gert Driesen  <drieseng@users.sourceforge.net>
190
191         * DataGridViewCellCollection.cs: Added argument checks for indexers.
192         Use case-insensitive lookup of column name in indexer. Code
193         formatting.
194
195 2007-09-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
196
197         * TreeNode.cs: When collapsing or expanding a node, check whether its
198         change will affect the visible area (we were previously doing a
199         IsVisible check, but that check is not enough since children nodes
200         could be still visible). Fixes part of #325266.
201
202 2007-09-21  Jonathan Pobst  <monkey@jpobst.com>
203
204         * TreeView.cs: Always select the first node when the TreeView gets
205         focus if there is no currently selected node.
206         [Fixes bug #324279]
207
208 2007-09-21  Jonathan Pobst  <monkey@jpobst.com>
209
210         * TreeView.cs: Do not raise BeforeSelect or AfterSelect when the
211         node being selected is null.
212         [Patch from Yves Bastide fixes bug #326858]
213
214 2007-09-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
215
216         * TreeNode.cs: Add an internal ArePreviousNodesExpanded, to know
217         whether all the parent nodes are expanded.
218         * TreeNodeCollection.cs: When adding a new node an calling SetupNode,
219         call RecalculateVisibleOrder if all previous nodes are expanded.
220         Before that we were doing a IsVisible check, but sometimes the node
221         is not in the visible area, but _should_already be ready, because of
222         all previous nodes are expanded. Fixes #325259.
223
224 2007-09-20  Jonathan Pobst  <monkey@jpobst.com>
225
226         * ToolStripSplitButton.cs: Call the ButtonClick event if the button
227         portion of the item is clicked.
228
229 2007-09-20  Jonathan Pobst  <monkey@jpobst.com>
230
231         * TextControl.cs: Do not tell the system to move the cursor if the
232         textbox isn't focused.  Fixes part of bug #322668.
233
234 2007-09-20  Jonathan Pobst  <monkey@jpobst.com>
235
236         * ComboBox.cs: When there are no items, do not show the dropdown if
237         the down arrow is clicked.  Fixes part of bug #322668.
238
239 2007-09-20  Jonathan Pobst  <monkey@jpobst.com>
240
241         * ToolStripComboBox.cs: Manually set the size of this control in the
242         constructor, as it doesn't seem to be the same as DefaultSize.
243         Fixes a failing monobuild test.
244
245 2007-09-19  Jonathan Pobst  <monkey@jpobst.com>
246
247         * DateTimePicker.cs: If the user sets MinDate to DateTime.MinValue,
248         change it to DateTimePicker.MinDateTime.  [Fixes bug #326609]
249
250 2007-09-19  Jonathan Pobst  <monkey@jpobst.com>
251
252         * Theme.cs: FileDialogs should be using DesktopDirectory instead of
253         Desktop.  This lets it work for people who have moved their desktops
254         from the default location on windows.  For people who have not, both
255         values are the same, so it shouldn't hurt anything.  [Fixes bug #325270]
256
257 2007-09-18  Jonathan Pobst  <monkey@jpobst.com>
258
259         * ToolStripControlHostTest.cs: DefaultSize is based off hosted control,
260         but when the base constructor sets this, the control is null.  Set it
261         again in the constructor.  Fixes a failing monobuild test.
262
263 2007-09-18  Jonathan Pobst  <monkey@jpobst.com>
264
265         * ToolStripDropDownItem.cs: Make sure Click and DropDownOpened events
266         get called.
267         * ToolStripSplitButton.cs: Make sure MouseDown and MouseUp events get
268         called.
269
270 2007-09-18  Jonathan Pobst  <monkey@jpobst.com>
271
272         * ToolStrip.cs: Don't show tooltips for ToolStripTextBoxes, they
273         will handle it themselves.
274         * ToolStripItem.cs: When deciding what the text of a tooltip should
275         be, use the Text property instead of the text field.
276         * ToolStripTextBox.cs: Handle tooltips.
277         [Fixes bugs #325417 and #325973]
278
279 2007-09-18  Jonathan Pobst  <monkey@jpobst.com>
280
281         * ToolStripDropDownButton.cs: Only drop down overflow menu with a
282         left click.  Fixes the easy part of bug #325969.
283
284 2007-09-18  Jonathan Pobst  <monkey@jpobst.com>
285
286         * ToolStrip.cs: Set AutoSizeMode back to GrowAndShrink to refix
287         bug #325406, but set a minimum for StatusStrip to 22 to keep
288         bug #325390 fixed.  I think this minimum would have been figured
289         up automatically if the grip was actually a ToolStripItem, but it
290         currently is not.
291
292 2007-09-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
293
294         * ListView.cs: max_label_wrapping is now 30 pixels instead of 38,
295         as this is apparently the actual value used by .Net. Also apply
296         ItemPadding in Details view only, and decrease the general width padding,
297         to have only the needed. This should fix #324340 in Windows too.
298
299 2007-09-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
300
301         * ListViewItem.cs: Don't Invalidate item if parent is inside
302         a BeginUpdate/EndUpdate block. This prevents to have differences
303         between the ListView and items state, as well as avoid some exceptions
304         there.
305         * ListView.cs: Make 'updating' field internal.
306
307 2007-09-17  Jonathan Pobst  <monkey@jpobst.com>
308
309         * ToolStripControlHost.cs: Realign control when ControlAlign changes.
310         * ToolStripItem.cs: Use ImageScalingSize when calculating preferred
311         size if appropriate.
312         Fixes reopened bug #325414.
313
314 2007-09-17  Jonathan Pobst  <monkey@jpobst.com>
315
316         * ToolStrip.cs: Set AutoSizeMode back to GrowOnly.
317         * ToolStripItem.cs: Invalidate before and after our new autosize when
318         text changes.
319         Fixes reopened bug #325390.
320
321 2007-09-17  Jonathan Pobst  <monkey@jpobst.com>
322
323         * ToolStripMenuItem.cs: Make sure we invalidate when clicked so
324         mnemonics can be drawn or undrawn correctly.  Fixes reopened bug 
325         #325044.
326
327 2007-09-17  Jonathan Pobst  <monkey@jpobst.com>
328
329         * Control.cs: Do WM_CONTEXTMENU before OnMouseUp.  [Fixes bug #325535]
330
331 2007-09-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
332
333         * ColumnHeader.cs: When drawing column text, use EllipsisCharacter
334         instead of EllipsisWord (by equistango at gmail.com). Fixes part of
335         #82734.
336
337 2007-09-14  Jonathan Pobst  <monkey@jpobst.com>
338
339         * ToolStrip.cs: Make ToolStrip selectable when TabStop = true.  Find an
340         item to select when the ToolStrip is selected.
341         * ToolStripControlHost: Realign the control when the bounds or visibility
342         change.
343         * ToolStripItem.cs: When selected, if it's a control host, focus the control.
344         * ToolStripOverflow.cs: When laying out the drop down, respect the item's
345         preferred height.
346         * ToolStripTextBox.cs: OnPaintInternal should call base.OnPaintInternal, not
347         base.OnPaint.  Was causing text not to be drawn.
348
349 2007-09-14  Jonathan Pobst  <monkey@jpobst.com>
350
351         * SplitterPanel.cs: Ignore attempts to set AutoSizeMode.
352
353 2007-09-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
354
355         * TreeView.cs: When creating the label edit text box,
356         set is initially to Visible = false. This is done to
357         prevent a confusion in the layout which makes it to lose
358         focus when shown the first time. Fixes part of #82592.
359
360 2007-09-13 Andreia Gaita <avidigal@novell.com>
361
362         * WebBrowserBase.cs: add FocusOption enumeration for finer focus control
363
364 2007-09-13  Jonathan Pobst  <monkey@jpobst.com>
365
366         * ToolStrip.cs: Take Margin into account when calculating preferred
367         size.  Also, allow preferred size to get smaller than the explicit
368         size.
369         * ToolStripTextBox.cs: Don't change the GetPreferredSize implementation.
370         First step towards fixing bug #82747.
371
372 2007-09-13  Jonathan Pobst  <monkey@jpobst.com>
373
374         * TreeView.cs: Applied patch from latency@gmx.de to not paint the
375         full row select background over the plus/minus glyph.  Also, turn
376         off the focus rectangle for full row select since MS doesn't seem
377         to ever paint it.  [Fixes bug #81839]
378
379 2007-09-13  Jonathan Pobst  <monkey@jpobst.com>
380
381         * ToolStrip.cs: Don't FocusInternal if there is no selected item.
382         This was causing keyboard opened dropdowns to lose focus.
383         [Fixes bug #82803]
384
385 2007-09-13  Jonathan Pobst  <monkey@jpobst.com>
386
387         * Control.cs: If Rectangle.Empty is passed to Invalidate, use
388         ClientRectangle instead.  [Fixes bug #82838]
389
390 2007-09-13  Jonathan Pobst  <monkey@jpobst.com>
391
392         * SplitContainer.cs: We can't reset Visible on every layout because
393         someone may have set Visible = false explicitly on a SplitterPanel.
394         Make sure when we switch orientation the SplitterDistance does not
395         change.  Fixes two failing tests.
396
397 2007-09-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
398
399         * TreeView.cs: Use MeasureTextInternal instead of MeasureText in
400         TextRenderer, since the latter is only available in 2.0.
401
402 2007-09-13  Ivan N. Zlatev <contact@i-nz.net>
403
404         * Cursor.cs: Fix Cursor.Current to apply Cursor.Default.
405         * SplitContainer.cs: Implement FixedPanel layouting.
406
407 2007-09-12  Andreia Gaita  <avidigal@novell.com>
408
409         * WebBrowserBase.cs: setup shutdown routine
410
411 2007-09-12  Andreia Gaita  <avidigal@novell.com>
412
413         * Application.cs: Let keyboard events that are targetted 
414                 to non-mwf windows hosted inside mwf (as in, webbrowser),
415                 propagate properly. Fixes keyboard handling on the webbrowser.
416
417 2007-09-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
418
419         * ListView.cs: When handling MouseUp event and we are 
420         highligting a node with the mouse right button, don't trigger
421         Before/AfterSelecting event, since we are not actually selecting
422         the node.
423
424 2007-09-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
425
426         * TreeView.cs: When editing a node, modify the edit text box
427         depending on the text length (as you are typing), like MS does.
428
429 2007-09-12  Jonathan Pobst  <monkey@jpobst.com>
430
431         * ToolStrip.cs: Fixup preferred size calculations for vertical toolbars. 
432         Override GetPreferredSizeCore to perform calculations.  Remove custom
433         autosize logic.  [Fixes bug #82739]
434
435 2007-09-12  Jonathan Pobst  <monkey@jpobst.com>
436
437         * TextBoxBase.cs: Modified should default to false.
438
439 2007-09-11  Jonathan Pobst  <monkey@jpobst.com>
440
441         * Control.cs: Update the anchoring distances even when layout is supspended.
442         Patch provided by George fixes bug #82805.
443
444 2007-09-11  Jonathan Pobst  <monkey@jpobst.com>
445
446         * Control.cs: Provide a setter for ExplicitHeight.
447         * TextBoxBase.cs: Now that we have the implementation for explicit heights,
448         remove the hacks in here for requested_height.
449         [Fixes bug #82749]
450
451 2007-09-11  Jonathan Pobst  <monkey@jpobst.com>
452
453         * ScrollBar.cs: Fix an issue reported on the lists where setting a scrollbar's
454         Maximum to lower that its current Value caused an ArgumentException by setting
455         the Value to the new Maximum.
456
457 2007-09-11  Jonathan Pobst  <monkey@jpobst.com>
458
459         * ThemeWin32Classic.cs: Math is hard!  Fix some math so that the TrackBar
460         handle moves to the closest tick when it is being dragged.
461         [Fixes bug #82751]
462
463 2007-09-11  Jonathan Pobst  <monkey@jpobst.com>
464
465         * ToolStripManager.cs: When we have added MDI buttons onto a MenuStrip, we
466         can't let them count as real items when calculating where to merge in the
467         user's items.  [Fixed bug #82786]
468
469 2007-09-10  Jonathan Pobst  <monkey@jpobst.com>
470
471         * ToolStripMenuItem.cs: Add a parent type check so we don't crash on people
472         who want to add a menu item directly onto a toolstrip.
473         [Fixes bug #82775, part II]
474
475 2007-09-10  Jonathan Pobst  <monkey@jpobst.com>
476
477         * StatusStrip.cs: Synchronize SetDisplayedItems with the ToolStrip version.
478         * ToolStrip.cs: If a ToolStripItem set to not visible is added to a ToolStrip,
479         don't set it to available.
480         * ToolStripItem.cs: When Visible is changed, tell the owner to perform a layout.
481         [Fixes bug #82727, part II]
482
483 2007-09-10  Jonathan Pobst  <monkey@jpobst.com>
484
485         * StatusStrip.cs: Change item placement to None if not visible.
486         * ToolStripItem.cs: Invalidate when InternalVisible changes.
487         These should have been committed to fix 82723, but I missed them.
488
489 2007-09-10  Jonathan Pobst  <monkey@jpobst.com>
490
491         * ToolStrip.cs: Make sure ItemClicked is raised before the ToolStripItem's
492         Click, and that it is only called once.
493         * ToolStripMenuItem.cs: Call OnClick even when there are dropdown items.
494         * ToolStripDropDownItem.cs: Override HandleItemClick so dropdowns stay
495         dropped down.
496         [Fixes bug #82775]
497
498 2007-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
499
500         * ColumnHeaderSample.cs: Use 5 pixels as extra height instead of 8
501         to match .Net.
502         * ThemeWin32Classic.cs: For the columns text, use 5 pixels as left padding
503         instead of 8, just like above. Partially fixes #82734.
504
505 2007-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
506
507         Patch by Ernesto Carrea <equistango at gmail.com>. Partially 
508         fixes #82734.
509
510         * ListView.cs: Remove extra space between rows in Details view (match
511         .Net). 
512         * ThemeWin32Classic.cs: Header text should use ListView.Font, not
513         the DefaultFont.
514
515 2007-09-08  Gert Driesen  <drieseng@users.sourceforge.net>
516
517         * Application.cs: Modified ProductVersion to return value of
518         AssemblyInformationVersion if available, and fallback to assembly
519         version. Fixes bug #82746. Code formatting.
520         * BindingSource.cs: Remove NIE from Dispose, and mark it MonoTODO
521         instead.
522
523 2007-09-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
524
525         * Control.cs: When updating ZOrder for a child control,
526         take into account the implicit ones (we need it in our controls
527         using them). Fixes #82642.
528
529 2007-09-07  Jonathan Pobst  <monkey@jpobst.com>
530
531         * ToolStripItem.cs: Add support for animated images.
532         [Fixes bug #82726]
533
534 2007-09-07  Jonathan Pobst  <monkey@jpobst.com>
535
536         * ToolStrip.cs: Make sure we aren't drawing anything that isn't 
537         visible.  [Fixes bug #82727]
538
539 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
540
541         * ToolStripItem.cs: If AutoSize changes the size of our item, invalidate
542         so we repaint using the new size.  [Fixes bug #82723]
543
544 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
545
546         * TreeView.cs: If ShowLines is true, we should ignore the FullRowSelect
547         option.  [Fixes bug #81779]
548
549 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
550
551         * TreeView.cs: Override HandleClick because the StandardClick style is
552         set to false.  According to MSDN (and testing), the click events should
553         only be raised when the click occurs on a TreeNode.  [Fixes bug #81739]
554
555 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
556
557         * ToolStripTextBox.cs: Invalidate our textbox when it loses focus, so
558         the border will disappear.  Fixes reopened #82653.
559
560 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
561
562         * Control.cs: If the control is autosize, and its preferred size changes
563         when it lays out its children, tell its parent so it can be re-layed out.
564         Fixing some of the fallout from r85433.
565
566 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
567
568         * ThemeWin32Classic.cs: Fix a NRE caused by r85427 because RadioButton
569         and CheckBox share some code.
570
571 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
572
573         * TrackBar.cs: Only call OnScroll if we actually changed the Value of
574         the TrackBar, not every mouse move.  [Fixed bug #82718]
575
576 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
577
578         * ThemeWin32Classic.cs: Allow a CheckBox to be rendered like a Button
579         under 2.0 rendering.  [Fixes bug #82657]
580
581 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
582
583         * TreeView.cs: If we found a TreeNode to display a context menu, but
584         it doesn't have one to show, let the TreeView display its menu
585         instead.  [Fixes bug #82680]
586
587 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
588
589         * ToolStripTextBox.cs: TextBox no longer call OnPaint, we need to use
590         OnPaintInternal instead.  Give the internal TextBox a Border property
591         so it can draw itself more correctly.  [Fixes bug #82653]
592
593 2007-09-06  Zoltan Varga  <vargaz@gmail.com>
594
595         * HtmlHistory.cs HtmlWindow.cs HtmlWindowCollection.cs ListBindingHelper.cs WindowsFormsSection.cs WindowsFormsSynchronizationContext.cs: Stubs for missing 2.0 classes.
596
597 2007-09-05  Everaldo Canuto  <everaldo@simios.org>
598
599         * ComboBox.cs: Adjust combobox button state to reflect current state when
600         back to enabled = true. Fixes first issue of #82654.
601
602 2007-09-05  Everaldo Canuto  <everaldo@simios.org>
603
604         * Control.cs: Fix last patch regression, prevent forms to update zorder when
605         setting visible property.
606
607 2007-09-05  Everaldo Canuto  <everaldo@simios.org>
608
609         * Control.cs: Update zorder after control creation in SetVisibleCore, it 
610         fix zorder for controls initially created as non visible. Fixes #82667.
611
612 2007-09-04  Everaldo Canuto  <everaldo@simios.org>
613
614         * ThemeWin32Classic.cs: Adjust checkbox light color to ControlLightLight to
615         mimic win32 look. Fixes #82656.
616
617 2007-09-01  Zoltan Varga  <vargaz@gmail.com>
618
619         * FileDialogCustomPlace.cs FileDialogCustomPlacesCollection.cs: 
620         Stubs for new net 3.5 classes.
621
622 2007-08-31  Carlos Alberto Cortez <calberto.cortez@gmail.com>
623
624         * ListViewItem.cs: In ListViewItemCollection operations calculate
625         Layout for owner as well as invalidate it. Fixes part of #82642.
626
627 2007-08-31  Jonathan Pobst  <monkey@jpobst.com>
628
629         * ToolStripItem.cs: Take Parent/Owner's Enabled state in to account
630         when returning Enabled.  [Fixes bug #82651]
631
632 2007-08-30  Everaldo Canuto  <everaldo@simios.org>
633
634         * ToolBar.cs: Fix button size for non flat toolbars. Fixes #82368.
635
636 2007-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
637
638         * ListView.cs: Put item padding info in a single place
639         (Theme.ListViewItemPaddingWidth) to have working AutoResize on
640         columns again.
641         * ThemeWin32Classic.cs:
642         * Theme.cs: Likewise.
643
644 2007-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
645
646         * ListView.cs: When a ListViewSubItem instance is invalidated,
647         invoke Invalidate on parent ListViewItem, not parent ListView.
648         Fixes #81570.
649
650 2007-08-30  Jonathan Pobst  <monkey@jpobst.com>
651
652         * ListView.cs, ListViewItem.cs: corcompare stuffs.
653
654 2007-08-30  Jonathan Pobst  <monkey@jpobst.com>
655
656         * BindingMemberInfo.cs: Implement == and != operators.
657
658 2007-08-30  Jonathan Pobst  <monkey@jpobst.com>
659
660         * HtmlElementEventArgs.cs: Implement properties.
661
662 2007-08-29  Jonathan Pobst  <monkey@jpobst.com>
663
664         * HtmlElementErrorEventArgs.cs, HtmlElementErrorEventHandler.cs: Added.
665
666 2007-08-29  Jonathan Pobst  <monkey@jpobst.com>
667
668         * TabControl.cs: I was looking into the MonoTODO on TabPageCollection.
669         Add (string,string,string) to implement the imagekey.  It turns out, we
670         use the requested imagekey whereas .Net does not.  So I broke ours to match
671         theirs.  :(
672
673 2007-08-29  Jonathan Pobst  <monkey@jpobst.com>
674
675         * Form.cs, UserControl.cs: Override ValidateChildren, AutoValidate.
676
677 2007-08-29  Jonathan Pobst  <monkey@jpobst.com>
678
679         * ContainerControl.cs: Implement ValidateChildren and new Validate overload.
680
681 2007-08-29  Gert Driesen  <drieseng@users.sourceforge.net>
682
683         * FolderBrowserDialog.cs: Set Tag of newly created node, and keep it
684         up-to-date. Fixes bug #82618.
685
686 2007-08-29  Everaldo Canuto  <everaldo@simios.org>
687
688         * TextBoxBase.cs: Call CalculateDocument after changes Lines property to
689         reflect document changes. Fixes #82367.
690
691 2007-08-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
692
693         * ListView.cs: Add/fix some override differences between 1.1 and 2.0,
694         as well as add new ones. This should make work the BackgroundImage
695         property for ListView again.
696
697 2007-08-28  Jonathan Pobst  <monkey@jpobst.com>
698
699         * DataGrid.cs, DataGridViewButtonColumn.cs, DataGridViewCheckBoxColumn.cs,
700         DataGridViewComboBoxColumn.cs, DataGridViewImageColumn.cs, DataGridViewLinkColumn.cs,
701         DataGridViewTextBoxColumn.cs, ToolTip.cs: corcompare stuffs.
702
703 2007-08-28  Jonathan Pobst  <monkey@jpobst.com>
704
705         * Control.cs, XPlatUI.cs, XPlatUIDriver.cs, XPlatUIWin32.cs: Implement
706         IsKeyLocked.
707
708 2007-08-28  Jonathan Pobst  <monkey@jpobst.com>
709
710         * Cursor.cs: Add HotSpot, hook into XPlatUI.GetCursorInfo.
711         * XPlatUIWin32.cs: Implement hotspot lookup in GetCursorInfo.
712
713 2007-08-28  Jonathan Pobst  <monkey@jpobst.com>
714
715         * RadioButton.cs: Use 2.0 rendering.  Use base implementation of TextAlign.
716         * Theme.cs, ThemeWin32Classic.cs: Implement 2.0 rendering for RadioButton.
717
718 2007-08-27  Ivan N. Zlatev  <contact@i-nz.net>
719
720         * CursorConverter.cs: Implement conversion to InstanceDescriptor.
721
722 2007-08-27  Ivan N. Zlatev  <contact@i-nz.net>
723
724         * GridEntry.cs: Implement GetService.
725
726 2007-08-27  Jonathan Pobst  <monkey@jpobst.com>
727
728         * LabelEditTextBox.cs, TreeView.cs: After hiding the textbox used
729         for label editting, make sure we focus back on the TreeView.
730         [Fixes bug #82590]
731
732 2007-08-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
733
734         * ListView.cs: Add some 2.0 overrides.
735
736 2007-08-27  Everaldo Canuto  <ecanuto@novell.com>
737
738         * Form.cs: Uses opacity var instead of Opacity property in CreateHandle
739         because getter dont returns right value before handle creation. Thanks 
740         to George. Fixes #82569.  
741
742 2007-08-27  Everaldo Canuto  <ecanuto@novell.com>
743
744         * Theme.cs: Revert last patch, it causes error under win32. 
745
746 2007-08-27  Everaldo Canuto  <ecanuto@novell.com>
747
748         * Theme.cs: Uses Environment.SpecialFolder.DesktopDirectory instead of 
749         Environment.SpecialFolder.Desktop in Places method, Desktop returns the 
750         logical Desktop rather than the physical file system location. Fixes #82603. 
751
752 2007-08-26  Everaldo Canuto  <ecanuto@novell.com>
753
754         * MessageBox.cs: Add clipboard copy (ctrl+c) to messagebox. Thanks Andy Hume
755         for the patch. Fixes #82568.
756
757 2007-08-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
758
759         * ListView.cs: Add a pair of missing 2.0 ListViewItemCollection.Insert
760         methods.
761
762 2007-08-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
763
764         * ListViewInsertionMark.cs: New stubbed class.
765
766 2007-08-25  Gert Driesen  <drieseng@users.sourceforge.net>
767
768         * FolderBrowserDialog.cs: When adding folder, immediately create the
769         directory with temporary name and rename the directory when editing
770         finishes. This matches MS. Ensure the node for the new folder is 
771         selected and LabelEdit is disabled, when editing is either finished
772         or cancelled.
773
774 2007-08-25  Gert Driesen  <drieseng@users.sourceforge.net>
775
776         * TreeView.cs: When editing label of node, ensure node is visible.
777
778 2007-08-25  Ivan N. Zlatev  <contact@i-nz.net>
779
780         * PropertyGridView.cs: Set the value only if it has changed.
781
782 2007-08-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
783
784         * ListView.cs: Some more code refactoring to add support sorting
785         with groups (now for Details view). Remove unused code also.
786
787 2007-08-24  Jonathan Pobst  <monkey@jpobst.com>
788
789         * NodeLabelEditEventArgs.cs: EndEdit immediately when CancelEdit is called.
790         Not a big fan of reacting immediately to a field in an EventArg, but that's
791         the way it's done.  (This is part of the previous commit that got left out.)
792
793 2007-08-25  Gert Driesen  <drieseng@users.sourceforge.net>
794
795         * FolderBrowserDialog.cs: Removed need for separate description field.
796         Replaced "" with string.Empty. Fixed tabindex. Ensure OK button
797         has focus when dialog box is displayed again, regardless of what
798         button was pressed the previous time. Set RootFolder and SelectedPath
799         each time dialog box is displayed. This ensures the treeview is
800         refreshed, and fixes bug #82579. Do no hide selected node in TreeView
801         when it does not have focus. Added support for more special folders.
802
803 2007-08-24  Jonathan Pobst  <monkey@jpobst.com>
804
805         * TreeView.cs: Create a CancelEdit method.  Clone the edit_args in EndEdit
806         before calling AfterLabelEdit.  If the user calls BeginEdit in that event,
807         it resets the edit_args.
808         * TreeNode.cs: Call CancelEdit if the user passes cancel = true to EndEdit.
809         [Fixes bug #82577]
810
811 2007-08-24  Gert Driesen  <drieseng@users.sourceforge.net>
812
813         * FolderBrowserDialog.cs: Modifies form caption and text of new folder
814         button to match MS. Provide more meaningful exception message for
815         invalid RootFolder value. Use zero-length string when SelectedPath
816         is set to null. Allow non-rooted paths in SelectedPath, but ignore
817         them in FolderBrowserTreeView. Allow folders to be created in
818         RootFolder. Fixes bug #82576.
819
820 2007-08-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
821
822         * ListView.cs: Correctly compute the layout_ht (height) when using groups,
823         since we need to take into account the group headers and the margin
824         between them.
825         * ListViewGroup.cs: Add a rows field to store the number of rows per
826         group.
827
828 2007-08-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
829
830         * DateTimePicker.cs: The MS' MTB has a really stupid year formatting.
831           Anyways, let's just follow the lead.
832
833 2007-08-24  Jonathan Pobst  <monkey@jpobst.com>
834
835         * CheckBox.cs: Set the AutoSizeMode to GrowAndShrink.
836         * Form.cs, GroupBox.cs: Don't skip Right or Bottom anchored 
837         controls in GetPreferredSizeCore.
838         * ThemeWin32Classic.cs: Tweak text drawing of CheckBoxes.
839         [Fixes bug #82488]
840
841 2007-08-24  Jonathan Pobst  <monkey@jpobst.com>
842
843         * PrintDialog.cs: Need to instantiate the form variable here too.
844
845 2007-08-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
846
847         * ListView.cs: Do some reorganization to support sorting in groups,
848         by doing the layout sequentially in ListView.Items. Also add support
849         for the Default Group, which should be available for items with no
850         group assigned.
851         * ListViewGroup.cs: Add support for DefaultGroup. Include new members
852         for storing layout info also.
853         * ListViewGroupCollection.cs: Add a DefaultGroup as part of the
854         collection, as well as providing internal members to do a traversal
855         including the default group (needed when doing layout/drawing).
856         * ThemeWin32Classic.cs: When drawing group headers use internal
857         ListViewGroupCollection members to take into account the default
858         group.
859
860 2007-08-23  George Giolfan  <georgegiolfan@yahoo.com>
861
862         * FlowLayoutPanel.cs: Add GetPreferredSizeCore.  [Fixes bug #82537]
863
864 2007-08-23  Jonathan Pobst  <monkey@jpobst.com>
865
866         * TreeView.cs: IsInputKey: don't ask for any keys if the handle hasn't
867         been created.  If handle is created, we want arror keys.  If we are editing
868         a node, we want things like enter, esc, home, end, page up, page down.
869         Allows Esc to work for FolderBrowserDialog.
870
871 2007-08-23  Jonathan Pobst  <monkey@jpobst.com>
872
873         * ColorDialog.cs, FontDialog.cs: Set the form's CancelButton so that
874         they close when ESC is pressed.  Thanks Andy!
875
876 2007-08-23  Jonathan Pobst  <monkey@jpobst.com>
877
878         * CommonDialog.cs: Do not instantiate form, leave that for derived classes.
879         This way we can tell if this is a CommonDialog provided with mono, or one
880         that is being implemented outside by a developer.  If it is an external one,
881         the developer is responsible for showing their own form.  We were showing
882         our blank form after the developer showed his.
883         * ColorDialog.cs, FileDialog.cs, FolderBrowserDialog.cs, FontDialog.cs,
884         PageSetupDialog.cs: Instantiate form variable in our constructor.
885         [Fixes bug #82531]
886
887 2007-08-23  Jonathan Pobst  <monkey@jpobst.com>
888
889         * ListBox.cs, ListView.cs, TreeView.cs: Override IsInputCharInternal
890         and always return true.  [Fixes bug #81616]
891
892 2007-08-23  Jonathan Pobst  <monkey@jpobst.com>
893
894         * TextBoxBase.cs: Allow 2.0 AutoSize to change the height of the
895         TextBox.  [Fixes bug #82549]
896
897 2007-08-23  Gert Driesen  <drieseng@users.sourceforge.net>
898
899         * FileDialog.cs: When Save/Open is clicked and no filename is selected
900         or entered then do not close the dialog. Fixes bug #82539. Removed
901         CWLs.
902
903 2007-08-22  Everaldo Canuto  <ecanuto@novell.com>
904
905         * FileDialog.cs: Create UpdateRecentFiles and move the recent files refresh
906         code to this method. It is calling every time filter changes. This method
907         will help to fix the bug #80887.
908
909 2007-08-22  Jonathan Pobst  <monkey@jpobst.com>
910
911         * CheckBox.cs: Implement AutoSize calculation.
912
913 2007-08-22  Jonathan Pobst  <monkey@jpobst.com>
914
915         * CheckBox.cs: Use new 2.0 rendering for 2.0.
916         * Theme.cs: Method declarations for 2.0 rendering path.
917         * ThemeWin32Classic.cs: 2.0 rendering implementation for CheckBox.
918
919 2007-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
920
921         * ListViewGroupCollection.cs: Fix a typo of the previous patch.
922
923 2007-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
924
925         * ListViewGroupCollection.cs: Implement AddRange the right way, to
926         only call Redraw on the parent one time.
927
928 2007-08-21  Rolf Bjarne Kvinge <RKvinge@novell.com> 
929
930         * DataGridViewRowHeaderCell.cs, DataGridViewColumnHeaderCell.cs: Implemented
931           GetClipboardContent.
932         * DataGridViewCell.cs: Implemented GetClipboardContent,
933           GetEditedFormattedValue, GetFormattedValue.
934         * DataGridView.cs: Implemented GetClipboardContent, TopLeftHeaderCell.
935
936 2007-08-21  Jonathan Pobst  <monkey@jpobst.com>
937
938         * TableLayoutStyleCollection.cs: corcompare fix.
939
940 2007-08-21  Rolf Bjarne Kvinge <RKvinge@novell.com> 
941
942         * DataObject.cs: Implemented retrieval of convertible / not convertible
943           objects.
944
945 2007-08-21  Jonathan Pobst  <monkey@jpobst.com>
946
947         * ToolStripItem.cs: When changing the item's text, invalidate before we resize
948         ourselves.  This ensures the entire old bounds are repainted, in case our new
949         size is smaller.  [Fixes bug #82518]
950
951 2007-08-20  Everaldo Canuto  <ecanuto@novell.com>
952
953         * XplatUIX11.cs: Apply patch from #81588, it makes use of PointerMotionHintMask
954         flag to make fast handle of mouse events, without this the mouse move is
955         handled in some manner, whether it is a mouse move or not. Fixes #81588.
956
957 2007-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
958
959         * ListView.cs: When doing layout calculations don't use a ref
960         param to keep the current item; instead use its Index value (this 
961         is specially important when doing the layout with Groups
962         and Items being sparse). Also don't take into account items added to
963         the Group but not yet added to the main ListView.Items collection.
964
965 2007-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
966
967         * ListViewGroupCollection.cs: Forgot to mimic an issue
968         in the indexer (don't assign the ListView owner for new values).
969
970 2007-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
971
972         * ListViewGroupCollection.cs: Make the string indexer use
973         the int based indexer to re-use code, instead of duplicate the code.
974         Also Redraw as needed and take into account null values.
975
976 2007-08-20  Jonathan Pobst  <monkey@jpobst.com>
977
978         * StatusStrip.cs: Make sure the item's parent gets set in SetDisplayedItems.
979         [Fixes bug #82481]
980
981 2007-08-20  Jonathan Pobst  <monkey@jpobst.com>
982
983         * ToolStrip.cs: Add some logic to un-focus controls in ToolStripControlHosts
984         when other buttons are clicked or navigated to.
985
986 2007-08-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
987
988         * XplatUIX11.cs: Treat toolwindows as if they had no window manager, since
989           it's XplatUIX11 that attaches them.
990
991 2007-08-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
992
993         * DataGridView.cs: If a column has been added, recreate the editing row.
994           Fixes #82226.
995
996 2007-08-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
997
998         * TextControl.cs: Use Math.Max instead of Math.Min when deciding the length
999           of the tag to draw. Makes disappearing text show up again.
1000
1001 2007-08-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1002
1003         * StatusBar.cs: Take into account any icons when a panel has AutoSize =
1004           Contents. Fixes #82487.
1005
1006 2007-08-19  Andreia Gaita  <avidigal@novell.com>
1007
1008         * Added HtmlElement.cs, HtmlElementCollection.cs, 
1009           HtmlElementEventArgs.cs, HtmlElementEventHandler.cs
1010           
1011 2007-08-19  Andreia Gaita  <avidigal@novell.com>
1012
1013         * BindingSource.cs: Implement this, dispose and getenumerator.
1014         * DataGridViewRowCollection.cs: Move the InvalidOperationException
1015         out of AddInternal, throw it only on public Add calls. The 
1016         UsingWebBrowser sample was blowing up with this when setting the
1017         DataSource after adding DataBindings, so it's likely that .net
1018         only throws this exception when Add is called directly. 
1019         
1020         * ToolStripControlHost.cs: Return the hosted control's text
1021         property, and not the ToolStripItem one (it would always return
1022         the initial value).
1023         
1024         * HtmlDocument.cs: Implement GetElementById and All
1025         * WebBrowser.cs: Remove exception on set_DocumentStream.        
1026
1027 2007-08-19  Everaldo Canuto  <ecanuto@novell.com>
1028
1029         * Form.cs: Fix the max and min value for opacity (0~1).
1030
1031 2007-08-19  Everaldo Canuto  <ecanuto@novell.com>
1032
1033         [Fixes #80118]
1034         * DataGridTableStyle.cs: Default header font is now null, on getter it 
1035         returns datagrid font when is null. On setter permits null.
1036
1037         * DataGrid.cs:
1038         - When ResetHeaderFont set header font to null.
1039         - On EndInit set grid_style.DataGrid.
1040
1041 2007-08-19  Everaldo Canuto  <ecanuto@novell.com>
1042
1043         * TabControl.cs: Fix regression in default padding x.
1044
1045 2007-08-19  Everaldo Canuto  <ecanuto@novell.com>
1046
1047         * TabControl.cs: Fix tab page text area removing padding. Fixes #82471.
1048
1049 2007-08-19  Everaldo Canuto  <ecanuto@novell.com>
1050
1051         * TabControl.cs: Fix first tab drawing, when selected it must have x = 0
1052         not 2. Fixes #82229.
1053
1054 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
1055
1056         * TabControl.cs: Fix tab size when image height is less than text height.
1057         Partially fixes #81837.
1058
1059 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
1060
1061         * Form.cs: Add WS_EX_CONTROLPARENT to forms to make it selectable using 
1062         "alt + tab". It works only for Win32, for X11 theres no way to remove window
1063         from taskbar and keep it on "alt_tab". Fixes #81722.
1064
1065 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
1066
1067         * XplatUIX11.cs: Apply patch from Jurek Bartuszek to fix DrawReversibleFrame
1068         and DrawReversibleLine, also apply same behavior to FillReversibleRectangle. 
1069         Fixes #80877 and #79418.
1070
1071 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
1072
1073         * MenuAPI.cs: Fix popup menu position when the size is larger than distance 
1074         between position and one of the screen borders. Fixes #82349.
1075
1076 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
1077
1078         * MessageBox.cs: When there is no form that invoked the MessageBox, shows
1079         the MessageBox in the taskbar. Fixes #82457.
1080
1081 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
1082
1083         * MessageBox.cs: Fix form size when icon is set and text height is bigger
1084         than icon. Fixes #82468.
1085
1086 2007-08-18  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1087
1088         * ThemeWin32Classic.cs: A FixedToolWindow has border size 3.
1089         * InternalWindowManager.cs: Change HandleCalcSize to return a boolean value
1090           if handled or not. Implement WM_NCCALCSIZE for WParam == 0 as well.
1091           Refactored HandleNCCalcSize somewhat to avoid code duplication.
1092         * Form.cs: Add is_clientsize_set, set in set_ClientSize, used by
1093           FormBorderStyle to decide if we're calculating a new size from the
1094           client size or not. CreateParams: Don't fake tool windows, only the X11
1095           backend manages toolwindows manually.
1096
1097 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
1098
1099         * Form.cs: Only reset is_visible if !IsDisposed to prevent an
1100         ObjectDisposedException.
1101
1102 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
1103
1104         * Form.cs: Reset is_visible back to true after OnLoad.  Setting this
1105         in OnLoad should not have any effect.  [Fixes bug #82470]
1106
1107 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
1108
1109         * ToolTip.cs: Add a hack to ToolTipWindow so it will still size and
1110         paint for controls that create their own ToolTipWindow instead of
1111         going through ToolTip.
1112
1113 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
1114
1115         * ToolTip.cs: Make Hide internal instead of public to match MS API.
1116
1117 2007-08-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1118
1119         * ListViewGroupCollection.cs: Use generic List instead of an
1120         ArrayList, since this collection is 2.0 only.
1121
1122 2007-08-17  Jeffrey Stedfast  <fejj@novell.com>
1123
1124         * ToolTip.cs (Hide): Made public to make the build work (should
1125         this not be public?).
1126
1127 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
1128
1129         * ToolBar.cs, ToolStrip.cs, TreeView.cs: Use a ToolTip instead of a
1130         ToolTipWindow.
1131         * ToolTip.cs: Add an internal Visible property to facilitate transition.
1132
1133 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
1134
1135         * DrawToolTipEventArgs.cs, DrawToolTipEventHandler.cs, PopupEventArgs.cs,
1136         PopupEventHandler.cs: Make these internal for 1.1.
1137         * ThemeClearlooks.cs, ThemeWin32Classic.cs: Use TextRenderer, and modify to not
1138         use ToolTipWindow internals.
1139         * ToolTip.cs: Add 2.0 modal Show methods.  Had to move a lot of stuff around to
1140         support this.  A lot of stuff in the ToolTipWindow got moved to the ToolTip.
1141
1142 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1143
1144         * X11Dnd.cs: Add a null check.
1145
1146 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1147
1148         * X11Dnd.cs: MwfWindow: Try to load the control directly from the handle if
1149           nothing else succeeds. Fixes #82453.
1150
1151 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1152
1153         * XplatUIWin32.cs: PaintEventStart: validate the entire source client
1154           rectangle if we're painting to another window than the one the paint
1155           message was generated on. Simplify the code somewhat, which makes
1156           PaintEventEnd also simpler.
1157
1158 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1159
1160         * Control.cs: When changing parent of a form, let the form decide whether
1161           XplatUI.SetParent should be called or not.
1162         * Form.cs: ChangingParent: only call XplatUI.SetParent if we're not
1163           recreating the handle. If the new parent's handle isn't created, don't
1164           recreate our handle, just destroy it. CreateParams: Check if the
1165           parent's handle is created before fetching it.
1166
1167 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1168
1169         * Control.cs, Form.cs, InternalWindowManager.cs, MainMenu.cs, MdiClient.cs:
1170           Update calls to PaintEventStart/End to take a Message argument.
1171         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Update PaintEventStart/End to
1172           take a Message argument.
1173         * XplatUIWin32.cs, XplatUIX11.cs: Update PaintEventStart/End to take a
1174           Message argument, and handle the case where we don't paint to the window
1175           for which the paint message was generated.
1176
1177 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1178
1179         * XplatUIWin32.cs: Don't call Win32GetLastError directly, use
1180           Marshal.GetLastWin32Error. Plug nasty memory leak in
1181           PaintEventStart/End, we were creating a DC we weren't releasing.
1182
1183 2007-08-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1184
1185         * ListView.cs: Add Groups support in Details view. Also have a small
1186         method to do the layout of the group header. Don't use a separate
1187         method to do the groups calculation in Icons view, since our methods
1188         are now a little simpler.
1189         * ListViewGroup.cs: Use the more accurate `HeaderBounds' name than
1190         `Bounds'.
1191         * ThemeWin32Classic.cs: Likewise.
1192
1193 2007-08-16  Jonathan Pobst  <monkey@jpobst.com>
1194
1195         * Application.cs: Add FilterMessage method and rework our message loop
1196         logic to use it.
1197
1198 2007-08-16  Jonathan Pobst  <monkey@jpobst.com>
1199
1200         * Application.cs: Add some methods and stub a few methods that are
1201         pretty much never used.
1202
1203 2007-08-15  Jonathan Pobst  <monkey@jpobst.com>
1204
1205         * TreeNode.cs: Add some serialization methods.
1206
1207 2007-08-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1208
1209         * ListView.cs: In ListViewItemCollection have a 
1210         'is_main_collection' field to not modify ListViewItem.ListView
1211         when using it as ListViewGroup.Items (and not ListView.Items)
1212         and also don't modify selection state (.Net behaviour). 
1213         Instead, set group for items contained in a ListViewGroup.Items collection.
1214         * ListViewItem.cs: Simplify some code in Group setter.
1215         * ListViewGroup.cs: use the new .ctor to pass the current instance
1216         to the ItemsCollection.
1217         * ListViewGroup.cs: Set the ListView property for ListViewGroup
1218         instances when adding/removing. Also make Remove use RemoveAt, which
1219         should perform better.
1220
1221 2007-08-14  Jonathan Pobst  <monkey@jpobst.com>
1222
1223         * Message.cs, TabControl.cs, TextBox.cs, TextBoxBase.cs: Hide some 2.0 API
1224         that crept into the 1.1 profile.
1225
1226 2007-08-14  Jonathan Pobst  <monkey@jpobst.com>
1227
1228         * ToolBarButton.cs: Implement ImageKey.
1229
1230 2007-08-14  Jonathan Pobst  <monkey@jpobst.com>
1231
1232         * ToolBar.cs: Implement ScaleControl/ScaleCore.
1233
1234 2007-08-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1235
1236         * PictureBox.cs: OnAnimateImage/UpdateAnimateImage: Check if handle is still
1237           created, it might have gotten destroyed since we last checked. Fixes
1238           #82405.
1239
1240 2007-08-11  Jonathan Pobst  <monkey@jpobst.com>
1241
1242         * ToolTip.cs: Remove mouse in control check from mouseleave handler so
1243         tooltip will hide when mouse is moved off the control.
1244         [Fixes bug #82407]
1245
1246 2007-08-11 Andreia Gaita <avidigal@novell.com>
1247
1248         * WebBrowserBase.cs, WebBrowser.cs: add implementation
1249         using Mono.Mozilla for loading and navigating webcontrol
1250         with xulrunner.
1251         The initial implementation was done on 
1252         /trunk/mozembed/tests/browser , and copied here.
1253
1254 2007-08-11  Gert Driesen  <drieseng@users.sourceforge.net>
1255
1256         * ThemeWin32Classic.cs: On 2.0 profile, use ForeColor and BackColor of
1257         ToolTipWindow for drawing the tooltip. Fixes bug #82408.
1258
1259 2007-08-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1260
1261         * DataGridView.cs: Add support for an editing row. Fixes #82226.
1262           RowTemplateFull: throw an exception if a column doesn't have a template.
1263         * DataGridViewRowCollection.cs: AddInternal: if there are any editing rows,
1264           add the row just before it.
1265         * DataGridViewTextBoxCell.cs: Don't paint cells which are in edit mode as
1266           selected.
1267         * DataGridViewSelectedRowCollection.cs: Don't return the editing row. Add a
1268           DataGridView field to be able to reach the grid's editing row.
1269
1270 2007-08-10  Jonathan Pobst  <monkey@jpobst.com>
1271
1272         * ToolTip.cs: If the control's handle hasn't been created when it has a
1273         tooltip set on it, don't check to see if we need to show the tooltip.  This
1274         check was causing the control's handle to be created.
1275         [Fixes bug #82399]
1276
1277 2007-08-10  Jonathan Pobst  <monkey@jpobst.com>
1278
1279         * TextBoxBase.cs: Fix SelectionLength when no text selected to match MS:
1280                                         1.1             2.0
1281         Handle Not Created      -1              0
1282         Handle Created          0               0
1283         [Fixes bug #82371]
1284
1285 2007-08-10  Jonathan Pobst  <monkey@jpobst.com>
1286
1287         * ToolTip.cs: Hide the tooltip if the control is clicked to match MS behavior.
1288         [Fixes bug #82348]
1289
1290 2007-08-09  Jonathan Pobst  <monkey@jpobst.com>
1291
1292         * DrawToolTipEventArgs.cs: Don't dispose a brush we got from the respool.
1293         * ToolTip.cs: Implement some properties and owner draw.
1294
1295 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1296
1297         * DataGridView.cs: OnPaint: don't set scrollbar visibility to false then
1298           show them again, since setting visibility causes a paint, causing an
1299           endless loop (instead use a temporary and set it all when it's known if
1300           they should be shown or not). Fixes #79265.
1301
1302 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1303
1304         * DataGridView.cs: Only do a full column/row selection if a header was
1305           clicked and we're in Column/RowHeader selection mode. If shift and ctrl
1306           isn't pressed, deselect everything before selecting something.
1307
1308 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1309
1310         * DataGridView.cs: Fix SelectedRows and SelectedColumns to match MS
1311           behaviour according to bug #81075 - they are returned in the order they
1312           are selected. Fix HitTest to check if the point is within any of the
1313           headers. Allow for row/column selection when in ColumnHeader or
1314           RowHeader selection mode. Add SetSelected[Column|Row]CoreInternal for
1315           the row and column to call when their selected state changes, and
1316           updated selected_[rows|columns] whenever SetSelected* is called.
1317         * DataGridViewBand.cs: Initialize isRow correctly. Call
1318           SetSelected[Row|Column]CoreInternal when the selected state changes, and
1319           add a SelectedInternal to avoid StackOverflows.
1320         * DataGridViewColumn.cs, DataGridViewRow.cs: If DGV is ReadOnly, we're also
1321           ReadOnly no matter what.
1322         * DataGridViewSelectedColumnCollection.cs,
1323           DataGridViewSelectedRowCollection.cs: Add an InternalAddRange that adds
1324           the items in reverse order (just as MS does...)
1325
1326 2007-08-09  Jonathan Pobst  <monkey@jpobst.com>
1327
1328         * Application.cs: Only release menustrips if Alt (MenuKey) is pressed by
1329         itself, not part of a mnemonic.  [Fixes bug #82378]
1330
1331 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1332
1333         * DataGridView.cs: BeginEdit: don't allow editing of readonly cells.
1334         * DataGridViewCell.cs: Implement ReadOnly better: the cell is ReadOnly if
1335           the DGV, the column, the row, or the cell itself is readonly.
1336
1337 2007-08-09  Gert Driesen  <drieseng@users.sourceforge.net>
1338
1339         * ThemeNice.cs: Use XplatUI.RunningOnUnix instead of checking
1340         OSVersion.Platform.
1341         * FileDialog.cs: Same.
1342         * TextRendered.cs: Same.
1343         * FolderBrowserDialog.cs: Same.
1344         * TextBoxBase.cs: Same.
1345         * Application.cs: Same.
1346         * Cursors.cs: Same.
1347         * ThemeClearLooks.cs: Same.
1348
1349 2007-08-09  Gert Driesen  <drieseng@users.sourceforge.net>
1350
1351         * XplatUI.cs: Added RunningOnUnix property to be used by controls
1352         instead of duplicating these checks everywhere.
1353         * FileDialog.cs: Use case-insensitive comparison for populating the
1354         DirComboBox when not running on unix. Fixes bug #82385.
1355         * OpenFileDialog.cs: to match MS, change label of DirComboBox to 
1356         "Look in".
1357
1358 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1359
1360         * DataGridView.cs: SelectedRows: we need to check if selectionMode is
1361           FullRowSelect (not FullColumnSelect). Fixes #81075. Implemented
1362           BeginEdit, EndEdit, SetSelected<Cell|Row|Column>Core. Implemented row,
1363           cell and column selection with ctrl and shift pressed. Call the correct
1364           BeginEdit/EndEdit whenever we start/end editing. Move painting code to
1365           the corresponding virtual method (PaintBackground to paint background,
1366           etc).
1367         * DataGridViewCell.cs: Implement Selected correctly, we're selected if
1368           either the column, row or the cell itself is selected.
1369         * DataGridViewRowCollection.cs: Use DGV.OnRowsAddedInternal instead of
1370           OnRowsAdded.
1371         * DataGridViewRow.cs: Moved some of the painting code from DataGridView
1372           here. When the row is selected, don't select all cells. Each cell now
1373           queries the row to see if the row is selected.
1374
1375 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1376
1377         * DataGridViewColumn.cs: Throw if the SortMode conflicts with DataGridView's
1378           SelectionMode.
1379
1380 2007-08-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1381
1382         * ListView.cs: In ListViewItemsCollection check that owner is
1383         not null before trying to access it (this happens quite often
1384         using Groups). Also don't duplicate calls by calling CollectionChanged
1385         method.
1386
1387 2007-08-08  Jonathan Pobst  <monkey@jpobst.com>
1388
1389         * ToolStrip.cs: Record if we were activated by mouse or keyboard.  Redraw
1390         when we are dismissed to clear keyboard mnemonics.
1391         * MenuStrip.cs, ToolStripDropDown.cs, ToolStripItem.cs, 
1392         ToolStripMenuItem.cs: Record if we were activated by mouse or keyboard.
1393         * ToolStripItemTextRenderEventArgs.cs: Draw mnemonic underlines if menu
1394         was activated by keyboard or the OS tells us to always draw them.
1395         * ToolStripManager.cs: Setup storage for activated by mouse or keyboard.
1396         [Fixes bugs #82376, #82377]
1397
1398 2007-08-08  Jonathan Pobst  <monkey@jpobst.com>
1399
1400         * Control.cs: If no one accepts a mnemonic, let the MenuStrip have a 
1401         shot at having it because Alt was pressed.
1402         * MenuStrip.cs: When handling Alt, don't select a SystemMenuItem, select
1403         the first real menu item.
1404         * ToolStrip.cs: Don't crash when looking for a ToolStripItem to handle
1405         a mnemonic if Text is null.
1406         [Fixes bug #82374]
1407
1408 2007-08-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1409
1410         * ListView.cs: In ListViewItemCollection.AddItem, don't do a linear
1411         search do check whether the item is already contained in the
1412         collection or not; instead check if the owner of the item is the same
1413         as ours. Also, remove a redundant check in the same method. 
1414
1415 2007-08-08  Jonathan Pobst  <monkey@jpobst.com>
1416
1417         * Control.cs: Allow the clip region to be set back to null.
1418         * XplatUIWin32.cs: If we are sent a null clip region, use IntPtr.Zero.
1419         [Fixes button still showing up in bug #82370 when Show Through is turned off]
1420
1421 2007-08-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1422
1423         * GridEntry.cs: Add a null check.
1424         * PropertyGrid.cs: When checking for existing grid entries, ignore category
1425           entries. Fixes #82297.
1426
1427 2007-08-07  Jonathan Pobst  <monkey@jpobst.com>
1428
1429         * OwnerDrawPropertyBag.cs: Make the serialization constructor protected
1430         for 2.0.
1431
1432 2007-08-07  Jonathan Pobst  <monkey@jpobst.com>
1433
1434         * ListBox.cs: Implement ScaleControl.
1435
1436 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1437
1438         * Form.cs: Add a few ActiveMenu null checks. ActiveMenu might be null if we
1439           have a menu strip.
1440         * MdiWindowManager.cs: Don't create a maximized menu if the child or it's
1441           parent has a menu strip. Fixes #81689.
1442
1443 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1444
1445         * ToolTip.cs: We don't get mouse events on all platforms in the exact same
1446           moments, so apply some fuzzy logic to determine if the mouse is still
1447           inside a control or not. Fixes #82288 (for the third time).
1448
1449 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1450
1451         * Control.cs: CreateControl: create implicit children as well. Fixes #82344.
1452           Don't create the child if it has been disposed already (may happen if
1453           the user closes the form the Load event).
1454
1455 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1456
1457         * ToolTip.cs: If ReshowDelay is 0, show the tooltip immediately. Fixes
1458           #82288.
1459
1460 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1461
1462         * Control.cs: Add a null check in OnParentBindingContextChanged. The parent
1463           might call us after we've been destroyed, in which case our own private
1464           parent field is null. Fixes #82326.
1465
1466 2007-08-06  Jonathan Pobst  <monkey@jpobst.com>
1467
1468         * ToolStripDropDown.cs: Fix a failing test on X11 by adding a null
1469         check for setting the dropdown's owner.
1470
1471 2007-08-06  Jonathan Pobst  <monkey@jpobst.com>
1472
1473         * MdiClient.cs: Fix some failing tests on X11 by adding a null check
1474         before removing system menu items.
1475
1476 2007-08-02  Jonathan Pobst  <monkey@jpobst.com>
1477
1478         * MdiClient.cs, MdiWindowManager.cs: Support 2.0 Mdi MenuStrip
1479         folding.
1480         * MdiControlStrip.cs: Added.  These are the menu items used in mdi
1481         folding.
1482         * ToolStrip.cs: Add a null check to mnemonics.
1483         * ToolStripDropDownMenu.cs: When using a SystemMenuItem, there is
1484         no ConnectedArea.
1485         [Fixes most of bug #81689]
1486
1487 2007-08-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1488
1489         * PropertyGrid.cs: Add a null-check. Fixes #82289/SVGPad.
1490
1491 2007-08-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1492
1493         Use InitialDelay if ReshowDelay is zero. Fixes #82288.
1494
1495 2007-08-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1496
1497         * DataGridViewCell.cs: EditType: returns
1498           DataGridViewTextBoxEditingControl always.
1499
1500 2007-08-01  Jonathan Pobst  <monkey@jpobst.com>
1501
1502         * TextRenderer.cs: Remove the LineLimit string format flag from the
1503         DrawString fallback method so that things like buttons that aren't
1504         tall enough to draw a full line will still draw part of the text.
1505         [Fixes part of bug #82272]
1506
1507 2007-08-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1508
1509         * DataGridView.cs: Implemented AutoResizeColumn(s).
1510         * DataGridViewCellStyle.cs: Added SetAlignment, fills in a StringFormat
1511           according to the Alignment.
1512         * DataGridViewColumnHeaderCell.cs, DataGridViewTextBoxCell.cs:
1513           Implement alignment and padding when painting.
1514         * DataGridViewRow.cs: SetValues: Don't create a cell if it already
1515           exists.
1516         * DataGridViewCell.cs: Implement BorderWidths in the most primitive
1517           way.
1518         * DataGridViewColumnCollection.cs: Raise OnColumnAdded on the DGV when
1519           a column is added.
1520
1521 2007-07-31  Jonathan Pobst  <monkey@jpobst.com>
1522
1523         * TextBoxBase.cs: Use Control.ExplicitBounds instead of explicit_bounds,
1524         which is internal.
1525
1526 2007-07-31  Jonathan Pobst  <monkey@jpobst.com>
1527
1528         * ToolStrip.cs: Stub out drag and drop methods, fix some corcompare stuff,
1529         hide GetPreferredSize from public API.
1530         * ToolStripDropDown.cs: Override AllowItemReorder, fix AccessibleObject.
1531         * ToolStripItem.cs: Stub out drag and drop methods and events.
1532         * ToolStripManager.cs: Stub out Save/LoadSettings.
1533         * ToolStripOverflow.cs: Use renamed ToolStrip.GetPreferredSize.
1534         * ToolStripPanel.cs: Fix corcompare error.
1535         * ToolStripPanelRow.cs: Use renamed ToolStrip.GetPreferredSize.
1536         * ToolStripSplitButton.cs: Fix AccessibleObject stuff.
1537         * ToolStripSplitStackLayout.cs: Use renamed ToolStrip.GetPreferredSize.
1538
1539 2007-07-31  Jonathan Pobst  <monkey@jpobst.com>
1540
1541         * TextBoxBase.cs: In our new GetPreferredSizeCore, return the explicit
1542         bounds height instead of PreferredHeight.  Puts things back the way 
1543         they were for height while still fixing the width.  Fixes broken unit
1544         tests.
1545
1546 2007-07-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1547
1548         * Binding.cs: Implement 2.0 constructors and add a null check.
1549
1550 2007-07-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1551
1552         * DataGridViewRowCollection.cs: Allow a null DGV in the constructor,
1553           and fix row index (off by one).
1554
1555 2007-07-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1556
1557         * PropertyGridView.cs: Remove debug output.
1558
1559 2007-07-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1560
1561         * Control.cs: We need to reset the is_created flags when the handle is
1562           destroyed. Fixes #82187.
1563         * XplatUIWin32.cs: In GetWindowRect don't offset screen coordinates to
1564           client coordinates if the window doesn't have a parent.
1565           Win32GetParent returns the parent or the owner, and for top-level
1566           windows with no parent (but with an owner) we were calculating the
1567           location from the location of the owner.
1568         * Form.cs: Remove incorrect fix for #82187. Don't raise OnLoad if the
1569           form has been disposed.
1570         * MdiClient.cs: Add a null-check.
1571
1572 2007-07-30  Jonathan Pobst  <monkey@jpobst.com>
1573
1574         * TextBoxBase.cs: TextBoxBase reports itself at AutoSize, but doesn't
1575         actually do auto-sizing.  Override the internal GetPreferredSizeCore 
1576         so we can provide an implementation that returns the current width
1577         and preferred height.  Allows anchor = right to work with TextBox 2.0.
1578         [Fixes bug #82233]
1579
1580 2007-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1581
1582         * ListView.cs: Add support for navigating items in Groups mode, by
1583         creating a big matrix containing all rows and cols of all groups. When
1584         are in other mode than Details, pressing Up should have a similar
1585         behaviour as that one of Down (moving to the next available column if
1586         current one doesn't have an item in the requested row). Also, don't
1587         proceed to use groups if ShowGroups is false.
1588         * ListViewGroup.cs: Add an internal int field to store the starting
1589         row of the group (used by the big matrix used for navigating the
1590         ListView).
1591         * ThemeWin32Classic.cs: Don't draw headers if ListView.ShowGroups is
1592         false.
1593
1594 2007-07-30  Jonathan Pobst  <monkey@jpobst.com>
1595
1596         * ToolStripDropDown.cs: When we do Show, start with the 
1597         DefaultDropDownDirection, but if our popup menu is going to off-screen,
1598         modify the direction to keep it on screen.  [Fixes bug #82210]
1599
1600 2007-07-29  Gert Driesen  <drieseng@users.sourceforge.net>
1601
1602         * FileDialog.cs: Accept any FilterIndex value, and store it
1603         unmodified. When FilterIndex is less than 1, or greater than number
1604         of filters, then default to first filter. Only add filter extension to
1605         file if user did not specifiy an extension. When type of dialog is
1606         OpenFileDialog and DefaultExt is set, then only use filter extension
1607         if: CheckFileExists is true and no file wih the default extension
1608         exists, or CheckFileExists is false, and user specified file does not
1609         exist. When CheckFileExists is true, then add first extension of 
1610         selected filter that matches existing file. Perform checks for
1611         existing file, overwrite and create after extension has been added to
1612         file name. When CheckFileExists is true and type is SaveFileDialog,
1613         then only consider first filter extension if DefaultExt is set.
1614         When CheckFileExists is true, then ignore DefaultExt if file with that
1615         extension does not exist. Also perform check for existing file when
1616         type is SaveFileDialog. Changed some field to constants.
1617
1618 2007-07-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1619
1620         * ListView.cs: Take into account the region used by header
1621         control when doing the vertical scroll (this way we invalidate
1622         the precise area, and don't get any dirty one).
1623
1624 2007-07-27  Everaldo Canuto  <ecanuto@novell.com>
1625
1626         * FileDialog.cs: Check for valid filterIndex on button open/save. 
1627         Fixes #82184.
1628
1629 2007-07-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1630
1631         * ListView.cs: Update some layout calculations in details view
1632         and clean the code in a pair of assignations.
1633
1634 2007-07-26  Jonathan Pobst  <monkey@jpobst.com>
1635
1636         * ComboBox.cs, ContainerControl.cs, DataGrid.cs, FontDialog.cs, Label.cs,
1637         LinkLabel.cs, ListBox.cs, ListView.cs, ListViewItem.cs, MessageBox.cs,
1638         MonthCalender.cs, StatusBar.cs, ThemeClearlooks.cs, ThemeWin32Class.cs,
1639         ToolBar.cs, TreeView.cs: First pass at using thread-safe string measuring.
1640
1641 2007-07-26  Jonathan Pobst  <monkey@jpobst.com>
1642
1643         * TextRenderer.cs: Use [ThreadStatic] instead of locks to improve
1644         performance of thread-safe Graphic methods.  (Thanks rolf!)
1645
1646 2007-07-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1647
1648         * ListView.cs: When doing the layout calculations, don't calculate
1649         scroll bars before handle is created. This is unnecessary and also
1650         calculating them before handle creation item causes a number of random
1651         bugs (which begin to appear after Chris' big patch for handle creation
1652         fixes). 
1653
1654 2007-07-26  Jonathan Pobst  <monkey@jpobst.com>
1655
1656         * TextRenderer.cs: Create thread-safe versions of Graphics.MeasureString
1657         for things that don't have a Graphics object.  Currently, things just use
1658         the static Hwnd.bmp_g which is not thread safe.
1659
1660 2007-07-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1661
1662         * Form.cs: ShowDialog: don't destroy handles if the dialog is a common
1663           dialog. Fixes #82187.
1664
1665 2007-07-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1666
1667         * DataGridViewElement.cs: Initialize state.
1668         * DataGridView.cs: Forward a few Mouse events to cells. Add
1669           GetRowInternal and GetCellInternal that doesn't unshare rows.
1670           Implement GetCellDisplayRectangle. HitTest: if the row is shared,
1671           don't use the index, but look it up. Add
1672           DataGridViewControlCollection.RemoveInternal to remove controls
1673           that Remove won't remove (scrollbars, edit control).
1674         * DataGridViewColumn.cs: Initialize State correctly.
1675         * DataGridViewColumnHeaderCell.cs, DataGridViewComboBoxCell.cs,
1676           DataGridViewHeaderCell.cs, DataGridViewRowHeaderCell.cs: Started
1677           implementing this.
1678         * DataGridViewRowCollection.cs: Implemented shared rows.
1679         * DataGridViewRow.cs: Throw exceptions as MS do.
1680         * DataGridViewCell.cs: A few properties are implemented by a
1681           Get<Property> method, so move implementation there and remove the
1682           NIEX in the method. Add a bunch of OnXInternal that DataGridView
1683           calls when necessary.
1684         * DataGridViewComboBoxEditingControl.cs: Remove a few NIEX'es that just
1685           complicates matters.
1686         * DataGridViewCellCollection.cs: Add a GetCellInternal that doesn't
1687           unshare any rows.
1688
1689 2007-07-25  Jonathan Pobst  <monkey@jpobst.com>
1690
1691         * UpDownBase.cs: We cannot override SetBoundsCore for 2.0, which was relayout-ing
1692         the children controls.  Instead, we will just set up the proper docking for the
1693         children controls so we don't have to worry about it.  [Fixes bug #82188]
1694
1695 2007-07-25  Jonathan Pobst  <monkey@jpobst.com>
1696
1697         * TreeView.cs, NodeLabelEditEventArgs.cs, LabelEditTextBox.cs: Support edit
1698         canceling and correct Before/AfterLabelEdit properties as layed out in bug
1699         81847.  [Fixes bug #81847]
1700
1701 2007-07-25  Jonathan Pobst  <monkey@jpobst.com>
1702
1703         * Label.cs: If AutoSize = true and a width or height is set, ignore it and
1704         redo the autosize.  VS2005 defaults to setting the AutoSize, and then setting
1705         an explicit size based on the design-time size of the text.  Since our fonts
1706         may not match this explicit size, we tend to cut off the ends of people's labels.
1707
1708 2007-07-24  Jonathan Pobst  <monkey@jpobst.com>
1709
1710         * Menu.cs: Add some missing methods to MenuItemCollection.
1711
1712 2007-07-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1713
1714         * DataGridView.cs: Added RowTemplateFull, creates a row from the templates in the columns.
1715         * DataGridViewBand.cs: DefaultHeaderCellType: initialize correctly. Resizable: if not set, check DGV.
1716         * DataGridViewColumn.cs: InheritedAutoSizeMode: if not set, check DGV. Resizable: delegate to base class. ToolTipText: Never return null. Initialize a few other properties correctly.
1717         * DataGridViewColumnCollection.cs: Add: Default column is a TextBoxColumn.
1718         * DataGridViewComboBoxCell.cs: Started implementing this, lots left still.
1719         * DataGridViewElement.cs: State defaults to Visible.
1720         * DataGridViewRowCollection.cs: Add: creates the new row based on a template.
1721         * DataGridViewTextBoxColumn.cs: SortMode: delegate to base class, but initialize to Automatic. ToString: implement correctly.
1722
1723 2007-07-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1724
1725         * Control.cs: Minor 1.1 corcompare fix.
1726
1727 2007-07-23  Jonathan Pobst  <monkey@jpobst.com>
1728
1729         * LinkLabel.cs, PrintPreviewDialog.cs, TabPage.cs, TextBox.cs,
1730         TextBoxBase.cs, ToolBar.cs: 2.0 corcompare work.
1731
1732 2007-07-23  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1733
1734         * DataGridViewLinkColumn.cs, DataGridViewRowCollection.cs,
1735           DataGridViewImageColumn.cs, DataGridViewSelectedCellCollection.cs,
1736           DataGridViewComboBoxCell.cs, DataGridViewLinkCell.cs,
1737           DataGridViewSelectedColumnCollection.cs,
1738           DataGridViewSelectedRowCollection.cs: Corcompare work.
1739
1740 2007-07-23  Jonathan Pobst  <monkey@jpobst.com>
1741
1742         * PrintDialog.cs: Stub UseEXDialog.  I chose to stub this because
1743         it is autoset by VS2005 designer and the effect is barely noticeable.
1744
1745 2007-07-23  Jonathan Pobst  <monkey@jpobst.com>
1746
1747         * TreeView.cs: Implement HitTest.
1748
1749 2007-07-23  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1750
1751         * DataGridViewTextBoxCell.cs: Use DGV.EditControlInternal instead of
1752           manually adding and removing the control from the Controls
1753           collecftion.
1754         * DataGridView.cs: Implement DataGridViewControlCollection. Add an
1755           EditingControlInternal property that tracks the editing control.
1756           Always keeping the scrollbars in the Controls collection, as MS
1757           testing confirms is the right behaviour.
1758
1759 2007-07-23  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1760
1761         * ScrollableControl.cs: Fix implementation of AutoScrollPosition
1762           according to MSDN and new test.
1763
1764 2007-07-20  Jonathan Pobst  <monkey@jpobst.com>
1765
1766         * TreeNode.cs: Implement ToolTipText.
1767         * TreeView.cs: Implement tooltips, NodeMouse* events.
1768
1769 2007-07-20  Jonathan Pobst  <monkey@jpobst.com>
1770
1771         * TreeView.cs: Implement OnNodeMouseClick and OnNodeMouseDoubleClick.
1772
1773 2007-07-20  Jonathan Pobst  <monkey@jpobst.com>
1774
1775         * TreeNode.cs: Implement ContextMenu, ContextMenuStrip, and Level.
1776         * TreeView.cs: Use the node's contextmenu[strip] if applicable.
1777
1778 2007-07-20  Ivan N. Zlatev  <contact@i-nz.net>
1779
1780         * Control.cs, Form.cs, ContainerControl.cs,
1781         ScrollableControl.cs, ButtonBase.cs:  Added ShouldSerialize
1782         for misc properties.
1783
1784 2007-07-20  Jonathan Pobst  <monkey@jpobst.com>
1785
1786         * TreeNode.cs: Implement StateImageIndex and StateImageKey.
1787         * TreeView.cs: Implement StateImageList.
1788
1789 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1790
1791         * Form.cs: Don't check if the current form is the active form before
1792           activating it. Fixes #81904.
1793
1794 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1795
1796         * Form.cs: Don't check if the current form is the active form before
1797           activating it. Fixes #81904.
1798
1799 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1800
1801         * TreeView.cs: Apply patch from Tyron (tmm@aon.at). Fixes #81847.
1802
1803 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1804
1805         * Form.cs: Don't try to position the form after loading if the form was
1806           disposed. Fixes #81969.
1807
1808 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1809
1810         * PropertyGrid.cs, PropertyGridView.cs: Implemented 2.0 methods and
1811           properties. Had to change ToolBar into ToolStrip, which required a
1812           few #ifs.
1813
1814 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1815
1816         * PropertyGrid.cs: PropertyToolBar: Redraw the entire toolbar when it's
1817           resized, fixes part of #79829 (vertical lines in toolbar).
1818           PropertyGrid: Refactored Populate* to something that's easier to
1819           follow at least for me, as well as splitting it up into several new
1820           methods, required to update only subitems when something has
1821           changed by a popup editor or listbox. Don't use events to check
1822           when any values are changed, since the events are unreliable (we're
1823           changing the objects the events are registered with, and if the
1824           event handling requires the objects to be immutable (objects stored
1825           in hashtables for instance), the events will never be raised).
1826         * PropertyGridView.cs: Call PropertyGrid.PropertyValueChangedInternal
1827           everytime we change a value, since events are unreliable.
1828           DropDownButtonClicked: For the same reason don't compare objects to
1829           check if it has changed or not, it would require all objects to
1830           derive Equals. Fix dialog location on windows, MS is doing weird
1831           things when creating parented forms.
1832         * GridEntry.cs: Add a SelectedObject setter.
1833
1834 2007-07-19  Jonathan Pobst  <monkey@jpobst.com>
1835
1836         * TreeNode.cs: Add some corcompare attributes.
1837         * TreeNodeCollection.cs: Implement 2.0 stuffs.
1838         * TreeView.cs: Implement some 2.0 stuffs.
1839
1840 2007-07-18  Andreia Gaita  <avidigal@novell.com>
1841
1842         * WebBrowser.cs, WebBrowserBase.cs: add some more MonoTODOs now
1843         for moma.
1844
1845 2007-07-19  Jonathan Pobst  <monkey@jpobst.com>
1846
1847         * ListBox.cs: Implement custom tab offsets.
1848
1849 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
1850
1851         * ToolStripContentPanel.cs: Support System renderer.
1852         * ToolStripControlHost.cs: Set RightToLeft to default to No.
1853
1854 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
1855
1856         * ScrollableControl.cs: Don't mess up the user's explicit bounds.
1857
1858 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
1859
1860         * CheckBox.cs: Chain TextAlign to base implementation instead of
1861         maintaining another one.
1862
1863 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
1864
1865         * ButtonBase.cs: Fix an incorrect string constant.
1866
1867 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
1868
1869         * TextRenderer.cs: Use the static Graphics context in Hwnd instead
1870         of creating one for measuring strings.
1871
1872 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
1873
1874         * ToolStrip.cs, ToolStripDropDown.cs, ToolStripDropDownMenu.cs: 
1875         Implement MaxItemSize.
1876
1877 2007-07-17  Jonathan Pobst  <monkey@jpobst.com>
1878
1879         * Control.cs: Remove per-control 1x1 Bitmap and Graphics context used
1880         for DeviceContext.  Instead, use the static one available in Hwnd.
1881         Informal tests show this saves about 500k on formtest.exe.
1882
1883 2007-07-17  Jonathan Pobst  <monkey@jpobst.com>
1884
1885         * ContainerControl.cs: Implement 2.0 AutoScaling.
1886
1887 2007-07-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1888
1889         * ComboBox.cs: Work around bug #82120 (bug in mcs).
1890
1891 2007-07-16  Jonathan Pobst  <monkey@jpobst.com>
1892
1893         * ThemeWin32Classic.cs: Allow a Flat button to be Focused and Entered.
1894         Darken the focus color.
1895
1896 2007-07-16  Jonathan Pobst  <monkey@jpobst.com>
1897
1898         * ListBox.cs: When measuring items, if it's a CheckedListBox, add room
1899         for the checkbox.
1900         * ThemeWin32Classic.cs: Make the checkbox bigger in a CheckedListBox and use
1901         X, Y instead of a rect for drawing text.
1902         - For ControlPaint.DrawCheckBox, center the check a little better when the
1903         checkbox is odd width.  When drawing a flat checkbox, use a white background
1904         when state != inactive.
1905         [Fixes bugs #82097, 82100]
1906
1907 2007-07-16  Gert Driesen  <drieseng@users.sourceforge.net>
1908
1909         * ListControl.cs: When changing CurrencyManager, disconnect event
1910         handlers from previous one. Fixes bug #81771. Code formatting.
1911
1912 2007-07-15  Andreia Gaita <avidigal@novell.com>
1913
1914         * PrintPreviewControl.cs: Remove extraneous Invalidate calls. Separate
1915         full preview invalidation from layout invalidation, and only invalidate
1916         the layout when setting zoom or other properties. Invalidation should
1917         always be done even when resetting properties with the same values as
1918         what is there. Fixes #81744 and #79830.
1919
1920 2007-07-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1921
1922         * ListView.cs: Implement initial support for Groups. Split some of the
1923         LayoutIcons code to render a partial list of the items (needed by
1924         items contained in ListViewGroup instances). Let the
1925         ListViewItemsCollection.ListView property be modifiable (needed when
1926         using Groups, too).
1927         * ListViewGroup.cs: Use a Bounds property rather than a Location
1928         one. Also invalidate the bounds when they get changed.
1929         * ThemeWin32Classic.cs: When drawing items, also draw the group header
1930         if ListView.Groups.Count is bigger than 0. Add a DrawListViewGroupHeader
1931         method as well.
1932
1933 2007-07-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1934
1935         * ListView.cs: When space gets pressed and CheckBoxes is true, 
1936         don't invoke the Begin and EndUpdate methods. We are generating 
1937         a redraw of the entire control without need to do so.
1938
1939 2007-07-13  William Holmes <billholmes54@gmail.com> 
1940
1941         * Control.cs: Changing logic in FindFlatForward and 
1942           FindFlatBackward to handle multiple Controls with 
1943           the same TabIndex.  
1944           This fixes bug 81687.
1945
1946 2007-07-13  Jonathan Pobst  <monkey@jpobst.com>
1947
1948         * OSFeature.cs: Enable IsPresent.
1949
1950 2007-07-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1951
1952         * Control.cs: Don't do anything in WmShowWindow if the control has been
1953           disposed. We can get WM_SHOWWINDOW after a control is disposed: a
1954           control is created, put on a form, the control is disposed (the
1955           form is never shown), and then we get a MapNotify, triggering a
1956           WM_SHOWWINDOW.
1957         * Form.cs: Exclude the current form when sending Deactivate to all
1958           MdiChildren.
1959         * NativeWindow.cs: Set WindowCreating to null as soon as possible,
1960           there was a race condition because assigning the handle raises
1961           events, we can get more messages, therefore trying to assign the
1962           handle again, which would fail if any of those event handlers
1963           closed/disposed the control.
1964
1965 2007-07-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1966
1967         * Form.cs: Make the fix for #80775 windows-only (fixes #81957).
1968
1969 2007-07-12  Jonathan Pobst  <monkey@jpobst.com>
1970
1971         * SystemInformation.cs, Theme.cs, XplatUI.cs, XplatUIDriver.cs,
1972         XplatUIWin32.cs: Implement SystemInformation 2.0 properties.
1973
1974 2007-07-12  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1975
1976         * DateTimePicker.cs: If there's no part format specifier, return an
1977           empty string.
1978
1979 2007-07-12  Jonathan Pobst  <monkey@jpobst.com>
1980
1981         * FlatButtonAppearance.cs: Throw NotSupportedException for a
1982         Transparent BorderColor.
1983
1984 2007-07-12  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1985
1986         * DataGridView.cs, TextControl.cs, ProgressBar.cs, PrintDialog.cs,
1987           MessageBox.cs, ButtonBase.cs, PageSetupDialog.cs, NumericUpDown.cs,
1988           X11Dnd.cs, Binding.cs, DataGrid.cs, AxHost.cs,
1989           LinkLabelLinkClickedEventArgs.cs, TextRenderer.cs, Label.cs,
1990           LinkLabel.cs, TreeNode.cs, BindingSource.cs, TabPage.cs,
1991           TextBoxBase.cs, BindingNavigator.cs, Application.cs,
1992           ToolStripPanel.cs, TabControl.cs, ThemeClearlooks.cs, TreeView.cs:
1993           Remove warnings.
1994         * X11Structs.cs: Remove warnings, add ToString implementations.
1995
1996 2007-07-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1997
1998         * XplatUIX11.cs: Translate min/max size according to the actual min/max
1999           size, and not the current size. Fixes #81798.
2000
2001 2007-07-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2002
2003         * XplatUIX11.cs: Fix #80822 again (DefWndProc can be reached before
2004           XplatUI.CreateWindow returns, in which case the hwnd isn't assigned
2005           to the control yet).
2006
2007 2007-07-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2008
2009         * PropertyGridTextBox.cs: Add a method that sends any forwarded
2010           mousedowns to the contained textbox.
2011         * X11Structs.cs: More ToString implementation.
2012         * PropertyGridView.cs: Forward any mousedowns to the textbox, fixes
2013           #81791.
2014
2015 2007-07-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2016
2017         * PropertyGridView.cs: Add a null-check, fixes a few tests.
2018
2019 2007-07-10  Jonathan Pobst  <monkey@jpobst.com>
2020
2021         * TableLayoutPanelCellPosition.cs: TypeConverter.
2022
2023 2007-07-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2024
2025         [ Fixes #79761]
2026         
2027         * PropertyGridTextBox.cs: Propagate any color changes to all contained
2028           controls.
2029         * PropertyGridView.cs: A few color fixes.
2030
2031 2007-07-10  Jackson Harper  <jackson@ximian.com>
2032
2033         * TextControl.cs: Remove some old unused text formatting stuff.
2034
2035 2007-07-10  Jackson Harper  <jackson@ximian.com>
2036
2037         * TreeView.cs: Update full row select invalidation to match the
2038         newer DrawSelection... method.
2039         - Make sure to invalidate the entire width when selecting a new
2040         node, if we have full row selection enabled.
2041
2042 2007-07-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2043
2044         * PropertyGridView.cs: Fix for #81800, makes text show up on initial
2045           display of properties again.
2046
2047 2007-07-10  Jonathan Pobst  <monkey@jpobst.com>
2048
2049         * ListBox.cs: Add IntegerCollection and Add, Clear, Remove
2050         to existing collections.
2051
2052 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
2053
2054         * AccessibleObject.cs, RadioButton.cs: Fix some base classes
2055         that changed between 1.1 and 2.0.
2056
2057 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
2058
2059         * PowerStatus.cs: Added.  This is just a data class, it is filled
2060         in by SystemInformation.
2061
2062 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
2063
2064         * Message.cs: Add op_Equality and op_Inequality.
2065
2066 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
2067
2068         * MenuStrip.cs: Finish corcompare work.
2069
2070 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
2071
2072         * LinkArea.cs: Add op_Equality and op_Inequality.
2073
2074 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
2075
2076         * Application.cs: Add MessageLoopCallback delegate.
2077
2078 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
2079
2080         * ListBox.cs: First set of 2.0 stuffs.
2081
2082 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
2083
2084         * Control.cs: Make an internal Height property we can override
2085         without messing up the public API.
2086         * ListBox.cs: Override HeightInternal to always return the size
2087         the user set.  [Fixes bug #80466]
2088
2089 2007-07-08  Jonathan Pobst  <monkey@jpobst.com>
2090
2091         * TableLayoutPanel.cs: Add a null check so we don't NRE trying to
2092         paint cell borders if we haven't calculated where they go yet.
2093         [Fixes bugs #82040 and #82041]
2094
2095 2007-07-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2096
2097         * ListView.cs: In Details view, set the location of item_control
2098         in the (0,0) position (and the header_control is thus on the
2099         item_control). This way the Bounds of the Items are relative to the
2100         ListView control (before this, they had a Bounds value without the
2101         header_control offset, which wasn't matching .Net). Fixes #82004.
2102
2103 2007-07-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2104
2105         * ListControl.cs: When DataSource is set to null, pass an empty
2106         array of object to SetItemsCore. This is done to clean the items
2107         in the ListContol children. Fixes #81788.
2108
2109 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
2110
2111         * ListControl.cs: Add 2.0 stuffs.
2112
2113 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
2114
2115         * Label.cs: Finish up 2.0 stuffs.  Replace calls to Refresh with Invalidate,
2116         Refresh is overkill for just about every repaint request.
2117
2118 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
2119
2120         * ToolStripItem.cs: TextDirection getter handles looking up Inherit for us,
2121         so remove my custom Get method and fix the property getter.
2122
2123 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
2124
2125         * Label.cs: DefaultMargin for 2.0.
2126
2127 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
2128
2129         * ComboBox.cs: Override IsInputCharInternal and return true.  Fixes 
2130         reported issue where other controls with mnemonics would steal strokes
2131         from a selected ComboBox.
2132
2133 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
2134
2135         * ScrollOrientation.cs: Make internal for 1.1.
2136         * ScrollEventArgs.cs: Add 2.0 stuffs.
2137
2138 2007-07-05  Jonathan Pobst  <monkey@jpobst.com>
2139
2140         * ToolStrip.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
2141         ToolStripItem.cs, ToolStripItem.cs, ToolStripItemTextRenderEventArgs.cs,
2142         ToolStripRenderer.cs, ToolStripSeparator.cs: Implement TextDirection.
2143
2144 2007-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2145
2146         * ListViewItem.cs: Implement the small 2.0 GetSubItemAt method.
2147
2148 2007-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2149
2150         * ListView.cs: Implement the so-incredibly broken 2.0 
2151         VirtualItemsSelectionRangeChanged event.
2152
2153 2007-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2154
2155         * ListView.cs: When enter is pressed and selection is non empty,
2156         an OnItemActivate event must be fired.
2157
2158 2007-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2159
2160         * ListView.cs: Store the FocusedItem information as an
2161         int instead of a ListViewItem (needed by VirtualMode).
2162         Update the calls to SetFocusedItem to pass an index instead of
2163         an item.
2164         * ListViewItem.cs: Likewise. Also, in VirtualMode retrieve
2165         the Focused state from the owner ListView. 
2166
2167 2007-07-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2168
2169         * ListView.cs: Set ListView.focused_item from ListViewItem.Focused
2170         property. Also, invalidate previous focused item in the mentioned
2171         property (match .Net).
2172
2173 2007-07-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2174
2175         * ListView.cs: Implement 2.0 FocusedItem property setter.
2176
2177 2007-07-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2178
2179         * ListView.cs: Implement 2.0 TopItem property setter.
2180
2181 2007-07-03  Jonathan Pobst  <monkey@jpobst.com>
2182
2183         * StatusStrip.cs: The default renderer is System.
2184         * ToolStrip.cs, ToolStripManager: Now that we have System renderer, use it 
2185         if the user specifies it.
2186         * ToolStripDropDown.cs: Don't reset our Renderer on changing OwnerItem
2187         if we are ManagerRenderMode.
2188         * ToolStripMenuItem.cs: Calculate our text color better.
2189         * ToolStripRenderer.cs, ToolStripProfessionalRenderer.cs: Move some stuff
2190         from Professional to the base class based off working with the System renderer.
2191         * ToolStripSystemRenderer.cs: Added.
2192
2193 2007-07-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2194
2195         * ListView.cs: I'm so lame - the real name is HitTest, not HitInfo.
2196
2197 2007-07-02  Jonathan Pobst  <monkey@jpobst.com>
2198
2199         * ToolTip.cs: Implement 2.0 Tag property.
2200
2201 2007-06-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2202
2203         * ListView.cs: Implement 2.0 HitTest methods.
2204
2205 2007-06-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2206
2207         * ListViewItem.cs: Add a 2.0 bool Hot property, to tell whether the
2208         item is under the pointer or not (sugar). Also remove the TODO
2209         regarding to the cursor changes in OneClick activation.
2210         * ThemeWin32Classic.cs: When HotTracking is true and we are drawing
2211         the subitems use the parent's HotFont if UseItemStyleForSubItems is
2212         true; otherwise don't show the underline style.
2213
2214 2007-06-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2215
2216         * ListView.cs: In ItemControl.ItemsMouseMove, refactor
2217         the code to retrieve the item at position only one time. Also
2218         change cursor when Activation is ItemActivation.OneClick as well
2219         as invalidate the item if HotTracking is true (to show/hide the
2220         underline style). Add an internal HotItemIndex property to retrieve
2221         the current hot item's index.
2222         * ListViewItem.cs: Add an internal HotFont property to cache the
2223         font used when HotTracking is true and the pointer moves within the
2224         item's borders.
2225         * ThemeWin32Classic.cs: When drawing the item's text, use Font or
2226         HotFont depending on the hot state of the item.
2227
2228 2007-06-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2229
2230         * ListView.cs: Implement 2.0 HotTracking property.
2231
2232 2007-06-21  Jonathan Pobst  <monkey@jpobst.com>
2233
2234         * ToolStripControlHost.cs: If our hosted control never got created,
2235         don't try to dispose it.  [Fixes bug #81909]
2236
2237 2007-06-21  Jonathan Pobst  <monkey@jpobst.com>
2238
2239         * TableLayoutPanel.cs: Implement ScaleCore, ScaleControl.
2240
2241 2007-06-21  Jonathan Pobst  <monkey@jpobst.com>
2242
2243         * TableLayoutPanel.cs: Implement CellBorderStyle.  [Fixes bug #81884]
2244
2245 2007-06-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2246
2247         * ThemeWin32Classic.cs: In OwnerDraw mode draw subitems only for 
2248         Details view.
2249         * DrawListViewColumnHeaderEventArgs.cs:
2250         * DrawListViewSubItemEventArgs.cs: Add padding to the bounds when drawing text
2251         using the DrawText () methods.
2252
2253 2007-06-19  Jonathan Pobst  <monkey@jpobst.com>
2254
2255         * ToolStripProfessionalRenderer.cs: Put back clearing a ToolStripDropDown's
2256         background which got erased in my changes yesterday.
2257
2258 2007-06-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2259
2260         * ListViewItem.cs: Actually set bounds for subitems in Details view
2261         (2.0 feature).
2262         * ThemeWin32Classic.cs: Refactor the drawing code for subitems, so we
2263         can invoke from the owner draw routines if we need it. Also, add
2264         support for Owner draw in Details view.
2265
2266 2007-06-18  Jonathan Pobst  <monkey@jpobst.com>
2267
2268         * ToolStripDropDownMenu.cs, ToolStripItem.cs, ToolStripLabel.cs,
2269         ToolStripMenuItem.cs, ToolStripProfessionalRenderer.cs: Respect the
2270         ShowImageMargin setting, properly align text in a ToolStripLabel
2271         hosted on a ToolStripDropDown.
2272
2273 2007-06-18  Jonathan Pobst  <monkey@jpobst.com>
2274
2275         * ToolStrip.cs, ToolStripContentPanel.cs, ToolStripDropDownMenu.cs,
2276         ToolStripProfessionalRenderer.cs: Refactor and clean up some rendering code.
2277
2278 2007-06-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2279
2280         * DrawListViewSubItemEventArgs.cs: Actually implement its methods.
2281
2282 2007-06-18  Jonathan Pobst  <monkey@jpobst.com>
2283
2284         * ToolStripLabel.cs: If the label is on a dropdown, adjust the text
2285         location to match ToolStripMenuItems.
2286
2287 2007-06-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2288
2289         * DrawListViewColumnHeaderEventArgs.cs:
2290         * ThemeWin32Classic.cs: Implement 2.0 OwnerDraw support for
2291         column headers in ListView. 
2292
2293 2007-06-15  Jonathan Pobst  <monkey@jpobst.com>
2294
2295         * UserControl.cs: Implement AutoSize.
2296
2297 2007-06-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2298
2299         * DrawListViewItemEventArgs.cs:
2300         * ListView.cs:
2301         * ThemeWin32Classic.cs: Implement basic support for 2.0 OwnerDraw in
2302         ListView.
2303
2304 2007-06-15  Jonathan Pobst  <monkey@jpobst.com>
2305
2306         * ToolStripDropDownItemAccessibleObject.cs: Added.
2307         * ToolStripDropDownItem.cs, ToolStripItem.cs, ToolStripMenuItem.cs,
2308         ToolStripOverflow.cs, ToolStripOverflowButton.cs, ToolStripPanel.cs,
2309         ToolStripProgressBar.cs, ToolStripSeparator.cs, ToolStripSplitButton.cs,
2310         ToolStripTextBox.cs: corcompare work.
2311
2312 2007-06-14  Jonathan Pobst  <monkey@jpobst.com>
2313
2314         * OSFeature.cs, StatusStrip.cs, TabControl.cs, TableLayoutSettings.cs,
2315         TableLayoutStyle.cs, TableLayoutCollection.cs, ToolStripContentPanel.cs,
2316         ToolStripControlHost.cs, ToolStripDropDown.cs, ToolStripDropDownButton.cs:
2317                 corcompare.
2318
2319 2007-06-14  Jonathan Pobst  <monkey@jpobst.com>
2320
2321         * OSFeature.cs: Add IsPresent.
2322         * PrintPreviewControl.cs: Add RightToLeft.
2323         * SplitContainer.cs: Add AutoScrollOffset, ScaleControl.
2324         * SplitterPanel.cs: Add AutoSizeMode.
2325
2326 2007-06-13  Jonathan Pobst  <monkey@jpobst.com>
2327
2328         * LayoutEventArgs.cs: Add 2.0 AffectedComponent.
2329         * MdiClient.cs: Add 2.0 ScaleControl.
2330         * NativeWindow.cs: Implement 2.0 interface IWin32Window.
2331         * NumericUpDownAccelerationCollection.cs: Add [ListBinding].
2332
2333 2007-06-13  Jonathan Pobst  <monkey@jpobst.com>
2334
2335         * Form.cs: Implement some scaling methods, stub some RTL methods,
2336         corcompare work.
2337
2338 2007-06-13  Jonathan Pobst  <monkey@jpobst.com>
2339
2340         * Control.cs: corcompare work.
2341         * FlatButtonAppearance.cs, FolderBrowserDialog.cs: Add TypeConverters.
2342
2343 2007-06-13  Jonathan Pobst  <monkey@jpobst.com>
2344
2345         * ControlPaint.cs, Theme.cs, ThemeWin32Classic.cs: Implement
2346         ControlPaint 2.0 stuffs.
2347
2348 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
2349
2350         * ThreadExceptionDialog.cs: Add 2.0 stuffs.
2351
2352 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
2353
2354         * UpDownBase.cs: Add 2.0 stuffs.
2355
2356 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
2357
2358         * NumericUpDown.cs: Add 2.0 stuffs.
2359
2360 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
2361
2362         * NotfiyIcon.cs: Add MouseDoubleClick event, hook up MouseClick event.
2363
2364 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
2365
2366         * ErrorProvider.cs: Implement 2.0 stuffs.
2367
2368 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
2369
2370         * DomainUpDown.cs: Implement 2.0 stuffs.
2371
2372 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
2373
2374         * CheckedListBox.cs: Fix RefreshItems signature.
2375
2376 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
2377
2378         * PictureBox.cs: Implement 2.0 stuffs.
2379
2380 2007-06-12  Andreia Gaita  <avidigal@novell.com>
2381         
2382         * TabControl.cs: Check if there are tabpages before checking
2383         the selected index - fix #81802 (font changes raise a ResizeTabs
2384         call on controls.add, which blew up nicely with no tabpages)
2385
2386 2007-06-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2387
2388         * ListView.cs:
2389         * ListViewItem.cs: Implement 2.0 ItemSelectionChanged event.
2390
2391 2007-06-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2392
2393         * ListView.cs:
2394         * ListViewItem.cs: In VirtualMode the selection information
2395         resides in the ListView, rather than in the Items. Also, throw
2396         InvalidOperationExceptions when VirtualMode is being used and
2397         CheckedItemCollection is accessed.
2398
2399 2007-06-08  Jonathan Pobst  <monkey@jpobst.com>
2400
2401         * ComboBox.cs: Add ScaleControl.
2402
2403 2007-06-08  Jonathan Pobst  <monkey@jpobst.com>
2404
2405         * ButtonBase.cs: ButtonBaseAccessibleObject.State should not be visible to 1.1.
2406
2407 2007-06-08  Jonathan Pobst  <monkey@jpobst.com>
2408
2409         * GroupBox.cs: Add 2.0 stuffs.
2410
2411 2007-06-08  Jonathan Pobst  <monkey@jpobst.com>
2412
2413         * Panel.cs: Add autosize properties/event.
2414
2415 2007-06-07  Jonathan Pobst  <monkey@jpobst.com>
2416
2417         * Control.cs:
2418         - When we remove a control, remove it from the collection before performing the layout.
2419         - Setup an internal property for explicit_bounds.
2420         - Don't let the UpdateBounds in CreateHandle overwrite our explicit bounds.
2421         - Perform a layout when we set a new AutoSizeMode.
2422
2423 2007-06-07  Jonathan Pobst  <monkey@jpobst.com>
2424
2425         * ScrollableControl.cs: Add 2.0 stuffs.
2426
2427 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
2428
2429         * ScrollBar.cs: Add 2.0 stuffs.
2430
2431 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
2432
2433         * Splitter.cs: Add 2.0 stuffs.
2434
2435 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
2436
2437         * SplitContainer.cs: Apply patch from Neil Cawse <neilcawse@geotab.com>
2438         to have BindingContext simply use base implementation.
2439
2440 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
2441
2442         * ColumnHeader.cs: corcompare fix.
2443
2444 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
2445
2446         * Button.cs: corcompare fixes.
2447         * ButtonBase.cs: corcompare fixes, add ButtonBaseAccessibleObject.State.
2448
2449 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
2450
2451         * Button.cs: Override GetPreferredSizeCore.
2452         * ButtonBase.cs: PerformLayout after changing properties that can affect
2453         AutoSize.  Simplify some mouse/keyboard code.
2454         * Control.cs: PerformLayout after changing Padding if AutoSize = true.
2455         * MouseEventArgs.cs: Make Location internal for 1.1.
2456         * TextRenderer.cs: Make MeasureTextInternal (string, Font, bool) internal for 1.1.
2457         * Theme.cs: Add CalculateButtonAutoSize.
2458         * ThemeWin32Classic.cs: Implement CalculateButtonAutoSize.
2459
2460 2007-06-05  Miguel de Icaza  <miguel@novell.com>
2461
2462         * TreeNodeCollection.cs: Applied patch from Neil Cawse <neilcawse@geotab.com>
2463
2464 2007-06-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2465
2466         * ListViewItem.cs: We can't cache Bounds in VirtualMode 
2467         since we can get different item instances every time we retrieve it.
2468
2469 2007-06-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2470
2471         * ListView.cs: Work around for #81602, since an unkown an pretty
2472         infrequent condition appears only in some systems (old linux boxes, it
2473         seems).
2474
2475 2007-06-04  Jonathan Pobst  <monkey@jpobst.com>
2476
2477         * Button.cs: Completely reformat and a little refactor to bring
2478         this closer to Mono circa 2007.
2479
2480 2007-06-04  Jonathan Pobst  <monkey@jpobst.com>
2481
2482         * CheckBox.cs, Form.cs, RadioButton.cs: Change call to ButtonBase.Redraw
2483         to be ButtonBase.Invalidate.
2484
2485 2007-06-04  Jonathan Pobst  <monkey@jpobst.com>
2486
2487         * ButtonBase.cs: GetPreferredSize is 2.0 only.  Fixes build.
2488
2489 2007-06-04  Jonathan Pobst  <monkey@jpobst.com>
2490
2491         * ButtonBase.cs: Completely reformat and a little refactor to bring
2492         this closer to Mono circa 2007.
2493
2494 2007-06-01  Everaldo Canuto  <ecanuto@novell.com>
2495
2496         * Label.cs: Fixes preferred sizes for 2.0 profile, also adjust some
2497         values for autosize. Fixes #80137.
2498
2499 2007-06-01  Jonathan Pobst  <monkey@jpobst.com>
2500
2501         * Control.cs: Don't perform layout when AutoSize changes.
2502         * Form.cs: Perform layout in AutoSize override.  Don't set ClientSize
2503         directly when autosizing, use SetBounds with BoundsSpecified.None.
2504         Fixes unit tests my last commit broke.
2505
2506 2007-06-01  Jonathan Pobst  <monkey@jpobst.com>
2507
2508         * Control.cs: Perform layout when AutoSize changes.
2509         * Form.cs: Implement AutoSizing.
2510
2511 2007-06-01  Chris Toshok  <toshok@ximian.com>
2512
2513         * DataGrid.cs: remove the XXX'ed check at the top of
2514         ProcessGridKey.  fixes #80464.
2515
2516 2007-06-01  Chris Toshok  <toshok@ximian.com>
2517
2518         * DataGridTextBoxColumn.cs: TextBox.TextChanged event handler
2519         adding idempotent (add/remove in Edit()), and also make sure we
2520         don't add it until after we set the text, so it's not tripped in
2521         Edit().  Fixes unit test regression.
2522
2523 2007-06-01  Jonathan Pobst  <monkey@jpobst.com>
2524
2525         * Control.cs: In UpdateBounds, only recalculate anchor distances if the
2526         change is user explicit, not when the layout engine moves stuff.  Fixes
2527         anchoring to bottom and right.  [Fixes bug #81790]
2528
2529 2007-06-01  Andreia Gaita  <avidigal@novell.com>
2530
2531         * PrintDialog.cs: Add collation preview thumbnails. Fixes #80726.
2532
2533 2007-06-01  Andreia Gaita  <avidigal@novell.com>
2534
2535         * ContainerControl.cs: 
2536         Fire enter event for common ancestor if it is not a ContainerControl.
2537         Send focus to the active_control and not the 'value', the active 
2538         control might have been changed in one of the events fired.     
2539         Definitely fixes #80159.
2540
2541 2007-06-01  Andreia Gaita  <avidigal@novell.com>
2542
2543         * DataGrid.cs: Finish editing when focus leave the datagrid. Fixes #80159.
2544
2545 2007-06-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2546
2547         * PropertyGrid.cs: Anchor the help description to the bottom of the
2548           help panel and refactor SelectGridItem into a
2549           SelectGridItemInternal that can be set to null (and update it to
2550           clear the help texts when it is set to null). Set root item to null
2551           when there's no SelectedObject. Fixes #80438.
2552         * ScrollableControl.cs: In Recalculate we need to ResumeLayout(true)
2553           when we're recalculating after a resize (only).
2554
2555 2007-05-31  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2556
2557         * ListView.cs: Implement 2.0 RedrawItems method.
2558
2559 2007-05-31  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2560
2561         * ListControl.cs: Disconnect PositionChanged and ItemChanged
2562         handlers from previous data manager when DataSource is set to
2563         null. Fixes #81771.
2564
2565 2007-05-31  Jackson Harper  <jackson@ximian.com>
2566
2567         * TextBoxBase.cs: These seem to be the correct values.
2568
2569 2007-05-31  Everaldo Canuto  <ecanuto@novell.com>
2570
2571         * FileDialog.cs: When close dialog with ok set filterindex using combobox
2572         value. Fixes #81784.
2573
2574 2007-05-31  Jonathan Pobst  <monkey@jpobst.com>
2575
2576         * Control.cs: Implement 2.0 scaling methods.
2577
2578 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2579
2580         * ProgressBar.cs, WebBrowserBase.cs, Control.cs, MaskedTextBox.cs,
2581           MessageBox.cs, PropertyGrid.cs, RichTextBox.cs: Fix warnings and
2582           corcompare issues.
2583
2584 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2585
2586         * ProgressBar.cs: Implemented missing 2.0 members.
2587
2588 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2589
2590         * Control.cs: Corcompare issues.
2591         * MessageBox.cs: Implemented missing 2.0 functions.
2592
2593 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2594
2595         * CheckedListBox.cs, ListBox.cs, ListControl.cs, ComboBox.cs:
2596           Implemented more 2.0 members.
2597
2598 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2599
2600         * Application.cs: Try to avoid NRE when Assembly.GetEntryAssembly is
2601           null (strange, but it seems to happen when running unit tests).
2602
2603 2007-05-30  Andreia Gaita  <avidigal@novell.com>
2604
2605         * ContainerControl.cs: Set active_control even earlier, before 
2606         firing any events, and undo it if validation returns false.
2607
2608 2007-05-30  Andreia Gaita  <avidigal@novell.com>
2609
2610         * ContainerControl.cs: Raise Validation and Enter/Leave events
2611         even if there is no Form and set active_control earlier, just
2612         before firing Enter events (toshok's patches). Fixes #80647.
2613
2614 2007-05-30  Jackson Harper  <jackson@ximian.com>
2615
2616         * TextControl.cs: Redid the pageup/pagedown a little to simplify
2617         things and fix bug #81311.
2618
2619 2007-05-30  Jackson Harper  <jackson@ximian.com>
2620
2621         * X11Dnd.cs: Now that we have our own event loop, we need to
2622         cancel when we get a mouseup but it won't be accepted.
2623
2624 2007-05-30  Chris Toshok  <toshok@ximian.com>
2625
2626         * DataGrid.cs (set_CurrentCell): guard against negative
2627         column/row.
2628
2629         * DataGridColumnStyle.cs (CheckValidDataSource): just use the
2630         array index syntax instead of looping over the property names.
2631
2632         * DataGridTextBoxColumn.cs: add a changed handler on the textbox,
2633         and set IsInEditOrNavigateMode to false there.
2634
2635 2007-05-30  Jackson Harper  <jackson@ximian.com>
2636
2637         * TreeView.cs: Make sure we don't get a bad visible order when
2638         setting to the top node.  Fixes some misc crashing in
2639         ControlInspector.
2640
2641 2007-05-30  Andreia Gaita  <avidigal@novell.com>
2642
2643         * UserControl.cs: Add 2.0 AutoSizeMode
2644
2645 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
2646
2647         * DataGridTextBoxColumn.cs: Fix textbox horizontal offset.
2648
2649 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
2650
2651         * DataGridTextBoxColumn.cs: Fix textbox position to prevent override grid
2652         lines. Fixes #80285. 
2653
2654 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
2655
2656         * DataGridColumnStyle.cs: Add char trimming column header text format. 
2657
2658 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
2659
2660         * DataGridColumnStyle.cs: Fix grid header arrow drawing over column name. 
2661         Fixes #80147.
2662
2663 2007-05-29  Jackson Harper  <jackson@ximian.com>
2664
2665         * TreeNode.cs: Fix off by one on calculating whether or not a node
2666         is visible.
2667
2668 2007-05-29  Jonathan Pobst  <monkey@jpobst.com>
2669
2670         * Control.cs: ResumeLayout(false) should recalculate anchor distances.
2671         * ScrollableControl.cs: Force an UpdateDistances when we move the
2672         scrollbars.
2673         [Fixes bug #80605]
2674
2675 2007-05-29  Andreia Gaita  <avidigal@novell.com>
2676
2677         * PageSetupDialog.cs: Fix #80728 - Changing the printer doesn't
2678         update the page setup screen.
2679
2680 2007-05-29  Andreia Gaita  <avidigal@novell.com>
2681
2682         * PageSetupDialog.cs: Fix landscape mode.
2683
2684 2007-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2685
2686         * SystemInformation.cs: Add 2.0 IconSizeVerticalSpacing and
2687         IconSizeHorizontalSpacing.
2688
2689 2007-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2690
2691         * ListView.cs: The declaration of prev_tooltip_item should be inside
2692         a NET_2_0 conditional (avoid a warning).
2693
2694 2007-05-28  Andreia Gaita  <avidigal@novell.com>
2695
2696         * PageSetupDialog.cs: Implement PrintPreview control to display
2697         the preview thumbnail. Change unit conversion to use 
2698         PrinterUnitConvert methods.
2699         
2700         Note: there is a huge bug in ms.net where the default margins are 
2701         interpreted as centimeters (?), when in fact they are set in inches. When 
2702         loading the page setup dialog initially (ms.net), the default margins 
2703         are set to 1 inch, and the dialog shows them with value 10, when in fact 
2704         it should be 25 (properly converted). Our dialog doesn't have this bug.
2705         
2706         * Theme.cs, ThemeWin32Classic.cs: Add a CPDrawBorder override for 
2707         RectangleF.
2708         * ControlPaint.cs: Add a DrawBorder internal method for RectangleF.
2709
2710 2007-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2711
2712         * ListView.cs:
2713         * ListViewItem.cs: Implement 2.0 ToolTipText support for listview
2714         items.
2715
2716 2007-05-28  Andreia Gaita  <avidigal@novell.com>
2717
2718         * X11Dnd.cs: A direct cast to VirtualKeys is not allowed from
2719         an IntPtr on csc (it builds fine on mcs, could it be a compiler
2720         bug?), convert the ptr to Int32 first.
2721
2722 2007-05-28  Jackson Harper  <jackson@ximian.com>
2723
2724         * X11Dnd.cs: Add a timer, so after drop, if a finish is not
2725         recieved, we will exit the dnd tracking loop.
2726
2727 2007-05-28  Jackson Harper  <jackson@ximian.com>
2728
2729         * X11Dnd.cs: Keep tracking until the xdnd finished event is
2730         recieved. TODO: I should probably stick a timer on the dropped
2731         event, and finish the drag if the XDND Finished event never shows
2732         (because some apps don't seem to send it).
2733
2734 2007-05-28  Everaldo Canuto  <ecanuto@novell.com>
2735
2736         * ToolBar.cs: Fix toolbar default width for button with image. Fixes
2737         #81733.
2738
2739 2007-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2740
2741         * MonthCalendar.cs: Only mark the keypresses we actually handle as
2742           handled.
2743
2744 2007-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2745
2746         * MonthCalendar.cs: Set the size after initializing all the relevant
2747           variables. Fixes #81742.
2748
2749 2007-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2750
2751         * KeyEventArgs.cs: Fix typo.
2752
2753 2007-05-28  Gert Driesen  <drieseng@users.sourceforge.net>
2754
2755         * DateTimePicker.cs: Changed exceptions thrown by MinDate and MaxDate
2756         to match MS. Fixed MinDate to only accept value less than or equal
2757         to MaxDate on 2.0 profile and less than MaxDate on 1.0 profile.
2758         Removed TODO's that are now verified by unit tests.
2759
2760 2007-05-27  Gert Driesen  <drieseng@users.sourceforge.net>
2761
2762         * TreeNodeCollection.cs: Minor corrections to exceptions to match
2763         MS.
2764
2765 2007-05-25  Jackson Harper  <jackson@ximian.com>
2766
2767         * X11Dnd.cs: Rework to make StartDrag a blocking call that runs
2768         it's own message loop.
2769         * XplatUIX11.cs: Remove some of the dnd hooks
2770
2771 2007-05-25  Gert Driesen  <drieseng@users.sourceforge.net>
2772
2773         * XplatUIX11.cs: Change MinimumWindowSize to {Width=0,Height=0}
2774         instead of MinimizedWindowSize.
2775
2776 2007-05-25  Jackson Harper  <jackson@ximian.com>
2777
2778         * TextBoxBase.cs: Raise textchanged when cutting and pasting text.
2779
2780 2007-05-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2781
2782         * KeyEventArgs.cs: Added SuppressKeyPress.
2783         * Control.cs: Added support for SuppressKeyPress.
2784
2785 2007-05-24  Andreia Gaita  <avidigal@novell.com>
2786
2787         * NumericUpDown.cs: Refactor code to fix regressions on #79950 and
2788         problems with PieChart. suppress_validation should not be a counter,
2789         if there are several BeginInit calls, the first EndInit will 
2790         activate validation. Fix exceptions thrown by set_Value.
2791         * UpDownBase.cs: ValidateText only if it's the user editing it.
2792
2793 2007-05-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2794
2795         * ListControl.cs: FilterItemOnProperty should return the filtered
2796         item proeprty even if DataSource is null. The same applies for
2797         GetItemText. Fixes #80427.
2798
2799 2007-05-24  Jonathan Pobst  <monkey@jpobst.com>
2800
2801         * Control.cs: If a control doesn't have a parent when it's Dock is
2802         set, but it has children, it needs to do a layout.  Fixes some nested
2803         controls issues.  [Fixes bug #81199]
2804
2805 2007-05-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2806
2807         * ComboBox.cs: If there are few items in the drop down list, make it
2808           the exact size the items need, no bigger. Fixes #81612.
2809
2810 2007-05-24  Jonathan Pobst  <monkey@jpobst.com>
2811
2812         * Application.cs: When we have captured the keyboard for a menu,
2813         check for mouse down events in case we need to close the menu.
2814         * Control.cs, Form.cs: Remove mouse down checks for menus.
2815
2816 2007-05-24  Jackson Harper  <jackson@ximian.com>
2817
2818         * TextControl.cs: Handle tabs in non multiline mode a little
2819         differently.
2820
2821 2007-05-24  Jackson Harper  <jackson@ximian.com>
2822
2823         * TextControl.cs: We need to manually break apart tabbed text and
2824         move the tabs, since the system.drawing tabbing mechanism relies
2825         on tab stops.
2826         * TextBoxBase.cs: Move the caret properly when the user enters a
2827         tab.
2828
2829 2007-05-24  Jonathan Pobst  <monkey@jpobst.com>
2830
2831         * ContainerControl.cs: Don't check CanSelect before calling
2832         ProcessMnemonic.
2833         * ToolStrip.cs: Only do implicit mnemonics on MenuStrips.  Don't
2834         release a KeyboardActive on click if it's not ours.
2835
2836 2007-05-23  Andreia Gaita  <avidigal@novell.com>
2837
2838         * ColumnHeader.cs: Add TypeConverter
2839
2840 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
2841
2842         * LinkLabel.cs: Implement LinkCollection.Add with Link parameter (2.0).
2843
2844 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
2845
2846         * LinkLabelLinkClickedEventArgs.cs, LinkLabel.cs: Implement Button property.
2847
2848 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
2849
2850         * LinkLabel.cs: Implement public Padding property.
2851
2852 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
2853
2854         * LinkLabel.cs: Implement public FlatStyle.
2855
2856 2007-05-23  Jonathan Pobst  <monkey@jpobst.com>
2857
2858         * Control.cs: Apply patch from George to call parent.PerformLayout
2859         when Visible is changed.  [Fixes bugs #81118, 81718]
2860
2861 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
2862
2863         * MainMenu.cs, MenuAPI.cs: Implement Collapse event for MainMenu (2.0).
2864
2865 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
2866
2867         * ContextMenu.cs: Implement ProcessCmdKey with control parameter.
2868
2869 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
2870
2871         * ContextMenu.cs: Implement Collapse.
2872
2873 2007-05-23  Rolf Bjarne Kvinge <RKvinge@novell.com>
2874
2875         * ToolBarButton.cs: Implement Name.
2876
2877 2007-05-22  Everaldo Canuto  <ecanuto@novell.com>
2878
2879         * ToolBar.cs: Fix OnButtonDropDown to save item used in dropdown instead of
2880         use current_item, it prevents some NRE. Fixes #81675.  
2881
2882 2007-05-22  Andreia Gaita  <avidigal@novell.com>
2883
2884         * NumericUpDown.cs: Fix PieChart by not returning from UpdateEditText
2885         without updating the text.
2886
2887 2007-05-22  Jonathan Pobst  <monkey@jpobst.com>
2888
2889         * XplatUIWin32.cs: Plug a GDI leak caused by calling Font.ToHfont ()
2890         without calling DeleteObject.  [Should fix bug #81709]
2891
2892 2007-05-22  Jackson Harper  <jackson@ximian.com>
2893
2894         * RichTextBox.cs: Set the line endings correctly, when flushing
2895         RTF text.
2896
2897 2007-05-22  Gert Driesen  <drieseng@users.sourceforge.net>
2898
2899         * XplatUIX11.cs: MinimumWindowSize on X11 is actually
2900          {Width=0,Height=0}.
2901
2902 2007-05-22  Jackson Harper  <jackson@ximian.com>
2903
2904         * TreeView.cs: Setting top with a null node should set to the very
2905         top.
2906
2907 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2908
2909         * Form.cs: ShowDialog: destroy the handle when message loop is
2910           finished, matches MS behaviour. Refactor parts of WmClose into
2911           RaiseCloseEvents, that only raises events if they haven't already
2912           been raised. Fixes #81688 and #81521.
2913         * Application.cs: Don't call close on the form when exiting a modal
2914           loop, it will raise all the (Form)Closed/Closing events again if
2915           WM_CLOSE has been sent earlier on, instead call RaiseCloseEvent,
2916           which doesn'r raise any events it they have been raised before.
2917
2918 2007-05-22  Jonathan Pobst  <monkey@jpobst.com>
2919
2920         * Control.cs: Add OnPrint.
2921         * ToolStrip.cs: Add GetChildAtPoint.
2922         * ToolStripContainer.cs: Add OnRightToLeftChanged.
2923         * ToolStripRenderer.cs: Make CreateMirrorImage internal.
2924
2925 2007-05-22  Everaldo Canuto  <ecanuto@novell.com>
2926
2927         * MenuAPI.cs: Prevent context menu to be typed as MainMenu. Fixes #81509.  
2928
2929 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2930
2931         * InternalWindowManager.cs: ToolTipShow: Don't show tooltip if the form
2932           isn't visible anymore. Fixes #81651.
2933
2934 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2935
2936         * Control.cs: WmShowWindow: Update children's z-order after setting
2937           their parent. SetParent may show the window, thereby corrupting
2938           z-order, since the window will be shown on top.
2939         * XplatUIWin32.cs: SetParent: don't call SetVisible on forms. Prevents
2940           multiple (and redundant) WM_SHOWWINDOW messages.
2941         * MdiWindowManager.cs: RaiseDeactivate: only raise after an Activate
2942           event has already been raised.
2943         * Form.cs: Change is_changing_visible_state to a counter, since
2944           SetVisibleCore can be called recursively. CreateHandle: when
2945           creating mdi children, send (De)Activated events.
2946         * MdiClient.cs: Update use of is_changing_visible_state.
2947         * Application.cs: OnThreadException: Surround exception handling with
2948           try/finally to ensure we always reset the error-handling state
2949           before leaving.
2950
2951 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2952
2953         * ThemeWin32Classic.cs: DrawProgressBar: Avoid a DivideByZero exception
2954           (#81704).
2955
2956 2007-05-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2957
2958         * ListView.cs: Use Theme.ListViewHorizontalSpacing for List and
2959         SmallIcon views, now that we have a standarized horizontal spacing.
2960
2961         * ThemeWin32Classic.cs: ListViewHorizontalSpacing now has a value of
2962         4, just like the other views (Match .Net).
2963
2964 2007-05-21  Jonathan Pobst  <monkey@jpobst.com>
2965
2966         * Control.cs: Delay calculating anchor distances until we actually layout.
2967         Always query the WM for the actual size and location it put us at instead of
2968         only when we send negative values.
2969         [Fixes bugs #81694, 81695]
2970
2971 2007-05-21  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2972
2973         * Application.cs: Avoid a possible stack overflow when trying to exit
2974           the application.
2975
2976 2007-05-19  Marek Safar  <marek.safar@gmail.com>
2977
2978         * Theme.cs (GetHatchBrush): A key uses internal value instead of formated
2979         enum value.
2980
2981 2007-05-19  Andreia Gaita  <avidigal@novell.com>
2982
2983         * NumericUpDown.cs: Added 2.0 methods (spin acceleration)
2984         * NumericUpDownAcceleration.cs, 
2985           NumericUpDownAccelerationCollection.cs: Added 2.0
2986           implementation.
2987
2988 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
2989
2990         * RichTextBox.cs: Recalculate the document after the ScrollBars
2991         property is changed. Fixes bug #81681.
2992
2993 2007-05-18  Jonathan Pobst  <monkey@jpobst.com>
2994
2995         * DataObject.cs: Implement 2.0 methods.
2996
2997 2007-05-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2998
2999         * ThemeWin32Classic.cs: Draw the check marks in ListViewItems
3000         in the center of the checkbox, not in the left-top corner. 
3001         Fixes #80037.
3002
3003 2007-05-18  Jackson Harper  <jackson@ximian.com>
3004
3005         * RichTextBox.cs: Recalculate the document after the scrollbars
3006         property is changed.
3007         * TextBoxBase.cs: ScrollBars is not a flags enum...This fixes
3008         81486.
3009
3010 2007-05-18  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3011
3012         * CreateParams.cs: Make HasWindowManager marginally faster.
3013         * XplatUIX11.cs, Hwnd.cs: CreateWindow: Move the default location code
3014           into Hwnd so that other drivers can use it as well.
3015         * XplatUIWin32.cs: CreateWindow: If the window has a window manager get
3016           the default location from Hwnd. Fixes MDI client windows always
3017           showing up at (0,0) in Windows (Win32 won't set the default
3018           location since the window styles aren't correct).
3019
3020 2007-05-18  Gert Driesen  <drieseng@users.sourceforge.net>
3021
3022         * TreeView.cs: Modified DoubleBuffered to just use the base
3023         implementation.
3024
3025 2007-05-18  Jackson Harper  <jackson@ximian.com>
3026
3027         * TreeView.cs: Set the top node to the last child node when
3028         expanding all
3029         - When we get focus, if there is no selected node, use the top
3030         node.
3031
3032 2007-05-18  Jonathan Pobst  <monkey@jpobst.com>
3033
3034         * KeysConverter.cs: Add CanConvertTo.
3035         * LinkLabel.cs: Add some 2.0 constructors and properties to LinkLabel.Link.
3036         * LinkConverter.cs: Added.
3037
3038 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
3039
3040         * Cursor.cs: Apply Sebastien patch from #81669 to open file in read mode,
3041         it prevents error when file dont have write access. Fixes #81669 and #81667.  
3042
3043 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
3044
3045         * ThemeWin32Classic.cs: Check for ShowKeyboardCues true when draw toolbar 
3046         button text. Fixes #79640.  
3047
3048 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
3049
3050         * Control.cs: According to MSDN controls created in the designer theres 
3051         keyboard accelerators visible by default. So included check for design
3052         in ShowKeyboardCuesInternal.  
3053
3054 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
3055
3056         * ThemeWin32Classic.cs: Check for ShowKeyboardCues true when draw combobox 
3057         text. Fixes #81621.  
3058
3059 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
3060
3061         * Control.cs: ShowKeyboardCuesInternal add to expose ShowKeyboardCues
3062         for 1.0, becuse ShowKeyboardCues is protected on 1.0.  
3063
3064 2007-05-17  Everaldo Canuto  <ecanuto@novell.com>
3065
3066         * Control.cs: Finish implementation of UI State using WmChangeUIState
3067         to send WM_UPDATEUISTATE to all child controls. Some hack will be needed
3068         in some controls to check for show_keyboard_cues to draw accell keys "_".  
3069
3070 2007-05-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3071
3072         * ListBox.cs: When calculating the horizontal scrollbar
3073         in single column mode, don't use values less than 0 for
3074         Maximum. Fixes #81474.
3075
3076 2007-05-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3077
3078         * ListBox.cs: Throw the some missing exceptions in
3079         ListBox.ObjectCollection methods.
3080
3081 2007-05-17  Jackson Harper  <jackson@ximian.com>
3082
3083         * TextBoxBase.cs: Recalculate the document when the word wrap
3084         value has changed. This fixes 81488.
3085
3086 2007-05-17  Jonathan Pobst  <monkey@jpobst.com>
3087
3088         * Clipboard.cs: Implement missing GetText overload.
3089
3090 2007-05-17  Chris Toshok  <toshok@ximian.com>
3091
3092         * Control.cs (CheckDataBindings): remove the binding_context arg
3093         to binding.Check.
3094
3095         * CurrencyManager.cs (OnItemChanged): fix this now that
3096         BindingManagerBase is fixed. also remove the comment telling where
3097         the fix should go.  We set transfering_data to true/false around
3098         the call to PushData to keep UpdateIsBinding from being called.
3099         (ListChangedHandler): remove the extra OnMetaDataChanged call for
3100         PropertyDescriptorAdded in the 1.1 case.  The extra call is
3101         actually generated by System.Data generating 2 metadata changed
3102         events of its own per column add.  The fix should go there.  Add a
3103         comment to that affect in our test's Assert.Ignore.
3104
3105         * BindingManagerBase.cs: Rework PullData and PushData slightly.
3106         we keep a boolean flag (transfering_data) that keeps us from
3107         calling UpdateIsBinding multiple times if we re-enter either of
3108         them.
3109
3110         * ControlBindingsCollection.cs (AddCore): remove the
3111         binding_context arg to binding.Check.
3112
3113         * Binding.cs (IsBinding): don't check if we're binding here, just
3114         return our cached value.  we update it in UpdateIsBinding.
3115         (Check): don't take the binding_context arg, we'll just use our
3116         control's.  Also, for some reason MS doesn't use the data member
3117         field when getting the bindingmanager for this binding.  it just
3118         uses the datasource.  Make this method callable multiple times,
3119         and only do the is_null_desc stuff if manager.Position != -1 (so
3120         we don't get an exception accessing manager.Current).
3121         (UpdateIsBinding): move the code from IsBinding here.
3122         (PositionChangedHandler): call Check here to we can initialize
3123         things that require a non- -1 position.
3124
3125 2007-05-17  Everaldo Canuto  <ecanuto@novell.com>
3126
3127         * Form.cs: When alt keys is pressed send WM_CHANGEUISTATE to top level
3128         control.
3129
3130 2007-05-17  Andreia Gaita  <avidigal@novell.com>
3131
3132         * TabControl.cs: Add 2.0 methods and events, including
3133         OnEnter / OnLeave and raises it for tabpages (fixes #79869)
3134         * TabPage.cs: Add 2.0 methods
3135
3136 2007-05-17  Everaldo Canuto  <ecanuto@novell.com>
3137
3138         * Control.cs: Implement WmUpdateUIState, show_focus_cues and
3139         keyboard_cues is properly handled by message method.  
3140
3141 2007-05-17  Jonathan Pobst  <monkey@jpobst.com>
3142
3143         * TreeViewImageIndexConverter.cs: Add 2.0 methods.
3144
3145 2007-05-17  Jonathan Pobst  <monkey@jpobst.com>
3146
3147         * ToolStripTextBox.cs: Wire up new 2.0 Textbox methods/properties.
3148
3149 2007-05-16  Everaldo Canuto  <ecanuto@novell.com>
3150
3151         * Control.cs: 
3152         - WmUpdateUIState added to handle state changes, it make call to
3153         OnChangeUICues event.
3154         - Fixed ShowKeyboardCues to check for MenuAccessKeysUnderlined in
3155         SystemInformation.
3156
3157 2007-05-16  Jonathan Pobst  <monkey@jpobst.com>
3158
3159         * ImageKeyConverter.cs: Added.
3160         * TreeViewImageKeyConverter.cs: Added.
3161
3162 2007-05-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3163         
3164         * ToolTips.cs: Update Text if SetToolTip is called for a control
3165         already showing the tooltip, as well as restarting its timer; show
3166         tooltip if we are inside the control bounds by the time of calling
3167         SetToolTip. Inside ShowTooltip remove the check to not show the 
3168         tooltip again for the active control (it is allowed by .Net to 
3169         show the tooltip on the same control multiple times).
3170
3171 2007-05-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3172
3173         * MaskedTextBox.cs: Small fix for Text that fixes a broken test.
3174
3175 2007-05-16  Andreia Gaita <avidigal@novell.com> 
3176
3177         * ContainerControl.cs: only process tab key if there are no 
3178         modifier keys present, otherwise the control does the 
3179         tab processing, if it needs to. Fixes #81622
3180         * TabControl.cs: Fixes calculation for which tab to select on
3181         shift+ctrl+tab.
3182
3183 2007-05-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3184
3185         * MaskedTextBox.cs: Small fix for Text that fixes a broken test.
3186
3187 2007-05-15  Jonathan Pobst  <monkey@jpobst.com>
3188
3189         * Control.cs: Make IsInputCharInternal to allow controls to
3190         override it and still match MS API.
3191         * TextBoxBase.cs: Override IsInputCharInternal and always
3192         return true.
3193         [Fixes bug #81616]
3194
3195 2007-05-15  Jackson Harper  <jackson@ximian.com>
3196
3197         * TextBox.cs: Disable some of the menu options when using a
3198         readonly textbox.
3199
3200 2007-05-15  Jackson Harper  <jackson@ximian.com>
3201
3202         * TextBox.cs:
3203         * TextBoxBase.cs:
3204         * RichTextBox.cs: Some new 2.0 methods
3205
3206 2007-05-15  Gert Driesen  <drieseng@users.sourceforge.net>
3207
3208         * FileDialog.cs: On 1.0 profile, do not support multidotted 
3209         extensions.
3210
3211 2007-05-14  Jackson Harper  <jackson@ximian.com>
3212
3213         * TextBoxBase.cs: Implement some of the new 2.0 methods.
3214         * RichTextBox.cs: We need to override these methods on 2.0.
3215         * MaskedTextBox.cs: These are implemented now
3216         * TextControl.cs: This was off by one.
3217
3218 2007-05-14  Jackson Harper  <jackson@ximian.com>
3219
3220         * TextControl.cs: Because the line endings are including in the
3221         text, we don't need to add them in anymore.
3222
3223 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
3224
3225         * ToolBar.cs: Fix autosize and get it working only after hadle is created,
3226         also prevent redraw in set_autosize if handle is not created. Fixes #81523.
3227
3228 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
3229
3230         * ToolBar.cs: Adjust size to default size when button theres no text and
3231         image, it fixes remaining issues from #81524.
3232
3233 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
3234
3235         * ToolBar.cs: 
3236         - When not flat call redraw to recalculate sizes on creare handle to match
3237         win32 behavior.
3238         - Revert 77220 because it causes some regressions in toobar
3239         button.
3240
3241 2007-05-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3242
3243         * MaskedTextBox.cs: Update the base text whenever the text changes. MTB
3244           now actually enters a usable state.
3245
3246 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
3247
3248         * ToolBar.cs: Check for handle created in redraw to prevent unneeded size
3249         calculations, it reduces the size cauculation from 7 to 3 on a toolbar with
3250         3 buttons.
3251
3252 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
3253
3254         * ToolBar.cs: Save default_size on create handle to use later for buttons
3255         without text, needed to mimic win32 behavior.
3256
3257 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
3258
3259         * ToolBar.cs: Fix button layour to best fit width or height according to
3260         vertical or not. Fixes #81524.
3261
3262 2007-05-10  Everaldo Canuto  <everaldo@simios.org>
3263
3264         * ToolBarButton.cs: When change style call ToolBar.Redraw to update
3265         toolbar size info because different styles theres different sizes.
3266         Fixes #81522.
3267
3268 2007-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3269
3270         * ThemeWinClassic.cs: For .Net 2.0 don't draw any image
3271         if we are using checkboxes, checked is true, and we have less
3272         than two images in StateImageList; for the 1.1 in the same scenario
3273         draw the first image if we have at least one image in StateImageList.
3274         Fixes part of #81191.
3275
3276 2007-05-10  Jonathan Pobst  <monkey@jpobst.com>
3277
3278         * ToolStrip.cs, ToolStripManager.cs: We need to remove items from
3279         the owner's Items collection on merge.
3280
3281 2007-05-10  Jonathan Pobst  <monkey@jpobst.com>
3282
3283         * ToolStrip.cs: Use new internal ToolStripItemCollection constructor.
3284         * ToolStripItemCollection.cs: Lots of fixes to when events get called
3285         and parent/owner gets changed based on gert's unit tests.
3286
3287 2007-05-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3288
3289         * MaskedTextBox.cs: Started implementing parts of it.
3290
3291 2007-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3292
3293         * ListView.cs: When clicking the checkbox on the items
3294         take into account the double clicks even if we have only
3295         one image in StateImageList (only for 1.0/1.1). Also 
3296         generate an extra change of checked state when we receive
3297         the second click on checkbox (match .Net behaviour). 
3298         Fixes part of #81191.
3299
3300 2007-05-10  Everaldo Canuto  <everaldo@simios.org>
3301
3302         * ThemeWin32Classic.cs: Fix text rectangles in Tooltips.
3303
3304 2007-05-10  Jonathan Pobst  <monkey@jpobst.com>
3305
3306         * Form.cs: Move some of OnLoad to OnLoadInternal so it gets called
3307         even if OnLoad is overriden and base.OnLoad is not called.
3308         [Fixes bug #81582]
3309
3310 2007-05-10  Andreia Gaita  <avidigal@novell.com>
3311
3312         * TableLayoutSettings.cs: A big doh! fix and bowing down of head in 
3313         shame. (I blame my ever-persisting and annoying cold)
3314
3315 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
3316
3317         * ListView.cs: Don't eat navigation keys.  Let them flow through to
3318         KeyDown/KeyPress routines.  [Fixes bug #81569]
3319
3320 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
3321
3322         * ListView.cs: When handling keys for selecting the item based off
3323         keyboard input, do not consider keys pressed with Alt or Control.  Also,
3324         correctly handle keys when the Shift key is down. [Fixes bug #81578]
3325
3326 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
3327
3328         * Control.cs: When using UseWaitCursor, we have to store the requested
3329         Cursor to use when UseWaitCursor is turned off.
3330
3331 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
3332
3333         * Control.cs: Implement PreProcessControlMessage.  Default IsInputChar
3334         to false.
3335         * Application.cs: Use PreProcessControlMessage instead of
3336         PreProcessMessage.
3337         * PreProcessControlMessage.cs: Make internal for 1.1.
3338
3339 2007-05-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3340
3341         * Control.cs: Add InternalContains focus property, which hast the same
3342         functionality of ContainsFocus, but also including implicit controls.
3343         * ListViewItem.cs: Use InternalContainsFocus instead of ContainsFocus,
3344         since we need to know if the focus is contained in our implicit
3345         ItemControl when calculating Layout. Fixes part of #80888.
3346
3347 2007-05-08  Everaldo Canuto  <everaldo@simios.org>
3348
3349         * ToolTip.cs: Remove center form string alignment as it must be align to
3350         left.
3351
3352 2007-05-08  Jonathan Pobst  <monkey@jpobst.com>
3353
3354         * ToolStripItemCollection.cs: Set the new item's parent and owner
3355         in Insert like we do in Add.  [Fixes bug #81568]
3356
3357 2007-05-08  Jackson Harper  <jackson@ximian.com>
3358
3359         * TreeView.cs: GotFocus differences between 1.1 and 2.0.
3360         - Off by one error in SetTop
3361         - Disable DoubeBuffering
3362         
3363 2007-05-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3364
3365         * ScrollableControl.cs: ScrollIControlntoView: we now only move the
3366           control as much as necessary in order to make it entirely visible,
3367           instead of centering the control in the container (matches MS
3368           behaviour). CalculateCanvasSize: we need to take the current scroll
3369           position into account when calculating the maximum canvas,
3370           otherwise the following scenario will fail: resize so that the
3371           scrollbars appear, use the scrollbars to scroll, resize again
3372           smaller, and now the canvas size is too small. Recalculate: when
3373           showing scrollbars make sure they start off at 0, and try to scroll
3374           the active control into view. Fixes #79540. HandleScrollBar: don't
3375           scroll anywhere if the scrollbar isn't visible.
3376
3377 2007-05-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3378
3379         * ListView.cs: When focus changed, call Layout/Invalidate
3380         in the focused item to update the selected state (should show
3381         entire label when ListView is focused, and a part of it if is not).
3382         * ListViewItem.cs: When doing layout for LargeIcon, take into account
3383         for displaying the entire label not only the Focused state of the
3384         item, but also the Focused state of the ListView (match .Net
3385         behaviour).
3386
3387 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
3388
3389         * Control.cs: Stub CanRaiseEvents, IsMirrored, and NotifyClients.
3390         Implement UseWaitCursor. 
3391
3392 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
3393         Applying contributed patch from Sergey Volk.
3394
3395         * Clipboard.cs: Implement SetDataObject retry logic and new overload
3396         of SetDataObject.
3397         * XplatUIWin32.cs: Throw an ExternalException if the clipboard set fails.
3398
3399 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
3400
3401         * Control.cs: Implement DrawToBitmap.
3402
3403 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
3404         Applying contributed patch from Stefan Noack.
3405         
3406         * Control.cs: Add [Get|Set]AutoSizeMode.
3407
3408 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
3409
3410         * MdiClient.cs: Unmerge menus when the last child is closed.
3411
3412 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
3413
3414         * ToolStrip.cs: Do not call BeginMerge on DropDowns.
3415         * ToolStripManager.cs: Call Merge on DropDowns.
3416         [Fixes bug #81477]
3417
3418 2007-05-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3419
3420         * XplatUIWin32.cs: Changed Win32CreateWindow to take enums instead of
3421           uints.
3422         * Form.cs: CreateParams: don't set WS_VISIBLE if we're changing
3423           visibility. We can't create forms visible, since we have to set the
3424           owner before making the form visible (otherwise Win32 will do
3425           strange things with task bar icons). The problem is that we set the
3426           internal is_visible to true before creating the control, so
3427           is_changing_visible_state is the only way of determining if we're
3428           in the process of creating the form due to setting Visible=true -
3429           this works because SetVisibleCore explicitly makes the form
3430           visibile afterwards anyways. Fixes #80775.
3431
3432 2007-05-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3433
3434         * ThemeWin32Classic.cs: When drawing ListViewItems,
3435         use StringTrimming.EllipsisCharacter if the view is Tile, Details,
3436         or LargeIcon _and_ item is not focused (match .Net behaviour).
3437
3438 2007-05-04  Jonathan Pobst  <monkey@jpobst.com>
3439
3440         * Control.cs, Form.cs: Fix some obsolete method warnings.
3441
3442 2007-05-04  Jonathan Pobst  <monkey@jpobst.com>
3443
3444         * Control.cs: Implement GetChildAtPoint and OnParentCursorChanged.
3445         * GetChildAtPointSkip.cs: Make internal for 1.1 profile.
3446
3447 2007-05-04  Andreia Gaita  <avidigal@novell.com>
3448
3449         * ContainerControl.cs: Fix active_control attribution when going
3450         up the parent chain so that the first parent container gets the control
3451         and the rest of the parent containers get the child containers (skips
3452         non-containers). Fixes #80729
3453
3454 2007-05-04  Randolph Chung  <tausq@debian.org>
3455
3456         * FileDialog.cs: Implement the SupportMultiDottedExtensions property.
3457         [Fixes bug #81499]
3458
3459 2007-05-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3460
3461         * XplatUIX11.cs: Add a TranslateWindowSizeToXWindowSize overload that
3462           takes a size parameter, since the CreateParam's size isn't true for
3463           minimized forms. Fixes #81518,
3464
3465 2007-05-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3466
3467         * Form.cs: Add OnDeactivateInternal.
3468         * MdiClient.cs: Raise Deactivate event. Fixes #81409.
3469
3470 2007-05-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3471
3472         * DateTimePicker.cs: CalculateDropDownLocation: do a null check before
3473           accessing the parent. Fixes #81508.
3474
3475 2007-05-03  Chris Toshok  <toshok@ximian.com>
3476
3477         * CurrencyManager.cs (CurrencyManager.ListChangeHandler): in the
3478         2.0 block, pass listposition + 1 to ChangeRecordState when a row
3479         was added before the current listposition.  Fixes the
3480         TestInsertRowBeforeCurrent unit test.
3481
3482 2007-05-03  Jonathan Pobst  <monkey@jpobst.com>
3483
3484         * Application.cs: Add RaiseIdle.
3485         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
3486         XplatUIX11.cs: Implement RaiseIdle.
3487
3488 2007-05-02  Jonathan Pobst  <monkey@jpobst.com>
3489         corcompare work: N - Z
3490         * NotifyIcon.cs
3491         * ProgressBar.cs
3492         * RadionButton.cs
3493         * ScrollableControl.cs
3494         * SplitContainer.cs
3495         * SplitterPanel.cs
3496         * StatusBar.cs
3497         * SystemInformation.cs
3498         * TabControl.cs
3499         * TableLayoutControlCollection.cs
3500         * TableLayoutPanel.cs
3501         * TabPage.cs
3502         * ToolBar.cs
3503         * ToolBarButton.cs
3504         * ToolStrip.cs
3505         * ToolStripComboBox.cs
3506         * ToolStripContainer.cs
3507         * ToolStripContentPanel.cs
3508         * ToolStripDropDown.cs
3509         * ToolStripDropDownItem.cs
3510         * ToolStripDropDownMenu.cs
3511         * ToolStripItem.cs
3512         * ToolStripItemCollection.cs
3513         * ToolStripMenuItem.cs
3514         * ToolStripPanel.cs
3515         * ToolStripSplitButton.cs
3516         * ToolTip.cs
3517         * TreeNode.cs
3518         * TreeNodeCollection.cs
3519         * TreeNodeMouseHoverEventArgs.cs
3520         * TreeView.cs
3521
3522 2007-05-01  Everaldo Canuto  <everaldo@simios.org>
3523
3524         * ContextMenu.cs: Add public method Show with alignment property to 2.0
3525         stuff. Thanks aatdark for the patch. 
3526
3527 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
3528
3529         * GridItem.cs: Implement 2.0 Tag property.
3530
3531 2007-05-01  Frederik Carlier <frederik.carlier@carlier-online.be> 
3532
3533         * TreeNodeCollection.cs: Fix ContainsKey and IndexOfKey methods to use
3534         count instead of Nodes.Length.  [Fixes bug #81448]
3535
3536 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
3537
3538         * ComboBox.cs: Fix paramName sent to ArgumentOutOfRangeException's.
3539         [Fixes bug #81506]
3540
3541 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
3542         corcompare work: A - M
3543         * BindingNavigator.cs
3544         * Button.cs
3545         * ButtonBase.cs
3546         * CheckBox.cs
3547         * Control.cs
3548         * FlowLayoutPanel.cs
3549         * Form.cs
3550         * Label.cs
3551         * LinkLabel.cs
3552         * ListView.cs
3553
3554 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
3555
3556         * Application.cs: Give toolstrips a chance to process mnemonics.
3557         * ToolStrip.cs, ToolStripDropDownButton.cs, ToolStripItem.cs,
3558         ToolStripItemTextRenderEventArgs.cs, ToolStripLabel.cs,
3559         ToolStripMenuItem.cs, ToolStripSplitButton.cs: Implement keyboard mnemonics.
3560
3561 2007-05-01  Jackson Harper  <jackson@ximian.com>
3562
3563         * TextBoxBase.cs: Better preferred height, FixedSingle gets the
3564         wider area too.
3565         - Don't set the BoundsSpecified
3566
3567 2007-04-30  Jonathan Pobst  <monkey@jpobst.com>
3568
3569         * Application.cs: When using the toolstrip shortcut mechanism, allow the
3570         message to pass through to a regular control if it hosted by a toolstrip.
3571         * ToolStrip.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
3572         ToolStripManager.cs: Enable keyboard navigation for ToolStrips.
3573
3574 2007-04-30  Jonathan Pobst  <monkey@jpobst.com>
3575
3576         * TextRenderer.cs: Use the flags argument when using the MeasureString
3577         fallback algorithm.
3578
3579 2007-04-30  Jonathan Pobst  <monkey@jpobst.com>
3580
3581         * MenuStrip.cs: Don't let multiple ToolStripSeparators get added to
3582         the MDI menu item.  [Fixes bug #81483]
3583
3584 2007-04-30  Gert Driesen  <drieseng@users.sourceforge.net>
3585
3586         * DataGridViewColumn.cs: Initialize value of headercell to zero-length
3587         string. When setting Name to null, use zero-length string instead.
3588
3589 2007-04-29  Andreia Gaita  <avidigal@novell.com>
3590
3591         * TabControl.cs: Implement missing 2.0 methods (SelectTab, 
3592         DeselectTab). Implement missing 2.0 TabPageCollection methods
3593         (Add, ContainsKey, RemoveByKey, IndexOfKey)
3594
3595 2007-04-29  Pedro Martínez Juliá  <pedromj@gmail.com>
3596
3597         * DataGridViewColumn.cs: Make HeaderText take preference over Name.
3598
3599 2007-04-29  Gert Driesen  <drieseng@users.sourceforge.net>
3600
3601         * RichTextBox.cs: In LoadFile, use StreamReader to read plain text.
3602         Fixes bug #81479. Include details of exception when LoadFile fails.
3603
3604 2007-04-28  Alan McGovern <alan.mcgovern@gmail.com>
3605
3606         * DrawListViewSubItemEventArgs.cs: Added missing setter
3607
3608 2007-04-27  Andreia Gaita  <avidigal@novell.com>
3609
3610         * ToolTip.cs: Add missing 2.0 properties. Implement 2.0 Show and 
3611         Hide methods (not complete). Implement missing 2.0 OnPopup event.
3612
3613 2007-04-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3614
3615         * ListView.cs: In ItemControl.OnMouseDown restore a pair of braces I
3616         removed in ly last commit (it was breaking the Label edit feature).
3617
3618         * ThemeWin32Classic.cs: When drawing a ListViewItem use
3619         StringAlignment.Near for LineAlignment (match .Net).
3620
3621 2007-04-27  Andreia Gaita  <avidigal@novell.com>
3622
3623         * TabControl.cs: Change SetTab so it adds the tabpage to the list
3624         of controls if it isn't already there - was blowing up when doing
3625         tabcontrol.TabPages[i]=new TabPage(). 
3626         SetTab now does a replace by removing the page at the index. 
3627         Add a new InsertTab method that inserts a page in a given index 
3628         instead of replacing. 
3629         Implements TabPageCollection.Insert(int, TabPage).
3630
3631 2007-04-27  Chris Toshok  <toshok@ximian.com>
3632
3633         * BindingManagerBase.cs: fill in CurrentItemChanged (and have an
3634         internal handler that can be invoked from our subclasses.)  Also,
3635         add a comment to PushData about how we need to fix it.
3636
3637         * CurrencyManager.cs: tons of changes here.  trying to get things
3638         matching the behavior of .net wrt event orders (ItemChanged,
3639         CurrentChanged, PositionChanged.)  I've implemented a private .net
3640         symbol (ChangeRecordState) that appears in stack traces because
3641         it's actually easier to do this than to effective inline all its
3642         various behaviors at every call site.
3643
3644         * RelatedPropertyManager.cs: guard against an exception here by
3645         not using parent.Current if the position is set to -1 (if the
3646         parent datasource is cleared, for instance).
3647
3648         * Binding.cs: don't parse data in PushData (this might be wrong,
3649         but it jives with MS's behavior.)  Also, don't call PushData when
3650         we get a CurrentChanged event.
3651
3652 2007-04-27  Andreia Gaita  <avidigal@novell.com>
3653
3654         * WebBrowser.cs,
3655           WebBrowserBase.cs,
3656           WebBrowserSiteBase.cs,
3657           HtmlDocument.cs: Added stubbed out classes, no real implementations 
3658           yet.
3659
3660 2007-04-27  Everaldo Canuto  <everaldo@simios.org>
3661
3662         * MainMenu.cs: In draw method without parameters call draw method with 
3663         PaintEvent, another one (just rect) adjust rectangle and we dont need it
3664         as Rect property is already adjusted. Fixes #80694.
3665
3666 2007-04-27  Jonathan Pobst  <monkey@jpobst.com>
3667
3668         * Application.cs: Need to handle keyboard menu deselection here.
3669         * Control.cs: Use WM_SYSKEYUP instead of WM_SYSCOMMAND to start menu keyboard
3670         navigation, allowing keyboard to work on X11.
3671         * ToolStrip.cs: Don't worry about handling the Menu key here anymore.
3672
3673 2007-04-27  Everaldo Canuto  <everaldo@simios.org>
3674
3675         * MenuAPI.cs: When deactivate menu verify if hotkey (_) is active and redraw
3676         menu bar. It fixes some drawing issues in menu bar.
3677
3678 2007-04-27  Everaldo Canuto  <everaldo@simios.org>
3679
3680         * MenuAPI.cs: Remove unneeded "keynav_state = KeyNavState.Idle" before 
3681         Deactivate calls, Deactivate method already do it. Also ser ActiveTracker
3682         when <alt> key is pressed.
3683
3684 2007-04-26  Everaldo Canuto  <everaldo@simios.org>
3685
3686         * XplatUIX11.cs: Simplify SystrayRemove to be like other libraries,     Gtk as 
3687         example just set visible to false and make this prevent from other problems.
3688         In SystrayAdd always remove pending expose. Fixes #81072.
3689
3690 2007-04-26  Marek Safar  <marek.safar@gmail.com>
3691
3692         * TextBoxBase.cs (CaretMoved): Consider scroll maximum when scroll
3693         value is set.
3694
3695 2007-04-26  Alan McGovern <alan.mcgovern@gmail.com>
3696
3697         * ListView.cs: Added three missing 2.0 events and corresponding
3698         EventHandlers. Added the OwnerDraw property.
3699         * DrawListViewColumnHeaderEventHandler.cs: fixed typo
3700
3701 2007-04-26  Alan McGovern <alan.mcgovern@gmail.com>
3702
3703         * DrawListViewItemEventArgs.cs
3704         * DrawListViewSubItemEventArgs.cs: Brought classes up to 2.0 status.
3705
3706 2007-04-26  Alan McGovern <alan.mcgovern@gmail.com>
3707
3708         * TextControl.cs: Fixed typo in constructor
3709
3710 2007-04-26  Jonathan Pobst  <monkey@jpobst.com>
3711
3712         * Application.cs: Create a shortcut path so that currently selected
3713         MenuStrips can intercept keyboard events without having focus.
3714         * Control.cs: Handle WM_SYSCOMMAND message to activate MenuStrips.
3715         * MenuStrip.cs, ToolStrip.cs, ToolStripDropDown.cs, ToolStripDropDownItem.cs,
3716         ToolStripItem.cs, ToolStripManager.cs, ToolStripMenuItem.cs: Support
3717         keyboard navigation (arrows, tab, enter, esc) on Windows.  Still need to
3718         generate WM_SYSCOMMAND message in X11 for other platforms.
3719         * ToolStripProfessionalRenderer.cs: ToolStripMenuItems need to be painted
3720         in OnRenderMenuItemBackground instead of OnRenderButtonBackground.
3721         * ToolStripSplitButton.cs: Add DefaultItem property.
3722         
3723 2007-04-26  Everaldo Canuto  <everaldo@simios.org>
3724
3725         * MainMenu.cs: In OnMenuChanged pass PaintEventArgs to Draw method, it
3726         fixes some menu draw problem on Windows with border diferent from default
3727         it also fixes #81403.
3728
3729 2007-04-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3730
3731         * Form.cs: Refactor WndProc into separate methods, just like Control is
3732           doing it.
3733
3734 2007-04-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3735
3736         * Control.cs: set_Text: move the call to the driver into a seperate
3737           virtual method so that Form can override it.
3738         * MaskedTextBox.cs: Corcompare fixes.
3739         * Form.cs: Override UpdateWindowText and only update the styles if the
3740           form has been shown (fixes #81405).
3741
3742 2007-04-25  Jonathan Pobst  <monkey@jpobst.com>
3743
3744         * Control.cs, Form.cs: Use the better supported WM_?BUTTONDOWN and
3745         WM_ACTIVATE messages instead of WM_MOUSEACTIVATE and
3746         WM_ACTIVATEAPP.  This fixes menus not disappearing on X11 when
3747         the form lost focus or another control was clicked.
3748
3749 2007-04-25  Gert Driesen  <drieseng@users.sourceforge.net>
3750
3751         * DataGrid.cs: Uncomment MakeTransparent calls since bug #80151 is
3752         fixed.
3753
3754 2007-04-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3755
3756         * DrawListViewColumnHeaderEventHandler.cs, DrawToolTipEventArgs.cs,
3757           DrawListViewItemEventHandler.cs,
3758           DrawListViewSubItemEventHandler.cs, DrawToolTipEventHandler.cs:
3759           Added.
3760         * X11Structs.cs: More ToString implementation.
3761
3762 2007-04-25  Jonathan Pobst  <monkey@jpobst.com>
3763
3764         * ToolStripDropDownItem.cs: Don't lazy create a DropDown in Dispose.
3765         * ToolStripOverflowButton.cs: Don't lazy create a DropDown in HasDropDownItems.
3766
3767 2007-04-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3768
3769         * Control.cs: Only raise OnVisibleChanged if we're not recreating the
3770           handle.
3771         * FormCollection.cs: Don't add a form if it's already in the
3772           collection.
3773         * Form.cs: Change ShowDialog () to call ShowDialog (owner) with a null
3774           according to behaviour and MSDN. The ownerWin32 is the active
3775           window at the moment when we call ShowDialog, not the context's
3776           main form (the context's main form may open another form that opens
3777           a form with ShowDialog, the win32 owner is the second form). Add
3778           and remove forms to the Application.OpenForms in other places to
3779           better match MS behaviour. Add an IsActive property that raises
3780           On(de)Activated only if the active state has changed (we were
3781           raising OnDeactivated before OnActivated while creating forms).
3782         * Application.cs: Refactor Enabling/Disabling of windows for modal
3783           dialog loops out to separate methods, and restore the thread
3784           context when we quit the method. Fixes #81407.
3785
3786 2007-04-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3787
3788         * ListView.cs: In ItemControl.HandleClicks, also fire 
3789         2.0 MouseClick or MouseDoubleClick events on the parent,
3790         not only the Click/DoubleClick events.
3791
3792 2007-04-24  Andreia Gaita  <avidigal@novell.com>
3793
3794         * TableLayoutSettings.cs: 
3795         - Added a GetControls method and a support structure to help the 
3796         TypeConverter to enumerate the controls for     serialization. 
3797         - Added a new serialization constructor. 
3798         - Added a isSerialized flag initialized to true on the 
3799         serialization constructor so that the TableLayoutPanel.LayoutSettings 
3800         setter does not throw the designed NotSupportedOperation exception
3801         when the object is built through deserialization.
3802         - Implemented GetObjectData
3803         
3804         * TableLayoutPanel.cs: Added check on LayoutSettings.
3805
3806 2007-04-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3807
3808         * ListView.cs: Report Click and DoubleClick events to the parent
3809         from ItemsMouseUp, instead of ItemsMouseDown. This prevents us
3810         from breaking the click count state when using dialog forms (Control
3811         reports the clicks in a similar fashion). In the previous behaviour
3812         the last WM_LBUTTONUP message in a  double click was sent to the
3813         ListView's form, instead of the ListView, which was breaking the click
3814         count for it. Fixes #80387.
3815
3816 2007-04-24  Alan McGovern <alan.mcgovern@gmail.com>
3817
3818         * BindingNavigator.cs : fixed bugs revealed by new nunit tests
3819
3820 2007-04-24  Jonathan Pobst  <monkey@jpobst.com>
3821
3822         * ToolStripDropDownItem.cs: Lazy initialize the DropDown.  This prevents
3823         us from created dropdowns for menu items that do not have subitems.
3824         * ToolStripItem.cs, ToolStripProfessionalRenderer.cs, ToolStripSplitButton.cs:
3825         Check HasDropDownItems before calling DropDown so a dropdown will not be
3826         created if it isn't needed.
3827
3828 2007-04-24  Jackson Harper  <jackson@ximian.com>
3829
3830         * TreeView.cs: Set the first node to the selected node when we get
3831         focus if there is no selected node.
3832
3833 2007-04-24  Andreia Gaita  <avidigal@novell.com>
3834
3835         * MimeIcon.cs: remove using blocks so that image streams are
3836         not disposed of. Fixes #80151
3837
3838 2007-04-24  Jackson Harper  <jackson@ximian.com>
3839
3840         * TextBoxBase.cs: Fixup the height of textboxes when the control
3841         is created.
3842
3843 2007-04-24  Jonathan Pobst  <monkey@jpobst.com>
3844
3845         * ToolStrip.cs: Fully implement GetNextItem.  Call OnParentRightToLeftChanged
3846         for each ToolStripItem when the parent's RightToLeftChanged is called.
3847
3848 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3849
3850         * ComboBox.cs: Forward ContextMenu to the underlying textbox, if any.
3851           Fixes #80163.
3852         * Control.cs: Replace GetContextMenuInternal() with ContextMenuInternal
3853           property, so that the setter can be overriden too.
3854         * TextBox.cs: Change GetContextMenuInternal() to use
3855           ContextMenuInternal.
3856
3857 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3858
3859         * ThemeWin32Classic.cs: Use a black pen to draw checkboxes, fixes
3860           #81406.
3861
3862 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3863
3864         * ThemeWin32Classic.cs: Use a black pen to draw checkboxes, fixes
3865           #81406.
3866
3867 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3868
3869         * MaskedTextBox.cs: Commit this so nobody else starts working on it and
3870           avoid duplicate work. Mostily skeleton code, it's not working at
3871           all yet.
3872
3873 2007-04-20  Leszek Ciesielski <skolima@gmail.com>
3874
3875         * NotifyIcon.cs : stub for MouseClick event
3876         * Application.cs: stub for SetUnhandledExceptionMode
3877
3878 2007-04-24  Alan McGovern <alan.mcgovern@gmail.com>
3879
3880         * BindingNavigator.cs : Initial (partial) implementation
3881
3882 2007-04-23  Jackson Harper  <jackson@ximian.com>
3883
3884         * TreeView.cs: Do not create the treeview's handle when setting
3885         the scroll position.
3886         - ExpandAll needs to compute the scrollbars so it knows which
3887         position to set the bar too.
3888         * TreeNode.cs: 
3889         * TreeNodeCollection.cs: Pass new flag to UpdateScrollBars
3890
3891 2007-04-23  Jackson Harper  <jackson@ximian.com>
3892
3893         * TextBoxBase.cs: Non multiline textboxes shouldn't take the enter
3894         key. Fixes #81408.
3895
3896 2007-04-23  Jonathan Pobst  <monkey@jpobst.com>
3897
3898         * ToolStripItem.cs: Make GetImageSize internal.
3899         * ToolStripMenuItem.cs: Use GetImageSize to determine the size we
3900         need to draw an item.  Fixes a reported issue where images on menus
3901         that were not 16x16 were drawing incorrectly.
3902
3903 2007-04-21  Miguel de Icaza  <miguel@novell.com>
3904
3905         * Padding.cs: Use the converter, fixes the resgen2 issue with
3906         XMLNotePad. 
3907
3908 2007-04-21  Jackson Harper  <jackson@ximian.com>
3909
3910         * TreeView.cs: Dont try to unhighlight the selected node if there
3911         isn't a selected node.
3912
3913 2007-04-21  Jackson Harper  <jackson@ximian.com>
3914
3915         * UpDownBase.cs:
3916         * TextBoxBase.cs:
3917         * ListView.cs:
3918         * ListBox.cs:
3919         * TreeView.cs: Use the InternalBorderStyle property to set the
3920         initial border style, this forces the client rectangle to be sized
3921         correctly.
3922
3923 2007-04-20  Jackson Harper  <jackson@ximian.com>
3924
3925         * TreeView.cs: Simplify scrolling to the last node after expanding
3926         all.
3927         - Fix some off by ones with setting the bottom.
3928
3929 2007-04-20  Jonathan Pobst  <monkey@jpobst.com>
3930
3931         * Control.cs: Use DefaultSize for Size, calculate ClientSize from
3932         that.  We were incorrectly doing it the other way around.  Also,
3933         update ClientSize if we change the BorderStyle before the control
3934         is created.
3935
3936 2007-04-20  Gert Driesen  <drieseng@users.sourceforge.net>
3937
3938         * XplatUI.cs: Added Border3DSize, BorderSize, CaptionButtonSize,
3939         DoubleClickSize, DoubleClickTime and FixedFrameBorderSize. Renamed
3940         XplatUIDriver.Caption to CaptionHeight. Spaces to tabs.
3941         * XplatUIDriver.cs: Added Border3DSize, BorderSize, CaptionButtonSize,
3942         DoubleClickSize, DoubleClickTime and FixedFrameBorderSize. Renamed
3943         Caption to CaptionHeight.
3944         * XplatUIX11.cs: Renamed Caption to CaptionHeight.
3945         * Theme.cs: Modified Border3DSize, BorderSize, CaptionButtonSize
3946         and FixedFrameBorderSize to return value from current XplatUI driver.
3947         * XplatUIWin32.cs: Implemented Border3DSize, BorderSize,
3948         CaptionButtonSize, DragFullWindows, DoubleClickSize, DoubleClickTime
3949         and FixedFrameBorderSize using win32 API. Renamed Caption to
3950         CaptionHeight.
3951         * XplatUIOSX.cs: Renamed Caption to CaptionHeight.
3952         * SystemInformation.cs: Fixed typo in BorderSize.
3953
3954 2007-04-20  Gert Driesen  <drieseng@users.sourceforge.net>
3955
3956         * XplatUI.cs: Added MenuAccessKeysUnderlined.
3957         * XplatUIDriver.cs: Added MenuAccessKeysUnderlined.
3958         * XplatUIX11.cs: Implemented MenuAccessKeysUnderlined by always
3959         returning false.
3960         * Theme.cs: Modified MenuAccessKeysUnderlined to return corresponding
3961         value from XplatUI driver.
3962         * XplatUIWin32.cs: Implemented MenuAccessKeysUnderlined using
3963         SystemParametersInfo.
3964         * ThemeWin32Classic.cs: Remove obsolete MenuAccessKeysUnderlined
3965         override.
3966         * XplatUIOSX.cs: Implemented MenuAccessKeysUnderlind by always
3967         returning false.
3968
3969 2007-04-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3970
3971         * XplatUIX11.cs, Hwnd.cs: Remove warnings.
3972
3973 2007-04-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3974
3975         * MessageBox.cs, XplatUIX11.cs, Hwnd.cs: Remove warnings.
3976
3977 2007-04-20  Jonathan Pobst  <monkey@jpobst.com>
3978
3979         * ToolStripManager.cs: Fix a reported InvalidCastException when unmerging
3980         MenuStrips that contain ToolStripSeparators.
3981
3982 2007-04-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3983
3984         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Add
3985           DefineStdCursorBitmap.
3986         * Cursor.cs: Add an internal constructor so that the Cursor knows if it
3987           has been created off a standard cursor. This is used to get a
3988           bitmap of the standard cursor when Draw or DrawStretched is called
3989           in order to draw the cursor.
3990         * X11Structs.cs: Added XcursorImage and XcursorImages.
3991         * XplatUIX11.cs, XplatUIWin32.cs: Add and implement
3992           DefineStdCursorBitmap.
3993         * Cursors.cs: Update all relevant creations of Cursor to use the new
3994           internal constructor.
3995
3996 2007-04-19  Jackson Harper  <jackson@ximian.com>
3997
3998         * TextBox.cs: Move the has_been_focused into the base control, so
3999         some of the text adding methods can manipulate it (probably time
4000         for a better name for this flag too).
4001         - Call a new version of selectall that doesn't scroll
4002         * TextBoxBase.cs: When we append text, if the document is empty,
4003         don't scroll.  If the document has text already, we scroll to the
4004         end of the appended text.
4005         - When the text is changed, we reset the has_been_focused, so the
4006         next time the control gets focused, all the text is selected.
4007
4008 2007-04-19  Jackson Harper  <jackson@ximian.com>
4009
4010         * TextControl.cs: Move the margins to the document, add a method
4011         so the margin sizes can be updated.
4012         * TextBoxBase.cs: When the border style is changed, update the
4013         border sizes.
4014
4015 2007-04-19  Jonathan Pobst  <monkey@jpobst.com>
4016
4017         * Control.cs: Respect DefaultPadding.
4018         * GroupBox.cs: Implement DefaultPadding, DisplayRectangle takes
4019         padding into account.
4020         * ToolStrip.cs: Remove setting padding to DefaultPadding in constructor.        
4021
4022 2007-04-19  Jackson Harper  <jackson@ximian.com>
4023
4024         * TextControl.cs: Oops, we need to use the ClientRect not the
4025         bounds here.
4026
4027 2007-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4028
4029         * ListView.cs: In ItemControl.ItemsMouseDown, take into
4030         account the double clicks when CheckBoxes are used and
4031         the pointer is inside the checkbox. Fixes part of #81191.
4032
4033 2007-04-18  Jackson Harper  <jackson@ximian.com>
4034
4035         * TextControl.cs: Pressing the end key shouldn't move the caret
4036         past the line ending.
4037         * TextBoxBase.cs: We can still delete if we are in the line
4038         ending and the combine will just kill the existing line ending.
4039
4040 2007-04-18  Jackson Harper  <jackson@ximian.com>
4041
4042         * TextControl.cs: We can't move lines, then invalidate their
4043         bounds, we need to get the old bounds and combine that with the
4044         new bounds.
4045         * TextBoxBase.cs: Before combining two lines for a delete, we need
4046         to invalidate the area of the old line, since that will be moved
4047         in the combine operation.
4048
4049 2007-04-18  Everaldo Canuto  <everaldo@simios.org>
4050
4051         * LinkLabel.cs: In OnPaint invoke draw background to fix problems
4052         with transparent background. Fixes #80482.
4053
4054 2007-04-18  Jonathan Pobst  <monkey@jpobst.com>
4055
4056         * PictureBox.cs: Refresh on resize when SizeMode = Zoom.
4057         * ThemeWin32Classic.cs: Implement PictureBox.SizeMode = Zoom.
4058         [Fixes bug #81391]
4059
4060 2007-04-18  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4061
4062         * CreateParams.cs: Add a couple of helper methods and do a less string
4063           concatenation in ToString.
4064         * XplatUIX11.cs: Add an TranslateClientRectangleToXClientRectangle
4065           overload that takes a Control parameter, since this method may be
4066           called before a control is assigned to the hwnd (from
4067           CreateWindow), and update CreateWindow to use the new overload. In
4068           GetMenuOrigin subtract the title bar from the y position if the
4069           form has a window manager (since we're painting it and not X).
4070         * XplatUIWin32.cs: If we can get a form in GetMenuOrigin use the form's
4071           CreateParams to calculate the origin (since border sizes may vary).
4072           In ScreenToMenu only subtract the title height if we actually have
4073           a title.
4074         * MdiWindowManager.cs: Override MenuHeight to always return 0, since
4075           mdi children never have menus of themselves.
4076         * InternalWindowManager.cs: Implement menu handling like form does.
4077           Added GetMenuOrigin to calculate the menu origin, can't use the
4078           CreateParams from the form like normally since it's lying.
4079         * Hwnd.cs: Implement GetBorderSize better (in the sense more
4080           windows-like) and add Inflate and comparison operators to the
4081           Borders type. When calculating MenuOrigin and it's a form with a
4082           window manager, use the window manager to calculate it.
4083
4084 2007-04-17  Chris Toshok  <toshok@ximian.com>
4085
4086         * Control.cs (CreateControl): turns out in 2.0 we don't need this
4087         OnBindingContextChanged thing here.  It's only generated from
4088         ContainerControl.OnCreateControl.  Fixes a newly written unit test
4089         - BindingTest.BindingContextChangedTest4.
4090         
4091 2007-04-17  Jackson Harper  <jackson@ximian.com>
4092
4093         * ScrollBar.cs: When setting values, make sure the current
4094         position stays within the new values range.
4095
4096 2007-04-17  Chris Toshok  <toshok@ximian.com>
4097
4098         * Control.cs (CreateControl): talk about a bizarre corner case.
4099         Don't emit OnBindingContextChanged here if we're a parentless
4100         control (i.e. if we're a form.).  Fixes
4101         BindingTest.BindingContextChangedTest2.
4102
4103 2007-04-17  Everaldo Canuto  <everaldo@simios.org>
4104
4105         * ButtonBase.cs: Remove TextFormatFlags.WordBreak to mimic same behavior 
4106         from win32. Fixes #81255.
4107
4108 2007-04-17  Everaldo Canuto  <everaldo@simios.org>
4109
4110         * ThemeWin32Classic.cs: Remove text offset from DrawButtonText as it is
4111         already present in CalculateButtonTextAndImageLayout.
4112
4113 2007-04-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4114
4115         * XplatUIX11.cs: When setting min/max size for a window we need to
4116           translate the coordinates to x coordinates. Create an overload of
4117           SetWindowMinMax that takes a CreateParams handling this, and change
4118           SetWMStyles to call this function (can't use Control.FromHandle in
4119           the SetWindowMinMax to get the control/CreateParams from the handle
4120           because the handle might not have been assigned to the control
4121           yet). Fixes #81371.
4122
4123 2007-04-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4124
4125         * ListView.cs: In ItemControl.ItemMouseDown, don't change check state
4126         if StateImageList is non-null and it has less than two items (match MS
4127         behaviour). Also, in HandleNavKeys handle the Space key, calling
4128         the new ToggleItemsCheckState method, which tries to change the
4129         checked state of the selected items. Fixes part of #81191.
4130
4131 2007-04-16  Jackson Harper  <jackson@ximian.com>
4132
4133         * RichTextBox.cs: namespace cleanup.
4134
4135 2007-04-16  Everaldo Canuto  <everaldo@simios.org>
4136
4137         * XplatUIWin32.cs: Back last parameter to true in SetClipRegion.
4138
4139 2007-04-16  Everaldo Canuto  <everaldo@simios.org>
4140
4141         [Fixes #79447]
4142         * Control.cs: Call invalidate in set_Region.
4143
4144         * XplatUIX11.cs, XplatUIWin32.cs: Remove invalidate from SetClipRegion as
4145         it dont works here.
4146
4147 2007-04-16  Jackson Harper  <jackson@ximian.com>
4148
4149         * TextBoxBase.cs: When enter is pressed, we need to update all
4150         lines below the current.
4151
4152 2007-04-16  Jonathan Pobst  <jpobst@monkey.com>
4153
4154         * MdiClient.cs: Implement implicit menu merging for MDI
4155         children.  When a child form is active, if it has a menustrip
4156         and the parent form has a MainMenuStrip, automatically merge
4157         the menus.
4158
4159 2007-04-15  Andreia Gaita  <avidigal@novell.com>
4160
4161         * TabControl.cs: Refactored sizing methods to not repeat
4162         code all over the place. Tab bounds are now calculated
4163         as if alignment is top and single line, and only when 
4164         setting the bounds are the positions adjusted according
4165         to alignment. Replaced hardcoded positions, spacings and
4166         paddings by getting the values the ThemeEngine. 
4167         Fixes #79619.
4168         
4169         * Theme.cs: Change TabControl properties and methods so
4170         that all start with TabControl*. Added more properties
4171         to help remove hardcoded values on tabcontrol.
4172         Add CPDrawBorder3D declaration so the Theming classes
4173         can access it.
4174         
4175         * ThemeClearlooks.cs, ThemeNice.cs: Method signature changes from Theme.
4176
4177         * ThemeWin32Classic.cs: Rector TabControl out to the TabControlPainter
4178         on the Theming namespace, and call the appropriate methods here.
4179         Change CPDrawBorder3D to public.
4180
4181 2007-04-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4182
4183         * Control.cs: In WmRButtonUp, send the WM_CONTEXTMENU message to
4184         the control after firing the OnMouseUp event, instead of sending
4185         the message before the mentioned event. This is so we can match the
4186         MS behaviour. Fixes part of #80385.
4187
4188 2007-04-13  Jonathan Pobst  <monkey@jpobst.com>
4189
4190         * ToolStripItem.cs: Call the RightToLeftChanged event when setting the
4191         RightToLeft property.
4192
4193 2007-04-13  Jonathan Pobst  <monkey@jpobst.com>
4194
4195         * ToolStrip.cs: Add properties and internal methods to support merging.
4196         * ToolStripItem.cs: Add MergeAction and MergeIndex.
4197         * ToolStripItemCollection.cs: Add Insert and Remove methods that do
4198         not trigger reparenting or layouts.
4199         * ToolStripManager.cs: Add Merge and RevertMerge methods.
4200         * ToolStripOverflow.cs: Add a convenience method to find the ToolStrip that
4201         is hosting the overflow menu.
4202
4203 2007-04-13  Jackson Harper  <jackson@ximian.com>
4204
4205         * TextControl.cs: Set the line ending correctly for the first
4206         inserted line.
4207
4208 2007-04-13  Sebastien Pouliot  <sebastien@ximian.com>
4209
4210         * Theme.cs: Update GetMethod to get the new definition for 
4211         KnownColors.Update (and fix theme color updates).
4212
4213 2007-04-12  Everaldo Canuto  <everaldo@simios.org>
4214
4215         * MessageBox.cs: Fix some test and button position.
4216
4217 2007-04-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4218
4219         * Form.cs: Consider the implicit controls in
4220         GetRealChildAtPoint. We need it since this method
4221         is called on Form when handling the some messages in
4222         WndProc, and need to consider those implicit ones too.
4223         Fixes #80385.
4224
4225 2007-04-12  Jonathan Pobst  <monkey@jpobst.com>
4226
4227         * ToolStripMenuItem.cs: Display the ShortcutKeyDisplayString even
4228         if there are no ShortcutKeys set.
4229         * ToolStripProfessionalRenderer.cs: If an item has had its BackColor
4230         set, use it when painting.
4231
4232 2007-04-12  Jackson Harper  <jackson@ximian.com>
4233
4234         * TextControl.cs: Fix some off-by-one issues in line duplication
4235         and insertion in the undo manager. Also, overwrite the first tag
4236         of a line on insert, if it is just a zero lengthed tag. This
4237         prevents us from getting an extra stranded tag at the beginning of
4238         the first line.
4239
4240 2007-04-11  Everaldo Canuto  <everaldo@simios.org>
4241
4242         * Label.cs: Remove check for handle created in CalcAutoSize, we need 
4243         to calculated proper size including when handle was not created yet.
4244
4245 2007-04-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4246
4247         * MdiWindowManager.cs: When moving a form, allow the form to be moved
4248           when the mouse is outside of it's parent's client rectangle. Fixes
4249           #79982 (take 3, part 2).
4250
4251 2007-04-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4252
4253         * X11Structs.cs: Add a few ToString() overrides.
4254         * XplatUIX11.cs: Added GetTopLevelWindowLocation to try to calculate
4255           the window location in a window-manager independent way. Reworked
4256           FrameExtents, it now actually works. Reworked AddConfigureNotify
4257           and ReparentNotify handling to use GetTopLevelWindowLocation
4258           instead of the earlier, more hacky solution. Reworked SetWMStyles,
4259           hopefully for the better: we now set _NET_WM_WINDOW_TYPE* for all
4260           windows, DIALOG for modal windows, UTILITY for toolboxes and NORMAL
4261           for all other windows (fixes #81281 part 1), a toolwindow is hidden
4262           from the taskbar if it has a parent (fixes #81281 part 2 for kwin),
4263           and generally refactored to do as few calculations as possible
4264           inside the lock.
4265
4266 2007-04-09  Sebastien Pouliot  <sebastien@ximian.com>
4267
4268         * Theme.cs: Change "reflective-contract" between MWF and SD to 
4269         minimize # of calls, avoid Color serialization and avoid updating 
4270         every "known colors" each time a single one is updated.
4271
4272 2007-04-09  Gert Driesen  <drieseng@users.sourceforge.net>
4273
4274         * DataGridTextBoxColumn.cs: Only set IsInEditOrNavigateMode to false
4275         when not readonly and the text is explicitly set. Code style updates.
4276         * DataGridTableStyle.cs: Removed extra line.
4277         * DataGrid.cs: Code style updates. Removed extra whitespace.
4278         * DataGridColumnStyle.cs: Code style updates. Removed extra 
4279         whitespace.
4280
4281 2007-04-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4282
4283         * XplatUIX11.cs: Added comment that "fixes" #80021.
4284
4285 2007-04-09  Jackson Harper  <jackson@ximian.com>
4286
4287         * TextControl.cs: We don't need this -1 on the line count anymore.
4288
4289 2007-04-09  Gert Driesen  <drieseng@users.sourceforge.net>
4290
4291         * DataGridTextBoxColumn.cs: In Commit, use TypeConverter to convert
4292         entered value to underlying type, and convert it back to a string to
4293         apply formatting. Modified GetFormattedValue to use TypeConverter
4294         if available.
4295
4296 2007-04-08  Gert Driesen  <drieseng@users.sourceforge.net>
4297
4298         * ListViewItem.cs: Added null checks. Avoid duplicating code in ctors.
4299         Use SubItems property when we want to ensure there's at least one
4300         subitem. Modified SubItems property to ensure there's always at least
4301         one subitem. Avoid using ListViewSubItemCollection.AddRange to match
4302         the NRE's reported by MS.
4303
4304 2007-04-07  Gert Driesen  <drieseng@users.sourceforge.net>
4305
4306         * ProgressBar.cs: On 2.0 profile, default forecolor is Highlight. Added
4307         ResetForeColor override on 2.0. Fixed a few API compatibility issues.
4308         Spaces to tabs. Removed extra tabs.
4309
4310 2007-04-06  Jonathan Pobst  <monkey@jpobst.com>
4311
4312         * ToolStripSplitStackLayout.cs: If we run out of things to hide, don't
4313         infinite loop.  (Forgot to copy to the horizontal toolstrip case.)
4314
4315 2007-04-06  Jackson Harper  <jackson@ximian.com>
4316
4317         * TextBoxBase.cs: When a delete removes a line, recalculate all
4318         lines below that line (they need to get offsets setup correctly)
4319         and invalidate.
4320
4321 2007-04-05  Jackson Harper  <jackson@ximian.com>
4322
4323         * TextControl.cs: We need to invalidate across the width of the
4324         document when we are invalidating multiple lines.
4325         * TextBoxBase.cs: Don't delete into the line ending.
4326
4327 2007-04-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4328
4329         * ListView.cs: Restore the check for the MouseHover event
4330         in ListView. It looks like the ListView fires more than one MouseHover
4331         event when HoverSelection is true  _only_ in weird-corner scenarios, but
4332         in most of the cases it only fires one. Also, add the 2.0 ItemMouseHover
4333         event.
4334
4335 2007-04-05  Mike Kestner  <mkestner@novell.com>
4336
4337         * ListView.cs : raise MouseDown before updating selection.
4338         [Fixes #80373 tab 1&3]
4339
4340 2007-04-05  Jonathan Pobst  <monkey@jpobst.com>
4341
4342         * ToolStripRenderer.cs: Add static method to mirror image.
4343         * ToolStripProfessionalRenderer.cs: Support ImageTransparentColor
4344         and RightToLeftAutoMirrorImage.
4345         * ToolStripItem.cs: Remove MonoTODO from ImageTransparentColor.
4346
4347 2007-04-05  Jonathan Pobst  <monkey@jpobst.com>
4348
4349         * ToolStripSplitStackLayout.cs: Support Alignment property.
4350         * ToolStripItem.cs: Remove MonoTODO from the Alignment property.
4351
4352 2007-04-05  Jackson Harper  <jackson@ximian.com>
4353
4354         * TextControl.cs: Move around the line endings when crossing line
4355         boundaries.
4356         - When combining lines, strip the ending text off the first line.
4357
4358 2007-04-05  Jackson Harper  <jackson@ximian.com>
4359
4360         * TextControl.cs:
4361         * TextBoxBase.cs: Try to never move the cursor into the line
4362         ending.
4363         
4364 2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
4365
4366         * ToolStripItem.cs: Make sure we aren't firing mouse events when
4367         the item is disabled.  Also add a few missing methods.
4368
4369 2007-04-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4370
4371         * ListView.cs: We don't need the MouseEnter/MouseLeave check
4372         to fire just one MouseHover event when HoverSelection is true, since
4373         .Net does fire more than one MouseHover event in that scenario. Also,
4374         fix the selection in HoverSelection, by invoking UpdateMultiSelect
4375         if MultiSelect is true, instead of only setting ListViewItem.Selected.
4376         Finally, we need to reset the Hover logic in MouseMove, even when we
4377         don't have a selected item.
4378
4379 2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
4380
4381         * ToolStrip.cs: Add several missing methods, properties, and events.
4382
4383 2007-04-04  Chris Toshok  <toshok@ximian.com>
4384
4385         * DataGridTextBoxColumn.cs: set the bounds of the text box to
4386         (0,0,0,0) in Commit, as MS does.
4387
4388         * DataGrid.cs: call EndEdit() from Select() as microsoft does, and
4389         make sure we set CurrentRow on a row header click *before* calling
4390         Select.  This moves the current cell (and the textbox) to the new
4391         row.  The call to Select then hides the textbox, giving us the
4392         correct behavior.  Fixes #80362.
4393
4394         * CurrencyManager.cs (UpdateIsBinding): raise ItemChanged (-1).
4395         (ListChangedHandler): reorder the position/current changed events,
4396         and call UpdateIsBinding in the ItemAdded case.
4397
4398         * GridColumnStylesCollection.cs: add some columns events, one of
4399         which raises the CollectionChanged event.
4400
4401 2007-04-04  Jackson Harper  <jackson@ximian.com>
4402
4403         * TextControl.cs: When we delete multiple selection lines
4404         invalidate the selection area, don't need to do that for single
4405         lines because the final update view will handle it.
4406
4407 2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
4408
4409         * Control.cs: When we CreateControl, we need to also create all of the
4410         control's children.  The child's OnLoad must also fire before the parent's
4411         OnLoad.  Fixes the toolbox size in PDN.
4412
4413 2007-04-04  Jackson Harper  <jackson@ximian.com>
4414
4415         * TextBoxBase.cs: When the user presses enter, insert a line
4416         ending into the text. (Maybe this would be a good spot for
4417         Environment.NewLine).
4418         * TextControl.cs: Remove undo manager hack, line endings get
4419         inserted properly now.
4420         
4421 2007-04-04  Everaldo Canuto  <everaldo@simios.org>
4422
4423         * MenuAPI.cs: 
4424         - Remove unneeded parameters in UpdateCursor.
4425         - Fix UpdateCursor to check if menu is active.
4426         - Call UpdateCursor when menu deactivate my click.
4427         [Fixes remaining issues from #80410]
4428
4429 2007-04-04  Everaldo Canuto  <everaldo@simios.org>
4430
4431         * Control.cs: GetRealChildAtPoint method added, it make an
4432         recursive child control search for the point. 
4433
4434         * Form.cs: Makes use of GetRealChildAtPoint in mouse event after closes
4435         menu.
4436
4437         * MenuAPI.cs: Makes use of GetRealChildAtPoint in UpdateCursor.
4438
4439 2007-04-03  Everaldo Canuto  <everaldo@simios.org>
4440
4441         * Form.cs: Fix mouse position when send back mouse event after closes
4442         menu.
4443
4444 2007-04-03  Everaldo Canuto  <everaldo@simios.org>
4445
4446         * Form.cs: Simplify the BUTTONDOWN for active tracker.
4447
4448 2007-04-03  Jonathan Pobst  <monkey@jpobst.com>
4449
4450         * Control.cs: Fix an issue where if a user resized a control inside
4451         a sizing method like OnResize, we would overwrite their explicit
4452         value.  Also, only call DefaultSize once in the constructor instead
4453         of 4 times.  Also, do not call SetBoundsCore from SetBounds if 
4454         nothing actually changed.
4455
4456 2007-04-03  Jackson Harper  <jackson@ximian.com>
4457
4458         * TextControl.cs: Don't attempt to copy text for lines with no
4459         text in them (technically this shouldn't happen, but we aren't
4460         always inserting line endings when we should be).
4461
4462 2007-04-03  Jackson Harper  <jackson@ximian.com>
4463
4464         * TextBoxBase.cs: Calculate the scrollbars before calculating the
4465         document, because this sets some of the document size properties
4466         that are needed.
4467
4468 2007-04-03  Jackson Harper  <jackson@ximian.com>
4469
4470         * TextBoxBase.cs: We need to calculate maximums even if this is
4471         not a multiline control, because the maxs are used for scrolling.
4472         - Display the caret after doing a page up/down, we need to
4473         manually display it because a proper CaretMoved event isn't
4474         triggered (this is because of the way the math is done to
4475         determine how far to scroll).
4476
4477 2007-04-03  Jonathan Pobst  <monkey@jpobst.com>
4478
4479         * ToolBar.cs: Fix some breakage caused by the SetBoundsCore change.
4480         (ToolBar was relying on SetBoundsCore to default the values sent 
4481         base off of BoundsSpecified.)
4482
4483 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4484
4485         * DateTimePicker.cs: Change Text so that when a null value or empty
4486           string is assigned to the test we always raise ValueChanged and
4487           TextChanged (earlier implementation would only raise ValueChanged
4488           if the current date value was different from DateTime.Now).
4489
4490 2007-04-03  Andreia Gaita <avidigal@novell.com> 
4491
4492         * ButtonBase: Call update after invalidation, fixes #80194
4493
4494 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4495
4496         * ThemeWin32Classic.cs: Draw StatusBar using double buffering. Fixes
4497           #79335.
4498
4499 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4500
4501         * XplatUIX11.cs: SetWMStyles: If the control is a form with
4502           FormBorderStyle = None, don't give the window any decorations.
4503           Fixes #81276.
4504
4505 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4506
4507         * XplatUI.cs, XplatUIDriver.cs: Updated CalculateWindowRect parameters.
4508         * CreateParams.cs: Fix IsSet, wasn't working correctly when the style
4509           to check for is a mix of several styles (such as WS_CAPTION for
4510           instance).
4511         * Control.cs: Don't paint an area bigger than the client area when
4512           painting the background colour. Add an internal GetCreateParams.
4513           Update calls to XplatUI.CalculateWindowRect due to API change.
4514         * XplatUIX11.cs: In PerformNCCalc set the initial size to the whole
4515           window's size, and handle WM_NCCALCSIZE in DefWndProc to calculate
4516           the size if it hasn't been handled by any windows. When creating
4517           and moving windows, X wants the location of the entire window, but
4518           the size of the client window, so add
4519           TranslateClientRectangleToXClientRectangle,
4520           TranslateWindowSizeToXWindowSIze and
4521           TranslatedXWindowSizeToWindowSize to cope with this, and call them
4522           before every window creation and move. Update CalculateWIndowRect
4523           to use Hwnd.GetWindowRect (one step towards removing DeriveStyles).
4524           In AddConfigureNotify don't do anything if the hwnd is a zombie
4525           (fixes the BadWindow we were getting while running the tests),
4526           always calculate the offsets when it's a parentless window, not
4527           only when reparented, and translate the window size, since we're
4528           getting the client size of the whole window, excluding entire
4529           window.
4530         * Theme.cs: Added BorderSizableSize.
4531         * XplatUIWin32.cs: Fix RECT Height and Width. Don't fake styles here
4532           anymore. Update calls to XplatUI.CalculateWindowRect due to API
4533           chang
4534         * Form.cs: Update calls to XplatUI.CalculateWindowRect due to API
4535           change. Fake the window styles here instead of in XplatUIWin32 so
4536           that all back-ends get the same window styles (and it's Form that's
4537           deciding when to use wm, not the Win32 backend anyways)
4538         * Hwnd.cs: Completely reworked GetWindowRectangle and
4539           GetClientRectangle - they are now passed a CreateParams and they
4540           only use Style and ExStyle to determine the rectangles (they should
4541           now work just like Win32AdjustWindowRectEx - though quite a few
4542           special cases are probably missing). They should also be 100%
4543           complimentary (i.e. GetWindowRectangle (GetClientRectangle (rect))
4544           == rect), and all numbers (borders, menu sizes) are taken from the
4545           current theme. Added a GetBorders helper function that will return
4546           the borders for any given CreateParams (including captions and
4547           menus), and GetBorderSize that returns the given border size only.
4548         * XplatUIOSX.cs: Update calls to CalculateWindowRect and
4549           Hwnd.GetClientRectangle.
4550
4551 2007-04-02  Chris Toshok  <toshok@ximian.com>
4552
4553         * DataGridBoolColumn.cs: rewrite things a bit, and fix up the
4554         logic between the values we present to the user and the values
4555         which are stored in the column's property.  Also, don't call
4556         GetPreferredSize - it's virtual. Along the way, fix bug #80965.
4557
4558 2007-04-02  Jackson Harper  <jackson@ximian.com>
4559
4560         * TextBoxBase.cs: Scroll faster!
4561
4562 2007-04-02  Jonathan Pobst  <monkey@jpobst.com>
4563
4564         * StatusStrip.cs: Layout fixes for PDN.
4565         * ToolStrip.cs: Set item's available to true, and placement to main when
4566         added.
4567         * ToolStripItem.cs: Fix an Available issue, check that Parent is really
4568         changing in setter before doing any work, add InternalVisible.
4569         * ToolStripPanel.cs: Remove unused variable to fix compiler warning.
4570         * ToolStripSplitStackLayout.cs: If we run out of things to hide, don't
4571         infinite loop.
4572
4573 2007-04-02  Jackson Harper  <jackson@ximian.com>
4574
4575         * TextBox.cs: LBUTTON does not make the textbox select all of it's
4576         text on focus.
4577
4578 2007-04-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4579
4580         * XplatUIWin32.cs: Use the previous change in SetParent for forms only.
4581           Makes ToolStripComboBoxes show up again.
4582
4583 2007-04-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4584
4585         * ListView.cs: Add a hover_pending field in ListView
4586         to fire just one OnMouseHover event for each MouseEnter/MouseLeave
4587         cycle (we are resetting the MouseHover logic in XplatUI
4588         to handle HoverSelection). Fixes #80429.
4589
4590 2007-04-02  Jackson Harper  <jackson@ximian.com>
4591
4592         * TextControl.cs: Make sure the attributes get set on the last
4593         tag.
4594         - Still have to do the end tag if we have stepped all the ways to
4595         the end.
4596
4597 2007-04-02  Sebastien Pouliot  <sebastien@ximian.com>
4598
4599         * XplatUIOSX.cs, XplatUIX11.cs, XplatUIX11GTK.cs: Remove dependency
4600         on an internal libgdiplus call when the information is already 
4601         available via the public API.
4602
4603 2007-04-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4604
4605         * Control.cs: Call ContainerControl.ChildControlRemoved whenever a
4606           control is removed from a control collecftion.
4607         * XplatUIX11.cs: The first location for toplevel form is (22, 22).
4608           Fixes FormPropertyTest (failed on rare occasions).
4609         * XplatUIWin32.cs: Add a workaround in SetParent for strange behaviour
4610           of Win32SetParent (when changing from no parent to a parent it
4611           might add the new parent's location in screen coordinates to this
4612           window's location).
4613         * Form.cs: Rework ChangingParent once again, now the handle is
4614           recreated whenever a FormWindowManager is added or removed (that is
4615           whenever a normal form is parented or abandoned). Also change
4616           CreateParams so that all non-toplevel windows always get the
4617           specified sice (StartupPosition is never considered for
4618           non-TopLevel forms).
4619         * ContainerControl.cs: Add ChildControlRemoved, the container control
4620           needs to be notified when a control is removed from it's
4621           collection, in the case the removed control is the active control.
4622
4623 2007-04-02  Jackson Harper  <jackson@ximian.com>
4624
4625         * RichTextBox.cs: Use the new methods for setting the font and
4626         color, these methods set the specified attribute without
4627         overriding the other attributes.
4628
4629 2007-04-02  Jonathan Pobst  <monkey@jpobst.com>
4630
4631         * ToolStripPanel.cs: Fixes for better layouts in PDN.
4632
4633 2007-03-31  Gert Driesen  <drieseng@users.sourceforge.net>
4634
4635         * TextBox.cs: Added internal ChangeBackColor method to special-case
4636         Color.Empty. Added check for invalid ScrollBars value.
4637         * TextBoxBase.cs: Added internal ChangeBackColor method.
4638         * RichTextBox.cs: Only set backcolor_set on 2.0 profile. Added
4639         internal ChangeBackColor method to special-case Color.Empty. Added
4640         check for invalid ScrollBars value.
4641
4642 2007-03-30  Everaldo Canuto  <everaldo@simios.org>
4643
4644         * MenuItem.cs: On invalidate prevent form to create handle. [Fixes #81272]
4645
4646 2007-03-30  Jonathan Pobst  <monkey@jpobst.com>
4647
4648         * ScollableControl.cs: Add HorizontalScroll and VerticalScroll properties.
4649         * ScrollProperties.cs, HScrollProperties.cs, VScrollProperties.cs: Added.
4650         [Based on submitted patch from Olivier Duff.]
4651
4652 2007-03-30  Jackson Harper  <jackson@ximian.com>
4653
4654         * TextBox.cs: Only select all on initial focus if the user has not
4655         specified a selection area.
4656
4657 2007-03-30  Jonathan Pobst  <monkey@jpobst.com>
4658
4659         * UserControl.cs: Override CreateParams.
4660
4661 2007-03-30  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4662
4663         [ Fixes #80995 ]
4664
4665         * XplatUI.cs, XplatUIDriver.cs: Updated CalculateWindowRect parameters.
4666         * CreateParams.cs: Fix IsSet, wasn't working correctly when the style to
4667           check for is a mix of several styles (such as WS_CAPTION for instance).
4668         * Control.cs: Don't paint an area bigger than the client area when painting
4669           the background colour. Add an internal GetCreateParams. Update calls to
4670           XplatUI.CalculateWindowRect due to API change.
4671         * XplatUIX11.cs: In PerformNCCalc set the initial size to the whole window's
4672           size, and handle WM_NCCALCSIZE in DefWndProc to calculate the size if it
4673           hasn't been handled by any windows. When creating and moving windows, X
4674           wants the location of the entire window, but the size of the client
4675           window, so add TranslateClientRectangleToXClientRectangle,
4676           TranslateWindowSizeToXWindowSIze and TranslatedXWindowSizeToWindowSize
4677           to cope with this, and call them before every window creation and move.
4678           Update CalculateWIndowRect to use Hwnd.GetWindowRect (one step towards
4679           removing DeriveStyles). In AddConfigureNotify don't do anything if the
4680           hwnd is a zombie (fixes the BadWindow we were getting while running the
4681           tests), always calculate the offsets when it's a parentless window, not
4682           only when reparented, and translate the window size, since we're getting
4683           the client size of the whole window, excluding entire window.
4684         * Theme.cs: Added BorderSizableSize.
4685         * XplatUIWin32.cs: Fix RECT Height and Width. Don't fake styles here
4686           anymore. Update calls to XplatUI.CalculateWindowRect due to API change.
4687         * Form.cs: Update calls to XplatUI.CalculateWindowRect due to API change.
4688           Fake the window styles here instead of in XplatUIWin32 so that all
4689           back-ends get the same window styles (and it's Form that's deciding when
4690           to use wm, not the Win32 backend anyways)
4691         * Hwnd.cs: Completely reworked GetWindowRectangle and GetClientRectangle -
4692           they are now passed a CreateParams and they only use Style and ExStyle
4693           to determine the rectangles (they should now work just like
4694           Win32AdjustWindowRectEx - though quite a few special cases are probably
4695           missing). They should also be 100% complimentary (i.e. GetWindowRectangle
4696           (GetClientRectangle (rect)) == rect), and all numbers (borders, menu
4697           sizes) are taken from the current theme. Added a GetBorders helper
4698           function that will return the borders for any given CreateParams
4699           (including captions and menus), and GetBorderSize that returns the given
4700           border size only.
4701         * XplatUIOSX.cs: Update calls to CalculateWindowRect and
4702           Hwnd.GetClientRectangle.
4703
4704 2007-03-30  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4705
4706         * Form.cs: Don't layout mdi children on MdiParent creation, the initial
4707           layout of the mdi children is handled by CreateParams. Fixes
4708           #79964,
4709
4710 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
4711
4712         * MenuAPI.cs: Make OnMouseDown returns a boolean to identify if event is
4713         processed.
4714
4715         * Form.cs: When active tracker mouse down is not processed, send event 
4716         back to control inside mouse position. [Fixes #81227]
4717
4718 2007-03-29  Jonathan Pobst  <monkey@jpobst.com>
4719
4720         * ComboBox.cs: Override the ComboListBox's ActivateOnShow property and
4721         remove WS_VISIBLE from CreateParams to prevent combobox dropdowns from
4722         stealing focus from the active form on Windows.  (Control will be made
4723         visible in ShowWindow.)
4724
4725 2007-03-29  Mike Kestner  <mkestner@novell.com>
4726
4727         * ImageList.cs : add internal Changed event.
4728         * ListView.cs : hook up to StateImageList.Changed to perform
4729         invalidations when the the state icon list changes. [Fixes #81191]
4730
4731 2007-03-29  Jonathan Pobst  <monkey@jpobst.com>
4732
4733         * ToolTip.cs: Override the ToolTipWindow's ActivateOnShow property
4734         to prevent tooltips from stealing focus from the active form on Windows.
4735
4736 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
4737
4738         * ThemeWin32Classic.cs: Small stetic fixes in notifyicon balloon. 
4739
4740         * ThemeClearlooks.cs: Implement notifyicon balloon for clearlooks theme.
4741
4742 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
4743
4744         * NotifyIcon.cs, ThemeWin32Classic.cs: Icon support added to notifyicon
4745         balloons.
4746
4747 2007-03-29  Jackson Harper  <jackson@ximian.com>
4748
4749         * TextControl.cs: When deleting text from non multiline textboxes,
4750         we need to update the entire document, because line offsets will
4751         be shifting.
4752
4753 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
4754
4755         * XplatUIX11.cs, ThemeWin32Classic.cs, Theme.cs: ShowBalloonWindow method
4756         added to theme, now we can create themes that uses diferent notify engines
4757         like notification-daemon from galago project or growl for Mac OS.
4758
4759 2007-03-28  Everaldo Canuto  <everaldo@simios.org>
4760
4761         * NotifyIcon.cs: Prevent Balloon to show in task bar.
4762
4763 2007-03-28  Everaldo Canuto  <everaldo@simios.org>
4764
4765         * XplatUIX11.cs: Prevent system to open more than one balloon.
4766
4767         * NotifyIcon.cs: Prevent system to open more than one balloon and remove
4768         some compiler warning messages.
4769
4770 2007-03-28  Everaldo Canuto  <everaldo@simios.org>
4771
4772         [Fixes #79149]
4773
4774         * XplatUIX11.cs: Implement SystrayBalloon for X11 systems.
4775
4776         * ThemeWin32Classic.cs, Theme.cs: DrawBalloonWindow and BalloonWindowRect 
4777         implemented, this methods is used by NotifyIcon.BalloonWindow class.
4778
4779         * NotifyIcon.cs: BalloonWindow class added to support Balloon in X11 
4780         systems.
4781
4782 2007-03-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4783
4784         * ListViewItem.cs: Forgot to make Invalidate internal.
4785
4786 2007-03-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4787
4788         * ListView.cs: Add a InvalidateSelection method to
4789         invalidate methods which are currently selected, and call
4790         it when setting FullRowSelect and HideSelection, instead of
4791         calling Redraw.
4792
4793 2007-03-28  Chris Toshok  <toshok@ximian.com>
4794
4795         * XplatUIX11.cs (UnmapWindow): reindent this block.
4796
4797         * DataGrid.cs (UpdateSelectionAfterCursorMove): we need to update
4798         the selection_start if we're moving the selection (that is, not
4799         extending it). Fixes bug #80461.
4800
4801 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
4802
4803         * ProgressBar.cs: Make the default MarqueeAnimationSpeed = 100.
4804         * ToolStripPanel.cs: Fix RowMargin, Renderer, RenderMode, and
4805         create private ControlCollection.
4806
4807 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
4808
4809         * Control.cs: We need to call OnVisibleChanged for our implicit
4810         children as well as our normal children.  Fixes scrollbars in
4811         comboboxes not showing up.
4812
4813 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
4814
4815         * Control.cs, Form.cs: Anywhere we call CreateHandle, we need to do
4816         the check for IsHandleCreated first.  The check in CreateHandle is not
4817         good enough because CreateHandle can be overriden, and the override 
4818         should not be called if the handle is already created.
4819
4820 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
4821
4822         * ToolStrip.cs: Remove MonoTODO for tooltips.
4823         * ToolStripComboBox.cs: Fix MonoTODO for DropDownHeight and events.
4824         * ToolStripContainer.cs: Add custom ControlCollection class.
4825         * ToolStripContentPanel.cs: Fix Renderer setting to match MS behavior.
4826         * ToolStripDropDown.cs: Add some missing properties/methods.
4827         * ToolStripDropDownMenu.cs: Override OnLayout and SetDisplayedItems.
4828         * ToolStripItem.cs: Remove MonoTODO for tooltips.
4829         * ToolStripManager.cs: Add IsShortcutDefined.
4830         * ToolStripOverflow.cs: Override LayoutEngine.
4831         * ToolStripProgressBar.cs: Add MarqueeAnimationSpeed.
4832         * ToolStripSeparator.cs: Add ImageKey.
4833
4834 2007-03-28  Jackson Harper  <jackson@ximian.com>
4835
4836         * TextControl.cs: If a char delete removes a line ending, we need
4837         to update the ending style.
4838         - Make sure the line ending calcs get called.
4839
4840 2007-03-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4841
4842         * XplatUIX11.cs: CreateWindow: Remove old default form location code,
4843           it was making the new code not work. Fixed a typo in the new code
4844           as well. Fixes #79826.
4845
4846 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
4847
4848         * XplatUIWin32.cs:
4849         - NIF_STATE and NIF_INFO added to NotifyIconFlags.
4850         - NOTIFYICONDATA properties sizes fixed, szTip is 128, not 64.
4851         - SystrayBalloon method implemented.
4852         [Add support for notifyicon balloon on win32, #79149]
4853
4854 2007-03-27  Mike Kestner  <mkestner@novell.com>
4855
4856         * ThemeWin32Classic.cs : update StateImageList selection to mirror
4857         the ms behavior when only one image is added to the list.
4858         [Fixes #81191]
4859
4860 2007-03-27  Jackson Harper  <jackson@ximian.com>
4861
4862         * TextControl.cs: Improvements to non multiline line ending
4863         drawing/measuing.
4864
4865 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
4866
4867         * XplatUIX11.cs: Fix the time which tooltip is opened for NotifyIcon. 
4868
4869 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
4870
4871         * NotifyIcon.cs: 
4872         - Balloon message handling added.
4873         - Call XplatUI.SystrayBalloon in ShowBalloonTip. 
4874
4875         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
4876         XplatUIOSX.cs, XplatUIX11-new.cs: ShowBalloonTip method renamed 
4877         to SystrayBalloon to me like other Systray method, also a
4878         handle parameter added.
4879
4880 2007-03-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4881
4882         * ListView.cs: Show scrollbars even when items.Count == 0
4883         but the columns Width is bigger than the ListView.Width.
4884         Also, when columns.Count == 0 set layout_wd and layout_ht
4885         to the ClientRectangle values, so we don't show any scrollbar
4886         in that case.
4887
4888 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
4889
4890         * XplatUIStructs.cs: Balloon (NIN_BALLOON*) constants added.
4891
4892 2007-03-27  Jackson Harper  <jackson@ximian.com>
4893
4894         * RichTextBox.cs: The RTF library decodes the text properly for us
4895         now.
4896
4897 2007-03-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4898
4899         * ListView.cs: Display HeaderControl even when columns.Count == 0.
4900         * ThemeWin32Classic.cs: Use SystemBrushes.Control to draw the
4901         ListView header (HeaderControl), instead of Control.BackColor.
4902
4903 2007-03-27  Jonathan Pobst  <monkey@jpobst.com>
4904
4905         * Control.cs: Call OnVisibleChanged in SetVisibleCore for non-forms.
4906         Fixes tab control issues where controls would not show up because they
4907         never received their OnVisibleChanged call.
4908
4909 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
4910
4911         * NotifyIcon.cs: Balloon events added (BalloonTipClicked, BalloonTipClosed,
4912         BalloonTipShown).
4913
4914 2007-03-27  Jonathan Pobst  <monkey@jpobst.com>
4915
4916         * Control.cs: We won't get a WM_SHOWWINDOW when we create a window that
4917         is maximized or minimized, so move CreateControl to Control.OnVisibleChanged.
4918         * Form.cs: After we set the form visible, send a fake WM_SHOWWINDOW if we
4919         are max or min.  Remove WS_VISIBLE from CreateParams unless we are recreating
4920         the handle.  Fix WindowState by using the internal variable until we are 
4921         sure that we've been shown.
4922         * XplatUIX11.cs: Do not generate a WM_SHOWWINDOW message if new form is
4923         max or min.
4924         [Fixes bug #81198]
4925
4926 2007-03-27  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4927
4928         * XplatUIX11.cs: Windows without WS_CAPTION can still get decorations
4929           (at least borders). Fixes #79386 on Linux (with a small difference
4930           in behaviour: when trying to resize a caption-less window metacity
4931           shows the sysmenu. Resizing is still possible though).
4932         * XplatUIWin32.cs: When setting window styles send request an extra
4933           WM_NCCALCSIZE when it's a form without title (due to no text and no
4934           caption), since Win32 seems to calculate it wrong the first time we
4935           get the message, though the second time things work as they should.
4936         * Form.cs: Reorder a few statements in ChangingParent, otherwise the
4937           newly reparented window might show up unparented. Update
4938           CreateParams to exclude WS_DLGFRAME if ControlBox is false and
4939           there's no title text. Fixes #79386.
4940
4941 2007-03-27  Mike Kestner  <mkestner@novell.com>
4942
4943         * ListBox.cs : don't perform invalidations if the handle hasn't been
4944         created.  [Fixes #80753]
4945
4946 2007-03-27  Mike Kestner  <mkestner@novell.com>
4947
4948         * ListBox.cs : don't adjust top item when SelectedIndex is set to -1.
4949         [Fixes #80428]
4950
4951 2007-03-26  Everaldo Canuto  <everaldo@simios.org>
4952
4953         * XplatUIWin32.cs: Complete NOTIFYICONDATA structure, additional fields 
4954         needed to implement Balloon.
4955
4956 2007-03-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4957
4958         * ListViewItem.cs: In the constructors that take
4959         an array of strings, don't use ListViewSubItemCollection.AddRange
4960         method to add items, since we need to have a different behaviour (in
4961         the constructors we add an item for each null string, opposed to
4962         the behaviour of AddRange, which adds nothing).
4963
4964 2007-03-26  Andreia Gaita  <avidigal@novell.com>
4965
4966         * NumericUpDown.cs: Fix broken 1.1 api for ParseEditText
4967
4968 2007-03-26  Jackson Harper  <jackson@ximian.com>
4969
4970         * TextControl.cs: Draw and measure line endings when in non
4971         multiline mode.
4972         - When searching the text, count the end of the last line as a
4973         word boundary.
4974
4975 2007-03-26  Jackson Harper  <jackson@ximian.com>
4976
4977         * RichTextBox.cs: The selection_start and selection_end don't
4978         really track the correct tags for the selection. So we'll manually
4979         compute the correct tag here.
4980
4981 2007-03-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4982
4983         * ProgressBar.cs, ThemeWin32Classic.cs: Implemented drawing of Marquee
4984           and Continuous styles. Fixes #79469.
4985
4986 2007-03-26  Jonathan Pobst  <monkey@jpobst.com>
4987
4988         * ToolStrip.cs: Implement Tooltips.
4989         * ToolStripItem.cs: Create internal method for determining tooltip.
4990
4991 2007-03-26  Jonathan Pobst  <monkey@jpobst.com>
4992
4993         * PropertyGrid.cs: Hide a EditorBrowsable attribute from 1.1 API.
4994
4995 2007-03-26  Everaldo Canuto  <everaldo@simios.org>
4996
4997         * NotifyIcon.cs: On disposing verify if icon is visible and hide it,
4998         it prevents a problem thak keeps icon visible after application 
4999         closes on win32.
5000
5001 2007-03-26  Everaldo Canuto  <everaldo@simios.org>
5002
5003         * NotifyIcon.cs: Balloon properties and methods created.
5004
5005         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
5006         XplatUIOSX.cs, XplatUIX11-new.cs: Implement ShowBalloonTip method.
5007
5008 2007-03-25  Jonathan Pobst  <monkey@jpobst.com>
5009
5010         * ToolStripComboBox.cs: Default the ComboBox's FlatStyle to Popup.
5011
5012 2007-03-24  Jonathan Pobst  <monkey@jpobst.com>
5013
5014         * Control.cs: Make SetBoundsCore match MS better.  The BoundsSpecified
5015         parameter indicates which aspects were explicit/user-set.
5016         * ComboBox.cs, ListBox.cs: Call SetBoundsCore correctly. (no 0 parameters).
5017
5018 2007-03-24  Jonathan Pobst  <monkey@jpobst.com>
5019
5020         * ProgressBar.cs: Throw AOORE instead of AE for property Value (2.0).
5021         * ScrollBar.cs: Throw AOORE instead of AE for properties LargeChange,
5022         SmallChange, and Value (2.0).
5023         * Timer.cs: Throw AOORE instead of AE for property Interval (2.0).
5024
5025 2007-03-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5026
5027         * ListView.cs: Always set item_control.Width in LayoutDetails
5028         if View is Details. Setting it later in CalculateScrollBars
5029         in a not-so-corner scenario (the sum of columns width is
5030         not bigger than the ListView width when handle is created, and then
5031         that sum gets bigger by increasing the width of the columns)
5032         causes a very weird recursion path (which shouldn't be happening,
5033         since header_control sets it in CalculateScrollBars too). This bug
5034         appeared after Chris' fixes for handle created issues, so probably
5035         it's related to some handle-creation time.
5036
5037 2007-03-23  Chris Toshok  <toshok@ximian.com>
5038
5039         * DataGrid.cs (GetVisibleRowCount): increase the row count in the
5040         case where there's an add row, just so we don't end up in a case
5041         where it's not displayed (this happens when the row is partially
5042         obscured).  Fixes bug #79574.
5043
5044 2007-03-23  Jackson Harper  <jackson@ximian.com>
5045
5046         * TextControl.cs:
5047         * TextBoxBase.cs:
5048         * RichTextBox.cs: Preserve line endings in the lines text buffer,
5049         also added an enum that represents the line ending type. 
5050
5051 2007-03-23  Andreia Gaita  <avidigal@novell.com>
5052
5053         * NumericUpDown.cs: Fix logic so Text and Value properties are not
5054         messed with in every method call, but only from DownButton, 
5055         UpButton, UpdateEditText() and ValidateText. Fixes #80346
5056
5057 2007-03-23  Chris Toshok  <toshok@ximian.com>
5058
5059         * DataGridTextBoxColumn.cs (GetFormattedValue): don't try to
5060         format objects if the format spec is "".  Fixes bug #80889.
5061
5062 2007-03-22  Miguel de Icaza  <miguel@novell.com>
5063
5064         * ToolStripPanel.cs (Join): added stubs to build PDN3
5065
5066         * Control.cs (AutoScrollOffset): Add.
5067
5068         * SystemInformation.cs (MouseWheelScrollDelta): Expose this
5069         property, its only implemented for Win32, on X11 it defaults to
5070         some hardcoded value.
5071
5072         * ToolStripItem.cs (AllowDrop): Add property
5073
5074 2007-03-22  Mike Kestner  <mkestner@novell.com>
5075
5076         * ListView.cs : in FullRowSelect Details mode, only enable box
5077         selection if the user clicks over the "item" column outside of the
5078         text area.  Mmmmm, compatibility.  [Fixes #80374 subpart 7]
5079
5080 2007-03-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5081
5082         * Control.cs: ChangeParent: Call Form's ChangingParent even if the
5083           handle is not created yet.
5084         * Form.cs: Select: Don't call CreateHandle if the handle is already
5085           created, avoids a stack overflow on Windows when we are recreating
5086           controls.
5087         * ScrollableControl.cs: Set the correct z-order for the scrollbars when
5088           they are made visible, and override AfterTopMostControl to keep
5089           them on top when other controls are brought to front.
5090           CalculateCanvas: Scrollbars are only visible if auto_scroll is true
5091           or force_*scroll_visible is true (old implementation always shows
5092           scrollbars when needed, no matter what auto_scroll was set to).
5093         * InternalWindowManager.cs: UpdateWindowDecorations: Add a
5094           IsHandleCreated check.
5095
5096 2007-03-22  Andreia Gaita  <avidigal@novell.com>
5097
5098         * DataGrid.cs: Implement Column and Row auto sizing when double-clicking on
5099         row or col separator.
5100         * DataGridTextBoxColumn.cs: Implement GetPreferredHeight and GetPreferredSize
5101
5102 2007-03-22  Everaldo Canuto  <everaldo@simios.org>
5103
5104         * MenuAPI.cs: Remove unneeded check for grab_control in UpdateCursor.
5105
5106 2007-03-22  Everaldo Canuto  <everaldo@simios.org>
5107
5108         * MenuAPI.cs: UpdateCursor method added, it is calling in OnMotion to update
5109         cursor for child controls. In ShowWindow and HideWindow now call SetCursor 
5110         every time. Fixes #80410.
5111
5112 2007-03-22  Chris Toshok  <toshok@ximian.com>
5113
5114         * BindingSource.cs (AddNew): partially implement.
5115
5116         remove a couple of NotImplementedException's
5117         to get bug #81148 closed.
5118
5119 2007-03-22  Everaldo Canuto  <everaldo@simios.org>
5120
5121         [Fixes #80380]
5122         
5123         * Control.cs:
5124         - UpdateCursor method added to update the screen cursor.
5125         - GetAvailableCursor method added to return cursor for enabled tree,
5126         it searches for cursor on control and it's parent's for enabled control.
5127         - Call UpdateCursor method on setter of Cursor property.
5128         - On setter of Enabled call UpdateCursor when it is false, we need to
5129         change cursor to normal (or to this parent cursor) because cursor 
5130         setting theres no effect to disabled controls.
5131         - Some minor source changes to follow the coding style guidelines.
5132
5133         * XplatUIX11.cs: In MotionNotify only dispatch SET_CURSOR event for enabled 
5134         controls.
5135
5136 2007-03-22  Chris Toshok  <toshok@ximian.com>
5137
5138         * XplatUIX11.cs: ignore the BadPicture errors cairo+render
5139         generates.
5140
5141 2007-03-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5142
5143         * XplatUIX11.cs: Implement default locations for forms.
5144         * Form.cs: Completely rework startup location for forms. Fixes #79964.
5145         * Hwnd.cs: Add previous_child_startup_location (to track the current
5146           startup location for any child forms of the current form) and
5147           previous_main_startup_location (to track the startup location for
5148           the current toplevel form).
5149
5150 2007-03-21  Jonathan Pobst  <monkey@jpobst.com>
5151
5152         * Control.cs: Don't trigger a layout if an implicit control is added
5153         that isn't visible.  Also, don't notify the owner when an implicit control
5154         is added.  (Owners shouldn't even know about their implicit controls.)
5155
5156 2007-03-21  Jonathan Pobst  <monkey@jpobst.com>
5157
5158         * ScrollableControl.cs: Add implicit controls with AddRangeImplicit
5159         to save some re-layouts.
5160
5161 2007-03-21  Everaldo Canuto  <everaldo@simios.org>
5162
5163         * MenuAPI.cs: In ProcessKeys returns false when key is not processed.
5164         [Fixes #81203]
5165
5166 2007-03-21  Jonathan Pobst  <monkey@jpobst.com>
5167
5168         * FlowLayoutSettings.cs, ToolStrip.cs, ToolStripPanel.cs,
5169         ToolStripPanelRow.cs: Lazy instantiate the LayoutEngine.
5170
5171 2007-03-21  Mike Kestner  <mkestner@novell.com>
5172
5173         * ListView.cs : disable selection update for non-left button clicks
5174         with mods and over selected items.  [Fixes #80524]
5175
5176 2007-03-20  Jackson Harper  <jackson@ximian.com>
5177
5178         * TextControl.cs:
5179         * TextBoxBase.cs: Allow different types of line endings. \r, \r\n,
5180         \r\r\n, \n.
5181
5182 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5183
5184         * ComboBox.cs: PreferredHeight seems to be ItemHeight + 6, but there is
5185           very probably a more complicated calculation there. Update the
5186           textbox' ForeColor and BackColor when the ComboBox' colors are
5187           changed. Change the border change in LayoutComboBox to only affect
5188           the textbox, not all the calculations there. Seems to fix most of
5189           #79436.
5190
5191 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5192
5193         * ComboBox.cs: Handle Home and End keys as well as all combinations of
5194           modifiers + navigation keys as input keys, enables advanced text
5195           selection in the combobox (like Shift+Left Arrow for instance).
5196           ComboTextBox now overrides Focused and returns whatever
5197           ComboBox.Focused returns, since it really should be focused
5198           whenever the ComboBox is. Fixes #80795. Also make the border around
5199           the text box one pixel bigger, as mentioned in #79436.
5200
5201 2007-03-20  Jackson Harper  <jackson@ximian.com>
5202
5203         * TreeView.cs: Don't offset the images, this was causing some
5204         artifacts when expanding/collapsing with images that were the
5205         exact height of the treenode.
5206
5207 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5208
5209         * TrackBar.cs: Query the theme for the correct value when the mouse
5210           moves and the thumb is pressed. 
5211         * Theme.cs: Added TrackBarValueFromMousePosition
5212         * ThemeWin32Classic.cs: Reworked TrackBar drawing. Earlier
5213           implementation was updating the trackbar value when drawing, now
5214           the drawing methods only draw. Fixes #80900. Refactored the
5215           calculations out to TrackBarValueFromMousePosition and
5216           GetTrackBarDrawingInfo, so that TrackBar can get the correct value
5217           according to the mouse position whenever it wants to. Changed the
5218           light coloured pen when drawing the thumb from ControlLight to
5219           ControlLightLight, because the ControlLight is the same colour as
5220           the background so the 3D effect is lost. 
5221
5222 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
5223
5224         * Form.cs: In ShowDialog uses MainForm as transient form when no form is
5225         defined. Fixes #80784.
5226
5227 2007-03-20  Marek Habersack  <mhabersack@novell.com>
5228
5229         * ContextMenuStrip.cs: align with the change introduced in
5230         revision 74664.
5231
5232 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
5233
5234         * XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs, 
5235         XplatUI.cs, Form.cs, ToolTip.cs: Remove unneeded parameter owner 
5236         in SetTopmost.
5237
5238 2007-03-19  Chris Toshok  <toshok@ximian.com>
5239
5240         * Control.cs (WmPaint): don't make use of the Handle property
5241         after an event is emitted, as the user could have closed the
5242         form/destroyed the control.  Store the Handle in a local variable
5243         and make use of that.  Fixes bug #80768.
5244
5245 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
5246
5247         * XplatUIX11.cs: Set _NET_WM_STATE_ABOVE on SetTopmost, it fixes Topmost
5248         behavior in X11 environments.
5249
5250 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
5251
5252         * Form.cs: Call SetTopmost in CreateHandle when window is topmost, its
5253         because on setter of topmost we dont call SetTopmost when handle is not
5254         created.
5255
5256 2007-03-20  Jackson Harper  <jackson@ximian.com>
5257
5258         * TextControl.cs: Need to use SelectionLength () not
5259         selection_length, since that var is reset to -1.
5260         - Draw the caret when we don't have focus.
5261         * TextBox.cs: The selectall actually doesn't occur until the first
5262         focus.
5263         * TextBoxBase.cs: Need to update the caret position after a
5264         selectall.
5265         
5266 2007-03-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5267
5268         * ListView.cs: Enable scrolling when using Tile view.
5269
5270 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
5271
5272         [Fixes #80902]
5273
5274         * XplatUIDriver.cs: Abstract SetOwner method created.
5275
5276         * XplatUIOSX.cs: Override SetOwner to prevent compilation errors method 
5277         must be implemented and was masked as todo.
5278
5279         * XplatUIWin32.cs: SetOwner implemented using SetWindowLong with 
5280         GWL_HWNDPARENT.
5281
5282         * XplatUIX11.cs: SetOwner implemented using same code from SetTopmost but 
5283         cheking for null owner to remove transient. The SetTopmost will be change
5284         on a decond step.
5285
5286         * Form.cs: In set_Owner and CreateHandle uses new SetOwner instead of
5287         SetTopmost. Now owned forms will work properly in win32 and X11.
5288
5289 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5290
5291         * MdiWindowManager.cs: Update function name.
5292         * Form.cs: After closing a form MdiParent is always null.
5293         * MdiClient.cs: Rename CloseChildForm to ChildFormClosed to explain
5294           better what it should do: necessary book-keeping when the form is
5295           closed, it should not close the form itself.
5296
5297 2007-03-19  Andreia Gaita  <avidigal@novell.com>
5298
5299         * ListViewItem.cs: Fix back and fore color. The subitems only
5300         use their own colors if they are set, otherwise use the listview's
5301         colors. Don't set default colors on constructor for subitem.
5302         Fixes #79315.
5303
5304 2007-03-19  Mike Kestner  <mkestner@novell.com>
5305
5306         * ListView.cs : make box selection for Details views with 
5307         FullRowSelect conform to MS behavior when clicking in the "item" 
5308         column and clicking outside the defined columns.
5309         [Fixes case 5-6 of #80374]
5310
5311 2007-03-19  Chris Toshok  <toshok@ximian.com>
5312
5313         * ScrollableControl.cs: create the controls from within the ctor,
5314         but don't actually add them until our handle is created.  this
5315         fixes a NRE possibility jpobst found (if you override OnLayout in
5316         a subclass, it's called before your ctor).  Also, add a
5317         IsHandleCreated guard to UpdateSizeGripVisibility as well.
5318
5319 2007-03-19  Jackson Harper  <jackson@ximian.com>
5320
5321         * TextBox.cs: Reduce the amount of invalidation we do.
5322         * TextBoxBase.cs: Make shortcuts enabled true by default, at least
5323         some of them are true by default on MS.
5324         - Add some functions to reduce the amount of invalidates we do.
5325         * TextControl.cs: Less invalidation.
5326
5327 2007-03-19  Chris Toshok  <toshok@ximian.com>
5328
5329         [ Fixes #81773, and *seems* to fix #81553 as well ]
5330
5331         * XplatUIX11.cs: remove the assignment of hwnd.zombie = true from
5332         AccumulateDestroyedHandles.  We need to do it *after* we send
5333         WM_DESTROY, as the user's code can access Control.Handle in
5334         OnHandleDestroyed, and this shouldn't cause a recreation.  Also,
5335         move the WM_DESTROY/zombie handling to before the call to
5336         XDestroyWindow.  For some reason without this ordering
5337         FormTest.RecreateHandle hangs.  This ordering is semantically
5338         equivalent, however, as XDestroyWindow is async anyway.
5339
5340 2007-03-19  Gert Driesen  <drieseng@users.sourceforge.net>
5341
5342         * RichTextBox.cs: Reset backcolor_set after setting default.
5343
5344 2007-03-19  Chris Toshok  <toshok@ximian.com>
5345
5346         * ScrollableControl.cs: the scroll position should not effect the
5347         canvas size.  commit patch from georgegiolfan@yahoo.com, which
5348         fixes some really bizarre behavior on resizing.  Fixes bug #80778.
5349         
5350 2007-03-19  Chris Toshok  <toshok@ximian.com>
5351
5352         * ScrollableControl.cs: clean this up a bit.  create the
5353         scrollbars in the ctor and just show/hide them as needed.  Also,
5354         make hscroll_visible/vscroll_visible internal to Recalculate, and
5355         just use hscrollbar.VisibleInternal/vscrollbar.VisibleInternal
5356         everywhere else.  This seems to fix the scrollbars appearing
5357         beneath the content for me (i have *no* idea why that is,
5358         however.)
5359
5360 2007-03-19  Jonathan Pobst  <monkey@jpobst.com>
5361
5362         * ToolStrip.cs: Don't call DoAutoSize when we change Dock.  Also, remove
5363         some redundacy for stuff in Anchor and Dock that base will take care of.
5364         [Fixes #80762]
5365
5366 2007-03-19  Mike Kestner  <mkestner@novell.com>
5367
5368         * ListView.cs : make box selection for Details views without 
5369         FullRowSelect dependent on the text bounds, not item bounds.
5370         * ListViewItem.cs : add an internal property to obtain the TextBounds
5371         in Details view.  [Fixes case 1-4 of #80374]
5372
5373 2007-03-19  Andreia Gaita  <avidigal@novell.com>
5374
5375         * PaintEventArgs.cs (Dispose): Only dispose of graphics object if
5376         we're < 2.0. #78448 && #80316
5377
5378 2007-03-19  Jonathan Pobst  <monkey@jpobst.com>
5379
5380         * FontDialog.cs: Don't crash when we switch to a new font that doesn't
5381         have the same style available as the previously selected one.  Also,
5382         support FixedPitchOnly property.  [Fixes bugs #80918, #80947]
5383
5384 2007-03-19  Jackson Harper  <jackson@ximian.com>
5385
5386         * TextControl.cs: Add an alignment property that all new lines
5387         will be given.
5388         - Make sure to use the align shift when calculating the line's X
5389         position.
5390         * TextBox.cs: Set the alignment on the document as well as on all
5391         the document lines.
5392
5393 2007-03-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5394
5395         * Control.cs: ControlCollection.Add: Remove a couple of duplicated casts and
5396           throw if setting the parent of an mdichild that already has an
5397           mdiparent. Update signature for 2.0 profile. ProductName: If there's no
5398           AssemblyProductAttribute in the assembly, use the type's namespace (as
5399           MS seems to do). CreateControl: don't create the handle if the control
5400           is not visible (according to MS behaviour and spec).  SetTopLevel: Only
5401           create handle if the control is not a form. Change FocusInternal to
5402           virtual so that it can be overriden by Form.
5403         * TextBox.cs: Update call to FocusInternal.
5404         * Form.cs: Always create the handle when calling Focus on a MdiChild. The
5405           form is not a toplevel form when it's a mdi child, so update is_toplevel
5406           accordingly. ShowIcon/TransparencyKey: avoid creating the handle if it
5407           hasn't been created. Show (IWin32Window): Don't allow this overload for
5408           toplevel windows. CenterToParent/CenterToScreen/Select: create the
5409           handle as MS does. SetVisibleCore: if called on a MdiChild and the
5410           parent isn't visible yet, save the visibility and restore it when the
5411           parent is made visible.
5412         * ScrollableControl.cs: Refactor out scrollbar visibility code to separate
5413           methods, since the visibility of the scrollbars can be changed from
5414           several places, not only from AutoScroll.
5415           [Fixes #81179]
5416
5417 2007-03-19  Jackson Harper  <jackson@ximian.com>
5418
5419         * RichTextBox.cs: Enable shortcuts by default.
5420         * TextBoxBase.cs: Add conditional shortcuts.  
5421
5422 2007-03-19  Everaldo Canuto  <everaldo@simios.org>
5423
5424         * MenuItem.cs: Dont call OnDrawItem when OwnerDraw is false (#81182).  
5425
5426 2007-03-19  Chris Toshok  <toshok@ximian.com>
5427
5428         [ Fixes bug #80604]
5429         
5430         * XplatUIX11.cs (WaitForHwndMessage): change this to actually
5431         swallow the message we're waiting on, instead of delivering it, as
5432         this is only used for the WM_SHOWWINDOW raised from
5433         MapWindow/UnmapWindow, and the message needs to be generated
5434         (MapWindow, UnmapWindow): generate the WM_SHOWWINDOW message
5435         before doing the Map/Unmap.  Also make sure that the Hwnd is still
5436         alive after the message has been handled.
5437
5438         *before* the window is shown.
5439
5440         * Control.cs (CreateControl): guard a few more things inside the
5441         if (!is_created) block, as we might end up being called again -
5442         yay .net.
5443         (WmShowWindow): call CreateControl if we're showing the control.
5444
5445 2007-03-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5446
5447         * Control.cs: Fix 2.0 signature for Invoke. Support invoking on
5448           controls without a handle if they have any parent with a handle. In
5449           Dispose add a check whether the handle is created or not before
5450           calling BeginInvoke, this removes the need of the extra disposing
5451           parameter (which was bogus anyway since it didn't prevent the
5452           invoke from happening, it only skipped the check for an existing
5453           handle, meaning that the invoke would call on an inexistent
5454           handle).
5455
5456 2007-03-19  Everaldo Canuto  <everaldo@simios.org>
5457
5458         * MessageBox.cs: Remove WS_POPUP from CreateParams style, with it form
5459         appears in taskbar.
5460
5461 2007-03-18  Everaldo Canuto  <everaldo@simios.org>
5462
5463         * MessageBox.cs:
5464         - Fixed a problem that dont show help button for messages with 3 buttons.
5465         - Refactory button size and position calculations, now dont use fixed 
5466         values, also fixed button sizes (#80043) and form's border space.
5467         - AddButton method created, now all other AddButton methods call this one.
5468         - Some other source code cosmetic changes.
5469
5470 2007-03-18  Jackson Harper  <jackson@ximian.com>
5471
5472         * RichTextBox.cs: Don't do this all fonts must match check if
5473         there is only one char selected.
5474
5475 2007-03-18  Jackson Harper  <jackson@ximian.com>
5476
5477         * TreeView.cs: ScrollWindow works properly now, so we don't need
5478         to screw around with the scroll area.  This fixes some artifacts
5479         when expanding and collapsing.
5480
5481 2007-03-18  Jackson Harper  <jackson@ximian.com>
5482
5483         * TextBoxBase.cs: Allow updating the selection position when the
5484         cursor is outside the textarea, but we have a capture.
5485         * TextControl.cs: A special case for when the cursor is outside
5486         the bounds of the TB.
5487         
5488 2007-03-18  Jackson Harper  <jackson@ximian.com>
5489
5490         * TextBoxBase.cs: Remove image pasting code for now.  There is no
5491         way to get an image on the clipboard right now anyways.
5492         * TextControl.cs:
5493         * RichTextBox.cs: Use the new RTF Picture class for pictures.
5494
5495 2007-03-18  Everaldo Canuto  <everaldo@simios.org>
5496
5497         * MessageBox.cs:
5498         - Set window properties in constructor intead of on CreateParams.
5499         - Remove topmost from Window ExStyle.
5500         - Set ShowInTaskbar to false.
5501         - Set form border to FixedDialog.
5502         - Some cosmetic changes and remove unneeded comments.
5503         - It fixes itens 2,3 and 4 of bug #80043.
5504
5505 2007-03-18  Gert Driesen  <drieseng@users.sourceforge.net>
5506
5507         * TextBoxBase.cs: In setter for ReadOnly, only chance BackColor if
5508         none was explicitly set. Fixes part of bug #79949.
5509
5510 2007-03-16  George Giolfan  <georgegiolfan@yahoo.com>
5511
5512         * ToolStripComboBox.cs: Add AutoComplete*.
5513
5514 2007-03-16  George Giolfan  <georgegiolfan@yahoo.com>
5515
5516         * ToolStripComboBox.cs: Add FlatStyle.
5517
5518 2007-03-16  Jonathan Pobst  <monkey@jpobst.com>
5519
5520         * ToolStrip.cs, ToolStripProfessionalRenderer.cs,
5521         ToolStripSplitStackLayout.cs: Implement some basic vertical toolbar support.
5522
5523 2007-03-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5524
5525         * ButtonBase.cs, ToolStrip.cs, SendKeys.cs, TextRenderer.cs,
5526           CheckBox.cs, RadioButton.cs, BindingSource.cs,
5527           DataGridColumnStyle.cs: Remove warnings.
5528
5529 2007-03-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5530
5531         * Menu.cs: MergeMenu: Check menu argument for null before looping over
5532           it.
5533         * MdiWindowManager.cs: Add IsVisiblePending to track the pending
5534           visibility of mdi child forms. FormSizeChangedHandler: update the
5535           maximized size if size has changed while maximized.
5536         * MdiClient.cs: SizeScrollbars/ArrangeWindows/ActivateChild: Avoid
5537           creating the handle.
5538         * InternalWindowManager.cs: UpdateBorderStyle/FormSizeChangedHandler:
5539           avoid creating the handle if not created.
5540         * XplatUI.cs: Update debug output.
5541         * XplatUIStructs.cs: Added ToString's for a couple of structs.
5542
5543 2007-03-16  Jonathan Pobst <monkey@jpobst.com>
5544
5545         * ContainerControl.cs: Give ToolStripManager the opportunity to handle
5546         ProcessCmdKey().
5547         * ToolStripDownItem.cs, ToolStripItem.cs, ToolStripItemCollection.cs, 
5548         ToolStripItemEventType.cs, ToolStripManager.cs, ToolStripMenuItem.cs:
5549         Implement keyboard shortcuts.
5550
5551 2007-03-15  Everaldo Canuto  <everaldo@simios.org>
5552
5553         * CommonDialog.cs: Set StartPosition to CenterScreen on form's constructor.
5554         Fixes #79560 and #80200, it also fix problem in FileDialog, SaveDialog, 
5555         ColorDialog and all derived classes.
5556
5557 2007-03-15  Everaldo Canuto  <everaldo@simios.org>
5558
5559         [ Fixes bug #79828 ]
5560
5561         * ToolBar.cs:
5562         - Rename ToolBarButtonInfor to ToolBarItem.
5563         - Add all layout and calculation stuff gtom ToolBarButton to ToolBarItem.
5564         - Maintain an array of ToolBarItem, used instead of ToolBarButton
5565         collection to be able add same button more than one time on a toolbar.
5566         - Refactory all properties and methods to use ToolBarItem. 
5567
5568         * ToolBarButton.cs: 
5569         - Remove all propeties and methods that is now in ToolBarItem.
5570         - Rectangle propery now gets the rectangle from first ToolBarItem to
5571         mimic win32 behavior.
5572         - Size calculation and layout methods also removed.
5573
5574         * ThemeWin32Classic.cs: Change all ToolBar drawing methods to receive
5575         ToolBarItem instead of ToolBarButton to right drawing buttons when
5576         same button/separator was added more than one time to ToolBar.
5577
5578         * ThemeNice.cs: Same as above. 
5579
5580 2007-03-15  Andreia Gaita  <avidigal@novell.com>
5581
5582         * XplatUIX11.cs: Fire extra MouseMove events right after
5583         MouseDown and MouseUp, emulating win32's <censored> behaviour
5584         for apps that rely on it.
5585
5586 2007-03-15  Jackson Harper  <jackson@ximian.com>
5587
5588         * TextControl.cs:
5589         * TextBoxBase.cs: On MS, a fixed single border is not in NC area,
5590         it is drawn on the controls client window and there is no NC
5591         area.
5592         - Set the background color to gray on 2.0 when we are readonly.
5593
5594 2007-03-15  Chris Toshok  <toshok@ximian.com>
5595
5596         [ Fixes bug #81144 ]
5597         
5598         * XplatUIX11.cs: implement VirtualScreen independently of
5599         WorkingArea, by querying the _NET_DESKTOP_GEOMETRY root window
5600         property.
5601
5602 2007-03-15  Chris Toshok  <toshok@ximian.com>
5603
5604         * Hwnd.cs: add an internal field for the cached_window_state.
5605
5606         * XplatUIX11.cs: cache the window state, invalidating the cache
5607         (and thus re-querying the X server) only when we see an update to
5608         the _NET_WM_STATE property.
5609
5610 2007-03-15  Chris Toshok  <toshok@ximian.com>
5611
5612         * BindingSource.cs: get a lot of the unit tests working.
5613
5614 2007-03-15  Jonathan Pobst  <monkey@jpobst.com>
5615
5616         * Control.cs: Modify UpdateStyles to store distances when bounds >=
5617         0 instead of just bounds > 0.  [Fixes bug #80912]
5618
5619 2007-03-15  Jonathan Pobst  <monkey@jpobst.com>
5620
5621         * ToolStrip.cs, ToolStripItem.cs: Implement several new properties
5622         and methods.
5623
5624 2007-03-15  Ivan N. Zlatev <contact@i-nz.net>
5625         
5626         * ComboBox.cs, Control.cs, XplatUIStructs.cs, XplatUIX11GTK.cs,
5627         XplatUIX11.cs, XplatUIWin32.cs, InternalWindowManager.cs,
5628         XplatUIOSX.cs, TextControl.cs: Replaces all uses of the custom
5629         WM_MOUSE_LEAVE with the system WM_MOUSELEAVE message.
5630
5631 2007-03-15  Chris Toshok  <toshok@ximian.com>
5632
5633         [ Fixes #81101 ]
5634         
5635         * Control.cs: add Ivan's fix for 81101, with a slight modification
5636         - you can set control.Target to null.
5637
5638 2007-03-14  Jonathan Pobst  <monkey@jpobst.com>
5639
5640         * ToolStripItem.cs: If our OwnerItem is null, we can't use 
5641         HideDropDown, use Hide instead to prevent an NRE.
5642         [Fixes bug #81147]
5643
5644 2007-03-14  Jackson Harper  <jackson@ximian.com>
5645
5646         * TextBoxBase.cs: Mess with the creation stuff a little. We need
5647         to calculate the document before the handle is created, in some
5648         cases. (Actually just one case).
5649
5650 2007-03-14  Jackson Harper  <jackson@ximian.com>
5651
5652         * TextBoxBase.cs: Need to display the caret after letting the base
5653         wndproc handle the focus methods, because the caret display
5654         methods check the focus state.
5655         - Try to display the caret after updating it's position with SelectWord.
5656         - Don't need to do an immediate update on this recalc, since there
5657         will be an invalidate anyways.
5658
5659 2007-03-14  Jackson Harper  <jackson@ximian.com>
5660
5661         * TreeView.cs: Some workarounds so that we can match event order a
5662         little better.
5663
5664 2007-03-14  Gert Driesen  <drieseng@users.sourceforge.net>
5665
5666         * ErrorProvider.cs: Invoke default ctor from 2.0-only ctor. Fixes bug
5667         #80803. Avoid NullReferenceException when Control does not have
5668         parent. Fixed different blinkstyle issues. Only subscribe to Tick
5669         event a single time. Only draw error icon when control is created and
5670         visible. Fixes failing unit tests.
5671
5672 2007-03-14  Andreia Gaita  <avidigal@novell.com>
5673
5674         * TabControl.cs: Add support for 2.0 Deselecting, Deselected and
5675         Selecting events. Fire Leave and Enter events when changing tabs.
5676
5677 2007-03-14  George Giolfan  <georgegiolfan@yahoo.com>
5678
5679         * TreeView.cs: Add TreeViewNodeSorter.
5680         * TreeNodeCollection.cs: Add sorter parameter to Sort method.
5681
5682 2007-03-14  Chris Toshok  <toshok@ximian.com>
5683
5684         * Form.cs: go ahead and remove the RecreateHandles that jpobst
5685         removed earlier and I had him add back it.  It turns out metacity
5686         *does* in fact handle the MOTIF_WM_HINTS property changing, it
5687         just doesn't redraw the window titlebar until you resize the
5688         window.  This also means we aren't recreating the entire window
5689         hierarchy on X when you change this property.  And it looks better
5690         on windows, too.
5691
5692 2007-03-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5693
5694         * ListViewItem.cs:
5695         * ListView.cs: Collecting selection information
5696         is now done in SelectedIndexCollection rather than in
5697         SelectedListViewItemCollection. This is done so we can
5698         have the selection information code in one single place
5699         (virtual mode selection information entirely depends on
5700         SelectedIndexCollection).
5701
5702 2007-03-13  Miguel de Icaza  <miguel@novell.com>
5703
5704         * ErrorProvider.cs: Add stubs for ISupportInitialize
5705
5706 2007-03-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5707
5708         * ListViewItem.cs: Trigger the ItemCheck and ItemChecked events
5709         in the right order with the right values, from the Checked property, 
5710         just as MS does (instead of triggering them from ListView).
5711
5712         * ListView.cs: Make OnItemCheck and OnItemChecked internal.
5713
5714 2007-03-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5715
5716         * ListView.cs: Implement ItemChecked 2.0 event. Also cast to 
5717         the correct handler in OnItemCheck method (ItemCheckEventHandler 
5718         instead of EventHandler). This used to throw an InvalidCastException.
5719
5720 2007-03-13  Jackson Harper  <jackson@ximian.com>
5721
5722         * TextBoxBase.cs: Calculate the document before the handle is
5723         created, so there isn't an extra invalidate called.
5724
5725 2007-03-13  Jonathan Pobst  <monkey@jpobst.com>
5726
5727         * Form.cs: Don't set owner in ShowDialog until we are sure
5728         that we aren't going to throw an exception.  [Fixes bug #80773]
5729
5730 2007-03-12  George Giolfan  <georgegiolfan@yahoo.com>
5731
5732         * TreeView.cs: Make it compile.
5733
5734 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
5735
5736         * Control.cs: Another place we don't call SizeFromClientSize.
5737         * Form.cs: Another place we don't call SizeFromClientSize.
5738         [Fixes bug #81125]
5739
5740 2007-03-12  Jackson Harper  <jackson@ximian.com>
5741
5742         * TreeView.cs: Basically emulating some strangness here with
5743         exanding nodes and setting node positions when windows aren't
5744         created.
5745         - Also attempting to walk the node tree less than previously, and
5746         just use visible order calculations for determining offsets.
5747         - oops made scrolling backwards.
5748         * TreeNode.cs: We need to start nodes with a zero visible order,
5749         because the order calcs are based on the first nodes order.
5750
5751 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
5752
5753         * Form.cs: Don't exit the program if RecreateHandle is called on
5754         the main form.
5755
5756 2007-03-12  Chris Toshok  <toshok@ximian.com>
5757
5758         * XEventQueue.cs: remove the use of PostQuitState.
5759
5760         * XplatUIX11.cs: remove the use of PostQuitState.  If we get a
5761         WM_QUIT message in GetMessage, return false (and if we're in the
5762         nested WaitForHwndMessage, repost the WM_QUIT message).
5763
5764 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
5765
5766         * Form.cs: Don't call RecreateHandle when we change the MinimizeBox
5767         or the MaximizeBox properties.  [Part of bug #80640]
5768
5769 2007-03-12  Everaldo Canuto  <everaldo@simios.org>
5770
5771         * LinkLabel.cs: When calculate pieces make LinkArea empty if theres
5772         no links.
5773
5774 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
5775
5776         * ToolStripItem.cs: Fix some tests I broke by checking Visible
5777         instead of visible.
5778
5779 2007-03-12  Gert Driesen  <drieseng@users.sourceforge.net>
5780
5781         * FileDialog.cs: Use text of File name combobox to determine what
5782         files the user selected. Added tokenizer to parse the file names.
5783         Fixes bug #81123.
5784
5785 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
5786
5787         * Control.cs: We can't call SizeFromClientSize in the constructor,
5788         but we still need to do the same work, so make an internal version.
5789         [Fixes bug #80621]
5790
5791 2007-03-12  Jackson Harper  <jackson@ximian.com>
5792
5793         * TreeView.cs:
5794         * TreeNode.cs:
5795         * OpenTreeNodeEnumerator: Match MS better for IsVisible and
5796         IsExpanded.
5797
5798 2007-03-12  Jackson Harper  <jackson@ximian.com>
5799
5800         * TextBoxBase.cs: Now that the handles are being created a little
5801         later, we need to make sure that the document is recalculated when
5802         the handle is created.
5803
5804 2007-03-11  Everaldo Canuto  <everaldo@simios.org>
5805
5806         * Theme.cs: GetLinkFont abstract method added.
5807         
5808         * LinkLabel.cs: 
5809         - Remove CalcTrimRectangle, no longer needed.
5810         - Factor also remove, position issues must be fixed in libgdiplus.
5811         - Move GetPieceColor to ThemeWin32Classic.cs as it is theme related.
5812         - GetPieceFont, CreateLinkFont and link_font removed, theme must be 
5813         care about font used to draw links.
5814         - Set TabStop to true when control is "Selectable", control is selectable
5815         when have one or more links. Fixes #80501 (test case is also added).
5816         - Set the LinkArea values after links change, LinkArea values must be
5817         based in first link position and size, a test case was created.
5818         - Fix ControlStyles.Selectable value, now is based on LinkArea value, 
5819         the attribute must be true LinkArea.Length > 0. The same was applied to
5820         TabStop.
5821         
5822         * ThemeWin32Classic.cs: 
5823         - LinkLabelGetPieceColor and LinkLabelGetPieceFont created and used 
5824         in draw method.
5825         - Use CPDrawStringDisabled to draw disabled text instead of hard code 
5826         color change.
5827         - Draw focus rectangle for every parts focused, including parts that 
5828         is on another line, its because regions returns various rectangles
5829         and not only one. Needed to mimic W32 look.
5830         - Uses Graphics.Clip to delimite region painted, it mean that now 
5831         complete text is passed to DrawString, with this we solve layout
5832         issues without create another text renderer.
5833         - Uses Region.Intersect to fix some flickers problems, now only needed
5834         parts will redrawed.
5835         - This changes fixes #79614 and some other unreported issues, on Linux 
5836         some layout problems still remain, the problem is under 
5837         MeasureCharacterRanges but it is an libgdiplus bug.
5838
5839 2007-03-10  Gert Driesen  <drieseng@users.sourceforge.net>
5840
5841         * TextBox.cs: Set for foreground color.
5842         * TextBoxBase.cs: Remove Invalidate when setting BackColor, since
5843         this is already done in Control.
5844
5845 2007-03-10  Jackson Harper  <jackson@ximian.com>
5846
5847         * TextBox.cs: Set the background color, but reset the
5848         backcolor_set flag which is just for the user setting the
5849         background color.
5850
5851 2007-03-09  Chris Toshok  <toshok@ximian.com>
5852
5853         * Control.cs: really remove the call to XplatUI.SetVisible from
5854         CreateHandle(), like I said I did when I merged the branch.
5855
5856         * BindingSource.cs: implement some more of this stuff.
5857
5858 2007-03-09  Jackson Harper  <jackson@ximian.com>
5859
5860         * TextBox.cs: Don't explicitly set our background colors.
5861         * TextControl.cs:
5862         * TextBoxBase.cs: Draw readonly text.
5863         - Need to invalidate when backcolor or readonly are changed.
5864         
5865 2007-03-09  Jackson Harper  <jackson@ximian.com>
5866
5867         * TextBoxBase.cs: Don't set the forecolor until the handle is
5868         created.
5869         - Do not raise OnPaint, and removed some old debug code.
5870
5871 2007-03-09  George Giolfan  <georgegiolfan@yahoo.com>
5872
5873         * ScrollableControl.cs: Fix mouse wheel scrolling.
5874
5875 2007-03-09  Jonathan Pobst  <monkey@jpobst.com>
5876
5877         * Control.cs: Wire up MouseDoubleClick event.
5878
5879 2007-03-09  Jonathan Pobst  <monkey@jpobst.com>
5880
5881         * ToolStrip.cs: Rework AutoSize to adjust height when docked to the
5882         top or bottom.
5883         * ToolStripItem.cs: Make Image drawing take ImageScaling into account.
5884         * ToolStripItemCollection.cs: Don't call owner.PerformLayout when a new
5885         item is added.  This logic was moved to ToolStrip.OnItemAdded.
5886         [Fixes bug #81090]
5887
5888 2007-03-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5889
5890         * ListVieItem.cs: SetIndex is only valid for 2.0 profile by now.
5891
5892 2007-03-08  Jackson Harper  <jackson@ximian.com>
5893
5894         * TreeView.cs: Show the correct image for selected node (this used
5895         to work, not sure how the code got deleted). Also implemented 2.0 feature
5896         SelectedImageKey.
5897
5898 2007-03-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5899
5900         * ListView.cs:
5901         * ListViewItem.cs: Cache index in items when retrieving them
5902         in VirtualMode.
5903
5904 2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
5905
5906         * ToolStripItem.cs: Don't return the explicit_size if we are using 
5907         AutoSize.  Fixes invalidation issue when user has explicitly set a
5908         size and has AutoSize = true.
5909
5910 2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
5911
5912         * XplatUIX11.cs: Hardcode FrameBorderSize value temporarily to fix MWF.
5913
5914 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
5915
5916         * DataGridView.cs: Remove event handler from DataView when a
5917         DataTable is used as DataSource.
5918
5919 2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
5920
5921         * Control.cs: Create internal setter for client_size to allow it to be
5922         set without triggering resizing code.
5923         * Form.cs: Calculate client_size in constructor, only change client_size
5924         in FormBorderStyle property if Handle has been created.
5925         [Fixes #80574, #80791]
5926
5927 2007-03-08  George Giolfan  <georgegiolfan@yahoo.com>
5928
5929         * SystemInformation.cs: Add TerminalServerSession.
5930
5931 2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
5932
5933         * TreeViewDrawMode.cs: Make internal for 1.1 to allow for consolidated
5934         TreeView code.
5935
5936 2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
5937
5938         * XplatUIWin32.cs: The no_activate stuff was forcing us to create a
5939         Handle before we were supposed to.  Now checks ActivateOnShow property
5940         in Control.
5941         * Control.cs: Add internal ActivateOnShow property.
5942         * ComboBox.cs, Form.cs, MenuAPI.cs, ToolStripDropDown.cs: Return false
5943         for ActivateOnShow.
5944         * Hwnd.cs Remove no longer needed no_activate field.
5945
5946 2007-03-07  Jackson Harper  <jackson@ximian.com>
5947
5948         * TreeView.cs: Implement owner draw tree nodes.  And a couple more
5949         2.0 properties
5950         * DrawTreeNodeEventHandler.cs: Add
5951         * DrawTreeNodeEventArgs.cs: Correct default value.
5952         
5953 2007-03-07  Chris Toshok  <toshok@ximian.com>
5954
5955         * XplatUIWin32.cs: create InternalWndProc so that we're guaranteed
5956         to be called before NativeWindow.WndProc.  Put the HwndCreating
5957         magic there to hook up our Hwnd's to handles.
5958
5959 2007-03-07  Gert Driesen  <drieseng@users.sourceforge.net>
5960
5961         * DataGridView.cs: Comment out debug code.
5962
5963 2007-03-07  Chris Toshok  <toshok@ximian.com>
5964
5965         [merge -r72718:73765 from mwf-handle-branch, and include 2 changes
5966         to make the rest of the world happy]
5967
5968         * Control.cs (CreateHandle): there's no need to call
5969         XplatUI.SetVisible here, it's effectively done by
5970         XplatUI.CreateWindow on X now, and always was on windows.
5971
5972         * XplatUIX11.cs (WaitForHwndMessage): only use the PostQuitState
5973         shortcircuit out of the loop if we have a message loop running on
5974         this thread.
5975
5976         [Changelog from merge]
5977
5978         2007-03-05  Chris Toshok  <toshok@ximian.com>
5979
5980                 * Control.cs (AccessibilityNotifyClients): turns out in 1.1 this
5981                 causes handle creation.
5982
5983         2007-02-28  Chris Toshok  <toshok@ximian.com>
5984
5985                 * ApplicationContext.cs: Add a flag to make sure we only raise the
5986                 ThreadExit event once (ExitThreadCore can be indirectly called
5987                 from a few places.)  I don't like the additional flag, but it
5988                 makes the event ordering/count correct.
5989
5990                 * Application.cs (MWFThread.LoopCount): don't use an enumerator
5991                 without locking the collection.  An enumerator doesn't give us any
5992                 protection from modification anyway.  Lock the thread hash and
5993                 replace the complicated enumerator loop with a foreach.
5994                 (Application.CloseForms): make internal so it can be called from
5995                 ApplicationContext.  This should probably be moved to MWFThread.
5996                 (Application.ExitThread): don't call MWFThread.Current.Exit()
5997                 here.  just call XplatUI.PostQuitMessage.  We'll exit the thread
5998                 when the runloop exits (in response to WM_QUIT.)
5999                 (Application.RunLoop): add a comment (and check) for
6000                 context.MainForm being null after setting context.MainForm.Visible
6001                 = true.  This is because you're perfectly free to dispose of a
6002                 form in VisibilityChanged.  Chalk this up to another case where we
6003                 need to synchronously generate WM_ACTIVATE from Control.Show.
6004                 Also, add handling for WM_QUIT here so we'll exit the loop.
6005                 
6006                 * XplatUIX11.cs: clean up MapWindow and UnmapWindow a bit.  The
6007                 fact that we don't wait if we're only unmapping the whole_window
6008                 makes me a bit nervous, but it doesn't seem to cause any problems
6009                 yet.
6010
6011                 also, add a comment about the stupid, broken and wrong resetting
6012                 of PostQuitState to false in GetMessage().
6013
6014                 In PostQuitMessage, we need to add a WM_QUIT message to the
6015                 thread's queue.  We use the FosterParent to get the right
6016                 handle/hwnd/queue.
6017
6018                 Lastly, in SetVisible, we need to unmap both windows, since the
6019                 waiting only happens when we're unmapping the client window.  So
6020                 now, the *only* time we unmap just the whole_window is in the hack
6021                 for resizing a control to 0,0.
6022                 
6023         2007-02-21  Chris Toshok  <toshok@ximian.com>
6024
6025                 * Application.cs (CloseForms): rewrite this so that we don't
6026                 modify the list while we're traversing it.
6027
6028         2007-02-20  Chris Toshok  <toshok@ximian.com>
6029
6030                 * ListBox.cs (.ctor): move the Control.AddImplicits here instead
6031                 of OnHandleCreated.
6032                 (HorizontalScrollEvent): only call XplatUI.ScrollWindow if the
6033                 handle is created.  otherwise we'll create it here.
6034                 (VerticalScrollEvent): same here.
6035
6036                 * Application.cs (CloseForms): call Form.Dispose, don't post
6037                 WM_CLOSE_INTERNAL.
6038
6039                 * Form.cs (WndProc): we don't need to use CLOSE_INTERNAL
6040                 here. Application should Dispose() of the Form's.
6041
6042                 * XplatUIX11.cs (WaitForHwndMessage): break out of the loop on
6043                 WM_DESTROY as well.
6044                 (MapWindow,UnmapWindow): only actually do the waiting for
6045                 SHOWWINDOW if the control we're dealing with is a Form.
6046                 (CreateWindow): if the control isn't a form, SendMessage
6047                 WM_SHOWWINDOW here (if the WS_VISIBLE style is set).
6048
6049                 * Control.cs (SetVisibleCore): always use is_visible here, not
6050                 value.  If we use value, we can end up re-setting something
6051                 visible if, for instance, you do Control.Hide() in a delegate
6052                 attached to VisibleChanged as we do in FormTest.ShowDialogTest.
6053
6054         2007-02-20  Chris Toshok  <toshok@ximian.com>
6055
6056                 * XplatUIX11.cs (WaitForHwndMessage): we need to loop until we get
6057                 the message we need.  PeekMessage returning false should not be a
6058                 condition under which we exit the loop.
6059
6060         2007-02-15  Chris Toshok  <toshok@ximian.com>
6061
6062                 * Control.cs (Refresh): only refresh if we've got a handle and are
6063                 visible.
6064                 (CreateAccessibilityInstance): CreateControl() here.
6065                 (UpdateChildrenZOrder): complicate the code loop even more by
6066                 taking into account controls that haven't had their handle
6067                 created, and those that aren't visible.  But on the flip side,
6068                 simplify the code by splitting it into two loops.  one which
6069                 builds up the list of child controls we're interested in, and the
6070                 other that sets the z order of those children.
6071
6072         2007-02-14  Chris Toshok  <toshok@ximian.com>
6073
6074                 * Control.cs: Control.AccessibilityObject causes the control to be
6075                 created, not just the handle.
6076
6077         2007-02-14  Chris Toshok  <toshok@ximian.com>
6078
6079                 * Control.cs: rework UpdateChildrenZOrder to correctly handle the
6080                 problem on X where a window might have its handle created (and be
6081                 visible) while the window is unmapped.  calling XConfigureWindow
6082                 on an unmapped window is bad, and generates X errors.
6083
6084         2007-02-13  Chris Toshok  <toshok@ximian.com>
6085
6086                 * Control.cs (CreateHandle): don't loop over our children setting
6087                 their parent here.  do it when in WndProc when we're shown.
6088                 (UpdateChildrenZOrder): make this internal so we can call it from
6089                 ScrollableControl.
6090                 (WndProc): for WM_SHOWWINDOW, reparent the child control after
6091                 creating its handle.  Also, remove the calls to PerformLayout from
6092                 here.  they're done in ScrollableControl.OnVisibleChanged.  Also,
6093                 OnVisibleChanged only seems to be called directly here for the
6094                 toplevel control.  It's propagated down the window hierarchy by
6095                 calls to child.OnParentVisibleChanged.
6096                 (OnVisibleChanged): don't do layout here - it's done (oddly
6097                 enough, according to a glance at stack traces on ms.net..) in
6098                 ScrollableControl.
6099                 
6100                 * ScrollableControl.cs (OnVisibleChanged): make sure we update the
6101                 z order of our children before calling PerformLayout.
6102
6103         2007-02-12  Chris Toshok  <toshok@ximian.com>
6104
6105                 [big change, fixes #80020]
6106                 
6107                 * AccessibleObject.cs: we need to make owner internal again to fix
6108                 some of ControlAccessibleObject.
6109
6110                 * Control.cs: lots of changes here.  add support for WM_CREATE,
6111                 for which we generate OnHandleCreated.  Remove the OnHandleCreated
6112                 call from CreateHandle.  Also add support for WM_SHOWWINDOW where
6113                 we create child controls.  leave the MonoTODO's for the
6114                 accessibility calls, but fix the exceptions so the tests pass.
6115
6116                 Add the InvalidOperationExceptions to Invoke methods, and remove a
6117                 couple of InvokeInternal methods we aren't using.
6118                 
6119                 Also, add a couple of CreateHandle calls in places where we know
6120                 the handles are being created but our code doesn't reference
6121                 .Handle.
6122
6123                 Make SetVisibleCore call OnVisibleChange if the handle isn't
6124                 created.  If the handle is created, we rely on XplatUI.SetVisible
6125                 generating the event synchronously.
6126                 
6127                 Lastly, make sure we don't use this.Handle inside CreateHandle,
6128                 because we can call back into client (and that code can dispose of
6129                 the control).
6130
6131                 * XplatUIStructs.cs: misc/cleanup.
6132
6133                 * XplatUIX11.cs: Map/Unmap X events correspond to WM_SHOWWINDOW,
6134                 although we don't populate the wParam properly.
6135                 (CreateWindow): generate WM_CREATE.
6136                 (MapWindow,UnmapWindow): make these calls synchronous, at great
6137                 performance expense (particularly in the unmap case), to match
6138                 win32 behavior.
6139
6140                 * Form.cs (.ctor): remove the call to UpdateBounds. we don't need
6141                 to call it.
6142                 (set_MdiParent): don't recreate the handle unless it's been
6143                 created already.
6144                 
6145                 * MdiClient.cs (OnResize): don't InvalidateNC Parent.Handle unless
6146                 it's created.
6147
6148                 * NativeWindow.cs: this is probably the weirdest part of the
6149                 patch.  We need a way to link up the window being created to the
6150                 WM_CREATE message.  Since we can only be creating one window at a
6151                 time on a given thread, we keep track of a per-thread reference so
6152                 we can dispatch it properly.  We also need to keep track of the
6153                 Hwnd currently being created so that the win32 backend doesn't
6154                 have problems.
6155                 
6156                 * XplatUIWin32.cs: a similar change to the one we made in
6157                 NativeWindow.cs.
6158
6159 2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
6160
6161         * ToolStripItem.cs: Make CalculatePreferredSize virtual.
6162         * ToolStripMenuItem.cs: Modify CalculatePreferredSize and OnPaint
6163         to draw the menu shortcut string.
6164
6165 2007-03-07  Jackson Harper  <jackson@ximian.com>
6166
6167         * TreeNode.cs: Add the 2.0 collapse method.
6168
6169 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
6170
6171         * DataGridViewColumn.cs: Fix HeaderText behaviour (Bug #80746).
6172
6173 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
6174
6175         * DataGridView.cs: Change DataSource will clear column and row
6176         lists. Call Invalidate() to reflect DataSource change.
6177
6178 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
6179
6180         * DataGridView.cs: Add rows when DataSource is System.Data.DataView
6181         and a new row is added to it.
6182
6183 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
6184
6185         * DataGridView.cs: Add columns when DataSource is en empty list but
6186         is a System.Data.DataView (from a System.Data.DataTable).
6187
6188 2007-03-06  Andreia Gaita  <avidigal@novell.com>
6189
6190         * Label.cs: Implement AutoEllipsis (2.0)
6191
6192 2007-03-06  Jackson Harper  <jackson@ximian.com>
6193
6194         * TreeView.cs: Implement 2.0 TopNode setter property.
6195         - Use a local var instead of the skipped_nodes field for computing
6196         how many nodes to skip.  Otherwise we won't scroll because the
6197         valuechanged handler checks if skipped_nodes is equal to the new
6198         value.
6199         - Implement 2.0 Sort method.
6200         - Add useless 2.0 DoubleBuffer property
6201         - Implement 2.0 LineColors property.  Lets you change the color of
6202         the lines in the tree. Terribly useful for creating non cohesive
6203         desktops.
6204         - Implement 2.0 image key feature.
6205
6206 2007-03-06  Jackson Harper  <jackson@ximian.com>
6207
6208         * TreeView.cs: We can't get the bounds of the nodes before raising
6209         the AfterSelect event, because that event could change the node's
6210         bounds (scrolling, font change, etc).
6211
6212 2007-03-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6213
6214         * XplatUIWin32.cs: When faking styles don't remove the WS_VISIBLE flag.
6215         * Form.cs: Don't recreate handle when creating FormWindowManager, just
6216           update window styles. In CreateParams us VisibleInternal instead of
6217           VIsible to get the actual visible flag set for this form.
6218         * FormWindowManager.cs: Activate the form whenever the mouse clicks on
6219           the nc area. Fixes #81042. Also fix HandleTitleBarDoubleClick to
6220           handle the case when the form is already maximized, in which case
6221           it should be restored. Fixes #81043.
6222
6223 2007-03-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6224
6225         * XplatUIX11.cs: Tool windows still get wm styles. Fixes toolwindows showing up with double decorations.
6226
6227 2007-03-05  Jackson Harper  <jackson@ximian.com>
6228
6229         * TreeViewHitTestInfo.cs: implement.
6230
6231 2007-03-05  Jackson Harper  <jackson@ximian.com>
6232
6233         * InternalWindowManager.cs: class status fix.
6234
6235 2007-03-05  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6236
6237         * InternalWindowManager.cs: All windows that have a parent
6238         are confined to their parent when they're being moved.
6239         Fixes #80822.
6240
6241 2007-03-04  Gert Driesen  <drieseng@users.sourceforge.net>
6242
6243         * SystemInformation.cs: Marked KeyboardDelay and KeyboardSpeed public
6244         on 2.0 profile. Fixes bug #81018. Small code formatting fixes.
6245
6246 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6247
6248         * ThemeWin32Classic.cs: ManagedWindowSetButtonLocations: Make all
6249           buttons invisible before deciding which ones should be visible
6250           (fixes minimize/maximize buttons showing up in toolwindows). Remove
6251           an unused variable.
6252         * InternalWindowManager.cs: Remove warning.
6253
6254 2007-03-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6255
6256         * ListView.cs: Add a check in ListViewItemCollection.RemoveAt
6257         to throw an InvalidOperationException is virtual mode is being used.
6258
6259 2007-03-02  Jonathan Pobst  <monkey@jpobst.com>
6260
6261         * SplitContainer.cs, SplitterPanel.cs, StatusStrip.cs, TableLayoutPanel.cs,
6262         ToolStrip.cs, ToolStripContainer.cs, ToolStripContentPanel.cs,
6263         ToolStripControlHost.cs, ToolStripDropDownItems.cs, ToolStripItem.cs,
6264         ToolStripMenuItem.cs, ToolStripOverflowButton.cs, ToolStripPanel.cs,
6265         ToolStripPanelRow.cs, ToolStripProfessionalRenderer.cs, ToolStripSplitButton.cs,
6266         ToolStripStatusLabel.cs, ToolStripTextBox.cs: Corcompare work.
6267
6268 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6269
6270         * XplatUI.cs: Fixed returning driver.KeyboardSpeed instead of
6271           driver.KeyboardDelay from XplatUI.KeyboardDelay 
6272         * XplatUIW      in32.cs: Implemented KeyboardSpeed/KeyboardDelay properties
6273           (patch by Sergey Volk)
6274
6275 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6276
6277         * ToolWindowManager.cs: Added, contains logic for
6278           tool windows.
6279         * CreateParams.cs: Add a few helper methods and an
6280           internal variable to know which control the CreateParams belongs
6281           to.
6282         * Control.cs: Call Form.ChangingParent when the
6283           parent is about to be changed.
6284         * XplatUIX11.cs: DeriveStyles (): Set
6285           caption_height for all windows that have captions and are children.
6286           Update to use ToolWindowManager instead of InternalWindowManager
6287           for ToolWindows.
6288         * XplatUIWin32.cs: Set fake window styles for all
6289           windows that have window managers.
6290         * MdiWindowManager.cs: Added MaximizedTitleButtons (buttons are
6291           now duplicated for mdi windows when they are
6292           maximized, first for the buttons the window itself has, then for
6293           the buttons that appear in the menu bar. Makes things a little
6294           easier). Updated UpdateWindowDecorations, SetWindowState and the
6295           mouse eventhandlers accordingly.
6296         * Form.cs: Add ChangingParent (), contains the
6297           logic of what should happen when the parent changes. In MdiParent
6298           don't set things that ChangingParent () is doing. When handling
6299           WM_CLOSE, we can close the form if there are any other modal forms
6300           and the current form is a descendent of the modal form.
6301         * InternalWindowManager.cs: A lot of refactoring,
6302           the title buttons are now extracted to a separate container class
6303           that takes care of all button code (clicks, tooltips, etc). Moved
6304           Iconic|Maximized|Normal Bounds properties to this class from
6305           MdiWindowManager, so that the window state logic can succeed for
6306           other than mdi wm's. Implemented general window state change logic.
6307           Moved CreateButtons to ThemeWin32Classic, since the theme might
6308           override which buttons are available when as well as the exact
6309           location.
6310         * FormWindowManager.cs: Added, contains logic for
6311           normal forms.
6312         * ThemeWin32Classic.cs: ManagedWindowSetButtonLocations now decides
6313           which buttons go where (and if they are at all visible). 
6314           Removed special handling of maximized windows, since they aren't special. 
6315           In DrawManagedWindowDecorations don't try to draw the text if it is
6316           empty.
6317         * MdiClient.cs: ArrangeIconicWindows: Don't  calculate any sizes, 
6318           use whatever the wm gives us.
6319
6320 2007-03-02  Jonathan Pobst  <monkey@jpobst.com>
6321
6322         * ButtonBase.cs: Add 2.0 properties.
6323         * Button.cs: Override Draw for 2.0.
6324         * Control.cs: Add Entered and Selected properties.
6325         * FlatButtonAppearance.cs, TextFormatFlags.cs, TextImageRelation.cs,
6326         TextRenderer.cs: Make internal for 1.1 to unify drawing code.
6327         * Theme.cs: New abstract functions for drawing Standard, Flat, Popup
6328         buttons.
6329         * ThemeWin32Classic.cs: Implement layout calculations for 2.0 buttons.
6330
6331 2007-03-01  Jonathan Pobst  <monkey@jpobst.com>
6332
6333         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code.  :/
6334
6335 2007-03-01  Jonathan Pobst  <monkey@jpobst.com>
6336
6337         * XplatUIWin32.cs: Register a new class with Windows each time we get
6338         a new ClassStyle.  [Fixes bugs #79432, #80817]
6339         * Controls.cs: Set the correct ClassStyle in CreateParams.
6340         * ToolStripDropDown.cs: Don't request an invalid ClassStyle.
6341
6342 2007-03-01  Gert Driesen  <drieseng@users.sourceforge.net>
6343
6344         * ListView.cs: Add fireEvent argument to ReorderColumn since the
6345         ColumnReordered event must not be signaled when modifying DisplayIndex
6346         of a ColumnHeader. Added internal ReorderColumns method which takes
6347         care of drawing, and updating the internal DisplayIndex of the
6348         ColumnHeader. Added AddColumn method which is invoked from
6349         ColumnHeaderCollection when adding or inserting columns, and which
6350         ensures that reorder_columns_indices is kept in sync. Avoid redrawing
6351         after adding each ColumnHeader in ColumnHeaderCollection.AddRange.
6352         Recalculated dispay indices after removing a ColumnHeader.
6353         * ColumnHeader.cs: Save DisplayIndex separately from ListView to
6354         match MS. Allows last display index to be returned after ListView
6355         is disposed. Update actual location of ColumnHeader when DisplayIndex
6356         is modified.
6357
6358 2007-03-01  Everaldo Canuto  <everaldo@simios.org>
6359
6360         * LinkLabel.cs: Improve CalcTrimRectangle.
6361         
6362         * ThemeWin32Classic.cs: Fix some compilation problem under VS 2003.
6363
6364 2007-02-28  Everaldo Canuto  <everaldo@simios.org>
6365
6366         * LinkLabel.cs: Rename CalcMeasurementFactor as CalcTrimRectangle and
6367         get rectangle as a result value.
6368
6369 2007-02-28  Everaldo Canuto  <everaldo@simios.org>
6370
6371         * LinkLabel.cs: Theres some diferences between rectangle return from 
6372         MeasureCharacterRanges and the area used for DrawString to fix this 
6373         CalcMeasurementFactor method was created, it calcules the diferences
6374         to be use later to adjust rectangle in draw operations. Fixes #80473.
6375         
6376         * ThemeWin32Classic.cs: Use factor calculated by CalcMeasurementFactor
6377         to adjust draw rectangle.
6378
6379 2007-02-27  Everaldo Canuto  <everaldo@simios.org>
6380
6381         * ThemeWin32Classic.cs: In DrawLinkLabel draw focus rectangle before draw
6382         text and some other changes to reduce and optimize source code.
6383
6384 2007-02-27  Jonathan Pobst  <monkey@jpobst.com>
6385
6386         * RadioButton.cs: Implement 2.0 event.
6387         * RelatedImageListAttribute.cs: Implement new class.
6388
6389 2007-02-27  Everaldo Canuto  <everaldo@simios.org>
6390
6391         * MenuAPI.cs: Change keynav_state before call SelectItem. Fixes #80901.
6392
6393 2007-02-27  Jonathan Pobst  <monkey@jpobst.com>
6394
6395         * CheckBox.cs: Implement 2.0 functionality.
6396
6397 2007-02-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6398
6399         * ListView.cs: Refactor Add and AddRange methods of
6400         ListViewItemCollection, to not update the ListView
6401         everytime an item is added in AddRange. Also move the update
6402         code to a new CollectionChanged method, and call it
6403         from other methods that need it as well (this should also fix some
6404         bugs when Sorting is used).
6405
6406 2007-02-27  Jackson Harper  <jackson@ximian.com>
6407
6408         * TextControl.cs: Try to never let the caret stay in a non-text
6409         tag.
6410         * TextBoxBase.cs: Update the caret.
6411
6412 2007-02-26  Jonathan Pobst  <monkey@jpobst.com>
6413
6414         * XplatUIStructs.cs: Add some convenience methods for POINT structure.
6415         * XplatUIWin32.cs: Add some convenience methods for RECT structure,
6416         delete POINT structure, duplicate of one in XplatUIStructs.
6417         * TextRenderer.cs: Use XplatUIWin32.RECT instead of UXTheme.RECT.
6418
6419 2007-02-26  Gert Driesen  <drieseng@users.sourceforge.net>
6420
6421         * ListView.cs: Initialize LabelEditEventArgs after setting Text of
6422         edit box since otherwise the Label would immediately be set (even if
6423         the user did not modify the label). In OnKeyDown set Handled to true
6424         if Return or Escape was pressed. In ColumnHeaderCollection unlink
6425         columns that are to be removed. In ListViewItemCollection unlink items
6426         that are to be removed.
6427
6428 2007-02-24  Jonathan Pobst  <monkey@jpobst.com>
6429
6430         * TextRenderer.cs: If we set a GDI clip region, we need to clear
6431         it when we are done.  [Fixes bug #80949]
6432
6433 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
6434
6435         * Form.cs: Wrap checking ShowWithoutActivation in a NET_2_0 block.
6436
6437 2007-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6438
6439         * ListView.cs: I forgot to commit the changes for ListView 
6440         in my previous patch.
6441
6442 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
6443
6444         * Clipboard.cs: Partially implement an overload of SetDataObject.
6445         * Form.cs: Implement ShowWithoutActivation.
6446         * XPlatUIWin32.cs: Fix for WM_SHOWNOACTIVATE for forms.
6447
6448 2007-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6449
6450         This is a first set of changes to make the Virtual mode works,
6451         by avoiding the retrieval of ListViewItem instances until
6452         draw time.
6453
6454         * ListView.cs: Store item position in the ListView instead of the
6455         ListViewItem, this way we don't request the Bounds property of
6456         ListViewItem inside the ListView calculations, as well as cache the item
6457         size in item_size field. Store indexes instead of ListViewItem
6458         instances in the matrix used by icon view. Add a ItemMatrixLocation
6459         struct to hold the row and col info of the matrix info.
6460
6461         * ListViewItem.cs: Don't store the location anymore, and only cache
6462         the rectangles for GetBounds. Use the ListView.GetItemLocation
6463         method to retrieve the actual location.
6464
6465 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
6466
6467         * TextRenderer.cs: Add clipping support, thanks to George.
6468         [Fixes bug #80949]
6469
6470 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
6471
6472         * ListViewItem.cs: Cancel label edit when item is removed from 
6473         ListView.
6474         * ListView.cs: Move setting of focus to EndEdit. Fire BeforeLabelEdit
6475         event before the edit textbox is displayed.  Added CancelEdit method
6476         which is used end to editing while ignoring the value set by the
6477         user. In EndEdit, set focus to ListView to avoid losing focus to
6478         other controls. In ListViewItemCollection.Clear, cancel editing of
6479         any of the items.  In Remove, cancel editing of item being removed.
6480         Avoid udplicate code by modifing RemoveAt to invoke Remove.
6481
6482 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
6483
6484         * FileDialog.cs: Update FSEntry when move is successful. Fixes
6485         bug #80948.  
6486
6487 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
6488
6489         * MainMenu.cs: Change Draw method to take care about MenuOrigin to be 
6490         compatible with non X11 systems. Fixes #80901.
6491
6492 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
6493
6494         * ListView.cs: Added bool argument to UpdateMultiSelection to specify
6495         whether the item should be unselected and reselect. We do no want this
6496         when we're starting to edit the label. Do not fire the 
6497         SelectedIndexChanged event from ListView when its already been fired
6498         by modifying ListViewItem.Selected. Fixes bug #80943.
6499
6500 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
6501
6502         * TextRenderer.cs: Previos commit logic was backwards.
6503
6504 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
6505
6506         * TextRenderer.cs: Don't add padding on MeasureText if we were
6507         sent the NoPadding flag.
6508
6509 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
6510
6511         * ThemeWin32Classic.cs: Invert order of drawing operation with DrawImage
6512         after DrawButton. To prevent image overlaps button borders SetClip and 
6513         ResetClip added before and after draw image. Fixes #79129.
6514
6515 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
6516
6517         * FolderBrowserDialog.cs: Use ClientSize instead of Size to specify 
6518         window size, it fix problem when you run under win32 that theres
6519         Size diferent than ClientSize. Also fix controls size and positions
6520         to mimic Win32. Fixes #80837.
6521
6522 2007-02-22  Everaldo Canuto  <everaldo@simios.org>
6523
6524         * Form.cs: Handle WM_NCHITTEST and return HTMENU when point is on 
6525         menu area to fix some problems for non X11 systems. Fixes #80613.
6526
6527 2007-02-22  Jackson Harper  <jackson@ximian.com>
6528
6529         * TreeNode.cs: When a node is expanded, set its is_expanded flag
6530         even if it doesn't have any children.
6531
6532 2007-02-22  Jackson Harper  <jackson@ximian.com>
6533
6534         * TreeView.cs: Calculate the top node 'on the fly', this
6535         eliminates issues where you need to click on the tree before
6536         scrolling it to get the top node computed correctly.
6537         * TreeNodeCollection.cs: We don't need to mess with the top node
6538         anymore.
6539
6540 2007-02-22  Jackson Harper  <jackson@ximian.com>
6541
6542         * DataGridViewRow.cs: Fix typo so height can actually be set.
6543         Patch by Peter Grimm.
6544
6545 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
6546
6547         * FileDialog.cs: Fixed support for renaming files and directories.
6548         * ListView.cs: Do not lose focus when edit is canceled. Process
6549         Escape as regular key (to prevent closing of dialogs).
6550
6551 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
6552
6553         * ListView.cs: Removed TODO for LabelEdit. Removed extra tabs and
6554         spaces. Changed spaces to tabs. Removed unnecessary init of bools.
6555
6556 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
6557
6558         * FileDialog.cs: LabelEditEventArgs.Label now returns null when user
6559         did not modify label.
6560         * ListView.cs: Only set LabelEditEventArgs.Label if user actually
6561         modified the text. Reset Label when user presses Escape in edit mode.
6562         Move focus to ListView after having cancelled or finished editing the
6563         label.
6564
6565 2007-02-21  Gert Driesen  <drieseng@users.sourceforge.net>
6566
6567         * ComboBox.cs: Removed unnecessary initializations. Marked items field
6568         private. Clear textbox when Text is set to null and SelectedIndex is
6569         already -1.
6570         * FileDialog.cs: Removed unnecessary initializations. Removed 
6571         workarounds for ComboBox bugs that are now fixed. Modified
6572         DefaultExt, InitialDirectory and Title property to change null to
6573         zero-length string in getters. Avoid directly accessing fields.
6574
6575 2007-02-20  Jackson Harper  <jackson@ximian.com>
6576
6577         * TextControl.cs: Remove RecalAlignments call, that was some
6578         debugging leftovers.
6579         - Don't use the line indent when we shouldn't.
6580         * RichTextBox.cs: Add support for paragraph left indents.
6581
6582 2007-02-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6583
6584         * Control.cs: Fix BeginInvoke signature for 2.0 profile.
6585         Seems like the class status pages doesn't catch params differences.
6586
6587 2007-02-19  Gert Driesen  <drieseng@users.sourceforge.net>
6588
6589         * ComboBox.cs: Removed extra tabs. Changes spaces to tabs.
6590
6591 2007-02-19  Gert Driesen  <drieseng@users.sourceforge.net>
6592
6593         * ComboBox.cs: Setting Text should have no effect if item text of
6594         selected item exactly matches value. First lookup text using
6595         case-sensitive comparison, and fallback to case-insensitive comparison.
6596         FindString(Exact) returns -1 if search string is null. On 2.0 profile, 
6597         allow startIndex to be last index. Changed ArgumentOutOfRangeException
6598         paramname to match MS. Restart from first item if string is not found
6599         after startIndex. Fixed paramname of ArgumentNullException that is
6600         thrown for null value in ObjectCollection.Contains.
6601
6602 2007-02-19  Everaldo Canuto  <everaldo@simios.org>
6603
6604         * XplatUIStructs.cs: WM_XXX UISTATE elements uncommented.
6605
6606 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6607
6608         * ListControl.cs: In SelectedValue use value.Equals to compare for
6609         equality instead of ==, otherwise it will fail for strings.
6610         Fixes #80794.
6611
6612 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6613         
6614         * ComboBox.cs: Switch the order to ShowSelection and ActivateCaret,
6615         since the caret won't show up unless ShowSelection is true. 
6616         Fixes #80795.
6617
6618 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6619
6620         * Application.cs: When disabling all forms but the main form, do not
6621           disable any descendants of the main form (such as mdi children or
6622           other parented forms). Fixes #80822 on Windows.
6623         * Form.cs: If we have a parent, set the WS_CHILD style.
6624         * Control.cs: Update the window styles if the control whose parent has
6625           changed is a form (the WS_CHILD style has to be switched).
6626
6627 2007-02-19  Everaldo Canuto  <everaldo@simios.org>
6628
6629         * XplatUIStructs.cs: MsgUIState structure added.
6630
6631 2007-02-18  Gert Driesen  <drieseng@users.sourceforge.net>
6632
6633         * FileDialog.cs: Removed need for separate fileName field. On 2.0
6634         profile, do not check filename(s) for illegal character if filename(s)
6635         were set non-interactively but always check on 1.0 profile. Fixed NRE
6636          in DefaultExt and only strip off first leading dot. Improve exception
6637         message when invalid Filter is set. Do not ignore InitialDirectory if
6638         it does no exist. Store specified Title, and if empty use default
6639         title (depending on type of dialog). Added an internal DialogTitle 
6640         property for retrieving dialog title. Fixed logic of displayed dir to
6641         more closely match MS. Avoid setting ComboBox.Text to a zero-length 
6642         string as its buggy.
6643         * OpenFileDialog.cs: In OpenFile, throw ArgumentNullException if
6644         FileName is a zero-length string (it can never be null). Override 
6645         DialogTitle property to set default title of dialog box.
6646         * SaveFileDialog.cs: Override DialogTitle property to set default
6647         title of dialog box.
6648
6649 2007-02-18  Gert Driesen  <drieseng@users.sourceforge.net>
6650
6651         * FileDialog.cs: Modify default text of filename and filetype labels
6652         to match that of MS. Reset do_not_call_OnSelectedIndexChanged...
6653         after we've updated the SelectedIndex. Fixes part of bug #80887.
6654         * SaveFileDialog.cs: Set text of filetype label.
6655
6656 2007-02-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6657
6658         * LabelEditEventArgs.cs: New internal SetLabel method, to set the
6659         label field. Needed by latest Jackson's fixes for ListView.
6660
6661 2007-02-16  Andreia Gaita  <avidigal@novell.com>
6662
6663         * PrintPreviewControl/PrintPreviewDialog: Properly dispose of 
6664         print preview images.
6665
6666 2007-02-16  Jackson Harper  <jackson@ximian.com>
6667
6668         * ListView.cs: Make AfterLabelEdit work correctly.
6669         * FileDialog.cs: After changing the name of the folder, we have to
6670         make sure that it is created, or that we pop up an error because
6671         it already exists.
6672
6673 2007-02-16  Jackson Harper  <jackson@ximian.com>
6674
6675         * X11Dnd.cs: Implement aliases on mime handlers, so things like
6676         System.String are mapped to text.
6677         - Handle dataobjects, getting all the possible formats out of them
6678         - We dont need the drag event args before we give feedback. This
6679         allows feedback cursors to be immediate before selections have
6680         been converted.
6681
6682 2007-02-16  Jackson Harper  <jackson@ximian.com>
6683
6684         * TextBoxBase.cs: Modified the method for inserting images to
6685         taking a line and position instead of tag and position.
6686         * RichTextBox.cs: Handle PngBlip data by inserting the png image
6687         into the RTF file.
6688         * TextControl.cs: Allow images to be inserted as the first tag of
6689         a line.
6690         - Fix some off by one issues when we assume the first tag is a
6691         text tag, not an image tag.
6692
6693 2007-02-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6694
6695         * ListView.cs: Set focus to ListView when ItemControl gets a
6696         WM_RBUTTONDOWN message, to mimic .Net behaviour. 
6697         Fixes part of #80467.
6698
6699 2007-02-15  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6700
6701         * DateTimePicker.cs: Call RecreateHandle if the Format changes and
6702           validate Text input (if null or empty string reset Value to default
6703           value). Fixes #80830.
6704
6705 2007-02-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6706
6707         * ListView.cs: Set owner as null for columns and items when
6708         Dispose is invoked. Fixes #80607.
6709
6710 2007-02-14  Jonathan Pobst  <monkey@jpobst.com>
6711
6712         * ToolStrip.cs: Allow LayoutStyle.Flow, make sure to call OnOpening when
6713         showing DropDowns, don't show a Grip when doing Flow layout.
6714         [This fixes the toolbox in PDN 2.72.]
6715         * ToolStripItem.cs: Add Anchor property and some internal properties to
6716         reduces needed changes to FlowLayout.
6717         * ToolStripOverflow.cs: Remove unused variable.
6718         * ToolStripSplitStackLayout.cs: If a ToolStripItem isn't visible, don't
6719         use it in the layout calculations.
6720
6721 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
6722
6723         * ToolTip.cs: Add HotkeyPrefix.Hide to MeasureString format, it fix an issue
6724         reported in #79640.
6725         
6726         * ThemeWin32Classic.cs: Uses format for MeasureString in ToolTipSize to fiz
6727         size calculation.
6728
6729 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
6730
6731         * ToolBar.cs, ToolBarButton.cs: Revert and remove HotkeyPrefix from 
6732         MeasureString format, it can make button very large in some cases, it is
6733         strange but is what win32 do.
6734
6735 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
6736
6737         * ToolBar.cs, ToolBarButton.cs: Uses format in MeasureString to fix string 
6738         size calculation.
6739
6740         * ThemeWin32Classic.cs: Set HotkeyPrefix in toolbar text format to fix text
6741         rendering, the value is based on MenuAccessKeysUnderlined.
6742
6743 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
6744
6745         * Theme.cs: Change MenuAccessKeysUnderlined to "true" that is value used
6746         for most themes.
6747         
6748         * ThemeWin32Classic.cs: Override MenuAccessKeysUnderlined as false.
6749         
6750         * ThemeNice.cs, ThemeGtk.cs, ThemeClearlooks.cs: Remove always_draw_hotkeys
6751         and use MenuAccessKeysUnderlined instead.
6752
6753 2007-02-13  Andreia Gaita  <avidigal@novell.com>
6754
6755         * ContainerControl.cs: Focus fix for nunit treeview selection bug.
6756         A selected control would not get a Focus call if:
6757                 - the default active control of the container is the same as
6758                   the one that was selected
6759                 - we are switching from one container to another
6760         Under these conditions, the container being selected already has
6761         an active_control, which is the same as the one being activated, 
6762         so set_ActiveControl would always return and not send the Focus
6763         call. Fix to check if the currently active control of the container
6764         is actually focused.
6765
6766 2007-02-13  Jonathan Pobst  <monkey@jpobst.com>
6767
6768         * StatusStrip.cs: Implement the spring layout.
6769         * ToolStripControlHost.cs: Make sure the hosted control's visibility
6770         always matches the host.
6771         * ToolStripItem.cs: Write a more accurate layout for TextBeforeImage
6772         and TextAfterImage.
6773
6774 2007-02-13  Andreia Gaita  <avidigal@novell.com>
6775
6776         * Control.cs: Code reorganization only.
6777           - Reorganize the WndProc cases so that each case has it's own handling method, 
6778           to help with the no-line-numbering stack traces.
6779           - Formatting changes (it's vstudio's fault, really :p)
6780
6781 2007-02-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6782
6783         * MonthCalendar.cs: Switch to using Thread.CurrentCulture instead of
6784           Thread.CurrentUICulture to match DateTimePicker's (and MS)
6785           behaviour.
6786
6787 2007-02-12  Jackson Harper  <jackson@ximian.com>
6788
6789         * RichTextBox.cs:
6790         * TextBox.cs: By default we have a non multiline document
6791         - use the multiline property instead of the internal variable
6792         * TextBoxBase.cs: Treat multiline and non multiline the same in
6793         most places.
6794         - Use the documents multiline flag instead of tracking it ourself
6795         * TextControl.cs: Attempt at getting multiline to match MS
6796         behavior.  Lines now track an offset, which is either their X or Y
6797         offset depending on whether or not we are in multiline mode.
6798         - Update all the methods to understand that lines have an X value.
6799         - Fix crash in Undo::Duplicate when empty lines are deleted.
6800
6801 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
6802
6803         * Label.cs: CalcPreferredHeight and CalcPreferredWidth methods removed and 
6804         code moved to properties PreferredHeight and PreferredWidth. It solve the
6805         all problems when preferred sizes must be recalculated. Fixes #80801.
6806
6807 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
6808
6809         * Label.cs: Fix CalcPreferredHeight for 2.0 that must return only
6810         font height when compatible_text_rendering is false. Partially fix #80801.
6811
6812 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
6813
6814         * Form.cs: Fixed typo in exception message. Fixes bug #80779.
6815
6816 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
6817
6818         * Form.cs: Improved exception messages in ShowDialog.
6819
6820 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
6821
6822         * PrintDialog.cs: On 1.0 profile, throw ArgumentException in RunDialog if
6823         PrinterSettins has not been set. On 2.0 profile, initialize PrinterSettings
6824         if not set. Fixes bug #80764. Avoid accessing current_settings field
6825         directly.
6826
6827 2007-02-08  Everaldo Canuto  <everaldo@simios.org>
6828
6829         * Theme.cs: An new property MenuAccessKeysUnderlined added with default value
6830         false.
6831
6832         * SystemInformation.cs: An new property MenuAccessKeysUnderlined added, it is
6833         public in 2.0 and for easy maintenance and dont break compatibility it is 
6834         internal in 1.1.
6835         
6836 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
6837
6838         * ToolStripItem.cs: Implement using images from ImageList.
6839
6840 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6841
6842         * DateTimePicker.cs: Change default date-formatting culture from
6843           CurrentThread.CurrentUICulture to CurrentThread.CurrentCulture,
6844           seems to be the way MS does it.
6845
6846 2007-02-08  Andreia Gaita  <avidigal@novell.com>
6847
6848         * PrintPreviewControl.cs: rewrite toolbar code to fix #80725. Correct 6-up image 
6849         (the 6 was cut off on the right side)
6850
6851 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
6852
6853         * Form.cs: Tell MenuStrips to close when the form is clicked.
6854         * MenuStrip.cs, ToolStrip.cs, ToolStripControlHost.cs, 
6855         ToolStripDropDown.cs, ToolStripDropDownItem.cs, ToolStripItem.cs,
6856         ToolStripItemCollection.cs, ToolStripMenuItem.cs, ToolStripProfessionalRenderer.cs,
6857         ToolStripSplitButton.cs, ToolStripSplitStackLayout.cs: Add 
6858         support for Overflow, where items that do not fit are automatically
6859         reparented to a drop down menu.
6860         * ToolStripOverflow.cs, ToolStripOverflowButton.cs: Added.
6861         Also: fixes bug #80747.
6862
6863 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6864
6865         * ComboBox.cs: Remove warning (unused code).
6866         * ScrollableControl.cs: Remove warning for 1.1 profile.
6867
6868 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6869
6870         * Form.cs: Remove a warning.
6871
6872 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6873
6874         * DateTimePicker.cs: Fixed a NRE if CustomFormat was null. Handles the
6875           'g' specifier, not documented anywhere, but seems to always show up
6876           as a single space (might have something to do with the DateTime 'g'
6877           specifier, which is the era format, but since DateTimePicker can't
6878           go earlier than 1753 it wouldn't matter) . Fixed quote handling,
6879           won't crash if the format has an unmatched quote. Now shows
6880           single-character formats correctly. Fixes #80744.
6881
6882 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
6883
6884         * StatusStrip.cs: Stretch property needs to call base.Stretch,
6885         not this.Stretch to fix stack overflow. [Fixes bug #80760]
6886
6887 2007-02-07  Chris Toshok  <toshok@ximian.com>
6888
6889         * ThemeWin32Classic.cs (DrawButtonBase): don't clear to the
6890         background color.  it overwrites the background image we've
6891         already painted.  Fixes #80599.
6892
6893 2007-02-07  Chris Toshok  <toshok@ximian.com>
6894
6895         * DataGrid.cs: return immediately from Edit() when there are no
6896         columns.  Fixes #80662.
6897
6898 2007-02-07  Chris Toshok  <toshok@ximian.com>
6899
6900         * MessageBox.cs: fix #80625.  don't always show the Help button in
6901         2.0.  use the displayHelpButton parameter to determine if we
6902         should show it. Also, make the internal show_help field private.
6903
6904 2007-02-07  Chris Toshok  <toshok@ximian.com>
6905
6906         * Control.cs (SetVisibleCore): check in the proposed patch for
6907         80604, and set is_visible before calling CreateControl.
6908
6909 2007-02-07  Jonathan Pobst  <monkey@jpobst.com>
6910
6911         * ListView.cs: UseCompatibleStateImageBehavior setter changed from NIEX to 
6912         MonoInternalNote.  This is added automagically by VS2005, so let's not crash
6913         on it.
6914
6915 2007-02-06  Everaldo Canuto  <everaldo@simios.org>
6916
6917         * MenuAPI.cs: hotkey_active internal field added, it is required because
6918         we need to know when hotkeys must be draw, before this change a keystate
6919         Navigating was used but we can have menu in navigating state without
6920         hotkeys. Fixes #80694.
6921         
6922         * ThemeWin32Classic.cs: Only draw hot keys when hotkey_active is true.
6923
6924 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6925
6926         * Control.cs: Handle WM_CAPTURECHANGED in 1.1 code as well, and change
6927           corresponding events and methods to be internal for 1.1 profile and
6928           public for 2.0 profile (required by SizeGrip).
6929         * Form.cs: Use SizeGrip as a virtual SizeGrip (and don't add it to the
6930           implicit control list). Don't set the size nor the location of the
6931           SizeGrip anymore as it's not needed.
6932         * SizeGrip.cs: Rewrote large parts, it now supports a virtual mode to
6933           draw directly on the captured control (fixes #80656). Removed
6934           ShowGrip (it wasn't used anywhere), redraw (always true), added
6935           GetDefaultSize and GetDefaultRectangle to calculate defaults.
6936         * ScrollableControl.cs: Make UpdateSIzeGripVisible internal so it can
6937           be called from SizeGrip.
6938
6939 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6940
6941         * Timer.cs: Throw ArgumentException if Interval <= 0.
6942
6943 2007-02-05  Jackson Harper  <jackson@ximian.com>
6944
6945         * TreeView.cs: We need to check scrollbar visibility when window
6946         visibility is updated, because non visible trees don't ever add
6947         scrollbars.
6948         * Cursor.cs: We want the override cursor to be reset to NULL when
6949         we set current cursor to the default cursor.
6950
6951 2007-02-05  Jackson Harper  <jackson@ximian.com>
6952
6953         * TextControl.cs: Don't have crlfs when we are non multiline.
6954         - Consolidate the line position.
6955
6956 2007-02-05  Jackson Harper  <jackson@ximian.com>
6957
6958         * X11Keyboard.cs: BACK+CTRL gets a special char code.
6959
6960 2007-02-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6961
6962         * XplatUIX11.cs: Implemented WM_CAPTURECHANGED support, we're now
6963           handling LeaveNotify->NotifyUngrab in order to send
6964           WM_CAPTURECHANGED. However sometimes the NotifyUngrab arrives late
6965           after calling XUngrabPointer, so we call WindowUngrabbed directly
6966           from UngrabWindow in order to send WM_CAPTURECHANGED immediately.
6967         * Control.cs: Handle WM_CAPTURECHANGED in order to raise
6968           MouseCaptureChanged correctly. Also create handles if changing
6969           Capture (matches MS behaviour).
6970
6971 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6972
6973         * SizeGrip.cs: Make the last change 2.0 only.
6974
6975 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6976
6977         * SizeGrip.cs: If resizing and the capture is lost, revert any size
6978           changes to initial size (fixes #80597).
6979
6980 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6981
6982         * SizeGrip.cs: Use the normal icon for SizeGrip if it is disabled.
6983
6984 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
6985
6986         * SizeGrip.cs: Only draw sizegrip if enabled (but always draw
6987           background) and only allow dragging if enabled. This way the
6988           sizegrip can be used to fill the open square that otherwise would
6989           have been shown in the bottom right corner of ScrollableControl
6990           when ScrollableControl is not suppose to support sizing.
6991         * ScrollableControl.cs: Create UpdateSizeGripVisible to decide when the
6992           sizegrip is shown and enabled, and hook up with necessary events.
6993
6994 2007-02-01  Chris Toshok  <toshok@ximian.com>
6995
6996         * DataGridTextBoxColumn.cs: clean up the
6997         GetFormattedString/GetColumnValueAtRow combination of functions.
6998         Also fix UpdateUI, and the initial state of
6999         IsInEditOrNavigateMode.
7000
7001         * DataGridTextBox.cs: don't chain up to base.OnMouseWheel - we
7002         aren't supposed to scroll the textbox here, we're supposed to
7003         scroll the datagrid.
7004
7005 2007-02-01  Chris Toshok  <toshok@ximian.com>
7006
7007         * ComboBox.cs: use vscrollbar_ctrl.Dock instead of explicitly
7008         setting the position.
7009
7010 2007-02-01  Chris Toshok  <toshok@ximian.com>
7011
7012         * DataGrid.cs (OnLeave): we can now do the CancelCurrentEdit thing
7013         here, since the most recent focus fixes keep us from generating
7014         the Leave event when our textbox gets focus.
7015         (Edit): we should be passing null for the column style's
7016         instantText parameter.
7017         
7018 2007-02-01  Jonathan Pobst  <monkey@jpobst.com>
7019
7020         * ToolStripDropDownItem.cs: Make sure DropDownOpening event is 
7021         raised.  Fixes menu text/icons not showing up in PDN.
7022
7023 2007-02-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7024
7025         * Control.cs: Remove code in constructor that makes every
7026         control with WS_CHILD set have initial location -1, -1.
7027
7028 2007-01-31  Jackson Harper  <jackson@ximian.com>
7029
7030         * X11Dnd.cs: Take the keyboard on init to reduce coupling with
7031         XplatUIX11.
7032         * XplatUIX11.cs: Give teh keyboard to teh dnd.
7033
7034 2007-01-31  Jackson Harper  <jackson@ximian.com>
7035
7036         * X11Dnd.cs: Use IDataObject instead of the DataObject class.
7037         - Remove some debug code.
7038
7039 2007-01-31  Jackson Harper  <jackson@ximian.com>
7040
7041         * XplatUIX11.cs: If you set the override cursor during a grab, it
7042         should actually override the grab cursor.  This comes into play
7043         when you are setting custom cursors in a DND feedback method.
7044
7045 2007-01-31  Jackson Harper  <jackson@ximian.com>
7046
7047         * X11Dnd.cs: Add support for handling the QueryContinue and
7048         GiveFeedback events.
7049         - Cancel drag and drop actions when the escape key is clicked.
7050         * XplatUIX11.cs: Let the dnd subsystem get key events, so that it
7051         can handle the ESCAPE key.
7052         - Allow dnd to swallow BUTTONUP messages if it needs to.  This is
7053         done when dnd events are continued after the button is released.
7054         - Add a new helper method so that dnd can translate key events.
7055
7056 2007-01-31  Alexander Olk  <alex.olk@googlemail.com>
7057
7058         * FileDialog.cs: Rewrite of Jacksons OnClickCancelButton patch to
7059         make it more obvious what is happening.
7060
7061 2007-01-30  Jackson Harper  <jackson@ximian.com>
7062
7063         * XplatUIX11.cs: Don't break when handling button release in drag
7064         and drop operations. We need that BUTTONUP message to get through
7065         so capture is released.
7066         * X11Dnd.cs: We don't need to manually grab the pointer anymore,
7067         this is handled automatically when the mouse is down.
7068
7069 2007-01-30  Jackson Harper  <jackson@ximian.com>
7070
7071         * FileDialog.cs: OnClickCancelButton gets called whenever the dialog
7072         is closed, so we need to make sure that we aren't changing the
7073         dialog result when the OK (Open or Save) button has been clicked
7074         and we are closing the window ourselves.  Note we don't need to
7075         worry about the cache being written in this case, because it was
7076         already done in the previous FilOk call.
7077
7078 2007-01-30  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7079         
7080         * DateTimePicker.cs: Remove a warning.
7081         * ComboBox.cs: Remove a couple of warnings.
7082
7083 2007-01-29  Chris Toshok  <toshok@ximian.com>
7084
7085         * XplatUIX11.cs: don't crash, and remove the icon if the user has
7086         set one, if SetIcon is passed a null icon.
7087
7088 2007-01-29  Andreia Gaita  <avidigal@novell.com>
7089
7090         * TextBox.cs: Redraw when the password characters changes
7091         * TextControl.cs: Check if textbox has a password char and draw 
7092         a line of password chars instead of the text in the line. LineTag gets 
7093         an extra Draw() method which allows document.Draw to override the text 
7094         that will be drawn. Removes 1024 char limitation on length of passworded 
7095         lines.
7096
7097 2007-01-29  Jackson Harper  <jackson@ximian.com>
7098
7099         * TextBoxBase.cs: Deleting sections of text is undoable.  Deleting
7100         single chars is not.
7101
7102 2007-01-28  Jonathan Pobst  <monkey@jpobst.com>
7103
7104         * TextRenderer.cs: Fix cutting off the bottom of letters like "j" by
7105         one pixel.  Fix a StackOverflowException caused by an overload wrongly
7106         calling itself.
7107
7108 2007-01-26  Everaldo Canuto  <everaldo@simios.org>
7109
7110         * MenuAPI.cs: Fixed kerboard grab problem when "enter"key is pressed,
7111         also remove ProcessArrowKey and put the code inside ProcessKeys.
7112
7113 2007-01-26  Jonathan Pobst  <monkey@jpobst.com>
7114
7115         * PaddingConverter.cs: Added.
7116
7117 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7118         
7119         * ThemeWin32Classic.cs: Only draw the text of a StatusBar if
7120         ShowPanels is false (fixes #80600). Only draw up to 127 characters
7121         of text (fixes #80601). For panels clip the text to draw to the
7122         panel (fixes #80603).
7123
7124 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7125
7126         * ComboBox.cs: Fixed implementation of ResetText.
7127
7128 2007-01-25  Jackson Harper  <jackson@ximian.com>
7129
7130         * TextControl.cs: For the last char of a line we need to use the
7131         line size, not that chars width, since it won't actually be
7132         computed since the right side of a char is based on the start of
7133         the left side of the next char, and the next char does not exist.
7134
7135 2007-01-25  Chris Toshok  <toshok@ximian.com>
7136
7137         * Splitter.cs: fix the new unit tests, and reindent some switch
7138         statements.
7139
7140 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7141
7142         * ComboBox.cs: Implemented 2.0 methods and events.
7143         * TextBoxBase.cs: Added OnTextUpdate, so that
7144         ComboBox.ComboTextBox can inform ComboBox of it.
7145
7146 2007-01-25  Jackson Harper  <jackson@ximian.com>
7147
7148         * TextControl.cs: Respect ShowSelection when deciding whether or
7149         not to display the caret, this allows comboboxes to have carets
7150         when the combotextbox does not have focus.
7151
7152 2007-01-25  Jackson Harper  <jackson@ximian.com>
7153
7154         * TextControl.cs: Add a Suspend/Resume for updating, basically the
7155         same as the Suspend/Resume for recalc, except this will do actual
7156         Invalidates.
7157         - New Undo manager, works much like the MS version.
7158         - Implemented Redo
7159         * TextBoxBase.cs: The Cut operation is undoable.
7160
7161 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7162         
7163         * TextBoxBase.cs: Don't antialias text. Makes it look way better
7164         on Windows (no difference on Linux).    
7165
7166 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7167
7168         * XplatUIWin32.cs: Set SWP_NOACTIVATE in RequestNCRecalc as well,
7169         we don't want to activate any windows. Fixes #79433.
7170
7171 2007-01-25  Jonathan Pobst  <monkey@jpobst.com>
7172
7173         - ButtonBase.cs: Fix capitalization of parameter: disposing.
7174         [Fixes bug #80609]
7175
7176 2007-01-25  Alexander Olk  <alex.olk@googlemail.com>
7177
7178         * FileDialog.cs:
7179         - Move to using System.ComponentModel.EventHandlerList
7180         - Replace Refresh with Invalidate
7181         - Clear the mime filecache on closing
7182         - Some other memory reducing work. After beeing closed FD now uses
7183           only about 300 KB for the fdo mime stuff plus the memory of the
7184           cached icons.
7185         * Mime.cs: Changed coding style and removed unnecessary commented
7186         code. Some more memory memory reducing work.
7187
7188 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7189
7190         * ComboBox.cs: Implemented FlatStyle and DropDownHeight, and added
7191         a few other missing 2.0 properties.
7192         * Theme.cs: Added DrawFlatStyleComboBox.
7193         * ThemeWin32Classic.cs: Implemented DrawFlatStyleComboBox.
7194
7195 2007-01-24  Chris Toshok  <toshok@ximian.com>
7196
7197         * XplatUIX11.cs: fix the wake_waiting logic - we always clear the
7198         wake_waiting flag, not just when there's data to be read.  if we
7199         don't, then future wakeup's won't reach us and we'll be doomed to
7200         wait for the entire 1 second timeout forever (unless there are X
7201         events to be had).
7202
7203 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
7204
7205         * ComboBox.cs: FindStringExactMaxException doesn't throw AOORE on 2.0
7206         until you pass Items.Count, not Items.Count - 1 like 1.1.
7207
7208 2007-01-24  Gert Driesen  <drieseng@users.sourceforge.net>
7209
7210         * ColumnHeader.cs: Fixed ParamName in ArgumentOutOfRangeException.
7211
7212 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
7213
7214         * ToolStripContainer.cs: The recent Dock fix exposed that I was
7215         adding the panels in the wrong order.
7216
7217 2007-01-24  Jackson Harper  <jackson@ximian.com>
7218
7219         * TextBoxBase.cs: When we move the caret we also need to move the
7220         selection, this fixes some random crashing after doing select
7221         text, unselect, delete a char, paste.
7222
7223 2007-01-24  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7224
7225         * Form.cs: Update SizeGrip's location even if it's not visible (fixes #80592).
7226
7227 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
7228
7229         * Control.cs: In OnParentBackgroundImageChanged remove conditions to call
7230         OnBackgroundImageChanged, it mimics win32 behavior. Fixes #80553. 
7231         * ToolBar.cs: Force redraw in BackgroundImageChanged.
7232
7233 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
7234
7235         * ToolBar.cs:
7236         - Implement support for vertical toolbars. Fixes #80539;
7237         - Call LayoutToolBar when resize, it fix some other problems in layout.
7238         - Rename requested_height to requested_size, as we can have width on it
7239         when toolbar is vertical.
7240         - Create a private property "Vertical" that uses Dock to verify when 
7241         toolbar is vertical or not.
7242         - Set ControlStyles when change Dock property.
7243         - Refactory in LayoutToolBar to have better variables names and to support
7244         vertical toolbars.
7245         - Fixes default value for ButtonSize when button count is equal zero, size
7246         must be (39, 36) test case writed.
7247
7248 2007-01-23  Chris Toshok  <toshok@ximian.com>
7249
7250         * Control.cs: fix the checks so that they work correctly for mdi
7251         parents/children.
7252
7253 2007-01-23  Chris Toshok  <toshok@ximian.com>
7254
7255         * Control.cs: ControlCollection seems to have super-secret
7256         abstraction breaking knowledge of Mdi containers.  allow MdiClient
7257         to add toplevel controls.
7258
7259 2007-01-23  Chris Toshok  <toshok@ximian.com>
7260
7261         * Control.cs: throw an ArgumentException if a toplevel control is
7262         added to our control collection from ControlCollection.Add, as
7263         well as from ControlCollection.IList.Add.  This fixes the
7264         ControlSetTopLevelTest.TestTopLevelAdd unit test.
7265
7266         Also, in ControlCollection.IList.Add, don't through an
7267         ArgumentNullException, throw an ArgumentException, when value ==
7268         null.  This matches MS.
7269
7270 2007-01-23  Chris Toshok  <toshok@ximian.com>
7271
7272         * BindingSource.cs: initial, incomplete, implementation of
7273         BindingSource.
7274
7275 2007-01-23  Jackson Harper  <jackson@ximian.com>
7276
7277         * TextControl.cs:
7278         * TextBoxBase.cs: Checking in some pieces of the undo stuff so
7279         that I can fix a broken unit test (TextBoxTest::ClearUndo)
7280         
7281 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
7282
7283         * ToolBar.cs: Add status fields to ToolBarButtonInfo.
7284
7285 2007-01-23  Andreia Gaita  <avidigal@novell.com>
7286
7287         * TreeNode.cs: Add new 2.0 ImageKey and SelectedImageKey properties.
7288         * TreeNodeCollection.cs: New Add() methods, ContainsKey and
7289         IndexOfKey() for 2.0
7290
7291 2007-01-23  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7292
7293         * XplatWin32.cs: In RequestNCRecalc call SetWindowPos with SWP_NOZORDER
7294         to prevent it from changing z-order.
7295         * MdiWindowManager.cs: Refactor part of SetWindowState to MdiClient, only
7296         leave UI updates in MdiWindowManager.
7297         * InternalWindowManager.cs: Check for 0 sized nc areas and make them
7298         1 sized (NC handling goes weird on Linux otherwise).
7299         * MdiClient.cs: Add missing ExStyle (WS_EX_CLIENTEDGE), so it's no longer
7300         necessary to handle WM_NCCALCSIZE anymore. This also made it possible to
7301         remove a few NCRequestRecalcs. Changed calculations in IconicBounds
7302         to use ClientSize of MdiClient instead of entire size. Refactored ActivateChild
7303         and SetWindowState(s) to allow for changing the size of an activated child
7304         before activating it (reduces a lot of flicker).
7305
7306 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
7307
7308         * Form.cs: Changing FormBorderStyle has different semantics based
7309         on whether the Form is visible or not.  If not visible, don't change
7310         the Size.  But InvalidateNC needs to be called to force the window
7311         to pick up the changes and redraw itself.  [Fixes bug #80574]
7312
7313 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
7314
7315         [Moma work]
7316         * ContainerControl.cs: ProcessCmdKey.
7317         * ErrorProvider.cs: new constructor.
7318         * Form.cs: fix AutoValidateEvent compiler warning.
7319         * Label.cs: fix OnAutoSizeChanged compiler warning.
7320         * MenuStrip.cs: fix CanOverflow compiler warning.
7321         * TabControl.cs: SelectTab, OnSelected methods, Selected event.
7322         * TextBox.cs: Dispose.
7323         * ToolStrip.cs: CanOverflow, re-enable double buffering.
7324         * ToolStripControlHost.cs: fix CausesValidation compiler warning.
7325         * ToolStripDropDown.cs: fix ContextStripMenu compiler warning.
7326         * ToolStripItem.cs: Overflow, RightToLeft properties.
7327
7328 2007-01-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7329
7330         * Form.cs: Move the layout of the main form to MdiWindowManager.
7331         * MdiWindowManager.cs: If WindowState changes from or to Maximized,
7332         do a layout of the main window to update MdiClient's client area to
7333         the right area. Fixes #80533. Remove the calculation of nc size, 
7334         it was just wrong and the correct one is the same as for 
7335         InternalWindowManager. 
7336
7337 2007-01-20  Jonathan Pobst  <monkey@jpobst.com>
7338
7339         * Control.cs: Setting Anchor or Dock needs to reset the other
7340         to its default.  [Fixes bug #80556]
7341
7342 2007-01-20  Chris Toshok  <toshok@ximian.com>
7343
7344         * CheckedListBox.cs: class status changes.
7345
7346         * ScrollableControl.cs: same.
7347
7348         * RichTextBox.cs: same.
7349
7350         * ContainerControl.cs: same.
7351
7352         * ListView.cs: same.
7353
7354         * NotifyIcon.cs: same.
7355
7356         * MenuStrip.cs: same.
7357
7358         * RadioButton.cs: same.
7359
7360         * CheckBox.cs: same.
7361
7362         * PrintPreviewDialog.cs: same.
7363
7364         * Form.cs: same.
7365
7366 2007-01-19  Jonathan Pobst  <monkey@jpobst.com>
7367
7368         * TreeNode.cs: Apply Alan's patch for Name property.
7369
7370 2007-01-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7371         
7372         * Form.cs: Implemented SizeGripStyle.
7373         * SizeGrip.cs: Check for minimum and maximum size for the
7374         control being resized and only resize if size has actually
7375         changed.
7376
7377 2007-01-19  Chris Toshok  <toshok@ximian.com>
7378
7379         * DataGridColumnStyle.cs: stop setting _readonly in the
7380         PropertyDescriptor setter.  fixes a unit test failure.
7381
7382         also, rename ParentReadOnly to TableStyleReadOnly, and have it
7383         just consult our table style (if we have one).  We don't need to
7384         consult the datagrid readonly attribute because that's passed in
7385         as the _ro arg to Edit.  this simplifies things a little.
7386         
7387         * DataGrid.cs: use CurrentColumn instead of
7388         current_cell.ColumnNumber just to simplify some of the code.
7389
7390         switch the order of some things in the CurrentCell setter to keep
7391         the previous cell from getting a textbox again -
7392         EnsureCellVisibility causes scrolling to happen, which calls Edit.
7393         So we need to set the new cell before calling it.
7394         
7395         call Edit in OnEnter, as does Microsoft.
7396         
7397         also, make sure the current table style isn't the one we create
7398         initially when checking to see if it's different than the one
7399         we're setting it to in BindColumns (this fixes #80421).
7400
7401         * GridTableStylesCollection.cs: table styles can have "" for a
7402         mapping name.  part of the fix for #80421.
7403
7404         * DataGridTextBoxColumn.cs: simplify the readonly calculation in
7405         Edit significantly.
7406
7407 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
7408
7409         * TextRenderer.cs: Rewrote to be complete-er, more MS-matching-er,
7410         and less GDI object leaky-er.
7411
7412 2007-01-18  Andreia Gaita  <avidigal@novell.com>
7413
7414         * LinkLabel.cs: Add opaque control style
7415
7416 2007-01-18  Jackson Harper  <jackson@ximian.com>
7417
7418         * TextControl.cs: Calculate width properly.
7419         - Don't store the tag's X offset, this can be figured out very
7420         easily.
7421         - When getting the caret tag make sure to get the last empty tag.
7422
7423 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
7424
7425         * Form.cs: Recalculate our size after setting a new FormBorderStyle.
7426         [Fixes bug #79959]
7427
7428         * Control.cs: Color.Empty shouldn't count for previous transparent
7429         redraw changes.
7430
7431 2007-01-18  Jackson Harper  <jackson@ximian.com>
7432
7433         * TextBox.cs:
7434         * RichTextBox.cs:
7435         * TextControl.cs: Starting to merge in some pieces of my older
7436         undo work.  Basically just some slight cleanup of the undo API.
7437
7438 2007-01-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7439
7440         * TrackBar.cs: Fix signature of RightToLeftLayout.
7441         * StatusBar.cs: Implemented missing 2.0 methods and attributes.
7442         * StatusBarPanel.cs: Implemented missing 2.0 methods and attributes.
7443         * Application.cs: Implemented UseWaitCursor.
7444
7445 2007-01-18  Jackson Harper  <jackson@ximian.com>
7446
7447         * TextControl.cs: We can't skip tags if any part of the tag is
7448         visible.
7449
7450 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
7451
7452         * ContainerControl.cs: Override OnLayout.
7453
7454 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
7455
7456         * NotifyIcon.cs: Add ContextMenuStrip and Tag properties.
7457
7458         * ContextMenuStrip.cs: Make sure context menu is shown on top of 
7459         everything else.
7460
7461 2007-01-18  Chris Toshok  <toshok@ximian.com>
7462
7463         * ContainerControl.cs: remove the partial handling of LBUTTONDOWN
7464         (leftover from the container_selected days, I'd wager).  fixes bug
7465         #80546.
7466
7467 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
7468
7469         * Control.cs: Apply patch from George to fix the new testcase on
7470         bug #80451.  We can't just check for Color.Transparent, we need 
7471         to check if the back color's alpha channel is < 255.
7472
7473 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
7474
7475         * Form.cs: Move setting show_icon = true to before the constructor
7476         so that the base constructor has that information when it calculates
7477         the form's size.  Was causing forms to be (6, 6) bigger than they
7478         were supposed to be.  Thanks for catching this Rolf!
7479
7480 2007-01-18  Jackson Harper  <jackson@ximian.com>
7481
7482         * TextControl.cs: When replacing a selection we need to invalidate
7483         from the initial selection start, because selection start is moved
7484         to the end of the replacement.
7485
7486 2007-01-18  Andreia Gaita  <avidigal@novell.com>
7487
7488         * LinkLabel.cs: Missing ControlStyles. Fixes #80482
7489
7490 2007-01-18  Chris Toshok  <toshok@ximian.com>
7491
7492         * DataGridTextBoxColumn.cs: fix most of the NotWorking unit tests
7493         I just added.
7494
7495 2007-01-17  Everaldo Canuto  <everaldo@simios.org>
7496
7497         * ToolBar.cs: Add layout methods to ToolBarButtonInfo class, every 
7498         layout methods and properties from ToolBarButton must be available
7499         into ToolBarButtonInfo.
7500
7501 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
7502
7503         * Control.cs: If the control has a transparent background, we
7504         need to refresh it when it moves and when it's parent's background
7505         image changes.  [Fixes bug #80451]
7506
7507 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
7508
7509         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code!  Doh!
7510
7511 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
7512
7513         * XplatUIWin32.cs: Implement proper double buffering for Windows.
7514         [Fixes bug #80447, and probably speeds up things as well]
7515
7516 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7517
7518         * XplatUIX11.cs: Caption height for MDI children is 19, not 26.
7519         * XplatUIWin32.cs: We need to recalculate NC size after changing 
7520         window style to toolwindow (otherwise the client rectangle will be
7521         3 pixels to small for some reason).
7522         * MdiWindowManager.cs: Revert NC size calculations to match how
7523         they are calculated only based on window styles (to match
7524         Win32AdjustWindowRectEx, since otherwise when setting size or 
7525         location, Control will call Win32AdjustWindowRectEx to update client 
7526         size, which would provoke a paint, then we'd get a NCCALCSIZE and 
7527         calculate a different value of client size causing another paint 
7528         (and flickering))
7529         * InternalWindowManager.cs: When moving or resizing a window only
7530         update size or location if they actually changed.
7531         * ThemeWin32Classic.cs: ManagedWindowsBorderWidth is now 4 instead of 3
7532         (seems to match Windows behaviour better). Cleaned up 
7533         ManagedWindowDecorations to draw what's needed and nothing else
7534         (was drawing borders and lines where they shouldn't be)
7535         * Hwnd.cs: GetWindowRectangle now knows about MDI border sizes
7536         (style = 0xFFFF) and takes into account caption height when 
7537         calculating window rectangle.   
7538
7539 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
7540
7541         * ToolBar.cs: Internal ToolBarButtonInfo class added, Because same button 
7542         can be added to toolbar multiple times, we need to maintain a list of 
7543         button information for each positions.
7544
7545 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
7546
7547         * ToolBar.cs: Some small stetic changes.
7548
7549 2007-01-16  Jackson Harper  <jackson@ximian.com>
7550
7551         * TextBoxBase.cs: Use the new SuspendRecalc/ResumeRecalc methods
7552         that allow us to have nested recalc = false blocks.
7553         - Add paste support for images in the RichTextBox
7554         * RichTextBox.cs: flush the text after the color is changed, so
7555         the change takes effect.
7556         - Use SuspendRecalc
7557         - Some extra debugging info
7558         * TextControl.cs: Tags no longer track their length, it is just
7559         computed from the next tags length, this makes things a little
7560         simpler and reduces places that we have to track length changes.
7561         - Refactored the linetag class a little so we could make it
7562         a base class for different kinds of tags
7563         - Created a image tag, a tag that can have a single image inserted
7564         into it
7565         - Replace the norecalc flag with a Suspend/Resume Recalc pair, so
7566         that we can call suspend multiple times.
7567         - Add some debugging methods
7568
7569 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7570
7571         * MdiClient.cs: Add ActivatePreviousChild for 
7572         mdi child window navigation.
7573         * Form.cs: Use MdiClient.ActivateNextChild/
7574         ActivatePreviousChild instead of Form.SelectNextControl
7575         to select the next/previous child since 
7576         SelectNextControl doesn't do it in the same order
7577         as mdi children should do it.
7578
7579 2007-01-16  Chris Toshok  <toshok@ximian.com>
7580
7581         * Control.cs: remove container_selected field.
7582
7583 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7584
7585         * MdiClient.cs: Update main form's ActiveChild when
7586         updating keyboard focus for the mdi child.
7587
7588 2007-01-16  Jonathan Pobst  <jpobst@novell.com>
7589
7590         * Control.cs: PreferredSize fix.
7591
7592         * Form.cs: Add several 2.0 events, properties, and methods.
7593
7594 2007-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
7595
7596         * Form.cs: Provide meaningful message when MdiParent is assigned a
7597         Form that is not an MdiContainer.
7598
7599 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7600
7601         * MdiClient.cs: Update main form's ActiveChild when
7602         activating a mdi child.
7603
7604 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7605
7606         * MdiWindowManager.cs: Fix NRE when merging menus and main form
7607         doesn't have a menu.
7608
7609         * Form.cs: Request NCRecalc after creating a mdi child window.
7610         Implement mdi key handling (Ctrl+F4, Ctrl+Shift+F4, Ctrl+Tab, 
7611         Ctrl+Shift+Tab, Ctrl+F6 and Ctrl+Shift+F6).
7612         
7613         * MdiClient.cs: Add new method SendFocusToActiveChild that either
7614         sends keyboard focus to the active child, or to the MdiClient
7615         if there are no child forms.
7616         
7617 2007-01-15  Chris Toshok  <toshok@ximian.com>
7618
7619         * ListView.cs: drop the *Internal overrides, just do our work in
7620         ItemControl's WndProc instead.
7621
7622         * UpDownBase.cs: a few large changes.  Fix up the Selectable state
7623         of the various controls, and forward the events properly (in the
7624         same manner as MS) from the textbox to the UpDown.  Also the
7625         ActiveControl of the UpDownBase gets set properly now.  Finally,
7626         we don't call UpdateEditText from the ctor.  Fixes bug #79957.
7627
7628         * NumericUpDown.cs: set Text in the ctor.
7629
7630         * DomainUpDown.cs: call UpdateEditText in the ctor.
7631         
7632         * TextBox.cs: on ms.net, WM_LBUTTONDOWN sets focus on the textbox,
7633         so even a Selectable = false textbox can be focused if you click
7634         in it.  Go figure.
7635
7636         * Control.cs: remove On{Got,Lost}FocusInternal.  Subclasses can
7637         just add their handling in their respective WndProc's.  Also add
7638         an explicit FocusInternal method that doesn't consult CanFocus
7639         before calling Select(this).
7640
7641         * TextBoxBase.cs: deal with removal of the FocusInternal calls -
7642         do our work in WndProc instead.
7643
7644         * TabControl.cs: same.
7645
7646         * ComboBox.cs: same.
7647
7648 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
7649
7650         * Menu.cs: implement MergeItems and Replace for MenuMerge method.
7651         Fixes #80006.
7652
7653 2007-01-15 Carlos Alberto Cortez <calberto.cortez@gmail.com>
7654
7655         * ListViewItem.cs:
7656         * ThemeWin32Classic.cs: Don't draw the item text outside
7657         item bounds in Details view, as well as use trimming.
7658         Fixes bug #80376.
7659
7660 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
7661
7662         * Form.cs: Implement Form.ShowIcon.
7663         
7664         * XplatUIWin32.cs: Allow the SetIcon win32 call to set the icon to
7665         null, which when combined with the DlgModalFrame window style removes
7666         the icon from the title bar.
7667
7668 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
7669
7670         * Control.cs: Call OnMouseClick after OnClick. (2.0)
7671
7672 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
7673
7674         * MdiWindowManager.cs: In CreateMaximizedMenu fix a position of icon
7675         menu when mdi child windows theres a menu, uses insert to get icon
7676         at first position. Partially fix #80006.
7677
7678 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
7679
7680         * Clipboard.cs: Implement 2.0 methods.
7681
7682 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
7683
7684         * Menu.cs: Implement Insert method of MenuItemCollection class
7685         to fix MenuMerge.
7686
7687 2007-01-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7688
7689         * ListView.cs: Implement 2.0 FindItemWithText method.
7690
7691 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
7692
7693         * Form.cs: When process WM_NCCALCSIZE message use ClienSize.Width
7694         to calculate menu bar size. Fixes #80290.
7695
7696 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
7697
7698         * ThemeWin32Classic.cs: Fix position of menuitem check mark.
7699
7700 2007-01-11  Chris Toshok  <toshok@ximian.com>
7701
7702         * XplatUIX11.cs: don't send duplicate WM_ACTIVATE messages to the
7703         initial form.
7704
7705 2007-01-11  Chris Toshok  <toshok@ximian.com>
7706
7707         * LinkLabel.cs: make sure to call base.Select in our Select method
7708         if it turns out we're going to be selected (i.e. if we have a link
7709         that is going to receive focus).  That way our container's
7710         ActiveControl is updated properly.
7711
7712 2007-01-11  Chris Toshok  <toshok@ximian.com>
7713
7714         * LinkLabel.cs: turns out that LinkLabels are only Selectable if
7715         they have 1 or more links.  this fixes the crash gert reported.
7716
7717 2007-01-11  Andreia Gaita  <avidigal@novell.com>
7718
7719         * ContainerControl.cs: Remove ContainerSelected flag, not needed
7720         anymore.
7721
7722         * Control.cs (Controls.Add): Check if control to be added to the collection
7723         is a top level control, and throw an ArgumentException if it is.
7724         Remove ContainerSelectedFlag, not needed anymore.
7725
7726         * XplaUIWin32.cs (SetTopMost): Add flag SWP_NOACTIVATE so that setting the
7727         top most control doesn't activate the form. This fixes a problem in the
7728         MessageBox, where the default button wouldn't get focus because the form
7729         was activated before being Loaded - when the Owner is set, SetTopMost is
7730         called, and it would activate it.
7731
7732 2007-01-11  Jonathan Pobst  <jpobst@novell.com>
7733
7734         * Button.cs: When clicked and setting the parent form's DialogResult,
7735         use FindForm instead of Parent, since parent could be a container
7736         control and not the Form.  Fixes bug #80495.
7737
7738 2007-01-10  Chris Toshok  <toshok@ximian.com>
7739
7740         * Form.cs: move the call to SendControlFocus into the same
7741         is_loaded check.
7742
7743 2007-01-10  Chris Toshok  <toshok@ximian.com>
7744
7745         * UpDownBase.cs (.ctor): remove the ActiveControl assignment here.
7746         It breaks in the face of the new ActiveControl stuff, and should
7747         be unnecessary.
7748
7749         * Form.cs (WndProc): in the WM_ACTIVATE case, we need to set the
7750         activecontrol's focus if it's not already set, after we set
7751         ActiveControl, but before we call OnActivated.  Re-fixes #79667
7752         after the previous focus/active control fixes regressed it.
7753
7754         * Control.cs: reindent some code.
7755         
7756 2007-01-10  Chris Toshok  <toshok@ximian.com>
7757
7758         * Splitter.cs: clearing some outstanding changes from my tree.
7759         Replace all accesses (not writes) to the internal dock_style field
7760         with the Dock property.
7761
7762 2007-01-10  Chris Toshok  <toshok@ximian.com>
7763
7764         * Control.cs: make FireEnter, FireLeave, FireValidating, and
7765         FireValidated virtual.
7766
7767         * Form.cs: override and don't chain up calls to FireEnter and
7768         FireLeave.
7769
7770 2007-01-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7771
7772         * ListView.cs: Add more text padding space when using
7773         auto resize for columns (the previous value didn't work fine).
7774
7775         * ThemeWin32Classic.cs: Update text position inside columns,
7776         to match the appeareance of .Net.
7777
7778         * ColumnHeader.cs: When using auto resize, only the Width should
7779         depend on the sub items, not the Height. Also, set width after
7780         auto resizing (the value of Width should never remain as -1 or -2).
7781
7782 2007-01-10  Chris Toshok  <toshok@ximian.com>
7783
7784         * Application.cs: fix compilation errors when debug is enabled.
7785
7786 2007-01-10  Chris Toshok  <toshok@ximian.com>
7787
7788         * ContainerControl.cs (set_ActiveControl): rework this a bit (and
7789         add some nice ascii art pictures and explanation of the process).
7790         (GetMostDeeplyNestedActiveControl): new utility function we need
7791         because our ActiveControl can refer to a child container with its
7792         own ActiveControl.
7793
7794         * Form.cs (OnActivated): remove the call to SelectActiveControl
7795         from here, since you can override this method and not chain up,
7796         and winforms still sets the active control.
7797         (OnCreateControl): also remove the unnecessary SelectActiveControl
7798         call from here.
7799         (WndProc): it's actually called from the WM_ACTIVATE block, just
7800         before calling OnActivated.
7801
7802         * Control.cs (Select (Control)): move the call to XplatUI.SetFocus
7803         inside the else.  the ActiveControl setter will end up setting
7804         focus on @control.  This keeps us from setting it again (and
7805         generating an extra LostFocus/GotFocus pair).
7806         (Select (bool, bool)): reindent.
7807
7808 2007-01-10  Jonathan Pobst  <jpobst@novell.com>
7809
7810         * FlowLayoutPanel.cs, MenuStrip.cs, SplitContainer.cs, SplitterPanel.cs,
7811         StatusStrip.cs, TableLayoutPanel.cs, TableLayoutStyleCollection.cs,
7812         ToolStrip.cs, ToolStripComboBox.cs, ToolStripContainer.cs,
7813         ToolStripContentPanel.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
7814         ToolStripDropDownButton.cs, ToolStripDropDownItem.cs, ToolStripDropDownMenu.cs,
7815         ToolStripItem.cs, ToolStripMenuItem.cs, ToolStripPanel.cs, ToolStripPanelRow.cs,
7816         ToolStripSeparator.cs, ToolStripSplitButton.cs, ToolStripStatusLabel.cs
7817         ToolStripTextBox.cs: Another wave of corcompare work.
7818
7819 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7820
7821         * ColumnHeader.cs: Implement 2.0 AutoResize method using
7822         the Width property.
7823
7824         * ListView.cs: Implement 2.0 AutoResizeColumn and AutoResizeColumns
7825         methods by callling Column.AutoResize method on columns.
7826
7827 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
7828
7829         * Control.cs: Provide proper implementations of PreferredSize
7830         and GetPreferredSize (2.0).
7831
7832 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
7833
7834         * Form.cs: Remove one character (!) to make my previous OnClosing
7835         stuff work for modal windows like MessageBox.
7836
7837 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7838
7839         * ListView.cs:
7840         * ThemeWin32Classic.cs: Use ListView.GetReorderedColumn instead of
7841         ListView.Columns to get the last displayed column. Fixes #80452.
7842
7843 2007-01-09  Everaldo Canuto  <everaldo@simios.org>
7844
7845         * Label.cs, LinkLabel.cs: Source code identation fixes.
7846
7847 2007-01-08  Everaldo Canuto  <everaldo@simios.org>
7848
7849         * ToolBarButton.cs: Remove InvalidateBorder and use Invalidate instead,
7850         we dont need to invalidate only borders because when we invalidate four
7851         border lines the invalidate's generates a complete redraw of button, 
7852         because it now invalidate a complete rect some other redraws operations
7853         are fixed. Fixes #80196.
7854         
7855         * Theme.cs, ThemeNice.cs, ThemeClearLooks.cs, ThemeWin32Classic.cs:
7856         Remove ToolBarInvalidateEntireButton as it is not used.
7857
7858 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
7859         
7860         * Form.cs: Make sure that both OnClosing and OnFormClosing are
7861         called for 2.0 profile.
7862         * CloseReason.cs: Make class internal for 1.1.
7863
7864 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
7865
7866         * ToolStripManager.cs: Implement FindToolStrip functionality.
7867         * ToolStrip.cs: Register and unregister with ToolStripManager.
7868
7869 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
7870
7871         * Control.cs: This was messy.  2.0 moves much of ControlCollection
7872         to ArrangedElementCollection.  Implemented this with as few #if's as 
7873         possible (which is still too many).
7874
7875 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
7876
7877         * Control.cs: Implement SizeFromClientSize() [2.0].
7878
7879 2007-01-07  Everaldo Canuto  <everaldo@simios.org>
7880
7881         * Hwnd.cs: On GetClientRectangle add a new parameter border_static,
7882         use Theme.BorderSize to calculate area instead of static value 1, 
7883         by the way use new BorderStaticSize instead     Border3DSize when 
7884         border_static is true. Fixes #79537.
7885         
7886         * XplatUIOSX.cs: Fix call to GetClientRectangle. 
7887         
7888         * ThemeWin32Classic.cs: On CPDrawBorder3D dont draw inner border when
7889         it is not needed.
7890
7891 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
7892
7893         * Hwnd.cs: Gives more code legibility to GetWindowRectangle.
7894
7895 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
7896
7897         * Label.cs: Override CreateParams to use WS_EX_STATICEDGE instead of
7898         WS_EX_CLIENTEDGE in ExStyles when BorderStyle is Fixed3D, it is
7899         
7900         * Hwnd.cs: 
7901         - border_static field added, it will used to define when a control 
7902         theres 3D border but it must be static (thin).
7903         - In GetWindowRectangle use Theme.BorderSize to calculate area 
7904         instead of static value 1, by the way use new BorderStaticSize instead
7905         Border3DSize when border_static is true.
7906
7907         * XplatUIX11.cs, XplatUIOSX.cs: 
7908         - When WS_EX_STATICEDGE ExStyle is set define border_static as true.
7909         
7910         * Theme.cs: BorderStaticSize field added.
7911
7912 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
7913
7914         * XplatUIX11.cs: Removed unused hwnd var in SetBorderStyle.
7915
7916 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
7917
7918         * Control.cs: Under InternalBorderStyle call RecreateHangle to 
7919         mimic same behavior than win32 that set border only in CreateParams,
7920         it fix problems under CreateParams overrides. Fix #79442 and partial
7921         fix #79537.
7922         
7923         * XplatUIX11.cs: Dont set hwnd.border_style in SetBorderStyle instead
7924         of thi control you must call recreate handle. 
7925         
7926         * XplatUIWin32.cs: Remove all SetBorderStyle code, for win32 we dont
7927         need to do anything as RecreateHangle will take care about borders.
7928
7929 2007-01-05  Mike Kestner  <mkestner@novell.com>
7930
7931         * ListView.cs: hack to eliminate Lost/Got focus notifications on
7932         cycles between the ItemControl and parent.  Fixes #80388.
7933
7934 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
7935
7936         * Control.cs: Lazy init layout engine. Do not directly use 
7937         layout_engine since LayoutEngine may be overridden (on 2.0 profile).
7938
7939 2007-01-05  Chris Toshok  <toshok@ximian.com>
7940
7941         * DataGrid.cs: don't forceably rebind columns in SetDataSource
7942         unless our list manager has changed (i.e. unless we have reason to
7943         believe our columns have changed).  Fixes #80422.
7944         
7945         also, disable the call do BindColumns in
7946         OnListManagerMetaDataChanged.  this breaks this test in 2.0 (in
7947         1.1 the event isn't raised in response to a column addition on a
7948         table.)
7949
7950 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
7951
7952         * Control.cs: Move LayoutEngine.Layout to the OnLayout method, so
7953         that inheritors can not call it if they choose.  Fixes bug #80456.
7954
7955 2007-01-05  Andreia Gaita  <avidigal@novell.com>
7956
7957         * XplatUIWin32.cs: Initialize MSG.refobject at 0 so it 
7958         doesn't blow up with a null exception on marshalling.
7959         
7960 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
7961
7962         * Control.cs: Implement several 2.0 protected properties and methods.
7963         Ensure that all necessary events are being called when properties
7964         are set.
7965
7966 2007-01-05  Mike Kestner  <mkestner@novell.com>
7967
7968         * ListView.cs: implement PgUp/PgDn for Details view.  Also
7969         fixes First/LastVisibleIndex to use the item_control.ClientRect 
7970         instead of the parent control.  Fixes #80378.
7971
7972 2006-01-05  Atsushi Enomoto  <atsushi@ximian.com>
7973
7974         * PageSetupDialog.cs : cosmetic refactoring; use RegionInfo to
7975           determine whether to use yard-pound or not (bug #78399).
7976
7977 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
7978
7979         * FileDialog.cs: Sebastien fixed the libgdiplus png alpha
7980         problems. So it is time to bring back the old popupbutton colors.
7981
7982 2006-01-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7983
7984         * ColumnHeader.cs:
7985         * ListView.cs: Implement 2.0 ColumnHeader.DisplayIndex
7986         property by using the internal information of the
7987         columns order in ListView.
7988
7989 2007-01-04  Jonathan Pobst  <monkey@jpobst.com>
7990
7991         * CommonDialog.cs, Cursor.cs, ErrorProvider.cs, HelpProvider.cs:
7992         Add 2.0 Tag properties.
7993
7994         * LinkArea.cs: Add 2.0 ToString method.
7995
7996 2007-01-03  Chris Toshok  <toshok@ximian.com>
7997
7998         * DataGrid.cs: the Alt+0 handling was wrong, it should have been
7999         Ctrl+0.  Fixes bug #80367.  Also, don't eat the Delete keypress
8000         when we're editing, which fixes #80047.
8001
8002 2007-01-03  Chris Toshok  <toshok@ximian.com>
8003
8004         * Form.cs: apply patch contributed by Dominik Seichter.  fixes
8005         #80404.
8006
8007 2007-01-03  Jonathan Pobst  <monkey@jpobst.com>
8008
8009         * MenuStrip.cs, ToolStripMenuItem.cs: Add MdiWindowListItem
8010         property and implementation.
8011
8012         * Form.cs, MdiClient.cs, MdiWindowManager.cs: Add needed hooks
8013         for MdiWindowListItem property.
8014
8015         * ToolStripDropDown.cs: Don't consider hidden menu items while
8016         laying out the menu.
8017
8018 2007-01-03  Andreia Gaita  <avidigal@novell.com>
8019
8020         * SendKeys.cs: window handle is not needed in win32, so just
8021         get the active window for X after parsing keys and don't use
8022         it when building the message; it is passed by parameter to the 
8023         Xplat method and used there to build the message instead. Also,
8024         wait for events to be processed on SendWait, as opposed to Send,
8025         which doesn't wait :) Playing with threads and Send() completely 
8026         hangs on ms.net, only SendWait() works.
8027         
8028         XplatUIX11.cs
8029         X11Display.cs: Check for valid window handle.
8030
8031 2007-01-03  Jackson Harper  <jackson@ximian.com>
8032
8033         * TextControl.cs: Need to prevent wrap calculations when replacing
8034         text (this was there before i removed it accidently).
8035         - Don't update the cursor during the positioning, just set it to
8036         selection_start at the end of the operaion.
8037
8038 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8039
8040         * Control.cs:
8041         * NotifyIcon.cs: corcompare work, no more X's in 1.1 class status.
8042         
8043 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8044
8045         * MonthCalendar.cs: Added Click and DoubleClick events again,
8046         but this time they only hide Control's Click and DoubleClick.
8047         
8048 2007-01-03  Gert Driesen  <drieseng@users.sourceforge.net>
8049
8050         * Theme.cs: Re-enabled DefaultFont change. Use const to refer to
8051         System.Drawing assembly. Spaces to tabs. Removed extra tabs.
8052
8053 2007-01-02  Jackson Harper  <jackson@ximian.com>
8054
8055         * TextBoxBase.cs: We move the caret with the split now, so we
8056         don't need to explicitly move the caret after splitting.  This
8057         fixes the caret bumping down an extra line on Enter.
8058
8059 2007-01-02  Miguel de Icaza  <miguel@novell.com>
8060
8061         * ContainerControl.cs: Add AutoValidateChanged event (for PDN
8062         2.72). 
8063
8064         * ScrollableControl.cs: Add Scroll event.
8065
8066 2007-01-02  Mike Kestner  <mkestner@novell.com>
8067
8068         * ListView.cs: one more try with help from georgegiolfan@yahoo.com 
8069         to fix all hdr height padding codepaths.  Fixes #80207.
8070
8071 2007-01-02  Chris Toshok  <toshok@ximian.com>
8072
8073         * StatusBar.cs (.ctor): remove the Anchor setting, as it's just
8074         setting it to the Control defaults anyway, and it being after the
8075         Dock set was screwing up layout.
8076         (set_Dock): don't short circuit out of setting base.Dock.  Also,
8077         no need to call UpdateStatusBar here, as it'll be re-layed out if
8078         it needs to be.
8079
8080 2007-01-02  Mike Kestner  <mkestner@novell.com>
8081
8082         * ListView.cs: patch from georgegiolfan@yahoo.com to add padding
8083         to header height for width == -1. Fixes the rest of #80207.
8084
8085 2007-01-02  Mike Kestner  <mkestner@novell.com>
8086
8087         * ListView.cs: rework the mouse event forwarding everaldo added
8088         to translate the coordinates to the parent control not
8089         raise the parent events until after we've done our work. Hover
8090         needs more work, in the case where HoverSelection is on, because
8091         the item control receives more than one MouseHover per Enter
8092         event, so we need to ensure only the "first" hover gets forwarded.
8093         Opening a minor bug for that.
8094
8095 2007-01-02  Gert Driesen  <drieseng@users.sourceforge.net>
8096
8097         * CheckedListBox.cs: Fixed SelectionMode to match MS.
8098         * ListControl.cs: Implemented AllowSelection property. Removed extra
8099         tabs.
8100         * ListBox.cs: Implemented AllowSelection property.
8101
8102 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
8103
8104         * MenuItem.cs: In MdiWindowClickHandler uses sender instead of
8105         SelectedItem, it prevent for errors when you must disable item
8106         before perform click. Fixes #80409.
8107
8108 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
8109
8110         * MenuAPI.cs: Prevent second level and beyond submenus to close
8111         until first level when move out side of popup.
8112         
8113 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
8114
8115         * MenuAPI.cs:
8116         - Down submenu positin in three pixels.
8117         - Closes sub menu when mouse leaves from menu. Fixes #80402.
8118
8119 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
8120
8121         * ThemeWin32Classic.cs:
8122         - Fix popup menu size adding one pixel on the top.
8123         - Down menu item border from two to one to mimic Win32.
8124         - Some source identation fixes. 
8125
8126 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
8127
8128         * ThemeWin32Classic.cs: Use float numbers to calculate size and
8129         position of menu arrows, it fix wrong arrow size.
8130
8131 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
8132
8133         * ThemeWin32Classic.cs: Uses CPDrawBorder3D to draw menu borders
8134         instead of line, it simplify draw operation and fix it using 3D
8135         borders to mimic Win32.
8136
8137 2007-01-01  Jonathan Pobst  <monkey@jpobst.com>
8138
8139         * StatusStrip.cs: Add implementation of the sizing grip.
8140
8141         * ToolStripRenderer.cs, ToolStripProfessionalRenderer.cs: Add
8142         StatusStrip rendering.
8143
8144 2006-12-31  Chris Toshok  <toshok@ximian.com>
8145
8146         * ToolBar.cs: don't assign to dock_style in the .ctor.  it doesn't
8147         override the layout style (anchor/dock) of the control.  assign to
8148         Dock instead.  Fixes bug #80416.
8149
8150         * ToolStrip.cs: same.
8151
8152 2006-12-31  Andreia Gaita  <avidigal@novell.com>
8153
8154         * ContainerControl.cs: Use ContainerSelected flag to check if 
8155         a Container is directly selected, or if Select is called on a 
8156         non-container. If a container is directly selected, focus events 
8157         should not be raised.
8158         Apply #80411 patch to throw exception on set_ActiveControl if 
8159         control is the same as the current one.
8160         
8161         * Control.cs: Use ContainerSelected flag (see above).
8162         Add invalidation check to raise event but not invalidate if 
8163         dimensions are 0.       
8164         Apply #80411 patch.
8165         
8166
8167 2006-12-31  Everaldo Canuto  <everaldo@simios.org>
8168
8169         * MenuAPI.cs: After click, dont close popup menu when menu is
8170         ContextMenu. Fixes #80399.
8171
8172 2006-12-30  Chris Toshok  <toshok@ximian.com>
8173
8174         * ContainerControl.cs: make sure we throw the exception if the
8175         container control doesn't contain the control we're setting
8176         ActiveControl to.
8177
8178 2006-12-30  Chris Toshok  <toshok@ximian.com>
8179
8180         * Control.cs (SetTopLevel): fix the exception raised by
8181         SetTopLevel for child controls.
8182         (set_Anchor): call UpdateDistances when setting the anchor type.
8183         This fixes bug #80336.
8184
8185 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
8186
8187         * Theme.cs: For now, revert back to 8pt font.
8188
8189 2006-12-29  Everaldo Canuto  <everaldo@simios.org>
8190
8191         * MenuAPI.cs: Set popup as active when open a ContextMenu. 
8192         Fixes #80395.
8193
8194 2006-12-29  Chris Toshok  <toshok@ximian.com>
8195
8196         * Control.cs: reorder the code in OnResize to give the same event
8197         ordering as MS.
8198
8199 2006-12-29  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8200
8201         * MdiClient.cs: Implemented MdiLayout for ArrangeIcons,
8202         TileHorizontally and TileVertically.
8203         
8204 2006-12-29  Alexander Olk  <alex.olk@googlemail.com>
8205
8206         * ColorDialog.cs, FileDialog.cs, FolderBrowserDialog.cs,
8207         FontDialog.cs, Mime.cs, MimeIcon.cs, OpenFileDialog.cs,
8208         SaveFileDialog.cs, ThemeClearlooks.cs, ThemeNics.cs:
8209         Corrected copyright and email adress.
8210
8211 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
8212
8213         * TreeNode.cs: On 2.0 profile, throw InvalidOperationException instead
8214         of Exception in FullPath property if no TreeView is associated with
8215         the TreeNode.
8216
8217 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
8218
8219         * Theme.cs: Marked default_font as private, and initialize it in ctor
8220         with MS Sans Sarif 8.25 on 1.0 profile, and SystemFonts.DefaultFont
8221         on 2.0 profile.
8222         * ThemeGtk.cs: Removed default_font intialization.
8223         * ThemeWin32Classic.cs: Removed default_font initialization.
8224
8225 2006-12-28  Chris Toshok  <toshok@ximian.com>
8226
8227         * Control.cs: fix a couple of place where we were creating handles
8228         more aggressively than we should be.  Fixes ControlRefresh unit
8229         tests.
8230
8231 2006-12-28  Chris Toshok  <toshok@ximian.com>
8232
8233         * Control.cs: contrary to what the comment said, Control.Dock does
8234         not supercede Control.Anchor - the last one you assign to decides
8235         the layout behavior.  so we need to keep track of which was the
8236         last set.  Also, fix some of the affected property arguments in
8237         PerformLayout calls, and remove an redundant parent.PerformLayout
8238         call in OnResized.
8239
8240         Add a VisibleInternal property, which returns is_visible.  We
8241         can/should get rid of all the usage of this field elsewhere.
8242
8243 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8244         
8245         * Control.cs: DoubleBuffered property reflects the OptimizedDoubleBuffer
8246         control style, not DoubleBuffer. Added UseDoubleBuffering property
8247         that indicates whether doublebuffering is enabled and supported.
8248         (comment from and code based on Gert Driesen's patch in #80324).
8249         Fixes #80324.
8250
8251 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8252         
8253         * Control.cs: Fixed a NRE.
8254
8255 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8256
8257         * TrackBar.cs: Fix SmallChange and LargeChange exceptions
8258         for 2.0.
8259
8260 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8261
8262         * Control.cs: Rewrote double buffering, now a seperate
8263         class handles all the buffering, no Graphics is disposed of
8264         until the painting is finished (earlier implementation 
8265         would crash if the control was resized in the OnPaint, 
8266         since it would cause the double buffer to be recreated
8267         and the old one disposed), a separate Graphics is 
8268         created for every paint (MS behaviour and anyways the state
8269         of the Graphics would have to be saved and restored otherwise)
8270         
8271         * XplatUIDriver.cs: 
8272         * XplatUIX11.cs:
8273         * XplatUI.cs: Added and implemented GetOffscreenGraphics 
8274         so that we can get the graphics for the back buffer without
8275         having to create a new one and remove the offscreen_dc parameter
8276         from CreateOffscreenDrawable and DestroyOffscreenDrawable.
8277         
8278 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8279
8280         * ListView.cs: Add key-related 2.0 methods for CheckedItemCollection.
8281         Also make virtual all the key-related methods.
8282
8283         * ListViewItem.cs: Make virtual the key related methods for
8284         ListViewSubItemCollection.
8285
8286 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8287
8288         * ListView.cs:
8289         * ListViewItem.cs:
8290         * ThemeWin32Classic.cs:
8291         * Theme.cs: Initial support for Tile view in ListView,
8292         as well as the implementation of the required bits for it (Item
8293         and Subitem).
8294
8295 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
8296
8297         * MonthCalendar.cs: On 2.0, throw ArgumentOutOfRangeException instead
8298         of ArgumentException in MaxSelectionCount, MaxDate and MinDate.
8299         Provide useful exception messages.
8300
8301 2006-12-27  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8302
8303         * TrackBar.cs: Remove a warning.
8304         * MonthCalendar.cs: Moved back to using Capture to hide the calendar
8305         when used by DateTimePicker, fixes #80287. This also requires that 
8306         MonthCalendar implements it's own drawing for the yearly updown control,
8307         otherwise the Capture tracking would be too complicated. Removed the Click 
8308         and DoubleClick events (according to comments they were hiding the base class
8309         event to prevent them from beeing fired - MSDN only says MonthCalendar doesn't
8310         raise these events, not that they cannot be raised. It is possible to raise 
8311         them by calling OnClick and OnDoubleClick). Added two internal fields in 
8312         HitTestInfo in order to track give more tracking info needed by MonthCalendar.
8313         * ThemeWin32Classic.cs: Implement drawing of MonthCalendar's updown part.
8314         * DateTimePicker.cs: Removed handling of MonthCalendar's LostFocus
8315         event, no longer needed.
8316         
8317 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
8318
8319         * ScrollableControl.cs: In AutoScrollMinSize, only set AutoScroll to
8320         true if new value differs from current value.
8321
8322 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
8323
8324         * Control.cs: ControlCollection.Count must be public. Fixed build of
8325         unit tests.
8326
8327 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
8328
8329         * ListView.cs: Redraw when FullRowSelect is changed. Fixes bug #80379.
8330
8331 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
8332
8333         * ComboBox.cs: Mergable=>MergableProperty. Fixes build.
8334
8335 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
8336
8337         * Control.cs: Invalidates control including when Width and Height is 
8338         equal zero or is not visible, only Paint event must be care about 
8339         this. Fixes #79913.
8340
8341 2006-12-26  Chris Toshok  <toshok@ximian.com>
8342
8343         * CurrencyManager.cs, PropertyManager.cs, BindingManagerBase.cs:
8344         more corcompare work.
8345
8346         * DataGridView.cs: fix compiler warning.
8347
8348         * ColumnHeader.cs: some corcompare work, and also take the
8349         opportunity to make the internal fields private.
8350
8351         * ListView.cs: fix the fallout from the above field change.
8352
8353 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
8354
8355         * ToolStripButton.cs, ToolStripComboBox.cs, ToolStripControlHost.cs,
8356         ToolStripItem.cs, ToolStripProgressBar.cs, ToolStripSplitButton.cs,
8357         ToolStripTextBox.cs: Fixes to events and corcompare.
8358
8359 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
8360
8361         * ListView.cs: Call owner.OnMousexx event to propagate events from
8362         item to ListView. Fixes #80367.
8363
8364 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
8365
8366         * ComboBox.cs: On 2.0, DropDownWidth throws ArgumentOutOfRangeException
8367         if value is less than one. ItemHeight should not be set to a value
8368         less than 1, and throw ArgumentOutOfRangeException on 2.0 profile. 
8369         Removed extra tabs.
8370
8371 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
8372
8373         * ToolStripMenuItem.cs: Add ShortcutDisplayString for Moma.
8374         * ToolStripStatusLabel.cs: Add Spring for Moma.
8375
8376 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
8377
8378         * DataGridView.cs: Fixed several NullReferenceException in On* methods.
8379         Fixed code formatting. Removed debug code.
8380         * DataGridViewTextBoxEditingControl.cs: Removed debug code.
8381
8382 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
8383
8384         * DataGridView.cs: Fixed GridColor, DefaultSize, DefaultCellStyle,
8385         RowHeadersDefaultStyle, RowHeadersWidth to match MS. Throw
8386         ArgumentOutOfRangeException if ColumnCount is negative. In 
8387         ColumnHeadersHeight, throw ArgumentOutOfRangeException if height is
8388         less than 4 or higher than 32768.
8389         * DataGridViewCellStyle.cs: Fixed default value for NullValue.
8390         Fixed FormatProvider to return CurrentCulture unless explicitly set.
8391         Fixed IsFormatProviderDefault to return true if FormatProvider has
8392         not been explicitly set.
8393
8394 2006-12-25  Chris Toshok  <toshok@ximian.com>
8395
8396         * Application.cs: add a couple of 2.0 events.
8397
8398 2006-12-25  Chris Toshok  <toshok@ximian.com>
8399
8400         * Control.cs: fix compiler warning.
8401
8402         * AxHost.cs: corcompare fixes.
8403
8404         * ApplicationContext.cs: corcompare fixes.
8405
8406 2006-12-25  Chris Toshok  <toshok@ximian.com>
8407
8408         * Control.cs: only update dist_right/dist_bottom if the
8409         width/height is > 0.  this fixes anchored controls being resized
8410         smaller until they disappear and then resized larger again.
8411
8412 2006-12-25  Chris Toshok  <toshok@ximian.com>
8413
8414         * Control.cs: a couple of changes.  Remove dist_left and dist_top,
8415         since they're nothing more than X/Left and Y/Top, respectively.
8416
8417         Also, move back to a per-control Bitmap/Graphics for
8418         DeviceContext, since using the static Hwnd.bmp/bmp_g is bad in the
8419         MT case.  Go with a tiny bitmap though, 1x1, instead of Width x
8420         Height.
8421
8422 2006-12-25  Miguel de Icaza  <miguel@novell.com>
8423
8424         * MessageBox.cs: Implemented overload that takes a new "bool
8425         displayHelpButton" by adding a new internal field "show_help".
8426         When clicked this will raise the HelpRequested on the owner or the
8427         main form. 
8428
8429         From: 007dbe3ff0ca4729a4f5fcd1d8ab2a2e.txt
8430         From: c935e12b95fe4dc1ae670e7f4dc5fd68.txt
8431
8432         * ListView.cs: Add support ColumnWidthChanged and
8433         ColumnWidthChanging. 
8434
8435         Add support for ColumnReordered event.
8436         (ReorderColumn): Add NET_2_0 specific support for cancelling the
8437         reorder.
8438
8439         Very nice codebase!
8440
8441         * TextBoxBase.cs (GetLineFromCharIndex): Implement this method.
8442
8443         This is used by report f4ae0a88a0a244558aaadf017c9b9efe.
8444
8445 2006-12-24  Chris Toshok  <toshok@ximian.com>
8446
8447         * GridTablesFactory.cs: 2.0 corcompare work.
8448
8449         * ToolStripContainer.cs: add "override" to
8450         ContextMenuStripChanged, and remove the local event object.
8451
8452         * ToolStripDropDown.cs: same with a couple properties.
8453
8454         * ToolStripPanel.cs: same with AutoSizeChanged event.
8455
8456         * TextBoxBase.cs: add "override" to AutoSizeChanged.
8457
8458         * Form.cs: add the remaining 2.0 events, and do some corcompare
8459         attribute work.
8460
8461         * DateTimePicker.cs: add "new" to padding.
8462
8463         * ButtonBase.cs: use Control's use_compatible_text_rendering.
8464
8465         * ToolStripContentPanel.cs: use base.AutoSizeChanged.
8466
8467         * DataGridView.cs: PaddingChanged is overridden.
8468
8469 2006-12-24  Chris Toshok  <toshok@ximian.com>
8470
8471         * Control.cs: corecompare work here too.
8472
8473         * DataGridViewElement.cs, DataGridView.cs,
8474         DataGridViewButtonCell.cs, DataGridViewRowCollection.cs,
8475         DataGridViewImageColumn.cs, DataGridViewComboBoxColumn.cs,
8476         DataGridViewImageCell.cs, DataGridViewCheckBoxCell.cs,
8477         DataGridViewHeaderCell.cs, DataGridViewCell.cs: more corcompare
8478         work.
8479
8480 2006-12-24  Miguel de Icaza  <miguel@novell.com>
8481
8482         * Control.cs: Switched the error message on the console for a
8483         todo.  A review of the code will have to cope with this anyways
8484         (since its a large feature, it is in our radar) and it was
8485         producing too much output when running PDN.
8486
8487         * ToolStripComboBox.cs: Set the text when the SelectedIndex
8488         changes.  Applications depend on this (PDN 2.72)
8489
8490 2006-12-23  Chris Toshok  <toshok@ximian.com>
8491
8492         * TableLayoutSettings.cs: finish up the corcompare work for this
8493         class.
8494
8495 2006-12-23  Chris Toshok  <toshok@ximian.com>
8496
8497         * Control.cs: make SetImplicitBounds internal, do some futzing
8498         with LayoutEngine so that it's available in 1.1, and remove the
8499         entire duplicated code mess from PerformLayout.  Use
8500         System.Windows.Forms.Layout.DefaultLayout instead.
8501
8502         * LayoutEngine.cs: make this class internal in 1.1, public in 2.0.
8503
8504 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
8505
8506         * Form.cs: Add MainMenuStrip property.
8507
8508 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
8509
8510         * Control.cs: Add ContextMenuStrip property and implementation.
8511         Fix ContextMenu implementation to show menu centered on control when
8512         activated using the keyboard instead of showing at screen (0,0).
8513
8514         * ToolStripDropDown.cs: Fix needed overload of Show ().
8515
8516 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
8517
8518         * Menu.cs: Name property added for 2.0 profile.
8519         
8520 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
8521
8522         * Menu.cs: Update information about FindMenuItem, method to be
8523         implemented soon.
8524
8525 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
8526
8527         * MenuAPI.cs: When deselect items deselect also selected subitems.
8528         
8529 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
8530
8531         * MenuAPI.cs: When hides menu set Wnd to null, it prevents
8532         FindSubItemByCoord to found itens that is not active, also an
8533         cheking added to FindSubItemByCoord to search for items only 
8534         in visible popup windows. Fixes #80274.
8535
8536 2006-12-22  Everaldo Canuto  <everaldo@simios.org>
8537
8538         * UserControl.cs: Remove MonoTodo and use InternalBorderStyle,
8539         internal property, it be care about change ExStyle. 
8540
8541 2006-12-22  Andreia Gaita  <avidigal@novell.com>
8542
8543         * ContainerControl.cs: set activeControl for parent forms up the 
8544         tree when the new activecontrol is a container.
8545         When validating the active control, if it is a container, also
8546         raise up the validation for it's active control. Fixes #80280
8547         
8548         * Control.cs: Add internal property flag and check to prevent
8549         Focus events from getting raised when Select() is called for
8550         a ContainerControl. There are still too many focus events being
8551         raised at the moment though.
8552         Cleaned up the code a bit.
8553
8554 2006-12-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8555
8556         * Control.cs: Added all missing 2.0 events.and
8557         fixed a couple of corcompare issues.
8558         * TrackBar.cs: Implemented missing 2.0 bits.
8559         * MonthCalendar.cs, 
8560         * DateTimePicker.cs, 
8561         * MdiClient.cs: Fixed some corcompare issues.
8562
8563 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
8564
8565         * ContextMenuStrip.cs, FlowLayoutPanel.cs, SplitContainer.cs,
8566         SplitterPanel.cs: corecompare work.
8567
8568 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
8569
8570         * ToolStripContainer.cs, ToolStripDropDown.cs, StatusStrip.cs:
8571         Clean up warnings for BackgroundImageChanged and PaddingChanged
8572         events now that they are implemented in Control.cs.
8573
8574 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
8575
8576         * Control.cs: Make sure layout_engine isn't null before using it (2.0).
8577         
8578         * TableLayoutControlCollection.cs, TableLayoutPanel.cs, TableLayoutCellPosition.cs,
8579         TableLayoutSettings.cs, TableLayoutStyleCollection.cs: Initial implementation
8580         of TableLayoutPanel and supporting cast.
8581
8582 2006-12-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8583
8584         * XplatUIWin32.cs: 
8585         - GrabWindow now confines the mouse pointer to the confine window.
8586         - Added Win32ClipCursor and Win32GetClipCursor.
8587
8588         * Control.cs: 
8589         - Added CaptureWithConfine to be able to capture and confine 
8590         mouse pointer.
8591         
8592         * InternalWindowManager.cs: 
8593         - Call CaptureWithConfine instead of Capture if we're an
8594         MdiChild (fixes #79982).
8595
8596 2006-12-21  Chris Toshok  <toshok@ximian.com>
8597
8598         * DataGrid.cs: guard against the initial state of selection, where
8599         selection_start == -1.  make sure we only select from index >= 0.
8600         Fixes bug #80291.
8601
8602 2006-12-21  Chris Toshok  <toshok@ximian.com>
8603
8604         * Control.cs: we don't need to be so draconian with
8605         UpdateDistances, and we thusly don't need to call it before
8606         calling PerformLayout in ResumeLayout.  Fixes bug #80289.
8607
8608 2006-12-21  Daniel Nauck  <dna@mono-project.de>
8609
8610         * ComboBox.cs,
8611         TextBox.cs: Implemented AutoComplete properties.
8612
8613 2006-12-20  Chris Toshok  <toshok@ximian.com>
8614
8615         * DataGridView*.cs: some corecompare work.
8616
8617 2006-12-20  Jackson Harper  <jackson@ximian.com>
8618
8619         * XplatUIX11.cs: We need to hide the caret when deleting it,
8620         otherwise you get carets left lying around everywhere.
8621         * TextBoxBase.cs: Kill then redraw the caret when scrolling.  This
8622         prevents getting some weird half drawn caret tracers when
8623         scrolling.
8624         * TextControl.cs: Attempt to reduce the number of times we need to
8625         recreate the caret.
8626
8627 2006-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
8628
8629         * MonthCalendar.cs: Fixed previous month button. Removed extra tabs.
8630
8631 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8632
8633         * DateTimePicker.cs:
8634         - Implemented missing 2.0 bits.
8635         - Changed some default values to match MS.
8636         
8637 2006-12-20  Jackson Harper  <jackson@ximian.com>
8638
8639         * TextBoxBase.cs: When changing the font across the document we
8640         can't recalculate after changing each line, since that will cahnge
8641         the line count.
8642         - PreferredHeight is a little different than i thought.
8643         - When backspacing, move the caret before we do the actual char
8644         delete, because when that delete crosses a wrap boundary the
8645         positional information will change.
8646
8647 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8648
8649         * Control.cs: Added some missing 2.0 bits: 
8650         BackgroundImageLayout, BackgroundImageLayoutChanged, 
8651         OnPaddingChanged, MouseClick, MouseDoubleClick, PaddingChanged and 
8652         add IBindableComponent and IDropTarget implementation.
8653         
8654         * MonthCalendar.cs: 
8655         - Added all missing 2.0 features:
8656         BackgroundImageLayout, RightToLeftLayout, 
8657         OnHandleDestroyed, RightToLeftLayoutChanged, 
8658         BackgroundImageLayoutChanged, MouseClick, MouseDoubleClick,
8659         PaddingChanged.
8660         - Rewrote all the BoldDate code, it was completely broken.
8661         - Fixed all the tests (the tests can now be re-enabled, the
8662         problems were not with the tests, but with the control, it was
8663         mostly broken).
8664         
8665         * DateTimePicker.cs: Changed the location where the 
8666         MonthCalendar is shown.
8667         
8668 2006-12-19  Chris Toshok  <toshok@ximian.com>
8669
8670         * DataGridView.cs: add IDropTarget implementation.
8671
8672         * ToolStripPanel.cs: add IDropTarget implementation.
8673
8674 2006-12-19  Jackson Harper  <jackson@ximian.com>
8675
8676         * TextControl.cs: soft now means something different than what it
8677         used to mean, we want to move the caret regardless of whether or
8678         not this break was soft (would we really have wanted the caret
8679         to not move with the break in the old context?)
8680         * TreeView.cs: Make sure we factor in the vert scrollbar when
8681         calculating the horizontal scrollbar's maximum.
8682
8683 2006-12-19  Andreia Gaita  <avidigal@novell.org>
8684
8685         * SendKeys.cs: Fix Send() behaviour, clear keys after sending,
8686         check for keywords in alternate casing, close bug #80049.
8687
8688 2006-12-19  Chris Toshok  <toshok@ximian.com>
8689
8690         * ToolStripItem.cs: add the implementation of the 4 IDropTarget
8691         methods (which all do nothing).
8692
8693         * IDropTarget.cs: add the 4 missing methods.
8694
8695 2006-12-19  Chris Toshok  <toshok@ximian.com>
8696
8697         * TableLayoutRowStyleCollection.cs: corcompare work.
8698         
8699         * TableLayoutSettings.cs: same.
8700
8701         * TableLayoutStyle.cs: same.
8702
8703         * TableLayoutColumnStyleCollection.cs: same.
8704
8705 2006-12-19  Jonathan Pobst  <monkey@jpobst.com>
8706
8707         * ColumnStyle.cs, RowStyle.cs, TableLayoutStyle.cs: Plumbing for
8708         TableLayoutPanel I've had in my local tree for way too long.
8709
8710 2006-12-19  Miguel de Icaza  <miguel@novell.com>
8711
8712         * TableLayoutSettings.cs: Finish the public API (still needs all
8713         the logic to update on changes). 
8714
8715         * TableLayoutPanelCellPosition.cs: new file.
8716         
8717         * TableLayoutRowStyleCollection.cs,
8718         TableLayoutColumnStyleCollection, TableLayoutStyle.cs,
8719         TableLayoutSettings.cs: Track the final 2.0 table api.
8720
8721 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8722
8723         * ColumnHeader.cs: Add Tag, Name, ImageKey, ImageIndex,
8724         and Image List 2.0 members for ColummnHeader.
8725         * ListView.cs: Add key-related 2.0 methods for
8726         ColumnHeaderCollection.
8727
8728 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
8729
8730         * ListViewItem.cs: Changed AddRange overloads to match MS: throw
8731         ArgumentNullException if items argument is null. Ignore null item in
8732         arrays. Removed extra tabs.
8733
8734 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
8735
8736         * MonthCalendar.cs: Fixed InvalidCastException.
8737
8738 2006-12-19  Jackson Harper  <jackson@ximian.com>
8739
8740         * TextControl.cs: Don't increment the position here.
8741         - When calculating char positions only add in the line break size
8742         for hard line breaks.
8743
8744 2006-12-19  Andreia Gaita  <avidigal@novell.org>
8745
8746         * SendKeys.cs: Changed some things to match ms.net behaviour
8747         when parsing shifted capital letters.
8748         
8749         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32, XplatUIOSX: 
8750         Add window handle as parameter to SendInput. X11 needs the 
8751         window handle, and the handle being passed      to it in the keys 
8752         queue is the active control handle (which windows needs), not 
8753         the window handle.
8754         
8755         XplatUIX11.cs, XplaUIX11-new.cs, X11Display: Implement SendInput 
8756         to support SendKeys on X.       
8757         
8758         * X11Keyboard: Implement helper method to lookup a linux keycode
8759         given the virtual keycode. Added table of keycode-2-virtualkey
8760         values to support this.
8761
8762 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8763
8764         * ListView.cs: Add support for SelectedIndexCollection
8765         and SelectedItemCollection 2.0 methods. Implement support
8766         for ImageKey too.
8767         * ListViewItem.cs: Add support for ListViewSubItemCollection
8768         2.0 methods. Also, fix an incorrect behavior of AddRange method
8769         (it shouldn't call Clear).
8770         * ThemeWin32Classic.cs: Support for ListView.ImageKey 2.0 property.
8771
8772 2006-12-19  Jackson Harper  <jackson@ximian.com>
8773
8774         * RichTextBox.cs: 
8775         * TextBoxBase.cs: New args for FormatText
8776         * TextControl.cs: Rewrote the main drawing method, this version
8777         feels a little easier to understand and debug to me.  Hopefully it
8778         does to others also
8779         - Fix FormatText to OR in the new formating values.  Added
8780         FormatSpecified param, basically this works in the same way as
8781         BoundsSpecified in Control.
8782         - Set the caret properties when the caret is positioned.
8783         - When wrapping text make sure that we calculate the width of the
8784         last character
8785         - when calculating alignments we might have wrapped down to the
8786         next line, so don't search for an individual tag, search for the
8787         end of the line
8788         - We need to invalidate the selection area when we replace the
8789         selection.
8790         
8791 2006-12-19  Daniel Nauck  <dna@mono-project.de>
8792
8793         * Application.cs: add Restart () 2.0 support
8794
8795 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
8796
8797         * MenuItem.cs: Invalidate menu item rectangle after change Enable
8798         property. Fixes #80268.
8799         
8800 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
8801
8802         * MenuAPI.cs: Dont trigger select event when closes top menu
8803         item. Fixes #80270.
8804
8805 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
8806
8807         * MenuAPI.cs: When you click on menuitem only trigger onselect
8808         event for top menu itens. Fixes #80271.
8809         
8810 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8811
8812         * MdiWindowManager.cs: Make IconicBounds depend on
8813         the bottom of MdiClient, not the top (fixes #80267)
8814         
8815 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8816
8817         * MdiClient.cs: Added missing 2.0 attribute
8818
8819 2006-12-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8820
8821         * ListViewItem.cs: Add Name and Tag 2.0 properties, as well
8822         as IndexOfKey, ContainsKey, RemoveByKey and indexer 2.0.
8823
8824 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
8825
8826         * MenuAPI.cs: Fix click when menuitem is not popup,
8827         this regression was caused by last commit (#80272).
8828
8829 2006-12-17  Everaldo Canuto  <everaldo@simios.org>
8830
8831         * MenuAPI.cs: When a non-toplevel menuitem is clicked dont
8832         fire click event or close menu. Fixes #80272.
8833
8834 2006-12-17  Daniel Nauck  <dna@mono-project.de>
8835
8836         * ListViewHitTestInfo.cs: add
8837
8838 2006-12-17  Daniel Nauck  <dna@mono-project.de>
8839
8840         * ButtonBase.cs: Added FlatButtonAppearance 2.0 support.
8841         * FlatButtonAppearance.cs: add
8842         * DockingAttribute.cs: add
8843
8844 2006-12-17  Chris Toshok  <toshok@ximian.com>
8845
8846         * DataGrid.cs: hook up MetaDataChanged event on the list manager,
8847         and rebind our columns when it does - this way, if you make
8848         changes to the DataTable (or set the Table attribute on a DataView
8849         after setting it as the DataGrid's DataSource, the changes are
8850         made visible.)  Fixes bug #80107.
8851
8852 2006-12-17  Daniel Nauck  <dna@mono-project.de>
8853
8854         * ListViewGroup.cs: add internal Location property for layouting.
8855         * Theme.cs: add abstract ListViewGroupHeight function.
8856         * ThemeWin32Classic.cs: implement ListViewGroupHeight function.
8857
8858 2006-12-16  Andreia Gaita  <avidigal@novell.com>
8859
8860         * TabControl.cs: Fixed checks for NET_2_0-specific exceptions.
8861         Added reset of selected index to 0 when adding first tab page.
8862         Fixes #80264
8863         
8864         * NumericUpDown.cs: Fix NET_2_0 check
8865
8866 2006-12-16  Daniel Nauck  <dna@mono-project.de>
8867
8868         * ListViewGroup.cs: fixed DefaultValueAttribute value
8869
8870 2006-12-16  Daniel Nauck  <dna@mono-project.de>
8871
8872         * AutoCompleteStringCollection.cs: add new AutoCompleteStringCollection 2.0 class
8873
8874 2006-12-15  Miguel de Icaza  <miguel@novell.com>
8875
8876         * Button.cs, ComboBox.cs, ScrollBar.cs, UserControl.cs,
8877         TextBoxBase.cs, ListView.cs, ContainerControl.cs,
8878         ScrollableControl.cs: Add a handful of methods that are
8879         overwritten in 2.0 
8880
8881 2006-12-15  Chris Toshok  <toshok@ximian.com>
8882
8883         * XplatUIWin32.cs: initial implementation of the Reversible
8884         drawing functions.  there are some problems.  DrawReversibleFrame
8885         doesn't seem to work at all for Dashed FrameStyle, and in the
8886         Thick case there are drawing errors at the corners (we probably
8887         need to bind Rectangle instead of doing moveto/lineto's.)
8888
8889 2006-12-16  Andreia Gaita  <avidigal@novell.com>
8890         
8891         * SendKeys.cs: Implemented. SendKeys uses a new method in XPlatUI, SendInput, 
8892         to send blocks of key messages. Send accumulates keys to send with Flush, 
8893         while SendWait sends all keys immediately.
8894                 
8895         * XplaUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, 
8896         XplatUIX11.cs,  XplatUIX11-new.cs:
8897         - Define SendInput and stubs for OSX and X11, implements Win32 with a call
8898         to Win32 SendInput.
8899         - Added INPUT support structures to XplatUIWin32 for Win32SendInput
8900         
8901         Tests:  It seems ms.net is hooking the keyboard to implement this, so doing unit
8902         testing for ms.net on this class is very tricky, as the tests run too fast 
8903         to allow the hook to release, essentially freezing the keyboard and the 
8904         test. So, barring a win32 miracle, they'll be commited in the ms-notworking     
8905         category :p
8906
8907 2006-12-16  Daniel Nauck  <dna@mono-project.de>
8908
8909         * Padding.cs: fixed serialization compability to MS ("_var" field names),
8910                         added missing attributes.
8911  
8912 2006-12-15  Daniel Nauck  <dna@mono-project.de>
8913
8914         * ListViewGroup.cs: Added missing attributes.
8915         * ListViewGroupCollection.cs: Added missing attributes.
8916
8917 2006-12-15  Daniel Nauck  <dna@mono-project.de>
8918
8919         * ListViewItem.cs: fixed ListViewSubItem text property.
8920
8921 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8922         
8923         * Control.cs: Added missing 2.0 attributes
8924         
8925 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8926         
8927         * MdiClient.cs: Added missing 2.0 attribute.
8928         * MonthCalendar.cs: Added some missing 2.0 attributes 
8929         and properties.
8930         
8931 2006-12-15  Daniel Nauck  <dna@mono-project.de>
8932
8933         * ListView.cs: implemented ListViewItemCollection Add 2.0 support.
8934
8935 2006-12-15  Jonathan Pobst  <monkey@jpobst.com>
8936
8937         * MainMenu.cs: Add the new 2.0 constructor to help out people
8938         using the MainMenu in VS2005.
8939
8940 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8941         
8942         * MdiChildContext.cs: Removed it, no longer used.
8943         * MdiClient.cs: Added missing 2.0 attributes.
8944         
8945 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8946         
8947         * InternalWindowManager.cs: Fix a NullRef with previous 
8948         changes for toolwindows.
8949         
8950 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8951
8952         * Control.cs: 
8953         - Added AfterTopMostControl to allow for certain controls 
8954         to always stay on top when normal controls are brought to 
8955         front.
8956         
8957         * XplatUIWin32.cs: 
8958         - (DrawInversibleRectangle): Get window rectangle from Win32 
8959         in stead of from control, since Win32 doesn't calculate
8960         screen coords correctly from control's Location if it 
8961         have docked siblings.
8962         
8963         * MdiWindowManager.cs:
8964         - Correct the control menu popup location when clicked on
8965         the maximized form icon. (fixes #80223.1)
8966         - Don't show moving rectangle if mouse hasn't moved from
8967         the original clicked point.
8968         - Removed FormGotFocus handler (not used).
8969         - Calculate the control buttons location from the main
8970         window's size and not client size (fixes #79770).
8971         - Form is now closed when the form icon is double-clicked
8972         (fixes #79775). 
8973         - Correct NCCalcSize numbers a little bit (fixes #80223.2)
8974         
8975         * InternalWindowManager.cs:
8976         - Moved some MDI-only methods to MdiWindowManager.
8977         - Removed unused properties and methods.
8978         - Unified method naming for methods handling wm messages.
8979         - Moved all message handling to seperate methods for
8980         each message.
8981         
8982         * ThemeWin32Classic.cs:
8983         - DrawManagedWindowDecorations now draws the title bar 
8984         with a gradient brush.
8985         - Add a CPDrawButtonInternal that allows us to specify
8986         light, normal and dark colors for the buttons (control 
8987         buttons for MDI children were drawn with the same light
8988         color as the background, therefore loosing the 3D effect).
8989         
8990         * SizeGrip.cs:
8991         - Add a CapturedControl property that is used to 
8992         determine the control to resize (defaults to parent). 
8993         Needed for MdiClient, since its SizeGrip's parent is
8994         MdiClient, but the control to resize is the main form.
8995         
8996         * MdiClient.cs:
8997         - Set SizeGrip's CapturedControl to the main form in order
8998         to resize the main form and not the MdiClient.
8999         - Override AfterTopMostControl to leave the scrollbars 
9000         always on top.
9001
9002 2006-12-15  Daniel Nauck  <dna@mono-project.de>
9003
9004         * ListView.cs: fixed ListViewItemCollection AddRange and
9005                         implemented ListViewItemCollection AddRange 2.0 support.
9006
9007 2006-12-15  Daniel Nauck  <dna@mono-project.de>
9008
9009         * ListViewGroup.cs: Add.
9010         * ListViewGroupCollection.cs: Add
9011         * ListView.cs: Add ListViewGroup (Group) and ShowGroups 2.0 support.
9012         * ListViewItem.cs: Add ListViewgroup (Group), ListViewGroups constructors and
9013                                 stub for ImageKey 2.0 support.
9014
9015 2006-12-14  Mike Kestner  <mkestner@novell.com>
9016
9017         * ListView.cs: add text padding to the autocalculation for columns
9018         of width -2.  Fixes #80207.
9019  
9020 2006-12-14  Mike Kestner  <mkestner@novell.com>
9021
9022         * ListView.cs: add some index guarding for partial row navigation 
9023         logic.  Fixes #80250.
9024
9025 2006-12-14  Mike Kestner  <mkestner@novell.com>
9026
9027         * ListView.cs: throw ArgumentExceptions when parented ListViewItems
9028         are added or inserted to the collection.  Fixes #81099.
9029
9030 2006-12-13  Everaldo Canuto  <everaldo@simios.org>
9031
9032         * MenuAPI.cs: Closes menu when right click out side of popup
9033         it fix problem in ContextMenu and MainMenu. Fixes #80252.
9034
9035 2006-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9036
9037         * ListViewItem.cs: Fix dumb error.
9038
9039         * ListView.cs: Add Find and ContainsKey methods in 
9040         ListViewItemCollection, and also return true for IsReadOnly
9041         and IsFixedSize (changes for 2.0). 
9042
9043 2006-12-13  Gert Driesen  <drieseng@users.sourceforge.net>
9044
9045         * Control.cs: Allow Region to be set to null.
9046
9047 2006-12-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
9048
9049         * MdiWindowManager.cs: Remove unused (commented out) code.
9050         * Form.cs: When the MdiChild is maximized, the form needs 
9051         WM_NCMOUSELEAVE, so request it.
9052         * InternalWindowManager.cs: 
9053         - Added tooltips to control buttons.
9054         - Removed duplicated control button handling code.
9055         - Removed unused (commented out) code.
9056         
9057 2006-12-12  Everaldo Canuto  <everaldo@simios.org>
9058
9059         * MenuAPI.cs: Set cursor to default in popup menus, a XplatUI.SetCursor 
9060         was used because we must set cursor without trigger ChangeCursor event
9061         and without change Cursor control property. Fixes #79963.
9062
9063 2006-12-12  Andreia Gaita  <avidigal@novell.com>
9064         
9065         * Control.cs: Check if Region setter value is null, and ignore
9066
9067 2006-12-12  Jackson Harper  <jackson@ximian.com>
9068
9069         * TextControl.cs: We were almost always drawing one more line then
9070         needed, since the GetLineByPixel will return the last line found
9071         at that pixel. In most cases though, we were invalidating up to
9072         the junction between two lines.
9073         - Improve debug code.
9074
9075 2006-12-12  Chris Toshok  <toshok@ximian.com>
9076
9077         * XplatUI.cs: add static DrawReversibleFrame, DrawReversibleLine,
9078         and FillReversibleRectangle.
9079
9080         * XplatUIDriver.cs: add abstract DrawReversibleFrame, DrawReversibleLine,
9081         and FillReversibleRectangle.
9082
9083         * XplatUIWin32.cs: add stubs which do nothing for
9084         DrawReversibleFrame, DrawReversibleLine, and
9085         FillReversibleRectangle.
9086
9087         * XplatUIOSX.cs: add stubs which raise NIE for
9088         DrawReversibleFrame, DrawReversibleLine, and
9089         FillReversibleRectangle.
9090
9091         * XplatUIX11.cs: add working implementation for
9092         DrawReversibleFrame, DrawReversibleLine, and
9093         FillReversibleRectangle.
9094         
9095         * ControlPaint.cs: implement DrawReversibleFrame,
9096         DrawReversibleLine, and FillReversibleRectangle, by calling into
9097         the appropriate XplatUI method.
9098
9099 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
9100
9101         * Form.cs: Make MdiClient have the focus even if it's
9102         not selectable, since it should receive WM_KEY* and WM_MOUSE 
9103         messages. Fixes #79907.
9104         
9105 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
9106
9107         * Hwnd.cs: Save the CreateParams.ExStyle so that it can be
9108         queried after the window is created.
9109         
9110         * XplatUIX11.cs: Added SendParentNotify to implement 
9111         WM_PARENTNOTIFY logic. Fixes #79965.
9112         
9113         * Control.cs: Added MakeParam.
9114         
9115 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
9116
9117         * MdiClient.cs: Resume Layout before setting window
9118         states (fixes #80201).
9119
9120 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
9121
9122         * MenuAPI.cs: Deselect a menu item after performing
9123         the click (fixes #80197).
9124
9125 2006-12-11  Jackson Harper  <jackson@ximian.com>
9126
9127         * TextBoxBase.cs: We need to cap this value, since Maximum -
9128         ViewPortHeight can be less than zero.
9129         - Only do selection with the left mouse button.
9130         * TextBox.cs: Don't tell the world that we have a context menu.
9131         * Control.cs: New method so that we can control whether or not the
9132         context menu is visible outside MWF.
9133
9134 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
9135
9136         * ToolBarButton.cs: Fix text positon. 
9137
9138 2006-12-11  Miguel de Icaza  <miguel@novell.com>
9139
9140         * ProgressBar.cs (MarqueeAnimationSpeed): Add stub.
9141
9142         * Control.cs (DoubleBuffered): Add implementation.
9143
9144         * Application.cs (OpenForms): Add.
9145
9146 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
9147
9148         * Form.cs: Use opacity instead of Opactiy to determine if we need
9149         to set the WS_EX_LAYERED bit.  [Fixes bug #80185]
9150
9151 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
9152
9153         * Control.cs: Fix NRE if Control.Site was set to null.
9154
9155 2006-12-11  Chris Toshok  <toshok@ximian.com>
9156
9157         * Control.cs: ControlCollection.Remove should return if the arg is
9158         null, and ControlCollection.SetChildIndex should raise a ANE.
9159
9160 2006-12-11  Gert Driesen  <drieseng@users.sourceforge.net>
9161
9162         * Control.cs: Verify value set for Dock property. Code formatting
9163         updates.
9164
9165 2006-12-11  Jackson Harper  <jackson@ximian.com>
9166
9167         * TextControl.cs: Draw the caret and the selection when a flag is
9168         set on the owner.
9169         * TextBoxBase.cs: We want to draw the caret and the selection for
9170         TextBox but not for TextBoxBase.
9171         - If the window is resized and scrolling is no longer needed (the
9172         whole doc is visible) set the scroll position to zero.
9173         - The default SelectWord (the one TextBox uses) should move the
9174         caret to the end of the word.
9175         - SelectAll moves the caret to the end of the selection.
9176         * TextBox.cs: We don't selectall on focus, we just do it when the
9177         control is created.
9178         
9179 2006-12-11  Mike Kestner  <mkestner@novell.com>
9180
9181         * ComboBox.cs: stub in a 2.0 override for ProcessKeyEventArgs.
9182
9183 2006-12-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9184
9185         * ListView.cs: Add Insert, IndexOfKey, RemoveByKey and indexer 
9186         2.0 support.
9187         * ListViewItem.cs: Add Name 2.0 property.
9188
9189 2006-12-11  Andreia Gaita  <avidigal@novell.com>
9190
9191         * TabControl.cs: Set visibility on selected or default tab 
9192         when tabcontrol handle is created, so that it's contents
9193         actually show up (duh). Fixes #80193
9194         Don't redraw the control if there is no handle created, as
9195         the selected index might be completely invalid. Added some tests
9196         to check for this.
9197
9198 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
9199
9200         * ToolBar.cs: Uses maximun width and height of all buttons as 
9201         button rectangle when ButtonSize specified, it looks strange but
9202         is what happens in Win32. Fixes #80189.
9203
9204 2006-12-11  Jackson Harper  <jackson@ximian.com>
9205
9206         * TextControl.cs: Need to track undo levels ourself, since
9207         compound actions will mess them up.
9208
9209 2006-12-10  Andreia Gaita  <avidigal@novell.com>
9210
9211         * TabControl.cs: Raise SelectedIndexChanged for 1.1 if the
9212         SelectedIndex value is changed (even if it's not valid).
9213         Reset SelectedIndex to 0 when the handle is created and if
9214         the current index is invalid.
9215         Fixes SelectdeIndex unit tests and #80128
9216
9217 2006-12-08  Chris Toshok  <toshok@ximian.com>
9218
9219         * DataGrid.cs (set_CurrentCell): because EnsureCellVisibility
9220         calls EndEdit, it needs to be called before we set current_cell to
9221         its new value.  Otherwise, we end up committing the value in the
9222         textbox to the new cell as well.  Fixes bug #80160.
9223
9224 2006-12-08  Chris Toshok  <toshok@ximian.com>
9225
9226         * Form.cs (set_CancelButton): if the button's DialogResult is
9227         None, set it to Cancel.  Fixes bug 80180.
9228
9229 2006-12-08  Jackson Harper  <jackson@ximian.com>
9230
9231         * TextBoxBase.cs: Ugh, ClientSize can be 0,0 sometimes, so we need
9232         to watch ourselves when setting the canvas size and setting the
9233         scrollbar values.
9234
9235 2006-12-08  Chris Toshok  <toshok@ximian.com>
9236
9237         * DataGrid.cs: comment out the two MakeTransparent calls for the
9238         time being so people using trunk (and not 1.2.2) on windows can
9239         actually use the datagrid.  This deals with bug #80151.
9240
9241 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
9242
9243         * ThemeWin32Classic.cs: Change ButtonBase_DrawImage to use the
9244         Graphics.DrawImage (image, int, int, int, int) overload instead
9245         of Graphics.DrawImage (image, int, int).  GDI+ can't figure out
9246         the dpi difference and was blurring images it drew.
9247         [Fixes bug #79960]
9248
9249 2006-12-08  Chris Toshok  <toshok@ximian.com>
9250
9251         * ThemeWin32Classic.cs (DataGridPaintRows): handle case where
9252         rowcnt is 0 (such as with an empty datasource), and make sure we
9253         initialize not_usedarea.Y to cells.Y, so we don't draw over the
9254         other areas (caption, parent row, etc, etc).  Fixes bug #80095.
9255
9256 2006-12-08  Chris Toshok  <toshok@ximian.com>
9257
9258         * DataGridColumnStyle.cs (SetDataGrid): don't try to access a null
9259         grid.
9260
9261 2006-12-08  Chris Toshok  <toshok@ximian.com>
9262
9263         [ Fixes bug #80167 ]
9264         
9265         * ThemeWin32Classic.cs: don't draw the image if the button's flat
9266         style is FlatStyle.System.
9267
9268         * ButtonBase, ThemeClearlooks.cs, ThemeGtk.cs, ThemeNice.cs: make
9269         ButtonBase.flat_style private, and switch uses of it to the public
9270         property.
9271         
9272 2006-12-08  Chris Toshok  <toshok@ximian.com>
9273
9274         [ Fixes bug #80121 ]
9275         
9276         * ThemeWin32Classic.cs: center the caption text in the datagrid
9277         when we draw it.
9278
9279         * DataGrid.cs: lessen the amount we add to the caption height from
9280         6 to 2.  6 was making it huge.
9281
9282 2006-12-08  Andreia Gaita  <avidigal@novell.com>
9283
9284         * UpDownBase: Handle MouseWheel call directly instead of capturing
9285         the inner textbox's OnMouseWheel. Fixes #80166
9286
9287 2006-12-08  Jackson Harper  <jackson@ximian.com>
9288
9289         * TextControl.cs: We need to invalidate the textbox when we empty
9290         it (how had this not been discovered before?)
9291
9292 2006-12-08  Jackson Harper  <jackson@ximian.com>
9293
9294         * TextBoxBase.cs: Reworked the mouse down code so I could get it
9295         to behave like MS, we now ignore the eventargs.Click and just
9296         track state ourself, which we were already doing anyways.
9297         - Constrain the double click handler to the double click size.
9298         
9299 2006-12-08  Chris Toshok  <toshok@ximian.com>
9300
9301         * DataGrid.cs: the mousewheel code shouldn't try to scroll in a
9302         direction if that scrollbar isn't shown.  fixes bug #80158.
9303
9304 2006-12-08  Andreia Gaita  <avidigal@novell.com>
9305
9306         * NumericUpDown.cs: Update value on getter. Fixes #79950
9307
9308 2006-12-08  Chris Toshok  <toshok@ximian.com>
9309
9310         * MenuItem.cs: add back in the event cloning code.  I didn't know
9311         how to do it in the face of the EventHandlerList work i'd done
9312         last week.  Fixes bug #80183.
9313
9314 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
9315
9316         * Control.cs: Add an invalidate to the BackgroundImage setter.
9317         [Fixes 80184]
9318
9319 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
9320
9321         * ToolStrip*: Add some small properties reported by MoMA, fix event
9322         firing and default properties based off of unit tests, and add some
9323         attributes based off of the class status page.
9324
9325 2006-12-07  Jackson Harper  <jackson@ximian.com>
9326
9327         * TextBoxBase.cs: Take HideSelection into account when determining
9328         whether or not to show the selection.
9329         * RichTextBox.cs: After inserting the RTF into the document move
9330         the cursor to the beginning of the document.
9331
9332 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
9333
9334         * Control.cs: Remove static ArrayList "controls" which maintained
9335         a reference to every control created.
9336         * Application.cs: Create a static FormCollection to maintain a reference
9337         to every form created.  Use it in places that formerly enumerated through
9338         the controls one looking for forms.
9339         * Form.cs: Add and remove self from above FormCollection.
9340
9341 2006-12-07  Alexander Olk  <alex.olk@googlemail.com>
9342
9343         * MimeIcon.cs: gdk_pixbuf_save_to_buffer is part of libgdk-pixbuf,
9344           not libgdk (though it makes me wonder why I didn't have any
9345           problems)
9346
9347 2006-12-07  Chris Toshok  <toshok@ximian.com>
9348
9349         [ you had to know this was coming after that last commit...]
9350         
9351         * XplatUIX11.cs: implement the 3 Offscreen functions in terms of
9352         XPixmaps (CreateOffscreenDrawable maps to XCreatePixmap,
9353         DestroyOffscreenDrawable to FreePixmap, and BlitFromOffscreen to
9354         XCopyArea).
9355
9356 2006-12-07  Chris Toshok  <toshok@ximian.com>
9357
9358         * XplatUI.cs: add 3 calls (CreateOffscreenDrawable,
9359         DestroyOffscreenDrawable, and BlitFromOffscreen) that encompass
9360         all the behavior we need for double buffering.
9361
9362         * XplatUIDriver.cs: implement the 3 double buffer methods using a
9363         client side Bitmap, just like the old Control-based double buffer
9364         code did.  The methods are virtual, so each XplatUI driver
9365         subclass can replace the implementation to use a faster, platform
9366         specific approach.
9367
9368         * Control.cs: make use of the 3 Offscreen XplatUI calls in the
9369         double buffer code, and clean things up a bit in the process.
9370
9371 2006-12-06  Chris Toshok  <toshok@ximian.com>
9372
9373         * Control.cs: reindent WndProc.
9374
9375 2006-12-06  Chris Toshok  <toshok@ximian.com>
9376
9377         [ I wanna be like BenM when I grow up ]
9378         
9379         * Hwnd.cs: create a single static Graphics object on the static
9380         Bitmap we create.  use this for our text measurements.
9381
9382         * Control.cs (DeviceContext): stop using the backbuffer's dc_mem.
9383         This was causing us to allocate a backbuffer for every control,
9384         even when it wasn't flagged as double buffered.  Instead use the
9385         single graphics instance.  This might have implications for
9386         multithreaded applications.  If we run into problems we can switch
9387         to creating 1 Graphics per control, on the static Hwnd bitmap.
9388
9389         this change nets us a 7M savings in private dirty mappings when
9390         running FormsTest.exe.
9391
9392 2006-12-06  Chris Toshok  <toshok@ximian.com>
9393
9394         * ListView.cs: the BackgroundImage override is just to set
9395         attributes.  chain up to base.BackgroundImage.
9396
9397         * RichTextBox.cs: same.
9398
9399         * ToolBar.cs: same, but we need to also redraw the toolbar when it
9400         changes, so instead a handler for BackgroundImageChanged.
9401         
9402         * Control.cs: make background_image private.
9403
9404 2006-12-06  Chris Toshok  <toshok@ximian.com>
9405
9406         * ScrollBar.cs: change the assignment of cursor to Cursor.  not
9407         sure we even need this assignment, but roll with it for now.
9408
9409         * Control.cs: make the cursor field private.
9410
9411 2006-12-06  Chris Toshok  <toshok@ximian.com>
9412
9413         * Form.cs: we don't need to explicitly set ImeMode to
9414         ImeMode.NoControl - that's a natural fallout of Control.ImeMode's
9415         behavior in the face of ImeMode.Inherit.
9416
9417         * ButtonBase.cs: change DefaultImeMode to ImeMode.Disable, and
9418         change the ctor's assignment to use ImeMode instead of ime_mode.
9419
9420         * Control.cs (get_ImeMode): don't assume DefaultImeMode ==
9421         ImeModeInherit.  Only check for the parent's imemode (and return
9422         NoControl if there is no parent) if ime_Mode == ImeMode.Inherit.
9423         This fixes the button unit test, which sets both ImeMode and
9424         DefaultImeMode to ImeMode.Disable.
9425
9426         also make the ime_mode field private.
9427
9428 2006-12-06  Chris Toshok  <toshok@ximian.com>
9429
9430         * Control.cs: make control_style private.
9431
9432         * TextBoxBase.cs: fix the HandleClick override.  it was explicitly
9433         setting the styles to true, then setting them to false instead of
9434         reverting to their previous values.
9435
9436         also, call SetStyle on the scrollbars instead of using
9437         control_style directly.
9438
9439 2006-12-06  Jonathan Pobst  <monkey@jpobst.com>
9440
9441         * FormCollection.cs: Implement. [2.0]
9442
9443 2006-12-06  Chris Toshok  <toshok@ximian.com>
9444
9445         * Control.cs: make tab_stop private.
9446
9447         * Label.cs: set TabStop, not tab_stop.  reformat some event
9448         add/remove methods to make them more compact.
9449
9450 2006-12-06  Chris Toshok  <toshok@ximian.com>
9451
9452         * RadioButton.cs: fix TabStop handling.
9453
9454 2006-12-06  Chris Toshok  <toshok@ximian.com>
9455
9456         * TextBox.cs: remove the explicit assignments to has_focus.
9457         Control does that.
9458
9459         * ButtonBase.cs: remove the assignment to has_focus.  Control will
9460         manage that.
9461         
9462 2006-12-06  Chris Toshok  <toshok@ximian.com>
9463
9464         * ButtonBase.cs: remove all uses of is_enabled from this code.
9465         it's always true when any of the code containing the checks is
9466         executed.
9467
9468 2006-12-06  Chris Toshok  <toshok@ximian.com>
9469
9470         * ImageList.cs: reinstate the ShouldSerialize*/Reset* methods,
9471         with different semantics (some are present in both 1.1 and 2.0
9472         profiles) so that we match MS's behavior in our unit tests.
9473
9474 2006-12-06  Jackson Harper  <jackson@ximian.com>
9475
9476         * TextControl.cs: Make this operation undoable.
9477         * TextBoxBase.cs: Factor the border width into the preferred
9478         height.
9479         - implement Modified as per the spec.
9480
9481 2006-12-06  Chris Toshok  <toshok@ximian.com>
9482
9483         * Timer.cs, Control.cs, Menu.cs: make control_tag private.
9484
9485 2006-12-06  Chris Toshok  <toshok@ximian.com>
9486
9487         * Control.cs: make right_to_left and context_menu fields private.
9488
9489 2006-12-06  Chris Toshok  <toshok@ximian.com>
9490
9491         * AccessibleObject.cs, Control.cs, XplatUIX11GTK.cs,
9492         XplatUIX11.cs, Form.cs, RadioButton.cs, ScrollableControl.cs: make
9493         Control.child_controls private.  switch all uses over to
9494         Control.Controls.
9495
9496 2006-12-06  Chris Toshok  <toshok@ximian.com>
9497
9498         * System.Windows.Forms/GroupBox.cs,
9499         System.Windows.Forms/AccessibleObject.cs,
9500         System.Windows.Forms/ErrorProvider.cs,
9501         System.Windows.Forms/Control.cs,
9502         System.Windows.Forms/UpDownBase.cs,
9503         System.Windows.Forms/ScrollBar.cs,
9504         System.Windows.Forms/DateTimePicker.cs,
9505         System.Windows.Forms/Form.cs, System.Windows.Forms/Label.cs,
9506         System.Windows.Forms/ToolTip.cs,
9507         System.Windows.Forms/RadioButton.cs,
9508         System.Windows.Forms/LinkLabel.cs,
9509         System.Windows.Forms/Splitter.cs,
9510         System.Windows.Forms/TextBoxBase.cs,
9511         System.Windows.Forms/ToolStripTextBox.cs,
9512         System.Windows.Forms/ContainerControl.cs,
9513         System.Windows.Forms/ThemeWin32Classic.cs,
9514         System.Windows.Forms/SizeGrip.cs,
9515         System.Windows.Forms/ToolStripDropDown.cs,
9516         System.Windows.Forms/ScrollableControl.cs: Make Control.parent
9517         private.  switch all uses over to Control.Parent.
9518
9519 2006-12-06  Chris Toshok  <toshok@ximian.com>
9520
9521         * RichTextBox.cs: don't assign to has_focus in GotFocus/LostFocus.
9522         Control does this before calling emitting these events.
9523
9524         * TabControl.cs: same.
9525
9526         * ThemeWin32Classic.cs: use Control.ClientRectangle instead of
9527         Control.client_rect.
9528
9529         * ButtonBase.cs: use the ClientSize property instead of the
9530         client_size field.
9531
9532         * ScrollableControl.cs: same.
9533
9534         * Control.cs: another pass at making properties private.  also,
9535         move the initialization of tab_stop to the ctor.
9536
9537 2006-12-05  Andreia Gaita <avidigal@novell.com>
9538
9539         * TabControl.cs: Let the selected index be set freely if the 
9540         control handle is not yet created.
9541
9542 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
9543
9544         * Control.cs: Revert dist_top, dist_right, and dist_bottom to 
9545         internal until I can rewrite DefaultLayout.
9546         * ToolStrip.cs: Fix build error and some general cleaning.
9547         * ToolStripControlHost.cs, SplitterPanel.cs, DataGridView.cs:
9548         Fix build errors caused by making some of Control's fields private.
9549
9550 2006-12-05  Jackson Harper  <jackson@ximian.com>
9551
9552         * TextControl.cs: Redo Insert a little so that it use IndexOf
9553         instead of Split, this prevents it from messing up on things like
9554         \n\n\n. Also more effecient since the split array doesn't need to
9555         be created.
9556         * TextBoxBase.cs: AppendText doesnt handle multiline and non
9557         multiline text differently, this is the first of many fixes that
9558         will make multiline/non-multiline the same thing as far as the
9559         TextBoxBase is concerned.
9560         - Don't split the text and insert lines, this can lose some line
9561         endings (like is the last line a soft or hard break). Instead use
9562         the new Insert.
9563         - Fix an off by one when combining all the lines in the Text
9564         getter.
9565         - Remove separate multiline handling from the Text getter/setter.
9566
9567 2006-12-05  Chris Toshok  <toshok@ximian.com>
9568
9569         * ButtonBase.cs: a few changes:
9570
9571         - don't reinitialize internal Control fields in the ctor when they
9572         have the same values as Control sets them.
9573
9574         - don't set has_focus in OnGotFocus/OnLostFocus.  Control does
9575         this before calling those methods.
9576
9577         - we don't need to call Refresh for anything.  use Invalidate
9578         instead.
9579
9580         - OnEnabledChanged doesn't need to redraw at all - Control.cs
9581         calls Refresh in its OnEnabledChanged.
9582         
9583         - several of the events we were registered for in the ctor to
9584         redraw ourselves already include calls to Invalidate in the
9585         property setters that raise the events.  remove the extra
9586         invalidation.
9587
9588         - reformat a switch statement that was 83274658 columns wide.
9589         
9590 2006-12-05  Mike Kestner  <mkestner@novell.com>
9591
9592         * ComboBox.cs: fix a unit test regression from a TextBox
9593         SelectionLength return of -1 when there's no selection.  
9594
9595 2006-12-05  Chris Toshok  <toshok@ximian.com>
9596
9597         * Control.cs, Button.cs, ThemeGtk.cs, Form.cs, ListView.cs,
9598         ThemeWin32Classic.cs, SizeGrip.cs, ToolBar.cs: first pass at
9599         cleaning up some of the internal Control fields being used by
9600         subclasses.
9601
9602 2006-12-05  Mike Kestner  <mkestner@novell.com>
9603
9604         * ComboBox.cs: fix some Simple mode regressions.  Set Visible on the
9605         listbox after AddImplicit calls since it defaults to hidden. Add a 
9606         hack to preserve requested heights across DropDownStyle changes.
9607
9608 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
9609
9610         * PropertyGrid.cs: Hide FindFirstItem method from public API.
9611
9612 2006-12-05  Chris Toshok  <toshok@ximian.com>
9613
9614         * DataGridView.cs: fix compiler warnings.
9615
9616         * PrintControllerWithStatusDialog.cs: same.
9617
9618         * ToolBar.cs: same.
9619
9620         * FolderBrowserDialog.cs: same.
9621
9622         * Splitter.cs: same.
9623
9624         * DataGridViewComboBoxCell.cs: same.
9625
9626         * XplatUIWin32.cs: same.
9627
9628         * PictureBox.cs: same.
9629
9630         * Win32DnD.cs: same.
9631
9632         * PageSetupDialog.cs: same.
9633
9634         * FileDialog.cs: same.
9635
9636         * PrintDialog.cs: same.
9637
9638         * DataGridTextBoxColumn.cs: same.
9639
9640         * DrawTreeNodeEventArgs.cs: same (and fix corcompare)
9641
9642 2006-12-05  Chris Toshok  <toshok@ximian.com>
9643
9644         * TextBox.cs, CheckedListBox.cs, MonthCalendar.cs, Menu.cs,
9645         MainMenu.cs, ListView.cs, LabelEditTextBox.cs, ToolBar.cs: more
9646         System.ComponentModel.EventHandlerList work.
9647
9648 2006-12-05  Jonathan Chambers  <joncham@gmail.com>
9649
9650         * DrawTreeNodeEventArgs.cs: Added.
9651
9652 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
9653         
9654         * InternalWindowManager.cs: Remove an unused field.
9655         
9656 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
9657
9658         * InternalWindowManager.cs:
9659         - Save the point where the title bar is clicked.
9660         
9661         * MdiWindowManager.cs:
9662         - Only allow moving of the window as long as the 
9663         clicked point on the title bar does not get out of
9664         MdiClient's rectangle. Fixes #79982.
9665         
9666         * MdiClient.cs:
9667         - Added Horizontal/VerticalScrollbarVisible.
9668         - Simplified the scrollbar sizing algorithm.
9669         - Cache the difference in scrolled value in
9670         H/VBarValueChanged and move the calculation out
9671         of the for loop.
9672
9673 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
9674
9675         * Control.cs: Make the Console.WriteLine in WndProc 
9676         write more info.
9677
9678 2006-12-05  Chris Toshok  <toshok@ximian.com>
9679
9680         * ToolStripManager.cs, ToolStripButton.cs,
9681         ToolStripContentPanel.cs, ToolStripComboBox.cs, ToolStrip.cs,
9682         ToolStripMenuItem.cs, ToolStripItem.cs, ToolStripControlHost.cs,
9683         ToolStripSplitButton.cs, ToolStripSeparator.cs,
9684         ToolStripRenderer.cs, ToolStripDropDownItem.cs,
9685         ToolStripProgressBar.cs, ToolStripContainer.cs,
9686         ToolStripTextBox.cs, ToolStripPanel.cs, ToolStripDropDown.cs: move
9687         to using System.ComponentModel.EventHandlerList.
9688
9689 2006-12-04  Chris Toshok  <toshok@ximian.com>
9690
9691         * LinkLabel.cs: fix up compiler warnings.
9692
9693         * TableLayoutSettings.cs: same.
9694
9695         * TreeView.cs: same.
9696
9697         * ToolBar.cs: same.
9698
9699         * TabControl.cs: same.
9700
9701         * RichTextBox.cs: same.
9702
9703         * ListViewItem.cs: same.
9704
9705         * PropertyGrid.cs: same.
9706
9707         * DataGridViewRowPostPaintEventArgs.cs: corcompare fix.
9708
9709         * ToolTip.cs same.
9710
9711         * TextRenderer.cs: fix up compiler warnings.
9712
9713         * Label.cs: same.
9714
9715         * Form.cs: corcompare fixes.
9716
9717         * PictureBox.cs: fix up compiler warnings.
9718
9719         * ImageListStreamer.cs: same.
9720
9721         * TrackBar.cs: corcompare fix.
9722
9723         * Control.cs: fix up compiler warnings.
9724
9725         * SplitterPanel.cs: same.
9726
9727         * NumericTextBox.cs: same.
9728
9729         * ImageList.cs: same.
9730
9731         * StatusStrip.cs: same.
9732
9733         * ProgressBar.cs: corcompare fix.
9734
9735         * ToolStripButton.cs: fix up compiler warnings.
9736
9737         * ToolStripStatusLabel.cs: same.
9738
9739         * ToolStripSplitButton.cs: same.
9740
9741         * ToolStripSeparator.cs: same.
9742
9743         * ToolStripProgressBar.cs: same.
9744
9745         * ToolStripDropDownMenu.cs: same
9746
9747         * ToolStripDropDown.cs: same.
9748
9749         * ToolStripDropDownButton.cs: same.
9750
9751         * ToolStrip.cs: same.
9752
9753         * ToolStripControlHost.cs: same.
9754
9755         * ToolStripContentPanel.cs: same.
9756
9757         * ToolStripDropDown.cs: same.
9758
9759         * ToolStripContainer.cs: same.
9760
9761         * ToolStripPanel.cs: same, and add "new" where we need it to work
9762         with the new ArrangedElementCollection.
9763
9764         * ToolStripItemCollection.cs: add "new" where we need it to work
9765         with the new ArrangedElementCollection.
9766
9767 2006-12-04  Andreia Gaita <avidigal@novell.com>
9768
9769         * TabControl.cs: Fix default tab selection to after TabControl
9770         gets focus and not before. Fixes #80128
9771
9772 2006-12-04  Chris Toshok  <toshok@ximian.com>
9773
9774         * DataGridTableStyle.cs: remove the gross calling of
9775         datagrid.Refresh from here.  It's a broken idea and it doesn't
9776         work anyway.
9777
9778         * DataGrid.cs: instead, just register/unregister from the
9779         DataGridTableStyle events in CurrentTableStyle.  we play it
9780         conservatively and EndEdit + CalcAreasAndInvalidate on any event,
9781         even though some would most likely not require it.  Fixes bug
9782         #80115 (and one portion of #80117 as a side effect).
9783
9784 2006-12-04  Chris Toshok  <toshok@ximian.com>
9785
9786         * DataGrid.cs (set_CaptionVisible): EndEdit before doing the work
9787         so the textbox (if any) goes away.  Fixes bug #80117.
9788
9789 2006-12-04  Chris Toshok  <toshok@ximian.com>
9790
9791         * DataGridColumnStyle.cs: set the column's readonly property
9792         initially based on the property descriptor's IsReadOnly.  Fixes
9793         bug #80044.
9794
9795 2006-12-04  Chris Toshok  <toshok@ximian.com>
9796
9797         * ComboBox.cs: wrap the dropdown style changing work in
9798         SuspendLayout/ResumeLayout.  Fixes bug #79968.
9799
9800 2006-12-04  Jackson Harper  <jackson@ximian.com>
9801
9802         * TextBoxBase.cs: Fix off by one, since these are one-based.
9803         * TextBox.cs: Select all the text when we get focus.  The TextBox
9804         does this but the RTB does not.
9805
9806 2006-12-04  Chris Toshok  <toshok@ximian.com>
9807
9808         * DataGridTextBoxColumn.cs: remove some spew.
9809
9810         * DataGridColumnStyle.cs (SetColumnValueAtRow): this seems right
9811         but some part of me is saying "it shouldn't be here.."  At any
9812         rate, it fixes bug #80046.  Call IEditableObject.EndEdit after
9813         setting the value.
9814
9815 2006-12-04  Chris Toshok  <toshok@ximian.com>
9816
9817         * DataGridColumnStyle.cs (SetDataGrid): call CheckValidDataSource
9818         to reassign the propertydescriptor.
9819
9820 2006-12-04  Jackson Harper  <jackson@ximian.com>
9821
9822         * TextBoxBase.cs:
9823         * TextControl.cs: Remove some unused variables.  Maybe this will
9824         patch things up between mike and I.
9825         - don't split lines less then one char wide, if the viewport is
9826         that small text won't be visible anyways.
9827         
9828 2006-12-04  Jackson Harper  <jackson@ximian.com>
9829
9830         * TextBoxBase.cs: Default selection length is -1, need to do some
9831         more testing on windows to see when this is used for the property.
9832         - Redid the Lines [] property to that we properly remove soft line
9833         breaks
9834         - added support for preserving carriage returns
9835         -  CanUndo is not a variable like 'is undo enabled' it just returns
9836         true if there is undo operations available.
9837         - AppendText doesn't need to grab the last tag itself anymore,
9838         this happens automatically when we move the cursor.
9839         * TextControl.cs: Add CompoundActions to the undo class. This
9840         allows combining the other operations into one big option.  ie a
9841         paste will combine { delete old, insert new, move cursor }
9842         - Add InsertString undo operation
9843         - New method for deleting multiline text
9844         - Add carriage returns to lines. So we can preserve carriage
9845         returns when text is 'roundtripped'
9846
9847 2006-12-04  Chris Toshok  <toshok@ximian.com>
9848
9849         * DataGrid.cs (CalcCellsArea): cells_area.Width/Height are at a
9850         minimum 0.  Fixes the scrollbar exception in bug #80136.
9851
9852 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
9853
9854         * MdiClient.cs: 
9855         * MdiWindowManager: Removed unused fields and methods.
9856         
9857 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
9858         
9859         * StatusBar.cs: Update all panels when a AutoSize=Contents
9860         panel needs updating.
9861         
9862         * StatusBarPanel.cs: Remove twidth and only use initialize.
9863         Fixes #80031.
9864                 
9865 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
9866
9867         * Form.cs: When a form's MdiParent is set add it directly
9868         on top of the z-order in stead of relying on MdiClient's
9869         ActivateChild to do it. Fixes #80135.
9870         
9871         * MdiClient.cs: 
9872         - Remove original_order, mdi_child_list is already doing
9873         the same thing.
9874         - Create mdi_child_list on construction in
9875         stead of first use (avoids a few null checks).
9876
9877         * MenuItem.cs: Use an already existing list of mdi children
9878         to get the correct order of children and remove the other
9879         redundant list.
9880
9881 2006-12-04  Chris Toshok  <toshok@ximian.com>
9882
9883         * PropertyGridView.cs: cached_splitter_location is only used in
9884         !DOUBLEBUFFER code.
9885
9886         * PropertyGrid.cs: implement the ComComponentNameChanged event
9887         using Events, hoping that would fix the warning.  Looks like a
9888         compiler bug instead (#80144).
9889
9890         * PropertyManager.cs: remove unused method.
9891
9892 2006-11-04  Everaldo Canuto  <everaldo@simios.org>
9893
9894         * ThemeWin32Classic.cs: Dont draw arrow when menuitem on menubar, 
9895         include parentesis to fix expression evaluation. Fixes #79634.
9896
9897 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
9898         
9899         * MenuAPI.cs:
9900         - Changes to fix behavior in Menu control, some reported in #80097
9901         and other detected during behavior refactory like a select event
9902         problems.
9903         - Remove unneded "if's" conditions.
9904         - Created an internal to flag when popup is active in control, we need 
9905         it because in .NET you can have menu active but without popup active
9906         when you active menu using popup without visible items.
9907         - Mimic win32 behavior for Select and Popup events.  
9908         - Dont open popup menu when you dont have visible subitems.
9909         - Do nothing when click on disabled menu item.
9910         - Some small changes to follow the coding style guidelines.
9911         - Unselect menu only when another control gives focus. Fixes #80097.
9912         - Remove unused code.
9913         
9914         * MenuItem.cs: internal VisibleItems method to check if menu
9915         theres visible subitems, it will be usefull to fix some 
9916         behavior in Menu control.
9917         
9918 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
9919         
9920         * Timer.cs: Tag property for 2.0 profile.
9921         
9922 2006-12-01  Chris Toshok  <toshok@ximian.com>
9923
9924         [ after removing all warning suppressions, this cleans up over 100 warnings. ]
9925         
9926         * Win32DnD.cs: comment out some unused fields.
9927
9928         * XplatUIWin32.cs: comment out some unused pinvokes, and remove
9929         some unused properties/methods.
9930
9931         * XplatUIX11.cs: fix MousePosition so we override the base class's
9932         property instead of conflicting with it.
9933
9934         * PictureBox.cs: comment out some unused fields
9935
9936         * OSXStructs.cs: make some struct fields public.
9937
9938         * XplatUIOSX.cs: comment out some unused pinvokes, and fix
9939         MousePosition so we override the base class's property instead of
9940         conflicting with it.
9941
9942         * X11Dnd.cs: comment out some unused fields
9943
9944         * X11DesktopColors.cs: fix some struct field visibility to quiet
9945         the compiler.
9946
9947         * X11Dnd.cs: remove some debug code.
9948
9949         * ThemeClearlooks.cs: comment out unused field.
9950
9951         * ThemeNice.cs: mark some methods as overriding ThemeWin32Classic as needed.
9952
9953         * ThemeGtk.cs: comment out some unused pinvokes.
9954
9955         * Timer.cs: remove some unused fields.
9956
9957         * ThemeClearlooks.cs: comment out unused field.
9958
9959         * UpDownBase.cs: comment out unused field.
9960
9961         * DataObject.cs: comment out unused field.
9962
9963         * DataGridBoolColumn.cs: reomve unused field.
9964
9965         * DataGrid.cs: remove unused field.
9966
9967         * Cursor.cs: remove old ToBitmap code.
9968
9969         * ControlPaint.cs: remove unused method.
9970
9971         * ScrollBar.cs: remove unused fields.
9972
9973         * ComboBox.cs: remove unused field, and chain up to
9974         AccessibleObject ctor.
9975
9976         * ListBox.cs: remove unused field.
9977
9978         * ButtonBase.cs: wrap a couple fields in NET_2_0.
9979
9980         * GridEntry.cs: remove unused fields.
9981
9982         * Binding.cs: remove unused fields.
9983
9984         * AxHost.cs: remove unused method.
9985
9986         * ContainerControl.cs: remove unused field.
9987
9988         * ScrollableControl.cs: remove unused fields.
9989
9990 2006-12-01  Chris Toshok  <toshok@ximian.com>
9991
9992         * XplatUI.cs, XplatUIWin32.cs, XplatUIGTK.cs: nuke
9993         the Where/WhereString stuff.  it's easy enough to CWL
9994         Environment.StackTrace.
9995
9996         * XplatUIX11.cs: same, but also fix up a lot of mcs warnings about
9997         unused private fields.
9998
9999 2006-12-01  Jackson Harper  <jackson@ximian.com>
10000
10001         * TextControl.cs: Do not update the view while inserting multiline
10002         text. If we update the view we might wrap lines, before entering
10003         the new lines, which causes the new line insertion calculations to
10004         be totally fubared.
10005         - Remove an old TODO
10006         - Make debug output a little nicer
10007         
10008 2006-12-01  Chris Toshok  <toshok@ximian.com>
10009
10010         * ToolBar.cs: revert the ImeMode fix here and add an XXX comment.
10011
10012 2006-12-01  Chris Toshok  <toshok@ximian.com>
10013
10014         [ fix the majority of the CS0108 warnings we've been suppressing ]
10015         
10016         * TreeView.cs: mark BackgroundImageChanged as 'new'.
10017
10018         * ToolBar.cs: ImeMode just passes stuff to Control.  Rename Layout
10019         to "LayoutToolBar" to quiet mcs.
10020         
10021         * TabControl.cs: mark our ControlCollection class as 'new'.
10022
10023         * TextBoxBase.cs: mark some events as 'new'.
10024
10025         * Splitter.cs: TabStop is 'new'.
10026
10027         * ControlBindingsCollection.cs: mark a few methods as new since
10028         they change the visibility from protected to public.
10029
10030         * RadioButton.cs: DoubleClick -> base class, and remove unused
10031         HaveDoubleClick.
10032
10033         * MonthCalendar.cs: ImeMode property -> base class, and mark many
10034         events as new.
10035
10036         * NumericUpDown.cs: TextChanged -> base class.
10037
10038         * CheckedListBox.cs: mark our ObjectCollection class as new to
10039         quiet mcs.
10040
10041         * FolderBrowserDialog.cs: make HelpRequest event new and have it
10042         muck with the base class.
10043
10044         * StatusBar.cs: fix some mcs warnings about Update being the same
10045         name as a base class method.
10046
10047         * RichTextBox.cs: mark some events as new, and make them do things
10048         to the base class impl.
10049
10050         * UserControl.cs: mark TextChanged as new, and have it manipulate
10051         base.TextChanged.
10052
10053         * UpDownBase.cs: mark some things new.
10054
10055         * CheckBox.cs: mark DoubleClick "new", and add some text about
10056         what we need to look at.
10057
10058         * Panel.cs: make the events "new", and manipulate the base
10059         version.  these are just here for attributes.
10060
10061         * AccessibleObject.cs: make owner private.
10062
10063         * Control.cs: deal with AccessibleObject.owner being private.
10064         cache our own copy if we need it.
10065
10066         * Button.cs: add "new" to the DoubleClickEvent.
10067
10068         * ListBox.cs: no need to track our own has_focus here.  let
10069         Control.has_focus do it for us.  Also some other work to clear up
10070         warnings about not overriding base class methods of the same name.
10071         
10072         * ComboBox.cs: clear up some warnings about not override base
10073         class methods of the same name.
10074
10075 2006-12-01  Chris Toshok  <toshok@ximian.com>
10076
10077         * Form.cs: flag a few things as "new" to quiet some of the mcs
10078         warnings.
10079
10080         * AxHost.cs: same.
10081
10082         * PrintPreviewDialog.cs: same.
10083
10084         * DataGridView.cs: fix a ton of corcompare warnings.  not all, but
10085         now DGV isn't so horrible on the class status page.  also, move
10086         all events to using System.ComponentModel.EventHandlerList.  my
10087         wrists hurt.
10088
10089 2006-12-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
10090
10091         * MdiWindowManager.cs:
10092         - Set form to active mdi child if shown,
10093         and update the active mdi child to the next 
10094         remaining child in the z-order if the form is hidden.
10095
10096         * Form.cs: 
10097         - Track if the form has been visible and if its 
10098         visibility is beeing changed, so that the MdiClient
10099         can properly decide the ActiveMdiChild. The MdiClient 
10100         cannot track this since the form can change visibility 
10101         before MdiClient is created.
10102
10103         * MdiClient.cs:
10104         - Don't activate anything of the parent form is changing
10105         its visibility.
10106         - Rework ActiveMdiChild to only return visible mdi 
10107         children and take into account several other corner 
10108         cases.
10109
10110 2006-12-01  Chris Toshok  <toshok@ximian.com>
10111
10112         * IBindableComponent.cs: new 2.0 interface.
10113
10114 2006-12-01  Gert Driesen  <drieseng@users.sourceforge.net>
10115
10116         * DataGrid.cs: Font for caption area is bold by default.
10117
10118 2006-12-01  Everaldo Canuto  <everaldo@simios.org>
10119
10120         * Menu.cs: Tag property for 2.0.
10121         
10122 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
10123
10124         * ThemeWin32Classic.cs: Adjust menu separator drawing. 
10125         
10126 2006-12-01  Chris Toshok  <toshok@ximian.com>
10127
10128         * TreeView.cs: doh, the Begin* events should be
10129         TreeViewCancelEventHandler.
10130
10131 2006-12-01  Chris Toshok  <toshok@ximian.com>
10132
10133         * Form.cs: Form.ControlCollection already stores off the
10134         form_owner field.  don't access the base class's internal "owner"
10135         field.
10136
10137         * Control.cs: make all the fields in Control.ControlCollection
10138         private.  there's no need for any internal fields here.
10139
10140 2006-12-01  Chris Toshok  <toshok@ximian.com>
10141
10142         * DataGrid.cs: call SetDataSource instead of CalcGridAreas in
10143         OnHandleCreated.  Fixes bug #80109.
10144
10145 2006-12-01  Chris Toshok  <toshok@ximian.com>
10146
10147         * Button.cs, PropertyGridTextBox.cs, ComboBox.cs,
10148         SplitContainer.cs, Control.cs, StatusStrip.cs,
10149         DataGridTableStyle.cs, MenuItem.cs, DomainUpDown.cs, ImageList.cs,
10150         NumericTextBox.cs, NumericUpDown.cs, Panel.cs, CommonDialog.cs,
10151         DataGrid.cs, ScrollBar.cs, TrackBar.cs, PictureBox.cs,
10152         DateTimePicker.cs, StatusBar.cs, Form.cs, PrintPreviewDialog.cs,
10153         Label.cs, UserControl.cs, CheckBox.cs, RadioButton.cs,
10154         LinkLabel.cs, ListControl.cs, PropertyGrid.cs, Splitter.cs,
10155         MenuStrip.cs, FolderBrowserDialog.cs, NotifyIcon.cs,
10156         TextBoxBase.cs, ListView.cs, DataGridBoolColumn.cs,
10157         PrintPreviewControl.cs, RichTextBox.cs, ListBox.cs, TabControl.cs,
10158         DataGridColumnStyle.cs, ContextMenu.cs, TreeView.cs:
10159
10160         do most of the work to convert our code over to use
10161         System.ComponentModel.Component.Events for
10162         adding/removing/dispatching events.
10163
10164
10165 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
10166
10167         * DataGridView.cs: Fix an ArgumentNullException reported 
10168         twice today in IRC.
10169
10170 2006-11-30  Mike Kestner  <mkestner@novell.com>
10171
10172         * ComboBox.cs: fix the scrollbar mouse event forwarding in the 
10173         grabbed listbox.  Fixes #80036 and #80101.
10174
10175 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
10176
10177         * Message.cs: Changed ToString() to match MS.
10178         
10179 2006-11-30  Jackson Harper  <jackson@ximian.com>
10180
10181         * TextBoxBase.cs: You can still change the selected text on a read
10182         only textbox.
10183         * TextControl.cs: Lower magic number for wrap calculations. This
10184         lets text get closer to the right (far) edge.
10185
10186 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
10187
10188         * Control.cs: Tweak 2.0 layout properties.
10189         * Form.cs: Switch ToolStripMenuTracker hooks to ToolStripManager.
10190         * TextRenderer.cs: Add a new overload.
10191         * ToolStrip*: Huge amount of changes and new features.
10192
10193 2006-11-30  Mike Kestner  <mkestner@novell.com>
10194
10195         * ComboBox.cs: fixes for LargeChange and Maximum to get the 
10196         scroll range correct.  Fixes #79994.
10197
10198 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
10199
10200         * MdiWindowManager.cs: Update main form's text when
10201         a form is closed. (fixes #80038)
10202         
10203 2006-11-30  Everaldo Canuto  <everaldo@simios.org>
10204
10205         * ToolBar.cs:
10206         - Fix an regression in ButtonSize.
10207         - Get ImeMode default value change to "Disable".
10208         - Get ShowTooltips default value change to true, default value is 
10209         "false" but after make a test in .NET we get "true" result as default.
10210         
10211 2006-11-29  Jonathan Pobst  <monkey@jpobst.com>
10212
10213         * ToolStripDropDown.cs: Fix for SupportsTransparency change.
10214
10215 2006-11-29  Chris Toshok  <toshok@ximian.com>
10216
10217         * XplatUIWin32.cs (GetWindowTransparency): check return value of
10218         GetLayeredWindowAttributes.  if it's 0, return 1.0, as
10219         SetWindowTransparency hasn't been called.
10220
10221 2006-11-29  Chris Toshok  <toshok@ximian.com>
10222
10223         * Form.cs (set_TransparencyKey): only call SetWindowTransparency
10224         if it's supported.
10225         (set_AllowTransparency): reorder things a little so that the
10226         WS_EX_LAYERED style is removed properly.
10227
10228 2006-11-29  Chris Toshok  <toshok@ximian.com>
10229
10230         [ totally cosmetic eye-candy feature, fixes bug #80089 ]
10231         
10232         * Form.cs: only call the XplatUI transparency method (get/set) if
10233         SupportsTransparency says it's supported. Otherwise fallback to
10234         doing nothing (in the set case) or returning the instance field we
10235         cache (in the get case).
10236
10237         * XplatUIStructs.cs: add TransparencySupport flag enum.
10238         
10239         * XplatUIDriver.cs: add abstract GetWindowTransparency, and track
10240         change to SupportsTransparency.
10241
10242         * XplatUIOSX.cs: stub out GetWindowTransparency, and return
10243         TransparencySupport.None from SupportsTransparency.
10244
10245         * XplatUIX11.cs: Stub out GetWindowTransparency, and return
10246         TransparencySupport.Set from SupportsTransparency.
10247
10248         * XplatUIWin32.cs: implement GetWindowTransparency calling
10249         GetLayeredWindowAttributes, and implement SupportsTransparency by
10250         checking whether or not both
10251         GetWindowTransparency/SetWindowTransparency are available
10252         entrypoints.  We need to do this since SetWindowTransparency is
10253         available as of win2k, but GetWindowTransparency requires winxp.
10254         yay win32 api.
10255
10256         * XplatUI.cs: Add GetWindowTransparency, and change
10257         SupportsTransparency to allow for either/both Get/Set.
10258
10259 2006-11-29  Chris Toshok  <toshok@ximian.com>
10260
10261         * DataGrid.cs: keep from going into an infinite loop redrawing a
10262         datagrid that has no datasource.  Fixes bug #80033.
10263
10264 2006-11-29  Chris Toshok  <toshok@ximian.com>
10265
10266         * MenuItem.cs: fix the NRE when we assign text (and therefore call
10267         Invalidate) before the mainmenu has been assigned to a control.
10268
10269 2006-11-29  Chris Toshok  <toshok@ximian.com>
10270
10271         * DataGrid.cs: detect when we should be double the double click
10272         row/column autosize stuff, although that codepath has yet to be
10273         written.  part of the work for bug #79891.
10274
10275 2006-11-29  Chris Toshok  <toshok@ximian.com>
10276
10277         * Binding.cs (SetControl): fix unit test.
10278
10279 2006-11-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10280
10281         * PageSetupDialog.cs: Validate the margins and set them in
10282         PageSettings. 
10283         * NumericTextBox.cs: New class to mimic the behavior of the
10284         textboxes used in the printing dialogs.
10285
10286 2006-11-29  Andreia Gaita  <avidigal@novell.com>
10287         
10288         * Form.cs: Revert previous change (remove call UpdateBounds
10289         from form constructor), because it messes with the handle creation
10290         order, and that one needs lots and lots of love.
10291         * PrintPreviewDialog.cs: Revert change to CreateHandle (add check
10292         for valid printer and throw InvalidPrinterException if document
10293         is set but printer not valid), adding a MonoTODO. Once 
10294         handle creation is done properly, we can put this back in.
10295
10296 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
10297
10298         * MenuItem.cs: Create a invalidate method for menu item, to be
10299         calling from set text, it make text changes to imadiate update
10300         on screen. Fixes #80013. 
10301         
10302 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
10303
10304         * ToolBar.cs: Fixes and simplify toolbar button layout, it 
10305         fixes bug #80070 and some other problem on toolbar buttons
10306         layout.
10307
10308 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
10309
10310         * ThemeWin32Classic.cs: Paint toolbar toggle button background 
10311         with dotted brush.      Fixes #79564
10312         
10313 2006-11-28  Andreia Gaita  <avidigal@novell.com>
10314
10315         * Form.cs: Removed call to UpdateBounds on Form
10316         constructor, it was causing a call to CreateHandle
10317         before it was supposed to.
10318         * PrintControllerWithStatusDialog: Applied patch
10319         by Chris Toshok to hide controller when there are
10320         no printers available.
10321         PrintDialog.cs: initialize printer settings to 
10322         null - correct DefaultValues test #5
10323         * PrintPreviewControl.cs: Move PrintController
10324         initialization to GeneratePreview
10325         * PrintPreviewDialog.cs: 
10326         - Remove Preview generation     from Document_set(). It is 
10327         called on OnPaint
10328         - Throw InvalidPrinterException on CreateHandle if
10329         a Document is set but there are no printers or 
10330         printer is not valid.
10331         * ThemeWin32Classic: don't paint PrintPreviewControl
10332         if there is nothing to paint    
10333
10334 2006-11-28  Miguel de Icaza  <miguel@novell.com>
10335
10336         * Form.cs: Add another popular method.
10337
10338         * TabPage.cs: ditto.
10339
10340 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
10341
10342         * MenuItem.cs: Fixed a warning.
10343         * InternalWindowManager: Fixed a warning.
10344
10345 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
10346
10347         * MenuItem.cs:
10348         - When cloning a menu also clone MdiList and clone the 
10349           window menu items properly (as the forms and menuitems
10350           are kept in an internal hashtable, these need updating 
10351           as well)
10352         - Rewrote the window menu code, menu items are added in the
10353           order the forms were added to their parent, and they are
10354           updated every time the window menu is shown (before the
10355           list was only generated once, in the current order of the
10356           forms, and would never be updated). A checkmark is shown
10357           next to the item corresponding to the active mdi child.
10358
10359 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
10360
10361         * XplatUIStructs.cs: 
10362         - Added WM_NCMOUSEHOVER and WM_NCMOUSELEAVE.
10363         
10364         * XplatUIWin32.cs: 
10365         - Added TME_NONCLIENT to TMEFlags.
10366         - Handles WM_NCMOUSEMOVE in GetMessage to 
10367           generate WM_NCMOUSEHOVER and WM_NCMOUSELEAVE messages.
10368
10369         * MdiWindowManager:
10370         - Now merges mdi child menu to parent menu when maximized.
10371         - Recalculate NC areas of both mdi child and mdi parent. 
10372           Fixes #79757 (4).
10373           on window state and size changes.Fixes #79844 (3).
10374         - Handle WM_NCCALCSIZE to properly calculate borders.
10375
10376         * Form.cs:
10377         - Add/remove to the mdi containers list of mdi children 
10378           in the order they are added.
10379         - Pass on WM_NCLBUTTONUP, WM_NCMOUSEMOVE and WM_NCMOUSELEAVE 
10380           to the maximized mdi child.
10381         
10382         * InternalWindowManager.cs:
10383         - Only execute a click on the control buttons on the mouse up,
10384           not on the mouse down. Show the state of the button 
10385           (was only showing Normal state, never Pressed state). The
10386           pressed button now follows the mouse (if you click the Close 
10387           button and move the mouse over the Maximize button, the 
10388           Maximize button will be shown as pressed). Since Win32 does
10389           not generate WM_NCLBUTTONUP if you release the button outside
10390           of the nc area, we need to handle WM_NCMOUSELEAVE and treat
10391           it as a mouse up.
10392         
10393         * ThemeWin32Classic.cs:
10394         - Draw a missing border around mdi child forms. Fixes #79844 (2).
10395
10396         * MdiClient.cs:
10397         - Added a list of forms which contains the order the forms are
10398           added to the mdi parent.
10399         - Handle WM_NCPAINT to properly draw a 3D border. Fixes #79844 (2).
10400         - Handle WM_NCCALCSIZE to properly calculate the 3D border.
10401         - If the active form changes set the scrollbars to the top
10402           of the Z order, otherwise the form could hide them.
10403         - Scrollbars are now sized according to ClientSize, not 
10404           to Size, and they take into account the other scrollbar
10405           to determine maximum.
10406         
10407 2006-11-28  Rolf Bjarne Kvinge <RKvinge@novell.com>
10408         
10409         * XplatUI.cs:
10410         * XplatUIDriver.cs:
10411         * XplatUIX11.cs:
10412         * XplatUIWin32.cs:
10413         * XplatUIOSX.cs:
10414         - Added RequestAdditionalWM_NCMessages for windows to 
10415           opt in for WM_NCMOUSELEAVE and WM_NCMOUSEHOVER.
10416           Currently only implemented in XplatUIWin32.
10417
10418 2006-11-27  Chris Toshok  <toshok@ximian.com>
10419
10420         * Hwnd.cs: only add the hwnd to the windows hash in
10421         set_WholeWindow and set_ClientWindow if whole_window/client_window
10422         are not IntPtr.Zero.  also, remove the unused SetObjectWindow.
10423
10424 2006-11-27  Mike Kestner  <mkestner@novell.com>
10425
10426         * ComboBox.cs: remove redundant OnDropDown call.  It is called
10427         from the ComboListBox.ShowWindow code. Fixes #79969.
10428
10429 2006-11-27  Chris Toshok  <toshok@ximian.com>
10430
10431         * Hwnd.cs: remove the setters for ExposePending and
10432         NCExposePending - noone uses them.
10433
10434 2006-11-27  Jackson Harper  <jackson@ximian.com>
10435
10436         * TextControl.cs: new param for ReplaceSelection which determines
10437         whether we select the new selection, or set the cursor to the end
10438         of the new selection.
10439         * TextBoxBase.cs: Use new param for ReplaceSelection.  When
10440         pasting, select the new text.
10441         * RichTextBox.cs: Use new param for ReplaceSelection.
10442
10443 2006-11-27  Jackson Harper  <jackson@ximian.com>
10444
10445         * TextBoxBase.cs: Set the selection to the caret after the caret
10446         is moved, otherwise they get out of sync.
10447
10448 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
10449
10450         * ToolBar.cs: Fixe size of ToolBar when AutoSize is false,
10451         it fixes #80015
10452
10453 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
10454
10455         * ThemeWin32Classic.cs: 
10456         - Fix toolbar drop down arrow position.
10457         - Fix drop down appearance when ToolBar.Appearance is normal,
10458         it fixes #80018.
10459         
10460 2006-11-26  Gert Driesen  <drieseng@users.sourceforge.net>
10461
10462         * ProgressBar.cs: GetStyle fixes for 2.0 profile.
10463         * Control.cs: Same.
10464         * UpDownBase.cs: Same.
10465         * ButtonBase.cs: Same.
10466         * ScrollBar.cs: Same.
10467         * TrackBar.cs: Same.
10468         * PictureBox.cs: Same.
10469         * UserControl.cs: Same.
10470         * Label.cs: Same.
10471         * ListControl.cs: Same.
10472         * TextBoxBase.cs: Same.
10473         * ListView.cs: Same.
10474         * RichTextBox.cs: Same.
10475         * TreeView.cs: Same.
10476
10477 2006-11-25  Jordi Mas i Hernandez <jordimash@gmail.com>
10478
10479         * PrintDialog.cs:
10480         - Text label for where 
10481         - Text label comment was not shown
10482
10483 2006-11-23  Everaldo Canuto  <everaldo@simios.org>
10484
10485         * ThemeWin32Classic.cs: Fix toolbar drop down arrow size.
10486
10487 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
10488
10489         * InternalWindowManager.cs: 
10490         - Handle WM_PARENTNOTIFY to activate the form
10491         if any child control is clicked.
10492         - The form is only sizable if not minimized.
10493
10494         * MdiWindowManager.cs:
10495         - Save the IconicBounds if the form is moved.
10496         - Rework SetWindowState, now the window bounds 
10497         are stored only if the old window state is Normal.
10498         
10499         * MdiClient.cs:
10500         - In SetWindowStates store the old window state if 
10501         the window is maximized and restore window state if
10502         the window looses focus.
10503         - Don't handle any scrollbar value changes if 
10504         initializing the scroll bars. Fixes #79771.
10505         - Reworked ArrangeIconicWindows. Current algorithm
10506         tests bounds agains all other minimized windows, if
10507         any intersections create new bounds (going left to 
10508         right, bottom to top) and then test again. When 
10509         successful the bounds are saved and never computed
10510         again. Fixes #79774.
10511
10512 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
10513
10514         * InternalWindowManager.cs: Added HandleTitleBarUp.
10515
10516 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
10517
10518         * NumericUpDown.cs: In .NET 1.1, user entered text is still
10519         hexadecimal in ParseUserEdit.
10520
10521         
10522 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
10523
10524         * MdiWindowManager.cs: 
10525         - Handle a click on the form's icon to show the 
10526         system menu (when maximized). Fixes #79775.
10527         - Change the existing click handler for the form's
10528         icon when not maximized to show on MouseUp.
10529         Fixes #79776.
10530
10531         * Form.cs: In OnResize only layout the mdi child's
10532         parent if it actually has a parent. Might not if
10533         the window is closing.
10534
10535
10536 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
10537
10538         * MdiClient.cs: Ignore active MDI client for text of parent, if
10539         child has no text set.
10540
10541 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
10542
10543         * ToolBar.cs: Fixed ToString to match MS.
10544
10545 2006-11-22  Andreia Gaita  <avidigal@novell.com>
10546
10547         * NumericUpDown: 
10548         - Fix DecimalPlaces, Hexadecimal and ThousandsSeparator to 
10549         update inner values on set. Fixes #79966.
10550         - Override OnLostFocus to update value on NET 2. Fixes #79950.
10551         - Fix hexadecimal parsing.
10552         
10553         * UpDownBase: Override OnGotFocus and OnLostFocus to notify 
10554         parent. Fixes #79957
10555
10556 2006-11-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
10557
10558         * Control.cs: After calling SetWindowsPos in SetBoundsCore 
10559         the actual size has to be queried, since if height /
10560         width is negative Win32 changes it to 0. 
10561         Fixes #79999 on Windows.
10562         
10563         * XplatUIX11.cs: Set height / width to 0 if negative
10564         in SetWindowPos. Fixes #79999 on Linux.
10565         
10566 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
10567
10568         * ThemeWin32Classic.cs: Fix text redenring when button is
10569         pressed.
10570
10571 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
10572
10573         * MenuAPI.cs: Fixes behavior when menu is opened by kerboard
10574         and later navigate by mouse. Fixes #79528.
10575
10576 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
10577
10578         * ToolBar.cs: Set default value for TabStop to false in
10579         constructor, it fixes remaining behavior of bug #79863.
10580
10581 2006-11-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
10582
10583         * MdiWindowManager.cs:
10584         * InternalWindowManager.cs:
10585         - Moved a few methods specific to Mdi from 
10586         InternalWindowManager to MdiWindowManager.
10587         Fixes #79996.
10588         
10589 2006-11-21  Chris Toshok  <toshok@ximian.com>
10590
10591         * XplatUIOSX.cs: stub out InvalidateNC.
10592
10593         * XplatUIWin32.cs: implement InvalidateNC using the call I found
10594         at http://www.dotnet247.com/247reference/msgs/58/292037.aspx.
10595
10596         * XplatUIX11.cs: rename InvalidateWholeWindow to InvalidateNC.
10597
10598         * XplatUIDriver.cs: add InvalidateNC abstract method.
10599
10600         * XplatUI.cs: add InvalidateNC.
10601
10602 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
10603
10604         * ToolBar.cs: Invalidate complete button area when pressed status 
10605         was changed.
10606         * ToolButton.cs: Fix InvalidateBorder for DropDown buttons.
10607         * ThemeWin32Classic.cs: Increase vertical and horizontal position 
10608         by 1 when button is pressed.
10609
10610 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
10611
10612         * ToolButton.cs: Invalidate middle of DropDown button when
10613         ToolBar theres DropDownArrows.
10614         * ThemeWin32Classic.cs: Change position of DropDown arrow and
10615         fix DropDown drawing operations.
10616
10617 2006-11-20  Chris Toshok  <toshok@ximian.com>
10618
10619         * NativeWindow.cs: fix the formatting of functions ('{' on the
10620         following line), and enable the thread exception dialog.
10621
10622         * Application.cs: remove the duplicate exception catching from
10623         here.
10624
10625 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
10626
10627         * Toolbar.cs: Triggers button click event when click on icon
10628         of dropdown ToolBarButton. Fixes #79912.
10629         
10630 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
10631
10632         * Theme.cs:
10633         * ThemeWin32Classic.cs:
10634         - Added a property WindowBorderFont to enable themeing
10635           of mdi child windows' Text.
10636           
10637 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
10638
10639         * InternalWindowManager.cs:
10640         * Form.cs:
10641         * MdiClient.cs:
10642         * MdiWindowManager.cs: 
10643         - If mdi child is maximized, set mdi parent's
10644           text to "Parent - [Child]". Fixes #79770.
10645         - If there is any maximized mdi child windows, only the active 
10646           window (and any new windows) is maximized, the rest are normal.
10647         - On a WindowState change only save mdi child's window bounds 
10648           if the old window state was normal. Fixes #79774.
10649         - The scroll bars are now calculated on hopefully all
10650           necessary events. Fixed #79771 / #79844->6 / #79906.
10651         - MdiClient.SizeScrollBars() now takes into account docked 
10652           controls in the parent when calculating available space.
10653         - InternalWindowManager now always repaints the entire title
10654           area. Fixes #79844->1/4/5.
10655         - Added RequestNCRecalc on mdi child windowstate changes.
10656           Fixes #79772.
10657
10658 2006-11-20  Mike Kestner  <mkestner@novell.com>
10659
10660         * ComboBox.cs: setup LargeChange on the scrollbar. Invoke FireMouseUp
10661         in the MouseUp handler of the listbox and move the return handling
10662         code to FireMouseUp to avoid scrolling on ups.  Fixes #79952.
10663
10664 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
10665
10666         * Toolbar.cs: Ignore right mouse clicks in toolbar. Fixes #79855. 
10667
10668 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
10669
10670         * MimeIcon.cs: Seems that DllImports that were fine in 1.2 are not
10671           working in 1.2.x anymore. So, updated.
10672
10673 2006-11-19  Gert Driesen  <drieseng@users.sourceforge.net>
10674
10675         * NumericUpDown.cs: Use NegativeSign, NumberDecimalSeparator and
10676         NumberGroupSeparator of current culture instead of assuming en-US.
10677         Fixed bug #79967.
10678
10679 2006-11-17  Mike Kestner  <mkestner@novell.com>
10680
10681         * Control.cs: Add the concept of implicit bounds setting so that
10682         dock/undock round trips preserve explicitly set size/locations.
10683         Fixes #79313.
10684
10685 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
10686
10687         * FileDialog.cs: Trim all filters, otherwise DirInfo.GetFiles
10688           can't handle those filters. (Fixes bug #79961)
10689
10690 2006-11-17  Chris Toshok  <toshok@ximian.com>
10691
10692         [ fixes the exit/crashes associated with #79835.  it's clearly
10693         suboptimal though, we need to figure out a better way to solve
10694         this. ]
10695         
10696         * PrintPreviewControl.cs: deal with the new invalid printer
10697         exceptions.
10698
10699         * PageSetupDialog.cs: if the printer is invalid, pop up a dialog
10700         and return false (so CommonDialog.ShowDialog doesn't actually show
10701         the form.)
10702
10703         * PrintDialog.cs: enable/disable the Ok button depending on
10704         whether or not the printer is valid.
10705
10706         * CommonDialog.cs (ShowDialog): only actually show the form if
10707         RunDialog returns true.
10708
10709 2006-11-17  Jackson Harper  <jackson@ximian.com>
10710
10711         * TextControl.cs: When soft splitting a line, mark it as a soft
10712         split line. Also carry over the current line break to the next
10713         line.
10714
10715 2006-11-17  Chris Toshok  <toshok@ximian.com>
10716
10717         * XplatUIX11.cs: when scrolling a window with an invalid area, we
10718         only want to shift the part of the invalid area that overlaps the
10719         area we're scrolling.  we also don't want to clear the invalid
10720         area unless the invalid area was entirely contained within the
10721         scrolling area.
10722
10723 2006-11-16  Chris Toshok  <toshok@ximian.com>
10724
10725         * XplatUIX11.cs: remove the handling of the TimerEvent stuff, and
10726         also make sure to free the memory returned by XGetWindowProperty
10727         in GetText().
10728
10729         * X11Structs.cs: remove the TimerEvent stuff, it's unused.
10730
10731 2006-11-16  Chris Toshok  <toshok@ximian.com>
10732
10733         * XplatUI.cs: add a new super secret way to get at the totally
10734         unsupported X11 backend.
10735
10736 2006-11-16  Gert Driesen  <drieseng@users.sourceforge.net>
10737
10738         * NumericUpDown.cs: Allow lowercase letters when in hex-mode.
10739
10740 2006-11-16  Jackson Harper  <jackson@ximian.com>
10741
10742         * TreeView.cs: Allow more explicit setting of top node position
10743         for scrollbars. Slower algo, but more accurate.
10744         - CollapseAll should maintain the current top node.
10745         * TextBoxBase.cs: When positioning the caret, use the line, pos
10746         method, since the x, y method does not grab the correct tag, and
10747         the caret height never gets set correctly. (Maybe I should just do
10748         away with the caret having its own height, and always use the
10749         carets current tag for height).
10750
10751 2006-11-16  Jonathan Pobst  <monkey@jpobst.com
10752
10753         [Fixes 79778, 79923]
10754
10755         * XplatUIWin32.cs: Don't allow a parent to be set to IntPtr.Zero.
10756         Parent to the FosterParent instead.
10757
10758 2006-11-16  Jackson Harper  <jackson@ximian.com>
10759
10760         * TreeView.cs: Need to recalc the topnode when we expand or
10761         collapse. The scrolling methods can't handle this on their own,
10762         since they use differences between the last scroll position, and
10763         those difference get completely messed up since we are expanding
10764         nodes.  This problem should probably be fixed in the scrolling
10765         methods, so they can figure out exactly where they are, but this
10766         will slow things down a little.
10767         * ThemeWin32Classic.cs: Special case for groupboxes with empty
10768         strings, makes nunit-gui look a lot nicer.
10769
10770 2006-11-16  Chris Toshok  <toshok@ximian.com>
10771
10772         * XplatUIX11.cs: nasty, nasty, nasty changes required because of
10773         the broken multithreaded event handling we have in here.  File
10774         this entry under "Why we should move to the new X11 backend".
10775
10776         Any thread can make it into UpdateMessageQueue, which gets events
10777         from the X socket - some of which could belong to hwnds being
10778         managed by a different thread.  We can also have multiple threads
10779         in UpdateMessageQueue at the same time, with each one reading from
10780         the X socket.  This leads to many problems, with the following
10781         solutions:
10782
10783         We can't use hwnd.Queue.Enqueue anywhere in here and must use
10784         EnqueueLocked.
10785
10786         The MotionNotify compression we do can't work across threads
10787         (without locking the entire queue, perhaps) since we call
10788         hwnd.Queue.Peek, so we just punt and don't compress motion events
10789         unless the owning thread is the one which got the X event.
10790
10791         ConfigureNotify is another fun one, since it modifies the hwnd's
10792         bounds and then enqueues the event.  We add a lock to Hwnd which
10793         is held when setting configure_pending to true (and enqueuing the
10794         event).
10795
10796         There is a race wrt the wake socket.  we need to make sure that
10797         only 1 thread is waiting on that socket, or else a thread could
10798         sleep waiting for data that never comes.  It's difficult (but not
10799         impossible) to make happen, because it seems to require something
10800         like the following:
10801
10802             1. Thread 1 polls on wake_receive
10803         
10804             2. poll returns saying there's data to be read on
10805                wake_receive.
10806         
10807             3. Thread 2 polls on wake_receive and immediately returns
10808                saying there's data to be read.
10809
10810             4. Thread 2 reads the wakeup byte from wake_receive
10811
10812             5. Thread 1 attempts to read the wakeup byte from
10813                wake_receive.
10814
10815             6. Thread 2 exits (due to a form closing, perhaps).
10816
10817             7. Thread 1 blocks forever.
10818         
10819         Fun, eh?
10820
10821         Fixing the Expose handling isn't done yet, and the races inherent
10822         in that piece of code are responsible for the drawing mistakes you
10823         see when generating expose events in a MT app (like NPlot).  This
10824         one is the likely to be the hardest to bandaid, and it doesn't
10825         appear to cause anything but drawing problems.  The other issues
10826         caused apps to exit or hang.
10827
10828         * XEventQueue.cs: output some spew when Dequeue/Enqueue/Peek are
10829         called from a different thread than the one that should be calling
10830         these functions.
10831
10832         * Hwnd.cs: add some locks to be used by the XplatUIX11 code.
10833
10834 2006-11-15  Chris Toshok  <toshok@ximian.com>
10835
10836         * Application.cs: null out the context's MainForm when we exit
10837         RunLoop.  Fixes a newly checked in unit test as well as the last
10838         ODE from bug #79933.
10839
10840 2006-11-15  Chris Toshok  <toshok@ximian.com>
10841
10842         * Form.cs (set_Owner): allow a null value so we can clear the
10843         form's owner.
10844         (Dispose): set all our owned_form's Owner properties to null, and
10845         clear the owned_forms collection.
10846         (WM_CLOSE): clean up this a little bit.. still not right though.
10847
10848         * ApplicationContext.cs: OnMainFormClosed should only call
10849         ExitThreadCore if the main form isn't recreating.  Fixes unit
10850         test.
10851
10852 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
10853
10854         [Fixes 78346]
10855
10856         * ComboBox.cs: Set the Hwnd.no_activate flag for the ComboListBox.
10857
10858 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
10859
10860         [Fixes 79433]
10861
10862         * Hwnd.cs: Add a flag to show a window, but not activate it, to 
10863         keep popup window types from stealing focus from the main form
10864         on Windows.
10865
10866         * XPlatUIWin32.cs: Use SW_SHOWNOACTIVATE if above field is true.
10867
10868         * MenuAPI.cs: Set above flag to true.
10869
10870 2006-11-15  Chris Toshok  <toshok@ximian.com>
10871
10872         * XplatUIX11.cs: mimic win32 behavior on BUTTONUP events, where
10873         the button being released is not in wParam.
10874
10875 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
10876
10877         * Form.cs: Add the released button to MouseEventArgs.Button
10878         for the OnMouseUp call to the MenuTracker.  Fixes menu clicking
10879         on Win32.
10880
10881 2006-11-15  Chris Toshok  <toshok@ximian.com>
10882
10883         * XplatUIX11.cs: add (untested) a _NET_WM_NAME implementation of
10884         GetText().  untested because it's unused in our implementation.
10885         Control.Text always caches the text, even if
10886         ControlStyles.CacheText is not set.
10887
10888         fixes bug #79939.
10889
10890 2006-11-15  Chris Toshok  <toshok@ximian.com>
10891
10892         [ fixes #79933 ]
10893         
10894         * Form.cs: in Close() don't do anything after we send the WM_CLOSE
10895         message.  no hiding, no disposing.
10896
10897         in the WM_CLOSE handler, hide the form if it's modal.
10898
10899 2006-11-15  Chris Toshok  <toshok@ximian.com>
10900
10901         * XplatUIX11.cs: use AddExpose instead of sending a message.
10902         fixes textbox border drawing.
10903
10904 2006-11-15  Chris Toshok  <toshok@ximian.com>
10905
10906         * PropertyGridView.cs: keep from crashing on mouse move/down when
10907         the property grid is empty.
10908
10909 2006-11-14  Jackson Harper  <jackson@ximian.com>
10910
10911         * TextControl.cs: Make PageUp and PageDown more like the MS
10912         versions.
10913         * TextBoxBase.cs: When we set the text property position the
10914         cursor at the beginning of the document.
10915
10916 2006-11-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>
10917
10918         * Form.cs: if a mdi child's WindowState has changed
10919         before it's creation, it would display wrong control
10920         buttons.
10921         
10922 2006-11-14  Alexander Olk  <alex.olk@googlemail.com>
10923
10924         * TreeView.cs: De-uglify TreeView checkbox checkmarks.
10925           (Fixes bug #79927)
10926
10927 2006-11-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10928
10929         * XplatUIX11.cs: send a WM_NCPAINT on WM_NCCALCSIZE so that 
10930         the window gets to paint its borders even if the window is
10931         getting smaller.
10932         
10933         * Form.cs: on a WM_NCPAINT invalidate the entire menu, 
10934         otherwise the old control buttons would still be painted 
10935         if the window gets bigger.
10936         
10937         * PaintEventArgs.cs: add an internal method so that the clip 
10938         rectangle can be changed.
10939         
10940 2006-11-13  Chris Toshok  <toshok@ximian.com>
10941
10942         [ fixes bug #79745 ]
10943         
10944         * NotifyIcon.cs: lots of cleanup.
10945
10946         * X11Structs.cs: add an enum for XEMBED messages.
10947
10948         * XplatUIX11.cs: reindent one of the giant switch statements, it
10949         was taking up an additional tab stop, and this file is already way
10950         too wide for my laptop's screen.
10951
10952         Also, add handling for the XEmbed EMBEDDED_NOTIFY message.  When
10953         we get it, resize the hwnd to the WMNormalHints max_width/height.
10954
10955 2006-11-13  Jackson Harper  <jackson@ximian.com>
10956
10957         * TextBoxBase.cs: Compute the value changes for the mouse wheel
10958         teh simple way.
10959
10960 2006-11-13  Chris Toshok  <toshok@ximian.com>
10961
10962         * XplatUIX11.cs, XplatUIStructs.cs: kind of a gross fix for
10963         #79898.  force a reference to the Region to stick around so the
10964         unmanaged object isn't collected (rendering our handle in the MSG
10965         stale).
10966
10967 2006-11-13  Chris Toshok  <toshok@ximian.com>
10968
10969         * XplatUIX11.cs: fix #79917 for window managers which support
10970
10971         using XStoreName on the raw utf8, and we need to convert to
10972         COMPOUND_TEXT if it's non-latin1.
10973
10974 2006-11-13  Chris Toshok  <toshok@ximian.com>
10975
10976         * Form.cs (set_DialogResult): we need to set closing to false if
10977         we're setting our result to None.  fixes bug #79908.
10978
10979 2006-11-13  Jackson Harper  <jackson@ximian.com>
10980
10981         * TextControl.cs: When formatting text, compute the adjusted tag
10982         lengths correctly, using FindTag for the end tag instead of trying
10983         to figure it out outselves.
10984         * TreeNode.cs: Use ActualItemHeight, which is the actual height of
10985         the item, ItemHeight doesn't work, because trees with large
10986         imagelists use those for their height
10987         * TreeView.cs: ActualItemHeight factors in the image height
10988         - compute left edge of checkboxes correctly
10989         - when expanding/collapsing move the bottom down one pixel, so we
10990         aren't moving part of the node
10991
10992 2006-11-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
10993
10994         * XplatUIX11.cs: The PaintEventArgs is also added to the drawing
10995         stack in PaintEventStart so that it won't get disposed by the gc
10996         before reaching PaintEventEnd.
10997
10998 2006-11-13  Jackson Harper  <jackson@ximian.com>
10999
11000         * TextBoxBase.cs: Don't select the word if we are on a line with
11001         no text.
11002         - We don't need to position the caret on mouse up, since the mouse
11003         move handler should be doing this
11004         - When double clicking a blank line, the caret is advanced to the
11005         next line.
11006
11007 2006-11-13  Gert Driesen  <drieseng@users.sourceforge.net>
11008
11009         * TreeNodeCollection.cs: Avoid duplicating indexer code.
11010
11011 2006-11-12  Gert Driesen  <drieseng@users.sourceforge.net>
11012
11013         * ColorDialog.cs: Reset size of dialog between calls to ShowDialog.
11014         Fixes part of bug #79910.
11015
11016 2006-11-11  Alexander Olk  <alex.olk@googlemail.com>
11017
11018         * ColorDialog.cs: Fix a NRE when adding a color to custom colors
11019           (bug #79903). Some minor string updates to match ms.
11020
11021 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
11022
11023         * FileDialog.cs: Don't add an extension if the filename
11024           already ends with that extension.
11025
11026 2006-11-10  Jackson Harper  <jackson@ximian.com>
11027
11028         * TreeView.cs: Use the currently highlighted node for the
11029         BeforeSelect event.
11030         * TextBoxBase.cs: There is no need to expand selection on
11031         MouseMove.
11032         - CanUndo means 'is there any undo operations', not 'is undo
11033         allowed on this textcontrol. Fixed ClearUndo unit test.
11034
11035 2006-11-10  Andreia Gaita  <shana.ufie@gmail.com>
11036
11037         * Button.cs: only perform click when button is Selectable (so as 
11038         not to activate default buttons when they're disabled)
11039         
11040         * Control.cs: Rewrite of the SelectNextControl and related 
11041         methods. HandleClick now selects next control if the current one
11042         is being disabled.
11043         
11044         * Form.cs: OnActivated selects next active control only if Load 
11045         has already occurred. If Load hasn't run, there's no point in 
11046         selecting here, Load might change the state of controls.
11047         
11048         * FocusTest.cs: Tests marked as working again for these fixes
11049
11050 2006-11-10  Chris Toshok  <toshok@ximian.com>
11051
11052         * XplatUIX11.cs: a couple of fixes.
11053
11054         - use XInternAtoms with almost all the atoms we need to register,
11055         instead of many, many calls to XInternAtom.  should help a bit on
11056         startup time, at the expense of making the code look a little
11057         worse.
11058
11059         - fall back to setting TransientFor on TOOLWINDOW's if their hwnd
11060         isn't reparented (which seems to be a clue that we're running fon
11061         compiz) and they have an Owner form.  This fixes the tool windows
11062         in paint.net when running under compiz.
11063
11064         - when setting the opacity of a window, support both the case
11065         where the window has been reparented and also when it hasn't been.
11066         Since compiz/beryl doesn't seem to reparent windows, and these are
11067         the only window managers which support translucency, I'm not sure
11068         why we need the hwnd.reparented case at all.. but leave it in.
11069         now we get translucent windows in paint.net under compiz/beryl.
11070
11071 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
11072
11073         * FileDialog.cs: Always return the value for FilterIndex that
11074           was set. Internally convert it to values that make sense.
11075
11076 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
11077         
11078         * ThemeWin32Classic.cs: Fix drowp down arrow borders.
11079
11080 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
11081
11082         * Toolbar.cs: Change default value of DropDownArrows to true, the 
11083         signature still using false to make it compatible with MS but the 
11084         initial value is true. Fixes #79855.
11085
11086 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
11087
11088         * MimeIcon.cs: Don't throw an exception on windows. Mime stuff is
11089           only available on Linux.
11090
11091 2006-11-09  Everaldo Canuto  <everaldo@simios.org>
11092
11093         * Toolbar.cs, ToolBarButton.cs: Fix wrong separator size and
11094         reduce number of calls to redraw method during toolbar creation.
11095
11096 2006-11-09  Mike Kestner  <mkestner@novell.com>
11097
11098         * ListView.cs : raise SelectedIndexChanged when an item is selected
11099         programmatically via the Item.Selected property.  Gert's nice 
11100         ListViewSelectedIndexChanged test fixture now runs clean.
11101
11102 2006-11-09  Mike Kestner  <mkestner@novell.com>
11103
11104         * ListView.cs : raise SelectedIndexChanged when a selected item is
11105         removed from the item collection using Remove or RemoveAt.
11106
11107 2006-11-09  Mike Kestner  <mkestner@novell.com>
11108
11109         * ListView.cs : raise SelectedIndexChanged once per selected item
11110         for compat with MS.  Fixes #79849+.
11111
11112 2006-11-09  Chris Toshok  <toshok@ximian.com>
11113
11114         * TabControl.cs: initialize row_count to 0, and set it to 1 when
11115         we need to (if we have any tab pages).  Fixes unit test.
11116
11117 2006-11-09  Chris Toshok  <toshok@ximian.com>
11118
11119         * Label.cs (CalcPreferredWidth): if Text == "", our preferred
11120         width is 0, not 3.  Fixes a unit test.
11121
11122 2006-11-09  Mike Kestner  <mkestner@novell.com>
11123
11124         * ListView.cs : use Implicit scrollbars so that focus isn't 
11125         stolen from the listview when they are clicked. Fixes #79850.
11126
11127 2006-11-09  Chris Toshok  <toshok@ximian.com>
11128
11129         * PropertyGridView.cs (OnPaint): only call DrawGridItems if we
11130         have a root item.  Fixes #79879.
11131
11132 2006-11-09  Alexander Olk  <alex.olk@googlemail.com>
11133
11134         * FileDialog.cs:
11135           - Fix ToString ()
11136           - An ArgumentException is now thrown if a wrong filter
11137             is applied (matches ms). The previous filter doesn't change
11138             anymore if an exception is thrown.
11139           - Changing the FileName property also affects FileNames
11140         * ColorDialog.cs: The length of the CustomColors array is always
11141           16. It doesn't matter if we use a smaller array or null to update
11142           or change the custom colors property.
11143         * FolderBrowserDialog.cs: Throw an InvalidEnumArgumentException if
11144           for RootFolder if we get a undefined value.
11145
11146 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
11147
11148         * StatusBarPanel.cs: 
11149         - Width is set to MinWidth if Width is smaller than
11150         MinWidth. Fixes #79842.
11151         - MinWidth now always overrides Width (MSDN says MinWidth
11152         is set to Width when AutoSize = None, but they do not 
11153         behave like that).
11154         - Style has now the the correct default value.
11155         
11156 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
11157  
11158         * TrackBar.cs: 
11159         - The control is completely invalidated on 
11160         Got/LostFocus to draw the focus rectangle correctly.
11161         - When AutoSize then height is always 45 (width for 
11162         vertical controls).
11163         
11164         * ThemeWin32Classic.cs: The TrackBar thumb is now centered
11165         on the mouse when moved and it doesn't move when grabbed
11166         until the mouse moves as well. Also fixed some wrong 
11167         calculations when clicking on the thumb (control thought
11168         click was outside of thumb and didn't grab it).
11169         Fixes some of the issues in #79718.
11170
11171 2006-11-08  Everaldo Canuto  <everaldo@simios.org>
11172
11173         * Toolbar.cs: Prevent disabled button to highlight. Fixes #79868.
11174
11175 2006-11-08  Chris Toshok  <toshok@ximian.com>
11176
11177         * PropertyGridView.cs: only call ToggleValue if the item is not
11178         readonly.
11179
11180 2006-11-08  Jackson Harper  <jackson@ximian.com>
11181
11182         * TextBoxBase.cs: The RichTextBox and textbox have very different
11183         word selection methods.  Implement the textbox's simple word
11184         selection here, and let the RichTextBox override and provide it's
11185         own.
11186         - Don't do extra selection on mouseup
11187         * RichTextBox.cs: Use the documents word selection algorithm, I
11188         think ideally, this function will be pulled into the
11189         RichTextBox.cs code someday.
11190
11191 2006-11-08  Chris Toshok  <toshok@ximian.com>
11192
11193         * RootGridEntry.cs: new class to represent GridItemType.Root.
11194
11195         * CategoryGridEntry.cs: reformat, and add boilerplate.
11196         
11197         * GridEntry.cs: remove the UIParent stuff - turns out .Parent
11198         returns the UI parent anyway, and we need special handling to
11199         implement the GetTarget method in the face of it.  Also, implement
11200         Select().
11201
11202         * PropertyGrid.cs, PropertyGridView.cs: a number of fixes.  create
11203         a root grid item, and use that instead of PropertyGrid.grid_items.
11204         Also, make use of TypeConverters (and add limitted support for
11205         ICustomTypeDescriptors) when initially populating the grid.
11206         Arrays now show up more or less properly.
11207
11208 2006-11-08  Chris Toshok  <toshok@ximian.com>
11209
11210         * Application.cs: set the modal dialog to non modal after we close
11211         it.  Fixes bug #79866.
11212
11213 2006-11-08  Jackson Harper  <jackson@ximian.com>
11214
11215         * TextControl.cs: When combining lines carry over the line end
11216         style from the end line.
11217         - Invalidate the selected area when setting it, if it is visible.
11218         * TextBoxBase.cs: Only rich text box can do full line selects.
11219         - Make sure to set the cursor position when there is a click,
11220         otherwise two clicks in separate areas could cause a large chunk
11221         to be selected.
11222
11223 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
11224
11225         * Toolbar.cs: Release flat button borders when Toolbar lost focus. 
11226         Fixes #79863.
11227
11228 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
11229
11230         * Toolbar.cs: Prevent toolbar to open more than one tooltip at same
11231         time. Remove tooltips when ToolButton click events.  Fixes #79856.
11232
11233 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
11234
11235         * MenuAPI.cs: Ignore right click for menu actions and fixes
11236         menu border when clicked.  Fixes #79846.
11237
11238 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
11239
11240         * XplatUIX11.cs, XplatUIX11.cs: Fix MouseRelease to only release
11241         MouseState after create wParam for message, this fixes mouse button 
11242         equal none in mouse up events.
11243         
11244 2006-11-07  Andreia Gaita  <shana.ufie@gmail.com>
11245
11246         * Control.cs : Focus() now calls Select to set the Container's
11247         Active Control and to give it focus. To avoid infinite recursion
11248         (because ActiveControl also calls Focus at one point), a check 
11249         is made in Focus with the help of a new internal variable
11250         is_focusing.
11251
11252 2006-11-07  Mike Kestner  <mkestner@novell.com>
11253
11254         * ListView.cs : raise OnSelectedIndexChanged in CreateHandle
11255         if there's a selection.  Fixes #79849.
11256
11257 2006-11-07  Gert Driesen  <drieseng@users.sourceforge.net>
11258
11259         * PropertyGrid.cs: Avoid fixed height of help description label.
11260         Fixes part of bug #79829.
11261
11262 2006-11-07  Chris Toshok  <toshok@ximian.com>
11263
11264         * XplatUIX11.cs: fix #79790 again, by using the
11265         _NET_WM_STATE_SKIP_TASKBAR atom to implement Form.ShowInTaskbar.
11266
11267 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
11268
11269         * ToolBar.cs: Fix left click checking.
11270
11271 2006-11-07  Chris Toshok  <toshok@ximian.com>
11272
11273         * ProgressBar.cs: fix a typo in ToString().  fixes a unit test.
11274
11275 2006-11-07  Chris Toshok  <toshok@ximian.com>
11276
11277         * RelatedPropertyManager.cs: set property_name in our ctor.  fixes
11278         PropertyManager unit tests.
11279
11280         * PropertyManager.cs: make property_name internal.
11281
11282 2006-11-07  Chris Toshok  <toshok@ximian.com>
11283
11284         * ButtonBase.cs: initialize base.ime_mode to ImeMode.Disable to
11285         pass a unit test.  Also, don't set image_index to anything in
11286         response to setting the ImageList property.
11287
11288 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
11289
11290         * ToolBar.cs: Ignore click events when mouse button is not a
11291         left button, only accepts other button for dropdown menus.  
11292         Fixes #79854.
11293
11294 2006-11-07  Chris Toshok  <toshok@ximian.com>
11295
11296         * DataGrid.cs: make the back and parent row buttons a little less
11297         ugly.
11298
11299 2006-11-07  Jackson Harper  <jackson@ximian.com>
11300
11301         * TextBoxBase.cs: When converting to Text don't put line breaks in
11302         for soft line breaks.
11303         * TextControl.cs: There is an initial "fake" line in the document,
11304         this is now a soft break line, so that an extra line feed doesn't
11305         get added to the end of documents.
11306
11307 2006-11-07  Chris Toshok  <toshok@ximian.com>
11308
11309         [ fix bug #79778 ]
11310         
11311         * CurrencyManager.cs: if the list is readonly, don't bother
11312         checking if IBindingList.AllowNew is true.
11313
11314         * ThemeWin32Classic.cs (DataGridPaintParentRow): make this work
11315         for non-DataRowView datasources..  or rather, make it not crash.
11316         (DataGridPaintRelationRow): make sure we limit the row painting to
11317         the area not covered by the row header, and make our cell width at
11318         least large enough to cover the relation area.  This allows grids
11319         that have relations but no rows to render correctly.
11320         (DataGridPaintRowContents): same type of changes here.
11321         (SetDataSource): move back to always calling
11322         CalcAreasAndInvalidate.  this fixes a crash/drawing problem when
11323         navigating back through relations.
11324         (HitTest): handle the case where we have no cells but have
11325         relations.  Right now we generate a hit in cell 0 of whatever the
11326         row is, not sure if this is strictly correct, but it works for our
11327         purposes.
11328         
11329         * DataGrid.cs (EndEdit, CancelEdit): if we have no columns, don't
11330         bother doing anything.
11331
11332 2006-11-07  Jonathan Pobst  <monkey@jpobst.com>
11333
11334         * StatusStrip.cs, ToolStripStatusLabel.cs: By request, an
11335         early version of StatusStrip.  Not responsible for eaten
11336         application or firstborn children.
11337
11338 2006-11-06  Chris Toshok  <toshok@ximian.com>
11339
11340         * TabControl.cs: in OnGotFocusInternal/OnLostFocusInternal don't
11341         call GetTabRect with a -1 index.  Fixes #79847.
11342
11343 2006-11-06  Jackson Harper  <jackson@ximian.com>
11344
11345         * TreeNodeCollection.cs: Update scrollbars after clearing.
11346
11347 2006-11-06  Chris Toshok  <toshok@ximian.com>
11348
11349         * NumericUpDown.cs: fix the ToString method for some unit test
11350         love.
11351
11352 2006-11-06  Chris Toshok  <toshok@ximian.com>
11353
11354         * PropertyGrid.cs:
11355         - set the initial SelectedGridItem if we can.
11356
11357         - Exclude non-mergable properties only if we're merging > 1
11358         object.  Merging 1 object isn't really merging, obviously.
11359
11360         - Handle PropertySort.NoSort just like Alphabetical, which is
11361         wrong of course, but at least gets things on the screen.
11362         
11363         * PropertyGridView.cs:
11364         - Add method "FindFirstItem" which finds the first property grid
11365         item, so we can select it by default.
11366
11367         - make use of GridEntry.CanResetValue.
11368
11369         - Don't call RedrawBelowItemOnExpansion here anymore, the
11370         individual GridEntry's will do that.
11371
11372         - Remove the ITypeDescriptorContextImpl internal class.
11373         
11374         * GridEntry.cs:
11375         - this class needs to implement ITypeDescriptorContext, as it's
11376         what MS's PropertyDescriptorGridEntry does, which means we can
11377         remove the ITypeDescriptorContextImpl internal class from
11378         PropertyGrid.cs.  This fixes the crashing portion of bug #79829.
11379
11380         - keep a reference to our PropertyGridView, and move the call to
11381         RedrawBelowItemOnExpansion here from PGV.  This means
11382         programmaticly setting Expanded actually does something visible.
11383
11384         - add a CanResetValue() function which takes into account our
11385         possibly multiple "selected_objects" in the merged case.  Shifting
11386         PropertyGridView to use this method fixes another unreported
11387         crasher found running the test for #79829.
11388
11389         - when Top or Bounds is updated, make sure the PropertyGridTextBox
11390         is updated to reflect this.
11391
11392         * CategoryGridEntry.cs: the ctor takes the PGV now.
11393         
11394 2006-11-06  Jackson Harper  <jackson@ximian.com>
11395
11396         * TextControl.cs: These are 1 based.
11397         * TextBoxBase.cs: When setting the selected text, don't change the
11398         selected text tags, this is done by ReplaceText, just position the
11399         cursor at the end of the new text.
11400
11401 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
11402
11403         * ListView.cs: Allow label edit only when, when LabelEdit is
11404           set to true.
11405
11406 2006-11-06  Jackson Harper  <jackson@ximian.com>
11407
11408         * TextControl.cs: If a suitable wrapping position isn't found,
11409         just wrap right in the middle of a word.
11410
11411 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
11412
11413         * ListView.cs, ListViewItem.cs: Implement LabelEdit. Fixes
11414           bug #79820.
11415
11416 2006-11-06  Jackson Harper  <jackson@ximian.com>
11417
11418         * TreeView.cs: Can't use the VisibleCount property when setting
11419         scrollbar heights, because this doesn't take into account whether
11420         or not the horz scrollbar just came visible.
11421
11422 2006-11-05  Everaldo Canuto  <everaldo@simios.org>
11423
11424         * MenuAPI.cs: Deactivate menu on mouse up when menus it is already
11425         activated.  Fixes #79369, #79832.
11426
11427 2006-11-05  Alexander Olk  <alex.olk@googlemail.com>
11428
11429         * FileDialog.cs: *sigh* Because of recent runtime changes (r67043) I
11430           had to remove support for links that point to a directory. FileInfo
11431           returns no usefull information (means, the directory they point to)
11432           for such links. Replaced some empty string ("") with String.Empty.
11433
11434 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
11435
11436         * TreeNodeCollection.cs: To match MS, in 1.0 profile throw 
11437         NullReferenceException when attempting to remove node that is not in
11438         collection. Throw NullReferenceException when null is passed to 
11439         Remove. Allow first element of the collection to be removed. Fixes
11440         bug #79831.  In GetEnumerator ().Current return null if positioned 
11441         before the first element of the collection. In GetEnumerator ().Reset,
11442         position before first element of the collection.
11443
11444 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
11445
11446         * PropertyGrid.cs: To match MS, remove default title and description
11447         for panel. Fixed tooltips for Categorized and Alphabetic toolbar
11448         buttons.
11449
11450 2006-11-04  Chris Toshok  <toshok@ximian.com>
11451
11452         * Theme.cs: add a Clamp method, just for kicks.
11453
11454         * ThemeWin32Classic.cs: clamp all color components to [0..255].
11455
11456 2006-11-04  Chris Toshok  <toshok@ximian.com>
11457
11458         * Form.cs: if the form isn't visible, Close() does nothing.
11459
11460 2006-11-03  Chris Toshok  <toshok@ximian.com>
11461
11462         * Form.cs (Close): if the form is modal, don't Dispose of it, only
11463         Hide it.
11464         (WndProc): don't Dispose after handling the WM_CLOSE message.
11465
11466         * Application.cs (RunLoop): toplevels is a list of Forms, so treat
11467         them as such, instead of using casts from Control to Form.  Also,
11468         don't Dispose of the modal dialog when we fall out of the loop -
11469         Close() it instead.
11470
11471         fixes bug #79813.
11472
11473 2006-11-03  Chris Toshok  <toshok@ximian.com>
11474
11475         * Control.cs (Dispose): only go through the dispose thing if we're
11476         @disposing, and we haven't already been disposed.  Fixes bug
11477         #79814.
11478
11479         * Form.cs: no reason to call "base.Dispose()" here instead of
11480         "Dispose()".
11481
11482 2006-11-03  Mike Kestner  <mkestner@novell.com>
11483
11484         * ComboBox.cs : use ToString instead of casts in AddItem for
11485         sorting functionality.  Fixes #79812.
11486
11487 2006-11-03  Chris Toshok  <toshok@ximian.com>
11488
11489         * Application.cs: pave the way for actually using the thread
11490         exception dialog.  it's ifdefed out at the moment.
11491
11492 2006-11-03  Chris Toshok  <toshok@ximian.com>
11493
11494         * ThreadExceptionDialog.cs: until we get a better layout, actually
11495         hide the details textbox and label when we shouldn't see them.
11496
11497 2006-11-03  Jackson Harper  <jackson@ximian.com>
11498
11499         * TextBoxBase.cs: Don't bail from the scrollbar calcs for non
11500         multiline textboxes anymore.  This method also determines the
11501         width/height of a textboxes canvas area.
11502         - Sorta a revert of the last patch.  For multiline just position
11503         the controls, then bail.  This way the scrollbar width won't be
11504         altered.
11505
11506 2006-11-03  Everaldo Canuto  <everaldo@simios.org>
11507
11508         * ThemeWin32Classic.cs: Dont paint inner lines of 3D border when
11509         it dont need.  Fixes #79537.
11510
11511 2006-11-02  Jackson Harper  <jackson@ximian.com>
11512
11513         * X11Dnd.cs: We always allow copy, since XDND implies Copy.  Also
11514         send the status after firing the DndOver event.
11515
11516 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
11517
11518         * TrackBar.cs: Now orientation only switches height / width if
11519         the control's handle is created (Win32 does it like this). Also 
11520         fixed a typo in ToString() for a test to pass, changed the 
11521         exception thrown in set_LargeChange and set_SmallChange to 
11522         match Win32 behaviour, and added TrackBar tests to the unit 
11523         tests.
11524
11525 2006-11-02  Chris Toshok  <toshok@ximian.com>
11526
11527         * XplatUIX11.cs: the atom we want is _NET_WM_STATE_SKIP_TASKBAR,
11528         not _NET_WM_STATE_NO_TASKBAR.
11529
11530 2006-11-02  Jackson Harper  <jackson@ximian.com>
11531
11532         * TextControl.cs: Increment count by one, since in the update view
11533         count - 1 is used.
11534
11535 2006-11-02  Jackson Harper  <jackson@ximian.com>
11536
11537         * TextBoxBase.cs: Use client rectangle not bounds for checking if
11538         the mouse is in the client rectangle (duh).
11539
11540 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
11541         
11542         * TrackBar.cs: Fixed trackbar jumping around when clicking
11543         on it - the trackbar was not detecting correctly at which
11544         side of the thumb the click was done. (fixes #79718)
11545
11546 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
11547
11548         * ListBox.cs: scroll visible area when change SelectedIndex to
11549         a non visible area.  Fixes #79481.
11550
11551 2006-11-01  Jackson Harper  <jackson@ximian.com>
11552
11553         * TextControl.cs: When replacing the selection move the selection
11554         start/end/anchor to the end of the new text.
11555
11556 2006-11-01  Jackson Harper  <jackson@ximian.com>
11557
11558         * XplatUIWin32.cs: When setting the parent change the controls
11559         visibility to it's visibility flag, not to it's old parents
11560         visibility (.Visible walks the parent chain).
11561
11562 2006-11-01  Chris Toshok  <toshok@ximian.com>
11563
11564         * XplatUIX11.cs: revert the #79790 fix, as the simple.
11565         XSetTransientForHint fix breaks paint .net's tool windows.  more
11566         work needed for that one.
11567
11568 2006-11-01  Chris Toshok  <toshok@ximian.com>
11569
11570         * ScrollBar.cs: throw ArgumentException instead of Exception in
11571         LargeChange/SmallChange setters.  fixes unit tests.
11572
11573 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
11574
11575         * ContainerControl.cs: reverted rev.67183 (which was itself
11576         a reversion of rev.66853... eh).
11577         
11578         * Control.cs: Fixes Reflector hang by changing Focus() call
11579         to what it was before rev.66643 (calling Select() here sets 
11580         ActiveControl, which in some situations calls back Focus and 
11581         eventually does a stack overflow). Temp fix.    
11582         Changes to GetNextControl() to not look for children to select when
11583         parent cannot be selectable (so it looks for siblings instead)  
11584         
11585 2006-10-31  Mike Kestner  <mkestner@novell.com>
11586
11587         * CheckedListBox.cs : off by one error in returned index from
11588         ObjectCollection.Add.  Fixes #79758.
11589
11590 2006-10-31  Chris Toshok  <toshok@ximian.com>
11591
11592         * UpDownBase.cs: remove the OnGotFocusInternal/OnLostFocusInternal
11593         calls for the textbox/spinner, to keep from recursing to the point
11594         where we crash.  Fixes #79760.
11595
11596 2006-10-31  Chris Toshok  <toshok@ximian.com>
11597
11598         * ListControl.cs (set_SelectedValue): don't throw exceptions on
11599         null/"" value, just return.  matches ms's behavior and fixes some
11600         failing tests.
11601
11602 2006-10-31  Chris Toshok  <toshok@ximian.com>
11603
11604         * Control.cs (set_Capture): make a logic a little easier to
11605         follow.
11606
11607         * XplatUIX11.cs (CleanupCachedWindows): zero out the Grab window
11608         if it's being destroyed.  A necessary fix surely, but a bandaid
11609         also, to fix the stuck capture problem in bug #78413.
11610
11611 2006-10-31  Chris Toshok  <toshok@ximian.com>
11612
11613         * XplatUIX11.cs: fix a couple of compiler warnings, and follow the
11614         convention of clearing hwnd.ClientRect when we set the
11615         width/height (so it'll be recalculated by Hwnd).
11616
11617 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
11618
11619         * ContainerControl.cs: reversed Contains check from
11620         ActiveControl due to hanging problems. This fix
11621         partly regresses #79667 (button does not have
11622         initial focus), so this might be a symptom for 
11623         a larger parenting problem (set_ActiveControl
11624         is being called but the child control does
11625         not have the parent set yet?)   
11626         
11627 2006-10-31  Mike Kestner  <mkestner@novell.com>
11628
11629         * MenuAPI.cs : fix keynav when menu is click activated.
11630
11631 2006-10-31  Jonathan Pobst  <monkey@jpobst.com>
11632
11633         * ToolStrip*: Version 0.2.
11634
11635         * MenuStrip.cs: Version 0.1.
11636
11637         * Form.cs: Add a 2.0 MenuStrip tracker like the 1.1 Menu one.
11638
11639 2006-10-30  Chris Toshok  <toshok@ximian.com>
11640
11641         [ fixes the oversized notify icon issue in bug #79745 ]
11642         
11643         * NotifyIcon.cs: scale the icon down to the size we're given by
11644         the XplatUI layer (this would be faster if we did it once instead
11645         of whenever we paint..)  Also, remove the WM_NCPAINT handling,
11646         since it's never invoked.
11647
11648         * XplatUIX11.cs: the gnome and kde systrays use icons that are 24
11649         pixels high by default, so let's hardcode our systray icon to that
11650         size.  The SYSTEM_TRAY protocol should really have a way for
11651         client apps to query for the correct icon size.. but oh well.  A
11652         couple of patches to deal with the screwy client_window ==
11653         whole_window notifyicon stuff (we don't want to PerformNCCalc, for
11654         instance, and also make sure we don't XSelectInput twice).
11655
11656 2006-10-30  Chris Toshok  <toshok@ximian.com>
11657
11658         * Control.cs: ugh, the unit test fix (CH11, yesterday) breaks when
11659         recreating forms.  Control recreation is the bane of my existence.
11660         Fix it in a way that keeps everyone happy.
11661
11662 2006-10-30  Chris Toshok  <toshok@ximian.com>
11663
11664         * XplatUIX11.cs: use StructureNotifyMask on all whole_windows, not
11665         just non-CHILD ones.  otherwise sometimes scrollbars end up with
11666         client_windows not being resized to the proper size (ReportBuilder
11667         shows this extremely well).
11668
11669 2006-10-30  Chris Toshok  <toshok@ximian.com>
11670
11671         * XplatUIX11.cs (SetWMStyles): reinstate the XSetTransientForHint
11672         for non-WS_EX_APPWINDOW windows.  This is what keeps them from
11673         showing up in the gnome taskbar.  Fixes bug #79790.
11674
11675 2006-10-30  Chris Toshok  <toshok@ximian.com>
11676
11677         * ApplicationContext.cs: guard against a NRE.
11678
11679         * Application.cs: null out the old MainForm for the context, so we
11680         don't try to use it again once it's disposed.  Fixes bug #79783.
11681
11682 2006-10-30  Chris Toshok  <toshok@ximian.com>
11683
11684         * DataGrid.cs (set_DataSource, set_DataMember): if we have a
11685         BindingContext, set the data source directly, otherwise do the
11686         lazy approach - the actual ListManager will be created when we get
11687         a BindingContext. Fixes bug #79700.
11688
11689 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
11690
11691         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
11692           XplatUIX11.cs: Remove old 2 parameter SetVisible.
11693
11694         * Control.cs: Use the new 3 parameter SetVisible with activate = true.
11695
11696 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
11697
11698         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Add an overload
11699         of SetVisible that allows a window to be shown, but not activated.
11700         This is needed on Windows for MenuStrip, and can probably be used
11701         with MainMenu and ComboBox to fix the focus stealing issues on
11702         Windows.
11703
11704         * XplatUIOSX.cs, XplatUIX11.cs: Not needed, call existing SetVisible.
11705
11706 2006-10-30  Alexander Olk  <alex.olk@googlemail.com>
11707
11708         * PictureBox.cs: Fix the output of the ToString method.
11709
11710 2006-10-29  Chris Toshok  <toshok@ximian.com>
11711
11712         * Control.cs (get_TopLevelControl): fix bug #79781.
11713
11714 2006-10-29  Chris Toshok  <toshok@ximian.com>
11715
11716         * ListControl.cs (set_DataSource): throw Exception here, not
11717         ArgumentException, to match MS behavior.
11718
11719 2006-10-29  Chris Toshok  <toshok@ximian.com>
11720
11721         * Form.cs: remove the try-catch's around calls to GetWindowState.
11722         We can just check the return value.
11723
11724         * XplatUIX11.cs: don't throw exceptions from GetWindowState.
11725         Instead return -1.
11726
11727         * XplatUI.cs: Add note about additional return value for
11728         GetWindowState.
11729
11730 2006-10-29  Chris Toshok  <toshok@ximian.com>
11731
11732         * Control.cs (CreateHandle): when we create our handle, we also
11733         create the handles of our child controls.  Fixes one of the
11734         Control unit tests (CH11).
11735
11736 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
11737
11738         * MimeIcon.cs: If a gnome icon doesn't exist add a default icon.
11739
11740 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
11741
11742         * ThemeClearlooks.cs: A little speedup.
11743
11744 2006-10-27  Chris Toshok  <toshok@ximian.com>
11745
11746         * Control.cs: implement Control.FromChildHandle in a way that
11747         matches the docs (and fixes the failed test.)
11748
11749 2006-10-27  Chris Toshok  <toshok@ximian.com>
11750
11751         * DataGridTableStyle.cs: reproduce buggy MS behavior (with
11752         comments).
11753
11754         * DataGrid.cs: implement ResetForeColor such that the tests
11755         succeed.
11756         
11757 2006-10-27  Chris Toshok  <toshok@ximian.com>
11758
11759         * ToolBarButton.cs: setting text/tooltiptext to null results in it
11760         being set to "".  Fixes bug #79759.
11761
11762 2006-10-27  Jackson Harper  <jackson@ximian.com>
11763
11764         * TextControl.cs: We need to clear the entire selection area when
11765         setting the start, otherwise multiline selections are still
11766         visible.
11767
11768 2006-10-26  Chris Toshok  <toshok@ximian.com>
11769
11770         * PropertyGridView.cs: 
11771
11772         - ifdef all the code specific to the double
11773         buffer case, and provide some alternatives in the non-doublebuffer
11774         code, which makes heavy use of XplatUI.ScrollWindow to move things
11775         around without having to invalidate (and cause flicker).  There
11776         are still some drawing problems in the non-doublebuffered case, so
11777         DOUBLEBUFFER is defined by default.
11778
11779         - Fix the way dropdowns are handled.  now we explicitly watch for
11780         the events which might cause the dropdown to close, and break out
11781         of the nested event loop there.  This gets rid of all Capture
11782         code, at the expense of the Msg special casing.  Seems to work,
11783         though, and fixes bug #79743.
11784
11785 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
11786         * Control.cs: SetIsRecreating now recreates implicitly added
11787         child controls as well. Finally fixes #79629. The flag passed to 
11788         SetIsRecreating has also been removed since it wasn't used.
11789         
11790 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11791
11792         * PageSetupDialog.cs: Clean some code, fix some bits, 
11793         add some checks, and add a printer sub-dialog.
11794
11795 2006-10-26  Chris Toshok  <toshok@ximian.com>
11796
11797         * PropertyGrid.cs: make set_SelectedObject call
11798         set_SelectedObjects, and move the duplicate logic to the
11799         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
11800
11801         * PropertyGridView.cs: hide the textbox when we get a
11802         SelectedObjectsChanged event.
11803
11804         Fixes bug #79748.
11805
11806 2006-10-26  Chris Toshok  <toshok@ximian.com>
11807
11808         * PropertyGridView.cs: deal with the type converter not supporting
11809         GetStandardValues() or GetStandardValues() returning null, which
11810         is does in the default case.  Fixes #79742.
11811
11812 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
11813
11814         * CheckedListBox.cs: nunit no longer crashes when selecting 
11815         Project/Edit menu option
11816         
11817 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
11818
11819         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
11820         is no menu selected. fixes #79739
11821
11822 2006-10-25  Chris Toshok  <toshok@ximian.com>
11823
11824         * PropertyGridView.cs: factor out the splitter invalidation code
11825         into the SplitterPercent setter, and for kicks implement the
11826         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
11827         amount in either direction.
11828
11829 2006-10-25  Chris Toshok  <toshok@ximian.com>
11830
11831         * PropertyGridView.cs: do some cleanup of the brush used to draw
11832         text - read only fields should be grayed out.  not sure how to do
11833         this with the textbox, though.  but the textbox's should also be
11834         readonly now at least.  Also, hide/show the textbox when resizing
11835         the control.
11836         
11837         * CursorConverter.cs: use System.Reflection when getting the
11838         properties of Cursors, as TypeDescriptor.GetProperties isn't
11839         returning static properties.
11840
11841 2006-10-25  Chris Toshok  <toshok@ximian.com>
11842
11843         * PropertyGridView.cs: factor out the up/down handling, and reuse
11844         it for page up/down.  also add End/Home support.
11845
11846 2006-10-25  Chris Toshok  <toshok@ximian.com>
11847
11848         * PropertyGridView.cs:
11849
11850         - ensure the selected grid item is visible in the scrolled area,
11851         fixes bug #79572.
11852
11853         - fix Keys.Down handling when you're on the last item in the
11854         propertygrid.
11855
11856 2006-10-25  Mike Kestner  <mkestner@novell.com>
11857
11858         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
11859         clicks too.  Fixes #79725.
11860
11861 2006-10-24  Chris Toshok  <toshok@ximian.com>
11862
11863         * PropertyGrid.cs: use property.Converter instead of
11864         TypeDescriptor.GetConverter(property.PropertyType), so we catch
11865         TypeConverters declared on the property as well as on the
11866         PropertyType.  Fixes bug #79678.
11867
11868 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
11869
11870         * MimeIcon.cs, Mime.cs:
11871           Fallback to the default platform handler if no shared mime info
11872           stuff exists (fixes #79693).
11873
11874 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
11875         * ContainerControl.cs: Incorrect contains check in ActiveControl 
11876         from previous fix (duh).
11877
11878 2006-10-20  Chris Toshok  <toshok@ximian.com>
11879
11880         * PropertyGridView.cs: the dropdown should be MIN(number of items
11881         in list, 15).  Fixes #79551.
11882
11883 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
11884         Fixes #79384, #79394, #79652, #79667
11885         * Application.cs: 
11886         
11887         - Modal windows are now destroyed in the proper order for windows
11888         
11889         * ContainerControl.cs:
11890         
11891         - ActiveControl setter has more conditions on when to return:
11892                 - if we're reselecting the active control, but it actually
11893                 didn't have focus (window hidden or some such), it runs
11894                 - if the active control being selected doesn't actually 
11895                 exist in the container, it returns
11896         
11897         * Form.cs
11898         
11899         - The ShowDialog now gets the current form as the owner when
11900         invoking without parameters, and correctly activates the owner 
11901         when returning
11902         
11903         * MessageBox.cs
11904         
11905         - MessageBox now catches the Escape key to exit
11906
11907 2006-10-20  Chris Toshok  <toshok@ximian.com>
11908
11909         * PropertyGridView.cs: fix a number of issues (bug #78565, and
11910         most of bug #79676):
11911
11912         - you can navigate around the property grid with the arrow keys.
11913
11914         - the dropdown is sized properly when the pg has a vertical
11915         scrollbar.
11916
11917         - fix the indentation for subentries, and properly select the
11918         entire label rect.
11919
11920         - fix the gray bar's drawing (only draw it to the last element,
11921         not for the height of the control.  Also make sure we draw that
11922         last horizontal grid line.
11923
11924         - use the same mechanism the datagrid uses wrt the editing textbox
11925         when scrolling/resizing/etc.  Namely, we hide it first, do the
11926         operation, then show it again (if it's still visible).
11927         
11928         - aggressively remove a lot of unnecessary refreshes (and also
11929         calls to Invalidate(). call more limited variants, and only redraw
11930         what we need.)
11931         
11932         * PropertyGrid.cs:
11933
11934         - when we're populating the merged collection, fill in the UI
11935         parent with either the passed in item, or the category item we
11936         create.
11937
11938         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
11939
11940         * GridItem.cs: drop some fully qualified names.
11941         
11942         * GridEntry.cs: add a "UIParent", which is basically the parent
11943         treenode.
11944
11945         * GridItemCollection.cs: add an IndexOf method.
11946
11947 2006-10-20  Mike Kestner  <mkestner@novell.com>
11948
11949         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
11950         a working win32 NC invalidation mechanism, we can't invalidate
11951         menus.  [Fixes #79705]
11952
11953 2006-10-20  Mike Kestner  <mkestner@novell.com>
11954
11955         * ListBox.cs : don't update the VScrollbar if the list is empty,
11956         just hide it.  [Fixes #79692]
11957
11958 2006-10-20  Jackson Harper  <jackson@ximian.com>
11959
11960         * RichTextBox.cs: Handle some special chars better, and don't skip
11961         the entire group when we encounter a special char that we don't
11962         handle correctly.
11963
11964 2006-10-18  Chris Toshok  <toshok@ximian.com>
11965
11966         * PropertyGridView.cs: address a number of issues from bug #79676,
11967         mostly of the cosmetic variety.
11968
11969         - The highlight rectangle for indented items not extends all the
11970         way to the left.
11971
11972         - Indented items aren't indented so much.
11973
11974         - the dropdown is properly sized width-wise if the pg has a
11975         vertical scrollbar.
11976
11977 2006-10-18  Chris Toshok  <toshok@ximian.com>
11978
11979         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
11980         systray stuff is rather convoluted to begin with.
11981
11982         systray icons are a single window for some reason (that I haven't
11983         figured out yet), and for them, client_window == whole_window.
11984         Given the way the tests are structured elsewhere to determine
11985         which paints are pending (client vs. nc), that situation will
11986         always yield PAINT, not NCPAINT.  So, if we have a pending
11987         nc_expose and no pending expose, remove the hwnd from the paint
11988         queue, and also set nc_expose_pending to false, to keep us from
11989         blocking further expose's adding the hwnd to the paint queue.
11990
11991         phew.  like i said, a rather convoluted change.  Fixes the
11992         notifyicon repaint issues in bug #79645.
11993
11994 2006-10-18  Chris Toshok  <toshok@ximian.com>
11995
11996         * Form.cs: when getting the backcolor of the form, don't get
11997         base.BackColor, as this allows parents to influence the background
11998         color.  This breaks mdi forms.  Instead, if the background_color
11999         is empty, return the default.
12000
12001 2006-10-18  Chris Toshok  <toshok@ximian.com>
12002
12003         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
12004         to being private instead of internal static.
12005
12006         * Control.cs: remove all the stupid ParentWaitingOnRecreation
12007         crap, it wasn't working for more deeply nested controls anyway,
12008         and we already have the is_recreating flag - use that instead.
12009         Before calling DestroyHandle in RecreateHandle, recurse through
12010         the control tree setting it to true.  this returns the recreate
12011         code to much of its original simplicity, while now guaranteeing we
12012         actually recreate everything we're supposed to.  This change gets
12013         fyireporting actually showing mdi children.
12014
12015 2006-10-17  Chris Toshok  <toshok@ximian.com>
12016
12017         * Form.cs: remove some debug spew, and collapse some duplicate
12018         code at the end of SetClientSizeCore.
12019
12020         * XplatUIX11.cs: 
12021         - add some more debug spew here too wrt Destroy handling.
12022         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
12023         in Control's handling of WM_DESTROY.
12024         - Remove the handling of zombie window DestroyNotifies from the
12025         event loop - we don't need it.  Now the only DestroyNotifies we
12026         actually handle are ones generated by X.
12027         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
12028         match gtk's (functioning) handling of this. This keep metacity
12029         from leaving droppings in the form of wm borders with no window
12030         contents all over the place.
12031
12032         * Control.cs:
12033         - add a bunch of debug spew wrt control recreation.
12034         - fix a bug where we weren't tracking Visible properly on
12035         recreated hwnds.
12036         - fixed the WM_PAINT double buffer handling to support re-entrant
12037         calls (yes, i know it's gross, but it's happening to us).
12038
12039 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
12040         * ThemeWin32Classic.cs: changed drawing of selected days
12041         to make them look better.
12042
12043 2006-10-16  Chris Toshok  <toshok@ximian.com>
12044
12045         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
12046         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
12047
12048         * XplatUIX11.cs: move away from using hwnd.client_dc and
12049         hwnd.non_client_dc and on to a stack of dc's (and in window's
12050         case, PAINTSTRUCT's), so we can deal with nested Paint calls
12051         without puking or not disposing of Graphics objects.
12052
12053         * XplatUIOSX.cs: same.
12054
12055         * XplatUIWin32.cs: same.
12056
12057 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
12058
12059         * FileDialog.cs: Don't call on_directory_changed inside
12060           OnSelectedIndexChanged (it changes the SelectedIndex too).
12061           Instead move it to OnSelectionChangeCommitted.
12062
12063 2006-10-13  Chris Toshok  <toshok@ximian.com>
12064
12065         * XplatUIX11.cs: more Destroy work.  the current code does the
12066         following things, in order:
12067
12068         1. Enumerates all handles of all controls at or below the one
12069         being destroyed, in pre-order.  As it is doing this, it marks the
12070         handles as zombie and clears all references to them.
12071         
12072         2. calls XDestroyWindow on the window passed in.
12073
12074         3. SendMessage's WM_DESTROY to all he handles in the accumulated
12075         list.
12076
12077 2006-10-13  Chris Toshok  <toshok@ximian.com>
12078
12079         * XplatUIX11.cs: set hwnd.zombie to true before calling
12080         SendMessage (WM_DESTROY).  this keeps us from marking the new
12081         window a zombie, and also keeps us from calling sendmessage at
12082         all.
12083
12084 2006-10-13  Jackson Harper  <jackson@ximian.com>
12085
12086         * TextControl.cs: Do not show the caret and selection at the same
12087         time.  Reduces ugliness by 35%.
12088
12089 2006-10-13  Chris Toshok  <toshok@ximian.com>
12090
12091         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
12092         zombie after we do the recursive call, so we actually do call
12093         SendMessage on the children controls.
12094         (GetMessage): if we find a pending paint event for a zombie hwnd,
12095         remove the hwnd from the paint queue, or else it will always be
12096         there (and we'll effectively loop infinitely)
12097
12098 2006-10-13  Mike Kestner  <mkestner@novell.com>
12099
12100         * MenuItem.cs : add Selected format under keynav too.
12101         Fixes #79528.
12102
12103 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
12104
12105         * PropertyGrid.cs: Fixed some NRE's and small difference between our
12106         implementation and that of MS.
12107
12108 2006-10-13  Chris Toshok  <toshok@ximian.com>
12109
12110         * Control.cs (OnInvalidated) only futz with the invalid_region if
12111         the control is double buffered.  this fixes the apparent hang in
12112         the ListView unit tests.  Someone needs to make the
12113         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
12114
12115 2006-10-13  Chris Toshok  <toshok@ximian.com>
12116
12117         * PropertyGridView.cs:
12118
12119         - do a little refactoring so that only one place calls
12120         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
12121         else call that.  Also make it Refresh, since there are redraw bugs
12122         otherwise (we should take a look at that...)
12123
12124         - do a little more refactoring work to share the body of code
12125         involved with the drop down.  it was duplicated in the code
12126         dealing with the listbox handling and in the code dealing with the
12127         UITypeEditors.
12128
12129         - add a Capture to the dropdown form's control once it's
12130         displayed, and add a MouseDown handler that checks to make sure
12131         the position is inside the control.  If it's not, close the
12132         dropdown.  This fixes #78190.
12133
12134         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
12135         if the value is different than the initial value.
12136         
12137 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
12138
12139         * Control.cs: see #78650
12140         - Fixed GetNextControl for several cases:
12141                 - Changed FindFlatForward to return 
12142                 correct sibling control when more than one
12143                 control has same TabIndex as the currently 
12144                 focused one.
12145                 - Changed FindFlatBackward to loop children
12146                 from last to first and apply same logic as in
12147                 FindFlatForward
12148                 - Changed FindControlForward to search for
12149                 children when control is not a container
12150                 but has children, or search for siblings if
12151                 control is a container...
12152                 - Changed FindControlBackward   to continue
12153                 searching for child controls when hitting 
12154                 Panel-like parents
12155                 
12156         - Fixed Focus method to update ActiveControl
12157         (FocusTest.FocusSetsActive failure)
12158         
12159         * TabControl.cs:
12160         - Focus rectangle now refreshes when gaining
12161         or losing focus
12162         - Removed grab for Tab key on IsInputKey that 
12163         was keeping tab navigation from working (#78650)
12164
12165 2006-10-13  Chris Toshok  <toshok@ximian.com>
12166
12167         * PropertyGridView.cs:
12168         - Rewrite SetPropertyValue to loop over SelectedGridItem's
12169         SelectedObjects.
12170
12171         - Deal with GridItem.Value == null a few places.
12172
12173         * PropertyGrid.cs: 
12174         - replace the PopulateGridItemCollection with a pair of methods
12175         which compute the intersection of all the properties in the
12176         SelectedObjects array.  Fixes #79615.
12177
12178         - Throw ArgumentException from set_SelectedObjects if there's a
12179         null in the array.
12180
12181         - Add GetTarget method which can be used to traverse up the
12182         GridItem.Parent chain.  It depends on the assumption that
12183         selected_objects for different GridEntries are always in the same
12184         order (a safe assumption).  Use this method and loop over all the
12185         selected objects in the entry when calling RemoveValueChanged and
12186         AddValueChanged.
12187         
12188         * GridEntry.cs: Make this handle multiple selected objects.
12189         .Value returns null if not all the selected objects share the same
12190         value.
12191
12192 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
12193         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
12194           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
12195           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
12196           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
12197           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
12198         add additional functionality.
12199
12200 2006-10-12  Mike Kestner  <mkestner@novell.com>
12201
12202         * ErrorProvider.cs : new ToolTipWindow ctor sig.
12203         * HelpProvider.cs : new ToolTipWindow ctor sig.
12204         * ToolTip.cs : remove ToolTip param from Window sig since it is
12205         not used.
12206         * ToolBar.cs : add tooltip support.  Fixes #79565.
12207
12208 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
12209
12210         * ComboBox.cs: move the events in set_SelectedIndex to 
12211         after the call to HighlightIndex in order to avoid 
12212         possible recursion and subsequent problems with the call
12213         to HighlightIndex and include a range check in 
12214         set_HighlightIndex. Fixes #79588
12215         
12216 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
12217
12218         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
12219         to ui thread's settings instead of sunday. 
12220         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
12221
12222 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
12223
12224         * DateTimePicker.cs
12225         * MonthCalendar.cs
12226         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
12227         and implement missing functionality (selecting different parts 
12228         of the date and edit them individually with the keyboard).
12229         
12230 2006-10-11  Chris Toshok  <toshok@ximian.com>
12231
12232         * Control.cs (OnInvalidated): fix NRE relating to last change.
12233
12234 2006-10-11  Chris Toshok  <toshok@ximian.com>
12235
12236         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
12237         atoms in _NET_WM_STATE here if the window is maximized.  We need
12238         to do this because we're *replacing* the existing _NET_WM_STATE
12239         property, so those atoms will be lost otherwise, and any further
12240         call to GetWindowState will return Normal for a window which is
12241         actually maximized.  Fixes #79338.
12242
12243 2006-10-11  Jackson Harper  <jackson@ximian.com>
12244
12245         * TextControl.cs: Special case for setting selection end to
12246         selection start, we basically kill the anchor.
12247         - some todo comments.
12248
12249 2006-10-11  Chris Toshok  <toshok@ximian.com>
12250
12251         * Control.cs: switch to using an "invalid_region" to track which
12252         parts of the image buffer need updating.  This is more code than
12253         the simple fix from r66532.  That version just attempted to always
12254         fill the entire buffer on redraw, which turns out to be
12255         inefficient when invalidating small rectangles.  This version
12256         simply adds the invalid rectangle to the invalid region.  When we
12257         get any WM_PAINT message we see if it can be filled using the
12258         image buffer, and if it can't (if the paint event's clip rectangle
12259         is visible in the invalid region) we first fill the image buffer.
12260         So, the image buffer is still a cache, we just fill it lazily.
12261
12262         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
12263         need it any longer.
12264
12265 2006-10-11  Chris Toshok  <toshok@ximian.com>
12266
12267         * XplatUIX11.cs (SetWindowPos): we need to update both position as
12268         well as size after calling XMoveResizeWindow.  This keeps us from
12269         ignoring future SetWindowPos calls.  Fixes the disappearing
12270         DateTimePicker in the ToolBarDockExample from bug #72499.
12271
12272 2006-10-11  Chris Toshok  <toshok@ximian.com>
12273
12274         * TextBoxBase.cs: reorder things a bit when it comes to
12275         resizing-causing-recalculation.  we were recalculating the
12276         document when our position was changed, which shouldn't happen.
12277         We only care about size changes.  Clear up some more redundant
12278         recalculation calls while I'm at it.  This makes the toolbar dock
12279         example snappy when you're just dragging toolbars around (since it
12280         causes a relayout whenever you move one.)
12281
12282 2006-10-11  Chris Toshok  <toshok@ximian.com>
12283
12284         * ToolBarButton.cs (get_Rectangle): this only returns
12285         Rectangle.Empty if Visible == false, or Parent == null.
12286         Parent.Visible doesn't matter.
12287
12288 2006-10-10  Chris Toshok  <toshok@ximian.com>
12289
12290         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
12291         by .net 1.1, so switch to an internal method instead.
12292
12293 2006-10-10  Chris Toshok  <toshok@ximian.com>
12294
12295         * Control.cs (WM_PAINT): when a control is double buffered we draw
12296         initially to the ImageBuffer and then copy from there.  But when a
12297         parent control which has child controls is double buffered, the
12298         initial drawing doesn't encompass the entire ClientRectangle of
12299         the parent control, so we end up with uninitialized bits (this is
12300         easily seen by dragging the top toolbar in
12301         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
12302         manually set the ClipRectangle of the paint_event (only the one we
12303         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
12304         of the nastiness in bug #72499.
12305
12306         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
12307         which we use in Control.cs's WM_PAINT handling.
12308
12309 2006-10-10  Jackson Harper  <jackson@ximian.com>
12310
12311         * TextBoxBase.cs: Finish off the autoscrolling stuff.
12312
12313 2006-10-10  Chris Toshok  <toshok@ximian.com>
12314
12315         * Cursor.cs: Apply a slightly different patch to the one suggested
12316         in #79609.
12317
12318 2006-10-10  Jackson Harper  <jackson@ximian.com>
12319
12320         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
12321         not the parent form.
12322         * TextControl.cs: use difference in old line count vs new count to
12323         calculate how many lines were added, this takes into account soft
12324         line breaks properly.
12325
12326 2006-10-10  Chris Toshok  <toshok@ximian.com>
12327
12328         * LinkLabel.cs: don't call MeasureCharacterRanges against a
12329         rectangle located at 0,0 and the size of the text.  Use
12330         ClientRectangle instead.  This fixes rendering of non-left aligned
12331         link labels.
12332
12333 2006-10-10  Jackson Harper  <jackson@ximian.com>
12334
12335         * TextBoxBase.cs: When we set the selection start position the
12336         caret.
12337         * TextControl.cs: Need to update the caret when we decrement it to
12338         zero.
12339         - Make sure that the selection_visible flag gets reset to false if
12340         the selection isn't visible.  Before this you could get it set to
12341         visible by changing the selection start, then changing the end to
12342         equal the start.
12343
12344 2006-10-09  Jackson Harper  <jackson@ximian.com>
12345
12346         * TreeView.cs: Don't update scrollbars when we aren't visible.
12347         * TreeNodeCollection.cs: Only need to update scrollbars if being
12348         added to an expanded visible node or the root node.
12349
12350 2006-10-09  Chris Toshok  <toshok@ximian.com>
12351
12352         * XplatUIX11.cs (SendMessage): fix NRE.
12353
12354 2006-10-09  Jackson Harper  <jackson@ximian.com>
12355
12356         * TextBoxBase.cs: Implement horizontal autoscrolling.
12357         * TextControl.cs: Add a movement types that allows moving forward
12358         and backwards without wrapping.
12359
12360 2006-10-09  Mike Kestner  <mkestner@novell.com>
12361
12362         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
12363         with focus "expansion" of labels.  Fixes #79532 and then some.
12364         * ThemeWin32Classic.cs : add LineLimit to ListView label format
12365         when wrapping.
12366
12367 2006-10-09  Jackson Harper  <jackson@ximian.com>
12368
12369         * TextBoxBase.cs: Set the default max values to MaxValue since
12370         we use the scrollbar for autoscrolling and the default value is
12371         100.  If we don't do this the caret won't keep up with typing
12372         after about 18 characters.
12373         * TextControl.cs: Make sure the selection is offset by the
12374         viewport x.  This fixes selection when using auto scrolling.
12375
12376 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
12377         
12378         * Form.cs: The active control should be selected after the 
12379         OnLoad so that any child control initialization that affects
12380         the selection is done. Fixes #79406
12381
12382 2006-10-06  Chris Toshok  <toshok@ximian.com>
12383
12384         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
12385         to have no evil effects.
12386
12387         - Stop selecting StructureNotifyMask on non-toplevel windows.
12388
12389           The only way children should be resized is by using the SWF api,
12390           and we already send WM_WINDOWPOSCHANGED messages in those cases.
12391           Toplevel windows can be interacted with via the window manager,
12392           and so we keep the input mask there.
12393
12394           The other event StructureNotifyMask gives us (that we care
12395           about) is DestroyNotify.  The code is already structured such
12396           that it assumes we won't be getting a DestroyNotify event for
12397           the window we pass to XDestroyWindow (which is what
12398           StructureNotifyMask is supposed to guarantee.)  So, that code
12399           shouldn't be affected by this either.
12400
12401         - Stop selecting VisibilityChangeMask altogether.
12402
12403           We weren't doing anything with the resulting events anyway.
12404         
12405         This vastly reduces the number of X requests and events we see
12406         when resizing/laying out a large ui.
12407
12408 2006-10-06  Chris Toshok  <toshok@ximian.com>
12409
12410         * ScrollableControl.cs (DisplayRectangle): we need to take into
12411         account the DockPadding regardless of whether or not auto_scroll
12412         == true.  rework this slightly to this effect, and fix bug #79606,
12413         and part of #72499 (you can now see the drag handles and drag
12414         toolbars around).
12415
12416 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
12417
12418         * ListViewItem.cs: Collections of selected and checked items are now
12419         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
12420         we mark the collection "dirty".
12421         * ListView.cs: Marked collections readonly. Modified UpdateSelection
12422         to only clear SelectedItems when a new item is selected and MultiSelect
12423         is enabled. CheckedItems and SelectedItems now subscribe to Changed
12424         event of ListViewItemCollection, and mark its list dirty whenever
12425         that event is fire. This allows us to return selected/checked items 
12426         in the same order as they are in the Items collection. This matches
12427         the MS behavior.
12428
12429 2006-10-06  Chris Toshok  <toshok@ximian.com>
12430
12431         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
12432         right mouse clicks.  Fixes bug #79593.
12433
12434 2006-10-06  Chris Toshok  <toshok@ximian.com>
12435
12436         * Splitter.cs: doh, fix splitters that don't want to cancel the
12437         movement when you drag them.  Also, impose the limits on the
12438         values we send to the SplitterMovingEvent.  Fixes #79598.
12439
12440 2006-10-06  Jackson Harper  <jackson@ximian.com>
12441
12442         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
12443         since we use this for auto scrolling also.
12444
12445 2006-10-05  Chris Toshok  <toshok@ximian.com>
12446
12447         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
12448         beginning to think that most datagrid column types don't need this
12449         method.  Fixes bug #79392.
12450
12451 2006-10-05  Chris Toshok  <toshok@ximian.com>
12452
12453         * DataGrid.cs: move back to a more lazy scheme for creating the
12454         CurrencyManager, so we aren't updating it every time you set
12455         either DataSource or DataMember.  Also, don't call
12456         RecreateDataGridRows if the currency manager hasn't changed.
12457
12458 2006-10-05  Chris Toshok  <toshok@ximian.com>
12459
12460         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
12461         emitted, SelectedIndex should already be updated.  Fixes bug
12462         #78929.
12463
12464 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
12465
12466         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
12467           ToolStripTextBox.cs: Initial commit.
12468         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
12469
12470 2006-10-05  Jackson Harper  <jackson@ximian.com>
12471
12472         * TabControl.cs: We need to invalidate the tab control area when
12473         new ones are added (duh).
12474
12475 2006-10-03  Chris Toshok  <toshok@ximian.com>
12476
12477         * Form.cs (ProcessDialogKey): if the focused control is in this
12478         form and is a button, call its PerformClick method here.  Fixes
12479         #79534.
12480
12481 2006-10-04  Jackson Harper  <jackson@ximian.com>
12482
12483         * TabPage.cs: Ignore setting of Visible, and add an internal
12484         method for setting the controls visibility.  TabPage's Visible
12485         property is a little strange on MS, this seems to make us
12486         compatible, and fixes cases where people set all the tab pages to
12487         visible.
12488         * TabControl.cs: Use the new internal setting on tab pages
12489         visibility.
12490
12491 2006-10-03  Mike Kestner  <mkestner@novell.com>
12492
12493         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
12494
12495 2006-10-03  Mike Kestner  <mkestner@novell.com>
12496
12497         * ListView.cs : use is_visible instead of Visible to check if 
12498         scrollbars should be placed/sized.  Also some max_wrap_width
12499         love for LargeIcon view.  [Fixes #79533]
12500
12501 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
12502
12503         * TextControl.cs :
12504           Make set_TextAlign() do actually update the align. Fixed #78403.
12505
12506 2006-10-03  Chris Toshok  <toshok@ximian.com>
12507
12508         * DataGrid.cs: fix a crash when switching datasources if the
12509         vertical scrollbar is at someplace other than Value = 0.  Also,
12510         reduce the number of recalculation passes we do in SetDataSource
12511         from 2 to 1.
12512
12513 2006-10-03  Jackson Harper  <jackson@ximian.com>
12514
12515         * TextBoxBase.cs: Move the if value the same bail check up, we
12516         don't want to empty the document if it is already empty, this
12517         seems to severly mess up the caret.  TODO: I should probably fix
12518         the empty statement to update teh caret somehow.
12519
12520 2006-10-03  Chris Toshok  <toshok@ximian.com>
12521
12522         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
12523         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
12524         reflection, an internal row type, properties on said type, etc.)
12525         will work with our datagrid.  Fixes #79531.
12526
12527 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
12528
12529         * FileDialog.cs: Don't crash if a path is not accessible
12530           (System.UnauthorizedAccessException). Fixes #79569.
12531         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
12532           a ':' too. Return unknown icon for those paths/files.
12533
12534 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
12535
12536         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
12537         GetContainerControl returns null.
12538
12539 2006-10-02  Chris Toshok  <toshok@ximian.com>
12540
12541         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
12542         call to XGetWindowAttributes instead of "handle".  fixes an X
12543         error using notifyicon after the NotifyIconWindow to Form base
12544         class switch.
12545
12546 2006-10-02  Chris Toshok  <toshok@ximian.com>
12547
12548         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
12549         server grab and looping we need to do to get down to the most
12550         deeply nested child window.
12551         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
12552         QueryPointer again after the WarpPointer so we can generate a
12553         proper (fake) MotionNotify event to be enqueued in the destination
12554         window's queue.
12555         (GetCursorPos): call QueryPointer.
12556
12557         Fixes #79556.
12558
12559 2006-10-02  Jackson Harper  <jackson@ximian.com>
12560
12561         * NotifyIcon.cs: Derive the notify icon from a form, so things
12562         like FindForm work on it.
12563         - Swallow the WM_CONTEXTMENU message, since that is generated on
12564         mouse down, and context menu is a mouse up kinda guy.  I believe
12565         the correct fix here is probably to make the notify icon entirely
12566         NC area, but this seems to work fine for anyone not manipulating
12567         WndProc.
12568
12569 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
12570
12571         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
12572           ToolStripItemCollection.cs, ToolStripLabel.cs,
12573           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
12574           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
12575           Initial implementation.
12576         * TextRenderer.cs: Provide padding to MeasureText.
12577
12578 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
12579
12580         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
12581         of ButtonBaseAccessibleObject. Fix bug #79552.
12582
12583 2006-10-02  Jackson Harper  <jackson@ximian.com>
12584
12585         * MdiWindowManager.cs: When maximizing use the containers client
12586         rect, not it's bounds, so nc area is accounted correctly.
12587         - Use the parent form's size for the menu position, since the
12588         client isn't always the full form size.
12589
12590 2006-10-01  Chris Toshok  <toshok@ximian.com>
12591
12592         * ScrollableControl.cs: make sure neither right_edge or
12593         bottom_edge are < 0, since they're used as LargeChange for the
12594         horiz/vert scrollbars respectively.  Fixes #79539.
12595
12596 2006-10-01  Chris Toshok  <toshok@ximian.com>
12597
12598         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
12599         the xplatuix11 code can cause us to destroy/recreate our handle.
12600
12601         * XplatUIX11.cs
12602         (SystrayAdd):
12603         - this code can be invoked many times for the same Hwnd.  Make
12604           sure we only destroy the client window once (the first time this
12605           method is called).  This fixes bug #79544.
12606         - Remove the call to the improperly bound XSync.  why we had two
12607           bindings to this, I will never know, but this call resulted in
12608           events being discarded from the queue(!).
12609         - correct a misunderstanding of _XEMBED_INFO - the second atom is
12610           not our current state but the state we wish to be in.  So, 0 if
12611           we don't want to be mapped.  Change it to 1.
12612         (SystrayRemove): The XEMBED spec makes mention of the fact that
12613         gtk doesn't support the reparent of client windows away from the
12614         embedder.  Looking at gtksocket-x11.c seems to agree with this.
12615         The only avenue we have for removing systray icons is to destroy
12616         them.  We don't want the handle to go away for good, though, so
12617         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
12618         #79545.
12619         
12620 2006-10-01  Chris Toshok  <toshok@ximian.com>
12621
12622         * Form.cs (WndProc): inline the native_enabled variable usage into
12623         the cases in which it's used.  Fixes #79536.
12624
12625 2006-09-29  Mike Kestner  <mkestner@novell.com>
12626
12627         * ListView.cs : toggle the selection state for ctrl clicks in 
12628         multiselect mode. [Fixes #79417]
12629
12630 2006-09-29  Mike Kestner  <mkestner@novell.com>
12631
12632         * ListView.cs : kill CanMultiSelect and refactor the selection
12633         code to support multiselection in the absence of mod keys. Steal
12634         arrow/home/end keys by overriding InternalPreProcessMessage to
12635         restore regressed keynav behavior.
12636         [Fixes #79416]
12637
12638 2006-09-29  Jackson Harper  <jackson@ximian.com>
12639
12640         * MdiClient.cs: Repaint the titlebars when the active window is
12641         changed.
12642
12643 2006-09-29  Chris Toshok  <toshok@ximian.com>
12644
12645         * Application.cs: when entering a runloop with a modal, make sure
12646         the hwnd is enabled.  Fixes #79480.
12647
12648 2006-09-29  Chris Toshok  <toshok@ximian.com>
12649
12650         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
12651         when ListManager.CanAddRows == false, bump us back one.
12652
12653         * DataGridColumnStyle.cs (ParentReadOnly): remove the
12654         listmanager.CanAddRows check.  This makes ArrayLists uneditable
12655         using a datagrid, which is not right.
12656         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
12657         is an IEditable, but call property_descriptor.SetValue regardless.
12658         fixes #79435.
12659
12660 2006-09-29  Chris Toshok  <toshok@ximian.com>
12661
12662         * DataGridBoolColumn.cs: we need to test equality in the face of
12663         possible null values (as is the case with the default NullValue).
12664         This patch keeps us from crashing in that case.
12665
12666 2006-09-29  Jackson Harper  <jackson@ximian.com>
12667
12668         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
12669         here, since it will get called for every node collection in the
12670         tree. This is now done in the treeview once the sorting is
12671         finished.
12672         * TreeView.cs: Recalculate the visible order, and update the
12673         scrollbars after sorting, set the top nope to the root so that the
12674         recalc actually works.
12675
12676 2006-09-29  Chris Toshok  <toshok@ximian.com>
12677
12678         * LinkLabel.cs: more handling of the default link collection in
12679         the face of LinkArea manipulation.  The default link collection
12680         contains 1 element (start=0,length=-1).  If the user sets LinkArea
12681         to anything and the links collection is the default, clear it.
12682         Then only add the link if its nonempty.  Fixes #79518.
12683
12684 2006-09-29  Chris Toshok  <toshok@ximian.com>
12685
12686         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
12687         piece correctly when we hit a '\n'.  Fixes #79517.
12688
12689 2006-09-29  Chris Toshok  <toshok@ximian.com>
12690
12691         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
12692         change the binding of gdk_init_check to take two IntPtr's, and
12693         pass IntPtr.Zero for both of them.  Fixes #79520.
12694
12695 2006-09-29  Mike Kestner  <mkestner@novell.com>
12696
12697         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
12698         [Fixes #78779]
12699
12700 2006-09-28  Jackson Harper  <jackson@ximian.com>
12701
12702         * XplatUIX11.cs: When translating NC messages make sure we go from
12703         whole window to screen, not client window to screen.
12704         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
12705         method doesn't exist
12706         - Skip over controls that aren't forms when arranging.
12707
12708 2006-09-28  Jackson Harper  <jackson@ximian.com>
12709
12710         * XplatUIWin32.cs: Clip the rect to the parent window.
12711         * XplatUIStructs.cs: Add clipping modes struct.
12712         * InternalWindowManager.cs: New private method that factors title
12713         bar heights in when calculating the pos of an NC mouse message.
12714         - Use SendMessage to force a paint when the form's size is changed
12715         instead of painting the decorations immediately.
12716         - Don't let the NC button click messages get to DefWndProc,
12717         because they will attempt to handle windowing themself, and this
12718         messes up z-order (it will put them in front of the scrollbars).
12719         * XplatUIX11.cs: Make sure that we don't reset window managers if
12720         we already have one (ie the window is an MDI window).
12721
12722 2006-09-28  Chris Toshok  <toshok@ximian.com>
12723
12724         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
12725         menu code really needs going over.
12726
12727 2006-09-27  Chris Toshok  <toshok@ximian.com>
12728
12729         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
12730         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
12731         window is maximizable.  So, we need to make sure that even if we
12732         clear the border/wm frame of those functions, they're still
12733         available (basically, we remove the decoration without removing
12734         the function).  Half the fix for #79338.
12735
12736 2006-09-27  Chris Toshok  <toshok@ximian.com>
12737
12738         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
12739         Fixes bug #79515.
12740
12741 2006-09-27  Chris Toshok  <toshok@ximian.com>
12742
12743         * Splitter.cs: reorder things a bit so that we don't actually
12744         draw/move the splitter until after calling OnSplitterMoving.  This
12745         lets users cancel/disallow the movement by explicitly setting
12746         event.SplitX/SplitY.  Fixes #79372.
12747
12748 2006-09-27  Jackson Harper  <jackson@ximian.com>
12749
12750         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
12751         because it is most likely on a window being destroyed, and that
12752         will give us an X11 error.
12753
12754 2006-09-27  Chris Toshok  <toshok@ximian.com>
12755
12756         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
12757         the dropdown button now toggles between showing and hiding the
12758         dropdown.  Also, get rid of dropdown_form_showing and just use
12759         dropdown_form.Visible.  We still don't do a grab, but I'll leave
12760         that part to someone who has handled Capture-fu before.
12761
12762 2006-09-27  Chris Toshok  <toshok@ximian.com>
12763
12764         * DataGrid.cs: return false if alt isn't pressed when '0' is
12765         pressed.  this keeps the '0' key from being swallowed, and fixes
12766         bug #79350.
12767
12768 2006-09-27  Chris Toshok  <toshok@ximian.com>
12769
12770         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
12771         Calling Refresh (in response to a scrollbar event) screws up the
12772         scrollbar painting.  Fixes bug #78923.
12773
12774 2006-09-27  Chris Toshok  <toshok@ximian.com>
12775
12776         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
12777         then insert into hashtable" blocks threadsafe.
12778
12779 2006-09-27  Chris Toshok  <toshok@ximian.com>
12780
12781         * MessageBox.cs (CreateParams): the styles should be |'ed with our
12782         baseclass's, since otherwise the
12783         ControlBox/MinimizeBox/MaximizeBox assignments above have no
12784         effect.  This gets the close button back in messageboxes.
12785
12786 2006-09-27  Chris Toshok  <toshok@ximian.com>
12787
12788         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
12789         flag, not just != 0.  this makes flags that are actually multiple
12790         bits (like WS_CAPTION) work.  fixes bug #79508.
12791
12792 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
12793
12794         * PageSetupDialog.cs: add support for getting and settings the 
12795         paper size, source and orientation.
12796
12797 2006-09-26  Chris Toshok  <toshok@ximian.com>
12798
12799         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
12800         and caption == "", we need to remove the resize handles as well as
12801         the title bar.
12802
12803         * Control.cs (set_Text): turns out that setting Text on a form
12804         should change the WM styles on the window, since if ControlBox ==
12805         false, the only way to get a window border is to have a non-""
12806         Text property.  check winforms/forms/text.cs for an example.  so,
12807         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
12808         update both window styles and title.  This fixes a lot of dialogs
12809         (including the preferences dialog in MonoCalendar.)
12810
12811 2006-09-26  Chris Toshok  <toshok@ximian.com>
12812
12813         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
12814         control isn't a Form), call Win32ShowWindow to hide the window,
12815         but don't update the control Visible property.  When we reparent
12816         back to a parent control, call SetVisible in order for the
12817         window's visibility to be reinstated.
12818
12819         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
12820         the FosterParent.
12821
12822         * Control.cs (ControlCollection.Remove): remove that value.Hide()
12823         call for good, since it breaks MonoCalendar (and other things I'm
12824         sure.) Also, set all_controls to null *after* the owner calls,
12825         which end up regenerating it.
12826         (ChangeParent): allow new_parent to be == null, passing
12827         IntPtr.Zero down to XplatUI.
12828
12829         this fixes #79294 the right way.
12830
12831 2006-09-26  Mike Kestner  <mkestner@novell.com>
12832
12833         * GridEntry.cs : internal SetParent method.
12834         * PropertyGrid.cs : attach to property changed on the proper
12835         target if we have a hierarchical grid with subobjects. Setup
12836         GridItem.Parent for hierarchical items.
12837         * PropertyGridView.cs : Set value on the correct target for
12838         hierarchical grids. [Fixes #78903]
12839
12840 2006-09-26  Chris Toshok  <toshok@ximian.com>
12841
12842         * Control.cs (ChildNeedsRecreating): this should return true if
12843         either we're being recreated and the child is in our list, or our
12844         parent is waiting for our recreation.
12845
12846 2006-09-26  Chris Toshok  <toshok@ximian.com>
12847
12848         * Control.cs (ControlCollection.Remove): reinstate the
12849         value.Hide() call as suggested in bug #79294.
12850
12851 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
12852
12853         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
12854         coordinates (versus a relative move).
12855
12856 2006-09-26  Chris Toshok  <toshok@ximian.com>
12857
12858         * Control.cs: rework child recreation a little bit.  It turns out
12859         that we race between the DestroyNotify the WM_DESTROY message.  If
12860         the parent gets its DestroyNotify before the child gets the
12861         WM_DESTROY message, the child ends up not recreating (since the
12862         parent finishes its recreation on DestroyNotify, and the child
12863         checks ParentIsRecreating.)
12864
12865         So, instead we store off a list of all the child controls which
12866         need to be recreated when the parent control starts to recreate
12867         itself.  Then, when child controls get their WM_DESTROY message we
12868         check to see if they're in the parent's pending recreation list,
12869         and if so, we recreate.  This removes all dependency on ordering
12870         from the code and fixes the initial MonoCalendar upgrade dialog.
12871         
12872 2006-09-26  Jackson Harper  <jackson@ximian.com>
12873
12874         * TextControl.cs: Use the Line to get the length of the line,
12875         since soft line breaks can change the end line.
12876
12877 2006-09-26  Chris Toshok  <toshok@ximian.com>
12878
12879         * Control.cs (ControlCollection.AddImplicit): don't add the
12880         control again if it's already in one of our lists.  This keeps us
12881         from adding controls over and over again for comboboxes when their
12882         handle gets recreated (as the combobox adds implicit controls in
12883         OnHandleCreated).  Fixes the X11 errors in bug #79480.
12884
12885 2006-09-26  Jackson Harper  <jackson@ximian.com>
12886
12887         * TextControl.cs: When deleting characters make sure that any
12888         orphaned zero lengthed tags get deleted.
12889         - Fix ToString for zero lengthed tags.
12890
12891 2006-09-25  Jackson Harper  <jackson@ximian.com>
12892
12893         * TextControl.cs: When getting a tag at the location there can be
12894         multiple tags at the same spot, these are 0-lengthed tags that
12895         appear when extra formatting has been stuck in a location.  We
12896         need to pull out the last of these 0 lengthed tags.
12897
12898 2006-09-25  Jackson Harper  <jackson@ximian.com>
12899
12900         * TextControl.cs: Fix print out in debug method.
12901         * TextBoxBase.cs: When text is set bail if we are setting to the
12902         previous value.
12903         
12904 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
12905
12906         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
12907           It is now possible to change the selected index in a FontXXXListBox
12908           with the up and down arrow keys from the FontXXXTextBoxes.
12909           Also, send the FontXXXTextBox mouse wheel event to the corresponding
12910           FontXXXListBoxes to match ms.
12911
12912 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
12913
12914         * SystemInformation.cs: Return a clone of the theme's MenuFont because
12915         anyone can dispose it, anytime. All other properties returns enums, 
12916         structs or basic types so they don't need such tricks.
12917
12918 2006-09-22  Jackson Harper  <jackson@ximian.com>
12919
12920         * XplatUI.cs:
12921         * XplatUIWin32.cs:
12922         * Clipboard.cs:
12923         * DataFormats.cs:
12924         * XplatUIOSX.cs:
12925         * XplatUIDriver.cs: Update interface to add a primary selection
12926         flag, so the driver can use the primary selection buffer if
12927         needed.
12928         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
12929
12930         * RichTextBox.cs: We need to supply the data object to paste now
12931         (so we can choose to supply CLIPBOARD or PRIMARY).
12932         * TextBoxBase.cs: Supply data object to paste (see above).
12933         - Middle click uses the primary selection data object.
12934         
12935 2006-09-21  Chris Toshok  <toshok@ximian.com>
12936
12937         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
12938         of SetWMStyles.  It's still a rat's nest and is largely
12939         order-dependent which I dislike immensely.  This also fixes the X
12940         button disappearing from toplevel forms.
12941
12942 2006-09-21  Mike Kestner <mkestner@novell.com>
12943
12944         * ListBox.cs: move Jordi's click/dblclick raising code to the
12945         mouse up handler.
12946
12947 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
12948
12949         * ListBox.cs: Fixes 79450
12950
12951 2006-09-21  Mike Kestner <mkestner@novell.com>
12952
12953         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
12954         to deal with people updating the TreeNodeCollection after the tree
12955         is disposed.  "Fixes" 79330.
12956
12957 2006-09-20  Jackson Harper <jackson@ximian.com>
12958
12959         * TextControl.cs: Push the cursor record onto the undo stack
12960         before the delete action. This fixes 78651.
12961
12962 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
12963
12964         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
12965         CreateParams. Fixes 79329.
12966
12967 2006-09-19  Chris Toshok  <toshok@ximian.com>
12968
12969         * XplatUIX11.cs: a couple of blanket code massage passes to clean
12970         things up a bit.  First, get rid of the NetAtoms array (and the NA
12971         enum), and just embed the atoms as static fields.  Also, add a
12972         couple of functions (StyleSet and ExStyleSet) to clean up all the
12973         bitmask testing of styles.
12974
12975         * X11Structs.cs: remove the NA enum, not needed anymore.
12976         
12977 2006-09-19  Chris Toshok  <toshok@ximian.com>
12978
12979         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
12980         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
12981         added cleanup to get MessageBox titles appearing again, which were
12982         broken by my earlier fix for caption-less/ControlBox-less windows.
12983
12984 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
12985
12986         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
12987           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
12988           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
12989           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
12990           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
12991           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
12992           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
12993           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
12994           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
12995           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
12996           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
12997             Inital import.
12998         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
12999           ToolStripButton.cs: Stubs needed for above.
13000         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
13001
13002 2006-09-15  Chris Toshok  <toshok@ximian.com>
13003
13004         * XplatUIX11.cs:
13005         - make the MessageQueues hashtable Synchronized.
13006         
13007         - SendMessage: if the Hwnd is owned by a different thread, use the
13008         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
13009         thread.  Fixes bug #79201.
13010
13011 2006-09-15  Chris Toshok  <toshok@ximian.com>
13012
13013         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
13014         ControlBox == false, we disallow maximize/minimize/close.  If the
13015         form Caption is "" we also disallow move (and get rid of the Title
13016         decoration).  Unfortunately, regardless of how things are set,
13017         we're stuck with the Title and WM menu.
13018
13019 2006-09-15  Chris Toshok  <toshok@ximian.com>
13020
13021         * Application.cs: add locking around the static message_filters
13022         ArrayList, part of #79196.
13023
13024 2006-09-15  Chris Toshok  <toshok@ximian.com>
13025
13026         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
13027         Form.ControlBox == false, the window has no titlebar nor resize
13028         handles.  fixes bug #79368.
13029
13030 2006-09-15  Chris Toshok  <toshok@ximian.com>
13031
13032         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
13033         >= 0.  Fixes bug #79370.
13034
13035 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
13036         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
13037         * Control.cs:
13038             Add properties: LayoutEngine, Margin, DefaultMargin.
13039             Add method: GetPreferredSize.
13040             Move layout logic from PerformLayout to layout engines. 
13041
13042 2006-09-13  Chris Toshok  <toshok@ximian.com>
13043
13044         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
13045         fix for #79326 broke #78718, so this change addresses that.
13046
13047         - in SendWMDestroyMessages remove the call to
13048         CleanupCachedWindows, since we might be recreating the control and
13049         need to maintain the references to right Hwnd handles.  Also, set
13050         the zombie flag to true for each of the children in the hierarchy
13051         instead of calling hwnd.Dispose.  This will cause GetMessage to
13052         ignore all events for the window except for DestroyNotify.
13053
13054         - In GetMessage, ignore messages except for DestroyNotify for
13055         zombie hwnds.
13056         
13057         * Control.cs: revert the is_recreating fix from the last
13058         ChangeLog.  It's definitely "right", but it breaks switching from
13059         an MDI form to a non-MDI form.  Will need to revisit that.
13060
13061         * Hwnd.cs: add a zombie flag, which means "the
13062         client_window/whole_window handles are invalid, but we're waiting
13063         for the DestroyNotify event to come in for them".  Set the flag to
13064         false explicitly if setting WholeWindow/ClientWindow, and also
13065         when Disposing.
13066         
13067 2006-09-13  Chris Toshok  <toshok@ximian.com>
13068
13069         * XplatUIX11.cs: rework window destruction slightly.
13070
13071         - when destroying the windows associated with a control, we don't
13072         need 2 separate XDestroyWindow calls.  Just the one for the
13073         whole_window (or for client_window if whole_window is somehow
13074         IntPtr.Zero -- can this happen?) is enough.
13075
13076         - reworked SendWMDestroyMessages slightly, so we always dispose
13077         the child control hwnd's after sending the messages.
13078         
13079         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
13080         the two places it was used (one was even using hwnd.Handle and the
13081         other hwnd.client_window.  ugh), adding another call in
13082         SendWMDestroyMessages.  We need this new call because now the
13083         DestroyNotify events in the queue will be ignored for the child
13084         controls (as their hwnd's were disposed, and the window id's
13085         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
13086
13087         - this fixes bug #79326.
13088
13089 2006-09-13  Chris Toshok  <toshok@ximian.com>
13090
13091         * Control.cs: don't always set is_recreating to false at the end
13092         of RecreateHandle, since sometimes we're not done (and won't be
13093         until WndProc handles the WM_DESTROY message).  Also, set
13094         is_recreating to false in the WM_DESTROY handling code.  Part of
13095         the fix for bug #79326.
13096
13097 2006-09-13  Miguel de Icaza  <miguel@novell.com>
13098
13099         * X11DesktopColors.cs: Start the droppage of debugging messages.
13100
13101         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
13102
13103 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
13104
13105         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
13106
13107 2006-09-12  Chris Toshok  <toshok@ximian.com>
13108
13109         * DataGrid.cs (get_ListManager): if the list_manager is null, try
13110         to create it using SetDataSource.  Fixes bug #79151.
13111
13112 2006-09-11  Chris Toshok  <toshok@ximian.com>
13113
13114         * XEventQueue.cs: add a DispatchIdle property.
13115
13116         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
13117         either the queue is null, or the queue has DispatchIdle set to
13118         true.
13119         (DoEvents): set queue.DispatchIdle to false around the
13120         peek/translate/dispatch message loop in this method.  This keeps
13121         Application.Doevents from emitting idle events.  Part of the fix
13122         for #78823.
13123
13124 2006-09-11  Chris Toshok  <toshok@ximian.com>
13125
13126         * DataGrid.cs (set_DataSource): make this work for both the
13127         winforms/datagrid test and ReportBuilder.  It seems as though when
13128         we've created a ListManager (or maybe it's if we have a
13129         BindingContext?), when we set the DataSource it clears the
13130         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
13131         #79333.
13132
13133 2006-09-11  Chris Toshok  <toshok@ximian.com>
13134
13135         * XplatUIX11.cs: deal with queue being null, which happens in all
13136         the Clipboard functions.  Fixes one of the two problems mentioned
13137         in #78612.
13138
13139 2006-09-11  Chris Toshok  <toshok@ximian.com>
13140
13141         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
13142         button on various spots (including outside the menu) works closer
13143         to MS, and doesn't crash.  Fixes #79343.
13144
13145 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
13146
13147         * ListView.cs: Do not initialize item_sorter in init. To match MS,
13148         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
13149         and the internal comparer is set. When a new ListViewItemSorter is set,
13150         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
13151         was specified. No further processing is necessary if SortOrder is set
13152         to it's current value. If Sorting is modified to None, and View is
13153         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
13154         (either custom or our internal ItemComparer) to null, on 1.0 profile
13155         only set item_sorter to null if its our internal IComparer. If Sorting
13156         is modified to Ascending or Descending, then use our internal IComparer
13157         if none is set, and if the current IComparer is our internal one then:
13158         on 2.0 profile always replace it with one for new Sorting, and on 1.0
13159         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
13160         Enum.IsDefined to verify whether a valid View value is specified in
13161         its setter. Automatically sort listview items when listview is
13162         created. In Sort, do nothing if ListView is not yet created, or if
13163         no item_sorter is set (no Sorting was set, Sorting was explicitly set
13164         to None or ListViewItemSorter was set to null). Added Sort overload
13165         taking a bool to indicate whether the ListView should be redrawn when
13166         items are sorted (we use this in ListViewItemCollection to avoid double
13167         redraws). Modified our internal IComparer to take the sort order into
13168         account. In Add and AddRange methods of ListViewItemCollection, also
13169         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
13170         view), but use overload with noredraw option to avoid double redraw.
13171         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
13172         true when View is Tile, and do the same when attempting to set View to
13173         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
13174         for selected/checked indices, as it involves overhead when sorting is
13175         done while these collections are not used all that often. Instead
13176         we'll build the indices on demand. Modified IList implementation of
13177         CheckedIndexCollection to use public methods if object is int.
13178         Modified CheckedListViewItemCollection to hide checked items if
13179         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
13180         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
13181         IList implementation in SelectedIndexCollection to use public methods
13182         if object is int. Modified SelectedListViewItemCollection to hide
13183         selected items if listview is not yet created.
13184         * ListViewItem.cs: CheckedIndices list no longer needs to be
13185         maintained separately (see ListView changes). Also clone font, fixes
13186         test failure.
13187
13188 2006-09-11  Mike Kestner  <mkestner@novell.com>
13189
13190         * ComboBox.cs: if we are updating the contents of the currently
13191         selected index, refresh the control or the textbox selection.
13192         [Fixes #79066]
13193
13194 2006-09-11  Mike Kestner  <mkestner@novell.com>
13195
13196         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
13197         the 'specified' logic has been moved there.  This seems like a bug 
13198         in Control.cs, since our current SetBoundsCore completely ignores 
13199         the specified parameter.  Peter's commit seems to indicate that is 
13200         the way the MS control implementation works.  [Fixes #79325]
13201
13202 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
13203
13204         * XplatUI.cs: Set default_class_name to be composed
13205         of current domain id. This allows MWF to be loaded in multiple
13206         domains on Win32.
13207
13208 2006-09-09  Miguel de Icaza  <miguel@novell.com>
13209
13210         * X11Keyboard.cs: If we are unable to obtain the input method, do
13211         not call CreateXic to create the input context.   Should fix
13212         #78944/79276.
13213
13214 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
13215
13216         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
13217           Simplified gnome support by adding more pinvokes to get the
13218           icon for a file or mime type.
13219
13220 2006-09-08  Jackson Harper  <jackson@ximian.com>
13221
13222         * MenuAPI.cs: Deslect popup context menu items before closing the
13223         window, so that you don't see the previously selected item
13224         selected when you reopen the menu.
13225         * TextControl.cs: Update the cursor position even if we don't have
13226         focus.  This fixes typing in things like the ComboBox.  I'm not
13227         totally sure we should always set the visibility if we don't have
13228         focus, but couldn't find any corner cases where the cursor showed
13229         up when it shouldn't.
13230
13231 2006-09-08  Chris Toshok  <toshok@ximian.com>
13232
13233         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
13234         our arrays are length 256.  & 0xff before indexing.  Fixes the
13235         crash in bug #78077.
13236         
13237 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13238
13239         * ThemeWin32Classic.cs: 
13240         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
13241         is true. Handle that check box too.
13242
13243 2006-09-07  Chris Toshok  <toshok@ximian.com>
13244
13245         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
13246         79244.
13247
13248 2006-09-07  Chris Toshok  <toshok@ximian.com>
13249
13250         * Control.cs: in set_BackColor only do the work if
13251         background_color != value.
13252
13253         * XplatUIX11.cs: move the clearing of invalid areas (both client
13254         and nc) to the same block of code where we set (nc_)expose_pending
13255         to false.  That is, move it from PaintEventEnd to PaintEventStart,
13256         so things that cause invalidates from within OnPaint will trigger
13257         another call to OnPaint.  Fixes bug #79262.
13258
13259 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
13260
13261         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
13262         * FileDialog.cs: Fix typo
13263
13264 2006-09-07  Jackson Harper  <jackson@ximian.com>
13265
13266         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
13267         for tab pages if they have any.
13268
13269 2006-09-06  Mike Kestner  <mkestner@novell.com>
13270
13271         * Splitter.cs: use the "current" rect when finishing drag handle
13272         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
13273
13274 2006-09-06  Mike Kestner  <mkestner@novell.com>
13275
13276         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
13277         support offset splitters. [Fixes #79298]
13278
13279 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
13280
13281         * Mime.cs: Fixed a bug that could override the global mime type
13282           result.
13283
13284 2006-09-05  Jackson Harper  <jackson@ximian.com>
13285
13286         * TabControl.cs: Better calculation method for setting the slider
13287         pos. Prevents crashes on really wide tabs.
13288         - Draw Image on tab pages if an image list is used.
13289
13290 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13291
13292         * MonthCalendar.cs: When Font changes, the Size should be
13293         updated to fit the new font's space requirements.
13294
13295 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
13296
13297         * ListBox.cs: If the items are cleared with Items.Clear set
13298           top_index to 0.
13299
13300 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13301
13302         * MonthCalendar.cs: Handle arrow keys as input keys. Also
13303         fire DateChanged event instead of DateSelected event when
13304         the date was changed by keyboard interaction.
13305
13306 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13307
13308         * DateTimePicker.cs: Handle DateChanged for the associated
13309         month_calendar control, and set month_calendar.Font from 
13310         OnFontChanged method, as well as resize the height of the
13311         control when needed. Make PreferredHeight proportional.
13312
13313 2006-09-01  Chris Toshok  <toshok@ximian.com>
13314
13315         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
13316         properties.
13317
13318         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
13319
13320 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
13321
13322         * FileDialog.cs: Set ClientSize instead of window size, to allow space
13323           for decorations (Fixes #79219)
13324
13325 2006-09-01  Mike Kestner  <mkestner@novell.com>
13326
13327         * ComboBox.cs: first stab at sorting plus some selection handling
13328         fixes to bring us more in line with MS behavior.  Also switches back
13329         to index based selection.  Alternative patches for index-based 
13330         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
13331         and latency@gmx.de on bug 78848.  I assume they were similar to this
13332         code I've had simmering in my tree forever.
13333         [Fixes #78848]
13334
13335 2006-09-01  Chris Toshok  <toshok@ximian.com>
13336
13337         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
13338         when setting list position guard against ending up with a -1 index
13339         (the other part of the fix for #78812).  Should probably make sure
13340         we don't need the analogous fix in the ItemDeleted case.
13341
13342         * DataGrid.cs:
13343         - in SetDataSource, work around the fact that the way
13344         OnBindingContextChanged is invoked will cause us to re-enter this
13345         method.  I'll remove the hack once I investigate
13346         OnBindingContextChanged.
13347
13348         - fix the logic in set_DataSource and set_DataMember (basically
13349         what to do if the other of the two is null.)
13350         
13351         - in OnListManagerItemChanged, we need to take into account the
13352         edit row when deciding whether or not to call RecreateDataGridRows
13353         (part of the fix for #78812).
13354
13355 2006-09-01  Jackson Harper  <jackson@ximian.com>
13356
13357         * Splitter.cs: Don't do anything if there is no control to affect
13358         (prevents us from crashing in weird tet cases).
13359         * TreeView.cs: Bounding box for the mouse movement reverting
13360         focus/selection back to previously selected node.  This matches
13361         MS, and makes the tree a lot more useable.
13362         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
13363         use clipping so they are not drawn.  This fixes when the control
13364         is set to have a transparent background, or if it was over an
13365         image.
13366
13367 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
13368
13369         * MimeIcon.cs: Improved handling for reading default icons when
13370           using gnome (2.16 made it necessary). Check and read svg icons
13371           first, then 48x48 and then 32x32 icons.
13372
13373 2006-08-31  Chris Toshok  <toshok@ximian.com>
13374
13375         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
13376         visible.
13377
13378         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
13379         ProcessKeyPreview.  Fixes part of #77806.
13380
13381         * DataGrid.cs: big patch.
13382
13383         - revert the queueing up of DataSource/DataMember if inside
13384         BeginInit/EndInit calls.  That's not the way the datagrid achieves
13385         its delayed databinding.  Instead, call SetDataSource in
13386         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
13387         #78811.
13388
13389         - Also, it wasn't mentioned in #78811, but the test case exhibits
13390         behavior that was lacking in our datagrid implementation - Columns
13391         that have mapping names that don't exist in the datasource's
13392         properties aren't shown.  Yuck.  To fix this I added the bound
13393         field to the column style, and basically any calculation to figure
13394         out anything about columns uses a loop to find the bound columns.
13395         still need to investigate if I can cache an array of the bound
13396         columns or if the indices must be the same.
13397
13398         - When setting CurrentCell, we no longer abort if the cell being
13399         edited was in the add row.  This fixes the other part of #77806.
13400
13401         - The new code also fixes #78807.
13402         
13403         * ThemeWin32Classic.cs: perpetrate the same disgusting
13404         column.bound field hack, and only render bound fields.
13405
13406 2006-08-31  Chris Toshok  <toshok@ximian.com>
13407
13408         * DataGridColumnStyle.cs: add bound field.  this field is true if
13409         the datasource has a property corresponding to the mapping name.
13410
13411         * DataGridTableStyle.cs: set the bound field on the column styles
13412         depending on whether or not we have a column for that property.
13413
13414 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
13415
13416         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
13417           splitter control (fixes #79228)
13418
13419 2006-08-31  Chris Toshok  <toshok@ximian.com>
13420
13421         * DataGridColumnStyle.cs: we need to delay the assignment of
13422         property descriptor until the last possible moment due to the lazy
13423         databinding stuff in the datagrid.  Also, fix the exceptions
13424         thrown by CheckValidDataSource to match MS.
13425
13426 2006-08-31  Jackson Harper  <jackson@ximian.com>
13427
13428         * Form.cs: When activated select the active control, if there is
13429         no active control, we select the first control.
13430         * XplatUIX11.cs: If there is no focus control when we get a
13431         FocusIn event, find the toplevel form and activate it.  This
13432         occurs when you popup a window, it becomes the focus window, then
13433         you close that window, giving focus back to the main window.
13434
13435 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13436
13437         * MonthCalendar.cs: 
13438         * ThemeWin32Classic.cs: Cache Font in bold style, as well
13439         as StringFormat with Center alignments in MonthCalendar,
13440         instead of creating new ones when drawing the control. 
13441         Also, draw the month name in bold style.
13442
13443 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
13444
13445         * Control.cs:
13446           - PerformLayout(): It would seem MS performs the fill even if the 
13447             control is not visible (part of #79218 fix)
13448           - ResetBackColor(): Use the setter to reset the color, to allow
13449             overriders to catch the change.
13450         * Form.cs:
13451           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
13452           - CreateHandle(): dito (part of $79218 fix)
13453           - Don't set an icon if we have a dialog
13454         * ScrollableControl.cs:
13455           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
13456           - ScrollIntoView(): No need to scroll if control is already visible
13457             (resolves fixme and fixes #79218)
13458
13459 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13460
13461         * MonthCalendar.cs: Change proportions in SingleMonthSize
13462         to match the aspect of the original control.
13463
13464 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
13465
13466         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
13467           get updated when they get maximized.
13468
13469 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
13470
13471         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
13472
13473 2006-08-29  Chris Toshok  <toshok@ximian.com>
13474
13475         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
13476
13477 2006-08-29  Jackson Harper  <jackson@ximian.com>
13478
13479         * TreeView.cs: Need to track selected node and highlighted node,
13480         they aren't always the same thing, when the mouse is down on a
13481         node it is hilighted, but not selected yet.
13482         - Do the HideSelection stuff right
13483         - Need to focus on rbutton mouse down. And redraw selection when
13484         right click is mouse upped.
13485
13486 2006-08-29  Mike Kestner  <mkestner@novell.com>
13487
13488         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
13489         when SubItems.Count < Columns.Count.  [Fixes #79167]
13490
13491 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
13492
13493         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
13494
13495 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
13496
13497         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
13498           from X. Only send based on ConfigureNotify if we don't have the
13499           correct location in hwnd (if the window manager moved us)
13500
13501 2006-08-28  Mike Kestner  <mkestner@novell.com>
13502
13503         * ListView.cs: remove a TODO. 
13504         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
13505         [Fixes ListView part of #79166]
13506
13507 2006-08-28  Mike Kestner  <mkestner@novell.com>
13508
13509         * ListView.cs: move wheel handler to parent since it is focused
13510         instead of the item_control now.  [Fixes #79177]
13511
13512 2006-08-28  Mike Kestner  <mkestner@novell.com>
13513
13514         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
13515         when the control is focused. [Fixes #79171]
13516
13517 2006-08-28  Mike Kestner  <mkestner@novell.com>
13518
13519         * ListView.cs: size the item and header controls for empty and
13520         unscrollable views.
13521         * ThemeWin32Classic.cs: draw disabled backgrounds.
13522         [Fixes #79187]
13523
13524 2006-08-28  Chris Toshok  <toshok@ximian.com>
13525
13526         * Form.cs: remove unused "active_form" static field.
13527
13528         * Hwnd.cs: lock around accesses to static windows collection.
13529
13530         * Application.cs: lock threads in Exit ().
13531
13532 2006-08-28  Chris Toshok  <toshok@ximian.com>
13533
13534         * NativeWindow.cs: lock around accesses to window_collection.
13535         
13536 2006-08-28  Chris Toshok  <toshok@ximian.com>
13537
13538         * Control.cs: err, fix this the right way, by locking on controls
13539         when using it.  not by making it synchronized.
13540
13541 2006-08-28  Chris Toshok  <toshok@ximian.com>
13542
13543         * Control.cs: make the static "controls" field synchronized, as it
13544         gets updated from multiple threads.
13545
13546 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
13547
13548         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
13549           Prevent other threads from exiting when calling thread sets quit state.
13550         * XEventQueue.cs: Added PostQuitState property
13551
13552 2006-08-27  Chris Toshok  <toshok@ximian.com>
13553
13554         * AsyncMethodData.cs: add a slot for the window handle.
13555
13556         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
13557         window (the destination control's window, not the foster window).
13558
13559         * Control.cs (BeginInvokeInternal): store the window's handle in
13560         the AsyncMethodData.
13561         
13562
13563 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
13564
13565         * XplatUIX11.cs:
13566           - PostQuitMessage: Removed resetting S.D display handle, we might have
13567             another loop started after calling PostQuitMessage (Fixes #79119)
13568           - Created destructor to reset S.D handle
13569
13570 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
13571
13572         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
13573
13574 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
13575
13576         * TextControl.cs (Insert): Update the caret position even if we don't
13577           have a handle yet, just don't call the driver in that case.
13578         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
13579           to the end of the new selection text (Fixes #79184)
13580
13581 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
13582
13583         * Form.cs (Activate): Only activate if the handle is created)
13584         * Control.c:
13585           - Mark window as invisible when it's disposed
13586           - Check if window handle is created when setting window visible, 
13587             instead of relying just on the is_created variable
13588           - Check if object is disposed when creating the control (Fixes #79155)
13589
13590 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
13591
13592         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
13593           when allowing layout again. Otherwise we re-generate the anchoring 
13594           distance to the border again and actually alter what the user wanted
13595           This is ugly, it'd be better if we used DisplayRectangle instead of
13596           ClientRectangle for Control.UpdateDistances, but that causes us to
13597           have other problems (initial anchoring positons would be wrong)
13598           (Fixes #78835)
13599
13600 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
13601
13602         * Control.cs:
13603           - The size and location setters shouldn't go directly to 
13604             SetBoundsCore, but to SetBounds, which triggers layout on the
13605             parent, then calls SetBoundsCore. (Related to fix for #78835)
13606           - SetBounds: Moved actual location update code into this function
13607             from SetBoundsCore, to match MS. Added call to PerformLayout if
13608             we have a parent (to trigger resizing of anchored parents if the 
13609             child size has changed (see testcase for #78835) 
13610         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
13611           new control code
13612         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
13613
13614 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
13615
13616         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
13617           System.Drawing when a toplevel window gets closed; there might
13618           be other toplevel windows belonging to the same app (Fixes #78052)
13619
13620 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
13621
13622         * FileDialog.cs: After reading FileDialog settings from mwf_config
13623           use Desktop prefix only if a real folder doesn't exist anymore.
13624         * FontDialog.cs: Added char sets.
13625           It is now possible to select the font, size or style with the
13626           textboxes.
13627
13628 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
13629
13630         * PrintPreviewDialog.cs: Use assembly name constants.
13631
13632 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
13633
13634         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
13635           scrollbar from whacking it's buttons)
13636
13637 2006-08-24  Chris Toshok  <toshok@ximian.com>
13638
13639         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
13640         in this patch (aggregating setting Left/Top/Width/Height to
13641         setting Bounds on the scrollbars), but the crux of the fix is in
13642         Recalculate, where we scroll by the remaining scroll_position if
13643         we're hiding a scrollbar.  The 2*$5 reward in the comment is
13644         serious.
13645
13646 2006-08-24  Jackson Harper  <jackson@ximian.com>
13647
13648         * MdiClient.cs:
13649         * MdiWindowManager.cs: If the form is made a non-mdi window we
13650         need to remove the form closed event so that closing forms works
13651         correctly.
13652
13653 2006-08-24  Jackson Harper  <jackson@ximian.com>
13654
13655         * Control.cs: Make IsRecreating internal so that the driver can
13656         check it
13657         - Temporarily remove the Hide when controls are removed, its
13658         making a whole bunch of things not work because visibility isn't
13659         getting reset elsewhere correctly
13660         * Form.cs: Need to do a full handle recreation when the mdi parent
13661         is set.
13662         * XplatUIX11.cs: If we are recreating handles don't dispose the
13663         HWNDs.  What was happening is the handles were being recreated in
13664         SendWMDestroyMessages, but then flow continued on in that method
13665         and destroyed the new handles.
13666
13667 2006-08-23  Jackson Harper  <jackson@ximian.com>
13668
13669         * Form.cs: MdiClient is always at the back of the bus
13670         * Control.cs: When the order of items in the collection is changed
13671         we need to reset the all_controls array
13672         - do the same sorta setup thats done when adding a control when a
13673         control is set on the collection.
13674
13675 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
13676
13677         * TextBoxBase.cs (get_Text): Return an empty array if our document
13678           is empty (fixes #79052)
13679
13680 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
13681
13682         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
13683           on WM_SYSCHAR messages (fixes #79053)
13684
13685 2006-08-23  Chris Toshok  <toshok@ximian.com>
13686
13687         * DataGrid.cs: fix flickering when scrolling vertically.
13688
13689 2006-08-23  Chris Toshok  <toshok@ximian.com>
13690
13691         * DataGrid.cs (EndEdit): only invalidate the row header when we
13692         need to.
13693
13694 2006-08-23  Chris Toshok  <toshok@ximian.com>
13695
13696         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
13697         methods.  fixes the flicker when scrolling around.
13698
13699 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
13700
13701         * FileDialog.cs: Making sure the control is created before we get a 
13702           chance to use it with BeginInvoke (Fixes #79096)
13703
13704 2006-08-23  Chris Toshok  <toshok@ximian.com>
13705
13706         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
13707         width to use when painting the rows.
13708
13709 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
13710
13711         * TextBoxBase.cs:
13712           - Throw ArgumentException if a negative value is passed to SelectionLength
13713           - Update the selection end if start is moved. end needs to be always
13714             after start. (Fixes #79095)
13715           - Track selection length; MS keeps the selection length even if start
13716             is changed; reset on all other operations affection selection
13717
13718 2006-08-22  Jackson Harper  <jackson@ximian.com>
13719
13720         * TreeView.cs: Make sure both scrollbars get displayed and sized
13721         correctly when the other bar is visible.
13722         - Use the original clip rectangle for checking if the area between
13723         the two scrollbars is visible, not the viewport adjusted clipping
13724         rectangle.
13725
13726 2006-08-22  Jackson Harper  <jackson@ximian.com>
13727
13728         * Binding.cs: We don't use IsBinding because it requires the
13729         control to be created, which really shouldn't be necessary just to
13730         set a property on the control.
13731
13732 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13733
13734         * ComboBox.cs: Some CB.ObjectCollection methods must throw
13735         ArgumentNullReferenceException when the argument is null.
13736
13737 2006-08-21  Jackson Harper  <jackson@ximian.com>
13738
13739         * Timer.cs: Track the thread that the timer is started in (NOT
13740         CREATED), this way messages for it will only be triggered on its
13741         queue.
13742         * XEventQueue.cs: Track the timers here, this makes timers per
13743         thread, like MS.
13744         * XplatUIX11.cs: The timers are moved to the XEventQueue.
13745
13746 2006-08-19  Chris Toshok  <toshok@ximian.com>
13747
13748         * XplatUIX11.cs: after further communication with pdb, we get the
13749         best of both worlds.  SetZOrder working for un-Mapped windows, and
13750         no X errors for un-mapped windows.
13751
13752 2006-08-19  Chris Toshok  <toshok@ximian.com>
13753
13754         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
13755         as it was causing pdn toolbars to not have the correct stacking.
13756
13757 2006-08-18  Mike Kestner  <mkestner@novell.com> 
13758
13759         * ListView.cs : guard against negative ClientArea.Width in scrollbar
13760         calculation.  Not sure why control should ever be setting a negative
13761         width though.  Fixes #78931.
13762
13763 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13764
13765         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
13766         null items in ObjectCollection class.
13767         * ListBox.cs.: Likewise.
13768
13769 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
13770
13771         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
13772           as the base method in ThemeWin32Classic should work fine.
13773           Fixed bug #78607.
13774
13775 2006-08-18  Jackson Harper  <jackson@ximian.com>
13776
13777         * Binding.cs: When validating if the value entered doesn't convert
13778         properly reset to the old value.
13779         * RadioButton.cs: Don't fire click when we get focus.
13780
13781 2006-08-18  Jackson Harper  <jackson@ximian.com>
13782
13783         * FileDialog.cs: Paint the selection on the directory combobox the
13784         same way as on MS. 
13785
13786 2006-08-17  Jackson Harper  <jackson@ximian.com>
13787
13788         * ErrorProvider.cs: Don't allow the error control to be selected.
13789         * Control.cs: Don't send the SetFocus messages, the control
13790         activation will do this, and if we do it blindly here validation
13791         does not work.
13792
13793 2006-08-17  Jackson Harper  <jackson@ximian.com>
13794
13795         * Control.cs:
13796         * ContainerControl.cs: Make validation events fire in the correct
13797         order.  TODO: For some reason the first validation event is not
13798         getting fired.
13799
13800 2006-08-17  Mike Kestner  <mkestner@novell.com> 
13801
13802         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
13803
13804 2006-08-17  Mike Kestner  <mkestner@novell.com> 
13805
13806         * ComboBox.cs : implement scroll wheel support for popped-down
13807         state. Fixes #78945. 
13808
13809 2006-08-17  Jackson Harper  <jackson@ximian.com>
13810
13811         * TreeView.cs: Specify treeview actions (old patch that didn't get
13812         committed for some reason).
13813         - Don't let the mouse wheel scroll us too far.  Just want to make
13814         the bottom node visible, not scroll it all the ways to the top.
13815
13816 2006-08-17  Jackson Harper  <jackson@ximian.com>
13817
13818         * XplatUIX11.cs: Mouse wheel events go to the focused window.
13819
13820 2006-08-17  Mike Kestner  <mkestner@novell.com> 
13821
13822         * ComboBox.cs : don't do mouseover selection in simple mode.
13823
13824 2006-08-16  Jackson Harper  <jackson@ximian.com>
13825
13826         * Form.cs: Fire the closing events for all the mdi child windows
13827         when a window is closed.  If the cancel args are set to true, the
13828         main window still gets the event fired, but it doesn't not close.
13829         * MdiWindowManager.cs: Do this closing cleanup in a Closed
13830         handler, instead of when the button is clicked, so cancelling the
13831         close works correctly.
13832         * ComboBox.cs: Send the mouse down to the scrollbar.
13833
13834 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13835
13836         * ListBox.cs: When passing 'null' to SelectedItem,
13837         set SelectedIndex to -1, to unselect items. This is the
13838         observed behaviour in .Net.
13839
13840 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
13841
13842         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
13843           MS flags saying there won't be any. (fixes #78800)
13844         * Control.cs (HandleClick): Made virtual
13845
13846 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
13847
13848         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
13849           cultures. Fixed bug #78399.
13850
13851 2006-08-16  Jackson Harper  <jackson@ximian.com>
13852
13853         * Form.cs: Use the MdiClients MdiChildren property to access
13854         MdiChildren instead of creating the array from the child controls.
13855         * MdiClient.cs: Maintain a separate array of the mdi children, so
13856         that insertion order is maintained when the Z-order is changed.
13857
13858 2006-08-16  Mike Kestner  <mkestner@novell.com> 
13859
13860         * ListView.cs : add an ItemComparer and default to it for sorting.
13861         Fixes #79076, but sorting needs a complete overhaul to be compat with
13862         MS.
13863
13864 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
13865
13866         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
13867
13868 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
13869
13870         * Hwnd.cs (Mapped): Properly traverse the tree
13871
13872 2006-08-15  Chris Toshok  <toshok@ximian.com>
13873
13874         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
13875         pass manager.Current.GetType() to ParseData.  It has to be the
13876         property type.  So, hold off doing the ParseData until we're in
13877         SetPropertyValue where we know the type.  This fixes the crash in
13878         #78821 but the textbox is still empty.
13879
13880 2006-08-15  Chris Toshok  <toshok@ximian.com>
13881
13882         * DataGrid.cs:
13883         - when we're scrolling, only call Edit() again if the
13884         current cell is still unobscured. Fixes bug #78927.
13885         - when handling mousedown on a cell, ensure the cell is visible
13886         before calling Edit.
13887         - remove the properties from DataGridRow, and remove the
13888         DataGridParentRow class altogether.
13889         
13890
13891 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
13892
13893         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
13894           fire OnTextChanged by ourselves. There's no point calling base,
13895           we don't set the base value anywhere else. Fixes #78773.
13896
13897 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13898
13899         * ListBox.cs: Call CollectionChanged when modifying
13900         an item from Items indexer, to update the actual items
13901         in the list box.
13902
13903 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13904
13905         * PrintDialog.cs: Small fixes for focus and a pair of checks,
13906         to match .Net behaviour.
13907
13908 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
13909
13910         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
13911
13912 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
13913
13914         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
13915
13916 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
13917
13918         * MessageBox.cs: Prevent potential NRE exception.
13919         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
13920
13921 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
13922
13923         * MessageBox.cs: Calculate the owner of a messagebox, also make
13924           it topmost. Fixes #78753
13925
13926 2006-08-14  Chris Toshok  <toshok@ximian.com>
13927
13928         * XplatUIX11.cs: A couple of fixes so that metacity will let us
13929         programmatically move windows.  first, set the PPosition hint as
13930         well as the USPosition hint.  Second include some code from pdb
13931         that sets the window type to NORMAL when we set the transient for
13932         hint.  This is because, in the absence of a window type, metacity
13933         thinks any window with TransientFor set is a dialog, and refuses
13934         to let us move it programmatically.  fascists.
13935
13936 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
13937
13938         * XplatUIX11.cs: When setting normal hints, take into consideration
13939           an different hints previously set so we don't delete them (fixes #78866)
13940
13941 2006-08-12  Chris Toshok  <toshok@ximian.com>
13942
13943         * ToolBarButton.cs: make Layout return a boolean, if something to
13944         do with the button's layout changed.
13945
13946         * ToolBar.cs:
13947         - add another parameter to Redraw, @force, which all existing
13948           calls set to true.
13949         - make the Layout function return a boolean which is true if the
13950           layout has actually changed.  Redraw now uses this (and @force)
13951           to determine when to invalidate.  At present the only place
13952           where @force can be false is the call from OnResize, when
13953           background_image == null.  So, resizing a toolbar when the
13954           layout doesn't change results in no drawing.
13955
13956 2006-08-12  Chris Toshok  <toshok@ximian.com>
13957
13958         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
13959         the VScrollBar and HScrollbar reversed.  oops.
13960
13961         * DataGrid.cs: fix the logic that assigns sizes to the implicit
13962         scrollbars.  we were assigning them twice (once in
13963         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
13964         therefore causing two scrollbar resizes (and redraws?) to happen
13965         per grid resize.
13966
13967 2006-08-12  Chris Toshok  <toshok@ximian.com>
13968
13969         * ToolBarButton.cs: redraw the entire button if the theme tells us
13970         to.
13971
13972         * Theme.cs: add ToolBarInvalidateEntireButton.
13973
13974         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
13975         buttons, just the border.
13976
13977         * ThemeNice.cs: redraw the entire toolbar button since we need to
13978         draw the highlight image.
13979
13980         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
13981         we need to redraw the entire button (not just the border).
13982
13983 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
13984
13985         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
13986           for vertical bars. Fixes the mismatches shown by #78513
13987
13988 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
13989
13990         * FileDialog.cs: If a saved/remembered path doesn't exist
13991           anymore, fall back to "Desktop".
13992
13993 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
13994
13995         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
13996           parent. It's apparently legal to not have one
13997         * XplatUIX11.cs:
13998           - SetZOrder: Don't try to set Z-Order on an unmapped window
13999           - CreateWindow: 0,0 are legal coordinates for a window. don't move
14000             it unless the coordinates are negative
14001
14002 2006-08-10  Mike Kestner  <mkestner@novell.com>
14003
14004         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
14005         when setting to null per msdn docs.  Fixes #78854.
14006
14007 2006-08-10  Chris Toshok  <toshok@ximian.com>
14008
14009         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
14010         flickering by setting a clip rectangle on the Graphics when we
14011         need to redraw just a particular menuitem.  Also, rename "OnClick"
14012         to "OnMouseDown" to reflect what it actually is.
14013         
14014         * Form.cs: track the OnMouseDown change.
14015
14016 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
14017
14018         * CommonDialog.cs: Properly inherit the CreateParams from the form
14019           and only change what we need. Fixes #78865
14020
14021 2006-08-10  Chris Toshok  <toshok@ximian.com>
14022
14023         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
14024         flickering in flat mode (and most of the flickering in general) by
14025         only invalidating the button border (and not the entire rectangle)
14026         when the state changes.  A couple of cases still flicker:
14027         ToggleButtons, and the dropdown arrow case when the user mouse
14028         ups.
14029
14030 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
14031
14032         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
14033           for german keyboards. Numlock state shouldn't affect the behaviour
14034           of the Del key. Fixes bug #78291.
14035
14036 2006-08-10  Chris Toshok  <toshok@ximian.com>
14037
14038         * ListControl.cs: remove the items.Clear line from BindDataItems,
14039         as this is the first thing done by both subclasses in their
14040         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
14041         passed -1, refresh the list.  This gets databinding working when
14042         the datasource is set on the list before the datasource is
14043         populated (as in wf-apps/ReportBuilder.)
14044
14045         * ComboBox.cs: remove the argument to BindDataItems.  This call
14046         should really go away, and be initiated by the ListControl code.
14047
14048         * ListBox.cs: same.
14049
14050 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
14051
14052         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
14053           if no data is in the document when the control is displayed
14054
14055 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
14056
14057         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
14058           yes (fixes #78806)
14059         * TextControl.cs: 
14060           - PositionCaret: Allow positioning of caret but don't call methods 
14061             requiring a handle if the window isn't created yet
14062           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
14063           - owner_HandleCreated: Don't position the caret, just update it's 
14064             location. User might have already set a different position
14065
14066 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
14067
14068         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
14069           windows. Screws up the returned coordinates for child windows. 
14070           Fixes #78825. I'm hoping this doesn't break something, since the
14071           code was explicitly put in 8 months ago, but no bug was attached.
14072           Menus still seem to work properly.
14073
14074 2006-08-08  Chris Toshok  <toshok@ximian.com>
14075
14076         * DataGrid.cs: make BeginInit/EndInit actually do what they're
14077         supposed to do - delay data binding until the EndInit call.  Also,
14078         make the table style collection's CollectionChangeAction.Refresh
14079         work properly.
14080
14081         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
14082         (with action = Refresh) when a consituent table's MappingName is
14083         changed.
14084
14085 2006-08-08  Chris Toshok  <toshok@ximian.com>
14086
14087         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
14088         Invalidate, since changing the text can change the size of the all
14089         toolbar buttons.
14090
14091 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
14092
14093         * Form.cs (AddOwnedForm): Still need to add the form to our listif
14094           we don't have it yet
14095
14096 2006-08-08  Chris Toshok  <toshok@ximian.com>
14097
14098         * PrintControllerWithStatusDialog.cs: don't .Close() the status
14099         dialog, as this causes X errors later on, since we actually
14100         destroy the window.  Instead, .Hide() it.
14101
14102 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
14103
14104         * ComboBox.cs: Added focus reflection for popup window
14105         * XplatUIX11.cs: 
14106           - Removed transient setting for non-app windows for now, not sure it
14107             was needed
14108           - Fixed logic checking if we have captions when deciding 
14109             override_redirect, WS_CAPTION is two bits and a 0 check was not
14110             sufficient
14111           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
14112             complicated
14113         * Form.cs: 
14114           - AddOwnedForm: Don't just add the form to the list, call the property
14115             to ensure the driver is informed about the ownership as well
14116           - CreateHandle: Set the TopMost status in the driver if we have an owner
14117         * XplatUI.cs: Fixed debug statement
14118
14119 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
14120         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
14121           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
14122           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
14123           TrackBarRenderer.cs: Make constructor private.
14124         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
14125         * ProfessionalColorTable.cs: Make properties virtual.
14126
14127 2006-08-06  Duncan Mak  <duncan@novell.com>
14128
14129         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
14130         is not changing.
14131
14132 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
14133         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
14134           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
14135           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
14136           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
14137           Initial import of new 2.0 classes.
14138
14139 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
14140         * Application.cs: Add 2.0 VisualStyles properties.
14141
14142 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
14143         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
14144           XplatUIX11.cs: Create property to allow access to existing private
14145           variable "themes_enabled"
14146
14147 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14148
14149         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
14150         file size, as otherwise our class libraries fail using windows. Fixes
14151         bug #78759.
14152
14153 2006-08-04  Jackson Harper  <jackson@ximian.com>
14154
14155         * Form.cs:
14156         * XplatUIX11.cs: Move the toolwindow window manager creation into
14157         the X11 driver, this way on win32 we can let windows create/handle
14158         the toolwindows.
14159
14160 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14161
14162         * PrintDialog.cs: Remove some redundant checks, add some others,
14163         clean some code, and move the focus to the text boxes when the
14164         values are incorrect.
14165
14166 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
14167
14168         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
14169
14170 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
14171
14172         * NumericUpDown.cs: Setting the Minimum and Maximum is now
14173           handled correctly. Fixes bug #79001.
14174
14175 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14176
14177         * PrintDialog.cs: The "Copies" numeric up down must have
14178         set the Minimum property to 1; only if the value is bigger
14179         than 1, activate "Collate" check box. This is the behaviour of .Net.
14180         Also modify the Document elements only if it is not null.
14181
14182 2006-08-03  Jackson Harper  <jackson@ximian.com>
14183
14184         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
14185         length. (We have a larger array then actual node count).
14186                 
14187 2006-08-03  Jackson Harper  <jackson@ximian.com>
14188
14189         * ComboBox.cs: Don't show selection by default.
14190         - The SelectAll isn't needed here, since the focus code should do
14191         that
14192         - DDL style lists to manual selection drawing, so when they
14193         get/lose focus they have to invalidate.
14194
14195 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
14196
14197         * TextBoxBase.cs: Don't always show all selections by default.
14198
14199 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
14200         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
14201           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
14202           Fixed various typos.
14203
14204 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
14205
14206         * Control.cs: Removing the controls in a ControlCollection with
14207           Clear now hides the controls as expected. Fixes bug #78804. 
14208
14209 2006-08-03  Jackson Harper  <jackson@ximian.com>
14210
14211         * Control.cs: Revert previous focus patch, it breaks reflector.
14212
14213 2006-08-03  Jackson Harper  <jackson@ximian.com>
14214
14215         * ComboBox.cs: Cleanup selection and focus with the combobox.
14216         This also eliminates some duplicated keyboard code, since now
14217         everything is handled by the main class.
14218         - Make list selection work on mouse up instead of down, to match
14219         MS.
14220
14221 2006-08-02  Jackson Harper  <jackson@ximian.com>
14222
14223         * Control.cs: Setting focus needs to go through the whole
14224         selection mechanism.
14225
14226 2006-08-02  Chris Toshok  <toshok@ximian.com>
14227
14228         * PrintPreviewDialog.cs: change MinimumSize to use
14229         base.MinimumSize so it works.
14230
14231 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
14232
14233         * TextControl.cs:
14234           - UpdateCaret: Added sanity check in case caret isn't defined yet
14235           - Line.Delete: Now updating selection and caret markers if we're
14236             transfering a node (Properly fixes #78323)
14237           - SetSelectionEnd: Added sanity check
14238         * TextBoxBase.cs: Removed broken attempt to fix #78323
14239
14240 2006-08-01  Chris Toshok  <toshok@ximian.com>
14241
14242         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
14243         Close() call is handled in Form, not here.
14244
14245 2006-08-01  Chris Toshok  <toshok@ximian.com>
14246
14247         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
14248         layout/rendering.
14249
14250         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
14251         for sizes < 100% zoom.  The code now aggressively attempts to keep
14252         from calling document.Print (), and tries not to use the scaling
14253         g.DrawImage whenever possible (it still does if you scale to >
14254         100%, since usually that involves huge images).
14255
14256         * PrintPreviewControl.cs: hook up the close button.
14257
14258 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
14259         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
14260           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
14261           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
14262           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
14263           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
14264           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
14265           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
14266           Removed [Serializable] for 2.0 Event Handlers.
14267
14268 2006-07-31  Jackson Harper  <jackson@ximian.com>
14269
14270         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
14271         * TextControl.cs: Uncomment out the body of this method.
14272
14273 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
14274
14275         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
14276           standard cursors.
14277
14278 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
14279
14280         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
14281           that embed TextBox and need selections visible even if textbox is not
14282           focused to enforce that behaviour.
14283         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
14284           selection drawing
14285
14286 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
14287
14288         * TextControl.cs:
14289           - Added new SetSelectionStart/SetSelectionEnd overloads
14290           - Fixed viewport width assignment to be accurate
14291           - Adjusted alignment line shift calculations to allow cursor on right
14292             aligned lines to be always visible at the right border (like MS)
14293         * TextBoxBase.cs:
14294           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
14295           - TextBoxBase_SizeChanged: recalculating canvas on size changes
14296           - CalculateScrollBars: Use ViewPort size instead of window size, to
14297             properly consider space occupied by the border and scrollbars 
14298             (Fixes #78661)
14299           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
14300             calculations; no longer leaves artifacts
14301           - CaretMoved: Adjusted window scrolling to match MS and fixed several
14302             calculation bugs (Still missing right/center align calculations)
14303
14304 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
14305
14306         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
14307           use of both scroll rect and clip rect, as they do the same.
14308
14309 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
14310
14311         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
14312           in the event handler (fixes #78912)
14313
14314 2006-07-31  Chris Toshok  <toshok@ximian.com>
14315
14316         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
14317         grid.ListManager.Count, since grid.ListManager might be null.
14318         This of course begs the question "why are we drawing rows for a
14319         grid with no list manager (and therefor no rows)?"  Fixes the
14320         crash in bug #78929.
14321
14322 2006-07-31  Chris Toshok  <toshok@ximian.com>
14323
14324         * RelatedPropertyManager.cs: Don't always chain up to the parent
14325         ctor.  instead, call SetDataSource if the parent's position is !=
14326         -1.  Fixes the crash in #78822.
14327
14328 2006-07-31  Chris Toshok  <toshok@ximian.com>
14329
14330         * DataGrid.cs (get_ListManager): use field instead of property
14331         accessors for datasource and datamember.
14332         (RowsCount): make internal again.
14333         (OnMouseDown): end edits before resizing columns/rows.
14334         (OnMouseUp): restart edits after resizing columns/rows.
14335
14336 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
14337
14338         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
14339           This fixes the situation where the last set cursor is displayed
14340           whenever the mouse is over scrollbars.
14341
14342 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14343
14344         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
14345         Document properties, as well as initial values.
14346
14347 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
14348
14349         * XplatUIWin32.cs (SetBorderStyle): Setting both border
14350           and ClientEdge results in a 3-pixel border, which is
14351           wrong.
14352
14353 2006-07-28  Jackson Harper  <jackson@ximian.com>
14354
14355         * TreeNodeCollection.cs: Fix the clear method.
14356         - Fix the Shrink also
14357
14358 2006-07-27  Jackson Harper  <jackson@ximian.com>
14359
14360         * TreeView.cs: Make sure the visible order is computed when we
14361         attempt to size the scrollbars (for trees that mess with the
14362         scrolling when they shouldn't.
14363         - Make sure to give the scrollbars valid values.
14364
14365 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
14366
14367         * XplatUIX11.cs: Move motion compression code to where it
14368           has less performance impact
14369
14370 2006-07-26  Jackson Harper  <jackson@ximian.com>
14371
14372         * UpDownBase.cs: When the control is selected make the child
14373         controls non selectable, so that a click on them won't do a
14374         focus/unfocus cycle.
14375         - Don't give focus to the text box when the spinner is selected.
14376         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
14377
14378 2006-07-26  Chris Toshok  <toshok@ximian.com>
14379
14380         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
14381         satisfied with this solution.  If the bitmaps are small, we should
14382         just cache them in the PrintPreviewDialog and draw them here.
14383         Also, the layout is broken for the 2-up and 3-up cases.
14384
14385         * Theme.cs: add PrintPReviewControlPaint.
14386
14387         * PrintPreviewDialog.cs: first pass implementation.
14388
14389         * PrintPreviewControl.cs: first pass implementation.  No
14390         scrollbars yet.
14391
14392         * PrintDialog.cs: only validate fields if that particular portion
14393         of the UI is enabled.  Also, set the document's controller to a
14394         PrintControllerWithStatusDialog wrapping the document's print
14395         controller.
14396
14397         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
14398         bring up a SaveFileDialog (i hope we don't want to match the
14399         behavior of the crappy windows file entry) and set the
14400         PrinterSettings.PrintFileName accordingly.
14401
14402 2006-07-26  Jackson Harper  <jackson@ximian.com>
14403
14404         * ContainerControl.cs: Add a field that disables auto selecting
14405         the next control in a container when the container is activated.
14406         * UpDownBase.cs: Don't select the text box when the up down is
14407         selected.
14408
14409 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
14410
14411         * XEventQueue.cs: Added methods for peeking (used for compression
14412           of successive events)
14413         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
14414           mouse move events (fixes #78732)
14415
14416 2006-07-25  Jackson Harper  <jackson@ximian.com>
14417
14418         * UpDownBase.cs: Use an internal class for the textbox so that we
14419         can control focus.  the updown control should always have focus,
14420         if either the text area or the buttons are clicked.
14421         - Send the key messages to the textbox, since it never actually
14422         has focus
14423         - Activate and decativate the textbox caret.
14424
14425 2006-07-24  Jackson Harper  <jackson@ximian.com>
14426
14427         * Control.cs: Use the directed select when selecting a control,
14428         this way the container controls override will get called and the
14429         whole ActiveControl chain will get triggered.  TODO: probably need
14430         to make sure this gets done everywhere instead of the old
14431         Select(Control).
14432         * ContainerControl.cs: Implement the directed Select method to
14433         find and activate the correct child control.    
14434         
14435 2006-07-22  Mike Kestner  <mkestner@novell.com>
14436
14437         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
14438         menu handling code so that clicks without a grab work too.
14439         [Fixes #78914]
14440
14441 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
14442
14443         * FileDialog.cs: Enable the BackButton when dirstack has one element.
14444           Added some small optimizations.
14445
14446 2006-07-21  Matt Hargett  <matt@use.net>
14447
14448         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
14449
14450 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
14451
14452         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
14453           tests pass and match MS in some strange border cases.
14454
14455 2006-07-21  Chris Toshok  <toshok@ximian.com>
14456
14457         * ThemeWin32Classic.cs: handle drawing of the relation links and
14458         parent row buttons.
14459
14460         * Theme.cs: change args to DataGridPaintParentRow.
14461
14462         * DataGrid.cs: Don't use controls for the relation links and
14463         parent buttons, so we have to handle all their interactions in
14464         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
14465         when we're navigating through child tables, so we can reinstate
14466         selection, expanded state, current cell, etc.
14467
14468 2006-07-20  Chris Toshok  <toshok@ximian.com>
14469
14470         * ToolBar.cs: When we redraw a button, for whatever reason,
14471         there's no reason to redraw the entire toolbar.  Also, don't call
14472         Control.Refresh from within Redraw, as it's much heavier than
14473         Invalidate (which is really what we want).
14474
14475 2006-07-20  Chris Toshok  <toshok@ximian.com>
14476
14477         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
14478         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
14479         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
14480         traces from within a debug IBindingList datasource
14481         (in mono/winforms/datagrid) for *days*, I've finally gotten things
14482         to work in a similar fashion.
14483
14484 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14485
14486         * ListBox.cs: Don't call Sort () when setting 
14487         the Sorted property to false (avoid an unnecessary sort).
14488
14489 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14490
14491         * ListControl.cs: DataSource should throw an ArgumentException
14492         instead of a normal exception when the argument is not of the 
14493         correct type.
14494
14495 2006-07-20  Mike Kestner  <mkestner@novell.com>
14496
14497         * Control.cs: add InternalPreProcessMessage to allow us to steal
14498         key events before MWF gets its paws on them.  Adapted from a
14499         suggestion by eno.
14500         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
14501         up/down/left/right navigation. Override the new internal control
14502         method to steal the events since they never make it to WndProc.
14503         * ToolBarButton.cs: don't worry about pushed when setting hilight
14504         since the drawing code prefers pushed to hilight. Invalidate on 
14505         Hilight changes. Fixes #78547 and #78525.
14506
14507 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
14508
14509         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
14510           the canvas size. Fixes #78868
14511
14512 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
14513
14514         * Splitter.cs: Track requested split position until first layout
14515           is performed. Fixes #78871
14516
14517 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
14518
14519         * Application.cs: Removed code that forces 1.x for the version
14520           number if the version started with 0. Not sure why that code was
14521           there and I couldn't find any bugs that indicated we needed it.
14522           Fixes #78869
14523
14524 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
14525
14526         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
14527           ResetDefaults(), just write some output to the console until it's
14528           implemented. Fixes bug #78907 for now. Eliminated two warnings.
14529
14530 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
14531
14532         * PropertyGridView.cs: set StartPosition of drop down forms
14533         so they appear in correct initial spot.  Fixes #78190.
14534
14535 2006-07-19  Mike Kestner  <mkestner@novell.com>
14536
14537         * ThemeWin32Classic.cs: use parent background color when drawing
14538         flat toolbars.  Restructure the conditionals to make sure non-flat
14539         non-Divider toolbars are filled too.  Fixes #78837.
14540
14541 2006-07-19  Mike Kestner  <mkestner@novell.com>
14542
14543         * ListBox.cs: Sort on collection changes even if the handle
14544         isn't created yet.  Fixes #78813.
14545
14546 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14547
14548         * ListControl.cs: DisplayMember should never be null,
14549         and now we assign String.Empty when null is passed to it (this
14550         is the .Net way).
14551
14552 2006-07-17  Mike Kestner  <mkestner@novell.com>
14553
14554         * ListViewItem.cs: restructure Font and subitem Font handling 
14555         to hold a specific font and refer back to owner on null.
14556         Fixes #78761.
14557
14558 2006-07-17  Mike Kestner  <mkestner@novell.com>
14559
14560         * ToolBar.cs: bandaid for side-effect of previous patch which was
14561         discarding explicit heights for non-AutoSize toolbars.  Need to
14562         extend my format tester to deal with AutoSize=false. Fixes #78864.
14563
14564 2006-07-15  Jackson Harper  <jackson@ximian.com>
14565
14566         * LabelEditTextBox.cs:
14567         * TreeView.cs: Use a new LabelEdit class for node editing, this
14568         class automatically 'closes' itself when it gets the enter key or
14569         loses focus.
14570         - Use the client rectangle when setting the trees scrollbars, so
14571         border style is taken into account.
14572         
14573 2006-07-14  Jackson Harper  <jackson@ximian.com>
14574
14575         * TreeNode.cs:
14576         * TreeView.cs: Make the editing work similar to MSs, firing the
14577         events correctly and ending edits correctly.
14578
14579 2006-07-14  Mike Kestner  <mkestner@novell.com>
14580
14581         * ToolBarButton.cs:
14582         * ToolBar.cs: layout restructuring and redraw enhancements to support
14583         formatting changes gracefully, like setting TextAlign, ImageList, 
14584         ButtonSize, and Appearance.  Handles explicit button sizing quirks
14585         of the MS controls.  Things like flat toolbars ignoring button size
14586         but becoming constant sized at the largest button's size.  Normal
14587         toolbars with an image set cannot be shrunk smaller than the image,
14588         but text can be clipped/ignored.
14589         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
14590         is zero.  Seems like DrawString should be smart enough to not put
14591         anything on screen though. Also trim labels and ellipsize at the char
14592         boundary, not word.
14593         Fixes #78711 and #78483.
14594
14595 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
14596
14597         * FolderBrowserDialog.cs: Disable "New Folder" button and
14598           "New Folder" contextmenu menuitem if a folder like "My Computer"
14599           is selected.
14600
14601 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
14602
14603         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
14604         * FolderBrowserDialog.cs:
14605           - Use MWFConfig to store and read size and position settings
14606           - Added code to create a new folder (button or context menu).
14607             Use TreeView labeledit to change the name of the new folder.
14608
14609 2006-07-14  Jackson Harper  <jackson@ximian.com>
14610
14611         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
14612         when the tree is scrolled we end editing.
14613
14614 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
14615
14616         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
14617           Down arrows
14618
14619 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
14620
14621         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
14622         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
14623         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
14624         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
14625         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
14626         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
14627         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
14628         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
14629         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
14630         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
14631         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
14632         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
14633         ListViewItemSelectionChangedEventHandler.cs,
14634         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
14635         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
14636         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
14637         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
14638         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
14639         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
14640         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
14641         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
14642         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
14643         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
14644         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
14645         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
14646         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
14647         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
14648         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
14649         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
14650         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
14651         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
14652         WebBrowserNavigatingEventHandler.cs, 
14653         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
14654
14655 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
14656
14657         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
14658         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
14659         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
14660         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
14661         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
14662         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
14663         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
14664         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
14665         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
14666         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
14667         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
14668         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
14669         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
14670         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
14671         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
14672         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
14673         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
14674         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
14675         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
14676         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
14677         ListViewItemStates.cs, MaskFormat.cs: Added
14678
14679 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
14680
14681         * PropertyGridView.cs: Fix keyboard navigation of drop down.
14682         Patch from eno for bug 78558.
14683         
14684 2006-07-13  Jackson Harper  <jackson@ximian.com>
14685
14686         * TreeView.cs: When an edit is finished make sure that the
14687         selected node is visible.
14688         - When setting the top/bottom use the scrollbars is_visible, so
14689         everything will be set correctly even if the tree isn't visible
14690         yet.
14691
14692 2006-07-13  Jackson Harper  <jackson@ximian.com>
14693
14694         * ComboBox.cs: Revert the item->index part of my previous patch.
14695         * TreeView.cs: Use LostFocus instead of Leave for detecting when
14696         the edit box has lost focus (duh).
14697         - Just make the edit box not visible when we get return, that will
14698         take the focus, which will call EndEdit
14699         * TreeNode.cs When we start editing, notify the treeview.
14700
14701 2006-07-12  Jackson Harper  <jackson@ximian.com>
14702
14703         * ComboBox.cs: Clear out old items before setting the item list.
14704         This prevents databound controls from having their items added
14705         twice.
14706         - Switch the combobox to use indices whereever possible instead of
14707         using Item's.  This allows usto navigate through lists that have
14708         more then one item with the same string value (ie a, b, b, a).
14709         - Scroll the listboxes scrollbar when a non visible item is
14710         highlighted
14711         - Allow keypress to cycle through all the possible values. For
14712         example if you have b1, b2, b3 and hold down the B key all the
14713         values will be cycled through.
14714         
14715 2006-07-12  Jackson Harper  <jackson@ximian.com>
14716
14717         * TextBoxBase.cs:
14718         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
14719         this using the internal methods.
14720         * Control.cs: Add OnGotFocusInternal.  A new method that allows
14721         controls to "override" OnGotFocus and change focus behavior if
14722         needed.
14723         - Same thing for LostFocus
14724         * ComboBox.cs: Pass off focus to the text control properly.
14725
14726 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
14727
14728         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
14729         * FolderBrowserDialog.cs: Almost a complete rewrite.
14730           - Better support for Environment.Specialfolders
14731           - Added support for MWFVFS
14732           - Made setting SelectedPath work
14733
14734 2006-07-12  Jackson Harper  <jackson@ximian.com>
14735
14736         * Control.cs: Optimze getting all the controls.
14737
14738 2006-07-11  Jackson Harper  <jackson@ximian.com>
14739
14740         * ContainerControl.cs: Override SETFOCUS in the container control,
14741         so that it is not selected on mouse click.
14742
14743 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
14744
14745         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
14746           Hopefully we will have a better way once all of focus is complete.
14747
14748 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
14749
14750         * ThemeWin32Classic.cs: Commented out some debug code and fixed
14751           a compile error with csc.
14752
14753 2006-07-11  Jackson Harper  <jackson@ximian.com>
14754
14755         * Control.cs: When hiding a control only select the next control
14756         if the current control was focused.
14757         - Don't handle enter/leave when setting/killing focus, this is
14758         done by the container control.
14759         - Remove is_selected, it's not needed anymore.
14760         - Add utility methods for selecting a child control, and for
14761         firing the Enter/Leave events.
14762         * ContainerControl.cs: When a control is activated fire the
14763         enter/leave events.
14764         - Don't wrap when processing the tab key, so that focus can be
14765         moved outside of the container.
14766         - Use the correct active control
14767
14768 2006-07-11  Jackson Harper  <jackson@ximian.com>
14769
14770         * ComboBox.cs: Remove some debug code that was blinding me.
14771         * UpDownBase.cs: These controls actually aren't implicit, they are
14772         visible to the user.
14773
14774 2006-07-10  Chris Toshok  <toshok@ximian.com>
14775
14776         * DataGrid.cs: move back to the is_adding boolean field.  god i
14777         hate this is_editing/is_adding/is_changing stuff.
14778
14779 2006-07-10  Chris Toshok  <toshok@ximian.com>
14780
14781         * DataGridTableStyle.cs: just check if the property type is bool.
14782         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
14783         Don't use CanRenderType.
14784
14785         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
14786         if our text == NullText.  Remove CanRenderType.
14787
14788         * DataGridBoolColumn.cs: nuke CanRenderType.
14789
14790         * DataGrid.cs: reenable some code to end the current edit inside
14791         of set_CurrentCell.  This fixes the other 1.1.16 regression.
14792         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
14793         Also, remove the visible_row_count arg from CalcRowHeaders, since
14794         we don't need to worry about the actual height of the area.
14795
14796 2006-07-10  Chris Toshok  <toshok@ximian.com>
14797
14798         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
14799         mode, just return.
14800
14801         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
14802         the real sense of the IsInEditOrNavigateMode property (true =
14803         navigate, false = edit).  Also, update OnKeyPress to reflect this.
14804
14805         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
14806         column style exists, we still need to set its property descriptor
14807         to match up with our list manager.
14808
14809 2006-07-10  Chris Toshok  <toshok@ximian.com>
14810
14811         * ThemeWin32Classic.cs: implement the new row/header painting
14812         approach.  The parent row painting will likely go away and
14813         replaced with label controls, but the rest seems to work ok (and
14814         efficiently).
14815
14816         * Theme.cs: change the way we draw datagrid rows.  we don't draw
14817         the row headers as a block now.  Instead we draw them in the
14818         normal draw-row loop.  Add some calls for drawing parent rows and
14819         relation rows.
14820
14821         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
14822         a default table style.  Set the defaults from ThemeEngine.Current,
14823         not SystemColors.  Fix lots of misc issues with property setters.
14824
14825         * DataGrid.cs: move loads of style information out of this class
14826         as it's being duplicated with DataGridTableStyle.  keep track of a
14827         special DataGridTableStyle for the properties we used to mirror
14828         here.  Switch all the style properties to access this table style
14829         instead of instance fields of this class.  Also add a internal
14830         class to represent parent rows (more needs to be stored here, like
14831         the selection state from the parent table, as well as the
14832         expansion state.)  Also, for datasources with relations, do the
14833         right thing for collapse/expand, and add support for the
14834         navigation/parent row buttons.
14835
14836         Lastly, fix the crash in the 1.1.16 build.
14837
14838         * GridTableStylesCollection.cs: make the explicit interface
14839         implementations call the class's methods as opposed to duplicating
14840         them.
14841
14842         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
14843         0 so the text doesn't jump around when we move the cursor.
14844
14845 2006-07-10  Jackson Harper  <jackson@ximian.com>
14846
14847         * TextBoxBase.cs:
14848         * ListBox.cs: Match MS's ToString (this makes debugging focus
14849         stuff infinitely easier).
14850
14851 2006-07-10  Jackson Harper  <jackson@ximian.com>
14852
14853         * Control.cs (SelectNextControl): When checking the control's
14854         parent use this instead of ctrl.parent so that null can be passed
14855         to SelectNextControl. (I have unit tests for this).
14856         - Remove unused var.
14857
14858 2006-07-10  Chris Toshok  <toshok@ximian.com>
14859
14860         * CurrencyManager.cs: correct one regression, the removal of the
14861         finalType field.  Also, add a MonoTODO on CanAddRows, implement
14862         Refresh() correctly, and fix some event emission in
14863         ListChangedHandler.
14864
14865 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
14866
14867         * FileDialog.cs: Don't use brackets for new folders if they exist
14868           under *nix. Instead use -(number of existing folders +1).
14869
14870 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
14871
14872         * FileDialog.cs:
14873           - Fixed really nasty bug #78771
14874           - Don't block the whole GUI when reading directories with a lot of
14875             entries. Use an other thread instead and call BeginInvoke to
14876             update the ListView in MWFFileView
14877
14878 2006-07-07  Chris Toshok  <toshok@ximian.com>
14879
14880         * Control.cs (Dispose): release any Capture when disposing.
14881
14882 2006-07-07  Chris Toshok  <toshok@ximian.com>
14883
14884         * LinkLabel.cs (Select): if we chain up to the parent, set
14885         focused_index to -1 so we'll search for the first available link
14886         the next time the user tabs into us.  Also, if the direction is
14887         backward and focused_index == -1, start the search from the last
14888         element.
14889
14890 2006-07-07  Chris Toshok  <toshok@ximian.com>
14891
14892         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
14893         is beyond the end of the text, don't do anything.
14894         (CreateLinkPieces): set our ControlStyles.Selectable based on
14895         whether or not we have any links.
14896         (Link.Invalidate): use a loop instead of foreach.
14897         (Link.set_Start): null out owner.sorted_links so it'll be
14898         recreated by CreateLinkPieces.
14899
14900 2006-07-06  Chris Toshok  <toshok@ximian.com>
14901
14902         * LinkLabel.cs: revert the SetStyle change.
14903
14904 2006-07-06  Chris Toshok  <toshok@ximian.com>
14905
14906         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
14907         (OnEnableChanged): s/Refresh/Invalidate
14908         (OnGotFocus): if we have a focused index already, refocus it (so
14909         if we mouse out/in to the window it'll focus the right link).
14910         (OnKeyDown): move the tab handling out of here.
14911         (OnLostFocus): don't set focused_index to -1, so we can refocus it
14912         when we lose focus.
14913         (OnMouseDown): don't Capture here - Control handles it.  Also,
14914         focus the active link.
14915         (OnMouseUp): don't deal with Capture.
14916         (OnPaintBackgroundInternal): remove.
14917         (OnTextAlignChanged): CreateLinkPieces before calling the
14918         superclass's method.
14919         (OnTextChanged): call CreateLinkPieces before calling superclass's
14920         method.
14921         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
14922         move around.
14923         (Select): implement this, moving the selection between different
14924         links, and call parent.SelectNextControl if we don't have another
14925         link to focus in the given direction.
14926         (CreateLinkPieces): call Invalidate instead of Refresh.
14927         
14928 2006-07-06  Chris Toshok  <toshok@ximian.com>
14929
14930         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
14931         new LinkLabel internals.
14932
14933         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
14934         over pieces looking for active/focused/etc links.  also, deal with
14935         runs of text (and links) with embedded \n's in them, and use
14936         MeasureCharacterRanges instead of MeasureString to figure out the
14937         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
14938         two-step.
14939
14940 2006-07-04  Jackson Harper  <jackson@ximian.com>
14941
14942         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
14943         XKB or key auto repeat, do it manually.  Without key auto repeat,
14944         when a key is held down we get key press, key release, key press,
14945         key release, ... with auto repeat we get key press, key press, key
14946         press ..., and then a release when the key is actually released.
14947
14948 2006-07-03  Jackson Harper  <jackson@ximian.com>
14949
14950         * TabControl.cs:
14951         * ThemeWin32Classic.cs: Tabs do not obey normal background color
14952         rules, they are always control color regardless of the background
14953         color.
14954
14955 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
14956
14957         * FileDialog.cs: Added internal class MWFConfig.
14958           Removed Registry support and replaced it with support for the new
14959           MWFConfig class. See MWFConfig comments for more information.
14960
14961 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
14962
14963         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
14964           rectangle. Added some patches from eno from bug #78490 and fixed
14965           the arrow position for small up and down CPDrawScrollButtons.
14966
14967 2006-06-30  Jackson Harper  <jackson@ximian.com>
14968
14969         * InternalWindowManager.cs: Remove some debug code.
14970         * Form.cs: When an MdiParent is set to null, the window is
14971         "detatched" and becomes a normal window.
14972         * MdiClient.cs: Don't bring the new child form to the front until
14973         it is activated (setting it as active does this), this makes the
14974         previously active forms titlebar get redrawn as inactive.
14975
14976 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
14977
14978         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
14979           with later controls
14980
14981 2006-06-29  Mike Kestner  <mkestner@novell.com>
14982
14983         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
14984         arrow in keynav state.  Fixes #78682.
14985
14986 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
14987
14988         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
14989           order (fixes #78393)
14990
14991 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
14992
14993         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
14994           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
14995           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
14996           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
14997           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
14998           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
14999           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
15000           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
15001           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
15002           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
15003           enumerations (FlagsAttribute, SerializableAttribute, added/removed
15004           values)
15005
15006 2006-06-28  Mike Kestner  <mkestner@novell.com>
15007
15008         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
15009
15010 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
15011
15012         * PropertyGrid.cs,
15013           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
15014           item lines from other area (It also makes BackColor consistent and
15015           compatible with .NET). Fixed bug #78564.
15016
15017 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
15018
15019         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
15020         Patch from Eno for #78555.
15021
15022 2006-06-27  Chris Toshok  <toshok@ximian.com>
15023
15024         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
15025
15026         * DataGridColumnStyle.cs: same.
15027
15028         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
15029         
15030         * DataGridDrawingLogic.cs: nuke.
15031
15032 2006-06-27  Chris Toshok  <toshok@ximian.com>
15033
15034         * DataGridTableStyle.cs: clean up the constructors, and build the
15035         list of child relations for this table.  I have no idea if this is
15036         where we should be doing it (it probably isn't), but since we're
15037         already iterating over the properties..
15038
15039         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
15040         struct and array for keeping track of row information, similar to
15041         what's shown in a hack on
15042         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
15043
15044         * Theme.cs: be consistent about the naming of DataGrid methods,
15045         prefering ColumnWidths and RowHeights over columnsWidths and
15046         RowsHeights.
15047
15048         * ThemeWin32Classic.cs: same, and also add support for variable
15049         sized rows (and the +/- expansion icons for related rows).
15050
15051 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
15052
15053         * TextBoxBase.cs: Applied Eno's patch from #78660
15054
15055 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
15056
15057         * Form.cs (ScaleCore): We don't want to scale our form if it's
15058           state is minimized or maximized, but we still need to scale our
15059           child windows. Also, added try/finally block to ensure layout
15060           gets reset (Fixes #78697)
15061
15062 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
15063
15064         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
15065
15066 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
15067
15068         * Form.cs: Fixed c+p error and added check to resize form if minimum
15069           size is bigger than current size (Fixes #78709)
15070
15071 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
15072
15073         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
15074
15075 2006-06-26  Mike Kestner  <mkestner@novell.com>
15076
15077         * ComboBox.cs: only do Keypress handling in the combo when there  
15078         are items in the collection. Fixes #78710.
15079
15080 2006-06-26  Chris Toshok  <toshok@ximian.com>
15081
15082         * Binding.cs: make this work bi-directionally.  also, clear up
15083         other mixups between Push/Pull Data (e.g. we're supposed to pull
15084         data when validating).
15085
15086         * BindingManagerBase.cs: trim some fully qualified collection
15087         types.
15088
15089         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
15090
15091 2006-06-23  Chris Toshok  <toshok@ximian.com>
15092
15093         * PropertyManager.cs: It appears (according to the unit tests)
15094         that PropertyManager doesn't use
15095         PropertyDescriptor.AddValueChanged to track propery value changes
15096         in its datasource, but uses the same scheme as Binding, where it
15097         looks for a <Property>Changed event and binds to it.
15098
15099         Also, according to the docs, IsSuspended always returns false for
15100         a property manager with a non-null datasource.
15101
15102 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
15103
15104         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
15105           need to update the actual DialogResult. (Fixes #78613)
15106
15107 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
15108
15109         * Form.cs (ShowDialog): Release any captures before running the
15110           new message pump (fixes #78680)
15111
15112 2006-06-22  Mike Kestner  <mkestner@novell.com>
15113
15114         * ListView.cs: Layout column widths properly in details mode even 
15115         if HeaderStyle.None is set.  Fixes #78691.
15116
15117 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
15118
15119         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
15120
15121 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
15122
15123         * Control.cs (ContainsFocus): Using new driver method to get focused
15124           window, instead of trying to use internal tracking var, which can
15125           recursion issues (Fixes #78685)
15126         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
15127           XplatUIWin32.cs: Added GetFocus method to return focused window
15128
15129 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15130
15131         * ColorDialog.cs: when the mouse button is pressed inside the color
15132         matrix, don't let the cursor move out of it until the button is
15133         released, which is the behavior on windows. Changed 'colours' by
15134         'colors' to use the same word consistently.
15135
15136 2006-06-21  Chris Toshok  <toshok@ximian.com>
15137
15138         * DataGrid.cs: add in some basic navigation stuff (navigating to a
15139         child relation and back, using a stack).  Also, remove
15140         GetDataSource and the code that calls it - it's not needed.  Also,
15141         track CurrencyManager.ListName's removal.
15142
15143 2006-06-21  Chris Toshok  <toshok@ximian.com>
15144
15145         * CurrencyManager.cs: push some of the original type checking from
15146         BindingContext.CreateBindingManager to here, and remove some of
15147         the finalType stuff.  Need more tests to make sure I've got the
15148         ListName part right, and we might need more in SetDataSource.
15149
15150         * PropertyManager.cs: add a ctor that takes just the datasource,
15151         and no property name.  Make SetDataSource work with a null
15152         property_name, and make Current return the data_source if the
15153         property descriptor is null.  this makes 'string foo = "hi";
15154         BindingContext[foo].Current' return "hi" as it should.
15155
15156         * RelatedCurrencyManager.cs: make this code more generic - there's
15157         no reason the parent manager has to be CurrencyManager, and
15158         there's no reason to pass the DataRelation.  It suffices to use a
15159         BindingManagerBase and PropetyDescriptor.
15160
15161         * RelatedPropertyManager.cs: make a similar change here.
15162         
15163         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
15164         flower I knew it could be.
15165
15166 2006-06-20  Chris Toshok  <toshok@ximian.com>
15167
15168         * PropertyManager.cs: the PropertyChangedHandler is invoked when
15169         data in the source has changed and we need to update the control,
15170         so s/PullData/PushData.
15171
15172         * CurrencyManager.cs: Refresh is meant to update the control from
15173         data in the datasource.  So, s/PullData/PushData.
15174
15175         * BindingContext.cs: add more ugliness (we weren't handling the
15176         case where data_source = DataTable and data_member = column_name).
15177
15178         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
15179         from the perspective of the datasource.  PullData pulls from the
15180         control, PushData pushes to the control.
15181
15182 2006-06-20  Chris Toshok  <toshok@ximian.com>
15183
15184         * BindingContext.cs: rewrite the CreateBindingManager code to
15185         handle navigation paths more or less properly.  This could
15186         definitely stand some more work, in particular to push the
15187         recursion up to the toplevel.  But that relies on fixes in other
15188         places (System.Data comes to mind).
15189
15190         Also, move to a flat hashtable (and encode the twolevel nature of
15191         the dictionary into the hash key).  This lets us implement the
15192         IEnumerable.GetEnumerator method.
15193
15194         * RelatedCurrencyManager.cs: new class.  Update our view based on
15195         our relation and our parent CurrencyManager's position.
15196
15197         * CurrencyManager.cs: split out some logic from the ctor into
15198         SetView, so it can be called from the new RelatedCurrencyManager
15199         subclass.
15200
15201         * RelatedPropertyManager.cs: new class.  Update our datasource
15202         based on the position of our parent CurrencyManager.
15203
15204         * PropertyManager.cs: split out some logic from the ctor into
15205         SetDataSource, so it can be called from the new RelatedDataSource
15206         subclass.  Also, make the Current getter return the value
15207         of the PropertyDescriptor, not the data_source.
15208
15209         * Binding.cs: no need to duplicate the string splitting code here.
15210
15211 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
15212
15213         * Control.cs:
15214           - set_Enabled: OnEnabledChanged is not called if the inherited state 
15215             of the control is not altered, even though  we might be changing the
15216             internal state of the control (#78458)
15217           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
15218             OnEnabledChanged, to allow easy altering of any child window state
15219           - OnEnabledChanged: Added code to enable/disable driver window state
15220           - OnParentEnabledChanged: Instead of firing the event, call 
15221             OnEnabledChanged, which will fire the event and also a) set driver
15222             window state and pass the enabled state to any grandchildren (#78458)
15223
15224 2006-06-19  Jackson Harper  <jackson@ximian.com>
15225
15226         * InternalWindowManager.cs: We don't set the cursor explicitly
15227         thats done via the response to NCHITTESTs.
15228         - Don't need to adjust for titlebar heights anymore, the
15229         coordinates are coming in the correct coordinates now (see peters
15230         last patch).
15231
15232
15233 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
15234
15235         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
15236           being translated relative to whole window, instead of client window.
15237           That caused broken offsets on mouseclick (and caused gas for our
15238           InternalWindowManager)
15239
15240 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
15241
15242         * TextControl.cs:
15243           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
15244           - Undo(): Added replay of cursor move on DeleteChars action; added
15245             calling Undo() again if a recorded cursor move is invalid (to
15246             ensure that some action is performed on Undo)
15247         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
15248
15249 2006-06-16  Jackson Harper  <jackson@ximian.com>
15250
15251         * MdiClient.cs: Instead of just sizing maximized windows when
15252         there is a resize we also have to adjust the Y of minimized
15253         windows, so they stay pinned to the bottom of the mdi container.
15254         - Eliminate separate tracking of the active control, we can just
15255         get this from the controls collection.
15256         - Paint the decorations for the newly activated titlebar so we get
15257         a pretty blue bar.
15258         * InternalWindowManager.cs:
15259         * ThemeWin32Classic.cs: Minimized windows get all three buttons
15260         even if they are a tool window.
15261         
15262 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
15263
15264         * TextControl.cs (Undo): Handle non-existent cursor locations in the
15265           undo buffer, these can happen when text was deleted and the cursor
15266           was recorded first. Since we will also have a recorded cursor
15267           after the delete this is not an issue. (Fixes #78651)
15268
15269 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
15270
15271         * AccessibleObject.cs: Remove dependence on Control.is_selected;
15272           instead properly track control states internally (allows us to
15273           remove is_selected from Control)
15274
15275 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15276
15277         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
15278         whose width is not a multiple of 8.
15279
15280 2006-06-13  Jackson Harper  <jackson@ximian.com>
15281
15282         * MdiClient.cs:  Only maximize the next child if the current one
15283         is maximized.
15284
15285 2006-06-13  Chris Toshok  <toshok@ximian.com>
15286
15287         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
15288         modified.  Also, guard against grid or grid_drawing being null in
15289         Invalidate.
15290
15291         * DataGrid.cs: Reformat tons of getters/setters.  In the
15292         DataMember setter, just call SetNewDataSource instead of
15293         duplicating some of its functionality.  In SetNewDataSource, don't
15294         check ListManager for null, since the property getter creates the
15295         object if needed.
15296
15297         * DataGridTableStyle.cs: don't set TableStyle or call
15298         SetDataGridInternal on the column here, it's done in
15299         GridColumnStylesCollection.Add.
15300
15301         * GridColumnStylesCollection.cs: fix all the explicit interface
15302         implementations to just call our methods.  Nuke AddInternal() and
15303         move the body of it to Add().  Also, add a call to
15304         column.SetDataGridInternal to Add().
15305
15306         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
15307         base()+duplicate code.  Also, use the Format property instead of
15308         format to generate an Invalidate ala MS.  Lastly, create the
15309         textbox here, unconditionally.
15310         (set_Format): call Invalidate.
15311         (get_TextBox): no need to call EnsureTextBox.
15312         (Commit): remove the message box.
15313         (Edit) remove the call to EnsureTextBox.
15314         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
15315         (EnterNullValue): no need to check textbox for null.
15316         (HideEditBox): no need to check textbox for null.
15317         (SetDataGridInColumn): add the textbox to the grid's controls.
15318         (EnsureTextBox): nuke.
15319         
15320 2006-06-13  Jackson Harper  <jackson@ximian.com>
15321
15322         * MdiWindowManager.cs: Hook up to the maximized menus paint event
15323         and redraw the buttons when needed. Unhook when the window is
15324         unmaximized.
15325         * MainMenu.cs: Add an internal Paint event, the mdi window manager
15326         needs this so that it can redraw its buttons when the menu is
15327         repainted.
15328         * InternalWindowManager.cs:
15329         * Form.cs: The method order has changed for DrawMaximizedButtons,
15330         so that it can be a PaintEventHandler.
15331         
15332 2006-06-13  Jackson Harper  <jackson@ximian.com>
15333
15334         * MdiClient.cs: When we close a maximized mdi window, the next mdi
15335         window is activated and maximized, even if it wasn't before.
15336         - When  a new window is activated repaint the decorations of the
15337         old one, so that it no longer has the Active "look" (the blue
15338         titlebar).
15339         * InternalWindowManager.cs: Open up CreateButtons to base classes
15340         so they can recreate the buttons on state changes.
15341         - If a window is maximized give it all three buttons
15342         * MdiWindowManager.cs: Create the titlebar buttons when the state
15343         is changed, this is needed because a toolwindow will not have all
15344         three buttons until it is maximized.
15345
15346 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
15347
15348         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
15349           Fixed bug #78609.
15350
15351 2006-06-12  Jackson Harper  <jackson@ximian.com>
15352
15353         * KeysConverter.cs: Make sure we handle the Ctrl special case
15354         if its the only key.
15355         
15356 2006-06-12  Jackson Harper  <jackson@ximian.com>
15357
15358         * Theme.cs: Add a method to get the size of a managed window
15359         toolbar button.
15360         * InternalWindowManager.cs: Remove the ButtonSize property, this
15361         should be retrieved from the theme.
15362         * MdiWindowManager.cs: Get the button size from the theme
15363         * ThemeWin32Classic.cs: Make the method to get the managed window
15364         titlebar button size public.
15365         - Handle the different button sizes of maximized toolwindows
15366         (should match any maximized window).
15367         - Get the titlebar height from the theme, not the WM (which gets
15368         it from the theme).
15369
15370 2006-06-12  Jackson Harper  <jackson@ximian.com>
15371
15372         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
15373         event down to the mdi window manager.
15374         - Expose some extra stuff to base classes
15375         - Make sure to end the Capture on an NC Mouse up, so that we can
15376         get double clicks properly, and the sizing doens't stick.
15377         - When doing PointToClient contain it in the workable desktop
15378         area, this prevents windows from changing size when the cursor is
15379         pulled outside of the working area while sizing.
15380         * MdiWindowManager.cs: When we get a double click maximize the
15381         window.
15382         - Reset the cursor after handling mode changes.
15383
15384 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
15385
15386         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
15387           current desktop, instead of just assuming a 0, 0 origin. This
15388           is needed for our internal window manager, to know the top
15389           margin of the desktop
15390
15391 2006-06-12  Chris Toshok  <toshok@ximian.com>
15392
15393         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
15394         we need this to get rid of the selected background in the bool
15395         column.
15396         (CancelEditing): move the ConcedeFocus call to above the Abort
15397         call.  Also, set is_changing to false and invalidate the row
15398         header if we were changing before.
15399         (ProcessKeyPreviewInternal): remove, since noone outside this
15400         class calls it anymore.  Roll the code into ProcessKeyPreview.
15401         (EndEdit): remove the internal version.
15402         (InvalidateCurrentRowHeader): make private.
15403
15404         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
15405         Keys.Escape handling (and with it the last call to
15406         DataGrid.EndEdit from outside the class.)
15407
15408
15409 2006-06-12  Chris Toshok  <toshok@ximian.com>
15410
15411         * DataGridTextBox.cs (.ctor): isedit defaults to false.
15412         (OnKeyPress): set isedit to true.
15413         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
15414         already handled by the grid.
15415
15416         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
15417         right.  ugh.
15418         (set_DataSource): SetDataSource always returns true, so stop
15419         putting it in an if statement.
15420         (EndEdit): get rid of some {}'s
15421         (ProcessGridKey): return true in case Keys.Escape.
15422         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
15423         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
15424         PositionChanged, stopped connecting to CurrentChanged.
15425         (GetDataSource): simplify this a bunch.
15426         (SetDataSource): change return type from bool to void.
15427         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
15428         to this, and make sure we don't set ListManager.Position inside
15429         set_CurrentCell.
15430         (OnListManagerItemChanged): if we're passed an actual index,
15431         redraw that row.
15432
15433         * CurrencyManager.cs (set_Position): don't call PullData here.
15434
15435 2006-06-09  Jackson Harper  <jackson@ximian.com>
15436
15437         * TreeNode.cs:  Recalculate the visible order before doing the
15438         Expand/Collapse Below calls, because those calls generate an
15439         expose.
15440         - Reduce calls to the TreeView property, which is mildly expensive
15441         by using a local var.
15442         * Form.cs: Layout the MDI child windows when creating the parent
15443         form.
15444         - Don't use the internal constructor anymore
15445         * MdiClient.cs: use the parent form width/height (if available)
15446         when laying out the child windows, we do this because the
15447         mdiclient isn't docked yet when the initial layout is done.
15448         - Don't need an internal constructor anymore.
15449
15450 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15451
15452         * FileDialog.cs: handle access errors when trying to create a folder
15453         or changing to a directory. No need to initialize out parameters.
15454
15455 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
15456
15457         * FileDialog.cs: Append a number when creating a new folder if the
15458           folder already exists (use parenthesis instead of square brackets)
15459
15460 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
15461
15462         * FileDialog.cs:
15463           - Disabled registry support for windows and added better registry
15464             error checking for other systems (need to investigate why it
15465             works perfectly on my system)
15466           - If a folder already exist show an error MessageBox instead of
15467             trying to create an indexed name.
15468           - Fixed a non intentional typo.
15469
15470 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15471
15472         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
15473
15474 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
15475
15476         * FileDialog.cs: When creating a new folder don't crash if the
15477           folder already exists.
15478
15479 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
15480
15481         * FileDialog.cs: Allmost a complete rewrite.
15482           - added a "virtual" file system that handles the differences
15483             between unix and windows file systems (especially the directory
15484             structure). Moved most of the directory and file handling code
15485             into the vfs.
15486             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
15487             UnixFileSystem and FSEntry.
15488           - Recently used folder/directory, size, location and used file names
15489             (file name ComboBox) are now stored in the registry and get read
15490             before the dialog shows up (fixes part 6 of bug #78446).
15491           - Creation of new folders/directories is now possible (context menu
15492             or ToolBar). Added TextEntryDialog for this that fills in the gap
15493             until ListView.LabelEdit works.
15494           - Fixed cursor handling (bug #78527) and focus handling for
15495             PopupButtonPanel
15496           - Various "Search in" ComboBox enhancements. The content of the
15497             dropdown listbox now almost matches ms.
15498           - Changed the behaviour when the user switches to SpecialFolder
15499             Recent to show the ListView in View.Details.
15500           - Beside using the ToolBar to change the View property of the
15501             file ListView it is now possible to use the context menu too.
15502
15503 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
15504
15505         * ComboBox.cs: Don't create a new ObjectCollection when an item
15506           gets inserted. Just insert the item in the existing object_items
15507           ArrayList.
15508
15509 2006-06-08  Jackson Harper  <jackson@ximian.com>
15510
15511         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
15512         that the treeview and root node checks are done also, this fixes a
15513         regression i caused in the unit tests.
15514
15515 2006-06-07  Wade Berrier <wberrier@novell.com> 
15516
15517         * RichTextBox.cs: More ISO8859-1 -> unicode
15518
15519 2006-06-07  Mike Kestner  <mkestner@novell.com>
15520
15521         * ComboBox.cs : use items to hold highlight/selection so that
15522         collection insertions don't require synchronization.
15523
15524 2006-06-07  Jackson Harper  <jackson@ximian.com>
15525
15526         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
15527         routine.  We now always keep the sized edge at the cursor instead
15528         of computing movement and adjusting rects.  There is one buglet
15529         with this method though when the cursor is moved over area that
15530         the window can not expand too (such as the toolbars on the desktop).
15531
15532 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15533
15534         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
15535         here. Fixes crash on startup in AlbumSurfer.
15536
15537 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
15538
15539         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
15540           values
15541
15542 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15543
15544         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
15545         statement to avoid calling XNextEvent which will block if another thread
15546         took the event that we were expecting. Fixes bug #78605.
15547
15548 2006-06-07  Mike Kestner  <mkestner@novell.com>
15549
15550         * ListView.cs : isolated checkbox clicking from the selection logic.
15551         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
15552
15553 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15554
15555         * Form.cs: Check that the value passed to Form.DialogResult
15556         is a valid enum value.
15557
15558 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15559
15560         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
15561         Computer'. Clicking it in the network view goes to 'My Computer'.
15562         Added CIFS filesystem type. Display the mount point of filesystems.
15563         Avoid duplicate mount points (happens for me with CIFS);
15564
15565 2006-06-06  Jackson Harper  <jackson@ximian.com>
15566
15567         * InternalWindowManager.cs: Draw the maximized windows buttons
15568         when resizing.
15569
15570 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15571
15572         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
15573         all other dialogs. Fixes bug #78585.
15574
15575 2006-06-06  Mike Kestner  <mkestner@novell.com>
15576
15577         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
15578         Only invalidate checkbox on checkstate changes to avoid flicker.
15579         * ListBox.cs : avoid unselect/select when clicking selected item.
15580         avoid reselection flicker for already multiselected items.
15581         Fixes #78382.
15582
15583 2006-06-06  Jackson Harper  <jackson@ximian.com>
15584
15585         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
15586         the parent form so that the menu is removed if needed.
15587
15588 2006-06-06  Mike Kestner  <mkestner@novell.com>
15589
15590         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
15591         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
15592
15593 2006-06-06  Mike Kestner  <mkestner@novell.com>
15594
15595         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
15596
15597
15598 2006-06-06  Jackson Harper  <jackson@ximian.com>
15599
15600         * Control.cs: Use the property (instead of the field) to get the
15601         default cursor so it is instantiated correctly.
15602         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
15603         resizes so we need to manually repaint the window decorations here.
15604         - Set the titlebar button locations as soon as they are created,
15605         otherwise they are not set correctly on win32.
15606         
15607 2006-06-06  Chris Toshok  <toshok@ximian.com>
15608
15609         * CurrencyManager.cs (set_Position): call PullData before
15610         OnCurrentChanged.
15611         (AddNew): after calling IBindingList.AddNew, update our
15612         listposition, and call OnCurrentChanged/OnPositionChanged (without
15613         calling PullData).
15614         (OnCurrentChanged): remove the call to PullData from here.
15615         (OnItemChanged): remove the call to PushData from here.
15616         (OnPositionChanged): change the test from == null to != null to
15617         match the other methods.
15618         (ListChangedHandler): the grossest part of the patch.  Implement
15619         this such that it passes the unit tests in CurrencyManagerTest and
15620         the output more or less matches that of MS's implementation.
15621  
15622 2006-06-06  Mike Kestner  <mkestner@novell.com>
15623
15624         * ListView.cs : only update check state on single click.
15625         * ThemeWin32Classic.cs : fix focus drawing for details view without
15626         fullrowselect.  Fixes #78454.
15627         * XplatUIX11.cs : fix for double click emission.
15628
15629 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
15630
15631         * PropertyGridView.cs : Applied Atsushi's patch to fix
15632         font dialog bug  (#78197).
15633
15634 2006-06-05  Jackson Harper  <jackson@ximian.com>
15635
15636         * TreeNode.cs: Compute the next node for expanding/collapsing
15637         correctly. We now factor in nodes without a NextNode
15638         correctly. (Fixes somes cases in nunit-gui).
15639         * InternalWindowManager.cs: Set the bounds when updating the
15640         virtual position of a tool window.
15641         
15642 2006-06-05  Chris Toshok  <toshok@ximian.com>
15643
15644         * DataGrid.cs: rename cached_currencymgr to list_manager.
15645         (set_CurrentCell): move SetCurrentCell code here, and clean it up
15646         some.
15647         (CurrentRow, CurrentColumn): single accessors so we can make the
15648         cursor movement code a lot easier to understand.
15649         (CurrentRowIndex): implement this in terms of CurrentRow.
15650         (BeginEdit): clean this up a bit.
15651         (CancelEditing): sort out the is_editing/is_changing/is_adding
15652         stuff a little.
15653         (EndEdit): minor changes.
15654         (OnKeyDown): add a comment about a (most likely) unnecessary
15655         check.
15656         (OnMouseDown): cancel editing when we click on a row header.  And
15657         use the CurrentRow setter, not CurrentCell.
15658         (ProcessDialogKey): directly call ProcessGridKey.
15659         (UpdateSelectionAfterCursorMove): factor out this common block of
15660         code (it's used everywhere that we move the cursor by updating row
15661         or column).
15662         (ProcessGridKey): pretty substantial overhaul.  Use the
15663         CurrentRow/CurrentColumn properties to make the code a lot more
15664         readable.  Only use the CurrentCell property when we have to
15665         modify both row and column at once.  Tab behavior is still broken,
15666         and Delete is untested.
15667         (Select): if we have no selected rows, set selection_start to
15668         @row.
15669         (EditCurrentCell): rename EditCell this.  It was only ever invoked
15670         with CurrentCell as the arg, so drop the arg and rename it.
15671
15672         * DataGridColumnStyle.cs: clean up the constructors a little, and
15673         drop CommonConstructor().
15674
15675         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
15676         actually get notified when the user hits it.
15677         (ProcessKeyMessage): *substantially* simplify this method.
15678         There's no reason (that I can see) for the textbox to be making
15679         calls into the datagrid at all.  Remove all of them but the ones
15680         for Enter handling.  those will take some more work.
15681
15682         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
15683         calling HideEditBox.
15684         (HideEditBox): if we have an active textbox, render it invisible
15685         without causing a re-layout of the datagrid.
15686
15687 2006-06-05  Mike Kestner  <mkestner@novell.com>
15688
15689         * ListView.cs : fix NRE crasher when focuseditem is cleared by
15690         collection changes by resetting it to Items[0].  Fixes #78587.
15691
15692 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15693
15694         * MessageBox.cs: if the height of the text is larger than the icon_size,
15695         use that. Fixes bug #78575.
15696
15697 2006-06-05  Jackson Harper  <jackson@ximian.com>
15698
15699         * TreeView.cs: Fix line drawing when scrolling.  To do this each
15700         node is basically responsible for drawing its entire horizontal
15701         area.  When drawing a node it draws its parent node lines if
15702         needed.
15703         - Adjust the clip area to the viewport rectangle
15704         - Fix Left/Right key handling to match MS. (It expand/collapses
15705         and moves to parents/first child but does not move selection to
15706         sibling nodes).
15707         - Fix SetTop to work with new bound calculation code
15708         - When scrollbars are no longer needed we need to reset scrolling
15709         vars and recalculate the visible order so the redraw is correct
15710         * TreeNode.cs: We can't expand/collapse nodes with no children.
15711
15712 2006-06-03  John Luke  <john.luke@gmail.com> 
15713
15714         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
15715         so the colors work without dev packages
15716         
15717 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
15718
15719         * Control.cs 
15720           - Select: Implemented to just use activate. Seems to match MS 
15721             behaviour closest. Documented to only do actual control walking 
15722             based on it's parameters if in a container control so I moved 
15723             the code there.
15724           - Removed selection check logic from our internal Select() method
15725         * ContainerControl.cs:
15726           - Select: Moved selection logic from Control here, since MS documents
15727             that containers obey the bool arguments. No longer calling base
15728
15729 2006-06-02  Jackson Harper  <jackson@ximian.com>
15730
15731         * TreeView.cs: If the selected node isn't changed when we get
15732         focus update the previously selected node so that we see the
15733         selection box.
15734
15735 2006-06-02  Mike Kestner  <mkestner@novell.com>
15736
15737         * ComboBox.cs: restructure grab and general mouse event handling.
15738         Make the composite control raise mouse events like it was a single
15739         control for leaves/enters/motion/up/down events.  fix dropdown list
15740         coordinate mangling and refactor it into the scrollbar subclass to
15741         reduce code duplication.  Fixes #78282 #78361 and #78457.
15742
15743 2006-06-02  Mike Kestner  <mkestner@novell.com>
15744
15745         * ScrollBar.cs: remove Capture setting/clearing, as it happens
15746         automatically in the Control.WndProc.
15747
15748 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15749
15750         * FileDialog.cs: fix crash when running SharpChess, which sets the
15751         FilterIndex to 2 with only one Filter.
15752
15753 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15754
15755         * ToolBar.cs: add SizeSpecified property.
15756         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
15757         try to figure out our real size, otherwise fallback to what the
15758         container says.
15759
15760 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
15761
15762         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
15763         * Control.cs (WndProc): MS always calls the DefWndProc to pass
15764           up the event
15765
15766 2006-06-01  Mike Kestner  <mkestner@novell.com>
15767
15768         * ListView.cs: revamp the focus management in ListView.  It still
15769         causes churn of LostFocus/GotFocus emissions on clicks, but it's
15770         better than not handling focus at all.  Will revisit when pdb feels
15771         the general focus handling is solid.  Fixes #78526.
15772
15773 2006-06-01  Jackson Harper  <jackson@ximian.com>
15774
15775         * TreeView.cs: Set the default border style in the constructor.
15776         - Move painting to use OnPaintInternal instead of capturing
15777         WM_PAINT, this is the correct way of doing things
15778         - UpdateBelow shouldn't invalidate the scrollbar area
15779         - Cap the top on update below in case the node was above the top
15780         of the viewport rectangle.
15781         - ExpandBelow and Collapse below need to obey Begin/End Update.
15782         * TreeNode.cs: Make is_expanded internal so the treenode
15783         collection can change it without firing the whole event chain.
15784         * TreeNodeCollection.cs: When clearing all the child nodes make
15785         sure to recalc the visible order.
15786         - Improve algo for remove the top node
15787
15788 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
15789
15790         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
15791           SendMessage directly calling window procedures, which in turn might
15792           call SetFocus()
15793
15794 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
15795
15796         * Control.cs: Don't handle WM_SETFOCUS if the same window already
15797           has focus (works around X11 sending a FocusIn after our SetFocus)
15798         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
15799
15800 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
15801
15802         * Mime.cs: Fix for the NET_2_0 build.
15803           NameValueCollection needs StringComparer now.
15804
15805 2006-05-31  Chris Toshok  <toshok@ximian.com>
15806
15807         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
15808         return (via an out parameter) the starting X of the column.
15809         (UpdateVisibleColumn): track change to FromPixelToColumn.
15810         (HitTest): add a ColumnResize case here.
15811         (DrawResizeLine): new function, probably poorly named.
15812
15813         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
15814         only need to keep one reference.
15815         (set_ListManager): same.
15816         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
15817         Also, add support for HitTestType.ColumnResize.
15818         (OnMouseMove): add column resize behavior here, and change the
15819         cursor to the correct one as we move around the datagrid.
15820         (OnMouseUp): terminate the column resize if we're resizing.
15821         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
15822         for the current cell.
15823         (ConnectListManagerEvents): use cached_currencymgr.
15824         (DisconnectListManagerEvents): fill this in, using
15825         cached_currencymgr.
15826         (SetCurrentCell): remove cached_currencymgr_events handling.
15827         (SetDataMember): only call DisconnectListManagerEvents if
15828         cached_currencymgr is != null.
15829         (SetDataSource): same.
15830         (OnListManagerCurrentChanged): cached_currencymgr_events ->
15831         cached_currencymgr.
15832
15833 2006-05-31  Jackson Harper  <jackson@ximian.com>
15834
15835         * BindingManagerBase.cs: Remove somedebug code that creeped into
15836         SVN.
15837         * TreeNode.cs: We get the indent level dynamically right now, so
15838         don't track it as a member.
15839         * TreeNodeCollection.cs: Make sure all nodes added to the list
15840         have parents, treeviews/topnodes setup properly.
15841         - Don't attempt to track indent level.
15842
15843 2006-05-30  Jackson Harper  <jackson@ximian.com>
15844
15845         * BindingContext.cs: Create the currency manager tables here.
15846         This allows us to more easily create null tables (when bad data
15847         members are used), and more easily create related currency
15848         managers.
15849         * CurrencyManager.cs: All the table creation stuff is done by the
15850         binding context now.
15851         - Current should throw an exception if listposition is -1.
15852         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
15853         been bound yet.
15854
15855 2006-05-30  Mike Kestner  <mkestner@novell.com>
15856
15857         * ListView.cs: allow reexpansion of zero-width column headers.
15858         Fixes #78528.
15859
15860 2006-05-28  Chris Toshok  <toshok@ximian.com>
15861
15862         * CurrencyManager.cs (get_Current): after the late binding
15863         listposition = -1 fix, we need to guard against it here and return
15864         null, otherwise we raise an exception (which is swallowed
15865         elsewhere, and breaks datagrid databinding.)
15866
15867 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
15868
15869         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
15870           than WM_SYSKEY, don't throw if get something unexpected (#78507)
15871
15872 2006-05-26  Jackson Harper  <jackson@ximian.com>
15873
15874         * ControlPaint.cs:
15875         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
15876         values, it's faster and it's all we care about (we don't care if
15877         the names aren't equal).
15878         * KeyboardLayouts.cs: Eliminate some dead code.
15879         - Lazy init things
15880         * X11Keyboard.cs: Lazy init keyboard detection.
15881         - Cleanup access modifiers a little.
15882
15883 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
15884
15885         * XplatUIX11.cs: Once again, attempting to get layout just right.
15886
15887 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
15888
15889         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
15890           the sizes of each link section, that will result in sizes that
15891           match DrawString's layout (Fixes #78391)
15892
15893 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
15894
15895         * FileDialog.cs: If AddExtension property is true autocomplete the
15896           extensions in SaveFileDialog correctly. Fixes bug #78453.
15897           Set MyNetwork and MyComputer to "C:\" for windows. This should
15898           fix part 8 of bug #78446 for now.
15899
15900 2006-05-26  Chris Toshok  <toshok@ximian.com>
15901
15902         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
15903         invalidate the current row header if we need to, but presumably
15904         we'll invalidate the row corrsponding to the bounds or
15905         editingControl.
15906         (GridHScrolled): switch back to this method, as it's part of the
15907         public api.  *sigh*.
15908         (GridVScrolled): same.
15909         (OnMouseWheel): hack up something that more or less works.  Call
15910         GridHScrolled/GridVScrolled directly, instead of duplicating much
15911         of their code here.
15912         (EnsureCellVisibility): reinstate a bunch of this code, since we
15913         can't just set the scrollbar Value and expect to do all the work
15914         in the ValueChanged handler.  Also, Call Update() after scrolling
15915         in one direction so the other XplatX11.ScrollWindow call has the
15916         proper stuff in the proper places.
15917         (EditCell): set is_editing to true before calling .Edit.
15918
15919         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
15920         don't bother comparing first.
15921         (OnKeyPress): call grid.ColumnStartedEditing before calling
15922         base.OnKeyPress.  this will set is_changing and invalidate the row
15923         header if necessary.
15924         (ProcessKeyMessage): for WM_CHAR messages, call
15925         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
15926         and WM_KEYDOWN.
15927         
15928         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
15929         it's done in the DataGrid.
15930         (NextState): call grid.ColumnStartedEditing, which takes care of
15931         invalidating the row header (and setting is_changing).
15932
15933         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
15934         here.  it's done in the DataGrid.
15935
15936 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15937
15938         * Control.cs: allow changing the cursor when the mouse position is
15939         out of bounds but Capture is set.
15940         * LinkLabel.cs: handle the case when the mouse button is pressed on the
15941         linklabel but released somewhere else.
15942
15943 2006-05-25  Jackson Harper  <jackson@ximian.com>
15944
15945         * TreeView.cs: When we get focus if there is no selected node make
15946         it the top node
15947         - Remove some uneeded setup code from Draw.
15948         * TreeNodeCollection.cs: If the tree doesn't have a top node when
15949         a new node is inserted make the new node the top.
15950         * XplatUIX11.cs:
15951         * Timer.cs: Use Utc time so that no local time zone stuff needs to
15952         be used (should be faster).
15953         
15954 2006-05-25  Chris Toshok  <toshok@ximian.com>
15955
15956         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
15957         problem with the last commit.
15958
15959 2006-05-25  Chris Toshok  <toshok@ximian.com>
15960
15961         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
15962         need the invalidate call here, while scrolling right-to-left via
15963         the left arrow key (i.e. moving the editing cell while scrolling).
15964
15965         * DataGrid.cs (.ctor): remove the initialization of
15966         ctrl_pressed/shift_pressed.  We no longer track them using key
15967         up/down handlers, but by using Control.ModifierKeys.  Also, switch
15968         to using ValueChanged handlers on the scrollbars instead of
15969         Scrolled event handlers.  This simplifies a bunch of the scrolling
15970         code.
15971         (GridHValueChanged): rename from GridHScrolled, and change it to
15972         work with the new event args.
15973         (GridVValueChanged): same.
15974         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
15975         (OnMouseWheel): actually scroll the datagrid.  Don't change the
15976         selected cell.
15977         (ProcessGridKey): correct all the keyboard navigation stuff I
15978         could find.  Ctrl up/down/left/right/home/end work now.
15979         (EnsureCellVisibility): correct method name spelling.  Also,
15980         simplify this a touch by not explicitly calling the
15981         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
15982         scrollbar value.
15983         (OnKeyUpDG): no need for this method now.
15984         
15985 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15986
15987         * LinkLabel.cs: display the OverrideCursor when hovering the label.
15988         Fixes bug #78392.
15989
15990 2006-05-25  Chris Toshok  <toshok@ximian.com>
15991
15992         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
15993         r61019.
15994
15995 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
15996
15997         * Application.cs: Moved setting of is_modal and closing to before
15998           we create the control, to allow the event handlers called as a
15999           result of creation affect closing. Also removed Gonzalo's previous
16000           change to setting DialogResult, the behaviour has been moved to 
16001           Form.ShowDialog()
16002         * Form.cs: 
16003           - ShowDialog(): Removed explicit creation of the form, let RunLoop
16004             handle it instead
16005           - ShowDialog(): If no dialog result is set, we need to return Cancel
16006           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
16007             the close is cancelled
16008
16009 2006-05-25  Jackson Harper  <jackson@ximian.com>
16010
16011         * StatusBar.cs: We only need to update the sizes of the other
16012         panels when we have auto size contents.  Also we are only updating
16013         the contents of the panel, not the borders, so compensate for the
16014         border width (TODO: get this width from the theme somehow).
16015         * TreeView.cs: Scrollable is true by default
16016         - Use invalidate instead of refresh where needed
16017         - Factor the scrollable value into scrollbar updating
16018         - Update the scrollbars if the Scrollable property is altered
16019         - Update the selected node if its ImageIndex is changed
16020         - Handle null nodes in UpdateNode (mainly so we don't have to
16021         check if selected is null when updating it
16022         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
16023         are factored into the visible count
16024         - Use VisibleCount for clarity in the code
16025         - When the font is changed we need to recurse through all the
16026         nodes and invalidate their sizes
16027         
16028 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16029
16030         * Application.cs: set the DialogResult to fixed when the main form is
16031         hidden or destroyed while being modal.
16032
16033 2006-05-25  Miguel de Icaza  <miguel@novell.com>
16034
16035         * Theme.cs: Use Tangoified messagebox icons. 
16036
16037         (GetSizedResourceImage): Also cope with width = 0 and do not
16038         trigger a warning in that case (0 means "give me your icon from
16039         the resouce, no special size needed).
16040
16041 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
16042
16043         * Application.cs: Leave runloop if the the main modal form is 
16044           hidden (fixes #78484)
16045
16046 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
16047
16048         * BindingContext.cs : reject null datasource in Contains() and
16049           Item[].
16050         * CurrencyManager.cs : check data_member validity when data_source
16051           is dataset. When it is late binding, the initial position is -1.
16052
16053 2006-05-24  Jackson Harper  <jackson@ximian.com>
16054
16055         * TreeNodeCollection.cs: Dont't recalculate the visible order on
16056         inserted nodes that aren't visible.  This changes the
16057         max_visible_order which confuses scrollbar settings.
16058         - Use the enumerator to get the prev node instead of duplicating
16059         code.
16060         * TreeView.cs: Use new method for setting scrollbar values
16061         - Don't set the bounds every time the scrollbar is updated
16062         - When updating below the root node use an invalidate instead of a
16063         refresh to prevent the child controls (scrollbars) from being
16064         refreshed. (UpdateBelow still needs to be reworked anyways).
16065         - Reenable SetBottom now that visible orders are set correctly,
16066         added some debug code incase we ever get bad values there again.
16067         - Set the scrollbar max to 2 less then the max value, this
16068         compensates for the max value being one above the node count, and
16069         for scrollbars adding one extra "notch".
16070         - When drawing image nodes if there is an imagelist we draw the
16071         first image in the list if the supplied image index is out of the
16072         image list's bounds.
16073         
16074 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
16075
16076         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
16077           we receive a size change from the WM (Fixes #78503)
16078
16079 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
16080
16081         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
16082           rectangle (Fixes #78501)
16083
16084 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
16085
16086         * ButtonBase.cs: 
16087           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
16088             as a bitfield.
16089           - Fixed MouseMove to no longer switch pressed state unless the left
16090             mouse button is pressed. Atsushi provided the original patch (#78485)
16091           
16092 2006-05-24  Jackson Harper  <jackson@ximian.com>
16093
16094         * ScrollBar.cs: New internal methods that allow us to change a
16095         couple values on the scrollbar (the most common case is maximum
16096         and large change) without getting multiple invalidates.
16097
16098 2006-05-24  Chris Toshok  <toshok@ximian.com>
16099
16100         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
16101         (Edit): save off the original state in oldState, and set
16102         grid.is_editing to true.
16103         (OnKeyDown): abort editing if escape is pressed.  also, call
16104         NextState if space is pressed.
16105         (OnMouseDown): call NextState.
16106         (NextState): factor out shared code from OnKeyDown and OnMouseDown
16107         here.  Also, only invalidate the row header once (on the initial
16108         is_changing switch) to save on redraws.
16109
16110 2006-05-24  Chris Toshok  <toshok@ximian.com>
16111
16112         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
16113         if the value in the cell is different than it was before.  This
16114         keeps us from triggering a layout when we move around a datarid
16115         with a highlighted cell.
16116         (Edit): suspend layout when creating/positining the text box, and
16117         resume passing false so we don't ever actually re-layout.
16118         (ReleaseHostedControl): same.
16119         (EnsureTextBox): reformat slightly, and set WordWrap to false.
16120
16121         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
16122         control-key sequences should go to the datagrid - remove that
16123         lock.  Also, modify the conditions under which we move between
16124         cells when moving the cursor within a cell, and remove the "this"
16125         and "base" from field accesses.  We weren't even consistent, given
16126         they all were in the base class.
16127
16128 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
16129
16130         * Binding.cs : (.ctor)
16131           An obvious NRE fix for BindingTest.CtorNullTest().
16132
16133 2006-05-23  Chris Toshok  <toshok@ximian.com>
16134
16135         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
16136         them between lines.  This fixes some quirks editing cells in the
16137         datagrid.
16138
16139 2006-05-23  Jackson Harper  <jackson@ximian.com>
16140
16141         * TreeView.cs: Use begin/end update when doing expand/collapse all
16142         so that we don't get flicker on the scrollbar.
16143
16144 2006-05-23  Jackson Harper  <jackson@ximian.com>
16145
16146         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
16147         treenode calculations to be independant of the painting code. To
16148         do this nodes track a visible order which is calculated by the
16149         treeview.
16150         - Call new methods for expanding/collapsing nodes.  These methods
16151         use scrollwindow so we don't have to update everything below the
16152         node.
16153         * TreeView.cs: Refactored drawing and scrolling code.  We don't
16154         need to update nodes when drawing anymore or calculate scrollbar
16155         stuff.
16156         - Added new methods for expanding/collapsing nodes. These methods
16157         use ScrollWindow so as to not have to redraw all the nodes below.
16158         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
16159         we add/remove nodes or sort.
16160         - Handle removing the selected and the top node properly.
16161
16162 2006-05-23  Chris Toshok  <toshok@ximian.com>
16163
16164         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
16165         maybe this should actually happen in the datagrid code?
16166         (EndEdit): no need to invalidate anything, given that
16167         ReleaseHostedControl causes the datagrid to relayout, which
16168         invalidates everything anyway.
16169
16170         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
16171         in SetCurrentCell).
16172         (set_SelectionBackColor): call InvalidateSelection instead of
16173         Refresh.
16174         (set_SelectionForeColor): same.
16175         (BeginEdit): Flesh this out a bit.
16176         (CancelEditing): only do any of this if we're editing/adding.
16177         (EndEdit): same.
16178         (OnMouseDown): there's no need to cancel editing here, it's done
16179         in SetCurrentCell.
16180         (SetCurrentCell): only invalidate the current row header if it's a
16181         different row than the new one.
16182         (ShiftSelection): fix this to work like MS does.
16183         (ResetSelection): factor out the invalidation of selected_rows to
16184         InvalidateSelection.
16185         (SetDataSource): cancel any editing that's going on.
16186
16187         * DataGridColumnStyle.cs
16188         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
16189         call the non-interface version.
16190
16191         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
16192         header rectangle with the clip rectangle so we don't redraw the
16193         entire header for just a small area.  Gets rid of the last flicker
16194         when horizontally scrolling.
16195         (DataGridPaintRow): same.
16196
16197 2006-05-23  Mike Kestner  <mkestner@novell.com>
16198
16199         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
16200         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
16201         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
16202         Critical bug report.
16203
16204 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
16205
16206         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
16207           and this fixes #78493
16208
16209 2006-05-23  Miguel de Icaza  <miguel@novell.com>
16210
16211         * Theme.cs (GetSizedResourceImage): Scale images if the proper
16212         size is not found.  
16213         
16214         * FileDialog.cs: Do not change the background for the side bar as
16215         it wont work nicely with the theme, and also reduces the artifacts
16216         in rendering the icons (which I want to fix too).
16217
16218         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
16219         resources, not resgen resources. 
16220
16221         (PlatformDefaultHandler): Pull images using the new API.
16222
16223 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
16224
16225         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
16226           a reference to the hwnd and will not remove it unless there are
16227           no pending exposures (fixes #78341)
16228         * XplatUI.cs: Improved debug
16229
16230 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
16231
16232         * MenuAPI.cs : don't handle OnClick event when it was not the left
16233           button. Fixed bug #78487.
16234
16235 2006-05-23  Mike Kestner  <mkestner@novell.com>
16236
16237         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
16238         prefer submenus to the top menu for item lookup, to avoid popping down
16239         top-row items.
16240
16241 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
16242
16243         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
16244           Graphics.FillRectangle as the visual results are really bad (even
16245           on win). We now draw perfect arrows (and perfect shadows when the
16246           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
16247           Pen.DashPattern to draw the dots of each line.
16248
16249 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
16250
16251         * FileDialog.cs: Update the filename combobox when navigating through
16252           the ListView with the cursor keys. Fixes part 7 of bug #78446.
16253
16254 2006-05-22  Mike Kestner  <mkestner@novell.com>
16255
16256         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
16257         Fixes #78463.
16258
16259 2006-05-22  Mike Kestner  <mkestner@novell.com>
16260
16261         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
16262         requests. Fix a misspelled parameter and a copy paste exception error
16263         in Select.
16264
16265 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
16266
16267         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
16268           to get the same width/height (5/13) on X11 as the default font has on
16269           win32. This means that our DefaultFont emSize is smaller than the 
16270           the MS SWF equivalent (even thought the width/height stays the same)
16271
16272 2006-05-20  Jackson Harper  <jackson@ximian.com>
16273
16274         * MdiClient.cs:
16275         * MdiWindowManager.cs:
16276         * InternalWindowManager.cs: Make sure to use the border width from
16277         the theme.
16278
16279 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
16280
16281         * PrintDialog.cs: Implements printer details
16282
16283 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
16284
16285         * FileDialog.cs: Added focus handling for PopupButtonPanel.
16286           Fixes part 1 and 2 of bug #78446
16287
16288 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
16289
16290         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
16291           instead of sticking to the first ever calculated value
16292
16293 2006-05-19  Mike Kestner  <mkestner@novell.com>
16294
16295         * ComboBox.cs: fix mouse motion selection to use MousePosition and
16296         PointToClient, since Capture is set. Fixes #78344.
16297
16298 2006-05-19  Mike Kestner  <mkestner@novell.com>
16299
16300         * ListView.cs: match MS behavior in Details view where items are not
16301         drawn if Columns.Count == 0. 
16302         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
16303         Use a separate pen to draw the check, since changing the width affects
16304         the box as well.  Fixes #78454.
16305
16306 2006-05-18  Miguel de Icaza  <miguel@novell.com>
16307
16308         * ListView.cs: ArgumentOutOfRangeException, single versions of the
16309         exception should throw the name of the invalid argument.
16310
16311         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
16312         there are no files listed. 
16313
16314 2006-05-18  Jackson Harper  <jackson@ximian.com>
16315
16316         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
16317         up.
16318
16319 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
16320
16321         * Control.cs: Brought back our old UpdateZOrder method as a private
16322           function and switched our calls from UpdateZOrder to the new one.
16323           This fixes the Paint.Net canvas disappearing bug.
16324
16325 2006-05-18  Jackson Harper  <jackson@ximian.com>
16326
16327         * Theme.cs:
16328         * ThemeWin32Classic.cs:
16329         * InternalWindowManager.cs: Move the drawing into the theme,
16330         expose everything the theme should need from the window manager.
16331
16332 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
16333
16334         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
16335           from the call to NativeWindow to avoid walking up the parent chain
16336           further than needed (speeds up setting cursors and avoids setting
16337           the wrong cursor if a parent has another cursor defined)
16338         * Cursor.cs: When loading an icon as cursor, MS uses the center of
16339           the icon as hotspot, not what's contained as hotspot in the icon
16340           file. This fixes the perceived drawing offset seen with Paint.Net
16341         
16342 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
16343
16344         * XplatUIX11.cs: 
16345           - Store the calculated rectangle in Hwnd object and use it when 
16346             setting the client size
16347           - Force Toolwindows to always be type Dock, to ensure they're on top
16348
16349 2006-05-18  Mike Kestner  <mkestner@novell.com>
16350
16351         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
16352         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
16353         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
16354         Substantial refactoring to remove confusing nested classes. Coding
16355         standard and Get+Set->property refactorings.  Shift to index based
16356         highlighting in ComboListBox instead of constantly using IndexOf and
16357         Items[]. Add invalidations on resize for DropDownList to fix ugliness
16358         in FileDialog growth.  Draw borders manually since Simple mode needs
16359         to look like two independent controls.  Make listbox border
16360         conditional to DropDownStyle.  Improved OwnerDraw support.
16361
16362 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
16363
16364         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
16365         Don't set the disposed graphics to null, so we can throw the "right"
16366         exception if the graphics is reused later (added a flag to avoid 
16367         double disposing). Some behaviours are different under 2.0 and are
16368         filled under bug #78448.
16369
16370 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
16371
16372         * Control.cs: When double-buffering is enabled, we need to reset
16373           our graphics context between paint calls. Otherwise, any 
16374           transformations and other alterations on the context will 
16375           become cumulative (#77734)
16376
16377 2006-05-18  Mike Kestner  <mkestner@novell.com>
16378
16379         * ListView.cs: do focused item selection like MS on clicks. 
16380         Rework focus handling for ItemControl so LostFocus invalidates as
16381         well.
16382         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
16383         the ListView ItemControl has focus.
16384
16385 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
16386
16387         * XplatUIX11.cs: If client_window ends up being width or height zero
16388           due to border settings, move it off window inside whole_window (#78433)
16389
16390 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
16391
16392         * Mime.cs: Shrink the mime file cache correctly.
16393
16394 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
16395
16396         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
16397
16398 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
16399
16400         * XplatUIX11.cs (AddExpose): More sanity checks
16401
16402 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
16403
16404         * XplatUIX11.cs:
16405           - AddExpose: Don't add expose ranges outside the size of our
16406             window
16407           - Cast opacity values to Int32 to avoid crashes with certain
16408             values
16409           - Added disabled code paths that protect against illegal cross-
16410             thread painting (Developers.exe)
16411
16412 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
16413
16414         * ProgressBar.cs: Invalidate the control when it's resized
16415           since block size is based on control size. (#78388)
16416
16417 2006-05-16  Miguel de Icaza  <miguel@novell.com>
16418
16419         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
16420         of setting the incoming argument to the "reset" value, we set the
16421         this.datamember to string.empty (before we were invalidating the
16422         incoming data).   
16423
16424         Fixes 78420
16425
16426 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
16427
16428         * Form.cs: Only apply transparency settings after the form
16429           is created. (Fixes #77800)
16430
16431 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
16432
16433         * ApplicationContext.cs: Grab the HandleDestroyed event so
16434           we know when to fire OnMainFormClosed 
16435
16436 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
16437
16438         * Application.cs: Introduced sub-class to allow tracking of
16439           threads and centralized triggering of the event mess for
16440           ThreadExit, AppExit, etc..  (#76156)
16441
16442 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
16443
16444         * MimeIcon.cs:
16445           - Do not return a null icon index value for a mime subclass.
16446             Instead try the main mime type class too.
16447           - Seems that some newer distributions don't have a link to some
16448             gnome default icons anymore. So check the default gnome dir too.
16449           
16450
16451 2006-05-16  Jackson Harper  <jackson@ximian.com>
16452
16453         * MdiClient.cs: Don't paint the parent background image if we have
16454         our own background image.
16455
16456 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
16457
16458         * Control.cs:
16459           - PerformLayout: Do not shrink space filled by DockStyle.Fill
16460             controls, all filled controls are supposed to overlap (#78080)
16461           - UpdateZOrder is supposed to update the control's z-order in the
16462             parent's z-order chain. Fixed to behave like that
16463           - BringToFront: Removed obsolete code
16464           - SendToBack: Simplyfied
16465           - SetChildIndex: Trigger layout calculations when Z-order changes
16466             since layout is done by z-order
16467
16468 2006-05-16  Chris Toshok  <toshok@ximian.com>
16469
16470         [ fixes bug #78410 ]
16471         * DataGrid.cs (set_AlternatingBackColor): use
16472         grid_drawing.InvalidateCells instead of Refresh().
16473         (set_BackColor): call grid_drawing.InvalidateCells.
16474         (set_BackgroundColor): use Invalidate instead of Refresh.
16475
16476         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
16477         invalidate the cell area.
16478
16479 2006-05-15  Chris Toshok  <toshok@ximian.com>
16480
16481         [ fixes bug #78011 ]
16482         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
16483         on to DataGridPaintRow.
16484         (DataGridPaintRow): take a clip argument, and only draw the cells
16485         which intersect it.  same with the not_usedarea.
16486
16487         * Theme.cs (DataGridPaintRow) add @clip parameter.
16488
16489         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
16490         XplatUI.ScrollWindow.
16491         (ScrollToRow): same.
16492
16493         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
16494         with last column which was causing a gray swath to appear with the
16495         XplatUI.ScrollWindow code.
16496
16497 2006-05-15  Chris Toshok  <toshok@ximian.com>
16498
16499         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
16500         use XplatUI.ScrollWindow.
16501         (VerticalScrollEvent): use XplatUI.ScrollWindow.
16502
16503 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
16504
16505         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
16506
16507 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
16508
16509         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
16510           file since there are no equivalent X11 cursors
16511
16512 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
16513
16514         * MonthCalendar.cs : DateTimePicker should reflect selected date
16515           on mouse*up*, not mouse*down*. Fixed originally reported part of
16516           bug #76474.
16517
16518 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
16519
16520         * TabControl.cs : When argument index is equal or more than tab
16521           count, just ignore. Fixed bug #78395.
16522
16523 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
16524
16525         * Control.cs: Dispose all child controls when control is diposed (#78394)
16526
16527 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
16528
16529         * ColorDialog.cs: Finally it is possible to select the color with
16530           the text boxes
16531
16532 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
16533
16534         * PrintDialog.cs: Fix typo
16535
16536 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
16537
16538         * PrintDialog.cs: PrintDialog is not resizable
16539         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
16540           color. Made some ToolBar drawing methods protected virtual.
16541
16542 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
16543
16544         * PrintDialog.cs: Implementation of the PrintDialog
16545
16546 2006-05-12  Chris Toshok  <toshok@ximian.com>
16547
16548         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
16549         thumb, instead use MoveThumb.  This has the side effect of making
16550         most of the other thumb moving machinery use MoveThumb as well.
16551         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
16552         need to actually invalidate the rectangle where the new thumb will
16553         go.
16554         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
16555         We force an Update() after, so it's not as fast as it could be,
16556         but at least there's zero flicker and no droppings.
16557         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
16558         (UpdateThumbPos): add another argument (dirty), which says whether
16559         or not to calculate/add dirty regions which we later invalidate.
16560         For cases where we know we're going to use MoveThumb, we pass
16561         false for this.  Otherwise, pass true.
16562
16563 2006-05-12  Jackson Harper  <jackson@ximian.com>
16564
16565         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
16566         the status bar.
16567         
16568 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
16569
16570         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
16571           and GetClipRegion methods and UserClipWontExposeParent property.
16572         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
16573           overriding UserClipWontExposeParent property, setting to false, since
16574           Win32 handles the required expose messages to draw our clipped parent
16575           areas internally
16576         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
16577           PaintEventStart to set the user clip region if set.
16578         * Control.cs: 
16579           - Now internally tracking the Region for the control since we need to
16580             store it if the handle is not yet created and only set it when it
16581             becomes created. Before setting the region forced handle creation
16582           - Added code to draw the parents underneath a user-clipped region
16583         * Hwnd.cs: Added UserClip property
16584
16585 2006-05-12  Chris Toshok  <toshok@ximian.com>
16586
16587         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
16588         (set_Maximum): same.
16589         (set_Minimum): same.
16590         (set_SmallChange): same.
16591         (OnMouseUpSB): remove the call to refresh when releasing the
16592         thumb.  We shouldn't need it.
16593         
16594 2006-05-12  Miguel de Icaza  <miguel@novell.com>
16595
16596         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
16597         AutoSize set to None, we do not need to relayout everything, we
16598         just need to invalidate the current region.
16599
16600         (Draw): Do not draw the entire ClientArea, just redraw the
16601         clip area being passed.
16602
16603         * MdiClient.cs: Make MdiClient constructor with the Form argument
16604         internal. 
16605
16606 2006-05-12  Jackson Harper  <jackson@ximian.com>
16607
16608         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
16609         parents background image,  but strangely not their own.
16610         - (DrawStatusBarPanel): Take into account horizontal alignment
16611         when drawing the strings and icons.
16612
16613 2006-05-12  Mike Kestner  <mkestner@novell.com>
16614
16615         * ListBox.cs: avoid invalidations for focus when the collection is
16616         empty. 
16617
16618 2006-05-12  Chris Toshok  <toshok@ximian.com>
16619
16620         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
16621         invalidate the entire thumb area.  Call InvalidateDirty which
16622         limits the redraw to the thumb itself and surrounding pixels.
16623
16624         * XplatUIX11.cs (ScrollWindow): optimize copying.
16625         
16626 2006-05-12  Chris Toshok  <toshok@ximian.com>
16627
16628         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
16629         Figure out the positioning/layout in a single pass instead of
16630         multiple recursive invocations.  Speeds up the initial display of
16631         the data grid.  Also, make many things private that were
16632         originally public but unused outside this class.
16633
16634 2006-05-11  Jackson Harper  <jackson@ximian.com>
16635
16636         * MdiClient.cs: Improved layout code.
16637
16638 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
16639
16640         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
16641           not SelectedObject.
16642
16643 2006-05-11  Chris Toshok  <toshok@ximian.com>
16644
16645         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
16646         union of that will always be {0,0,width,height}.
16647
16648 2006-05-11  Jackson Harper  <jackson@ximian.com>
16649
16650         * Form.cs: Match MS's DefaultSize for forms (they must have
16651         changed the size in sp2).
16652
16653 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
16654
16655         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
16656
16657 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
16658
16659         * TextControl.cs : Fixed bug #78109. This incorrect position
16660           comparison caused crash on automatic line split.
16661         * TextBoxBase.cs : reduce duplicate code.
16662
16663 2006-05-10  Jackson Harper  <jackson@ximian.com>
16664
16665         * MdiClient.cs: Active form is only sent to the back when using
16666         the Next form functionality, when a form is clicked the current
16667         active shouldn't be sent to the back.
16668         - Layout the mdi windows when the container is first made visible.
16669         * Form.cs: Give the MdiClient a ref to the containing form when we
16670         create it.
16671         
16672 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
16673
16674         * LinkLabel.cs : link_font could be uninitialized, so populate one
16675           before actual use. Fixed bug #78340.
16676
16677 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
16678
16679         * XplatUIX11.cs : clipboard format native value is IntPtr.
16680           Fixed bug #78283.
16681
16682 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
16683
16684         * Control.cs: 
16685           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
16686             which is passed up the parent chain by DefWndProc
16687           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
16688             to DefWndProc (#77956)
16689         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
16690
16691 2006-05-10  Jackson Harper  <jackson@ximian.com>
16692
16693         * MdiClient.cs: We need to remove the controls from the mdi
16694         collection, when we close the window.
16695         * MdiWindowManager.cs: Special handling of closing mdi windows.
16696         * InternalWindowManager.cs: Make the close method virtual so the
16697         mdi window manager can handle it specially.
16698
16699 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
16700
16701         * DataGrid.cs:
16702           - Recalculate grid when the data source has changed
16703           - Matches styles provided by user from all data sources types
16704         * DataGridTableStyle.cs: For columns that provided by the user set the
16705         with the preferred value is there was unassigned.
16706         * CurrencyManager.cs: throw OnItemChanged event
16707
16708 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
16709
16710         * PictureBox.cs: Don't animate until handle is created. Start animation
16711           when handle is created.
16712
16713 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
16714
16715         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
16716           current codebase.
16717         * XEventQueue.cs: We don't need to provide the extra info
16718
16719 2006-05-10  Jackson Harper  <jackson@ximian.com>
16720
16721         * MdiClient.cs: If the mdi clients parent form has a background
16722         image set, we draw that background image for the mdi area's
16723         background.
16724
16725 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
16726
16727         * TextBoxBase.cs: Set IBeam cursor (#78347)
16728
16729 2006-05-10  Mike Kestner  <mkestner@novell.com>
16730
16731         * ToolBar.cs: fix some text padding issues with ButtonSize
16732         calculation. Update the default size to match MS documentation.
16733         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
16734         button size. Fixes #78296.
16735
16736 2006-05-10  Mike Kestner  <mkestner@novell.com>
16737
16738         * ListBox.cs: use is_visible for scrollbar positioning in case the
16739         control isn't on screen yet.  Fix off by one with Right vs Width
16740         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
16741         
16742 2006-05-10  Jackson Harper  <jackson@ximian.com>
16743
16744         * X11Dnd.cs: Drop to a control with another control on top of it.
16745         * ToolBar.cs: Work on a copy of the buttons list, so that it can
16746         be modified in click handlers. TODO: Look for similar problems in
16747         other controls.
16748
16749 2006-05-09  Jackson Harper  <jackson@ximian.com>
16750
16751         * Form.cs: Window managers need the old window state when setting
16752         window state now.
16753         * InternalWindowManager.cs: Allow the base mdi window manager to
16754         handle more of the MDI only stuff (like maximize buttons).
16755         * MdiWindowManager.cs: Fix some snafus in changing the window
16756         state.  Add all the menu functionality, for both popup and
16757         maximized menus.
16758         * MdiClient.cs: When a new form is selected the currently
16759         activated form is sent to the back, this matches MS.
16760         - Implement a new method to activate the next mdi child window.
16761
16762 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
16763
16764         * Control.cs: 
16765           - Added new InternalCapture method to allow controls to prevent
16766             the capture behaviour on the click handlers
16767           - Switched to use InternalCapture
16768         * ComboBox.cs:
16769           - Using InternalCapture to prevent mouse captures from being released
16770             on mouse button release (Fixes #78100)
16771         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
16772           returns Form borders if a caption is present. (Fixes #78310)
16773
16774 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
16775
16776         * TreeNode.cs: Changed serialization .ctor to not require every field
16777           to be present. (#78265)
16778         * OwnerDrawPropertyBag.cs: Added serialization .ctor
16779
16780 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
16781
16782         * MimeIcon.cs: for is faster than foreach for strings.
16783
16784 2006-05-05  Mike Kestner  <mkestner@novell.com>
16785
16786         * CheckedListBox.cs: update check handling code to not use selected.
16787         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
16788         behavior for visual feedback, motion response, shift/ctrl handling,
16789         and properly deal with all 4 selection modes. Updates to bounds
16790         handling logic.  Add scroll wheel support. [Fixes #77842]
16791
16792 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
16793
16794         * ListView.cs:
16795           - Moved adding of Implicit controls into .ctor. That way, subsequent
16796             creation of the controls will not cause them to think they are 
16797             toplevel windows (fixes #78200 header problem)
16798           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
16799           - Switched visibility setting of header control to use internal field
16800             to avoid triggering handle creation
16801           - Now checking if handle is created before causing a refresh when items
16802             are added (This makes us now match handle creation time with MS)
16803         * Splitter.cs: Removed loading of private splitter cursor, switched to
16804           Cursors version now that that is loading the right ones
16805         * Cursors.cs: Load proper splitter cursors from resources
16806         * Cursor.cs: Added second method of loading resource cursors for the 
16807           VS.Net users amongst us
16808
16809 2006-05-05  Mike Kestner  <mkestner@novell.com>
16810
16811         * ListView.cs: give header_control a minimum size based on the
16812         ListView size.
16813
16814 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
16815
16816         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
16817           window seems to do that with metacity, so set that type. (#78120)
16818
16819 2006-05-05  Mike Kestner  <mkestner@novell.com>
16820
16821         * ListViewItem.cs: fix Details mode checkbox layout bug.
16822         * ThemeWin32Classic.cs: draw a ListView column header for unused space
16823         at the end of the header, if it exists. [Fixes for #78200]
16824
16825 2006-05-04  Jackson Harper  <jackson@ximian.com>
16826
16827         * MdiClient.cs: Add a helper property to get the container form.
16828         * MdiWindowManager.cs: We have to make sure to use the menu origin
16829         when drawing the icons and buttons, this fixes maximized window
16830         icons/buttons on win32.
16831         * InternalWindowManager.cs: Reset the restore captions when a
16832         window goes from Maximized to Minimized and vice versa. Move the
16833         DrawMaximizedButtons into the MdiWindowManager source, tool
16834         windows can't be maximized. NOTE: This could use a little
16835         refactoring if time ever permits.
16836         
16837 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
16838
16839         * TextBox.cs: Add MWFCategoryAttributes
16840         * TextBoxBase.cs: Add MWFCategoryAttributes
16841         * Form.cs: Add MWFCategoryAttributes
16842
16843 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
16844
16845         * Control.cs: Add MWFCategoryAttributes
16846         * ScrollableControl.cs: Add MWFCategoryAttributes
16847
16848 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
16849
16850         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
16851           Divider is true. Fix a little glitch in PropertyToolBar
16852           drawing code
16853
16854 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
16855
16856         * Control.cs:
16857           - Dispose: Call base.Dispose, this causes the disposed event
16858             to be fired (and probably other, more important stuff)
16859           - SetVisibleCore: Set is_visible to true after creating the
16860             window so that the window still gets created invisible (if
16861             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
16862             to generate a WM_ACTIVE message
16863         * Form.cs: Call Dispose when we want to destroy the window, instead of
16864           just destroying the handle (Dispose will do that for us)
16865         * XplatUIX11.cs:
16866           - RootWindow also needs a queue, so we can properly process the
16867             property change events from RootWindow (like Activate)
16868           - Generatic synthetic WM_ACTIVE message when the active window is
16869             being destroyed
16870
16871 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
16872
16873         * LinkLabel.cs: Trigger a recalc of our label dimensions when
16874           bounds are changed
16875
16876 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
16877
16878         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
16879           for determining width and height (image might not be assigned if
16880           we're drawing an imagelist)
16881
16882 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
16883
16884         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
16885         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
16886           height from system
16887         * Theme.cs: No longer returns hardcoded menu height, instead calls
16888           new driver method
16889         * Form.cs (OnLoad): Scaling happens before triggering Load events 
16890           on MS (# 78257)
16891
16892 2006-05-01  Mike Kestner  <mkestner@novell.com>
16893
16894         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
16895
16896 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
16897
16898         * TextBoxBase.cs: Removed Fixme
16899         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
16900
16901 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
16902
16903         * XplatUIX11.cs:
16904           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
16905             the rectangle relative to the parent, considering borders. We
16906             don't really want that.
16907           - ScrollWindow: Fixed warning to be more understandable
16908         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
16909           scrollbars and scroll only the visible area
16910         * RichTextBox.cs: Removed debug output
16911
16912 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
16913
16914         * NumericUpDown.cs (Text): Just use base
16915         * UpDownBase.cs: Ensure txtView is created before using it
16916
16917 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
16918
16919         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
16920           casting to IntPtr to avoid 64bit overflow errors
16921
16922 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
16923
16924         * Control.cs:
16925           - AllowDrop: Don't force handle creation.
16926           - CreateHandle: Added call to tell driver if we're allowed to drop
16927
16928 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
16929
16930         * FileDialog.cs: Remember the last directory not only for the
16931           current instance but also for new FileDialog instances.
16932
16933 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
16934         
16935         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
16936           broke sending async messages
16937
16938 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
16939
16940         * XplatUIX11.cs:
16941           - ScrollWindow: Fixed method. We finally generate expose events again
16942             for scrolled areas. This was causing 'garbage' when scrolling
16943             textbox and other controls that used ScrollWindow
16944           - Switched from using the regular queue for paint events to the MS 
16945             model of 'generating' paint events when the queue is empty.
16946             We use the new XQueueEvent.Paint subclass to store which windows
16947             need painting.
16948           - AddExpose now takes the x/y/width/height of the exposed area
16949             and inserts the window into the paint queue if not already there
16950           - InvalidateWholeWindow: Switched to use new AddExpose method
16951           - UpdateMessageQueue: Added which queue to monitor for paint events
16952           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
16953             the unlikely case nothing above handles it. We reset the expose
16954             pending states to get them off the queue.
16955           - GetMessage: Now pulls a paint event if no other events are in the
16956             queue
16957           - Invalidate: Switched to new AddExpose method
16958           - PeekMessage: Updated to understand pending paint events
16959           - UpdateWindow: Fixed logic bug. We were only updating if the window
16960             didn't need updating. Also switched to sending WM_PAINT directly,
16961             like MS does.
16962         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
16963           and random access Remove(). The random access is needed to handle
16964           UpdateWindow() where a WM_PAINT is sent directly without accessing
16965           the queue.
16966         * ScrollBar.cs: Added Update() calls to cause immediate updates to
16967           allow for better feedback when scrolling. Scrollbars are small and
16968           the immediate update should make it 'feel' more responsive without
16969           slowing things down. ScrollBar still needs it's invaliate logic
16970           updated to not always invalidate the whole bar on certain changes.
16971
16972 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16973
16974         * Control.cs:
16975         (BackColor): if the control does not support a transparent background,
16976         return the default backcolor when the parent backcolor is transparent.
16977
16978 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
16979
16980         * Application.cs: Updated to new StartLoop/GetMessage API
16981         * RichTextBox.cs: Provide some output on RTF parsing errors
16982         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
16983           new queue_id argument to GetMessage and PeekMessage to allow faster
16984           handling of per-thread queues in drivers.
16985         * Hwnd.cs: Added Queue tracking and property
16986         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
16987         * XEventQueue.cs: Added thread trackingA
16988         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
16989         * XplatUIX11.cs:
16990           - Implemented new per-thread queue
16991           - GetMessage: Fixed return/break behaviour on several cases. We were
16992             returning stale messages in some cases, instead of just processing
16993             the next message
16994
16995 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
16996
16997         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
16998
16999 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
17000
17001         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
17002           fixed off-by-one comparisons between Width/Height and Right/Bottom.
17003
17004 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
17005
17006         * PropertyGridView.cs: Fix drop down width.
17007
17008 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
17009
17010         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
17011           a mess in DrawToolBar, so I removed one of them.
17012
17013 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
17014
17015         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
17016           needed (clip). Otherwise we get artifacts.
17017
17018 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
17019
17020         * FixedSizeTextBox.cs: Added constructor to allow specifying which
17021           dimension is fixed
17022         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
17023           and switched FixedSizeTextBox to only be fixed vertical (#78116)
17024         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
17025           if it matches the scale base font (avoids unneeded scaling)
17026
17027 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
17028
17029         * X11DesktopColors.cs: One gtk_init_check should be enough
17030
17031 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
17032
17033         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
17034           match MS behaviour
17035
17036 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
17037
17038         * TextBoxBase.cs: 
17039           - Generate OnTextChanged for Backspace even if we're only deleting
17040             the current selection
17041           - When setting the Text property, only select all text if the
17042             control does not have focus when it is being set. Otherwise
17043             just place the cursor at the beginning of the control
17044
17045 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
17046
17047         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
17048           Added a little helper to draw PropertyGrid ToolBar with a different
17049           border and a different BackColor.
17050         * PropertyGrid.cs: Some background parts didn't get painted with the
17051           correct background color. Added a class that helps us to draw the
17052           correct border for PropertyGridView and a class that helps us to
17053           draw ToolBars with a different backcolor
17054         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
17055
17056 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
17057
17058         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
17059         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
17060
17061 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
17062
17063         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
17064           into the palette entries. Also, since we're working on a copy
17065           we needed to copy the palette back onto the bitmap.
17066         * Cursor.cs: Same fix as XplatUIWin32.cs.
17067
17068 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
17069
17070         * ImageListStreamer.cs: Need to read the var (or we're off)
17071
17072 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
17073
17074         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
17075           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
17076           TextBoxBase.cs: Unused var fixes
17077         * AxHost.cs: Small 2.0 fix
17078         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
17079           as it seems that is what at least Metacity expects. This will make
17080           icons show up on 64bit platforms. We still have some 64bit size
17081           issues, though, since the startup app window size still won't match.
17082
17083 2006-04-25  Mike Kestner  <mkestner@novell.com>
17084
17085         * *.cs: cleanup newly reported exception var unused warnings.
17086
17087 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
17088
17089         * ThemeWin32Classic.cs: Button image alignment now matches exactly
17090           ms
17091
17092 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
17093
17094         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
17095           image. The image position is always the same, no matter if the
17096           button is pressed or not.
17097
17098 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
17099
17100         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
17101           selection and set the correct filename for SaveFileDialog.
17102           Patch by Emery Conrad.
17103
17104 2006-04-24  Mike Kestner  <mkestner@novell.com>
17105
17106         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
17107         check for item.X outside the ClientRect instead of item.Y. Fixes
17108         #78151.
17109
17110 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17111
17112         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
17113         trust that value blindly and do some sanity check. Fixes bug #77814.
17114
17115 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17116
17117         * ImageListStreamer.cs: save the mask as a 1bpp image.
17118
17119 2006-04-21  Mike Kestner  <mkestner@novell.com>
17120
17121         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
17122         pass Checked and Indeterminate to the Theme Engine. Improve
17123         encapsulation with ListBox.
17124         * ListBox.cs: Keep a StringFormat instead of calculating it every item
17125         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
17126         nested types.  Move all CheckState functionality to CheckedListBox.
17127         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
17128         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
17129         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
17130         single base list. Fix scrollbar sizing and placement to mirror MS.
17131         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
17132         used.
17133         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
17134         for CheckedListBox by using new DrawItemState info.  Center the
17135         checkboxes on the items. Use new StringFormat property.
17136
17137 2006-04-18  Jackson Harper  <jackson@ximian.com>
17138
17139         * Form.cs: MdiChildren don't do default locations the same way as
17140         regular forms.  This prevents a crash when trying to position the
17141         mdi windows.
17142
17143 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
17144
17145         * PropertyGridTextBox.cs: Formatting, copyright
17146         * PropertiesTab.cs: Formatting
17147         * PropertyGrid.cs: Formatting
17148         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
17149           click toggling of values
17150           
17151 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
17152
17153         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
17154         * Control.cs (.ctor): verify_thread_handle is static, don't reset
17155           every time a control is created
17156         * Application.cs: Removed obsolete EnableRTLMirroring method
17157
17158 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
17159
17160         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
17161         SelectedIndex to -1. Fixes bug #78121.
17162
17163 2006-04-17  Jackson Harper  <jackson@ximian.com>
17164
17165         * Binding.cs: Handle null values for Current and BindingContext.
17166         This occurs when binding is a little delayed.
17167         * CurrencyManager.cs: return null for Current when there are no
17168         items in the list.
17169         - Hookup to the listchanged event on the DataView and update
17170         bindings when the list is changed.  This fixes late binding of
17171         controls.
17172
17173 2006-04-17  Jackson Harper  <jackson@ximian.com>
17174
17175         * X11Dnd.cs:
17176         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
17177         Ringenbach.
17178
17179 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
17180
17181         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
17182           place
17183         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
17184           with the correct ButtonState
17185
17186 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
17187
17188         * XplatUIX11.cs: Improved distinguishing between window types to
17189           tell the WM a type closer to what the app wants (Fixes #78107)
17190
17191 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
17192
17193         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
17194           GrabHandle
17195
17196 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
17197
17198         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
17199           drawing code to reflect the size grip changes
17200
17201 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17202
17203         * ImageListStreamer.cs: fix handling of the mask that follows the main
17204         bitmap when deserializing and serialize it properly. The generated mask
17205         should better be a 1bpp image, but I'll do that later.
17206
17207 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
17208
17209         * FileDialog.cs: Show something in the DirComboBox on *nix if the
17210           path doesn't fit into some of our Current.Places
17211
17212 2006-04-13  Jackson Harper  <jackson@ximian.com>
17213
17214         * ComboBox.cs: Use borders instead of drawing our own decorations,
17215         try to obey correct rules for heights.
17216         * Theme.cs:
17217         * ThemeNice.cs:
17218         * ThemeClearLooks.cs:
17219         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
17220         this is now handled by borders.
17221         - Remove unused DrawListBoxDecorationSize method.
17222         
17223 2006-04-13  Mike Kestner  <mkestner@novell.com>
17224
17225         * MenuAPI.cs: null guarding for the disbled click check fixes crash
17226         reported by Alex.
17227
17228 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
17229
17230         * ThemeWin32Classic.cs: 
17231           - Fixed CPDrawStringDisabled
17232           - Corrected drawing of disabled menu items
17233           - Fixed drawing of disabled radio buttons (bug #78095)
17234           - Draw check in a disabled CheckBox with color ControlDark 
17235
17236 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
17237
17238         * Form.cs: Use the provided width when calculating the menu size;
17239           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
17240           and ClientSize.Width won't be updated yet
17241         * Application.cs: Use Visible instead of Show() to make form visible,
17242           this way we create the handle later and menusize is considered
17243
17244 2006-04-12  Mike Kestner  <mkestner@novell.com>
17245
17246         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
17247         reporting.
17248
17249 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
17250
17251         * TextBox.cs: Implemented context menu
17252
17253 2006-04-12  Mike Kestner  <mkestner@novell.com>
17254
17255         * ListView.cs: implement box selection. fixes #77838.
17256         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
17257
17258 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
17259
17260         * XplatUIX11.cs: Added setting of window type when transient window
17261           is created (metacity would move it otherwise)
17262         * X11Structs.cs: Added WINDOW_TYPE atoms
17263         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
17264           background (the control is Opaque but still wants transparent
17265           backgrounds)
17266
17267 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
17268
17269         * Control.cs: Added OnPaintBackgroundInternal to allow controls
17270           that set Opaque but don't mean it (like all ButtonBase-derived
17271           controls) to still draw their background
17272         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
17273           the background
17274
17275 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
17276
17277         * Control.cs (PaintControlBackground): Set the graphics object
17278           on our PaintEvent to null to prevent it from being disposed
17279           when the PaintEvent gets disposed
17280
17281 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
17282
17283         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
17284         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
17285
17286 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
17287
17288         * Control.cs: 
17289           - Added transparency check to BackColor property. Transparent
17290             backgrounds are only allowed if the control styles permit it
17291           - Added recursive painting of parent control background and
17292             foreground if a control with a transparent backcolor is drawn
17293             (Thanks to Tim Ringenback for providing his 'hack' as a base
17294              for this patch) Fixes #77985 and #78026.
17295           - Added Opaque style check before calling OnPaintBackground, no
17296             need to draw the background if the control is opaque
17297           - Removed ControlAccessibleObject owner variable (inherited from
17298             base, no need to define again)
17299           - Added some documentation links explaining the drawing events
17300             and styles
17301
17302 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
17303
17304         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
17305           that the affected control is the located at the left border of our
17306           parent (Fixes #77936)
17307
17308 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
17309
17310         * TextBoxBase.cs: When rendering disabled or readonly controls,
17311           draw the background with 'Control' instead of 'Window' color as
17312           long as the user hasn't specifically set a color
17313
17314 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
17315
17316         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
17317           since that won't be updated if the user types text (only if it's
17318           programatically set)
17319
17320 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
17321
17322         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
17323           layout changes do to app-triggered resizes will have the proper
17324           display rectangle for layout
17325
17326 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
17327
17328         * ThemeWin32Classic.cs:
17329           - Make use of the SystemBrushes and SystemPens wherever possible
17330           - Corrected some highlight colors
17331           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
17332             drawing
17333         * Theme.cs: Added Empty field to CPColor struct
17334
17335 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
17336
17337         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
17338           is displayed when calculating the display rectangle. Thanks to Mike
17339           for teaching me the err of my ways.
17340
17341 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
17342
17343         * ScrollableControl.cs:
17344           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
17345             (instead of 0,0) and we now return the real width/height instead of
17346             just the clientrectangle, adjusted for padding. The rectangle is
17347             now cached and created by the new CalculateDisplayRectangle method.
17348           - Created new CalculateDisplayRectange method, which basically does
17349             what get_DisplayRectangle() did originally, but now using the 
17350             right edge instead of DisplayRectangle to determine the size of
17351             our scrollbars
17352           - get_Canvas(): Fixed it to properly calculate canvas for 
17353             right/bottom controls which seem to be placed to the right/bottom
17354             of any controls that have a fixed location
17355           - Removed TODO that's taken care of
17356           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
17357             and SetDisplayRectLocation according to new MSDN2 docs
17358           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
17359             event when that is called, this is added for compatibility
17360           - ScrollControlIntoView(): Implemented.
17361           - Switched scrollbars to be implicit, they shouldn't be selectable
17362         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
17363           call it when the active control is set/changed
17364         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
17365         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
17366           implicit_control variable (used for native Win32 message generation)
17367         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
17368           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
17369         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
17370         * XplatUIStructs.cs: Added ScrollBarCommands enum
17371
17372 2006-04-10  Jackson Harper  <jackson@ximian.com>
17373
17374         * ButtonBase.cs:
17375         * CheckedListBox.cs:
17376         * ComboBox.cs:
17377         * DataGrid.cs:
17378         * DataGridView.cs:
17379         * Form.cs:
17380         * GroupBox.cs:
17381         * ListBox.cs:
17382         * PrintPreviewControl.cs:
17383         * ProgressBar.cs:
17384         * PropertyGrid.cs:
17385         * Splitter.cs:
17386         * StatusBar.cs:
17387         * TrackBar.cs:
17388         * UpDownBase.cs: Fixup base event overrides.
17389         
17390 2006-04-06  Mike Kestner  <mkestner@novell.com>
17391
17392         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
17393         all user-initiated value changes to min <= value <= max-thumbsz+1.
17394         (set_Value): check for vert/horiz when calculating new thumb position.
17395         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
17396         like MS does.
17397         (OnMouseMoveSB): refactor the thumb dragging code and refine
17398         invalidation logic to reduce flicker.
17399         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
17400         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
17401         (UpdateThumbPosition): small code readability cleanup
17402
17403 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
17404
17405         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
17406           different
17407
17408 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
17409
17410         * ThemeNice.cs: Use a better graphics effect when a button is pressed
17411
17412 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
17413
17414         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
17415         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
17416           This dramatically reduces the number of Pen.Dispose calls. 
17417           Where possible call ResPool methods only once instead of calling it
17418           over and over again (for example for the same color).
17419
17420 2006-04-06  Mike Kestner  <mkestner@novell.com>
17421
17422         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
17423         Also remove an unused private field on the collection. Fixes #77972.
17424
17425 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
17426
17427         * ThemeNice.cs: Added ToolBar drawing code
17428
17429 2006-04-06  Mike Kestner  <mkestner@novell.com>
17430
17431         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
17432         I'm assuming that means we need to look up the toplevel for the
17433         provided control. Fixes the crash trace in #77911 but exposes another
17434         crash in some strange reflection usage in NDocGui.
17435
17436 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
17437
17438         * ThemeNice.cs: Gave it a little silver touch and added Images
17439           method
17440         * FontDialog.cs: FontDialog is not resizable
17441         * FileDialg.cs: Added SizeGripStyle.Show
17442
17443 2006-04-05  Jackson Harper  <jackson@ximian.com>
17444
17445         * KeyboardLayouts.cs: Remove warning.
17446
17447 2006-04-05  Jackson Harper  <jackson@ximian.com>
17448
17449         * Control.cs: Enable OnPaintInternal so we can use it for drawing
17450         all of our controls instead of Paint +=.
17451         * ListBox.cs:
17452         * ListView.cs:
17453         * MenuAPI.cs:
17454         * MessageBox.cs:
17455         * NotifyIcon.cs:
17456         * ProgressBar.cs:
17457         * ScrollBar.cs:
17458         * Splitter.cs:
17459         * StatusBar.cs:
17460         * TabControl.cs:
17461         * TextBoxBase.cs:
17462         * ToolBar.cs:
17463         * TrackBar.cs:
17464         * UpDownBase.cs:
17465         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
17466         use OnPaintInternal. Remove Width/Height and Visible checks in
17467         paint handler, this is done at a higher level now.
17468         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
17469         * PaintEventArgs.cs: Add a handled flag so controls that don't
17470         want anymore painting after OnPaintInternal can make sure OnPaint
17471         isn't called.
17472
17473 2006-04-05  Mike Kestner  <mkestner@novell.com>
17474
17475         * Form.cs: fix the menu WndProc hacks to respect the native enabled
17476         state of the form, so that we don't process events when Modal dialogs
17477         are up. Fixes #77922.
17478
17479 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
17480
17481         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
17482           checking is done.
17483
17484 2006-04-05  Mike Kestner  <mkestner@novell.com>
17485
17486         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
17487
17488 2006-04-05  Mike Kestner  <mkestner@novell.com>
17489
17490         * ListView.cs (HeaderMouseMove): null guarding for the over column
17491         when setting up the drag_to_index.  Fixes #78015.
17492
17493 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
17494
17495         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
17496           in the taskbar. Transient windows seem to accomplish that.
17497
17498 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
17499
17500         * Form.cs:
17501           - Re-enabled CreateParams.X/Y code for FormStartPosition
17502           - Added code for manual placement when creating the Control
17503           - Incomplete patch to treat MDI forms differently when
17504             setting the ClientSizeCore. (Still need to figure out handling
17505             x/y coords there)
17506         * XplatUIX11.cs:
17507           - When we're explicitly setting the X/Y position of a non-Child
17508             window, let the WM know. Metacity really wants this.
17509
17510 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
17511
17512         * ThemeNice.cs: Added CPDrawButton
17513
17514 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
17515
17516         * ThemeNice.cs: Changed the color for focused buttons and activated
17517           the arrows for small scroll buttons.
17518
17519 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
17520
17521         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
17522           anymore. Changed some method modifiers to protected (virtual)
17523         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
17524           changes
17525         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
17526           Updated drawing of menus, buttons and progressbars; added
17527           CPDrawBorder3D 
17528
17529 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17530
17531         * ImageListStreamer.cs: implemented serialization/deserialization
17532         of the images.
17533
17534 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
17535
17536         * ThemeWin32Classic.cs:
17537           - Removed all the DrawFrameControl stuff; CPDrawButton,
17538             CPDrawCheckBox and CPDrawRadioButton are now handled directly
17539             inside the methods
17540           - Updated and corrected the drawing code of CPDrawButton,
17541             CPDrawCheckBox and CPDrawRadioButton to better match ms
17542           - Updated theme checkbox and radiobutton code to use the CP*
17543             methods
17544
17545 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
17546
17547         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
17548           bug is fixed
17549
17550 2006-03-31  Jackson Harper  <jackson@ximian.com>
17551
17552         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
17553         sometimes.
17554         * UpDownBase.cs: Don't CreateGraphics manually, use a
17555         Refresh. Ideally we would invalidate the correct areas here.
17556
17557 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
17558
17559         * XplatUIX11.cs: 
17560           - We now track the mapping state of windows. If a window (or 
17561             one of it's parents) is not mapped we no longer permit
17562             WM_PAINT messages to be generated since we'd otherwise get 
17563             lots of BadMatch X errors. Jackson did all the work figuring
17564             out the problem.
17565           - Destroying the caret if the window it's contained in is 
17566             destroyed. Can't use regular DestroyCaret method since it
17567             might fall into a drawing function (trying to remove the
17568             caret) and with that generate new BadMatch errors. Again,
17569             Jackson tracked this down.
17570           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
17571             make sure we send the messages to all windows. (The old code
17572             would send the WM_DESTROY to the window, and then all child
17573             windows would be 'gone' because the WM_DESTROY handle lookup
17574             would no longer find the destroyed window)
17575         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
17576         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
17577
17578 2006-03-31  Jackson Harper  <jackson@ximian.com>
17579
17580         * ScrollableControl.cs: Dont recalc if we are not visible.
17581
17582 2006-03-31  Mike Kestner  <mkestner@novell.com>
17583
17584         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
17585         the visibility branch.
17586
17587 2006-03-31  Jackson Harper  <jackson@ximian.com>
17588
17589         * ScrollBar.cs: Cap values when incrementing/decrementing.
17590
17591 2006-03-31  Mike Kestner  <mkestner@novell.com>
17592
17593         * MenuAPI.cs: setup menu.tracker for popup/context menus.
17594         * ToolTip.cs: guard against timer expirations with no active control.
17595         Not sure why it happened.
17596
17597 2006-03-31  Mike Kestner  <mkestner@novell.com>
17598
17599         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
17600         text.
17601         * ToolTip.cs: Position the tooltip based on where the cursor is at
17602         popup time, not at MouseEnter time.  Add a Down state so that we don't
17603         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
17604         positioning offset. Lookup DisplaySize at positioning time, since it
17605         can theoretically change during invocation.
17606         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
17607         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
17608
17609 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
17610
17611         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
17612           Fixes behaviour when the Text property of the box is String.Empty
17613
17614 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
17615
17616         * XplatUIX11.cs: Only send mouseleave for our client windows, not
17617           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
17618           a window)
17619
17620 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
17621
17622         * FileDialog.cs: Visual enhancement for the popup buttons in 
17623           PopupButtonPanel
17624
17625 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
17626
17627         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
17628           code
17629
17630 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
17631
17632         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
17633           highlighted menu items to match ms
17634
17635 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
17636
17637         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
17638
17639 2006-03-30  Mike Kestner  <mkestner@novell.com>
17640
17641         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
17642         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
17643         go active to account for HotLight to Selected transition.
17644         * MenuItem.cs: add internal Selected prop. Fill out the Status
17645         property by calculating it from item info. Add HotLight,
17646         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
17647
17648 2006-03-30  Mike Kestner  <mkestner@novell.com>
17649
17650         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
17651
17652 2006-03-29  Jackson Harper  <jackson@ximian.com>
17653
17654         * Form.cs: Implement TODO.
17655
17656 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
17657
17658         * PrintPreviewDialog.cs: Implemented missing methods and events; still
17659           missing proper dialog setup in the constructor
17660
17661 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
17662
17663         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
17664         * Control.cs:
17665           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
17666           - Fixed ResetBindings and removed TODO
17667           - Added check for cross-thread calls to get_Handle()
17668           - Added Marshaller attribute for set_Font to satisfy class status
17669         * FontDialog.cs: Removed TODOs that seemed implemented
17670         * UpDownBase.cs: Removed unneeded TODO and Fixme
17671         * MessageBox.cs: Implemented support for Default button and removed TODO
17672         * FileDialog.cs: Removed obsolete TODO
17673         * DomainUpDown.cs: Removed obsolete TODO
17674         * ButtonBase.cs: Removed obsolete TODO
17675         * XplatUIWin32.cs: Removed obsolete TODO
17676         * Form.cs:
17677           - Removed obsolete TODO
17678           - Calling CheckAcceptButton when the acceptbutton is changed to allow
17679             internal status updates
17680           - Making sure the active control is selected when the control is created
17681         * CurrencyManager.cs: Removed obsolete TODO
17682
17683 2006-03-29  Mike Kestner  <mkestner@novell.com>
17684
17685         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
17686         of PrintPreviewDialog and RichTextBox.
17687
17688 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
17689
17690         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
17691           DarkDark, Light and LightLight colors for a specific color
17692         * ThemeWin32Classic.cs:
17693           - Use Button drawing code to draw RadioButtons and CheckBoxes with
17694             Appearance = Button 
17695           - Make use of the new ResPool helper CPColor
17696           - Draw ProgressBar and StatusBar with correct 3D borders
17697
17698 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
17699
17700         * ColorDialog.cs: Return selected color. Fixes bug #77940.
17701
17702 2006-03-28  Mike Kestner  <mkestner@novell.com>
17703
17704         * ListView.cs: fix Icon layout to plan for scrollbar widths when
17705         calculating col/row counts.
17706
17707 2006-03-28  Mike Kestner  <mkestner@novell.com>
17708
17709         * ColumnHeader.cs:
17710         * ListView.cs:
17711         * ListViewItem.cs:
17712         * Menu.cs: 
17713         switch to explicit interface method implementation for some methods
17714         corcompare identifies as inconsistent with MS.
17715
17716 2006-03-28  Mike Kestner  <mkestner@novell.com>
17717
17718         * MainMenu.cs: 
17719         * Menu.cs:
17720         add a few missing methods from the class status output.
17721
17722 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
17723
17724         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
17725           correct.
17726
17727 2006-03-28  Mike Kestner  <mkestner@novell.com>
17728
17729         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
17730
17731 2006-03-27  Mike Kestner  <mkestner@novell.com>
17732
17733         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
17734         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
17735
17736 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
17737
17738         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
17739
17740 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
17741
17742         * ThemeWin32Classic.cs:
17743           - GroupBox: Inserted a little gap between the text and the lines
17744             on the right side
17745           - Made the code in CPDrawBorder3D more readable
17746           - Corrected the drawing location of the up and down arrows in 
17747             CPDrawScrollButton
17748
17749 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
17750
17751         * ControlPaint.cs: Corrected line widths in DrawBorder for
17752           ButtonBorderStyle Inset and Outset
17753
17754 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
17755
17756         * ThemeWin32Classic.cs:
17757           - Rewrote the totally broken CPDrawBorder3D method. That was
17758             one of the main problems for the terrific ThemeWin32Classic
17759             look
17760           - Updated and corrected Button drawing
17761           - Correct the dimensions of the SizeGrip to match ms ones
17762           - Removed a small drawing glitch in DrawComboBoxEditDecorations
17763         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
17764           Border3DStyle.Sunken to match ms.
17765
17766 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
17767
17768         * ThemeWin32Classic.cs: First small part of the "de-uglify
17769           ThemeWin32Classic" effort, SizeGrip
17770
17771 2006-03-24  Jackson Harper  <jackson@ximian.com>
17772
17773         * XplatUIX11.cs: Give a max idle time of one second, this matches
17774         MS and forces an Idle event every second when there are no other
17775         events in the queue.
17776
17777 2006-03-24  Mike Kestner  <mkestner@novell.com>
17778
17779         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
17780         * ListView.Item.cs: fix layout issues with null image lists and images
17781         smaller than checkbox size.
17782         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
17783         mode like MS does.  It's weird, but consistent.  ;-)
17784         Fixes #77890.
17785
17786 2006-03-24  Mike Kestner  <mkestner@novell.com>
17787
17788         * ListView.cs: Scroll wheel support for the item control.  Fixes
17789         #77839.
17790
17791 2006-03-23  Jackson Harper  <jackson@ximian.com>
17792
17793         * ScrollableControl.cs: Special case negative sized areas, not
17794         zero.
17795         * MonthCalendar.cs: Save the rect of the clicked date so we can
17796         use it for invalidation.
17797         - Try to cut down on the number of invalidates
17798         - Invalidate the rect the mouse is over and was over when moving
17799         the mouse, so we get the focus box following the cursor.
17800
17801 2006-03-23  Mike Kestner  <mkestner@novell.com>
17802
17803         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
17804         focus rectangle drawing. Fixes #77835.
17805
17806 2006-03-23  Mike Kestner  <mkestner@novell.com>
17807
17808         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
17809         the if and else if and reverting back to the original == check on the
17810         None conditional.
17811
17812 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
17813
17814         * FontDialog.cs: Update the example panel if the selected index of
17815           the fontListBox changes.
17816
17817 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
17818
17819         * FileDialog.cs: Make FileDialog remember which directory it was in
17820           last in the same execution.
17821
17822 2006-03-22  Mike Kestner  <mkestner@novell.com>
17823
17824         * FileDialog.cs: make the DropDownMenu on the toolbar display
17825         RadioChecks since they are mutually exclusive and that's what MS does.
17826
17827 2006-03-22  Mike Kestner  <mkestner@novell.com>
17828
17829         * Theme.cs: add Color param to CPDrawMenuGlyph.
17830         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
17831         checks and radio marks and arrows are visible on highlighted items.
17832         * ControlPaint.cs: update to use new Theme signature.
17833
17834 2006-03-22  Mike Kestner  <mkestner@novell.com>
17835
17836         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
17837         is active. Fixes #77870.
17838
17839 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
17840
17841         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
17842           to be focused/selected after startup
17843
17844 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
17845
17846         * ColorDialog.cs: 
17847           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
17848             CustomColors and ShowHelp properties
17849           - Some internal rewrites to get better results when using the
17850             ColorMatrix
17851
17852 2006-03-22  Mike Kestner  <mkestner@novell.com>
17853
17854         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
17855         HoverSelection.  Fixes #77836.
17856
17857 2006-03-22  Mike Kestner  <mkestner@novell.com>
17858
17859         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
17860         ToggleButtons.  (De)Sensitize the Back button around a stack count of
17861         1, not 0.  Update ButtonSize based on a pixel count of the win32
17862         control.  Adjust the toolbar size/location for new button size.
17863
17864 2006-03-22  Jackson Harper  <jackson@ximian.com>
17865
17866         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
17867         true.
17868         * ScrollBar.cs: When doing increments and decrements we need to
17869         set the Value property so that ValueChanged gets raised. A
17870         possible optimization here would be to make an internal SetValue
17871         that doesn't invalidate immediately.
17872         * ToolTip.cs: Tooltips get added to their container (when
17873         supplied) so they get disposed when the container is disposed.
17874         - Don't create tooltips for String.Empty. This prevents all these
17875         little 2-3 pixel windows from showing up when running nunit-gui
17876         and driving me mad.
17877         * Form.cs: Don't set topmost when setting the owner if the handles
17878         haven't been created yet.  The topmost set will happen when the
17879         handles are created.
17880
17881 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
17882
17883         * XplatUIX11.cs:
17884           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
17885           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
17886             visible (to allow them to recalculate their sizes)
17887
17888 2006-03-21  Mike Kestner  <mkestner@novell.com>
17889
17890         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
17891         methods. Removed a ton of redundant code.  Still not really happy with
17892         the border rendering, but I think that's mainly because of the
17893         ControlDarkDark being black instead of a dark grey. Depending on how 
17894         close we want to be, we might want to revisit those color choices.
17895         Among the new features added during the refactor were DropDownArrow
17896         pressed rendering, Disabled image rendering.  Proper flat appearance
17897         boundary rendering.  Removed the Divider and Wrapping dividers since I
17898         can't figure out any combination of themes and conditions to make the
17899         MS control draw a horizontal line on a toolbar despite what the
17900         Divider property docs indicate.
17901         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
17902         conditions and incorrect layout.  Updated to coding standard.
17903         * ToolBarButton.cs: refactored layout and positioning code from
17904         ToolBar to here.  Invalidate wherever possible instead of forcing
17905         redraws of the whole toolbar. 
17906         (Known remaining issues: explicit ButtonSize smaller than provided
17907         images.)
17908
17909 2006-03-21  Mike Kestner  <mkestner@novell.com>
17910
17911         * ContextMenu.cs (Show): use the position parameter instead of just
17912         showing at the MousePosition.
17913
17914 2006-03-21  Jackson Harper  <jackson@ximian.com>
17915
17916         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
17917         control handle this.
17918         * TreeNodeCollection.cs: If we are clearing the root node we need
17919         to reset top_node so calcs can still happen.
17920         * ThemeWin32Classic.cs: This is a Flags so we need to check
17921         properly.
17922         
17923 2006-03-21  Jackson Harper  <jackson@ximian.com>
17924
17925         * DataGrid.cs: Create columns when the binding context has been
17926         changed.
17927         * X11Structs.cs: Keysyms are uints.
17928         - Add size to fix build.
17929
17930 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
17931
17932         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
17933           XplatUIOSX.cs: 
17934           - Added ResetMouseHover method to allow controls to retrigger
17935             hovering if they need it more than once
17936           - Implemented MouseHoverTime and MouseHoverSize properties
17937         * Timer.cs: Start() must reset the interval
17938         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
17939           properties
17940
17941 2006-03-21  Jackson Harper  <jackson@ximian.com>
17942
17943         * X11Keyboard.cs: improved layout detection. Move the nonchar
17944         tables into this file.
17945         * KeyboardLayouts.cs: Move the tables into resource files.
17946
17947 2006-03-21  Mike Kestner  <mkestner@novell.com>
17948
17949         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
17950
17951 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
17952
17953         * Mime.cs: Various speed optimizations. Looking up mime types
17954           is now 2 times faster than before
17955
17956 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
17957
17958         * CreateParams.cs: Added internal menu field
17959         * Control.cs: 
17960           - Switched call order for UpdateBounds; now we always call
17961             the one that also takes ClientSize, and we're calculating the 
17962             client size via driver method in the others. The previous
17963             method of tracking client size by difference wasn't working
17964             for forms where even the starting client size wouldn't match
17965             the overall form size (due to borders) (Part of fix for #77729)
17966           - CreateParams(): Do not use parent.Handle unless the handle is
17967             already created. Causes havoc with Nexxia and throws off our
17968             creation of controls
17969         * XplatUIX11.cs:
17970           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
17971           - Switched handling of ConfigureNotify over to new PerformNCCalc 
17972             method (consolidates code)
17973           - Changed RequestNCRecalc to use new PerformNCCalc method
17974           - Added calls to RequestNCRecalc when menus and borders are changed
17975             to allow app to set NC size. (Part of fix for #77729) This matches
17976             when MS send a WM_NCRECALC on Win32 windows.
17977           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
17978             (Part of fix for #77729). This matches what MS does, they also
17979             send that message when the form is made visible.
17980           - XException.GetMessage: Improved usability of X errors by including
17981             a translation of the window into Hwnd and Control class
17982           - Improved debug info for window creation, reparenting and destruction
17983           - Created helper method WindowIsMapped() [Currently not used]
17984         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
17985         * Form.cs:
17986           - CreateParams: Now setting our menu on the new internal menu field
17987           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
17988             avoid calculating the same property twice
17989         * Hwnd.cs:
17990           - Improved usability of ToString() for debugging purposes
17991           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
17992             determine the height of the menu, instead of just the font. This
17993             required to also create a graphics context and to keep a bmp 
17994             around (for performance reasons)
17995
17996 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
17997
17998         * MenuAPI.cs: Added OnMouseUp method
17999         * Form.cs:
18000           - Now remembering the requested client size, avoids size errors
18001           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
18002             instead of base if the menu is active. This is required due to
18003             control now capturing and releasing on down/up and it would
18004             prematurely release our menu capture
18005
18006 2006-03-17  Jackson Harper  <jackson@ximian.com>
18007
18008         * KeyboardLayouts.cs: Add the czech layouts.
18009
18010 2006-03-16  Jackson Harper  <jackson@ximian.com>
18011
18012         * Control.cs: Use the viewport space when sizing not the controls
18013         client size, so things like ScrollableControl that effect the
18014         viewport size (when scrollbars are added) are computed correctly.
18015         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
18016         of ManagerEntrys.
18017         - Handle creating BindingManagers for null data sources.
18018         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
18019         source, otherwise when rows are added they are added to the 'fake'
18020         datasource and we will crash when trying to set the position in
18021         those rows.
18022         - Use Implicit scrollbars on the datagrid so they arent
18023         selectable.
18024         
18025 2006-03-16  Jackson Harper  <jackson@ximian.com>
18026
18027         * Binding.cs:
18028         * InternalWindowManager.cs:
18029         * MdiWindowManager.cs:
18030         * X11Keyboard.cs: I really want Mike to love me again (fix
18031         compiler warnings).
18032
18033 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
18034
18035         * DataGrid.cs:
18036           - OnMouseDown: Switch to editing mode when clicking on the cell
18037                          even if we're clicking on the cell that's currently 
18038                          selected
18039           - ProcessGridKey: Left/Right now wrap like MS.Net does
18040           - ProcessGridKey: Tab now knows to add a new row when tab is
18041                             pressed in the cell of the last column of the 
18042                             last row
18043           - ProcessGridKey: Enter now adds another row  if pressed in the last
18044                             row and selectes the new row, same column cell
18045           - ProcessGridKey: Home/End navigate columns, not rows, like 
18046                             originally implemented
18047           - Broke ProcessKeyPreview code out into an extra Internal method
18048             so it can be called from the edit code
18049         * DataGridTextBox.cs (ProcessKeyMessage):
18050           - Switched to accept Tab keypresses
18051           - Added F2 handling to allow jumping to the end of the edited cell
18052           - Added logic to allow moving caret left/right inside edited cell
18053             and making the edited cell jump when the caret hits cell borders
18054           - Tab and Enter are now passed to the datagrid after being handled
18055         * TextBoxBase.cs:
18056           - Removed capture code now that Control handles it
18057           - set_SelectionStart now ensures caret is visible
18058
18059 2006-03-16  Jackson Harper  <jackson@ximian.com>
18060
18061         * TrackBar.cs: Debackwards the increment/decrement for handling
18062         mouse clicks on the bar with vertical trackbars.
18063         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
18064         bottom to match MS.
18065
18066 2006-03-16  Mike Kestner  <mkestner@novell.com>
18067
18068         * ListView.cs: make shift/ctrl keyboard and mouse selection 
18069         consistent with the MS control. Fix a bug in
18070         SelectedListViewItemCollection.Clear that was pissing me off for the
18071         better part of a day because the collection was being altered
18072         underneath us as we walked the list.
18073
18074 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
18075
18076         * Control.cs: Not sure how we could miss this so long, but it seems
18077           that MS.Net has Capture set all the way from before calling 
18078           OnMouseDown through sending the mouse events until after
18079           OnMouseUp. This will fix DataGrid's selection being set to end
18080           at the location of the MouseUp.
18081
18082 2006-03-15  Jackson Harper  <jackson@ximian.com>
18083
18084         * BindingContext.cs: Check the binding after its added so that it
18085           can initialize the binding managers and hookup to events.
18086         * Binding.cs: Data members seem to sometimes include rows/cols in
18087           the format Row.Column we now take this into account.
18088           - Hookup to the position changed event so we can update the
18089           control when the position has changed in the data set.
18090         * CurrencyManager.cs: Take into account the row/col naming
18091           convention when creating dataset tables.
18092         * BindingContext.cs: Using a newer better way of storing
18093           datasource/datamember pairs.  Hopefully this better matches MS for
18094           looking up binding managers.
18095
18096
18097 2006-03-15  Jackson Harper  <jackson@ximian.com>
18098
18099         * BindingContext.cs: The currency manager needs the data member
18100         name, if the member is a data set we use the name to find the
18101         correct table.
18102         * CurrencyManager.cs: When creating the list prefer an IList over
18103         an IListSource.
18104         - Attempt to create a DataTable from a DataSet (TODO: might need
18105         some better error checking here, although MS doesn't seem to have much)
18106         - If we have a DataTable create a view and use it as our list.
18107
18108 2006-03-15  Mike Kestner  <mkestner@novell.com>
18109
18110         * ListView.cs: keep a matrix of the icon mode layout to facilitate
18111         keyboard navigation. Support Up/Down/Left/Right selection correctly
18112         for all 4 View modes.
18113         * ListViewItem.cs: add internal row/col fields for icon layouts.
18114
18115 2006-03-15  Jackson Harper  <jackson@ximian.com>
18116
18117         * TabControl.cs: Redraw the tabs when we resize so their newly
18118         calculated sizes are drawn on screen.
18119         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
18120         composite characters.
18121         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
18122         - filter events so that composite characters can be created
18123         patches by peter
18124         * X11Structs.cs: Add XIMProperties enum.
18125
18126 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
18127
18128         * Control.cs (BringToFront, SendToBack): Don't use window or handle
18129           unless it's created
18130
18131 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
18132
18133         * Control.cs (PerformLayout): We don't need to consider visiblity
18134           for anchoring, only for docking. This fixes 'whacky' alignment
18135           in listbox and other controls that use implicit scrollbars after
18136           the previous PerformLayout patch
18137         * ListBox.cs: Switched to use implicit scrollbars
18138           
18139 2006-03-14  Mike Kestner  <mkestner@novell.com>
18140
18141         * ToolBar.cs: 
18142         * VScrollBar.cs:
18143         - chain up the "new event" overrides to base and use
18144         OnEvent to raise them.  Part of fix for bug #76509.
18145
18146 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
18147
18148         * FileDialog.cs: Do not select an item in the parent directory
18149           on backspace
18150
18151 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
18152
18153         * Control.cs (PerformLayout): It would seem that we considered
18154           invisible windows for our layout. Not quite the right thing
18155           to do. Now we don't any longer, thereby fixing bug #76889.
18156
18157 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
18158
18159         * Control.cs (CanFocus): I goofed. A control can have focus 
18160           even though it's not selectable. Made it match MS docs.
18161
18162 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
18163
18164         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
18165           center by default (fixes #76895)
18166         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
18167           all uses of Border3DSides.All with the explicit ORd together
18168           Left|Right|Top|Bottom because I assume that nobody was aware 
18169           that All also implies a center fill. Most places I checked had
18170           a fill right above.
18171         * ProgressBarStyle.cs: Added
18172
18173 2006-03-13  Mike Kestner  <mkestner@novell.com>
18174
18175         * ListView.cs: fix breakage in drag shadow header positioning 
18176         from Peter's csc compilation fix.
18177
18178 2006-03-13  Mike Kestner  <mkestner@novell.com>
18179
18180         * ListView.cs: fix NRE produced by backspacing twice in a focused
18181         FileDialog.
18182
18183 2006-03-13  Mike Kestner  <mkestner@novell.com>
18184
18185         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
18186
18187 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
18188
18189         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
18190           be changed
18191         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
18192           the allowed size before making programmatic size changes
18193
18194 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
18195
18196         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
18197           set, metacity is broken and will still use the emty sizes in 
18198           the struct. (Fix for #77089)
18199
18200 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
18201
18202         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
18203           WindowExStyles and marked both enums as Flags
18204         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
18205           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
18206           to match WindowStyles split
18207         * XplatUIX11.cs:
18208           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
18209           - Updated to match WindowStyles split
18210         * XplatUIWin32.cs:
18211           - Fixed FosterParent creation, was using ExStyle on the Style field
18212             (This should help with Popup focus issues)
18213           - Updated to match WindowStyles split
18214
18215 2006-03-13  Jackson Harper  <jackson@ximian.com>
18216
18217         * MdiWindowManager.cs: Use the system menu height. Fixes some
18218         strange sizing issues.
18219
18220 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
18221
18222         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
18223         * TextBoxBase.cs:
18224           - Scroll to caret after inserting text (#77672)
18225           - Make scroll range one pixel higher, fixes off-by-one error (and
18226             makes underlines visible on the last line)
18227
18228 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
18229
18230         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
18231           the keyboard state from being stuck with keys in 'pressed' state when
18232           focus is switched away via keyboard
18233         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
18234           reset the keyboard if no X11 KeyUp events are expected to come
18235         * X11Structs.cs: Switched type of Visible to bool to match driver
18236
18237 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
18238
18239         * TextControl.cs:
18240           - Switched caret to be just 1 pixel wide, matches MS and looks less
18241             clunky
18242           - Moved caret display 1 pixel down from the top of the control
18243             to improve view
18244           - InsertCharAtCharet: Update the selection start if moving the caret
18245             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
18246           - No longer always creating the caret when the caret methods are
18247             called. Only the actual ShowCaret/HideCaret will do that now
18248           - Only setting caret visible if the owner control has focus
18249           - UpdateView: Added invalidation-shortcut logic for center and right 
18250             aligned text. Previously we'd update all according to the left
18251             logic which caused drawing errors. Also fixed height of invalidated
18252             areas, now properly invalidating the whole area (was off-by-one)
18253           - owner_HandleCreated: Always generate the document when the
18254             handle is created; this ensures that 
18255         * TextBoxBase.cs:
18256           - Fixed situation where caret would disappear under the right
18257             window border, also improved scrolling behaviour on left-
18258             aligned textboxes
18259           - Fixed right-aligned textboxes to have a border to the
18260             right instead of the caret being under the right border
18261         * XplatUIX11.cs:
18262           - Switched from 'nested' to simple visible/not visible tracking 
18263             for caret (part of fix for #77671)
18264           - No longer passing through translated FocusIn/FocusOut messages
18265             since we were notifying too often and the wrong windows. Instead
18266             we just notify our focussed window of receiving or loosing focus
18267         * XplatUIWin32.cs: Switched from 'nested' show/hide 
18268           counting for caret to simple visible yes/no behaviour (part of 
18269           fix for #77671)
18270
18271 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
18272
18273         * Mime.cs: Remove debug code...
18274
18275 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
18276
18277         * MimeGenerated.cs: Removed
18278         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
18279           and subclasses) from /usr/(local/)share/mime and
18280           $HOME/.local/share/mime.
18281
18282 2006-03-10  Jackson Harper  <jackson@ximian.com>
18283
18284         * MdiWindowManager.cs: Recalc the NC area when a window is
18285         maximized/restored so that the menu area is drawn on forms that
18286         don't have a menu.
18287
18288 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
18289
18290         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
18291           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
18292           us to force a WM_NCCALCRESIZE message being sent. This is needed
18293           for MDI maximizing.
18294
18295 2006-03-10  Jackson Harper  <jackson@ximian.com>
18296
18297         * Form.cs: We need to use the ActiveMenu when calculating menu
18298         height.
18299         - Fix nullref when the window manager hasn't been created yet.
18300         * Control.cs: Fix nullref when we try to bring a control to the
18301         front that has no parent.
18302         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
18303         height.
18304         - Add a dummy item to the maximized menu so it always has the
18305         correct height. Otherwise when there are no menus we don't get our
18306         icon and buttons.
18307         
18308
18309 2006-03-10  Jackson Harper  <jackson@ximian.com>
18310
18311         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
18312         stuff.
18313         * Form.cs: Make the window_state internal so the window managers
18314         can track it.
18315         - When an MDI child is maximized let its window manager create the
18316         main menu (so it can add its icon).
18317         - Notify the window managers of state changes
18318         - Let the window manager paint its buttons and handle button
18319         clicks on the menu when it is maximized.
18320         * InternalWindowManager.cs: Move the prev_bounds into the mdi
18321         window manager, since tool windows don't use it, only mdi windows.
18322         - Tell the main form that we don't want it to handle NCPAINT
18323         itself to avoid extra painting.
18324         - Handle clicks on a maximized windows menu.
18325         - Handle window state changes
18326         - Handle minimize/maximize clicks correctly by setting the window state.
18327         * MdiWindowManager.cs: Add an icon menu that (the menu you get
18328         when clicking on the forms icon).
18329         - New method to create a forms maximized menu. This is its normal
18330         menu + an icon.
18331         - Handle window state changes.
18332         - Handle sizing of maximized windows.  Maximized windows are just
18333         drawn bigger then the parent visible area. All controls are still
18334         there, they are just outside the visible area (this matches windows).
18335         * MdiClient.cs: No scrollbars when a child window is maximized.
18336         - Let the children windows figure out how big they should be when
18337         sizing maximized windows.
18338         - Implement a version of ArrangeIconicWindows somewhat similar to
18339         Windows version.  There are some little differences, but I don't
18340         think any app will rely on the layout of minimized mdi windows.
18341
18342 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
18343
18344         * Padding.cs: Several fixes to allow compiling with csc 2.0
18345
18346 2006-03-09  Jackson Harper  <jackson@ximian.com>
18347
18348         * Menu.cs:
18349         * MenuItem.cs: Cheap hack so we can add items to the list without
18350         the events being raised.  This allows adding mdi items during
18351         drawing. TODO: Should probably find a better time to add the items.
18352
18353 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
18354
18355         * ThemeWin32Classic.cs:
18356           - CheckBox_DrawText: Added logic to not wrap if not enough space
18357             is available (Fix for bug #77727)
18358           - RadioButton_DrawText: Added logic not to wrap if not enough
18359             space is available (Fix for bug #77727). Also removed some
18360             duplicate code, DrawString always drawing the regular text
18361             before hitting the if statement.
18362
18363 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
18364
18365         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
18366
18367 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
18368
18369         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
18370         * ContainerControl.cs: Partial implementation of some 2.0 scaling
18371           methods. Moved the new 2.0 properties into alphabetical order with
18372           other properties and added MonoTODO tags
18373
18374 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
18375
18376         * AutoScaleMode.cs: Added. Fix build.
18377
18378 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
18379
18380         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
18381           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
18382           and was requiring premature handle creation for calls from above
18383         * Form.cs, Control.cs: Removed handle arguments from calls to
18384           CalculateClientRect()
18385
18386 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
18387
18388         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
18389           drag_column.column_rect is MarshalByRef and can't be used that way
18390
18391 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
18392
18393         * AxHost.cs: Added deserialization constructor for 
18394           AxHost+State (fixes 77743)
18395
18396 2006-03-09  Mike Kestner  <mkestner@novell.com>
18397
18398         * ListView.cs: 
18399         - Added column drag reordering for details view.
18400         - fixed behavior when mouse is dragged off column and
18401         AllowColumnReorder is false.
18402         * ColumnHeader.cs: clone the format too in Clone.
18403         * Theme.cs: add DrawListViewHeaderDragDetails method.
18404         * ThemeWin32Classic.cs:
18405         - impl new method for drawing drag column shadows and targets.
18406         - support column offset for details mode in DrawListViewItem.
18407
18408 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
18409
18410         * TextControl.cs: Reset the char_count when the document is cleared
18411           (Fixes bug reported on mono-winforms mailing list)
18412
18413 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
18414
18415         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
18416           of calling base we simply process the key ourselves, since both
18417           DefWindowProc and the handled method would set m.Result. 
18418           (Fixes #77732)
18419
18420 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
18421
18422         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
18423           method also moves the window; instead implemented a copy of
18424           Control.ScaleCore (Part of fix for #77456)
18425         * TextBoxBase.cs: 
18426           - Created new CreateGraphicsInternal method to allow providing
18427             a graphics context when no handle is created without triggering
18428             handle creation. (Part of fix for #77456)
18429           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
18430         * TextControl.cs: 
18431           - Switched Constructor to require TextBoxBase instead of Control (to
18432             allow uncast access to CreateGraphicsInternal)
18433           - Safeguarded use of owner.Handle property. No longer accessing it
18434             unless the handle is already created.
18435           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
18436           - Now triggering a recalc when owning control becomes visible
18437         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
18438           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
18439           premature handle creation (Part of fix for #77456)
18440         * Control.cs:
18441           - We now only destroy our double-buffering buffers when the
18442             control is resized or disposed, but not when visibility
18443             changes. (The code even re-created them twice every time)
18444           - Now requiring a redraw of the buffer on visibility changes
18445             (fixes bug 77654 part 2)
18446           - Not passing OnParentVisibleChanged up unless the control
18447             is visible
18448           - CanFocus: Fixed to match MS documentation
18449           - Focus: Fixed to return actual focus state and to check if
18450             setting focus is legal before setting it
18451
18452 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
18453
18454         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
18455           when to draw focus rectangle by looking at parent focus and
18456           selected state instead. This fixes TabPages on Linux sometimes
18457           having none or multiple focus rectangles.
18458         * XplatUIX11.cs (SetFocus): 
18459           - Don't set the focus if the same window already has focus
18460           - Use SendMessage instead of PostMessage (like it's Win32
18461             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
18462             to match MS behaviour
18463         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
18464           are not selectable.
18465
18466 2006-03-07  Jackson Harper  <jackson@ximian.com>
18467
18468         * PictureBox.cs: Revert line I accidently committed last week.
18469
18470 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
18471
18472         * Control.cs: 
18473           - Added new IsRecreating and ParentIsRecreating properties to
18474             allow testing if RecreateHandle has been called on ourselves
18475             or one of our parents
18476           - WndProc(WM_DESTROY): If our control handle is being recreated
18477             we immediately need to create the handle when receiving the
18478             destroy, that way our child windows find a valid parent handle
18479             when they themselves are being recreated upon WM_DESTROY receipt
18480             (fix for bug #77654 part 1)
18481         * XplatUIX11.cs:
18482           - DestroyWindow: WM_DESTROY must be sent to our own window before
18483             notifying any child windows. MS documents that child windows
18484             are still valid when WM_DESTROY is received. (Control now relies on
18485             this behaviour)
18486           - Added some fine-grain debug options
18487
18488 2006-03-06  Jackson Harper  <jackson@ximian.com>
18489
18490         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
18491         box and base calculations off this.
18492         * MdiChildContext.cs:
18493         * MdiWindowManager.cs: Don't need to ensure scrollbars here
18494         anymore.
18495         
18496 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
18497
18498         * Splitter.cs: In situations where the affected control is added
18499           to the parent's control list after the splitter, we would not
18500           populate affected. Now we try populating it on mousedown, if
18501           it's not already set, and force it to be re-set whenever our
18502           parent changes.
18503
18504 2006-03-03  Matt Hargett  <matt@use.net>
18505
18506         * Control.cs: implement Control.Padding
18507         * Padding.cs: -Padding.All returns -1 when constructing with the
18508         implicit default ctor
18509         -Padding.ToString() matches MS.NET
18510         * ContainerControl.cs: implement
18511         ContainerControl.AutoScaleDimensions
18512         * ListControl.cs: implement ListControl.FormattingEnabled
18513         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
18514         * ButtonBase.cs:
18515         * TabPage.cs: Implement UseVisualStyleBackColor.
18516         * PictureBox.cs: Implement PictureBox.InitialImage.
18517
18518 2006-03-03  Mike Kestner  <mkestner@novell.com>
18519
18520         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
18521         event declarations to proxy to base event.
18522         * ListViewItem.cs: update to use ItemControl.
18523         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
18524         * ThemeWin32Classic.cs: update to new ListView theme API and fix
18525         column header label rendering for 0 width columns.
18526
18527 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
18528
18529         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
18530           that causes the control to be created. Fixes #77476.
18531
18532 2006-03-02  Jackson Harper  <jackson@ximian.com>
18533
18534         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
18535         expose_pending.
18536
18537 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
18538
18539         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
18540           passed in for the EventArgs (fixes #77690)
18541
18542 2006-03-01  Jackson Harper  <jackson@ximian.com>
18543
18544         * ScrollBar.cs: Refresh afterbeing resized.
18545
18546 2006-02-28  Mike Kestner  <mkestner@novell.com>
18547
18548         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
18549         Clean up a tracker compile warning.
18550         * MenuItem.cs: add internal PerformPopup method.
18551         [Fixes #77457]
18552
18553 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
18554
18555         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
18556           implicit expose) when the text is set to null
18557
18558 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
18559
18560         * RichTextBox.cs (FlushText): When newline is true, we always
18561           need to split the line, even if no text is on it and we may
18562           never eat newlines. (Fixes #77669)
18563
18564 2006-02-28  Mike Kestner  <mkestner@novell.com>
18565
18566         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
18567         and set Selected instead.
18568         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
18569         collections.
18570
18571 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
18572
18573         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
18574
18575 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
18576
18577         * FontDialog.cs:
18578           - Got rid of the panel. All controls are now directly added to
18579             the dialog form
18580           - It is now possible to set a font with the Font property
18581           - MinSize and MaxSize property do now what they should
18582           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
18583           - Searching and selecting a font with the font textbox works now,
18584             the same applies to the style and size textbox
18585           - Draw the correct 3D border in the example panel
18586           - Fixed a little mem leak (unused fonts didn't get disposed)
18587           - Many other internal updates/rewrites...
18588           - Fix typo
18589
18590 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
18591
18592         * TextControl.cs: 
18593           - InsertRTFFromStream: Added 'number of characters inserted' argument
18594           - set_SelectedRTF: Now using the number of characters to calculate
18595             the new location for the selection and cursor (x/y cannot be used
18596             due to potentially already wrapped text)
18597
18598 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
18599
18600         * TextControl.cs: Added property and implemented means to allow 
18601           disabling recalculation of a document (can be used to speed up
18602           multiple inserts and is needed to make RTF inserts predictable, see
18603           bug #77659)
18604         * RichTextBox.cs: Using the new NoRecalc property of Document to
18605           keep x/y insert locations predictable. Also makes it faster inserting
18606           large chunks of RTF
18607
18608 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
18609
18610         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
18611           it's easier for a child control to handle the other messages without
18612           having to duplicate the special functionality
18613         * TextBoxBase.cs
18614           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
18615             code to handle processing the key ourselves, in order to get 
18616             access to the result of KeyEventArgs.Handled. We now only call 
18617             ProcessKey if they key hasn't been handled already. Fixes #77526.
18618           - set_Text: If null or empty string is given, just clear the 
18619             document. Fixes part of #77526
18620
18621 2006-02-27  Jackson Harper  <jackson@ximian.com>
18622
18623         * SizeGrip.cs: Paint the background color before painting the grip
18624         so things look right.
18625         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
18626
18627 2006-02-27  Mike Kestner  <mkestner@novell.com>
18628
18629         * ListView.cs:
18630           - Restructure layout and invalidation model to remove a ton of
18631           flicker from the control and speed up performance in general.
18632           - Add manual column resize, flickers like crazy, but I already have
18633           some ideas on how I'll fix that. (#76822)
18634           - Merge the three Icon-based views into a single layout method.
18635           - Move item selection interaction logic from the item since 
18636           interaction with the collections is more appropriate to the view.
18637           - Deselection on non-item clicks.
18638         * ListViewItem.cs:
18639           - Encapsulate most of the layout. Add some internal props to trigger
18640           layout.  Move to a model where Items invalidate themselves instead
18641           of just invalidating the whole control every time something changes.
18642           - Invalidate on Text/Caption changes.
18643           - switch to an offset based layout model to avoid having to absolute
18644           position every element on item moves.
18645           - correct checkbox layout to conform to MS layout.
18646         * ThemeWin32Classic.cs:
18647           - refactor some column header drawing code.
18648           - fix string justification for column headers (#76821)
18649           - make SmallIcon labels top justified for compat with MS impl.
18650         * ThemeClearlooks.cs:
18651           - adjust to new ListViewItem internal checkbox bounds api.
18652
18653 2006-02-27  Jackson Harper  <jackson@ximian.com>
18654
18655         * Control.cs:  Change where implicit controls fall in the zorder.
18656         They are now on top of all children.
18657         - Synced AddImplicit code with Add
18658         - Removed unused enumerator.
18659         * SizeGrip.cs: Remove the TODO as its been TODONE.
18660
18661 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
18662
18663         * TextControl.cs(Insert): Combine the last lines unless the insertion
18664           string ends with \n\n, otherwise we leave one line too many (Fixes
18665           something I noticed with the testapp for #77526; the bug itself was
18666           already fixed in the previous checkin)
18667
18668 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
18669
18670         * RichTextBox.cs:
18671           - SelectionColor and SelectionFont methods no longer set absolute
18672             styles. Instead, the keep font or color respectively (This 
18673             resolves a long-standing FIXME in the code)
18674           - When flushing RTF text, the insert code now considers text trailing
18675             behind the insertion point (Fixes the bug where when replacing
18676             the selected text via SelectedRTF the remainder of the line behind 
18677             the selection would stay on the first insertion line)
18678         * TextBoxBase.cs:
18679           - AppendText now updates the selection points after inserting text
18680           - AppendText now ensures that the last tag (sometimes 0-length) of
18681             the document is used for the style information (Fixes part of 
18682             bug #77220)
18683         * TextControl.cs:
18684           - Created new FontDefiniton class to allow describing partial style
18685             changes
18686           - StreamLine() now takes a lines argument, to allow it to decide
18687             whether an encountered zero-length tag is the last in the document
18688             (which must be kept to not loose the font/color contained in it,
18689             for later appends)
18690           - Created Combine() and Split() methods for Marker structs, to 
18691             support marker updates due to reformatted documents (soft line
18692             wraps)
18693           - Implemented Document.CaretTag setter
18694           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
18695             of the last line (Not the cause, but also exposed by bug #77220)
18696           - Added LineTag argument to InsertString method, to allow callers
18697             to force a certain tag to be used (required to force use of the
18698             trailing zero-length tag of a document)
18699           - Now updating markers in Combine(), to avoid stale tag markers
18700           - Added some method descriptions to aid maintenance
18701           - Implemented new FormatText concept, allowing additive/subtractive
18702             formatting by only specifying the components that are to be 
18703             changed. This was needed for resolving the RTB.SelectedColor/
18704             RTB.SelectedFont fixmes
18705           - Added Break() support method to allow breaking up linetags (used
18706             for partial formatting)
18707           - Added GenerateTextFormat() method. It is used for partial 
18708             formatting and allows to generate a full font/color from given
18709             attributes and an existing tag.
18710
18711 2006-02-26  Jackson Harper  <jackson@ximian.com>
18712
18713         * XplatUIX11.cs:  Use the correct caption height.
18714         - Translate hittest coordinates to screen coords to match MS.
18715         * XplatUIWin32.cs: When we create MDI windows we need to reset
18716         some of the style flags, so we get a nice blank window, and can
18717         draw all the decorations ourselves.
18718         - Set a clipping rectangle on the non client paint event, the
18719         window manager drawing code needs one.
18720         * Form.cs: The window manager needs to know when the window state
18721         has been updated.
18722         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
18723         don't need to factor in border and title sizes in these
18724         methods. TODO: Remove the args and fix the call points.
18725         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
18726         properly.
18727         - Let the driver set the cursors.
18728         - Improve active window handling
18729         - Correct sizes for title bars and buttons.
18730         - Match MS drawing better
18731         * MdiWindowManager.cs: We don't need to handle border style
18732         updates specially anymore.
18733         - Check for scrollbars when windows are done moving
18734         - Handle Active properly.
18735         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
18736         correctly. I am spewing the exception though, so we don't hide the
18737         bugs.
18738         
18739 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
18740
18741         * DataGridViewRowPostPaintEventArgs.cs,
18742           DataGridViewCellPaintingEventArgs.cs,
18743           DataGridViewRowCollection.cs,
18744           DataGridViewRowPrePaintEventArgs.cs,
18745           DataGridViewCell.cs: Clear a few warnings and implement a few
18746           exceptions that should be thrown.
18747
18748 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
18749
18750         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
18751           'inheriting' our parent's (non-default) cursor. (Part of
18752            the fix for #77479)
18753
18754 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
18755
18756         * XplatUIX11.cs: Fixed cast to make csc happy
18757
18758 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
18759
18760         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
18761           it's for the client area (part of fix for #77479 and needed
18762           for MDI window cursor handling)
18763         * XplatUIX11.cs
18764           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
18765             the appropriate default cursors and also passing the message
18766             up the parent chain 
18767           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
18768             for non-client areas
18769
18770 2006-02-15  Jackson Harper  <jackson@ximian.com>
18771
18772         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
18773         is a real MDI window
18774
18775 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
18776
18777         * X11DesktopColors.cs: Instead of checking the desktop session
18778           string for "KDE" check if it starts with "KDE"
18779
18780 2006-02-10  Jackson Harper  <jackson@ximian.com>
18781
18782         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
18783         systems).
18784
18785 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
18786
18787         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
18788           errors
18789         * ColorDialog.cs:
18790           - Got rid of the panel. All controls are now directly added to
18791             the dialog form
18792           - Changed to mono coding style
18793
18794 2006-02-10  Jackson Harper  <jackson@ximian.com>
18795
18796         * InternalWindowManager.cs: We don't need the set visibility to
18797         false hack anymore now that peter has written beautiful shutdown
18798         code.
18799
18800 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
18801
18802         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
18803           where already explicitly destroyed
18804
18805 2006-02-10  Jackson Harper  <jackson@ximian.com>
18806
18807         * MdiClient.cs: Handle the case where windows are too high or to
18808         the left and we need scrollbars.
18809
18810 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
18811
18812         * MimeIcon.cs: Added some icons
18813         * FileDialog.cs:
18814           - Fixed bug #77477
18815           - Got rid of the panel. All controls are now directly added to
18816             the dialog form
18817           - Changed to mono coding style
18818           - On Linux "My Computer" and "My Network" will now show some
18819             more usefull information. A new class, MasterMount, gathers
18820             this information from /proc/mount. Updated MWFFileView to make
18821             use of this information
18822           - Fixed a bug that caused FileDialog to crash when
18823             ".recently_used" file had a zero size
18824           - FilterIndex does now what it should
18825           - Some Refactoring
18826         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
18827             FileDialog changes
18828
18829 2006-02-09  Jackson Harper  <jackson@ximian.com>
18830
18831         * ComboBox.cs: Don't touch if null.
18832
18833 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
18834
18835         * Cursor.cs: 64bit safeness fix
18836         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
18837
18838 2006-02-09  Jackson Harper  <jackson@ximian.com>
18839
18840         * Form.cs: If a form is made into an MDI form update the styles so
18841         all the props can get set correctly.
18842         - Kill the mdi_container when we dont need it anymore.
18843         * InternalWindowManager.cs: Add missing NOT
18844
18845 2006-02-08  Jackson Harper  <jackson@ximian.com>
18846
18847         * InternalWindowManager.cs: Respek clipping when drawing MDi
18848         decorations.
18849
18850 2006-02-08  Jackson Harper  <jackson@ximian.com>
18851
18852         * Hwnd.cs: Add bits to track non client expose events.
18853         * XplatUIX11.cs: Track non client expose events on the hwnd. This
18854         gives us a proper invalid rect and will allow for some nice
18855         optimizations with NC client drawing
18856         - MDI windows are children windows, so move their style handling
18857         into the child window block.
18858         * InternalWindowManager.cs: Remove a state reset that was
18859         getting invoked at the wrong time. Fixes managed windows getting
18860         into a 'stuck' captured state.
18861
18862 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
18863
18864         * TextControl.cs (Document.ctor): Now initializing 
18865           selection_anchor. Fixes #77493
18866
18867 2006-02-07  Jackson Harper  <jackson@ximian.com>
18868
18869         * TrackBar.cs: The increment/decrements were backwards.
18870
18871 2006-02-07  Mike Kestner  <mkestner@novell.com>
18872
18873         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
18874         to the instance itself.
18875
18876 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
18877
18878         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
18879           on ulongs and pointers, the size differs between 32bit and 64bit
18880           systems. 
18881
18882 2006-02-07  Mike Kestner  <mkestner@novell.com>
18883
18884         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
18885         for 64 bit platforms to work around a metacity bug. 
18886
18887 2006-02-07  Jackson Harper  <jackson@ximian.com>
18888
18889         * TrackBar.cs: Process the input keys we need, and hookup to
18890         KeyDown instead of using WndProc, so we get key messages.
18891
18892 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
18893
18894         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
18895           machine we're on. 
18896         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
18897           we need to translate the XdndVersion atoms array before sending it
18898
18899 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
18900
18901         * XplatUIX11.cs: 
18902           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
18903             number of bits for the property, not the number of bytes. The
18904             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
18905             but would not crash since it specified 8 bits instead of 4 bits)
18906           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
18907             defined as XID -> long in the C headers)
18908           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
18909             references since those are now IntPtr to begin with
18910           - Switched all Atom.XXX 'int' casts to IntPtr casts
18911           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
18912           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
18913           - Added XChangeActivePointerGrab DllImport (for X11DnD)
18914         * X11Structs.cs:
18915           - Changed 'int' type for Atoms in XEvent structures to IntPtr
18916           - Changed atom in HoverStruct to be IntPtr
18917         * X11DnD.cs:
18918           - Removed local DllImports, switched code to use those from XplatUIX11
18919           - Removed/fixed casts related to the switch of Atom to be a IntPtr
18920
18921 2006-02-06  Mike Kestner  <mkestner@novell.com>
18922
18923         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
18924         method signatures in the import region.  There may still be some
18925         lingering struct marshaling issues, as I didn't drill down into those.
18926         Yet.
18927
18928 2006-02-06  Jackson Harper  <jackson@ximian.com>
18929
18930         * ComboBox.cs: Dont manually set the top_item, this is computed
18931         when the scrollbar position is set.
18932
18933 2006-02-06  Mike Kestner  <mkestner@novell.com>
18934
18935         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
18936         startup crashes on amd64.  There's other fixes needed.  All pinvoke
18937         usage of Atom needs to be mapped to IntPtr for example.  And there are
18938         likely other int/long issues to be addressed.
18939
18940 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
18941
18942         * FileDialog.cs: One more...
18943
18944 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
18945
18946         * FileDialog.cs: Next try
18947
18948 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
18949
18950         * FileDialog.cs: First part of fix for #77464
18951
18952 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
18953
18954         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
18955           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
18956           AcceptButton border drawing.
18957
18958 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
18959
18960         * Form.cs: Moved positioning of form after auto scaling is applied,
18961           otherwise it would possibly use wrong form size.
18962
18963 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
18964
18965         * Control.cs (RecreateHandle): No need to re-create any child
18966           controls, the child windows will get destroyed automatically by
18967           the windowing system or driver, and re-created when the handle
18968           is being accessed the first time. Fixes #77456
18969         * Form.cs: No longer setting the form to closing if the handle is 
18970           being recreated. This seems like the right thing to do, don't
18971           have a bug or testcase for this, though.
18972
18973 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
18974
18975         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
18976           controls to avoid unwanted side effects
18977
18978 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
18979
18980         * Control.cs: 
18981           - ScaleCore needs to scale the bounds, not the ClientSize of the 
18982             control. Fixes #77416.
18983           - DefaultSize is 0,0 for control
18984         * TextBoxBase.cs: 
18985           - DefaultSize is 100, 20
18986           - SetBoundsCore: Now enforcing the height, no matter if the provided
18987             height is more or less than the preferred one, as long as AutoSize
18988             is on
18989         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
18990
18991 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
18992
18993         * Control.cs:
18994           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
18995             call unless both performLayout is true *and* we have a pending
18996             layout change
18997           - ResumeLayout: MS does not completely nest Suspend and Resume,
18998             they bottom out at 0, fixed our code to match that.
18999           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
19000             SetBoundsCore, we were updating even when we shouldn't. This fixes
19001             swf-anchors mis-anchoring when resizing the app fast and lots.
19002           - UpdateDistances: Now only setting the left and top distance if 
19003             we have a parent and are not suspended, this is based on
19004             a suggestion by Don Edvaldson in bug #77355.
19005           - OnVisibleChanged: Fixed logic when to create the control. We may
19006             not create the control if we have no parent or if it's not visible;
19007             switched to using Visible property instead of is_visible field 
19008             since the property also considers parent states. This fixes a bug
19009             when starting Paint.Net
19010
19011 2006-02-02  Jackson Harper  <jackson@ximian.com>
19012
19013         * Form.cs: If the forms handle hasn't been created yet don't call
19014         into xplatui to make it top most, just set the topmost flag on the
19015         form in CreateParams
19016         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
19017
19018 2006-02-01  Jackson Harper  <jackson@ximian.com>
19019
19020         * ScrollableControl.cs: Refactored the Recalculate method a
19021         little, this wasn't handling all the variants of bottom and right
19022         bars needed to be added and added/removed based on their
19023         counterparts being added/removed (which changes the drawable
19024         size). Also we special case client widths and heights of 0 and
19025         don't add the scrollbar for those.
19026
19027 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
19028
19029         * XplatUIX11.cs: 
19030           - Added method to get AbsoluteGeometry(); currently unused, but might
19031             be used in the future, if we try again to figure out toplevel
19032             coordinates with some more crappy window managers
19033           - Added FrameExtents() method to retrieve the WM set decoration size
19034           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
19035             to deal with at least KDE, FVWM and metacity (Fixes #77092)
19036         * Hwnd.cs: 
19037           - Added whacky_wm tracking var for metacity
19038           - Added logic to have default menu height if the actual menu height
19039             has not yet been calculated (part of fix for #77426)
19040         * Form.cs: Keep track whether client size has been set and re-set 
19041           it if a menu is added/removed afterwards (Fixes #77426)
19042
19043 2006-01-31  Jackson Harper  <jackson@ximian.com>
19044
19045         * Control.cs: When a new Site is set on the component attempt to
19046         pull the AmbientProperties from it.
19047
19048 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
19049
19050         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
19051           in the background of the owning form. Fixes #77332
19052
19053 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
19054
19055         * MimeIcon.cs: Fix for #77409
19056
19057 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
19058
19059         * XplatUIX11GTK.cs: Initial import
19060
19061 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
19062
19063         * FixedSizeTextBox: fixes class signature
19064
19065 2006-01-30  Jackson Harper  <jackson@ximian.com>
19066
19067         * FixedSizeTextBox.cs: New internal class that represents a
19068         textBox that will not be scaled.
19069         * TreeView.cs:
19070         * ComboBox.cs:
19071         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
19072         standard TextBox.
19073                 
19074 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
19075
19076         * XplatUIX11.cs: Retrieve default screen number instead of
19077           assuming 0. Attempted fix for #77318
19078
19079 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
19080
19081         * XplatUIWin32.cs: 
19082           - GetWindowPos: When a window is parented by FosterParent, use 
19083             the desktop instead of FosterParent as the base to get coordinates
19084           - CreateWindow: Don't make FosterParent the parent window for Popups
19085             if we don't want a taskbar entry, Popups automatically don't get one
19086         * Hwnd.cs: Need to call remove to actually remove the key from the
19087           hash table
19088
19089 2006-01-30  Mike Kestner  <mkestner@novell.com>
19090
19091         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
19092
19093 2006-01-30  Jackson Harper  <jackson@ximian.com>
19094
19095         * TreeView.cs:
19096         * TreeNode.cs: Raise events no matter how the treenode is
19097         checked. Patch by Don Edvalson.
19098
19099 2006-01-30  Jackson Harper  <jackson@ximian.com>
19100
19101         * TreeNode.cs: Signature fix.
19102
19103 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
19104
19105         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
19106
19107 2006-01-20  Mike Kestner  <mkestner@novell.com>
19108
19109         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
19110         event forwarding when menus are active.
19111         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
19112         Most of the patch is pdb's with a little rework.
19113
19114 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
19115
19116         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
19117           Removed GetMenuDC and ReleaseMenuDC methods; replaced
19118           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
19119         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
19120         * InternalWindowManager.cs: Added use of PaintEventStart/End to
19121           handling of WM_NCPAINT message, now passing the PaintEventArgs to
19122           the PaintWindowDecorations method
19123         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
19124         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
19125         * MenuAPI.cs: Made tracker window invisible
19126         * XplatUIWin32.cs:
19127           - Removed GetMenuDC and ReleaseMenuDC methods
19128           - Implemented the client=false path for PaintEventStart and
19129             PaintEventEnd
19130
19131 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
19132
19133         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
19134         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
19135           styles
19136         * Form.cs: 
19137           - MaximizeBox, MinimizeBox: Recreate the handle when setting
19138             the style
19139           - CreateParams: Reworked the styles to match MS look'n'feel,
19140             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
19141             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
19142
19143 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
19144
19145         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
19146           window is not mapped, since otherwise every form that's being 
19147           created is considered minimized, which is wrong.
19148         * Form.cs: Catching the exception and returning our internal value
19149           instead
19150
19151 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
19152
19153         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
19154           SetWindowMinMax() to have means to tell the driver about the minimum,
19155           maximum and maximized state window sizes. (Part of the fix for #76485)
19156         * Form.cs:
19157           - Implemented tracking of minimum and maximum window size, now calling
19158             new SetWindowMinMax() driver method to tell the driver (Part of the
19159             fix for #76485)
19160           - Finished handling of WM_GETMINMAXINFO method, now setting all values
19161             (Completes fix for #76485)
19162           - Calling new SetWindowMinMax driver method when the handle for a 
19163             form is created, to make sure the driver knows about it even if
19164             the values have been set before the window was created
19165           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
19166             to avoid messing up our anchoring calculations (partial fix
19167             for #77355)
19168         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
19169         * XplatUIX11.cs:
19170           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
19171           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
19172             (and presumably other freedesktop.org compliant WMs). Left the
19173             assumption unmapped=minimized, needed for SetVisible to work.
19174           - Now setting the window state when creating windows
19175           - Fixed SetVisible to consider/set the window state when mapping
19176             a Form. We cannot set the state before it's mapped, and we cannot
19177             use Form.WindowState once it's mapped (since it would ask the
19178             driver and get 'normal'. Therefore, we grab the state before
19179             mapping, map, and then set state.
19180           - Implmemented SetWindowMinMax method; Metacity does not seem to
19181             honor the ZoomHints, though.
19182         * XplatUIWin32.cs:
19183           - Removed MINMAXINFO (moved to XplatUIStructs)
19184           - Added SetWindowMinMax stub (on Win32 the only way to set that
19185             information is in response to the WM_GETMINMAXINFO message, which
19186             is handled in Form.cs)
19187           - Added logic to SetVisible to set the proper window state when a 
19188             form is made visible (fixes #75720)
19189
19190 2006-01-26  Jackson Harper  <jackson@ximian.com>
19191
19192         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
19193         same way we handle them with Invoke.
19194
19195 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
19196
19197         * Form.cs:
19198           - Added tracking of window state so CreateParams can return
19199             the appropriate style
19200           - Moved setting of WS_CAPTION style in CreateParams to allow
19201             styles without caption
19202         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
19203           control if the TextBox property is accessed. Fixes #77345
19204         * Control.cs:
19205           - get_Created: now uses is_disposed and is_created to determine
19206             return value (suggested by Jackson)
19207           - CreateHandle: No longer exits if the handle is being recreated
19208           - RecreateHandle: If the handle is not yet created call the 
19209             appropriate method to create either control or handle. If the
19210             control is already created CreateHandle will simply exit instead
19211             of just creating the handle
19212         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
19213           now SendMessage WM_DESTROY directly to the control when DestroyWindow
19214           is called.
19215         * XplatUIX11.cs: 
19216           - When DestroyWindow is called, instead of waiting for the 
19217             DestroyNotification from X11, we directly post it to the WndProc
19218             and immediately dispose the hwnd object.
19219             Same applies to DestroyChildWindows, and this obsoletes the
19220             expose_pending tracking. Contrary to Win32 behaviour we destroy our
19221             child windows before our own, to avoid X11 errors.
19222           - Removed the direct sending of WM_PAINT on UpdateWindow
19223         * XplatUIWin32.cs:
19224           - Reworked DoEvents and GetMessage to allow access to internal queue
19225             even when trying non-blocking access to the queue.  Fixes #77335. 
19226             Based on a patch suggestion by Don Edvalson. The new private
19227             GetMessage can now also be used as a backend for a PeekMessage
19228             frontend version.
19229         * XplatUI.cs: Improved debug output for CreateWindow
19230
19231 2006-01-25  Jackson Harper  <jackson@ximian.com>
19232
19233         * Help.cs: Allow param to be null. Patch by Don Edvalson.
19234
19235 2006-01-24  Jackson Harper  <jackson@ximian.com>
19236
19237         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
19238         when we have a MaxDropItems lower then the selected index.
19239
19240 2006-01-24  Jackson Harper  <jackson@ximian.com>
19241
19242         * Control.cs: Don't allow selection of non visible controls, allow
19243         selection of controls without parents.
19244
19245 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
19246
19247         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
19248         * DataGridDrawingLogic.cs: Add editing row only when is necessary
19249
19250 2006-01-23  Jackson Harper  <jackson@ximian.com>
19251
19252         * UpDownBase.cs: Make the textbox handle all the selection and
19253         tabbing. This fixes tabing to updown controls.
19254
19255 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
19256
19257         * TextBoxBase.cs: fixes exception thown the object was null
19258
19259 2006-01-23  Jackson Harper  <jackson@ximian.com>
19260
19261         * ButtonBase.cs: Just use the base CreateParams. They set
19262         visibility and enabled correctly.
19263         * ComboBox.cs:
19264         * TrackBar.cs:
19265         * MonthCalendar.cs: Lets let the base set as much of the
19266         createparams as possible so we don't have duplicate code all over
19267         the place.
19268
19269 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
19270
19271         * ThemeGtk.cs: Added TrackBar and some experimental code to
19272           get double buffering back
19273
19274 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
19275
19276         * DataGrid.cs: Allows row number set internally higher than the last
19277         when creating a new row. Restores the editing functionality.
19278
19279 2006-01-20  Mike Kestner  <mkestner@novell.com>
19280
19281         * MimeIcon.cs: delay Image creation until the icons are accessed
19282         instead of creating 190 scaled images on GnomeHandler startup.
19283
19284 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
19285
19286         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
19287           first call base before processing the event. Fixes #77279
19288
19289 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
19290
19291         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
19292           that the stride for the GDI bitmap would match the stride of
19293           a DIB or a Cursor.
19294
19295 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
19296
19297         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
19298
19299 2006-01-19  Jackson Harper  <jackson@ximian.com>
19300
19301         * ComboBox.cs: Hookup the text controls keydown event so we get
19302         those when the text control has the focus.
19303
19304 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
19305
19306         * Label.cs: Now using the base events instead of defining new ones;
19307           this allows us to just call the base properties without having to
19308           duplicate all base property logic 
19309
19310 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
19311
19312         * Label.cs: A label by default is not a tabstop (Fixes one of our
19313           failing nunit tests)
19314
19315 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
19316
19317         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
19318         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
19319
19320 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
19321
19322         * Cursor.cs: Reimplemented creating cursor bitmaps without using
19323           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
19324           This fixes #77218
19325         * XplatUIWin32.cs: 
19326           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
19327             constructor creates images that can't be saved. Part of the fix
19328             for #76103
19329           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
19330           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
19331             bug fix for handling window state in forms properly)
19332
19333 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
19334
19335         * ThemeGtk.cs: Simplify ScrollBar drawing
19336
19337 2006-01-18  Jackson Harper  <jackson@ximian.com>
19338
19339         * Splitter.cs: Set the default dock style for the splitter control
19340         in the constructor.
19341
19342 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
19343
19344         * ThemeGtk.cs: Corrected StateType and ShadowType for
19345           gtk_paint_box
19346
19347 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
19348
19349         * Control.cs: Make use of Theme.DoubleBufferingSupported
19350         * ThemeGtk.cs:
19351           - Added drawing for flat style buttons
19352           - Added ScrollBar drawing
19353
19354 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
19355
19356         * ThemeClearlooks.cs: Removed some unneeded code.
19357         * ThemeGtk.cs: First part of ThemeGtk enhancements.
19358
19359 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
19360
19361         * LinkLabel.cs: We need to update the hover drawing when
19362           leaving the control as well.
19363
19364 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
19365
19366         * DataGrid.cs: Clicking on non empty areas in the columns
19367            area was giving an exception
19368
19369 2006-01-17  Jackson Harper  <jackson@ximian.com>
19370
19371         * ThemeWin32Classic.cs:
19372         * ListView.cs: Do not draw/clip the headers when the header style
19373         is None.
19374
19375 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
19376
19377         * DataGrid.cs: Fixes 77260
19378         
19379 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
19380
19381         * DataGrid.cs: Clicking on a column on a empty grid was giving
19382           an exception
19383
19384 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
19385
19386         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
19387           or any keypress will crash the grid.
19388
19389 2006-01-17  Mike Kestner  <mkestner@novell.com>
19390
19391         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
19392         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
19393         invisible/previously-visible items.
19394         [Fixes #76909]
19395
19396 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
19397
19398         * ThemeClearlooks.cs:
19399         - Added CL_Draw_Button method; now other theme controls that are 
19400           not derived from button or do not have a button can draw buttons
19401           too
19402         - Updated ComboBox drawing
19403         - Beautified RadioButton drawing
19404         - Corrected drawing of bottom and left tabs
19405         - Beautified DateTimePicker and MonthCalendar
19406         - Added CPDrawButton and CPDrawRadioButton
19407
19408 2006-01-16  Jackson Harper  <jackson@ximian.com>
19409
19410         * ComboBox.cs: Set the initial value of the scrollbar to the
19411         current index. Reduce the numbers of refreshs and IndexOfs called.
19412
19413 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
19414
19415         * FileDialog.cs: When the file listview is focused hitting the
19416           backspace key moves the fileview to the parent directory
19417
19418 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
19419
19420         * Form.cs: 
19421           - Added RecreateHandle call when changing taskbar visibility to 
19422             trigger reparenting in Win32 driver (Fixes #75719)
19423           - If a window has minimize or maximize buttons, it cannot have
19424             a help button
19425         * XplatUIWin32.cs:
19426           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
19427             the toplevel form with FosterParent (A toolwindow not on the
19428             taskbar) (Fixes #75719)
19429           - Made FosterParent a toolwindow
19430
19431 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
19432
19433         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
19434
19435 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
19436
19437         * ToolTip.cs: If SetToolTip is called from a control and the mouse
19438           is currently over that control, make sure that tooltip_window.Text
19439           gets updated
19440
19441 2006-01-13  Mike Kestner  <mkestner@novell.com>
19442
19443         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
19444
19445 2006-01-13  Jackson Harper  <jackson@ximian.com>
19446
19447         * TreeView.cs: On MS GetNodeAt never actually factors in the X
19448         value passed.  Also redraw the selected node when we recieve
19449         focus, so tabbing between trees works correctly.
19450
19451 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
19452
19453         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
19454           ~/.gconf/%gconf-tree.xml, so use
19455           .gconf/desktop/gnome/interface/%gconf.xml
19456
19457 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
19458
19459         * TextControl.cs: Draw text in gray if control is disabled
19460
19461 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
19462
19463         * TreeView.cs: Draw the focus rectangle outside the highlight, to
19464           make sure it's always visible. Fixes #76680.
19465
19466 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
19467
19468         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
19469
19470 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
19471
19472         * PageSetupDialog.cs: Added.
19473         * PrintDialog.cs: Attributes.
19474         * PrintPreviewControl.cs: Updates.
19475         * PrintPreviewDialog.cs: Updates.
19476         
19477 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
19478
19479         * Control.cs: Undid my selection check fix, since it's not needed
19480         * TextBoxBase.cs:
19481           - Now considering the presence of hscroll/vscroll when sizing
19482             vscroll/hscroll respectively. Fixed bug #77077
19483           - Added Left/Up/Down/Right to IsInputKey list to prevent
19484             ContainerControl from stealing them. This fixes what I broke
19485             with my last checkin.
19486
19487 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
19488
19489         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
19490           I finally understand how the property can be set without a setter :-)
19491
19492 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
19493
19494         * Application.cs:
19495           - Switched RunLoop to use static Message.Create to create a 
19496             Message object
19497           - Added PreProcessMessage call in runloop for keyboard events; this
19498             is part of the fix for #77219, I overlooked this originally in the
19499             MSDN doc for PreProcessMessage
19500         * Control.cs:
19501           - Removed call to PreProcessMessage from handling of keyboard 
19502             messages; it's supposed to be done in the message pump
19503           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
19504             per MSDN documentation.
19505           - IsInputChar: All chars are input chars by default; removed the 
19506             parent calling chain, MS does not document that
19507           - PreProcessMessage: If IsInputChar is true, we want to return false
19508             to allow dispatching of the message
19509           - When selecting the next control, now also check that we're not
19510             selecting ourselves again and therefore return a false positive.
19511         * TextBoxBase.cs:
19512           - Tried to match return values for IsInputKey and ProcessDialogKey
19513             to what MS returns; moved processing of our special keys outside
19514             ProcessDialogKey since MS does not seem to return true on those.
19515           - Moved code that previously was in ProcessDialogKey into new private
19516             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
19517           - Reworked handling of WM_CHAR to not have to duplicate code from
19518             Control.cs anymore, instead we simply call down to base.
19519            
19520 2006-01-12  Jackson Harper  <jackson@ximian.com>
19521
19522         * ComboBox.cs: We always need to refresh the text area when
19523         EndUpdate is called. Fixes the combobox in the file dialog.
19524         * Control.cs: Don't create the creator_thread until the controls
19525         handle is created.  Also in InvokeRequired we check if the
19526         creator_thread is null. This gives the effect of InvokeRequired
19527         returning true if the controls handle is not created yet, and
19528         matches MS.
19529
19530 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
19531
19532         * XplatUI.cs:
19533           - Added StartLoop() driver method. This is used to allow drivers to
19534             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
19535             loop for a particular thread
19536           - Added EndLoop() driver method. This is called once the message
19537             pump for the thread is shut down
19538           - Added SupportsTransparency method to allow the driver to indicate
19539             opacity support for windows
19540         * Form.cs:
19541           - Removed TODO attribute, completed AllowTransparency property
19542           - Added documented logic to Opacity
19543         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
19544           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
19545           versions of CompatibleTextRendering
19546         * X11Structs.cs: Added opacity atom to our atom enumeration
19547         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
19548           of a form might be set before it's reparented by the WM, and we need
19549           the opacity value without calling up to Form)
19550         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
19551           SupportsTransparency() driver methods
19552         * Application.cs: Now calling StartLoop and EndLoop driver methods
19553         * XplatUIX11.cs:
19554           - Added opacity atom registration
19555           - Added StartLoop()/EndLoop() methods. They're empty right now but
19556             will need to get implemented when we switch to a per-thread queue
19557           - Implemented SupportsTransparency() method
19558           - Implemented SetWindowTransparency() method
19559           - Added support for setting the opacity value when a window is
19560             reparented (since the opacity needs to be set on the WM frame)
19561         * XplatUIOSX.cs, XplatUIWin32.cs:
19562           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
19563
19564 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
19565
19566         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
19567
19568 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
19569
19570         * FileDialog.cs: Added ToolTip for MWFFileView
19571         * MimeIcon.cs: Rewrote GnomeHandler.
19572           - Get currently used gnome icon theme from
19573             ($HOME)/.gconf/%gconf-tree.xml
19574           - Make use of inherited icon themes
19575           - Support SVG icon themes like Tango via librsvg
19576
19577 2006-01-12  Miguel de Icaza  <miguel@novell.com>
19578
19579         Revert's Jackson's revert which broke 2.0 builds.   Fix both
19580         builds. 
19581         
19582         * Application.cs: Move the use_compatible_text_rendering outside
19583         the NET_2_0 define.  If we ever need to use the
19584         use_compatible_text_rendering on the individual controls they will
19585         access the variable from the common shared code paths.
19586
19587 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
19588
19589         * XplatUI.cs:
19590           - Added more granular debug options
19591           - Added method to print both window text and id
19592           - Switched debug output to use new Window() debug method
19593           - Added IsEnabled() driver method
19594           - Added EnableWindow() driver method
19595         * Form.cs:
19596           - Removed end_modal; no longer needed, new loop handles termination
19597             via 'closing' variable
19598           - If form is modal, setting DialogResult will now initiate loop
19599             termination via 'closing' variable
19600           - Added support for is_enabled/WS_DISABLED to CreateParams
19601           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
19602             does all the work
19603           - Removed code that's now in RunLoop from ShowDialog()
19604           - Added various documented sanity checks to ShowDialog()
19605           - Added handling of WM_DESTROY message; we set 'closing' on getting
19606             the message to indicate the message pump to terminate
19607           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
19608             send by the Application.ExitThread method. (We send the message
19609             to destroy the window after all other events have been
19610             processed through the queue, instead of destroying the handle 
19611             directly)
19612           - Moved code from Close() method to WM_CLOSE handler; added logic
19613             to only send close-related events if the form is not displayed
19614             modal
19615         * Splitter.cs (..ctor): Fixed typo in resource name
19616         * Control.cs:
19617           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
19618             brush now
19619           - set_Cursor: Now only setting calling into XplatUI if the handle for
19620             the control is already created; this avoids implict handle creation
19621             or crashes if it's not created
19622           - set_Enabled: Now setting the enabled state via the new driver method
19623             instead of just tracking it
19624           - CreateParams: Added logic to set WS_DISABLED based on enabled state
19625           - CreateControl: Reordered event firing and method calls to more
19626             closely fire events in the order MS does. Now setting the
19627             enabled state in the driver when creating the control.
19628           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
19629             match MS order
19630         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
19631           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
19632         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
19633         * Hwnd.cs:
19634           - Added tracking of window enabled state (get_Enabled/set_Enabled)
19635           - Added EnabledHwnd property to easily allow a driver to find the
19636             handle of the first enabled window in the parent chain (this is
19637             used by drivers to pass up input events of disabled windows)
19638         * XplatUIDriver.cs: Added IsEnabled() method
19639         * Application.cs:
19640           - Removed crude and obsolete exiting tracking variable
19641           - Removed internal ModalRun(); replaced by RunLoop()
19642           - Implemented private CloseForms() method to allow closing all 
19643             windows owned by a particular (or all) threads
19644           - Exit() now properly closes all windows without forcing the message
19645             pump to quit
19646           - Removed obsolete InternalExit() method
19647           - Changed Run() methods to use new RunLoop() message pump
19648           - Implemented new RunLoop() method for both modal and non-modal forms
19649         * CommonDialog.cs:
19650           - get_CreateParams: Added setting of WS_DISABLED
19651           - Simplified ShowDialog(); now all the work is done in RunLoop(),
19652             invoked via Form.ShowDialog()
19653         * NativeWindow.cs: We don't remove the window from the collection when
19654           the handle is destroyed; there might still be messages for it in the
19655           queue (mainly the resulting WM_DESTROY); instead it will be removed
19656           when Control calls InvalidateHandle in the WM_DESTROY handler
19657         * XplatUIX11.cs:
19658           - CreateWindow: Added logic to handle the WS_DISABLED window style
19659           - EnableWindow: Implemented based on Hwnd.Enabled
19660           - GetMessage: Reset PostQuitState so the method can be called again
19661           - Implemented support for disabled windows (passing messages to the
19662             first enabled parent) in handling all input messages
19663           - Added optimizations for handling Expose events
19664           - Implemeted new driver method IsEnabled()
19665           - Now always resetting paint pending tracking vars when we start paint
19666           - Re-implemented UpdateWindow via just sending a WM_PAINT message
19667         * XplatUIOSX.cs: Added IsEnabled method stub
19668         * XplatUIWin32.cs: Implemented new IsEnabled() method
19669
19670 2006-01-11  Jackson Harper  <jackson@ximian.com>
19671
19672         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
19673         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
19674         variables a little.
19675         * ColorDialog.cs: Clear out the old form before adding the new
19676         panel.  
19677
19678 2006-01-11  Jackson Harper  <jackson@ximian.com>
19679
19680         * X11Dnd.cs: Make sure to add all the text formats when adding
19681         strings to the data object.
19682         * TreeNodeCollection.cs: When adding to a sorted tree we need to
19683         do some redrawing too.  Also change the UpdateNode to an
19684         UpdateBelow so the newly added node gets painted.
19685         
19686 2006-01-11  Miguel de Icaza  <miguel@novell.com>
19687
19688         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
19689         LinkLabel.cs, PropertyGrid.cs: Implement the
19690         UseCompatibleTextRendering property for 2.x
19691
19692         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
19693
19694 2006-01-11  Jackson Harper  <jackson@ximian.com>
19695
19696         * TreeView.cs: Use the property for setting the selected node so
19697         the correct events get raised.
19698         * TreeNode.cs: Update the tree when the fore/back colours of a
19699         node are set.
19700
19701 2006-01-10  Jackson Harper  <jackson@ximian.com>
19702
19703         * TreeView.cs: Allow setting SelectedNode to null.
19704
19705 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
19706
19707         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
19708
19709 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
19710
19711         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
19712
19713 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
19714
19715         * PrintDialog.cs: Added attributes and set default property values.
19716
19717 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
19718
19719         * PrintControllerWithStatusDialog.cs: 
19720         Added PrintControllerWithStatusDialog.
19721
19722 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
19723
19724         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
19725         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
19726
19727 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
19728
19729         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
19730
19731 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
19732
19733         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
19734         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
19735
19736 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
19737
19738         * MimeIcon.cs: Added internal class SVGUtil.
19739
19740 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
19741
19742         * FileDialog.cs: Don't crash if there are two files with the
19743           same name but different locations.
19744
19745 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
19746
19747         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
19748         dates across multiple month grids. Used to not highlight entire 
19749         month, but does now.
19750         
19751 2006-01-06  Jackson Harper  <jackson@ximian.com>
19752
19753         * MonthCalendar.cs: Removed DoEvents call to prevent a running
19754         message loop. Change timer intervals to numbers that seem more
19755         natural.
19756
19757 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
19758
19759         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
19760           object for location info since screen object is now implemented.
19761
19762 2006-01-05  Jackson Harper  <jackson@ximian.com>
19763
19764         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
19765         * AsyncMethodResult.cs: We no longer use a WeakReference for the
19766         AsyncMethodResult, this is because we ALWAYS want the
19767         ManualResetEvent to get set.
19768         * Control.cs: When disposing use an async invoke to call shutdown
19769         code, so that thigns don't block on the finalizer thread.  Also
19770         check if we even have a message loop before trying to send
19771         messages, if we don't then don't bother sending messages.
19772         - No more weak references for async methods
19773         * XplatUIDriver.cs: No more weak references for async methods.
19774
19775 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
19776
19777         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
19778           returns two FontFamily with the same name
19779
19780 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
19781
19782         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
19783           drawing disabled text. Instead using the ColorGrayText color
19784
19785 2006-01-04  Jackson Harper  <jackson@ximian.com>
19786
19787         * TreeNode.cs: redraw the node when its image index is changed.
19788
19789 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
19790
19791         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
19792           time I checked there are no others like it.
19793
19794 2006-01-04  Jackson Harper  <jackson@ximian.com>
19795
19796         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
19797         this gives the behavoir I was looking for.
19798         * Control.cs: Special case Invoking EventHandlers, this matches MS
19799         and fixes part of bug #76326.
19800
19801 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
19802
19803         * ThemeClearlooks.cs, FileDialog.cs:
19804           - Reflect the latest Theme class changes
19805           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
19806             with DateTime
19807             
19808 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
19809
19810         * Theme.cs: Cache UI resource images and resize them if needed
19811
19812 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
19813
19814         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
19815           is called. This fixes the crash in Nexxia when setting the font
19816           attributes in the chat. [However, RTF needs a look-over to make sure
19817           that all SelectionXXX methods handle the special case that selection
19818           is empty and therefore the change must be applied to all text starting
19819           at the cursor/selection start]
19820
19821 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
19822
19823         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
19824           XplatUIOSX.cs: Added SendMessage and PostMessage methods
19825         * X11Keyboard.cs: Switched to new way of calling PostMessage
19826
19827 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
19828
19829         * Theme.cs: Added theme interface for images to allow the theme to
19830           control what images are used for things like FileDialog, MessageBox
19831           icons, etc.
19832         * MessageBox.cs: Now uses the new Theme icon/image interfaces
19833
19834 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
19835
19836         * FileDialog.cs:
19837           - Removed some dead code
19838           - Opening a recently used file does work now
19839           - Small UI enhancements
19840           - Refactoring
19841
19842 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
19843
19844         * FileDialog.cs: Forgot too add __MonoCS__
19845
19846 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
19847
19848         * FileDialog.cs: We are able to read recently used files now let's
19849           go on and write them.
19850
19851 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
19852
19853         * FileDialog.cs: Breathe some life into "last open"/"recently used"
19854           button
19855         * MimeIcon.cs: Do a check for the top level media type also
19856
19857 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
19858
19859         * ThemeClearlooks.cs:
19860           - Added CPDrawStringDisabled
19861           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
19862             some chars if the text doesn't fit into text_rect
19863           - DrawListViewItem: If View = View.LargeIcon center the image;
19864             rewrote the drawing of ListViewItem.Text if View = 
19865             View.LargeIcon
19866
19867 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
19868
19869         * MimeIcon.cs: Use default KDE icon theme if there is no
19870           "48x48" directory for the current icon theme, fixes #77114
19871         * Mime.cs: Disable not working and actually not used code. 
19872         * ThemeWin32Classic.cs:
19873           - Replace "new SolidBrush" in GetControlBackBrush and
19874             GetControlForeBrush with ResPool.GetSolidBrush
19875           - Changed DrawListViewItem from private to protected virtual
19876         * FileDialog.cs:
19877           - Added form.MaximizeBox = true
19878           - Don't throw an exception if there is a broken symbolic link
19879
19880 2005-12-23  Jackson Harper  <jackson@ximian.com>
19881
19882         * TabControl.cs: Give the panels focus, keyboard navigation is
19883         fixed so this works correctly now.
19884         - We need these key events also.
19885         * ToolBar.cs: Remove some of the poor mans double buffering.
19886         
19887 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
19888
19889         * ComboBox.cs: The internal TextBox now returns the focus.
19890
19891 2005-12-23  Jackson Harper  <jackson@ximian.com>
19892
19893         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
19894
19895 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
19896
19897         * Control.cs: Removed debug code
19898         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
19899           implicit children
19900
19901 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
19902
19903         * Control.cs: When creating the control, update the Z-order after
19904           all it's children are created, too. (Fixes nexxia not showing
19905           picturebox bug)
19906
19907 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
19908
19909         * Control.cs: Do not update the anchoring distances if layout is
19910           suspended, instead do it once layout is resumed
19911
19912 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
19913
19914         * Control.cs: 
19915           - After many hours of debugging, for both Jackson and
19916             myself, it turns out that it helps to set the parent of a control
19917             if you want to actually see it onscreen. In the spirit of that
19918             discovery, we're now setting the parent of the control and
19919             it's children when the control's handle is created. This fix
19920             will make Lutz Roeder's Reflector run happily. 
19921           - now just creating the handle instead of the whole control when
19922             getting a graphics context for the control.
19923
19924 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
19925
19926         * ScrollableControl.cs: When calculating the canvas, don't consider
19927           the scrollbar widths. Instead, predict if horizontal scrollbar
19928           will affect canvas when deciding on vertical display and vice versa.
19929
19930 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
19931
19932         * RichTextBox.cs: Set default RTF font for documents that don't
19933           have a font table (Fixes #77076)
19934
19935 2005-12-22  Jackson Harper  <jackson@ximian.com>
19936
19937         * TextBoxBase.cs: It's difficult to do, but you can have an empty
19938         clipboard. This prevents a NullRef in that case.
19939         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
19940         clipboard. PRIMARY is for the currently selected text only. (We
19941         should implement PRIMARY at some point.
19942
19943 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
19944
19945         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
19946           a Unicode function with a structure that was defined in Ansi way.
19947           This fixes #76942.
19948
19949 2005-12-21  Jackson Harper  <jackson@ximian.com>
19950
19951         * StatusBar.cs: Statusbar handles its fore/back colours on it's
19952         on. Because thats how it rolls. (and this avoids it using ambient
19953         colours).
19954         * ThemeWin32Classic.cs: Use the proper back color for filling.
19955         * Menu.cs: Use the system menu bar color for drawing menu
19956         bars. Using the window back color will bring ambient colours into
19957         the picture.
19958
19959 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
19960
19961         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
19962           Bitmaps were created and not disposed.
19963
19964 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
19965
19966         * Control.cs (CreateControl): Don't do anything if the control is
19967           already created, otherwise we'd fire the OnCreated event more than
19968           once
19969
19970 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
19971
19972         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
19973           will always match. Instead return -1. Fixes #76464.
19974
19975 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
19976
19977         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
19978           neither the beginning nor the end of the line (Fixes bug #76479)
19979
19980 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
19981
19982         * Control.cs:
19983           - ControlNativeWindow.ControlFromHandle(): Now handling situation
19984             where handle is invalid
19985           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
19986             instead of slower linear search
19987         * NativeWindow.cs: Don't remove the window from the hashtable until
19988           after the driver has destroyed it (since the driver might use
19989           Control.FromHandle to lookup the control object
19990         * Hwnd.cs: Added DestroyPending property to track if a window is 
19991           already destroyed as far as the driver is concerned and only hasn't
19992           yet notified the control
19993         * XplatUIX11.cs:
19994           - Activate(): Check if the window is still valid before using the 
19995             handle
19996           - Implemented DestroyChildWindow() method to mark child windows as
19997             destroyed when a window is destroyed. This prevents situations 
19998             where we might call an X method based on queued events for a
19999             window that already has been destroyed but we haven't yet pulled
20000             the destroy method from the queue.
20001           - Added a call to the new DestroyChildWindow() method to the drivers
20002             DestroyWindow code. Also now marking the destroyed window itself
20003             as pending
20004
20005 2005-12-20  Jackson Harper  <jackson@ximian.com>
20006
20007         * StatusBar.cs:
20008         * StatusBarPanel.cs: Don't calculate panel sizes on draw
20009         anymore. Just do them when needed, also track the rects of panels
20010         so that we can optimize refreshing more in the future.
20011
20012 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
20013
20014         * ColorDialog.cs: Fixed focus drawing in small color controls
20015
20016 2005-12-19  Jackson Harper  <jackson@ximian.com>
20017
20018         * InternalWindowManager.cs:
20019         * MdiWindowManager.cs: Cleanup some coordinate system changes so
20020         moving windows works properly.
20021
20022 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
20023
20024         * Control.cs: 
20025           - Removed call to InitLayout() from SetBoundsCore(); doc says
20026             it's only called when a control is added to a container
20027           - Split InitLayout logic, moved to separate UpdateDistances() method
20028             since we need to perform those calculations more often than just
20029             when adding the control to a container. (Needed to fix #77022)
20030           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
20031           - Reduced the OnBindingContextChanged events count, don't send them
20032             unless the control is created, we still aren't totally matching
20033             MS, but I can't quite figure out some of their rules
20034
20035 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
20036
20037         * ThemeClearlooks.cs: Corrected distance between ProgressBar
20038           stripes
20039
20040 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
20041
20042         * ThemeClearlooks.cs:
20043           - Updated ProgressBar drawing
20044           - Corrected drawing of ScrollBars and scroll buttons
20045           - Some temporary fixes for minor pixel artefacts
20046
20047 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
20048
20049         * Control.cs:
20050           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
20051             cause events to be sent in the same order as MS does.
20052           - Added ChangeParent() method to trigger various OnXXXChanged events
20053             that need to be fired when a parent changes (This is a reworking
20054             of the patch from r54254, with the X11 errors fixed)
20055           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
20056             since on MS we get OnLayoutChanged events when calling Clear()
20057           - Changed Enabled property to consider parent state as well, if a
20058             parent is not enabled, the control will not be either
20059           - Changed Parent property to simply call Controls.Add() since that
20060             now does all the work required, this way we avoid code duplication
20061           - Threw in a few OnBindingsContextChanged calls to try and match
20062             when MS sends them. We seem to send a few too many, though.
20063           - Added call to CreateControl when adding the control to a parent.
20064             We were never calling CreateControl. Still needs some work, in
20065             some places we treat HandleCreated and ControlCreated as equal, 
20066             which is wrong
20067           - Removed obsolete commented out code from UpdateZOrder()
20068
20069 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
20070
20071         * ThemeClearlooks.cs: Updated TrackBar drawing.
20072
20073 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
20074
20075         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
20076
20077 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
20078
20079         * FileDialog.cs: Add the Help button and the open readonly
20080           checkbox only if needed
20081
20082 2005-12-16  Jackson Harper  <jackson@ximian.com>
20083
20084         * Control.cs: Make sure we have an active menu before trying to
20085         process commands on it. Prevents menu-less forms from crashing
20086         when Alt is pressed.
20087         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
20088         Dieter Bremes.
20089         * RichTextBox.cs: Expand statement to help out gmcs and fix the
20090         2.0 build.
20091
20092 2005-12-16  Jackson Harper  <jackson@ximian.com>
20093
20094         * InternalWindowManager.cs: Don't translate tool windows screen
20095         coordinates. This fixes windows 'bouncing' around when being moved.
20096
20097 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
20098
20099         * TextBoxBase.cs:
20100           - MaxLength now treats 2^31-1 equal to unlimited length (this is
20101             not quite MS compatible, MS uses that number only for single line
20102             and 2^32-1 for multi-line, but I figure it won't hurt keeping
20103             the limit at 2GB)
20104           - Now enforcing the MaxLength limit when entering characters
20105           - Added argument to internal Paste() method to track if it's called
20106             from programatically or via keyboard, since keyboard driven pastes
20107             need to enforce max-length
20108           - Added logic to Paste to only paste as many chars as MaxLength 
20109             allows
20110         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
20111         * TextControl.cs:
20112           - Added Length property to return number of characters in document
20113           - Added private CharCount property which only tracks actual chars
20114             in the document (no linefeeds) and fires event when CharCount
20115             changes
20116           - Added tracking of character count to all methods that alter it
20117           - Added LengthChanged event to allow applications to subscribe
20118             to any changes to the document
20119
20120 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
20121
20122         * TextBox.cs: 
20123           - Removed local password_char field (moved to TextBoxBase)
20124           - Now setting the document's password var when password is
20125             set
20126         * TextBoxBase.cs:
20127           - Added password_char field (needed here so MultiLine can
20128             access it)
20129           - Added logic to MultiLine property setter to set the document's
20130             variable when password display is allowed
20131           - Removed debug code and made some debug code conditional
20132         * TextControl.cs:
20133           - Added RecalculatePasswordLine() method to handle special password
20134             char only lines
20135           - Added PasswordChar property, also added related tracking vars
20136           - Draw() method now uses local text var for grabbing text to draw,
20137             this var is set to line.text unless we're doing password display,
20138             then it is set to the pre-generated all-password-chars line
20139           - Added calling RecalculatePasswordLine() method for password lines
20140
20141 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
20142
20143         * Hwnd.cs: 
20144           - Added Reparented property to allow tracking of Window Manager
20145             reparenting actions (which affect X/Y calculations of toplevel 
20146             windows)
20147           - Made ToString() print window handles in hex
20148         * XplatUIX11.cs:
20149           - AddConfigureNotify(): Now uses reparented state off Hwnd to
20150             determine if X/Y needs offsetting
20151           - AddConfigureNotify(): Fixed offset calculations
20152           - Now adds ReparentNotify messages into the queue
20153           - Now processes ReparentNotify messages and causes a 
20154             WM_WINDOWPOSCHANGED message to be sent upstream if a window
20155             is reparented (as most likely it's X/Y coordinates are changed
20156             due to that)
20157
20158 2005-12-14  Jackson Harper  <jackson@ximian.com>
20159
20160         * XplatUIX11.cs: Tool windows still need to respek focus.
20161
20162 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
20163
20164         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
20165           have a working release
20166
20167 2005-12-13  Jackson Harper  <jackson@ximian.com>
20168
20169         * Form.cs: Update styles after setting the border style regardless
20170         of whether or not the window is using a window manager.
20171
20172 2005-12-13  Jackson Harper  <jackson@ximian.com>
20173
20174         * Form.cs: We now hook into an internal window manager instead of just an
20175         MDI subsystem, this is so we can have properly behaving tool windows.
20176         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
20177         * InternalWindowManager.cs: New internal class that acts as a
20178         window manager for tool windows and as a base for mdi windows.
20179         * MdiWindowManager.cs: New class that acts as a window manager for
20180         mdi windows.
20181
20182 2005-12-12  Jackson Harper  <jackson@ximian.com>
20183
20184         * Control.cs: Updates so we match behavoir for for implicit
20185         controls. Fixes explosions in MDI.
20186
20187 2005-12-12  Jackson Harper  <jackson@ximian.com>
20188
20189         * Control.cs: Implement Invalidate (Region).
20190
20191 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
20192
20193         * Control.cs: 
20194           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
20195             the same events as MS does. MS fires events for each property 
20196             except, for unknown reasons, Cursor, when the control is reparented. 
20197             I can't seem to totally match add/remove since MS also fires some 
20198             VisibleChanged events, which makes no sense. Consolidated the
20199             parenting code into a separate method so it can be called from
20200             both Add and Remove. set_Parent no longer needs any special logic
20201             as it calls the parent's add method which implicitly fires
20202             all events
20203           - Removed some obsolete code and debug output
20204           - Enabled state is inherited from parents, if this is enabled
20205
20206 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
20207
20208         * Form.cs: Removed commented out code
20209
20210 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
20211
20212         * Control.cs:
20213           - Added internal version of Invoke, with additional argument 
20214             indicating if we're calling it from a Dispose() handler. That
20215             way we can avoid BeginInvoke throwing an exception if we're
20216             calling for an already destroyed window.
20217           - Added a dispose argument to BeginInvokeInternal, and made the
20218             check if a valid window handle chain exists conditional on
20219             it not being a dispose call
20220           - Removed code in DestroyHandle to destroy our children. Since we
20221             now handle the WM_DESTROY message we will catch all our children
20222             being destroyed.
20223           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
20224         * Form.cs:
20225           - Added a field to track the application context of the form.
20226           - No need to set closing variable as response to WM_CLOSE, instead
20227             we destroy the window. We also call PostQuitMessage if the form
20228             has an application context (which makes it the main app form,
20229             which, when closed terminates the app)
20230         * XplatUI.cs:
20231           - Dropped Exit() method, it's naming was confusing
20232           - Added PostQuitMessage() which causes GetMessage to return false
20233             once the message queue is empty
20234         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
20235           PostQuitMessage()
20236         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
20237           no longer a valid XplatUI method, but left it in since it's used
20238           internally. Added empty PostQuitMessage() method.
20239         * MenuAPI.cs: Replaced call to Exit() with call to
20240           PostQuitMessage, even though this is probably no longer needed.
20241         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
20242         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
20243         * Application.cs:
20244           - Replaced call to XplatUI.Exit() with PostQuitMessage()
20245           - Removed old debug code that would call XplatUI for exception
20246             display, enabled standard exception handling (Still not enabled
20247             though, until NativeWindow's ExternalExceptionHandler define
20248             is removed
20249         * NativeWindow.cs:
20250           - Added internal method to allow control to update NativeWindow
20251             after a window has been destroyed
20252           - Added handling of already destroyed windows when calling i
20253             DestroyWindow
20254           - Added removal of handle from list on ReleaseHandle
20255         * XplatUIX11.cs:
20256           - Dropped GetMessageResult var and related code
20257           - Added PostQuitState to field to track if PostQuitMessage has been
20258             called
20259           - Dropped Exit() method
20260           - Added PostQuitMessage() method
20261           - GetMessage now will return false if PostQuitState is set and no
20262             more messages are in the queue.
20263           - Expose handler will no longer generate WM_PAINT messages if we are
20264             in PostQuitState since it's very likely any windows have already
20265             been destroyed, and since Hwnd won't get updated until we have
20266             processed the DestroyNotify we'd be causing X errors.
20267         
20268 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
20269
20270         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
20271           Thanks to Mike for pointing out the err of my ways.
20272
20273 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
20274
20275         * Control.cs(PreProcessMessage): Moved menu handling back, but
20276           after all other key handling, to match MS (who handles Menu in
20277           DefWndProc)
20278         * Menu.cs (WndProc): Removed my brainfart
20279
20280 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
20281
20282         * Control.cs(PreProcessMessage): Removed special menu handling 
20283         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
20284
20285 2005-12-07  Mike Kestner  <mkestner@novell.com>
20286
20287         * Control.cs : special case SYSKEYUP so that we can adjust keynav
20288         state according in tracker.
20289         * Menu.cs : promote tracker field to base class and provide a tracker
20290         lookup capability.  Add/Remove shortcuts dynamically if the top menu
20291         has a tracker. Unparent items that are removed from the collection.
20292         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
20293         * Theme*.cs: add always_show_hotkeys field to support configurability
20294         of mnemonic display.  win32 doesn't show mnemonics until Alt is
20295         pressed.
20296
20297 2005-12-07  Jackson Harper  <jackson@ximian.com>
20298
20299         * MdiChildContext.cs: Use Control.ResetCursor.
20300         * Control.cs: ResetCursor needs to set the property so that the
20301         correct XplatUI call gets made.
20302
20303 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
20304
20305         * Control.cs: More fixes to make our key events match MS. We
20306           were not setting the modifier state on KeyData, and we were
20307           not generating any events when Alt was pressed with a key
20308           since handling of WM_SYSxxx was missing for the OnKey methods.
20309
20310 2005-12-07  Jackson Harper  <jackson@ximian.com>
20311
20312         * MdiChildContext.cs: reenable the sizing code.
20313         - When the mouse leaves a window reset its cursor.
20314
20315 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
20316
20317         * ThemeClearlooks.cs: Reflect latest Hwnd changes
20318
20319 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
20320
20321         * Hwnd.cs: Now using the theme 3d bordersize to calculate
20322           widths of Fixed3D borders
20323
20324 2005-12-07  Jackson Harper  <jackson@ximian.com>
20325
20326         * MdiClient.cs: Fix warnings. Earn Mike's love.
20327
20328 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
20329
20330         * ThemeClearlooks.cs:
20331           - Adjusted mouse over button color
20332           - Added first parts of CheckBox drawing
20333           - Added correct color for selected text background
20334           - Fixed ComboBox drawing
20335           - Added CPDrawBorder3D and CPDrawBorder
20336
20337 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
20338
20339         * XplatUIX11.cs: Added call to XBell for AudibleAlert
20340
20341 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
20342
20343         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
20344           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
20345           alert users via sound. We could add an enum arg with different
20346           types of alerts in the future
20347
20348 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
20349
20350         * Control.cs: Fix behaviour problems pointed out by Mike
20351
20352 2005-12-05  Mike Kestner  <mkestner@novell.com>
20353
20354         * StatusBarPanel.cs: add Invalidate method and hook it into all the
20355         prop setters.  Calls parent.Refresh for now, but could be maybe be
20356         optimized with an internal method on StatusBar at some point.
20357         [Fixes #76513]
20358
20359 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
20360
20361         * RichTextBox.cs: Implemented get_SelectionColor
20362
20363 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
20364
20365         * ThemeClearlooks.cs:
20366           - Removed dead code
20367           - Draw black button border only if button is Form.AcceptButton
20368           - Draw correct button color for pressed RadioButton if the mouse 
20369             has entered the button
20370           - Updated ProgressBar drawing!
20371           - Updated CPDrawSizeGrip drawing
20372           - Updated StatusBarPanel drawing
20373
20374 2005-12-05  Mike Kestner  <mkestner@novell.com>
20375
20376         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
20377         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
20378
20379 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
20380
20381         * ThemeClearlooks.cs: Initial check-in, activate with
20382           export MONO_THEME=clearlooks
20383         * ThemeEngine.cs: Added ThemeClearlooks
20384
20385 2005-12-03  Mike Kestner  <mkestner@novell.com>
20386
20387         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
20388         [Fixes #76897]
20389
20390 2005-12-02  Jackson Harper  <jackson@ximian.com>
20391
20392         * Form.cs: If the child form has no menu the default main menu is
20393         used as the active menu.
20394
20395 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
20396
20397         * ListBox.cs: Check if any items exist before trying to resolve 
20398           coordinates into items
20399
20400 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
20401
20402         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
20403           as the second color for the background hatch
20404
20405 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
20406
20407         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
20408         * RichTextBox.cs: FormatText position arguments are 1-based, now making
20409           sure that what we pass to FormatText is always 1-based. Fixes #76885
20410
20411 2005-11-29  Miguel de Icaza  <miguel@novell.com>
20412
20413         * NumericUpDown.cs (EndInit): When we are done initializing,
20414         reflect any updates on the UI.
20415
20416 2005-12-02  Jackson Harper  <jackson@ximian.com>
20417
20418         * ImplicitHScrollBar.cs:
20419         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
20420         their container controls.
20421         * TreeView.cs: Use the new implicit scrollbars.
20422
20423 2005-12-02  Jackson Harper  <jackson@ximian.com>
20424
20425         * TreeView.cs: Make top_node internal so the TreeNodeCollections
20426         can play with it.
20427         * TreeNodeCollection.cs: If we remove the topnode we need to
20428         update topnode to the next node in line.
20429         - When clearing nodes go through the same process as removing
20430         them, so they get depareneted and checked if they are top node.
20431
20432 2005-12-01  Jackson Harper  <jackson@ximian.com>
20433
20434         * TreeView.cs: When imagelists are used the image area is
20435         selectable as well as the text.
20436         - If there are no selected nodes select the first one.
20437         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
20438         so don't do it more then we need to.
20439
20440 2005-12-01  Jackson Harper  <jackson@ximian.com>
20441
20442         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
20443         that arrows can be scaled.
20444
20445 2005-12-01  Jackson Harper  <jackson@ximian.com>
20446
20447         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
20448         fail. Patch by Dieter Bremes
20449
20450 2005-11-30  Jackson Harper  <jackson@ximian.com>
20451
20452         * Form.cs: Property is 2.0 only
20453         * PrintDialog.cs: Signature fix.
20454
20455 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
20456
20457         * TextControl.cs: 
20458           - No longer artificially moves text 2 pixels down (now that we have
20459             borders this is no longer needed)
20460           - Added calcs for left, hanging and right indent
20461
20462 2005-11-23  Mike Kestner  <mkestner@novell.com>
20463
20464         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
20465
20466 2005-11-30  Jackson Harper  <jackson@ximian.com>
20467
20468         * MdiChildContext.cs: Set the cloned menus forms, as these don't
20469         get cloned as part of CloneMenu ().
20470         * Menu.cs: Make sure the parent of the items get set correctly
20471         when they are added.  And the owners are notified of the changes.
20472         * Form.cs: Create an ActiveMenu property, so that when MDI is used
20473         we can change the menu being displayed/handled by the form without
20474         changing the menu assosciated with the form.
20475         - Don't let Mdi children draw/handle menus.
20476         
20477 2005-11-30  Jackson Harper  <jackson@ximian.com>
20478
20479         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
20480         a MenuChanged event. Just to make the API a little more
20481         consistent.
20482         * MainMenu.cs:
20483         * MenuItem.cs: Use the new OnMenuChanged
20484         * MdiChildContext.cs: Handle menu merging.
20485         * Form.cs: Implement MergedMenu.
20486         
20487 2005-11-30  Jackson Harper  <jackson@ximian.com>
20488
20489         * Menu.cs: We were misusing Add. Add goes behind the specified
20490         index according to the docs, and does not replace the specified
20491         index. So I added an Insert method.
20492
20493 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
20494
20495         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
20496           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
20497           is for Jackson
20498         * RichTextBox.cs: Added calls to base for DnD events
20499
20500 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
20501
20502         * TextControl.cs:
20503           - Fixed drag-selection related crash; style fixes
20504           - Implemented undo class
20505             o Implemented method to capture document state for specified
20506               range in document tree
20507             o Implemented method to restore captured document state
20508             o Implemented cursor tracking
20509             o Implemented basic undo stack
20510           - Added undo cursor tracking to methods altering cursor location
20511           - Added undo tracking to selection deletion (still missing
20512             other text-altering hookups)
20513         * RichTextBox.cs:
20514           - Added SelectionLength property
20515           - Implemented CanPaste()
20516           - Implemented Paste()
20517           - Added missing protected methods
20518           - Fixed RTF->Document conversion; now uses font index 0 and color 
20519             index 0 as the default font for the parsed text
20520           - Fixed RTF<->Document font size translation
20521           - Fixed RTF generation, now properly handles cross-tag boundaries
20522             for single line selection
20523           - No longer always appends blank line to generated RTF
20524           - Removed TODOs
20525           - Added missing attributes
20526           - Hooked up undo-related methods
20527         * TextBoxBase.cs:
20528           - Implemented Copy()
20529           - Implemented Paste()
20530           - Implemented Cut()
20531           - Fixed caret mis-behaviour on backspace across line-boundaries
20532
20533 2005-11-29  Jackson Harper  <jackson@ximian.com>
20534
20535         * MdiClient.cs: Add a method for activating mdi children. Very
20536         basic right now. I imagine someday it might need more girth.
20537         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
20538         children windows names are added to the menu item.
20539         * ThemeWin32Classic.cs: Draw the arrow if the item is an
20540         mdilist. This happens regardless of whether or not there are any
20541         mdi windows to see in the list, and according to my tests happens
20542         before the items are even added. Also happens if there isn't even
20543         an mdi client to get windows from.
20544
20545 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
20546
20547         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
20548         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
20549
20550 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
20551
20552         * DataGridTableStyle.cs:
20553           - Create always the styles for the missing columns even if they are
20554             provided by the user (not default table style)
20555         * DataGrid.cs:
20556           - Fixes bug 76770
20557           - Fixes SetDataBinding (always re-attach source)
20558           - Fixes SetNewDataSource (only clear styles if they are not for 
20559             this source)
20560          -  Expands OnTableStylesCollectionChanged to handle style refresh 
20561             and remove properly
20562
20563 2005-11-29  Jackson Harper  <jackson@ximian.com>
20564
20565         * FileDialog.cs: Implement missing bits, remove some dead
20566         code.
20567         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
20568         creation of the panel so that the options set on the dialog are
20569         seen when the panel is created.
20570         * TreeView.cs: raise a click when items are clicked.
20571         
20572 2005-11-29  Jackson Harper  <jackson@ximian.com>
20573
20574         * MdiClient.cs: Pass some signature methods through to base.
20575
20576 2005-11-28  Jackson Harper  <jackson@ximian.com>
20577
20578         * ListView.cs: Raise the click event when items are clicked.
20579
20580 2005-11-28  Jackson Harper  <jackson@ximian.com>
20581
20582         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
20583         a nullref.
20584
20585 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
20586
20587         * ThemeNice.cs: - Removed 1 pixel bitmaps
20588           - Use SmoothingMode.AntiAlias where it makes sense
20589             (ScrollButton arrow for example)
20590           - Enhanced Button focus drawing
20591           - Fixed ComboBox drawing (no artefacts anymore, focus
20592             rectangle is back again, reduced size of ComboButton, etc.)
20593           - Fixed RadioButton focus drawing for Appearence.Button
20594           - Slight ScrollButton redesign
20595           - Some LinearGradientBrush size fixes
20596           - GroupBoxes have now rounded edges
20597           - Fixed StatusBar drawing
20598
20599 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
20600
20601         * ThemeNice.cs: - Remove dead code
20602           - use correct background colors for menus, etc.
20603           - Fake pixel drawing with 1 pixel bitmaps
20604
20605 2005-11-24  Jackson Harper  <jackson@ximian.com>
20606
20607         * MdiClient.cs: Size the scrollbars when resizing the window.
20608         - Resize the maximized windows when the client is resized
20609         * Form.cs: Make the child context available
20610         
20611 2005-11-23  Jackson Harper  <jackson@ximian.com>
20612
20613         * MdiChildContext.cs: Don't size windows if they are maximized.
20614
20615 2005-11-23  Mike Kestner  <mkestner@novell.com>
20616
20617         * ContextMenu.cs: use MenuTracker.
20618         * Control.cs: remove menu handle usage.
20619         * Form.cs: remove menu handle usage.
20620         * Hwnd.cs: remove menu handle usage.
20621         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
20622         motion and clicks to the new Tracker handlers.
20623         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
20624         and handle usage.
20625         * MenuAPI.cs: refactored to combine popup and menubar event handling.
20626         Killed the MENU and MENUITEM data types and associated collections
20627         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
20628         MenuTracker class that exposes the leftovers from the old MenuAPI
20629         static methods. Restructured Capture handling so that only one grab is
20630         done for the entire menu hierarchy instead of handing off grabs to
20631         submenus. Tracker now has an invisible control to Capture when active.
20632         * MenuItem.cs: add sizing accessors, kill Create
20633         and handle usage.
20634         * Theme.cs: remove menu handle and MENU(ITEM) usage.
20635         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
20636         MENU(ITEM). remove menu handle usage, use Menu directly.
20637         * XplatUIDriver.cs: remove menu handle usage.
20638         * XplatUIOSX.cs: remove menu handle usage.
20639         * XplatUIWin32.cs: remove menu handle usage.
20640         * XplatUIX11.cs: remove menu handle usage.
20641
20642 2005-11-22  Jackson Harper  <jackson@ximian.com>
20643
20644         * Hwnd.cs: Don't compute the menu size for
20645         DefaultClientRectangle.
20646         - Reenable menu sizes being computed for GetClienRectangle.
20647         * Form.cs: Remove comment of trechery
20648         
20649 2005-11-22  Jackson Harper  <jackson@ximian.com>
20650
20651         * Hwnd.cs: The adjustments for the menu bar are made when it is
20652         attached to the form.
20653
20654 2005-11-19  Jackson Harper  <jackson@ximian.com>
20655
20656         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
20657         (just like on windows).
20658
20659 2005-11-19  Jackson Harper  <jackson@ximian.com>
20660
20661         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
20662         use real buttons anymore because they are in non client area. The
20663         one TODO here is that I need to somehow invalidate a section of
20664         the non client area.
20665
20666 2005-11-18  Jackson Harper  <jackson@ximian.com>
20667
20668         * Control.cs: Put the enum check back in now that MDI doesnt have
20669         to use this to set border styles.
20670         * Form.cs: Only set mdi child windows borders if the handle has
20671         been created.
20672         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
20673         this directly on to the driver.
20674         - Get the move start position before adjusting for the titlebar
20675         height, this fixes the windows "skipping" when they are first
20676         moved.
20677
20678 2005-11-18  Jackson Harper  <jackson@ximian.com>
20679
20680         * XplatUIX11.cs: Just compute the mdi borders separately as they
20681         don't totally match up with normal form borders.
20682
20683 2005-11-18  Jackson Harper  <jackson@ximian.com>
20684
20685         * Control.cs: Set WS_ styles for borders, so that the driver does
20686         not have to retrieve the control instance to figure out what kind
20687         of borders it should have.
20688         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
20689         driver can know its an mdi child easily.
20690         * XplatUIX11.cs: Get the border styles and whether the window is
20691         MDI from the Styles and ExStyles params instead of having to get a
20692         control. This prevents a chicken and egg problem.       
20693
20694 2005-11-18  Jackson Harper  <jackson@ximian.com>
20695
20696         * MdiClient.cs: Fix typo so scrollbars show up correctly.
20697
20698 2005-11-18  Jackson Harper  <jackson@ximian.com>
20699
20700         * MdiClient.cs: Calculate when to add and remove scrollbars
20701         correctly.
20702         * MdiChildContext.cs: Adjust the y position to take the titlebar
20703         into account.
20704         - No height for FormBorderStyle.None
20705
20706 2005-11-18  Jackson Harper  <jackson@ximian.com>
20707
20708         * Control.cs: Allow non enum values to be used for
20709         InternalBorderStyle.  MDI does this to set a special border style.
20710         - New utility methods for converting points to/from client coords
20711         - Add the newly created control to the Controls collection before
20712         updating its style. This way UpdateStyle can walk the control
20713         heirarchy to find the control if needed.
20714         so I don't need to create a new Point object all the time.
20715         * Form.cs: Let MDI windows handle their border styles.
20716         - Set styles on MDI windows so the correct title style is derived.
20717         * MdiChildContext.cs: Move all the painting and window handling
20718         into the non client area.
20719         - Use correct sizing and put correct buttons on frames based on
20720         the FormBorderStyle.
20721         - Notify the mdi client about scrolling
20722         - Need to handle the buttons ourselves now, because they are all
20723         in non client areas and we can't add controls there.
20724         * MdiClient.cs: Halfway to scrolling, this implementation is
20725         somewhat broken though, we need to check to make sure other
20726         windows aren't causing scrolling before removing the bars. Also
20727         the bars need to be drawn on top, maybe I can switch implicit
20728         controls to be on top.
20729         * Hwnd.cs: caption_height and tool_caption_height are now
20730         properties of an hwnd, this way they can be set by the driver
20731         based on the type of window they are.  In X11 the window manager
20732         handles the decorations so caption_height is zero unless its an
20733         MDI window.
20734         - Add 3 pixel borders for MDI windows (0xFFFF).
20735         - Get rid of some code duplication, have DefaultClientRectanle
20736         just call GetClientRectangle.
20737         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
20738         Hwnd now.
20739         - Set border styles differently for mdi windows.
20740         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
20741         Hwnd now.
20742         
20743 2005-11-15  Mike Kestner  <mkestner@novell.com>
20744
20745         * Menu.cs: when adding an item to the collection, if item is already 
20746         parented, remove it from the parent.
20747
20748 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
20749
20750         * X11DesktopColors.cs: Added KDE support
20751
20752 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
20753
20754         * XplatUIWin32.cs: 
20755           - Clipboard methods now can translate Rtf format
20756           - No longer removes clipboard contents whenever a new format is added
20757             to allow placing multiple formats on the clipboard
20758         * Clipboard.cs: Clipboard now supports getting a IDataObject and
20759           will place all formats contained in it onto the clipboard. Also
20760           now cleans the clipboard before placing a new object onto it
20761         * RichTextBox.cs:
20762           - Implemented set_Rtf
20763           - Implemented set_SelectedRtf
20764           - Created InsertRTFFromStream() method to allow single code base
20765             for all properties and methods that insert RTF into document
20766           - Removed debug output
20767         * TextControl.cs:
20768           - Fixed Delete(int) to fix up line numbers
20769           - Fixed ReplaceSelection to combine start and end line
20770           - Fixed serious DeleteChars bug that would leave the document tree
20771             broken
20772           - Improved DumpTree with several logic checks to detect broken
20773             document trees
20774           - Removed debug lines
20775           - Fixed Caret.WordForward/WordBack moving code, now always also 
20776             updates caret.tag (fixes crash when word-selecting across tag
20777             boundaries via keyboard)
20778           - Added Insert() method for inserting multiline text into documents
20779           - Fixed DeleteChars() calculation errors that would cause a broken
20780             tag chain with multiple tag lines
20781           - DeleteChars() no longer crashes on multi-tag lines if not all tags
20782           - Split() no longer moves caret if split is at caret location
20783           - ReplaceSelection() now updates the cursor and re-displays it
20784           - ReplaceSelection() now uses new Insert() method to avoid code
20785             duplication
20786           - FormatText() can now handle formatting partial lines
20787         * TextBoxBase.cs:
20788           - Append now uses new TextControl.Insert() method (this avoids 
20789             duplicate code)
20790           - Implemented Ctrl-X (Cut) (
20791           - Implemented Ctrl-C (Copy)
20792           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
20793             regeneration when pasting text; roundtripping Copy&Paste within
20794             edit control still fails due to some calculation bugs in GenerateRTF)
20795           - The Delete key will now remove the current selection if it is visible
20796         * TextBox.cs: Removed debug lines
20797         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
20798           driver to be initialized and can't therefore be done via a static ctor)
20799
20800 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
20801
20802         * TextControl.cs: Added backend code for finding char arrays and strings
20803         * TextBoxBase.cs:
20804           - Added mouse wheel scroll support
20805           - Added support for VScroll and HScroll events
20806         * RichTextBox.cs:
20807           - Implemented all seven Find() variants
20808           - Implemented GetCharFromPosition()
20809           - Implemented GetCharIndexFromPosition()
20810           - Implemented GetLineFromIndex()
20811           - Implemented GetPositionFromCharIndex();
20812           - Implemented SaveFile for PlainText and UnicodeText
20813           - Fixed set_Font, now setting a new font applies that font to
20814             the whole document
20815           - Implemented generic Document to RTF converter
20816           - Implemented SaveFile for RichText format (still missing unicode
20817             conversion for non-ansi chars)
20818           - Implemented get_Rtf
20819           - Implemented get_SelectedRtf
20820
20821 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
20822
20823         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
20824           to allow any captures to be released before triggering OnClick. This
20825           way a click handler may capture the mouse without interference.
20826         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
20827           This way we send them even though X may not allow a grab (if the window
20828           isn't visible, for example)
20829
20830 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
20831
20832         * DataGridViewRowEventArgs.cs: DataGridView implementation
20833         * DataGridViewElement.cs: DataGridView implementation
20834         * DataGridViewComboBoxCell.cs: DataGridView implementation
20835         * DataGridViewDataErrorContexts.cs: DataGridView implementation
20836         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
20837         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
20838         * ImageLayout.cs: DataGridView implementation
20839         * DataGridViewComboBoxColumn.cs: DataGridView implementation
20840         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
20841         * DataGridViewSelectionMode.cs: DataGridView implementation
20842         * IDataGridViewEditingControl.cs: DataGridView implementation
20843         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
20844         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
20845         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
20846         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
20847         * DataGridViewColumnSortMode.cs: DataGridView implementation
20848         * DataGridView.cs: DataGridView implementation
20849         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
20850         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
20851         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
20852         * Padding.cs: DataGridView implementation
20853         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
20854         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
20855         * DataGridViewRowEventHandler.cs: DataGridView implementation
20856         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
20857         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
20858         * DataGridViewButtonCell.cs: DataGridView implementation
20859         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
20860         * DataGridViewEditMode.cs: DataGridView implementation
20861         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
20862         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
20863         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
20864         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
20865         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
20866         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
20867         * DataGridViewCellEventHandler.cs: DataGridView implementation
20868         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
20869         * DataGridViewCellStyleConverter.cs: DataGridView implementation
20870         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
20871         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
20872         * DataGridViewColumnEventArgs.cs: DataGridView implementation
20873         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
20874         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
20875         * QuestionEventArgs.cs: DataGridView implementation
20876         * IDataGridViewEditingCell.cs: DataGridView implementation
20877         * DataGridViewTriState.cs: DataGridView implementation
20878         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
20879         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
20880         * DataGridViewColumnCollection.cs: DataGridView implementation
20881         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
20882         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
20883         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
20884         * DataGridViewColumn.cs: DataGridView implementation
20885         * DataGridViewCellBorderStyle.cs: DataGridView implementation
20886         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
20887         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
20888         * DataGridViewRow.cs: DataGridView implementation
20889         * DataGridViewImageCellLayout.cs: DataGridView implementation
20890         * DataGridViewImageCell.cs: DataGridView implementation
20891         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
20892         * DataGridViewCheckBoxCell.cs: DataGridView implementation
20893         * DataGridViewHeaderCell.cs: DataGridView implementation
20894         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
20895         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
20896         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
20897         * DataGridViewTextBoxColumn.cs: DataGridView implementation
20898         * QuestionEventHandler.cs: DataGridView implementation
20899         * DataGridViewCellStyleScopes.cs: DataGridView implementation
20900         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
20901         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
20902         * DataGridViewCell.cs: DataGridView implementation
20903         * DataGridViewCellEventArgs.cs: DataGridView implementation
20904         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
20905         * DataGridViewCellStyle.cs: DataGridView implementation
20906         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
20907         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
20908         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
20909         * TextFormatFlags.cs: DataGridView implementation
20910         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
20911         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
20912         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
20913         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
20914         * DataGridViewButtonColumn.cs: DataGridView implementation
20915         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
20916         * HandledMouseEventArgs.cs: DataGridView implementation
20917         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
20918         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
20919         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
20920         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
20921         * DataGridViewRowCollection.cs: DataGridView implementation
20922         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
20923         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
20924         * DataGridViewHitTestType.cs: DataGridView implementation
20925         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
20926         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
20927         * DataGridViewColumnEventHandler.cs: DataGridView implementation
20928         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
20929         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
20930         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
20931         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
20932         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
20933         * DataGridViewContentAlignment.cs: DataGridView implementation
20934         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
20935         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
20936         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
20937         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
20938         * DataGridViewPaintParts.cs: DataGridView implementation
20939         * DataGridViewCellCollection.cs: DataGridView implementation
20940         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
20941         * DataGridViewImageColumn.cs: DataGridView implementation
20942         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
20943         * DataGridViewElementStates.cs: DataGridView implementation
20944         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
20945         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
20946         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
20947         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
20948         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
20949         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
20950         * DataGridViewRowHeaderCell.cs: DataGridView implementation
20951         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
20952         * DataGridViewTextBoxCell.cs: DataGridView implementation
20953         * DataGridViewBand.cs: DataGridView implementation
20954         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
20955         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
20956         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
20957         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
20958         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
20959         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
20960         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
20961         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
20962         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
20963         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
20964         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
20965
20966 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
20967
20968         * ThemeWin32Classic.cs: 
20969           - Draw the outside focus rectangle around buttons
20970           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
20971             doesn't use end caps for every dash of a line anymore. This
20972             workaround ignores the forecolor.
20973
20974 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
20975
20976         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
20977           endian safe.
20978
20979 2005-11-07  Jackson Harper  <jackson@ximian.com>
20980
20981         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
20982
20983 2005-11-07  Jackson Harper  <jackson@ximian.com>
20984
20985         * ScrollableControl.cs: Calculate the maximum and change vars
20986         (more) correctly so that scrollbars appear as a sensible size.
20987
20988 2005-11-04  Jackson Harper  <jackson@ximian.com>
20989
20990         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
20991         collection.
20992         * TreeView.cs: When the tree is sorted null out the top_node so
20993         that it is recalculated.
20994         - Use dotted lines instead of dashed lines to match MS better.
20995
20996 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
20997
20998         * ListView.cs: 
20999           - Implements key search for items. Useful when browsing files with FileDialog
21000           - When changing view mode or when clear the items reset scrollbar positions
21001
21002 2005-11-04  Jackson Harper  <jackson@ximian.com>
21003
21004         * CurrencyManager.cs: Implement the MetaDataChanged event, the
21005         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
21006         as to what the method may do as there is no real way of creating a
21007         derived CurrencyManager and calling the method. 
21008
21009 2005-11-03  Jackson Harper  <jackson@ximian.com>
21010
21011         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
21012         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
21013         method which seems to just be used internally to refresh the tabs.
21014
21015 2005-11-03  Jackson Harper  <jackson@ximian.com>
21016
21017         * TabControl.cs: Implement the remove method. Fix some broken
21018         comments.
21019
21020 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
21021
21022         * DateTimePicker.cs:
21023           - Added missing DateTimePickerAccessibleObject class
21024           - Added missing events
21025           - Added OnFontChanged method
21026         * Form.cs: Added missing attributes
21027         * TreeView.cs: Added missing attributes
21028
21029 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
21030
21031         * GridItemCollection.cs: Fix signatures
21032
21033 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
21034
21035         * XplatUI.cs: Updated build rev/date
21036         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
21037           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
21038         * Application.cs: Trigger context-specific ExitThread events
21039
21040 2005-11-03  Jackson Harper  <jackson@ximian.com>
21041
21042         * Menu.cs:
21043         * MainMenu.cs:
21044         * GridTableStylesCollection.cs:
21045         * Timer.cs:
21046         * TabPage.cs:
21047         * HelpProvider.cs:
21048         * StatusBar.cs:
21049         * MonthCalendar.cs: Signature fixes
21050
21051 2005-11-03  Jackson Harper  <jackson@ximian.com>
21052
21053         * TreeNodeCollection.cs: Remove should not be virtual.
21054         * TreeView.cs: Implement the last of the missing methods.
21055
21056 2005-11-03  Jackson Harper  <jackson@ximian.com>
21057
21058         * TreeNodeConverter.cs: Implement to get off my class-status back.
21059
21060 2005-11-03  Jackson Harper  <jackson@ximian.com>
21061
21062         * TreeView.cs: Hookup the bits for drag and drop.
21063         * TreeNode.cs: Don't cache the tree_view or index anymore, now
21064         that nodes can be moved from tree to tree easily this just causes
21065         all sorts of problems.
21066         * TreeNodeCollection: Don't need to give treenodes an index and
21067         treeview anymore when they are added, these are computed on the
21068         fly. Also make sure to remove a node before its added.
21069
21070 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
21071
21072         * TextControl.cs:
21073           - Added CaretSelection enum
21074           - Added comparison methods to Marker struct, makes selection code
21075             more readable
21076           - Added SelectionStart and SelectionEnd as 'moveable' location for
21077             the CaretDirection enum and handler
21078           - Added selection_prev variable to track optimized invalidation for
21079             word and line selection
21080           - Added SelectionVisible property (returns true if there is a valid 
21081             selection)
21082           - Switched CaretHasFocus to only display the caret if there is no
21083             visible selection
21084           - Avoiding StringBuilder.ToString to retrieve a single char, instead
21085             using the direct character index; should be much faster
21086           - Added various conditional debug statements
21087           - Fixed invalidation calculation for selection ranges
21088           - Added ExpandSelection() method to support word and line selection
21089           - Switched SetSelectionToCaret to use new Marker compare overloads
21090           - Added central IsWordSeparator() method to determine word 
21091             separators/whitespace and FindWordSeparator() to streamline common
21092             usage of IsWordSeparator()
21093         * TextBoxBase.cs:
21094           - Removed unneeded grabbed variable, it was just mirroring
21095             Control.Capture
21096           - No longer firing OnTextChanged event when Text setter is called,
21097             since the base will fire the event for us
21098           - Added handling of Ctrl-Up/Down selection
21099           - Added handling of Shift-Cursorkey selection
21100           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
21101             words
21102           - Added handling of Shift and Ctrl-Shift-Home/End selection
21103           - Removed some debug output
21104           - Added handling for single/double/tripple-click to place caret/
21105             select word/select line respectively (Fixes bug #76031)
21106           - Added support for drag expansion of word/line selection
21107         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
21108           current selection
21109
21110 2005-11-02  Jackson Harper  <jackson@ximian.com>
21111
21112         * X11Dnd.cs: If the drag is going to and from a MWF window just
21113         copy the data instead of sending it out through the X Selection
21114         mechanism.
21115
21116 2005-11-02  Jackson Harper  <jackson@ximian.com>
21117
21118         * X11Dnd.cs:
21119         * XplatUIX11.cs: When in a drag we don't want motion notify
21120         messages to get passed on to the other controls. This prevents
21121         mouse move messages from showing up in the drag source.
21122
21123 2005-11-02  Jackson Harper  <jackson@ximian.com>
21124
21125         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
21126         the correct button is release to end a drag.
21127         * XplatUIX11.cs: Make the button state internal so the drag system
21128         can access it.  Dragging needs to know about all button releases,
21129         not just left button.
21130
21131 2005-11-02  Miguel de Icaza  <miguel@novell.com>
21132
21133         * Form.cs (Icon): If the icon is null, reset the icon to the
21134         default value. 
21135
21136         * Cursor.cs: When writing the AND-mask bitmap do not include the
21137         number of colors, but hardcode those to two (black and white),
21138         fixes the loading of color cursors (Paint Dot Net).
21139
21140         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
21141         turn off autoscaling.
21142
21143         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
21144
21145 2005-11-02  Jackson Harper  <jackson@ximian.com>
21146
21147         * X11Dnd.cs: Make sure to send a status message if the pointer
21148         enters a control that can not accept a drop, otherwise the cursor
21149         isn't updated correctly. Also tried to compress the lines of code
21150         a bit.
21151
21152 2005-11-02  Jackson Harper  <jackson@ximian.com>
21153
21154         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
21155         set actions correctly.  This isn't perfect as XDND and win32 have
21156         some differences on how you allow actions. I'll clear this up by
21157         adding a path for drag from MWF to MWF windows.
21158         * XplatUIX11.cs: Hook into the dnd system.
21159
21160 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
21161
21162         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
21163         previously shown but they are no longer need it. Very obvious when 
21164         browsing files with FileDialog.
21165
21166 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
21167
21168         * Control.cs: We always need to call OnPaintBackground. We pretty much
21169           ignore AllPaintingInWmPaint and always do the painting there, whether 
21170           it's set or not, since we always ignore the WM_ERASEBKGND message 
21171           (which we don't generate on X11). This fixes #76616.
21172         * Panel.cs: Removed unneeded background painting. This happens properly
21173           in Control.cs already
21174
21175 2005-10-31  Mike Kestner  <mkestner@novell.com>
21176
21177         * Menu.cs: Add items to collection before setting their index.
21178         * MenuItem.cs : add range checking with ArgumentException like MS.
21179         [Fixes #76510]
21180
21181 2005-10-31  Jackson Harper  <jackson@ximian.com>
21182
21183         * ListBox.cs: Invalidate if the area is visible at all not just
21184         contained in the visible rect. Fixes unselection of semi visible
21185         items.
21186
21187 2005-10-31  Jackson Harper  <jackson@ximian.com>
21188
21189         * Control.cs: Consistently name the dnd methods. Make them
21190         internal so we can override them to match some MS behavoir
21191         internally.
21192         * Win32DnD.cs: Use the new consistent names.
21193
21194 2005-10-31  Jackson Harper  <jackson@ximian.com>
21195
21196         * TreeView.cs: Don't draw the selected node when we lose focus.
21197
21198 2005-10-31  Jackson Harper  <jackson@ximian.com>
21199
21200         * X11Dnd.cs: We still need to reset the state even though a full
21201         reset isn't being done, otherwise status's still get sent all over
21202         the place.
21203
21204 2005-10-31  Jackson Harper  <jackson@ximian.com>
21205
21206         * Control.cs: Make the dnd_aware flag internal so the dnd
21207         subsystem can check it. Catch exceptions thrown in dnd handlers to
21208         match MS behavoir.
21209         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
21210         * X11Dnd.cs: Handle null data in the converters. Set the XDND
21211         version when sending a XdndEnter. Use the control/hwnd dnd_aware
21212         flags to reduce the number of dnd enters/status's sent.
21213
21214 2005-10-31  Jackson Harper  <jackson@ximian.com>
21215
21216         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
21217
21218 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
21219
21220         * PictureBox.cs: Fixes 76512
21221
21222 2005-10-28  Jackson Harper  <jackson@ximian.com>
21223
21224         * X11Dnd.cs: Early implementation to support winforms being a drag
21225         source for data on X11. Also restructured the converters so they
21226         can go both ways now.
21227         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
21228         
21229 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
21230
21231         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
21232           clipboard requests
21233
21234 2005-10-27  Jackson Harper  <jackson@ximian.com>
21235
21236         * TreeNode.cs: Implement serialization so my DnD examples will work.
21237
21238 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
21239
21240         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
21241           TreeView.cs: Don't dispose objects that are not owned.
21242           
21243 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
21244
21245         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
21246           should retrieve the current cursor and report that, but XplatUI
21247           doesn't (yet) have an interface for that (and I'm not sure I even
21248           can, on X11)
21249         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
21250           until any message loop processing is done (and the WM_SETCURSOR
21251           replaces the cursor to the proper one)
21252         * XplatUIX11.cs: 
21253           - Fixed override behaviour, we can't set the cursor globally on X11, 
21254             just for our windows.
21255           - Invalidating the System.Drawing X11 display handle when we are
21256             shutting down
21257         * Control.cs: Fix to make csc happy
21258
21259 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
21260
21261         * TextBoxBase.cs: 
21262           - get_Text: Add last line (without trailing newline) to returned
21263             value (Fixes 76212)
21264           - get_TextLength: Count last line in returned length
21265           - ToString: Call Text property instead of duplicating code
21266
21267 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
21268
21269         * ImageList.cs: Dispose ImageAttributes objects.
21270
21271 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
21272
21273         * ImageList.cs: Use attribute constructors with less arguments where
21274           possible.
21275
21276 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
21277
21278         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
21279           Use typeof instead of strings when assembly is referenced. Added
21280           some more comments.
21281
21282 2005-10-21  Jackson Harper  <jackson@ximian.com>
21283
21284         * ListView.cs: Raise a double click event. Also tried to somewhat
21285         fix when the selectedindexchanged event is raised. Its still
21286         broken though.
21287
21288 2005-10-21  Jackson Harper  <jackson@ximian.com>
21289
21290         * TreeView.cs: New method to invalidate the plus minus area of a
21291         node without invalidating the whole node (maybe this can be used
21292         in some more places).
21293         * TreeNodeCollection.cs: When adding to an empty node we need to
21294         invalidate its plus minus area so the little block shows up.
21295         
21296 2005-10-21  Jackson Harper  <jackson@ximian.com>
21297
21298         * TreeView.cs: Make sure that when we invalidate a node the bounds
21299         are big enough to cover the selected box and the focus
21300         rectangle. Use a different colour for the lines connecting nodes
21301         so they show up with all themes.
21302
21303 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
21304
21305         * NativeWindow.cs: Don't call anything that could call into the driver,
21306           we might be on a different thread.
21307
21308 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
21309
21310         * Control.cs(Dispose): Since Dispose might run on a different thread,
21311           make sure that we call methods that could call into the driver via
21312           invoke, to avoid thread issues
21313
21314 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
21315
21316         * XplatUI.cs: Removed finalizer
21317         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
21318           not allowing to be called on the finalizer thread.
21319
21320 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
21321
21322         * ImageList.cs:
21323           - Reverted r51889 and r51891.
21324           - Added ImageListItem class that stores unmodified image items and image
21325             properties required to create list images until handle is created.
21326           - Added AddItem and moved image creation logic to AddItemInternal.
21327           - Added CreateHandle method that creates images based on unmodified items.
21328           - Added DestroyHandle that changes state to store unmodified items.
21329           - Add and AddStrip methods no more create handle.
21330           - ReduceColorDepth has no return value.
21331           - Dispose destroys handle.
21332           - Modified other methods to reflect the above changes.
21333           - Implemented key support.
21334           - Added profile 2.0 members and attributes.
21335           - Added private Reset and ShouldSerialize methods that provide the same
21336             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
21337             them as they are private.
21338           - Added some more comments about implementation details.
21339
21340 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
21341
21342         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
21343
21344 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
21345
21346         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
21347
21348 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
21349
21350         * DataGridDrawingLogic.cs: Fixes column hit calcultation
21351         * DataGridColumnStyle.cs: Remove debug message
21352
21353 2005-10-20  Jackson Harper  <jackson@ximian.com>
21354
21355         * TreeView.cs: We can always get input keys regardless of whether
21356         or not editing is enabled. They are used for navigation.
21357
21358 2005-10-20  Jackson Harper  <jackson@ximian.com>
21359
21360         * TreeNode.cs: Use the viewport rect for determining if a node
21361         needs to be moved for visibility. Don't use Begin/End edit. This
21362         calls a full refresh when its done.
21363         * TreeView.cs: New SetBottom works correctly.  Make the viewport
21364         rect property internal so the treenodes can see it. When clicking
21365         on a node we need to ensure that its visible because it might just
21366         be partly visible when clicked.
21367
21368 2005-10-20  Jackson Harper  <jackson@ximian.com>
21369
21370         * TreeNodeCollection.cs: Remove debug code.
21371
21372 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
21373
21374         * Datagrid.cs: Implements column sorting in Datagrid
21375         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
21376
21377 2005-10-20  Jackson Harper  <jackson@ximian.com>
21378
21379         * TreeNodeCollection.cs: Remove items properly. Update the correct
21380         area after removing them.
21381
21382 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
21383
21384         * Datagrid.cs: Should not call base.OnPaintBackground
21385
21386 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
21387
21388         * XplatUIX11.cs (GetMessage):
21389           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
21390             window instead of client window
21391           - Now properly calculates NC_xBUTTONUP message coordinates
21392           - ScreenToMenu now properly calculates it's coordinates of whole 
21393             window, since menus are in the whole window, not in the client
21394             window
21395           - Added WholeToScreen coordinate translation method
21396
21397 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
21398
21399         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
21400           want to return a message, loop back to the beginning of the function
21401           and grab the next real message to process instead.
21402
21403 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
21404
21405         * Splitter.cs: Properly set limits if no filler control is used
21406
21407 2005-10-19  Jackson Harper  <jackson@ximian.com>
21408
21409         * ColorDialog.cs: Don't show the help button if it is not enabled
21410         instead of disabling it (this is what MS does). Don't create the
21411         panel until the dialog is run, otherwise the vars (such as
21412         ShowHelp) are not set yet.
21413
21414 2005-10-19  Jackson Harper  <jackson@ximian.com>
21415
21416         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
21417         are reduced when adding nodes.
21418         * TreeNode.cs:
21419         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
21420         tree.
21421         
21422 2005-10-19  Jackson Harper  <jackson@ximian.com>
21423
21424         * FolderBrowserDialog.cs: End editing our treeview so the window
21425         actually gets refreshed.
21426
21427 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
21428
21429         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
21430           Obsoleted handling of WM_ERASEBKGND, now always draws our background
21431           inside of WM_PAINT
21432
21433 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
21434
21435         * MenuAPI.cs: Returns after Hidding window
21436         * XplatUIX11.cs: Added TODO found while debugging menu issues
21437
21438 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
21439
21440         * XplatUIX11.cs: Do not re-map the whole window when it's size
21441           becomes non-zero unless it's supposed to be actually visible
21442
21443 2005-10-18  Jackson Harper  <jackson@ximian.com>
21444
21445         * TreeView.cs: We don't need to keep a count anymore.
21446         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
21447         use the Grow method.
21448
21449 2005-10-18  Jackson Harper  <jackson@ximian.com>
21450
21451         * TreeNodeCollection.cs: Insert is not supported on arrays, so
21452         implement it manually here.
21453
21454 2005-10-18  Jackson Harper  <jackson@ximian.com>
21455
21456         * ImageList.cs: Dont kill the list when the colour depth is
21457         changed, just change the colour depth of all the images.
21458         - Same goes for setting the image size. Just resize them all
21459         instead of killing the list softly.
21460
21461 2005-10-18  Jackson Harper  <jackson@ximian.com>
21462
21463         * Control.cs: Don't invalidate empty rectangles.
21464
21465 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
21466
21467         * ListViewItem.cs:
21468           - Adds checked item to the Checked/Item lists (where empty before)
21469           - Do not add items to the Selected lists if they are already present
21470         * ListView.cs:
21471           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
21472           - When deleting items make sure that we delete them for the Selected
21473           and Checked list also.
21474
21475 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
21476
21477         * Label.cs: Dispose objects no longer used
21478         * ThemeWin32Classic.cs: Dispose objects no longer used
21479
21480 2005-10-18  Jackson Harper  <jackson@ximian.com>
21481
21482         * TabControl.cs: Don't refresh the whole control when the tabs are
21483         scrolled, we just need to refresh the tab area.
21484
21485 2005-10-17  Jackson Harper  <jackson@ximian.com>
21486
21487         * XplatUIX11.cs: Compress code a little bit. Only calculate the
21488         after handle when we need it.
21489
21490 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
21491
21492         * Control.cs: When the parent size changes, recalculate anchor 
21493           positions. Partial fix for #76462
21494
21495 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
21496
21497         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
21498           drawn. Fixes #76462
21499
21500 2005-10-17  Jackson Harper  <jackson@ximian.com>
21501
21502         * MonthCalendar.cs: Don't create the numeric up down until our
21503         handle is created. Otherwise our handle is created in the
21504         constructor and we don't know if we are a WS_CHILD or WS_POPUP
21505         yet.
21506
21507 2005-10-17  Jackson Harper  <jackson@ximian.com>
21508
21509         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
21510         correctly.
21511
21512 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
21513         * TreeNode.cs : small logical fix (was using local var instead of field)
21514         
21515 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
21516
21517         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
21518
21519 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
21520
21521         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
21522
21523 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
21524
21525         * Control.cs: 
21526           - Re-implemented anchoring code. My first version was really broken.
21527             This fixes bug #76033. Unlike the previous implementation we will
21528             no longer have round errors since all numbers are calculated from
21529             scratch every time. Removed various anchor-related obsolete vars.
21530           - InitLayout no longer causes layout event firing and layout to be 
21531             performed
21532
21533 2005-10-16  Jackson Harper  <jackson@ximian.com>
21534
21535         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
21536         which was broken).
21537
21538 2005-10-16  Jackson Harper  <jackson@ximian.com>
21539
21540         * TabControl.cs: Remove debug code.
21541
21542 2005-10-16  Jackson Harper  <jackson@ximian.com>
21543
21544         * XEventQueue.cs: Increase the default queue size (very simple
21545         apps needed to grow the queue).
21546         * Hwnd.cs: No finalizer so we don't need to suppress
21547         finalization. Compute the invalid area manually so a new rectangle
21548         does not newto be created.
21549         * ScrollableControl.cs: Don't set any params (otherwise visibility
21550         isn't set correctly).
21551         * MdiChildContext.cs: New constructor takes the mdi parent so it
21552         doesn't have to be computed and avoids a crash on windows. Draw
21553         the window icon properly, and allow the text to be seen.
21554         * Form.cs: Use new MdiChildContext constructor. Make sure the
21555         child context isn't null in wndproc.
21556         * TabControl.cs: Don't set focus, this is muddling keyboard
21557         behavoir. Expand the tab rows when a window size increase will
21558         allow extra tabs to be seen. Don't allow tabs smaller than the
21559         width of a window to be scrolled out of view.
21560         * TreeNode.cs:
21561         * TreeView.cs: Use measure string to calculate a nodes width, the
21562         width is cached and only updated when the text or the font is
21563         changed. Don't check for expand/collapse clicks on the first level
21564         nodes if root lines are disabled.
21565         
21566 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
21567
21568         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
21569
21570 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
21571
21572         * DataGridBoolColumn.cs: fixes warning
21573
21574 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
21575
21576         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
21577         to match more to match more precisely the MS Net behavior
21578
21579 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
21580
21581         * Hwnd.cs: Added field to track if window is mapped
21582         * XplatUIX11.cs: 
21583           - Unmap windows if they become 0-size, re-map when 
21584             they are >0 again; fixes #76035
21585           - Re-set our error handler after initializing X11Desktop
21586             to override any error handlers Gtk or whatever was called
21587             may have set.
21588
21589 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
21590
21591         * CheckedListBox.cs: Removed unused vars
21592         * ListView.cs: Fixed signatures
21593         * RichTextBox.cs: Removed unused vars
21594         * TextBoxBase.cs: Removed unused vars
21595         * XplatUIWin32.cs: Removed unused vars
21596         * XplatUIX11.cs: Removed unused vars
21597         * XplatUI.cs: Updated version and date to latest published
21598
21599 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
21600
21601         * Cursor.cs: Added private .ctor to work around a bug in
21602           resourceset (Thanks to Geoff Norton for the help on this)
21603         * SplitterEventArgs.cs: Made fields accessible so we don't
21604           waste boatloads of objects and can reuse the same one
21605           in Splitter
21606         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
21607           any captions and borders when generating screen coordinates
21608         * Splitter.cs: Reimplemented control, now fully complete, uses
21609           rubberband drawing, supports and obeys all properties, has
21610           proper cursors
21611
21612 2005-10-13  Miguel de Icaza  <miguel@novell.com>
21613
21614         * Form.cs (Form): Setup default values for autoscale and
21615         autoscale_base_size;  Make these instance variables, not static
21616         variables. 
21617
21618         (OnLoad): on the first load, adjust the size of the form.
21619
21620 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
21621
21622         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
21623           width argument to DrawReversibleRectangle()
21624         * XplatUIWin32.cs, XplatUIX11.cs: 
21625           - Implemented width for DrawReversibleRectangle()
21626           - Added logic to DrawReversibleRectangle that recognizes a zero
21627             width or height and only draws a line in that situation
21628         
21629 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
21630
21631         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
21632         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
21633         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
21634           method (it uses our FosterParent window to get a graphics context)
21635
21636 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
21637
21638         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
21639           and SetWindowBackground methods
21640         * Control.cs:
21641           - Setting proper ControlStyles
21642           - We no longer call XplatUI.SetWindowBackground and XplatUI.
21643             EraseWindowBackground, instead we draw the window background
21644             ourselves in PaintControlBackground. This behaviour is
21645             required to match MS, where, when OnPaintBackground is not
21646             called, the background is not drawn.
21647           - Removed unneeded Refresh() in set_Text
21648         * Hwnd.cs: Dropped the ErasePending support. No longer needed
21649         * XplatUIX11.cs:
21650           - Created DeriveStyles method to translate from CreateParams to
21651             FormBorderStyle and TitleStyle, also handles BorderStyle (which
21652             matches FormBorderStyle enum values)
21653           - Consolidated SetHwndStyles and CalculateWindowRect border/title
21654             style calculations into single DeriveStyles method
21655           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
21656             from redrawing the whole window on any resize or expose.
21657           - Fixed CreateWindow usage of SetWindowValuemask. Before not
21658             all styles were applied to our whole/client window appropriately
21659           - Removed EraseWindowBackground() and SetWindowBackground() methods
21660           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
21661             no longer clear/redraw the background through X
21662           - Removed handling of erase_pending bit, we have no use for it (or
21663             so it seems)
21664         * XplatUIOSX.cs:
21665           - Removed generation and handling of WM_ERASEBKGND message
21666           - Removed EraseWindowBackground() and SetWindowBackground() methods
21667           - Removed handling of hwnd.ErasePending flag
21668         * XplatUIWin32.cs:
21669           - Removed EraseWindowBackground() and SetWindowBackground() methods
21670           - We no longer call EraseWindowBackground on PaintEventStart, we 
21671             ignore the fErase flag, erasing is handled in Control in the
21672             background handler
21673         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
21674           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
21675           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
21676           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
21677           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
21678           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
21679           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
21680
21681 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
21682
21683         * PropertyGrids.cs: Get sub properties
21684         * PropertyGridView.cs: Fix drawing code
21685
21686 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
21687
21688         * ListBox.cs: Fixes 76383
21689
21690 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
21691
21692         * DataGridTextBoxColumn.cs: Sets location and size before attachment
21693         * ThemeWin32Classic.cs: Fixes border drawing and calculations
21694         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
21695
21696
21697 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
21698
21699         * ComboBox.cs: Fixes border drawing
21700
21701 2005-10-10  Miguel de Icaza  <miguel@novell.com>
21702
21703         * MimeIcon.cs: Ignore errors if the file can not be read.
21704
21705 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
21706
21707         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
21708          - Fixed border calculations
21709          - Fixed horizontal scrolling in single column listboxes
21710          - Fixed drawing issues
21711
21712 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
21713
21714         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
21715           FormBorderStyle enum
21716         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
21717           code to determine FormBorderStyles from CreateParams
21718         * Form.cs:
21719           - Fixed bug where we'd set the wrong window styles if we were
21720             not creating an MDI window
21721           - Added call to XplatUI.SetBorderStyle when form borders are set
21722         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
21723         * Hwnd.cs:
21724           - Removed obsolete edge style
21725           - Switched from BorderStyle to FormBorderStyle
21726         
21727 2005-10-10  Jackson Harper  <jackson@ximian.com>
21728
21729         * Form.cs: Use the property to get the window handle instead of
21730         accessing it directly. Prevents a null reference exception.
21731
21732 2005-10-10  Jackson Harper  <jackson@ximian.com>
21733
21734         * TreeView.cs: Don't adjust the rect given to DrawString now that
21735         our libgdiplus draws correctly.
21736
21737 2005-10-08  Jackson Harper  <jackson@ximian.com>
21738
21739         * TreeView.cs: Don't try to find the clicked on node if there are
21740         no nodes in the tree.
21741
21742 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
21743
21744         * RichTextBox.cs:
21745
21746           restore
21747
21748 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
21749
21750         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
21751           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
21752           ErrorProvider.cs:
21753           Use ResPool for brushes and dispose System.Drawing objects that
21754           are not used anymore.
21755
21756 2005-10-07  Jackson Harper  <jackson@ximian.com>
21757
21758         * MdiChildContext.cs: Use the new borders instead of drawing them
21759         ourselves.
21760
21761 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
21762
21763         * Calling UpdateBounds after changing the window's BorderStyle 
21764         since the style can change the ClientSize
21765
21766 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
21767
21768         * Control.cs: Made PaintControlBackground virtual
21769         * Panel.cs: Overriding PaintControlBackground instead of using paint
21770           event; paint event method was interfering with 'real' users of the
21771           event.
21772
21773 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
21774
21775         * ThemeWin32Classic.cs: remove border drawing since it is handled
21776         by the base control class now and was causing double border drawing.
21777
21778 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
21779
21780         * Panel.cs: Redraw our background on paint. Not a pretty solution,
21781           but it does seem to match MS behaviour. This fixes bug #75324
21782
21783 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
21784
21785         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
21786           somewhat hackish looking
21787
21788 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
21789
21790         * TextBoxBase.cs:
21791           - We now accept Enter even if AcceptEnter is false, if the containing
21792             form does not have an AcceptButton configured (fixes bug #76355)
21793           - Calculations are now fixed to no longer use Width/Height, but
21794             ClientSize.Width/Height, since we now support borders (this was
21795             a result of fixing borders and therefore bug #76166)
21796           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
21797             true (fixes bug #76354)
21798         
21799 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
21800
21801         * Control.cs: 
21802           - Defaulting BorderStyle and setting it in XplatUI when our window 
21803             is created
21804           - Added enum check to InternalBorderStyle setter
21805         * XplatUIX11.cs: 
21806           - Added drawing of window borders
21807           - Now properly calculates WM decorations offset for toplevel 
21808             windows (fixes bug #74763)
21809         * XplatUIWin32.cs: 
21810           - Implemented BorderStyles for windows (we're letting win32 draw 
21811             the border for us)
21812           - Fixed the signature for SetWindowLong
21813         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
21814           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
21815           setting borders
21816         * UpDownBase.cs: Remove drawing of borders, this is handled by
21817           the driver, outside the client area
21818         * ListView.cs: Removed bogus border calculations. The control should
21819           be oblivious to borders, since those are not part of the client
21820           area. 
21821         * X11DesktopColors.cs: Commented out (currently) unneeded variables
21822         * ThemeWin32Classic.cs: Removed border calculations from ListView 
21823           drawing code
21824
21825 2005-10-06  Jackson Harper  <jackson@ximian.com>
21826
21827         * MdiChildContext.cs: Clear out the old virtual position remove
21828         all the unneeded calls to CreateGraphics.
21829
21830 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
21831
21832         * TextControl.cs: Use proper color for highlighted text; fixes #76350
21833
21834 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
21835
21836         * Form.cs: 
21837           - Added loading and setting of our new default icon
21838           - Only set icon if window is already created
21839
21840 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
21841
21842         * Label.cs:
21843           - Do not explicitly set the foreground and background colors, to
21844             allow inheriting from parents (fixes #76302)
21845           - Use Control's InternalBorderStyle property to deal with borders
21846
21847 2005-10-06  Jackson Harper  <jackson@ximian.com>
21848
21849         * MdiChildContext.cs: Use the new xplatui function to draw a
21850         reversible rect.
21851
21852 2005-10-06  Jackson Harper  <jackson@ximian.com>
21853
21854         * Form.cs: Add the parent before creating the child context cause
21855         we need the parent when setting up the child.
21856
21857 2005-10-06  Jackson Harper  <jackson@ximian.com>
21858
21859         * FolderBrowserDialog.cs: redo the tree population code so a
21860         second thread isn't used. Should be a lot faster and more stable
21861         now.
21862
21863 2005-10-05  Jackson Harper  <jackson@ximian.com>
21864
21865         * TreeView.cs: There are no expand/collapse boxes if the node has
21866         no children.
21867
21868 2005-10-05  Jackson Harper  <jackson@ximian.com>
21869
21870         * X11DesktopColors.cs: Get menu colours for the gtk theme.
21871
21872 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
21873
21874         * FileDialog.cs: Fix InitialDirectory
21875
21876 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
21877
21878         * ComboBox.cs:
21879                 - Fixes changing between styles
21880                 - Fixes simple mode
21881                 - Fixes last item crashing when navigating with keyboard
21882
21883 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
21884
21885         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
21886
21887 2005-10-05  Jackson Harper  <jackson@ximian.com>
21888
21889         * TreeView.cs: If updating the root node do a full refresh.
21890         * TreeNode.cs: The root node should be expanded by default. Also
21891         added a utility prop to tell if we are the root node.
21892         * TreeNodeCollection.cs: Only refresh if the node we are being
21893         added to is expanded. Also added a comment on a potential
21894         optimization.
21895         
21896 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
21897
21898         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
21899           in dispose method. Fixes #76330
21900
21901 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
21902
21903         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
21904
21905                 - Implements vertical and horizontal scrolling using XplatUI
21906                 - Fixes keyboard navagation
21907                 - Fixes EnsureVisible
21908                 - Drawing fixes
21909                 - Handles and draws focus properly
21910
21911
21912 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
21913
21914         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
21915           Create handle. NET_2_0: Destroy handle when value is null.
21916
21917 2005-10-03  Jackson Harper  <jackson@ximian.com>
21918
21919         * ScrollBar.cs: My last scrollbar patch was broken. This is a
21920         revert and a new patch to prevent the thumb from refreshing so
21921         much.
21922
21923 2005-10-02  Jackson Harper  <jackson@ximian.com>
21924
21925         * ScrollBar.cs: Don't update position if it hasn't actually
21926         changed. This occurs when you hold down the increment/decrement
21927         buttons and the thumb gets to the max/min.
21928
21929 2005-10-01  Jackson Harper  <jackson@ximian.com>
21930
21931         * Form.cs:
21932         * MdiChildContext.cs:
21933         * MdiClient.cs: Implement ActiveMdiChild in Form.
21934
21935 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
21936
21937         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
21938
21939 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
21940
21941         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
21942           be found
21943
21944 2005-09-30  Jackson Harper  <jackson@ximian.com>
21945
21946         * ListBox.cs: Don't do a full refresh unless some data has
21947         actually changed.
21948
21949 2005-09-30  Jackson Harper  <jackson@ximian.com>
21950
21951         * TreeView.cs: Make sure that the checkboxes size is factored in
21952         even when not visible.
21953
21954 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
21955
21956         * FileDialog.cs: Fix Jordi's build break
21957
21958 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
21959
21960         * FileDialog.cs: 
21961                 - Use standard the Windows colours for the combobox as espected
21962                 - Dispose objects that use resouces when no longer need them
21963
21964 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
21965
21966         * X11DesktopColors.cs: Initial incomplete implementation
21967         * XplatUIX11.cs: Added call to initialize X11DesktopColors
21968
21969 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
21970
21971         * Theme.cs: 
21972           - Switched Theme color names to match the names defined in 
21973             System.Drawing.KnownColors. Life's hard enough, no need to make 
21974             it harder.
21975           - Added setters to all theme color properties so themes can set
21976             their color schemes. The setters also propagate the color changes
21977             to System.Drawing.KnownColors via reflection
21978         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
21979           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
21980           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
21981           use the new, more logical theme color names
21982         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
21983           post-NT colors
21984         * ThemeWin32Classic.cs:
21985           - Removed code to set the old classic Windows colors. Instead it
21986             now relies on the colors returned by System.Drawing.KnownColors
21987             which will be either modern static colors (Unix) or colors
21988             read from the user's configuration (Win32)
21989           - Updated to use the new, more logical theme color names
21990           - Switched DataGrid drawing code to use only Theme colors instead of
21991             a mix of System.Drawing.KnownColors and Theme colors
21992           - DrawFrameControl(): Removed code that fills the button area, the
21993             fill would overwrite any previous fill done by a control. This
21994             fixes bug #75338 
21995           - Added DrawReversibleRectangle() stub
21996         * ScrollableControl.cs: Set visible state to false when scrollbars
21997           are removed (pdn fix)
21998         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
21999           DrawReversibleRectangle() method to allow drawing primitive 
22000           'rubber bands'
22001         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
22002
22003 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
22004
22005         * ImageList.cs: Add(Icon): Create handle.
22006
22007 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
22008
22009         * ListView.cs:
22010         * ThemeWin32Classic.cs:
22011                 - Fixes detail mode
22012                 - Sets clippings
22013                 - Issues with drawing
22014
22015 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
22016
22017         * ImageList.cs: Moved RecreateHandle back to ImageList as event
22018           source has to be the ImageList.
22019
22020 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
22021
22022         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
22023
22024 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
22025
22026         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
22027
22028 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
22029
22030         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
22031
22032 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
22033         * GridItem.cs: Fixed TODOs
22034         * GridItemCollection.cs: Added ICollection interface
22035
22036 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
22037
22038         * ImageList.cs: Resize icons when needed.
22039
22040 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
22041
22042         * ListViewItem.cs
22043                 - Fixes GetBounds and returns on screen rects
22044         * ListView.cs:
22045                 - Fixes vertical and horzintal scrolling of items
22046         * ThemeWin32Classic.cs:
22047                 - Fixes drawing
22048                 
22049 2005-09-29  Raja R Harinath  <harinath@gmail.com>
22050
22051         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
22052
22053 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
22054
22055         * ImageList.cs: Added comments about handle creation. Moved Handle,
22056           HandleCreated and OnRecreateHandle implementations to ImageCollection.
22057           Handle is created in Add methods.
22058
22059 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
22060          
22061         * DataGridDrawingLogic.cs: 
22062                 - Takes rows into account on Colum calculations
22063                 - Returns the column when clickig
22064         * DataGrid.cs:
22065                 - Fixes default HitTestInfo values
22066                 - Fixes HitTestInfo.ToString
22067                 - Fixes ResetBackColor          
22068         
22069 2005-09-28  Jackson Harper  <jackson@ximian.com>
22070
22071         * MdiChildContext.cs: Obey rules for fixed sized windows (no
22072         sizing or cursor changes). Also added some temp code to draw the
22073         titlebars text (Makes dev a little easier).
22074
22075 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
22076
22077         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
22078
22079 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
22080          
22081         * ListBox.cs: Fixes bug 76253
22082
22083 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
22084
22085         * ImageList.cs: Added comments about the current implementation. Added
22086           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
22087           Format32bppArgb to preserve transparency and can use Graphics.FromImage
22088           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
22089           with Bitmap.LockBits for better performance. Revised the whole file to
22090           match MS.NET behaviour and provide better performance. Non-public
22091           interface members are calling public members even when they throw
22092           NotSupportedException for better maintainability. Moved ColorDepth,
22093           ImageSize, ImageStream and TransparentColor implementations to
22094           ImageCollection for better performance as these properties are not used
22095           by ImageList.
22096         * ImageListStreamer.cs: Added a new internal constructor that takes an
22097           ImageList.ImageCollection and serializes Images based on
22098           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
22099           match ImageList property name.
22100
22101 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
22102
22103         * ListBox.cs: Fixes IndexFromPoint for last item
22104
22105 2005-09-27  Jackson Harper  <jackson@ximian.com>
22106
22107         * Form.cs: Set the position of new mdi children correctly.
22108
22109 2005-09-27  Jackson Harper  <jackson@ximian.com>
22110
22111         * MdiClient.cs: New mdi children need to be added to the back of
22112         the controls collection so the zorder is set correctly. Also add a
22113         count of all the child windows that have been created.
22114
22115 2005-09-27  Jackson Harper  <jackson@ximian.com>
22116
22117         * Form.cs (CreateParams): Setup MDI forms correctly.
22118
22119 2005-09-27  Jackson Harper  <jackson@ximian.com>
22120
22121         * MdiChildContext.cs:
22122         * MonthCalendar.cs:
22123         * UpDownBase.cs:
22124         * ListBox.cs:
22125         * ListView.cs:
22126         * TextBoxBase.cs:
22127         * TreeView.cs:
22128         * ScrollableControl.cs:
22129         * ComboBox.cs: Add implicit controls using the new implict control
22130         functionality in ControlCollection. Also try to block multiple
22131         control add in a suspend/resume layout to save some cycles.
22132         
22133 2005-09-27  Jackson Harper  <jackson@ximian.com>
22134
22135         * Control.cs: Add functionality to the controls collection to add
22136         'implicit controls' these are controls that are created by the
22137         containing control but should not be exposed to the user. Such as
22138         scrollbars in the treeview.
22139         * Form.cs: The list var of the ControlsCollection is no longer
22140         available because of the potential of implicit controls getting
22141         ignored by someone accessing the list directly.
22142
22143 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
22144
22145         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
22146           loose it's parent. (Fixed bug introduced in r49103 when we added
22147           setting the child parent to null on Remove)
22148
22149 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
22150
22151         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
22152         * Splitter.cs: Added missing attributes for BorderStyle property.
22153         * TextBoxBase.cs: Marked Calculate* methods internal.
22154         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
22155         MS.NET.
22156
22157 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
22158          
22159         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
22160
22161 2005-09-25  Jackson Harper  <jackson@ximian.com>
22162
22163         * TreeView.cs: Update the node bounds correctly regardless of
22164         whether the node is visible.
22165
22166 2005-09-25  Jackson Harper  <jackson@ximian.com>
22167
22168         * ImageList.cs: Don't dispose the image after it is added to the
22169         image list. Only reformat images that need to be resized.
22170
22171 2005-09-25  Jackson Harper  <jackson@ximian.com>
22172
22173         * ImageList.cs: Don't set the format when changing the image.
22174
22175 2005-09-25  Jackson Harper  <jackson@ximian.com>
22176
22177         * TreeView.cs: We can't just assume the node has a font. Use the
22178         treeviews font if no node font is available.
22179
22180 2005-09-25  Jackson Harper  <jackson@ximian.com>
22181
22182         * TreeView.cs: Allow the scrollbars to be reset with negative
22183         values.
22184         - Don't add scrollbars to negative sized windows.
22185
22186 2005-09-23  Jackson Harper  <jackson@ximian.com>
22187
22188         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
22189         old Mono.Posix. Also remove some stray code that shouldn't have
22190         been committed.
22191
22192 2005-09-23  Jackson Harper  <jackson@ximian.com>
22193
22194         * TreeView.cs: Attempt at proper sizing of the horizontal
22195         scrollbar. Also don't resize the scrollbars unless they are
22196         visible.
22197
22198 2005-09-23  Jackson Harper  <jackson@ximian.com>
22199
22200         * TreeView.cs: We don't need to expand the invalid area when the
22201         selection changes, as this is all drawn in the node's bounding
22202         box. The area needs to be expanded (previous typo was contracting
22203         it) when the focus rect moves.
22204
22205 2005-09-23  Jackson Harper  <jackson@ximian.com>
22206
22207         * TreeView.cs: Display the selection box under the correct
22208         circumstances. We were rendering white text with no selection box
22209         before.
22210
22211 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
22212
22213         * TextControl.cs(Split): Now updates selection start/end if it points 
22214           into a line that's being split. Fixes a FIXME and bug #75258
22215
22216 2005-09-23  Jackson Harper  <jackson@ximian.com>
22217
22218         * Binding.cs:
22219         * ListControl.cs: Don't use the path when retrieving binding
22220         managers from the binding context. My bat sense tells me that the
22221         path is only used on insertion.
22222
22223 2005-09-22  Jackson Harper  <jackson@ximian.com>
22224
22225         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
22226
22227 2005-09-22  Jackson Harper  <jackson@ximian.com>
22228
22229         * Splitter.cs: There are special cursors used for splitting.
22230         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
22231
22232 2005-09-22  Jackson Harper  <jackson@ximian.com>
22233
22234         * Splitter.cs: Change the cursor appropriately when the splitter
22235         is moused over, so the user actually knows there is a splitter
22236         there.
22237
22238 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
22239
22240        * Label.cs : Fix ToString method to give same output as MS.NET
22241
22242 2005-09-22  Jackson Harper  <jackson@ximian.com>
22243
22244         * TreeView.cs: Create the scrollbars when the handle is created
22245         and add them right away, just make them invisble. Also account for
22246         the window being shrunk vertically to the point that the vert
22247         scrollbar needs to be added.
22248         - Remove some 0.5 adjustments to get around anti aliasing issues.
22249         
22250 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
22251          
22252         * MainMenu.cs: Fixes default value
22253         * MenuItem.cs: Fixes default value
22254
22255 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
22256
22257         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
22258
22259 2005-09-21  Jackson Harper  <jackson@ximian.com>
22260
22261         * Control.cs: Don't try to set the border style on the window if
22262         it hasn't been created. When the window is created the border
22263         style will be used.
22264
22265 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
22266
22267         * Control.cs (Update): Don't call XplatUI if we don't have a
22268           window handle yet
22269
22270 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
22271
22272         * ContainerControl.cs: Instead of throwing an exception, print
22273           a one-time warning about Validate not being implemented
22274         * XplatUIWin32.cs: Removed debug output
22275
22276 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
22277
22278         * Control.cs: Only set XplatUI background if we expect the windowing
22279           system to handle the background. This stops controls that draw their
22280           own background from flickering
22281
22282         * XplatUIX11.cs: Support custom visuals and colormaps for window 
22283           creation. This allows, amongst other things, using MWF X11 windows 
22284           with OpenGL.
22285
22286 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
22287
22288         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
22289           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
22290           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
22291           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
22292           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
22293           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
22294           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
22295           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
22296           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
22297           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
22298           GridColumnStylesCollection.cs, 
22299           IDataGridColumnStyleEditingNotificationService.cs,
22300           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
22301           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
22302           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
22303           TreeNodeCollection.cs, AmbientProperties.cs, 
22304           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
22305           DataObject.cs, ErrorProvider.cs, Splitter.cs,
22306           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
22307           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
22308           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
22309           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
22310           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
22311           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
22312           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
22313           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
22314           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
22315           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
22316           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
22317           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
22318           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
22319           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
22320           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
22321           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
22322           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
22323           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
22324           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
22325           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
22326           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
22327           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
22328           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
22329           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
22330           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
22331           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
22332           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
22333           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
22334           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
22335           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
22336           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
22337           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
22338           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
22339           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
22340           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
22341
22342 2005-09-21  Jackson Harper  <jackson@ximian.com>
22343
22344         * TreeNode.cs: Call Before/After Expand not Collapse when
22345         expanding.
22346
22347 2005-09-20  Jackson Harper  <jackson@ximian.com>
22348         
22349         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
22350
22351 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
22352          
22353         * ListViewItem.cs:
22354                 - Fixes bug 76120
22355                 - Fixes proper storing of subitems
22356                 - Fixes not updated items
22357
22358 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
22359
22360         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
22361           things if our window handle isn't created yet. Also disabled 
22362           debug for TextBoxBase
22363
22364 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
22365
22366         * MenuAPI.cs: Remove filtering of events to allow menu usage
22367
22368 2005-09-20  Miguel de Icaza  <miguel@novell.com>
22369
22370         * Cursor.cs: Allow null to be passed to Cursor.Current.
22371
22372 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
22373
22374         * ThemeWin32Classic.cs:
22375           - Change some private methods/fields to protected virtual so that 
22376             they can be accessed and overriden in derived classes
22377           - First refactoring of some methods. Derived themes now don't 
22378             need to duplicate the complete code from ThemeWin32Classic
22379         * ThemeNice.cs:
22380           - Added nice StatusBar
22381           - Derive from ThemeWin32Classic and not Theme
22382           - Removed duplicate ThemeWin32Classic code
22383
22384 2005-09-20  Miguel de Icaza  <miguel@novell.com>
22385
22386         * Control.cs (ControlCollection.Add): If the value null is passed
22387         the control is ignored. 
22388
22389         Optimize this loop.
22390
22391 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
22392
22393         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
22394           PostQuitMessage state.
22395         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
22396
22397 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
22398
22399         * Application.cs: Our constructor will never get called, move 
22400           initialization to fields; fixes bug #75933
22401
22402 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
22403
22404         * FileDialog.cs :
22405                 - Allow files to be selected properly using file name
22406                 combo box.
22407                 - Add ability to change diretory (absolute / relative)
22408                 using file name combo box.
22409
22410 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
22411          
22412         * ListBox.cs: 
22413                 - Fixes Multicolumn listboxes item wrong calculations
22414                 - Allows to click when only one item is in the listbox
22415                 - Fixes crash when no items using keyboard navigation
22416
22417 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
22418
22419         * ComboBox.cs: Reverted almost everything from the latest patch which
22420           broke ComboBox
22421
22422 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
22423         
22424         * ToolTip.cs:
22425                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
22426         * ComboBox.cs:
22427                 - When DropDownStyle is Simple, it does not show scrollbar 
22428                 to the last item of the list.
22429                 - When DropDownStyle is Simple, it crashed when the list was 
22430                 scrolled down with the down cursor key.
22431                 - Fixed a bug that when DropDownStyle is DropDownList, the 
22432                 selected item was not shown.
22433                 - The position of the selected item was not preserved when 
22434                 the next dropdown happened.
22435         * ThemeWin32Classic.cs:
22436                 - Items were wrapped at the right end.
22437         * CheckedListBox.cs:
22438                 - Fixed Add method
22439         * ListBox.cs:
22440                 - Items should be fully shown.
22441                 - When resizing and vertical scrollbar disappeared, the item 
22442                 of index 0 should be on the top of the list.
22443                 - GetItemRectangle should consider the size of ver. scrollbar
22444         * StatusBar.cs:
22445                 - SizingGrip area should not be allocated when it is not 
22446                 displayed.
22447                 - Now it reflects MinWidth of the containing panel and 
22448                 fixed a crash that happens when its width becomes so small.
22449
22450 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
22451
22452         * CheckedListBox.cs: Fixes bug 76028
22453         * ListBox.cs: Fixes bug 76028
22454
22455 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
22456
22457         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
22458         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
22459
22460 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
22461
22462         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
22463
22464 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
22465
22466         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
22467
22468 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
22469
22470         * IRootGridEntry.cs: Added
22471         * PropertyGridCommands.cs: Added
22472         * PropertiesTab.cs: Added missing methods and property
22473         * PropertyGridView.cs: Made class internal
22474         * PropertyGridTextBox.cs: Made class internal
22475
22476 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
22477
22478         * MimeIcon.cs: Try to check some other environment variables
22479           if "DESKTOP_SESSION" returns "default"
22480
22481 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
22482
22483         * ThemeNice.cs: Corrected background colors (e.g. menus)
22484         * ColorDialog.cs: Use correct background colors for controls
22485
22486 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
22487
22488         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
22489
22490 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
22491
22492         * RichTextBox.cs: Added initial implementation
22493         * lang.cs: Removed. Was accidentally checked in long time ago
22494         * TODO: Removed. Contents were obsolete
22495
22496 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
22497                                                                                 
22498         * PropertiesTab.cs : Added
22499
22500 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
22501                                                                                 
22502         * PropertyGrid.cs : Update
22503         * PropertyGridView.cs : Update
22504         * System.Windows.Forms.resx : Added images and strings
22505
22506 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
22507
22508         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
22509  
22510 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
22511
22512         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
22513           a busy loop right after the Ungrab the X11 display is otherwise 
22514           blocked
22515
22516 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
22517
22518         * ThemeWin32Classic.cs: Optimise the use of clipping
22519
22520 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
22521
22522         * DataGrid.cs: fixes recursion bug
22523
22524 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
22525
22526         * ThemeNice.cs: 
22527           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
22528           - Cleanup
22529
22530 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
22531
22532         * ThemeNice.cs: Draw nice ProgressBars
22533
22534 2005-09-01  Miguel de Icaza  <miguel@novell.com>
22535
22536         * VScrollBar.cs: Another buglet found by Aaron's tool. 
22537
22538         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
22539         bug finder.
22540
22541 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
22542
22543         * ThemeNice.cs:
22544           - Added nicer menu drawing
22545           - Updated DrawTab
22546           - some refactoring
22547
22548 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
22549
22550         * CreateParams.cs (ToString): Made output match MS
22551         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
22552             handle is already created (to avoid forcing window creation)
22553         * XplatUIX11.cs: Set window text to caption after creating window,
22554           in case Text was set before window was created
22555         * Form.cs: Use this.Text instead of a static string as caption
22556
22557 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
22558
22559         * NotifyIcon.cs: Don't set the window to visible; this screws
22560           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
22561           OnPaint without a bitmap)
22562         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
22563           happen very often anyway; we could add the check to the WM_PAINT 
22564           event generation code
22565
22566 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
22567
22568         * NotifyIcon.cs: Fill the icon area with a background color, to 
22569           avoid 'residue' when transparent icons are drawn
22570         * XplatUIX11.cs:
22571           - Handle whole_window == client_window when destroying windows
22572           - SystrayAdd(): Set client_window to whole_window value to
22573             get mouse and other events passed to NotifyIcon
22574
22575 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
22576
22577         * Form.cs: Set proper default for Opacity property
22578         * NotifyIcon.cs:
22579           - ShowSystray(): Don't bother creating telling the OS
22580             about the systray item if no icon is provided
22581           - Now handles WM_NCPAINT message to deal with whole/client window
22582             split
22583           - Create window as visible to not get caught by Expose optimization
22584         * Hwnd.cs: Removed debug message
22585         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
22586           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
22587             PaintEventStart/End to use new client argument
22588         * TextBoxBase.cs:
22589           - Commented out debug messages
22590           - Switched PaintEventStart/End to use new client argument
22591         * XplatUI.cs: Added client window bool to PaintEventStart()/
22592           PaintEventEnd() calls, to support drawing in non-client areas
22593         * XplatUIDriver.cs: 
22594           - Added client window bool to PaintEventStart()/PaintEventEnd() 
22595             calls, to support drawing in non-client areas
22596           - Added conditional compile to allow using MWF BeginInvoke 
22597             on MS runtime
22598         * XplatUIX11.cs:
22599           - Added some conditional debug output
22600           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
22601             whole/client window split
22602           - Implemented handling of client argument to PaintEventStart()/End()
22603         * Control.cs:
22604           - Throw exception if BeginInvoke() is called and the window handle
22605             or one of the window's parent handles is not created
22606           - Added conditional compile to allow using MWF BeginInvoke on
22607             MS runtime
22608           - get_Parent(): Only sets parent if handle is created. This avoids
22609             forcing window handle creation when parent is set.
22610           - Now fires Layout and Parent changed events in proper order
22611           - Switched to use Handle instead of window.Handle for Z-Order setting,
22612             the get_Parent() patch above causes us to possibly get null for 'window'
22613           - Implemented handling of client argument to PaintEventStart()/End()
22614           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
22615             default handling)
22616           - Now sends a Refresh() to all child windows when Refresh() is called
22617
22618 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
22619
22620         * Form.cs: Added (non-functional) Opacity property
22621         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
22622
22623 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
22624         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
22625           use export MONO_THEME=nice to activate it.
22626           Currently supported controls:
22627           - Button
22628           - ComboBox
22629           - ScrollBar
22630           - TabControl (TabAlignment.Top only, other will follow)
22631         * ThemeEngine.cs: Add theme nice
22632         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
22633           if enabled
22634
22635 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
22636
22637         * Splitter.cs: Resize docked control and its neighbor.
22638
22639 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
22640         -- Making Windows with Menus layout correctly --
22641         * Form.cs : The first leg of the fix
22642                 Menu setter - adjust Client Size as needed to make space for the menu
22643                 SetClientSizeCore - doesn't call base version to be able to pass the 
22644                         menu handle to XplatUI.CalculateWindowRect
22645         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
22646         * XplatUIX11.cs: The critical second leg of the fix
22647                 GetWindowPos needs to use a recalculated client_rect
22648                 so that resizing the window doesn't break layout of child controls. 
22649                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
22650                 Lots of \t\n killed
22651
22652 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
22653
22654         * Label.cs: Now properly recalculates width and height on Font and Text
22655           changes if AutoSize is set
22656
22657 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
22658         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
22659
22660 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
22661
22662         * ImageList.cs: Makes ToString method compatible with MS
22663
22664 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
22665
22666         * MenuAPI.cs: fixes bug 75716
22667
22668 2005-08-11 Umadevi S <sumadevi@novell.com>
22669         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
22670
22671 2005-08-11 Umadevi S <sumadevi@novell.com>
22672         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
22673
22674 2005-08-10  Umadevi S <sumadevi@novell.com>
22675         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
22676
22677 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
22678
22679         * Menu.cs: fixes bug 75700
22680         * MenuAPI.cs: fixes navigation issues
22681
22682 2005-08-09  Umadevi S <sumadevi@novell.com>
22683         * CheckedListBox.cs - simple fix for GetItemChecked.
22684
22685 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
22686
22687         * ComboBox.cs: Serveral fixes
22688         * ListBox.cs: Serveral fixes
22689
22690 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
22691
22692         * ComboBox.cs: Fixes FindString methods and GetItemHeight
22693         * ListBox.cs: Fixes FindString methods
22694
22695 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
22696
22697         * DataGrid.cs: fixes bugs exposed by new tests
22698
22699 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
22700
22701         * Mime.cs: Compile Mono assembly references only if compiling
22702           with Mono (Allows to build with VS.Net again)
22703
22704 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
22705
22706         * Control.cs (PaintControlBackground): Draw background image
22707         corrrectly.
22708         (CheckForIllegalCrossThreadCalls): Stubbed.
22709         
22710         * Form.cs (OnCreateControl): Center when should be centered.
22711         
22712         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
22713
22714 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
22715
22716         * Binding.cs: Binding to properties should be case unsensitive
22717
22718 2005-07-18 vlindos@nucleusys.com
22719
22720         * DataGrid.cs: fixes setmember order
22721
22722 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
22723
22724         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
22725         * FileDialog.cs: FileDialog is now resizable and uses the new
22726           MimeIconEngine
22727
22728 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
22729
22730         * DataGridTextBoxColumn.cs: default value
22731         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
22732         * GridTableStylesCollection.cs: fixes checking MappingName
22733         * DataGridDrawingLogic.cs: fixes drawing logic issues
22734         * DataSourceHelper.cs: rewritten to make compatible with more data sources
22735         * DataGrid.cs: fixes    
22736
22737 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
22738
22739         * MimeGenerated.cs: Use case sensitive comparer for
22740           NameValueCollections
22741
22742 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
22743
22744         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
22745         * ThemeWin32Classic.cs: bug fixes, code refactoring
22746         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
22747         * DataGrid.cs: bug fixes, code refactoring
22748         * DataGridTextBox.cs: bug fixes, code refactoring
22749         * DataGridColumnStyle.cs:  bug fixes, code refactoring
22750         * Theme.cs:  bug fixes, code refactoring
22751
22752 2005-07-01  Peter Bartok  <pbartok@novell.com> 
22753
22754         * TextControl.cs: Quick fix for the reported crash on ColorDialog
22755           and other text box usage
22756
22757 2005-07-01  Jackson Harper  <jackson@ximian.com>
22758
22759         * TabControl.cs: Make sure the bottom of the tab covers the pages
22760         border.
22761
22762 2005-06-30  Peter Bartok  <pbartok@novell.com> 
22763
22764         * Form.cs (ShowDialog): Assign owner of the dialog
22765         * TextBoxBase.cs: Always refresh caret size when deleting, caret
22766           might have been moved to a tag with different height
22767
22768 2005-06-30  Jackson Harper  <jackson@ximian.com>
22769
22770         * Form.cs: Don't create an infinite loop when setting focus
22771         * MenuItem.cs: Don't dirty the parents if we don't have any
22772
22773 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
22774
22775         * LibSupport.cs: Rename
22776
22777 2005-06-29  Peter Bartok  <pbartok@novell.com>
22778
22779         * TextBoxBase.cs: Re-align caret after deleting a character
22780         * TextControl.cs:
22781           - DeleteChars(): Ensure that tag covers the provided position
22782           - StreamLine(): Drop reference for dropped tag
22783
22784 2005-06-29  Peter Bartok  <pbartok@novell.com> 
22785
22786         * TextControl.cs: 
22787           - Selections now work properly, anchoring at the initial location
22788             and properly extending in either direction (SetSelectionToCaret(),
22789             SetSelectionStart() and SetSelectionEnd())
22790           - No longer redraws the whole control on selection change, now
22791             calculates delta between previous and new selection and only
22792             invalidates/redraws that area
22793           - Fixed FindPos() math off-by-one errors
22794           - Changed DeleteChars() to verify the provided tag covers the
22795             provided position, selections may have a tag that doesn't cover
22796             the position if the selection is at a tag border
22797           - Fixed off-by-one errors in DeleteChars()
22798           - Added missing streamlining check in DeleteChars() to remove
22799             zero-length tags
22800           - Implemented Invalidate() method, now properly calculates exposures
22801             between two given lines/positions
22802           - Implemented SetSelection()
22803           - Obsoleted and removed FixupSelection()
22804           - Improved RecalculateDocument() logic, removing code duplication
22805
22806 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22807
22808         * LibSupport.cs: changes to match different input/output arguments.
22809
22810 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22811
22812         * LibSupport.cs: added libsupport.so init routine.
22813
22814 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
22815         
22816         * ControlBindingsCollection.cs
22817                 - Throws an exception on null datasource when adding
22818                 - Checks for duplicated bindings when adding
22819
22820 2005-06-28  Jackson Harper  <jackson@ximian.com>
22821
22822         * TreeView.cs (OnKeyDown): Support left and right properly
22823         (navigates as well as expanding and collapsing.
22824         - Add support for Multiply, this expands all the selected nodes
22825         children.
22826         - Fix some tabbing.
22827
22828 2005-06-28  Jackson Harper  <jackson@ximian.com>
22829
22830         * TreeView.cs: Implement keyboard navigation, currently supports,
22831         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
22832         support for toggling checkboxes with the space bar.
22833
22834 2005-06-28  Jackson Harper  <jackson@ximian.com>
22835
22836         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
22837         tree.
22838
22839 2005-06-28  Jackson Harper  <jackson@ximian.com>
22840
22841         * TreeView.cs: Add missing event.
22842
22843 2005-06-27  Peter Bartok  <pbartok@novell.com> 
22844
22845         * TextControl.cs:
22846           - Made line ending size configurable (now allows for counting 
22847             lineendings as \n or \r\n)
22848           - Added margin to viewport to keep caret visible on right side
22849           - Fixed translation routines for line/pos to documentpos to consider
22850             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
22851           - Fixed some line-endings to be unix style
22852           - Fixed Document.FormatText to perform it's calculations 1-based
22853           - Added descriptions for a few methods that might otherwise get 
22854             used wrong
22855           - Added NOTE section with some basic conventions to remember at 
22856             the top of the file
22857           - Major fixup for RichTextBox selection drawing:
22858             * Fixed crashes when multiple tags on a single line were selected
22859             * fixed selection box drawing not overlaying text
22860             * fixed bogus offset calculation for tags not starting at index 1
22861             * Switched behaviour from using multiple Substrings of a 
22862               StringBuilder.ToString() to using multiple 
22863               StringBuilder.ToString(start, length) statements, hoping this is
22864               faster (kept original version commented out in the code, in case
22865               original version was faster)
22866         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
22867           alignment != Left
22868         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
22869           call it as well
22870
22871 2005-06-27  Jackson Harper  <jackson@ximian.com>
22872
22873         * TabControl.cs: Move to the left and right with the arrow
22874         keys. These keys don't cycle beyond first and last like
22875         tab. Refresh all the tabs when scrolling them to the left or
22876         right.
22877
22878 2005-06-27  Jackson Harper  <jackson@ximian.com>
22879
22880         * TabControl.cs:
22881           - ToString: Added method
22882           - CreateParams: Remove TODO and comment
22883           - OnKeyDown: Cycle through bounds properly.
22884           - SelectedIndex: Scroll to the right or left if we need to
22885           display the newly selected tab.
22886
22887 2005-06-23  Jackson Harper  <jackson@ximian.com>
22888
22889         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
22890         set.
22891
22892 2005-06-23  Jackson Harper  <jackson@ximian.com>
22893
22894         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
22895         CTRL-SHIFT-TAB, and HOME, END are there any others?
22896
22897 2005-06-23  Jackson Harper  <jackson@ximian.com>
22898
22899         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
22900
22901 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
22902         
22903         * DataGridTextBoxColumn.cs: fixes and enhancements
22904         * ThemeWin32Classic.cs: fixes and enhancements
22905         * DataGridBoolColumn.cs:  fixes and enhancements
22906         * DataGridDrawingLogic.cs:  fixes and enhancements
22907         * CurrencyManager.cs: fixes and enhancements
22908         * DataGrid.cs: fixes and enhancements
22909         * DataGridColumnStyle.cs:  fixes and enhancements
22910
22911 2005-06-22  Jackson Harper  <jackson@ximian.com>
22912
22913         * TabControl.cs: Add some missing methods that just call into the
22914         base. Make the TabPageCollection's IList interface behave in the
22915         same manner as the MS implementation.
22916
22917 2005-06-22  Peter Bartok  <pbartok@novell.com> 
22918
22919         * TextControl.cs: Added sanity check
22920         * TextBoxBase.cs: 
22921           - Fixed wrapping behaviour, don't set wrap on single line controls
22922             (this fixes the breakage of colordialog introduced in an earlier
22923              checkin)
22924           - Added rudimentary support for autoscrolling right-aligned controls
22925             (still needs fixing, also, center alignment scroll is missing)
22926
22927 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
22928         
22929         * ScrollBar.cs: Fixes thumbpos on Maximum values
22930
22931 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
22932         
22933         * PropertyGridView.cs: Pass context information to UITypeEditors 
22934
22935 2005-06-21  Peter Bartok  <pbartok@novell.com> 
22936
22937         * TextBoxBase.cs:
22938           - Now calling PositionCaret with absolute space coordinates
22939           - Enabled vertical scrolling
22940           - Better tracking of scrollbar changes, tied into WidthChange
22941             event
22942           - Improved cursor tracking
22943           - Removed debug output
22944         * TextControl.cs:
22945           - PositionCaret coordinates are now works in absolute space, not 
22946             the canvas
22947           - Improved tracking of document size
22948           - Added events for width and height changes
22949
22950 2005-06-21  Peter Bartok  <pbartok@novell.com>
22951
22952         * Form.cs: Set focus to active control when form is activated
22953         * TextControl.cs: 
22954           - Added word-wrap functionality to RecalculateLine() 
22955           - Added some short function descriptions for VS.Net to aid in
22956             writing dependent controls
22957           - Added Caret property, returning the current coords of the caret
22958           - Added ViewPortWidth and ViewPortHeight properties
22959           - Added Wrap property
22960           - Added CaretMoved event
22961           - Removed some old debug code
22962           - Split() can now create soft splits
22963           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
22964           - Added method to format existing text
22965           - Fixed size/alignment calculations to use viewport
22966           - RecalculateDocument now can handle changing line-numbers while
22967             calculating lines
22968
22969         * TextBox.cs:
22970           - Added some wrap logic, we don't wrap if alignment is not left
22971           - Added casts for scrollbar var, base class switched types to
22972             also support RichTextBoxA
22973           - Implemented handling of scrollbar visibility flags
22974
22975         * TextBoxBase.cs:
22976           - Switched scrollbars type to RichTextBoxScrollBars to support
22977             RichTextBox
22978           - Added tracking of canvas width/height
22979           - Switched scrollbars to be not selectable (to keep focus on text)
22980           - Added central CalculateDocument() method to handle all redraw
22981             requirements
22982           - Added ReadOnly support
22983           - Added WordWrap support
22984           - Fixed handling of Enter key (we now treat it as a DialogKey)
22985           - Fixed caret positioning when h or v scroll is not zero
22986           - Fixed placing/generation of vertical scrollbar
22987           - Added CalculateScrollBars() method to allow updating scrollbar
22988             limits and visibility
22989           - Fixed handling of horizontal scroll
22990           - Added handling of vertical scroll
22991           - Implemented auto-'jump' when caret moves to close to a left or
22992             right border and there is text to be scrolled into view (currently
22993             there's the potential for a stack overflow, until a bug in
22994             scrollbar is fixed)
22995
22996 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
22997         
22998         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
22999
23000 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
23001
23002         * Mime.cs:
23003         - added inodes.
23004         - return application/x-zerosize for files with size zero
23005           (if no extension pattern matches).
23006         - check matches collection for strings too.
23007         - return only the first mime type if the name value
23008           collection has more than one mime type.
23009
23010 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
23011         
23012         * PropertyGrid.cs: Cleaned up some TODOs
23013         * PropertyGridView.cs: Added support for UITypeEditors
23014
23015 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
23016         
23017         * DataGrid.cs: clears cached value
23018
23019 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
23020
23021         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
23022         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
23023         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
23024         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
23025         
23026 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
23027
23028         * ThemeWin32Classic.cs: fixes colour
23029
23030 2005-06-15  Peter Bartok  <pbartok@novell.com>
23031
23032         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
23033         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
23034         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
23035         * Control.cs: Added some MWFCategory and MWFDescription attributes
23036         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
23037
23038 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
23039
23040         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
23041         usage
23042
23043 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
23044
23045         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
23046         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
23047         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
23048         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
23049         * DataGrid.cs: default datagrid settings for Default Styles, fixes
23050         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
23051
23052 2005-06-13  Jackson Harper  <jackson@ximian.com>
23053
23054         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
23055         isn't printed when the user enables dropping. (X11 does accept
23056         drops).
23057         
23058 2005-06-13  Jackson Harper  <jackson@ximian.com>
23059
23060         * TreeView.cs: Remove some TODOS.
23061
23062 2005-06-13  Jackson Harper  <jackson@ximian.com>
23063
23064         * Form.cs: Hook into the mdi framework.
23065         * MdiClient.cs: Use the base control collections add method so
23066         parents get setup correctly. Set the default back colour and dock
23067         style.
23068         * MdiChildContext.cs: New class, this bad actor handles an
23069         instance of an MDI window. Right now there is only basic
23070         support. You can drag, close, and resize windows. Minimize and
23071         Maximize are partially implemented.
23072
23073 2005-06-13  Jackson Harper  <jackson@ximian.com>
23074
23075         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
23076         freaky when both vals are negative. NOTE: There are probably other
23077         places in XplatUIX11 that this needs to be done.
23078
23079 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
23080
23081         * DataGrid.cs: implement missing methods, move KeyboardNavigation
23082         * DataGridColumnStyle.cs: fixes signature
23083
23084 2005-06-12  Jackson Harper  <jackson@ximian.com>
23085
23086         * XplatUIX11.cs: Use sizing cursors similar to the ones on
23087         windows.
23088
23089 2005-06-11  Jackson Harper  <jackson@ximian.com>
23090
23091         * StatusBarPanel.cs: Signature cleanups. Implement
23092         BeginInit/EndInit.
23093
23094 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
23095
23096         * DataGridTextBoxColumn.cs: Honors aligment
23097         * GridColumnStylesCollection.cs: Contains is case unsensitive
23098         * GridTableStylesCollection.cs: several fixes
23099         * DataGridTableStyle.cs: default column creation
23100         * DataGridDrawingLogic.cs: fixes
23101         * CurrencyManager.cs: ListName property
23102         * DataGrid.cs: multiple styles support
23103         * DataGridColumnStyle.cs: fixes
23104         
23105
23106 2005-06-10  Peter Bartok  <pbartok@novell.com>
23107
23108         * Control.cs(Select): Moved SetFocus call to avoid potential
23109           loops if controls change the active control when getting focus
23110         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
23111           the up/down buttons
23112
23113 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
23114
23115         * ImageListConverter.cs: Implemented
23116
23117 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
23118
23119         * MonthCalendar.cs: Wired in NumericUpDown control for year
23120
23121 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
23122
23123         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
23124           DoubleClick events, since they are not meant to be fired.
23125
23126 2005-06-09  Peter Bartok  <pbartok@novell.com>
23127
23128         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
23129           Jonathan's standalone controls into MWF, implemented missing
23130           events, attributes and methods; added xxxAccessible classes
23131         * AccessibleObject.cs: Made fields internal so other classes
23132           can change them if needed
23133
23134 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
23135
23136         * UpDownBase.cs: Complete implementation
23137         * NumericUpDown.cs: Complete implementation
23138         * DomainUpDown.cs: Complete implementation
23139
23140 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
23141
23142         * DataGridTextBoxColumn.cs: drawing fixes
23143         * DataGridCell.cs: fixes ToString method to match MSNet
23144         * DataGridTableStyle.cs: fixes
23145         * DataGridBoolColumn.cs: fixes, drawing
23146         * DataGridDrawingLogic.cs: fixes, new methods
23147         * DataGridTextBox.cs: Keyboard and fixes
23148         * DataGrid.cs:
23149                 - Keyboard navigation
23150                 - Scrolling fixes
23151                 - Row selection (single, multiple, deletion, etc)
23152                 - Lots of fixes
23153         
23154 2005-06-07  Jackson Harper  <jackson@ximian.com>
23155
23156         * ThemeWin32Classic.cs: Clear the background area when drawing
23157         buttons.
23158
23159 2005-06-06  Peter Bartok  <pbartok@novell.com>
23160
23161         * ImageListStreamer.cs: Fixed signature for GetData
23162         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
23163         * ComboBox.cs:
23164           - Added missing ChildAccessibleObject class
23165           - Added missing OnXXXFocus overrides, switched to using those
23166             instead of the event handler
23167         * Control.cs:
23168           - Added Parent property for ControlAccessibleObject
23169           - Fixed signatures
23170           - Fixed attributes
23171           - Added ResetBindings()
23172         * ListBindingConverter.cs: Implemented some methods
23173         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
23174         * ImageList.cs: Implemented basic handle scheme, removed TODOs
23175         * ContainerControl.cs: Fixed signature, now subscribing to the
23176           ControlRemoved event instead of overriding the handler, LAMESPEC
23177         * CurrencyManager.cs: Added missing attribute
23178         * MonthCalendar.cs: Added missing properties
23179
23180 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
23181
23182         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
23183         
23184 2005-06-06  Gaurav Vaish and Ankit Jain
23185
23186         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
23187         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
23188         
23189 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
23190
23191         * Control.cs: fixes CreateParams Width / Height.
23192
23193 2005-06-05  Peter Bartok  <pbartok@novell.com>
23194
23195         * Win32DnD.cs: Removed compilation warnings
23196
23197 2005-06-05  Peter Bartok  <pbartok@novell.com>
23198
23199         * Control.cs (CreateParams): Since we don't know if one of the
23200           properties we use is overridden, lets make sure if we fail accessing
23201           we continue with a backup plan
23202
23203 2005-06-05  Peter Bartok  <pbartok@novell.com>
23204
23205         * Win32DnD.cs:
23206           - Removed debug output
23207           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
23208             struct
23209           - Plugged resource leak
23210         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
23211           MS size
23212
23213 2005-06-05  Peter Bartok  <pbartok@novell.com>
23214
23215         * XplatUIWin32.cs: Removed DnD code
23216         * Win32DnD.cs: Implemented drop source and drop target functionality
23217
23218 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23219
23220         * UpDownBase.cs: remove duplicate addition of event, enable some code
23221         that was commented out.
23222         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
23223         Validate input when a key is pressed. It works fine now for every
23224         combination of Hexadecimal. Only missing some drawing love when sharing
23225         space with other controls.
23226
23227 2005-06-04  Peter Bartok  <pbartok@novell.com>
23228
23229         * Control.cs:
23230           - We need to pass a window for DragDrop, so enable callback events
23231           - Added DnD callback events when being a DragSource
23232         * XplatUI.cs (StartDrag): Added window handle argument
23233         * XplatUIDriver.cs (StartDrag): Added window handle argument
23234         * QueryContinueDragEventArgs: Made fields internally accessible so
23235           drivers can set them
23236         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
23237           can set them
23238
23239 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
23240
23241         * DataGridTextBoxColumn.cs: column text editing
23242         * DataGridTableStyle.cs: Respect columns styles created by the user
23243         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
23244         * DataGridBoolColumn.cs: bool column editing
23245         * DataGrid.cs: fixes to scrolling, properties, etc
23246         * DataGridTextBox.cs: handle keyboard
23247         * DataGridColumnStyle.cs: fixes
23248
23249 2005-06-02  Jackson Harper  <jackson@ximian.com>
23250
23251         * ImageListStreamer.cs: Somewhat broken implementation of
23252         GetObjectData. The RLE needs some work to match MS properly.
23253
23254 2005-06-02  Jackson Harper  <jackson@ximian.com>
23255
23256         * X11Dnd.cs: Attempting to keep at least one file in MWF
23257         monostyled.
23258
23259 2005-06-02  Peter Bartok  <pbartok@novell.com>
23260
23261         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
23262           that way
23263
23264 2005-06-02  Peter Bartok  <pbartok@novell.com>
23265
23266         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
23267         * XplatUI.cs: Added DoDragDrop() method
23268         * XplatUIDriver.cs: Added DoDragDrop() method
23269
23270 2005-06-02  Jackson Harper  <jackson@ximian.com>
23271
23272         * Splitter.cs: Implement BorderStyle.
23273
23274 2005-06-02  Jackson Harper  <jackson@ximian.com>
23275
23276         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
23277         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
23278         X11 using XDND.
23279
23280 2005-06-02  Peter Bartok  <pbartok@novell.com>
23281
23282         * DataObject.cs:
23283           - Added Data setter
23284           - Fixed broken insertion code for SetData, now also
23285             overwrites any existing entry of the same format name
23286         * Hwnd.cs: Added list of pointers that automatically gets
23287           freed when the window is disposed
23288         * XplatUI.cs: Call driver initialization method when loading
23289           a driver
23290         * Control.cs:
23291           - OnDragLeave takes EventArgs, not DragEventArgs
23292           - Added setting of WS_EX_ACCEPTFILES style when dropping is
23293             supported
23294           - Forces style update when drop state changes
23295         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
23296           not perfect since we cannot (yet) call the IDataObject.GetData()
23297           method, we keep getting 0x80004005 error, dunno why)
23298
23299 2005-06-02  Peter Bartok  <pbartok@novell.com>
23300
23301         * DragEventArgs.cs: Make fields internal so we can cache the
23302           object and re-set the fields from XplatUI
23303
23304 2005-06-02  Jackson Harper  <jackson@ximian.com>
23305
23306         * Control.cs: Add some internal methods so the DnD subsystem can
23307         raise DnD events. Also call into the driver when AllowDrop is set.
23308         * XplatUI.cs:
23309         * XplatUIDriver.cs: New method for setting whether or not a window
23310         is allowed to accept drag and drop messages.
23311                 
23312 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
23313         
23314         * ScrollBar.cs: Make sure that values sent in Scroll events
23315         are always between Maximum and Minimum.
23316
23317 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
23318
23319         * Menu.cs: Call MenuChanged when menuitem visibility has been
23320         changed.
23321         * MenuItem.cs: Rebuild menu when item is (not) visible.
23322         * MainMenu.cs: MainMenu has special MenuChanged.
23323         * Theme.cs: Caption and FrameBorderSize are not fixed.
23324         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
23325         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
23326         * XplatUIX11.cs,
23327         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
23328         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
23329
23330 2005-05-30  Jackson Harper  <jackson@ximian.com>
23331
23332         * DataFormat.cs: We can't statically initialize this stuff because
23333         it calls into the xplatui and could create a loop. So we lazy init
23334         it.
23335
23336 2005-05-28  Jackson Harper  <jackson@ximian.com>
23337
23338         * Control.cs: Proper implementation of Product(Name/Version).
23339
23340 2005-05-27  Jackson Harper  <jackson@ximian.com>
23341
23342         * DataObject.cs: Dont crash if no data is found.
23343
23344 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
23345         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
23346                 as per status page, guessing it should be set to true
23347
23348 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
23349
23350         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
23351         * DataGridTableStyle.cs: set proper formatting text, def header text
23352         * ThemeWin32Classic.cs: new themable paramaters
23353         * DataGridBoolColumn.cs: paint check box, get data, fixes
23354         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
23355         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
23356         * DataGridColumnStyle.cs: fixes
23357         * Theme.cs: new themable paramaters
23358                 
23359 2005-05-26  Peter Bartok  <pbartok@novell.com>
23360
23361         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
23362
23363 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
23364         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
23365
23366 2005-05-24  Peter Bartok  <pbartok@novell.com>
23367
23368         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
23369           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
23370           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
23371           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
23372           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
23373           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
23374           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
23375           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
23376           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
23377           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
23378           missing attributes, etc
23379         * DataGridPreferredColumnWidthTypeConverter.cs: Added
23380
23381 2005-05-24  Peter Bartok  <pbartok@novell.com>
23382
23383         * Help.cs: Added, implemented trivial functions, throws up MessageBox
23384           when user tries to get help
23385         * DataObject.cs, DataFormats.cs, LinkArea.cs,
23386           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
23387           to suppress warnings
23388         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
23389           avoid unreachable code warning
23390
23391 2005-05-20  Peter Bartok  <pbartok@novell.com>
23392
23393         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
23394
23395 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
23396
23397         * DataGridTextBoxColumn.cs: Basic painting methods
23398         * DataGridTableStyle.cs: Set table style in the column
23399         * ThemeWin32Classic.cs: Use Theme for colors
23400         * DataGridDrawingLogic.cs: Implement more drawing
23401         * DataGrid.cs: drawing, theming, enhacements, fixes
23402         * DataGridColumnStyle.cs: fixes, drawing
23403         * Theme.cs: theming for Datagrid
23404
23405 2005-05-20  Peter Bartok  <pbartok@novell.com>
23406
23407         * Cursor.cs: Implemented GetObjectData() method
23408
23409 2005-05-20  Peter Bartok  <pbartok@novell.com>
23410
23411         * Cursors.cs: Added setting of cursor name
23412         * Cursor.cs:
23413           - Implemented constructors
23414           - Implemented Draw and DrawStretched
23415           - Implemented Current property
23416           - Implemented == and != operators
23417           - Implemented Dispose()
23418           - Implemented ToString
23419           - Added missing attributes
23420         * XplatUIX11.cs:
23421           - Added missing reset for OverrideCursor when DoEvents is called
23422           - Fixed creation of cursor, logic was wrong
23423         * XplatUIWin32.cs:
23424           - Added missing reset for OverrideCursor when DoEvents is called
23425           - Fixed creation of cursor, bit arrays were swapped
23426         * Clipboard.cs: Removed obsolete MonoTODO attribute
23427
23428 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
23429
23430         * ComboBox.cs: fixes OnSelectedItemChanged
23431         * ControlBindingsCollection.cs: fixes item range check
23432
23433 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
23434
23435         * UpDownBase.cs:
23436                 - Calc preferred height properly
23437                 - Implement missing properties
23438                 
23439         * NumericUpDown.cs: Implement missing events
23440
23441 2005-05-19  Jackson Harper  <jackson@ximian.com>
23442
23443         * TabControl.cs: New method that resizes the tab pages before
23444         redrawing them. This as needed as the control is double buffered
23445         and sizing will not be recalculated unless ResizeTabPages is
23446         called.
23447         * TabPage.cs: Set base.Text instead of Text in the constructor so
23448         that UpdateOwner does not get called. Use the new Redraw method of
23449         TabControl instead of Refresh so the sizing is recalculated.
23450         * ThemeWin32Classic.cs: Draw the text for button tabs.
23451
23452 2005-05-19  Jackson Harper  <jackson@ximian.com>
23453
23454         * Control.cs: Paint control background images. Fix typo where
23455         PaintControlBackground was not getting called correctly.
23456
23457 2005-05-19  Peter Bartok  <pbartok@novell.com>
23458
23459         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
23460           I can investigate, apparently I broke FileDialog
23461
23462 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
23463
23464         * AxHost.cs: Some simple properties.
23465         * Control.cs: window must be accessible after ctor.
23466         * Form.cs: Added TransparencyKey property.
23467         * TextBoxBase.cs: Implemented Clear. Text property can be null.
23468         * XplatUIWin32.cs: SetBorderStyle implemented.
23469
23470 2005-05-18  Peter Bartok  <pbartok@novell.com>
23471
23472         * DataObject.cs: Entries are not global but particular to the
23473           DataObject, now it behaves that way
23474         * XplatUIWin32.cs: Implemented Clipboard methods
23475         * Clipboard.cs: Implemented
23476         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
23477         * XplatUIOSX.cs: Updated to final clipboard prototypes
23478         * XplatUIX11.cs: Implemented Clipboard methods
23479         * XplatUIDriver.cs: Updated to final clipboard prototypes
23480         * XplatUIStructs.cs:
23481           - Added BITMAPINFOHEADER struct
23482           - Added ClipboardFormats enum
23483         * X11Structs.cs:
23484           - Added ClipboardStruct
23485           - Added Atom enum items for clipboard types
23486           - Fixed atom types for Selection event structures
23487         * DataFormats.cs:
23488           - Added internal properties and methods for drivers to enumerate
23489             all known formats
23490           - Switched initialization method to allow drivers to assign their
23491             own IDs even for the MS predefined clipboard IDs
23492         * XplatUI.cs: Updated to final clipboard interface
23493
23494 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
23495         * PropertyGridView.cs: Fixed compiler warnings.
23496
23497 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
23498         * PropertyGrid.cs: Added some event calls
23499         * PropertyGridView.cs: Change drawing code to use double buffering
23500         * PropertyGridTextBox.cs: Changed Text property name
23501         * GridItem.cs: Added Bounds property.
23502         * GridEntry.cs: Added Bounds property.
23503
23504 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
23505
23506         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
23507         since GetType() may not return the correct type if the object is
23508         a remoting proxy.
23509
23510 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
23511
23512         * TreeNodeCollection.cs: fixes get/set item ranges
23513         
23514 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
23515
23516         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
23517                 
23518 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
23519
23520         * ComboBox.cs: Fix item range comparation
23521         * ListView.cs: Fix item range comparation
23522
23523 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
23524
23525         * FontDialog.cs:
23526           - Clear example panel when OnPaint is called
23527           - Better solution for displaying the example panel text
23528           - Select default indexes in the ListBoxes
23529
23530 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
23531
23532         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
23533
23534 2005-05-11  Peter Bartok  <pbartok@novell.com>
23535
23536         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
23537         * SelectionRangeConverter.cs: Implemented
23538         * PropertyGrid.cs: Fixed attribute value
23539         * Control.cs:
23540           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
23541           - Added Sebastien Pouliot's CAS Stack Propagation fixes
23542         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
23543           that's common to all drivers. First methods to go there are
23544           Sebastien Pouliot's CAS Stack Propagation helper methods
23545         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
23546           Sebastien Pouliot for CAS Stack Propagation
23547
23548 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
23549
23550         * OSXStructs.cs:
23551           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
23552
23553 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
23554
23555         * DataGridTextBoxColumn.cs: fixed some members
23556         * GridColumnStylesCollection.cs: indexed column is case insensitive
23557         * DataGridTableStyle.cs: fixes
23558         * ThemeWin32Classic.cs: add new theme parameter
23559         * Theme.cs: add new theme parameter
23560         * DataGridDrawingLogic.cs: Datagrid's drawing logic
23561         * DataGrid.cs: fixes, new internal properties, etc.
23562         * DataGridColumnStyle.cs: allows to set grid value
23563         *
23564
23565 2005-05-10  Peter Bartok  <pbartok@novell.com>
23566
23567         * AccessibleObject.cs:
23568           - Removed MonoTODO attribute on help, method is correct
23569           - Fixed Bounds property
23570         * AxHost.cs: Moved MonoTODO
23571         * ButtonBase.cs: Now setting AccessibleObject properties
23572         * RadioButton.cs: Setting proper AccessibleObject role
23573         * CheckBox.cs: Setting proper AccessibleObject role
23574         * ControlBindingsCollection.cs: Added properties, methods and attributes
23575         * DataFormats.cs: Fixed awkward internal API, and changed to enable
23576           userdefined DataFormats.Format items as well
23577         * ListControl.cs: Removed data_member from the public eye
23578         * OpenFileDialog.cs:
23579           - Made class sealed
23580           - Added missing attributes
23581         * SaveFileDialog.cs: Added missing attributes
23582         * ImageListStreamer.cs: Fixed code that caused warnings
23583         * LinkLabel.cs: Removed unreachable code
23584         * TreeView.cs: Fixed code that caused warnings
23585         * PropertyGridView.cs: Fixed code that caused warnings
23586         * GridColumnStylesCollection.cs: Added missing attributes
23587         * GridTableStylesCollection: Added missing attribute
23588         * PropertyManager: Added .ctor
23589         * SecurityIDType: Added
23590         * DataObject.cs: Implemented class
23591         * LinkArea.cs: Added missing attribute
23592
23593 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
23594
23595         * RadioButton.cs: call base method to allow to fire OnClick event
23596         * UpDownBase.cs: OnMouseUp call base method
23597         * CheckedListBox.cs: call base method before returning
23598         * TrackBar.cs: call base method before returning
23599         
23600
23601 2005-05-10  Peter Bartok  <pbartok@novell.com>
23602
23603         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
23604           for messages
23605
23606 2005-05-10  Peter Bartok  <pbartok@novell.com>
23607
23608         * DataFormats.cs: Implemented
23609         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
23610           XplatUIX11.cs: Added Clipboard APIs
23611         * XplatUIWin32.cs: Implemented Clipboard APIs
23612         * FolderBrowserDialog.cs: Added missing event, attributes
23613
23614 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
23615
23616         * CheckBox.cs: call base method to allow to fire OnClick event
23617
23618 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
23619
23620         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
23621
23622 2005-05-06  Peter Bartok  <pbartok@novell.com>
23623
23624         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
23625         * Screen.cs: Implemented
23626         * HelpNavigator.cs: Added
23627         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
23628           property
23629         * HelpProvider.cs: Implemented all we can do until we have a CHM
23630           help library (which means that "What's This" does work now)
23631
23632 2005-05-06  Jackson Harper  <jackson@ximian.com>
23633
23634         * XplatUIX11.cs: Fix waking up the main loop.
23635                 
23636 2005-05-05  Peter Bartok  <pbartok@novell.com>
23637
23638         * XplatUI.cs: Updated revision
23639         * Form.cs: Removed enless loop
23640         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
23641         * Label.cs (OnPaint): Added call to base.OnPaint()
23642         * ToolTip.cs: Made ToolTipWindow reusable for other controls
23643         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
23644         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
23645         * AxHost.cs: Added
23646         * ButtonBase.cs: Moved base.OnPaint() call to end of method
23647         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
23648           to ToolTip.ToolTipWindow for drawing and size methods; this allows
23649           reuse of ToolTipWindow by other controls
23650         * SizeGrip.cs: Moved base.OnPaint() call to end of method
23651         * XplatUIX11.cs: Now clipping drawing area (experimental)
23652         * PictureBox.cs: Moved base.OnPaint() call to end of method
23653         * Theme.cs: Fixed ToolTip abstracts to match new format
23654         * ErrorProvider.cs: Implemented
23655
23656 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
23657
23658         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
23659         * LinkLabel.cs:
23660                 - Adds cursors
23661                 - Handles focus
23662                 - Implements LinkBehavior
23663                 - Fixes many issues
23664
23665 2005-05-03  Jackson Harper  <jackson@ximian.com>
23666
23667         * ListView.cs: Calculate the scrollbar positioning on resize and
23668         paint, so they get put in the correct place.
23669
23670 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
23671
23672         * ColorDialogs.cs: The small color panels are now handled by
23673           SmallColorControl. This fixes drawing of the focus rectangle
23674           and adds a 3D border.
23675
23676 2005-05-03  Peter Bartok  <pbartok@novell.com>
23677
23678         * Control.cs: Modified version of Jonathan Chamber's fix for
23679           double-buffering
23680
23681 2005-05-03  Jackson Harper  <jackson@ximian.com>
23682
23683         * ListView.cs: Remove redraw variable. Control now handles whether
23684         or not a redraw needs to be done, and will only raise the paint
23685         event if redrawing is needed.
23686
23687 2005-05-03  Jackson Harper  <jackson@ximian.com>
23688
23689         * Splitter.cs: No decorations for the splitter form. Cache the
23690         hatch brush.
23691
23692 2005-05-03  Jackson Harper  <jackson@ximian.com>
23693
23694         * TreeView.cs: Use dashed lines to connect nodes. Use the
23695         ControlPaint method for drawing the focus rect instead of doing
23696         that in treeview.
23697
23698 2005-05-02  Peter Bartok  <pbartok@novell.com>
23699
23700         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
23701
23702 2005-04-29  Jackson Harper  <jackson@ximian.com>
23703
23704         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
23705         entire image buffer. Just clear the clipping rectangle.
23706
23707 2005-04-29  Jackson Harper  <jackson@ximian.com>
23708
23709         * ThemeWin32Classic.cs: Don't draw list view items that are
23710         outside the clipping rectangle.
23711
23712 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
23713
23714         * ListBox.cs: added horizontal item scroll
23715
23716 2005-04-29  Jackson Harper  <jackson@ximian.com>
23717
23718         * ThemeWin32Classic.cs: Remove some old debug code that was
23719         causing flicker with the new double buffering code.
23720
23721 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
23722
23723         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
23724         behave like combobox and comboboxlist (still not sure if this is
23725         correct though).
23726
23727 2005-04-28  Jackson Harper  <jackson@ximian.com>
23728
23729         * ThemeWin32Classic.cs: Don't fill the middle of progress
23730         bars. This fills areas outside of the clip bounds that don't need
23731         to be filled.
23732
23733 2005-04-28  Jackson Harper  <jackson@ximian.com>
23734
23735         * Control.cs: Don't expose functionality to touch the image buffers.
23736         * ProgressBar.cs:
23737         * ListView.cs: We do not need to (and no longer can) manipulate
23738         the image buffers directly. All of this is handled by Control.
23739
23740 2005-04-28  Peter Bartok  <pbartok@novell.com>
23741
23742         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
23743           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
23744           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
23745
23746 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
23747
23748         * Combobox:
23749                 - Adjust control's height for non-simple comboboxes (bug fix)
23750                 - Remove dead code
23751         * MenuAPI.cs: remove unused var
23752         * ScrollBar.cs: remove unsed var
23753                  
23754         * ListBox.cs: unselect items when clearing
23755
23756 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
23757
23758         * ListControl.cs: honors OnPositionChanged and default Selected Item
23759         * ListBox.cs: unselect items when clearing
23760
23761 2005-04-27  Jackson Harper  <jackson@ximian.com>
23762
23763         * X11Keyboard.cs: Initialize a default keyboard and give a warning
23764         if a "correct" keyboard is not found. This will make us not crash,
23765         but might give some users bad keyboard layouts...seems to be the
23766         same thing rewind does.
23767
23768 2005-04-27  Jackson Harper  <jackson@ximian.com>
23769
23770         * BindingManagerBase.cs: Attach the current/position changed
23771         handlers to their respective events.
23772
23773 2005-04-27  Jackson Harper  <jackson@ximian.com>
23774
23775         * Control.cs: Make sure that the first WM_PAINT does a full draw,
23776         not just a blit.
23777         * ThemeWin32Classic.cs: Don't fill the background for picture
23778         boxes. This could overright user drawing.
23779         * ComboBox.cs: Just fill the clipping rect not the entire client
23780         rect when drawing the background. This prevents pieces of the
23781         image buffer from getting overwritten and is theoretically faster.
23782
23783 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
23784
23785         * ComboBox.cs: Databinding support fixes, fire missing events
23786         * ListControl.cs: implement missing methods and properties, fixes
23787         * ThemeWin32Classic.cs: Databiding support on Drawing
23788         * CheckedListBox.cs: Databinding support fixes, fire missing events
23789         * ListBox.cs: Databinding support fixes, fire missing events
23790         
23791 2005-04-25  Peter Bartok  <pbartok@novell.com>
23792
23793         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
23794
23795 2005-04-25  Jackson Harper  <jackson@ximian.com>
23796
23797         * TreeView.cs: Use the horizontal scrollbars height not width when
23798         determining how much of the client area is available.
23799
23800 2005-04-25  Jackson Harper  <jackson@ximian.com>
23801
23802         * Control.cs: Double buffering is handled differently now. As per
23803         the spec, the extra buffer is created in the WM_PAINT message and
23804         passed down to the control's drawing code.
23805         * GroupBox.cs:
23806         * Label.cs:
23807         * CheckBox.cs:
23808         * ProgressBar.cs:
23809         * RadioButton.cs:
23810         * ColorDialog.cs:
23811         * ComboBox.cs:
23812         * PropertyGridView.cs:
23813         * UpDownBase.cs:
23814         * MessageBox.cs:
23815         * MenuAPI.cs:
23816         * ListView.cs:
23817         * ButtonBase.cs:
23818         * SizeGrip.cs:
23819         * ScrollBar.cs:
23820         * ListBox.cs:
23821         * TrackBar.cs:
23822         * ToolBar.cs:
23823         * PictureBox.cs:
23824         * DateTimePicker.cs:
23825         * StatusBar.cs:
23826         * TreeView.cs: Update to new double buffering system.
23827         * MonthCalendar.cs: Uncomment block, as Capture is now
23828         working. Update to new double buffering
23829         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
23830         * PaintEventArgs.cs: New internal method allows us to set the
23831         graphics object. This is used for double buffering.
23832         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
23833         rectangle. The internal paint_area var has been removed from
23834         StatusBar. The clipping rect should be used instead.
23835         * Theme.cs: Give the PictureBox drawing method a clipping rect.
23836         * TabPage.cs: The RefreshTabs method was removed, so just call the
23837         tab controls Refresh method now.
23838         * TabControl.cs: Update to new double buffering. Make sure the
23839         handle is created before sizing the tab pages, otherwise we will
23840         get stuck in a loop.
23841
23842 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
23843
23844         * LinkLabel.cs: Fix typo, bug #74719; patch
23845           from Borja Sanchez Zamorano
23846
23847 2005-04-22  Jackson Harper  <jackson@ximian.com>
23848
23849         * TreeNode.cs: Implement Handle stuff.
23850         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
23851
23852 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
23853
23854         * DataGridTextBoxColumn.cs: call base constructors, fixes
23855         * GridColumnStylesCollection.cs: missing events, methods, and functionality
23856         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
23857         * DataGridTableStyle.cs: implements create default column styles
23858         * DataGridBoolColumn.cs: which types can handle
23859         * DataGrid.cs: missing methods, fixes, new functionality
23860         * DataGridColumnStyle.cs: fixes
23861
23862 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
23863         * FolderBrowserDialog.cs:
23864         - Use a thread to fill the TreeView
23865         - Adjusted some sizes
23866
23867 2005-04-19  Peter Bartok  <pbartok@novell.com>
23868
23869         * LinkLabel.cs: (Re-)create the pieces when setting the Text
23870           property. Fixes #74360.
23871
23872 2005-04-19  Jackson Harper  <jackson@ximian.com>
23873
23874         * XEventQueue.cs: Lock when getting the lockqueue size.
23875         * PictureBox.cs: Call base OnPaint
23876         
23877 2005-04-19  Peter Bartok  <pbartok@novell.com>
23878
23879         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
23880           messages were no longer being processed (this broke BeginInvoke)
23881
23882           
23883 2005-04-18  Jackson Harper  <jackson@ximian.com>
23884
23885         * TreeView.cs: buglet that caused node images to get drawn
23886         regardless of whether or not they were in the clipping rectangle.
23887
23888 2005-04-18  Jackson Harper  <jackson@ximian.com>
23889
23890         * CurrencyManager.cs: There are four rules for GetItemProperties:
23891         - If the type is an array use the element type of the array
23892         - If the type is a typed list, use the type
23893         - If the list contains an Item property that is not an object, use
23894         that property
23895         - use the first element of the list if there are any elements in
23896         the list.
23897         
23898 2005-04-17  Jackson Harper  <jackson@ximian.oom>
23899
23900         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
23901         click. This handles offsets for scrolling properly and reduces
23902         memory. Also fixed GetNode to not offset now that TopNode works
23903         properly.
23904         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
23905         
23906 2005-04-17  Jackson Harper  <jackson@ximian.com>
23907
23908         * CursorConverter.cs: Initial implementation.
23909
23910 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
23911
23912         * ListControl.cs: work towards complex data binding support on ListControl
23913         * CurrencyManager.cs: work towards complex data binding support on ListControl
23914         * ListBox.cs: work towards complex data binding support on ListControl
23915
23916
23917 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
23918
23919         * GridTableStylesCollection.cs: fixes name and constructor
23920         * DataGridTableStyle.cs: fixes
23921         * DataGridBoolColumn.cs: fixes names and constructors
23922         * DataGrid.cs: define methods and properties. Some init implementations
23923         * DataGridCell.cs: define methods and properties. Some init implementations
23924         * GridTablesFactory.cs: Define methods and properties
23925
23926 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
23927
23928         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
23929         graphics port changes.  We still want the coordinates in global screen
23930         coordinates.
23931
23932 2005-04-14  Jackson Harper  <jackson@ximian.com>
23933
23934         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
23935         check plus minus or checkbox clicks unless those features are enabled.
23936
23937 2005-04-14  Jackson Harper  <jackson@ximian.com>
23938
23939         * TreeView.cs: Add methods for setting the top and bottom visible
23940         nodes. TreeNode::EnsureVisible uses these methods.
23941         * TreeNode.cs: Implement EnsureVisible
23942
23943 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
23944
23945         * Form.cs: Pospone menu assignation if the window has not been created yet
23946         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
23947         size and position
23948
23949 2005-04-12  Jackson Harper  <jackson@ximian.com>
23950
23951         * TreeView.cs: Set the TopNode properly when scrolling
23952         occurs. This has the added benifit of reducing the amount of
23953         walking that needs to be done when drawing. Also removed an old
23954         misleading TODO.
23955         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
23956         
23957 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
23958
23959         * Timer.cs: fixes interval setting when the timer is already enabled
23960         
23961 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
23962
23963         * FolderBrowserDialog.cs: First approach
23964
23965 2005-04-09  Peter Bartok  <pbartok@novell.com>
23966
23967         * FolderBrowserDialog: Added
23968
23969 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
23970
23971         * LinkLabel.cs: move drawing code into the theme
23972         * ThemeWin32Classic.cs: drawing code and painting background bugfix
23973         * Theme.cs: define DrawLinkLabel method
23974
23975 2005-04-05  Jackson Harper  <jackson@ximian.com>
23976
23977         * BindingContext.cs: Use weak references so these bad actors don't
23978         stay alive longer then they need to.
23979
23980 2005-04-05  Jackson Harper  <jackson@ximian.com>
23981
23982         * ListControl.cs: Basic implementation of complex databinding.
23983         * ComboBox.cs:
23984         * ListBox.cs: Add calls to ListControl databinding methods.
23985
23986 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
23987
23988         * FileDialog.cs:
23989           - Don't change PopupButtonState to Normal when the
23990             PopupButton gets pressed several times.
23991           - Renamed ButtonPanel to PopupButtonPanel
23992
23993 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
23994
23995         * ColorDialog.cs: Use cached objects instead of creating them
23996         * LinkLabel.cs: Use cached objects instead of creating them
23997         * Splitter.cs: Use cached objects instead of creating them
23998         * FontDialog.cs: Use cached objects instead of creating them
23999         * PropertyGridView.cs: Use cached objects instead of creating them
24000         * MessageBox.cs: Use cached objects instead of creating them
24001         * FileDialog.cs: Use cached objects instead of creating them
24002         * ThemeWin32Classic.cs: Use cached objects instead of creating them
24003         * TreeView.cs: Use cached objects instead of creating them
24004         
24005 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
24006
24007         * Control.cs: use Equals to compare the font since no == op
24008         * ScrollBar.cs: use Equals to compare the font since no == op
24009
24010 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
24011
24012         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
24013
24014 2005-04-01  Jackson Harper  <jackson@ximian.com>
24015
24016         * Binding.cs: Implement IsBinding.
24017         * BindingManagerBase.cs:
24018         * PropertyManager.cs:
24019         * CurrencyManager.cs: Add IsSuspended property.
24020
24021 2005-04-01  Jackson Harper  <jackson@ximian.com>
24022
24023         * Binding.cs: Had some IsAssignableFrom calls backwards.
24024
24025 2005-04-01  Jackson Harper  <jackson@ximian.com>
24026
24027         * Binding.cs: Handle null data members when pulling data.
24028         * PropertyManager.cs: Handle the data member being a property that
24029         does not exist.
24030
24031 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
24032
24033         * DataGridTextBoxColumn.cs: fixes signature
24034         * DataGrid.cs: calls right constructor
24035
24036 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
24037
24038         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
24039         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
24040         * GridTableStylesCollection.cs: implements GridTableStylesCollection
24041         * DataGridTableStyle.cs: implements DataGridTableStyle
24042         * DataGridBoolColumn.cs: implements DataGridBoolColumn
24043         * DataGridTextBox.cs: implements DataGridTextBox
24044         * DataGridColumnStyle.cs: implements DataGridColumnStyle
24045
24046 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
24047
24048         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
24049
24050 2005-03-29  Peter Bartok  <pbartok@novell.com>
24051
24052         * Application.cs:
24053           - Properly implemented CompanyName property
24054           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
24055             returns a path that includes CompanyName, ProductName and
24056             Version (fixes bug #70330)
24057
24058 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
24059
24060         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
24061           fixes bug #72588.
24062
24063 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
24064
24065         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
24066         
24067           - Added ReadOnly CheckBox
24068           - Further refactoring: moved some code from Open-/SaveFileDialog
24069             to FileDialog
24070
24071 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
24072
24073         * OpenFileDialog.cs: Fixed CheckFileExists
24074         * FileDialog.cs:
24075           Moved FileView and DirComboBox outside FileDialog class.
24076           They can now be used outside FileDialog
24077
24078 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
24079
24080         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
24081         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
24082
24083 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
24084
24085         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
24086           - Added missing CreatePrompt property in SaveDialog
24087           - Overall SaveDialog handling should be better now
24088           - Added non standard ShowHiddenFiles property
24089           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
24090           - Added InitialDirectory and RestoreDirectory support
24091
24092 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
24093
24094         * FileDialog.cs: Made dirComboBox usable
24095
24096 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
24097
24098         * FileDialog.cs: Added Filter support (case sensitiv)
24099
24100 2005-03-24  Jackson Harper  <jackson@ximian.com>
24101
24102         * TabControl.cs: Need a couple more pixels for the lines.
24103
24104 2005-03-23  Jackson Harper  <jackson@ximian.com>
24105
24106         * TabControl.cs: Give the tab page focus when it is selected.
24107
24108 2005-03-23  Jackson Harper  <jackson@ximian.com>
24109
24110         * TabControl.cs: Account for the drawing of tabs borders when
24111         invalidating. If the slider was clicked dont do click detection on
24112         the tabs.
24113
24114 2005-03-23  Jackson Harper  <jackson@ximian.com>
24115
24116         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
24117
24118 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
24119
24120         * CategoryGridEntry.cs: Added
24121         * GridItem.cs: Added helper properties
24122         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
24123         * GridEntry.cs: Updated code for collection
24124         * PropertyGrid.cs: Cleaned up some formatting
24125         * PropertyGridView.cs: Added drop down functionality for enums.
24126         * GridItemCollection.cs: Added enumerator logic
24127         * PropertyGridEntry.cs: Added
24128
24129 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
24130
24131         * FileDialog.cs:
24132           - Removed unnecessary commented code
24133           - Fixed handling for entering the filename manually in the combobox
24134
24135 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
24136
24137         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
24138
24139 2005-03-18  Peter Bartok  <pbartok@novell.com>
24140
24141         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
24142           them being touching the border
24143
24144 2005-03-18  Peter Bartok  <pbartok@novell.com>
24145
24146         * TextControl.cs: Quick hack to center text better
24147
24148 2005-03-18  Peter Bartok  <pbartok@novell.com>
24149
24150         * ControlPaint.cs:
24151           - Don't throw NotImplemented exceptions, just print a notice once
24152             instead (requested by Miguel). This makes running existing SWF
24153             apps a bit easier
24154         * Control.cs:
24155           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
24156           - Added context menu trigger on right click
24157         * Panel.cs: Trigger invalidate on resize
24158         * StatusBar.cs:
24159           - Removed old double-buffer drawing
24160           - Added ResizeRedraw style to force proper update of statusbar
24161         * ListView.cs:
24162           - Removed debug output
24163         * ThemeWin32Classic.cs:
24164           - Fixed drawing of status bar, now draws Text property if there
24165             are no defined panels
24166
24167 2005-03-18  Jackson Harper  <jackson@ximian.com>
24168
24169         * ImageList.cs: When the image stream is set pull all the images
24170         from it.
24171         * ImageListStreamer.cs: Implement reading image list streams.
24172
24173 2005-03-18  Peter Bartok  <pbartok@novell.com>
24174
24175         * ThemeWin32Classic.cs (DrawPictureBox):
24176           - Fixed calculations for centered drawing
24177           - Fixed drawing for normal mode, not scaling the image on normal
24178
24179 2005-03-18  Peter Bartok  <pbartok@novell.com>
24180
24181         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
24182           textbox
24183         * FileDialog.cs:
24184           - Made Open/Save button the accept button for FileDialog
24185           - Tied the cancel button to the IButtonControl cancel button
24186           - Save/Open now properly builds the pathname
24187           - Now handles user-entered text
24188           - Preventing crash on right-click if no item is selected
24189           - Fixed Text property, now uses contents of textbox
24190           - Fixed SelectedText property, now just returns the text part that
24191             is selected in the text box
24192
24193 2005-03-18  Jackson Harper  <jackson@ximian.com>
24194
24195         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
24196         rect, make sure to de-adjust the interior rect after drawing the
24197         tab text.
24198
24199 2005-03-18  Peter Bartok  <pbartok@novell.com>
24200
24201         * MenuAPI.cs: Remove menu *before* executing selected action to
24202           prevent the menu from 'hanging around'
24203           
24204 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
24205
24206         * XplatUIOSX.cs: Implemented WorkingArea property
24207
24208 2005-03-17  Peter Bartok  <pbartok@novell.com>
24209
24210         * XplatUIX11.cs: Fixed menu coord calculations
24211         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
24212           for calculating offsets
24213
24214 2005-03-17  Peter Bartok  <pbartok@novell.com>
24215
24216         * Hwnd.cs: Do not consider menu presence for default client
24217           rectangle location/size
24218         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
24219           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
24220           translation functions
24221         * FileDialog.cs: Fixed (what I presume is a) typo
24222
24223 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
24224
24225         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
24226           X access (avoids X-Async errors)
24227
24228 2005-03-16  Jackson Harper  <jackson@ximian.com>
24229
24230         * TabControl.cs: Raise the SelectedIndexChanged event.
24231
24232 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
24233
24234         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
24235           - Removed vertical ToolBar and replaced it with a custom panel
24236             (desktop and home button already work)
24237           - Added Help button (some controls get resized or relocated then)
24238           - Draw correct text depending on Open or Save.
24239           - Fixed some typos...
24240
24241 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
24242
24243         * ScrollBar.cs:
24244           - Only change Maximum and Minimum when need it (bug fix)
24245
24246 2005-03-15  Peter Bartok  <pbartok@novell.com>
24247
24248         * Form.cs: Use Handle for icon, to trigger creation if
24249           the window does not yet exist
24250         * Control.cs:
24251           - CanSelect: Slight performance improvement
24252           - Focus(): Preventing possible recursion
24253           - Invalidate(): Removed ControlStyle based clear flag setting
24254           - WM_PAINT: fixed logic for calling OnPaintBackground
24255           - WM_ERASEBKGND: Fixed logic, added call to new driver method
24256             EraseWindowBackground if the control doesn't paint background
24257         * XplatUIWin32.cs:
24258           - Moved EraseWindowBackground() method to internal methods
24259           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
24260             is sent via SendMessage on BeginPaint call on Win32
24261         * XplatUIX11.cs:
24262           - Added EraseWindowBackground() method
24263           - No longer sends WM_ERASEBKGND on .Expose, but on call to
24264             PaintEventStart, which more closely matches Win32 behaviour
24265           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
24266           - Fixed SetFocus() to properly deal with client and whole windows
24267         * Hwnd.cs: Added ErasePending property
24268         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
24269         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
24270
24271 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
24272
24273         * XplatUIOSX.cs:
24274           - Fix hard loop when timers exist.
24275           - Fix bugs with middle and right click for 3 button mice.
24276
24277 2005-03-11  Peter Bartok  <pbartok@novell.com>
24278
24279         * XplatUIX11.cs:
24280           - get_WorkingArea: Need to call X directly, GetWindowPos only
24281             returns cached data now
24282           - Added sanity check to GetWindowPos hwnd usage
24283
24284 2005-03-11  Jackson Harper  <jackson@ximian.com>
24285
24286         * BindingManagerBase.cs: This method isn't used anymore as
24287         PullData now updates the data in the control.
24288
24289 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
24290
24291         * Form.cs: fixes menu drawing on X11
24292         * MenuAPI.cs:  fixes menu drawing on X11
24293
24294 2005-03-11  Peter Bartok  <pbartok@novell.com>
24295
24296         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
24297           from Jonathan Gilbert; should fix bug #73606
24298         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
24299           in Screen coordinates. Thanks, Jordi.
24300         * Form.cs: Added missing attribute
24301
24302 2005-03-11  Peter Bartok  <pbartok@novell.com>
24303
24304         * Form.cs:
24305           - Rudimentary Mdi support
24306           - Removed outdated FormParent code
24307           - Implemented lots of missing properties and methods, still missing
24308             transparency support
24309           - Added missing attributes
24310           - Implemented support for MaximumBounds
24311           - Added firing of various events
24312         * XplatUI.cs: Added SetIcon() method
24313         * XplatUIDriver.cs: Added SetIcon() abstract
24314         * XplatUIOSX.cs: Stubbed out SetIcon() method
24315         * XplatUIX11.cs:
24316           - Implemented SetIcon() support
24317           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
24318           - Switched to unix line endings
24319         * XplatUIWin32.cs:
24320           - Made POINT internal so for can access it as part of MINMAX
24321           - Implemented SetIcon() support
24322           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
24323             native Mdi support again, might have to go managed)
24324         * Control.cs: Now fires the StyleChanged event
24325         * MdiClient.cs: Added; still mostly empty
24326
24327 2005-03-10  Peter Bartok  <pbartok@novell.com>
24328
24329         * SaveFileDialog.cs: Added emtpy file
24330
24331 2005-03-08  Peter Bartok  <pbartok@novell.com>
24332
24333         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
24334           in turn triggers OnCreateContro) when creating a handle for the
24335           first time.
24336         * TextControl.cs: Fixed endless loop in certain cases when
24337           replacing the current selection
24338
24339 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
24340
24341         * ScrollBar.cs:
24342           - Honors NewValue changes in Scroll events allowing apps to change it
24343           - Adds First and Last Scroll events
24344           - Fixes Thumb events
24345
24346 2005-03-07  Peter Bartok  <pbartok@novell.com>
24347
24348         * Hwnd.cs: Added DefaultClientRectangle property
24349         * XplatUI.cs: Now using the X11 driver Where() method, which provides
24350           more detailed debug information
24351         * XplatUIX11.cs:
24352           - Fixed size-change feedback loop, where we would pull an old size
24353             off the queue and mistakenly change our window's size to an
24354             earlier value
24355           - Now compressing ConfigureNotify events, to reduce looping and
24356             redraw issues
24357         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
24358           is called
24359
24360 2005-03-07  Jackson Harper  <jackson@ximian.com>
24361
24362         * Binding.cs: Push data pushes from data -> property. Check if the
24363         property is readonly when attempting to set it.
24364
24365 2005-03-07  Jackson Harper  <jackson@ximian.com>
24366
24367         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
24368         instead of IsSubclassOf. Pulling data now sets the value on the
24369         control.
24370         * PropertyManager.cs:
24371         * CurrencyManager.cs: Just need to pull data when updating now,
24372         because PullData will set the value on the control.
24373
24374 2005-03-04  Jackson Harper  <jackson@ximian.com>
24375
24376         * Binding.cs: Implement data type parsing and converting on pulled
24377         data. TODO: Are there more ways the data can be converted?
24378
24379 2005-03-04  Jackson Harper  <jackson@ximian.com>
24380
24381         * Binding.cs: Support <Property>IsNull checks. Also bind to the
24382         controls Validating method so we can repull the data when the
24383         control loses focus.
24384
24385 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
24386
24387         * ColumnHeader.cs:
24388           - Fixes null string format
24389           
24390         * ListView.cs:
24391           - Adds enum type checks
24392           - Fixes redrawing and recalc need after changing some properties
24393           - Fixes on focus_item set after the event
24394           - Fixes adding columns after the control has been created
24395           
24396         * ThemeWin32Classic.cs:
24397           - Fixes CheckBox focus rectangle
24398           - Fixes ColumnHeader drawing
24399
24400
24401 2005-03-03  Jackson Harper  <jackson@ximian.com>
24402
24403         * Binding.cs: Bind to <Property>Changed events so we can detect
24404         when properties are changed and update the data.
24405
24406 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
24407
24408         * ImageList.cs:
24409           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
24410           - Fixes ImageList constructor with ImageList container
24411           - Fixes image scaling (wrong parameters at DrawImage)
24412
24413 2005-02-02  Jackson Harper  <jackson@ximian.com>
24414
24415         * Binding.cs: Make property searches case-insensitive. Eliminate
24416         some duplicated code.
24417
24418 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
24419
24420         * ComboBox.cs:
24421                 - Handle focus event
24422                 - Fix scrollbar events
24423                 - Discard highlighted item if remove it
24424                 - Fixes SelectedItem with strings
24425
24426 2005-03-01  Peter Bartok  <pbartok@novell.com>
24427
24428         * Control.cs:
24429           - Fixed Visible property, now follows (once again) parent chain
24430             to return false if any control in the chain is visible=false
24431           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
24432           - Fixed several places where is_visible instead of Visible was used
24433           - Implemented FIXME related to focus selection when setting focused
24434             control to be invisible
24435
24436         * XplatUIWin32.cs: Now using proper method to find out if window is
24437           visible. Thanks to Jordi for pointing it out
24438
24439 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
24440
24441         * ComboBox.cs: show/hide scrollbar instead of creating it
24442
24443 2005-02-27  Jackson Harper  <jackson@ximian.com>
24444
24445         * CurrencyManager.cs: Add PositionChanged stuff.
24446
24447 2005-02-27  Peter Bartok  <pbartok@novell.com>
24448
24449         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
24450         * XplatUIOSX.cs: Added GetMenuOrigin() stub
24451         * XplatUIWin32.cs: Implemented GetMenuOrigin()
24452         * XplatUIX11.cs:
24453           - Implemented GetMenuDC()
24454           - Implemented GetMenuOrigin()
24455           - Implemented ReleaseMenuDC()
24456           - Implemented generation of WM_NCPAINT message
24457           - Implemented generation and handling of WM_NCCALCSIZE message
24458         * Form.cs: Added debug helper message for Jordi's menu work
24459         * Hwnd.cs:
24460           - Modified ClientRect property; added setter, fixed getter to handle
24461             setting of ClientRect
24462           - Added MenuOrigin property
24463
24464 2005-02-26  Peter Bartok  <pbartok@novell.com>
24465
24466         * XplatUIX11.cs:
24467           - Destroys the caret if a window that's being destroyed contains it
24468           - Ignores expose events coming from the X11 queue for windows that
24469             already are destroyed
24470           - Now uses the proper variable for handling DestroyNotify, before we
24471             marked the wrong window as destroyed
24472           - Improved/added some debug output
24473
24474 2005-02-26  Peter Bartok  <pbartok@novell.com>
24475
24476         * X11Keyboard.cs: Fixes to work on 64bit systems
24477
24478 2005-02-26  Peter Bartok  <pbartok@novell.com>
24479
24480         * Control.cs:
24481           - Now calling OnHandleDestroyed from DestroyHandle()
24482             instead of Dispose()
24483           - Removed bogus call to controls.Remove() from DestroyHandle()
24484
24485 2005-02-26  Peter Bartok  <pbartok@novell.com>
24486
24487         * Control.cs: Properly destroy child windows when our handle is
24488           destroyed
24489
24490 2005-02-25  Peter Bartok  <pbartok@novell.com>
24491
24492         * XplatUI.cs:
24493           - Added 'DriverDebug' define to allow tracing XplatUI API calls
24494           - Alphabetized Static Methods and Subclasses
24495
24496         * XplatUIX11.cs:
24497           - Added XException class to allow custom handling of X11 exceptions
24498           - Created custom X11 error handler, tied into XException class
24499           - Added support for MONO_XEXCEPTIONS env var to allow the user
24500             to either throw an exception on X errors or continue running
24501             after displaying the error
24502           - Added handling of DestroyNotify message
24503           - Added handler for CreateNotify message (still disabled)
24504           - Improved (tried to at least) Where method to provide file and lineno
24505         * X11Structs.cs:
24506           - Added XErrorHandler delegate
24507           - Added XRequest enumeration (to suppor translation of errors)
24508
24509 2005-02-25  Jackson Harper  <jackson@ximian.com>
24510
24511         * PropertyManager.cs: Implement editing features
24512         * CurrencyManager.cs:
24513         * Binding.cs: First attempt at UpdateIsBinding
24514         * BindingManagerBase.cs: Call UpdateIsBinding before
24515         pushing/pulling data.
24516
24517 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
24518
24519         * MenuAPI.cs: Respect disabled items
24520         * ThemeWin32Classic.cs
24521                 - Caches ImageAttributes creation for DrawImageDisabled
24522                 - Fixes vertical menu line drawing
24523                 - Draws disabled arrows in disable menu items
24524
24525 2005-02-24  Peter Bartok  <pbartok@novell.com>
24526
24527         * Hwnd.cs:
24528           - Added UserData property to allow associating arbitrary objects
24529             with the handle
24530           - Fixed leak; now removing Hwnd references from static windows array
24531         * XplatUIWin32.cs:
24532           - Fixed Graphics leak in PaintEventEnd
24533           - Removed usage of HandleData, switched over to Hwnd class
24534         * HandleData.cs: Removed, obsoleted by Hwnd.cs
24535
24536 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
24537
24538         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
24539         * ScrollBar.cs: Fixes bug
24540         * TrackBar.cs: removes death code, clipping, mimize refreshes,
24541          keyboard navigation enhancements
24542
24543 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
24544
24545         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
24546         * GroupBox.cs: Add control styles
24547         * Label.cs: Add control styles
24548         * UpDownBase.cs: Add control styles
24549         * ListBox.cs: Add control styles
24550         * XplatUIWin32.cs: Fixes wrong parameter order
24551
24552
24553 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
24554
24555         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
24556
24557 2005-02-23  Jackson Harper  <jackson@ximian.com>
24558
24559         * PropertyManager.cs: Implement property binding. This doesn't
24560         seem to work yet though as (I think) there are some bugs in
24561         System.ComponentModel.PropertyDescriptor.
24562         * BindingContext.cs: Use new PropertyManager constructor.
24563
24564 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
24565
24566         * ProgressBar.cs: use clip region in ProgressBar
24567         * ThemeWin32Classic.cs: use clip region in ProgressBar
24568
24569 2004-02-22  Jackson Harper  <jackson@ximian.com>
24570
24571         * BindingsCollection.cs: Remove some debug code.
24572
24573 2005-02-22  Jackson Harper  <jackson@ximian.com>
24574
24575         * BindingContext.cs:
24576         * ControlBindingsCollection.cs:
24577         * CurrencyManager.cs:
24578         * Binding.cs:
24579         * BindingManagerBase.cs: Initial implementation
24580         * BindingsCollection.cs: Add an internal contains method that the
24581         BindingManagerBase uses to ensure bindings aren't added twice to
24582         the collection.
24583         * PropertyManager.cs: Stubbed out.
24584         * Control.cs:
24585         * ContainerControl.cs: Hook up databinding
24586         
24587 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
24588
24589         * XplatUIOSX.cs:
24590           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
24591           Fixed Invalidate/Update chain.
24592           Fixed tons of other minor bugs (this is almost a complete rewrite).
24593
24594 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
24595
24596         * ComboBox.cs: do subcontrol creation when the control is created
24597
24598 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
24599
24600         * Label.cs: fixes image drawing (image and imagelist)
24601         * ThemeWin32Classic.cs: cache brushes
24602         
24603 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
24604
24605         * Form.cs: Move menu drawing code to Theme class
24606         * ComboBox.cs: Move ComboBox drawing code to Theme class
24607         * MenuItem.cs: Move menu drawing code to Theme class
24608         * MenuAPI.cs: Move menu drawing code to Theme class
24609         * ThemeWin32Classic.cs: New methods
24610         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
24611         * ListBox.cs: Move Listbox drawing code to Theme class
24612         * Theme.cs: New methods
24613
24614 2005-02-20  Peter Bartok  <pbartok@novell.com>
24615
24616         * Control.cs:
24617           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
24618             only process mnemonics on those)
24619           - Fixed event sequence for key handling; first calling
24620             ProcessKeyEventArgs now
24621         * TextBoxBase.cs:
24622           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
24623             for processing non-character keys
24624           - Fixed WM_CHAR to generate proper event sequence before processing
24625         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
24626           generation
24627
24628 2005-02-19  Peter Bartok  <pbartok@novell.com>
24629
24630         * UserControl.cs: Added TextChanged event; added attributes
24631         * SizeGrip.cs: Implemented resizing and optional display of grip
24632         * Form.cs: Fixed attribute
24633         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
24634           Changed meaning of ScrollWindow bool argument; instead of the
24635           clear attribute (which will be true usually anyway), it gives the
24636           option of moving child controls as well.
24637         * XplatUIX11.cs:
24638           - Changed to match new ScrollWindow argument
24639           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
24640             now handles the implicit parent window a WM puts around us
24641         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
24642           to work)
24643         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
24644         * TreeView.cs: Adjusted to new ScrollWindow arguments
24645
24646 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
24647
24648         * Form.cs: Menu integration with non-client area
24649         * MenuItem.cs: Menu integration with non-client area
24650         * MenuAPI.cs: Menu integration with non-client area
24651
24652 2005-02-18  Peter Bartok  <pbartok@novell.com>
24653
24654         * MethodInvoker.cs: Added
24655         * MdiLayout.cs: Added
24656         * SendKeys.cs: Started implementation
24657         * ErrorIconAlignment.cs: Added
24658
24659 2005-02-18  Peter Bartok  <pbartok@novell.com>
24660
24661         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
24662         * Form.cs: Added handling for Menu-related Non-client messages
24663
24664 2005-02-17  Peter Bartok  <pbartok@novell.com>
24665
24666         * UpDownBase.cs: Fixed typo, compilation errors
24667         * DomainUpDown.cs: Fixed attribute value
24668
24669 2005-02-16  Miguel de Icaza  <miguel@novell.com>
24670
24671         * UpDownBase.cs: Attach entry events.
24672         Propagate events.
24673         Add ForeColor property, Focused, InterceptArrowKeys (interception
24674         does not work yet).
24675
24676 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
24677
24678         * Form.cs:
24679                 - Redraw non client are on Setmenu
24680                 - Calc proper menu starting point
24681
24682 2005-02-17  Peter Bartok  <pbartok@novell.com>
24683
24684         * Application.cs: Fixed message_filter check
24685
24686 2005-02-17  Peter Bartok  <pbartok@novell.com>
24687
24688         * Application.cs: Now calls registered message filters
24689         * DockStyle.cs: Fixed attribute
24690         * Form.cs: Fixed attribute
24691         * Menu.cs: Fixed attribute
24692         * ToolTip.cs: Fixed attribute
24693         * TreeNode.cs: Added missing attributes and arranged in regions
24694         * PropertyGrid.cs: Fixed signatures
24695         * TreeNodeCollection.cs: Added attributes
24696         * Splitter.cs: Added missing attributes; arranged into regions
24697         * TabPage.cs: Added missing attributes; arranged into regions
24698         * TextBoxBase.cs: Added missing attributes
24699         * TextBox.cs: Added missing attributes
24700         * ArrangeDirection.cs: Added missing attributes
24701         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
24702         * ToolBarButton.cs: Fixed attributes
24703         * AnchorStyles.cs: Fixed attribute
24704         * TrackBar.cs: Fixed attributes
24705         * TabControl.cs: Added missing attributes and arranged into regions
24706         * ToolBar.cs: Fixed attribute
24707         * StatusBar.cs: Fixed signature, organized into regions and added
24708           attributes
24709         * StatusBarPanel.cs: Fixed attributes
24710         * ContentsResizedEventArgs.cs: Implemented
24711         * ContentsResizedEventHandler.cs: Implemented
24712         * DateBoldEventArgs.cs: Implemented
24713         * DateBoldEventHandler.cs: Implemented
24714         * UpDownEventArgs.cs: Implemented
24715         * UpDownEventHandler.cs: Implemented
24716         
24717 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
24718
24719         * Form.cs: first Menu NC refactoring
24720         * MenuAPI.cs: first Menu NC refactoring
24721         
24722 2005-02-16  Peter Bartok  <pbartok@novell.com>
24723
24724         * ImeMode.cs: Added missing attributes
24725         * Menu.cs: Fixed attribute
24726         * GroupBox.cs: Fixed attribute
24727         * Label.cs: Fixed attribute
24728         * ColorDialog.cs (RunDialog): Removed TODO attribute
24729         * ComboBox.cs: Fixed attributes
24730         * ListControl.cs: Added missing attributes
24731         * PropertyGrid.cs: Fixed attributes
24732         * Control.cs: Fixed attributes
24733         * ListViewItem.cs: Added TypeConverter attribute
24734         * NotifyIcon.cs: Fixed attributes
24735         * ListView.cs: Fixed attributes
24736         * ButtonBase.cs: Fixed attribute
24737         * ImageList.cs: Added missing attributes
24738         * ContainerControl.cs: Fixed signature
24739         * CheckedListBox.cs: Fixed attribute; added missing attributes
24740         * Panel.cs: Fixed attributes
24741         * PropertyTabChangedEventArgs.cs: Added missing attribute
24742         * PropertyValueChangedEventArgs.cs: Added missing attribute
24743         * Binding.cs: Fixed attribute
24744         * ListViewItemConverter: Implemented ListViewSubItemConverter class
24745         * ListBox.cs: Fixed attribute; added missing attributes;
24746         * ScrollableControl.cs: Added missing attributes
24747         * PictureBox.cs: Added missing attributes; implemented missing property
24748         * DateTimePicker.cs: Added missing attributes
24749         * Theme.cs (ToolWindowCaptionHeight): Fixed type
24750         * MonthCalendar.cs: Fixed attributes
24751         * StatusBarPanel.cs: Added missing attributes
24752         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
24753
24754 2005-02-16  Peter Bartok  <pbartok@novell.com>
24755
24756         * TextBoxBase.cs: The previous method to enforce height yet remember
24757           the requested high was less than ideal, this is an attempt to do
24758           it better.
24759         * Control.cs: Added comment about possible problem
24760         * Copyright: Updated format
24761         * GridItemType.cs: Fixed swapped values
24762
24763 2005-02-15  Jackson Harper  <jackson@ximian.com>
24764
24765         * BaseCollection.cs: Use property so we never access an
24766         uninitialized list. Also initialize the list in the property.
24767
24768 2005-02-15  Peter Bartok  <pbartok@novell.com>
24769
24770         * GroupBox.cs (ProcessMnemonic): Implemented
24771         * Label.cs (ProcessMnemonic): Implemented
24772         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
24773           hotkeys
24774
24775 2005-02-15  Peter Bartok  <pbartok@novell.com>
24776
24777         * RadioButton.cs (ProcessMnemonic): Implemented
24778         * CheckBox.cs (ProcessMnemonic): Implemented
24779         * Control.cs:
24780           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
24781             handling
24782           - Added internal method to allow calling ProcessMnemonic from other
24783             controls
24784         * ContainerControl.cs:
24785           - Started support for handling validation chain handling
24786           - Implemented ProcessMnemonic support
24787           - Added Select() call to Active, to make sure the active control
24788             receives focus
24789         * Form.cs: Setting toplevel flag for Forms (this was lost in the
24790           FormParent rewrite)
24791         * ThemeWin32Classic.cs:
24792           - DrawCheckBox(): Fixed stringformat to show hotkeys
24793           - DrawRadioButton(): Fixed stringformat to show hotkeys
24794         * CommonDialog.cs: Removed WndProc override, not needed
24795
24796 2005-02-14  Peter Bartok  <pbartok@novell.com>
24797
24798         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
24799           missed those in the rewrite
24800
24801 2005-02-14  Miguel de Icaza  <miguel@novell.com>
24802
24803         * NumericUpDown.cs (Increment, ToString): Add.
24804         (DecimalPlaces): implement.
24805         
24806         Add attributes.
24807         
24808         * UpDownBase.cs: Add the designer attributes.
24809
24810 2005-02-13  Peter Bartok  <pbartok@novell.com>
24811
24812         * Panel.cs: Removed border_style, now in Control
24813         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
24814           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
24815
24816 2005-02-13  Peter Bartok  <pbartok@novell.com>
24817
24818         * MouseButtons.cs: Added missing attributes
24819         * XplatUIStructs.cs: Added enumeration for title styles
24820         * LeftRightAlignment.cs: Added missing attributes
24821         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
24822           it compatible with Graphics.FromHwnd()
24823         * SelectedGridItemChangedEventArgs.cs: Fixed property type
24824         * Keys.cs: Added missing attributes
24825         * SelectionRange.cs: Added missing attributes
24826         * SelectionRangeConverter.cs: Added
24827         * XplatUI.cs:
24828           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
24829             ReleaseMenuDC methods
24830           - Renamed ReleaseWindow to UngrabWindow
24831           - Added proper startup notice to allow version identification
24832         * Form.cs:
24833           - Added missing attributes
24834           - Removed FormParent concept
24835         * Label.cs: Removed border_style field, now in Control
24836         * RadioButton.cs: Now properly selects RadioButton when focus is
24837           received
24838         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
24839         * Control.cs:
24840           - Added missing attributes
24841           - Added borderstyle handling
24842           - Removed FormParent concept support
24843           - Fixed calls to XplatUI to match changed APIs
24844           - Fixed bug that would case us to use disposed Graphics objects
24845           - Removed unneeded internal methods
24846           - PerformLayout(): Fixed to handle DockStyle.Fill properly
24847           - SelectNextControl(): Fixed to properly check common parents
24848         * TextBoxBase.cs: Removed border_style field (now in Control)
24849         * MessageBox.cs:
24850           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
24851             fixed calculations for form size
24852           - Added support for localized strings and icons
24853           - Improved form size calculations, added border
24854         * ListView.cs: Removed border_style field (now in Control)
24855         * X11Structs.cs: Moved several structs from X11 driver here
24856         * X11Keyboard.cs: Changed debug message
24857         * Application.cs: Removed FormParent concept support
24858         * CommonDialog.cs:
24859           - Resetting end_modal flag
24860           - Removed FormParent concept support
24861         * NativeWindow.cs: Removed FormParent concept support
24862         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
24863           Client area and Non-Client whole window to allow support for WM_NC
24864           messages
24865         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
24866           prevent using it until it supports Hwnd as per Geoff Norton's request
24867         * ToolBar.cs: Fixed drawing, was not doing proper drawing
24868         * PictureBox.cs: Removed border_style field, now in Control
24869         * XplatUIWin32.cs: Added new driver methods
24870
24871 2005-02-12  Peter Bartok  <pbartok@novell.com>
24872
24873         * OpacityConverter.cs: Implemented
24874         * Hwnd.cs: Internal class to support drivers that need to emulate
24875           client area/non-client area window behaviour
24876
24877 2005-02-11  Peter Bartok  <pbartok@novell.com>
24878
24879         * KeysConverter.cs: Implemented
24880
24881 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
24882
24883         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
24884         * LinkLabel: Added missing attributes
24885         * MainMenu.cs: fixes ToString
24886         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
24887         * ListBox.cs: fixes event position
24888         * TrackBar.cs: adds missing attributes and events
24889         
24890 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
24891
24892         * MenuItem.cs: Use SystemInformation and bug fixes
24893         * MenuAPI.cs: Use SystemInformation and bug fixes
24894
24895 2005-02-09  Jackson Harper  <jackson@ximian.com>
24896
24897         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
24898         their keystate otherwise things like VK_MENU get stuck "on".
24899
24900 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
24901
24902         * ListBox.cs: Fixes AddRange bug
24903         
24904 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
24905
24906         * ProgressBar.cs
24907                 - Add missing attributes
24908                 - Add missing method
24909                 
24910         * CheckedListBox.cs: Added missing attributes
24911                 - Add missing attributes
24912                 - Remove extra method
24913         
24914         * ComboBox.cs: Added missing attributes
24915         * VScrollBar.cs: Added missing attributes
24916         * ScrollBar.cs:  Added missing attributes
24917         * ListBox.cs: Fixes signature, add missing consts
24918         * LinkArea.cs:   Added missing attributes
24919         
24920
24921 2005-02-08  Peter Bartok  <pbartok@novell.com>
24922
24923         * Menu.cs: Added missing attributes
24924         * MainMenu.cs: Added missing attributes
24925         * GroupBox.cs: Added missing attributes
24926         * Label.cs: Added missing attributes
24927         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
24928         * ColorDialog.cs:
24929           - Added Instance and Options properties
24930           - Added missing attributes
24931         * Cursor.cs: Made Serializable
24932         * NotifyIcon: Added missing attributes
24933         * MenuItem.cs: Added missing attributes
24934         * TextBoxBase.cs: Implemented AppendText() and Select() methods
24935         * Panel.cs: Added Missing attributes
24936         * MonthCalendar.cs: Fixed CreateParams
24937
24938 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
24939         
24940         * LinkLabel.cs:
24941                 - Fixes signature
24942                 - Fixes issues with links
24943                 - Adds the class attributes
24944
24945 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
24946         
24947         * ComboBox.cs:
24948                 - Fixes button when no items available in dropdown
24949                 - Fixes repainting problems
24950                 - Adds the class attributes
24951                 
24952 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
24953
24954         * XplatUIOSX.cs: Detect the menu bar and title bar height from
24955         the current theme.  Cache these on startup.
24956
24957 2005-02-07  Jackson Harper  <jackson@ximian.com>
24958
24959         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
24960         the scrollbar buttons when they are depressed.
24961
24962 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
24963
24964         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
24965         Get the display size from the main displayid.  We currently dont
24966         support multiple display configurations.
24967
24968 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
24969
24970         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
24971
24972 2005-02-07  Miguel de Icaza  <miguel@novell.com>
24973
24974         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
24975
24976 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
24977
24978         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
24979
24980 2005-02-04  Jackson Harper  <jackson@ximian.com>
24981
24982         * ThemeWin32Classic.cs: Respect the clipping rect when
24983         drawing. Only fill the intersection of clips and rects so there
24984         isn't a lot of large fills.
24985         * ScrollBar.cs: Pass the correct clipping rect to the theme
24986         engine. Remove some debug code.
24987
24988 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
24989         
24990         * DateTimePicker.cs:
24991                 - Fixed crash on DateTime.Parse, use Constructor instead
24992
24993 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
24994         
24995         * MenuItem.cs:
24996         * MenuAPI.cs:
24997                 - Owner draw support (MeasureItem and DrawItem)
24998
24999 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
25000         
25001         *  Menu.cs:
25002                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
25003                 - Fixes MenuItems.Add range
25004         * MenuItem.cs:
25005                 - MergeMenu and Clone and CloneMenu functions
25006
25007 2005-02-03  Jackson Harper  <jackson@ximian.com>
25008
25009         * ScrollBar.cs: Make abstract
25010         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
25011         is abstract.
25012
25013 2005-02-03  Jackson Harper  <jackson@ximian.com>
25014
25015         * ScrollBar.cs: First part of my scrollbar fixups. This removes
25016         all the unneeded refreshes and uses invalidates with properly
25017         computed rects.
25018
25019 2005-02-03  Peter Bartok  <pbartok@novell.com>
25020
25021         * ComponentModel.cs: Added
25022         * IDataGridEditingService.cs: Added
25023         * Timer.cs: Added missing attributes
25024         * ToolTip.cs: Added missing attributes
25025
25026 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
25027
25028         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
25029
25030 2005-02-03  Peter Bartok  <pbartok@novell.com>
25031
25032         * ListBox.cs: Added missing attributes
25033
25034 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
25035         
25036         * ListBox.cs:
25037                 - Fixes font height after font change
25038                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
25039                 
25040 2005-02-02  Peter Bartok  <pbartok@novell.com>
25041
25042         * HandleData.cs: Introduced static methods to allow class
25043           to be more self-contained and track it's own HandleData objects
25044         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
25045           HandleData to use new static methods
25046
25047 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
25048
25049         * Combobox.cs:
25050                 - Fixes default size and PreferredHeight
25051                 - Missing events
25052                 - ObjectCollection.Insert implementation
25053                 
25054         * ListControl.cs
25055                 - Fixes signature
25056         * ListBox.cs:
25057                 - Several fixes
25058                 - ObjectCollection.Insert implementation
25059                 - No selection after clean
25060                 - Small fixes
25061
25062 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
25063
25064         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
25065
25066 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
25067
25068         * Combobox.cs:
25069                 - Caches ItemHeight calculation for OwnerDrawVariable
25070                 - Handles dropdown properly
25071                 - Fixes several minor bugs
25072
25073 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
25074
25075         * ListBox.cs:
25076                 - Fixes 71946 and 71950
25077                 - Fixes changing Multicolumn on the fly
25078                 - Fixes keyboard navigation on Multicolumn listboxes
25079
25080 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
25081         
25082         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
25083         crash reporter log.
25084
25085 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
25086
25087         * XplatUIOSX.cs: Allow applications to actually exit.
25088
25089 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
25090
25091         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
25092         their parent at creation time rather than lazily later.  Fixes a major
25093         regression we were experiencing.
25094
25095 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
25096
25097         * ThemeWin32Classic.cs: more date time picker painting fixes
25098         * DateTimePicker.cs: more monthcalendar drop down fixes
25099         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
25100
25101 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
25102
25103         * ScrollBar.cs:
25104                 - When moving the thumb going outside the control should stop the moving
25105                 - Adds the firing of missing events
25106                 - Fixes no button show if Size is not specified
25107                 - End / Home keys for keyboard navigation
25108
25109 2005-01-30  Peter Bartok  <pbartok@novell.com>
25110
25111         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
25112           sanity check to prevent theoretical loop
25113         * XplatUIWin32.cs (SetVisible): Removed debug output
25114         * XplatUIX11.cs (SystrayChange): Added sanity check
25115         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
25116         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
25117           behaviour, valid until the X11 client window rewrite is done
25118         * TextBox.cs (ctor): Setting proper default foreground and background
25119           colors
25120
25121 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
25122
25123         * Theme: Added DrawDateTimePicker to interface
25124         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
25125         * DateTimePicker.cs: Created (still needs keys and painting code)
25126         * DateTimePickerFormat.cs: added
25127         * MonthCalendar.cs: fixed CreateParams for popup window mode
25128           
25129 2005-01-29  Peter Bartok  <pbartok@novell.com>
25130
25131         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
25132           this should also the calculations for ligher/darker
25133         * Theme.cs: Fixed defaults for ScrollBar widths/heights
25134
25135 2005-01-29  Peter Bartok  <pbartok@novell.com>
25136
25137         * ArrangeDirection.cs: Added
25138         * ArrangeStartingPositon.cs: Added
25139         * SystemInformation.cs: Implemented
25140         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
25141           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
25142           used by SystemInformation class
25143         * X11Strucs.cs: Added XSizeHints structure
25144         * MenuAPI.cs:
25145           - Fixed CreateParams to make sure the menu window is always visible
25146           - TrackPopupMenu: Added check to make sure we don't draw the
25147             menu offscreen
25148
25149 2005-01-29  Peter Bartok  <pbartok@novell.com>
25150
25151         * HandleData.cs: Added method for altering invalid area
25152         * TextBoxBase.cs: Implemented TextLength
25153
25154 2005-01-28  Peter Bartok  <pbartok@novell.com>
25155
25156         * XplatUIX11.cs: Improvement over last patch, not sending
25157           the WM_PAINT directly anymore, instead we scroll any pending
25158           exposed areas and let the system pick out the WM_PAINT later
25159
25160 2005-01-28  Peter Bartok  <pbartok@novell.com>
25161
25162         * SWF.csproj: Deleted, no longer used. Instead,
25163           Managed.Windows.Forms/SWF.csproj should be used
25164         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
25165           directly, to avoid a potential race condition with the next
25166           scroll
25167
25168 2005-01-28  Peter Bartok  <pbartok@novell.com>
25169
25170         * XplatUI.cs: Made class internal
25171
25172 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
25173
25174         * CheckedListBox.cs:
25175                 - Draw focus
25176                 - Fixed Drawing
25177                 - Missing methods and events
25178
25179 2005-01-27  Peter Bartok  <pbartok@novell.com>
25180
25181         * Application.cs (Run): Don't use form if we don't have one
25182
25183 2005-01-27  Peter Bartok  <pbartok@novell.com>
25184
25185         * TextBoxBase.cs (get_Lines): Fixed index off by one error
25186
25187 2005-01-27  Peter Bartok  <pbartok@novell.com>
25188
25189         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
25190         * GridItem.cs: Added; Patch by Jonathan S. Chambers
25191         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
25192         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
25193         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
25194         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
25195         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
25196         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
25197         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
25198         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
25199         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
25200         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
25201
25202 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
25203
25204         * Combobox.cs:
25205                 - Draw focus on Simple Combobox
25206                 - Fixes drawing issues
25207                 - fixes 71834
25208
25209 2005-01-27  Peter Bartok  <pbartok@novell.com>
25210
25211         * Form.cs:
25212           - Place window in default location, instead of hardcoded 0/0
25213           - Send initial LocationChanged event
25214         * Control.cs:
25215           - UpdateBounds after creation to find out where the WM placed us
25216           - Make sure that if the ParentForm changes location the Form
25217             is notified
25218         * XplatUIX11.cs: XGetGeometry will not return the coords relative
25219             to the root, but to whatever the WM placed around us.
25220             Translate to root coordinates before returning toplevel
25221             coordinates
25222         * XplatUIWin32.cs: Removed debug output
25223         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
25224           flag to GetWindowPos, to allow translation of coordinates on X11
25225
25226 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
25227
25228         * ListBox.cs: connect LostFocus Event
25229
25230 2005-01-27  Peter Bartok  <pbartok@novell.com>
25231
25232         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
25233           XplatUIX11.cs: Extended the Systray API
25234         * Form.cs: Removed debug output
25235         * Application.cs: Fixed focus assignment, always need to call
25236           XplatUI.Activate() since Form.Activate() has rules that may
25237           prevent activation
25238         * NotifyIcon.cs: Should be complete now
25239         * ToolTip.cs: Worked around possible timer bug
25240
25241 2005-01-27  Jackson Harper  <jackson@ximian.com>
25242
25243         * TabControl.cs:
25244         - Only invalidate the effected tabs when the
25245         selected index changes. This reduces drawing and gets rid of some
25246         flicker.
25247         - Only refresh if the tabs need to be shifted, otherwise only
25248         invalidate the slider button.
25249         - On windows the tabs are not filled to right if the slider is
25250         visible.
25251         
25252 2005-01-27  Jackson Harper  <jackson@ximian.com>
25253
25254         * TabControl.cs: Only refresh on mouseup if we are showing the
25255         slider. Also only invalidate the button whose state has changed.
25256
25257 2005-01-26  Peter Bartok  <pbartok@novell.com>
25258
25259         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
25260         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
25261           and SystrayRemove() methods
25262         * XplatUIOSX.cs: Stubbed Systray methods
25263         * XplatUIX11.cs:
25264           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
25265             methods
25266           - Fixed broken XChangeProperty calls (marshalling messed up things)
25267         * X11Structs.cs: Added enums and structs required for Size hinting
25268         * NotifyIcon.cs: Added & implemented
25269
25270 2005-01-26  Jackson Harper  <jackson@ximian.com>
25271
25272         * TabControl.cs: Space vertically layed out tabs properly.
25273
25274 2005-01-26  Peter Bartok  <pbartok@novell.com>
25275
25276         * Form.cs (CreateClientParams): Always set the location to 0,0
25277           since we're a child window.
25278
25279         * Control.cs (SetVisibleCore): Always explicitly setting the location
25280           of a toplevel window, apparently X11 doesn't like to move windows
25281           while they're not mapped.
25282
25283 2005-01-26  Jackson Harper  <jackson@ximian.com>
25284
25285         * TabControl.cs: Implement FillToRight size mode with vertically
25286         rendered tabs.
25287
25288 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
25289
25290         * ControlPaint.cs, ThemeWin32Classic.cs
25291                 - Fixes DrawFocusRectangle
25292
25293 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
25294
25295         * MenuAPI.cs:
25296                 - MenuBar tracking only starts when item is first clicked
25297                 - Fixes menu hidding for multiple subitems
25298                 - Unselect item in MenuBar when item Executed
25299                 - Fixes bug 71495
25300
25301 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
25302
25303         * ListControl.cs:
25304                 - IsInputKey for ListBox
25305         * ListBox.cs:
25306                 - Focus item
25307                 - Shift and Control item selection
25308                 - Implement SelectionMode.MultiExtended
25309                 - Fixes RightToLeft
25310         * ComboBox.cs:
25311                 - IsInputKey implemented
25312                 - Do not generate OnTextChangedEdit on internal txt changes
25313                 
25314 2005-01-23  Peter Bartok  <pbartok@novell.com>
25315
25316         * AccessibleObject.cs: Partially implemented Select()
25317         * MonthCalendar.cs: Added missing attributes and events
25318         * Form.cs: Fixed CreateParams behaviour, now controls derived from
25319           form can properly override CreateParams.
25320         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
25321           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
25322           Control performs Invalidate & Update
25323         * NativeWindow (CreateHandle): Added special handling for Form
25324           and Form.FormParent classes to allow overriding of From.CreateParams
25325         * Control.cs:
25326           - ControlNativeWindow: Renamed 'control' variable to more intuitive
25327             name 'owner'
25328           - ControlNativeWindow: Added Owner property
25329           - Removed usage of Refresh() on property changes, changed into
25330             Invalidate(), we need to wait until the queue is processed for
25331             updates, direct calls might cause problems if not all vars for
25332             Paint are initialized
25333           - Added call to UpdateStyles() when creating the window, to set any
25334             styles that CreateWindow might have ignored.
25335           - Added support for Form CreateParent overrides to UpdateStyles()
25336         * MessageBox.cs: Removed no longer needed FormParent override stuff,
25337           CreateParams are now properly overridable
25338         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
25339           CreateParams are now properly overridable
25340
25341 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
25342
25343         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
25344         OnTextBoxChanged.
25345
25346         Capture LostFocus and OnTextBoxChanged.  The later introduces a
25347         recursive invocation that I have not figured out yet.
25348
25349         Reset the timer when not using (it was accumulating).
25350
25351
25352         (OnTextBoxChanged): Set UserEdit to true here to track whether the
25353         user has made changes that require validation.
25354
25355         Reset changing to avoid loops.
25356
25357 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
25358
25359         * NumericUpDown.cs: Display value at startup.
25360
25361         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
25362         ValidateEditText.
25363
25364         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
25365         filled in.  Added some basic parsing of text.
25366
25367         Still missing the OnXXX method overrides, and figuring out the
25368         events that must be emitted.
25369
25370         * UpDownBase.cs: Handle UserEdit on the Text property.
25371         
25372 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
25373
25374         * ComboBox.cs:
25375           - Fixes IntegralHeight
25376           - ToString method
25377
25378 2005-01-21  Jackson Harper  <jackson@ximian.com>
25379
25380         * TabControl.cs: Set the SelectedIndex property when SelectedTab
25381         is set so that the page visibility is updated and the tabs are
25382         sized correctly.
25383
25384 2005-01-21  Jackson Harper  <jackson@ximian.com>
25385
25386         * TabControl.cs: Use cliping rectangle for blitting. Give the
25387         theme the clipping rect so we can do clipping while
25388         drawing. Remove some debug code.
25389
25390 2005-01-21  Jackson Harper  <jackson@ximian.com>
25391
25392         * TabPage.cs: Add a new method so tab pages can force the tab
25393         control to recalculate the tab page sizes.
25394         * TabControl.cs: UpdateOwner needs to make the tab control recalc
25395         sizes.
25396
25397 2005-01-20  Jackson Harper  <jackson@ximian.com>
25398
25399         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
25400
25401 2005-01-20  Jackson Harper  <jackson@ximian.com>
25402
25403         * TreeView.cs: Set the bounds for nodes properly. They were
25404         getting screwed up when checkboxes were not enabled, but images
25405         were.
25406
25407 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
25408
25409         * ListBox.cs:
25410                 - Owner draw support
25411                 - Fixes
25412                 
25413 2005-01-20  Jackson Harper  <jackson@ximian.com>
25414
25415         * XplatUIStructs.cs: More misc keys
25416         * X11Keyboard.cs: Ignore some control keys.
25417
25418 2005-01-20  Jackson Harper  <jackson@ximian.com>
25419
25420         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
25421         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
25422
25423 2005-01-19  Peter Bartok  <pbartok@novell.com>
25424
25425         * Control.cs: Un-selecting the control when it is loosing focus
25426
25427 2005-01-19  Jackson Harper  <jackson@ximian.com>
25428
25429         * TreeView.cs: Hook up to the text controls leave event so we can
25430         end editing when the users clicks outside the text box.
25431         
25432 2005-01-19  Jackson Harper  <jackson@ximian.com>
25433
25434         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
25435         get set in the conversion array.
25436
25437 2005-01-19  Peter Bartok  <pbartok@novell.com>
25438
25439         * Application.cs (ModalRun): Added a call to CreateControl to ensure
25440           focus is properly set
25441         * Button.cs:
25442           - Added missing attributes
25443           - removed styles, those are already set in the base class
25444         * ButtonBase.cs:
25445           - Added missing attributes
25446           - Added clip window styles
25447         * CheckBox.cs: Added missing attributes
25448         * CommonDialog.cs:
25449           - FormParentWindow.CreateParams: Added required clip styles
25450         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
25451           also filters modifier keys
25452         * MessageBox.cs:
25453           - Added assignment of Accept and Cancel button to enable Enter
25454             and Esc keys in MessageBox dialogs
25455           - FormParentWindow.CreateParams: Added required clip styles
25456         * RadioButton.cs: Added missing attributes
25457         * TextControl.cs: No longer draws selection if control does not
25458           have focus
25459         * TextBoxBase.cs:
25460           - Now draws simple rectangle around test area to make it obvious
25461             there's a control. This is a hack until we properly support borders
25462           - A few simple fixes to support selections better, now erases selected
25463             text when typing, and resets selection when using movement keys
25464
25465 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
25466
25467         * UpDownBase.cs: Added some new properties.
25468
25469         * DomainUpDown.cs: Implement a lot to get my test working.
25470
25471 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
25472
25473         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
25474
25475 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
25476
25477         * OSXStructs (WindowAttributes): Fixed csc complaints
25478
25479 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
25480
25481         * XplayUIOSX.cs:
25482           OSXStructs.cs: Initial refactor to move enums and consts into
25483           OSXStructs and use them in the driver for greater readability.
25484
25485 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
25486
25487         * XplatUIOSX.cs: Initial support for Standard Cursors.
25488         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
25489
25490 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
25491
25492         * ComboBox.cs: ability to change style when the ctrl is already
25493         created, missing methods and events, bug fixes, signature fixes
25494
25495 2005-01-19  Peter Bartok  <pbartok@novell.com>
25496
25497         * Cursors.cs (ctor): Added ctor to fix signature
25498
25499 2005-01-18  Peter Bartok  <pbartok@novell.com>
25500
25501         * Button.cs: Implemented DoubleClick event
25502         * ButtonBase.cs:
25503           - Fixed keyboard handling to behave like MS, where the press of
25504             Spacebar is equivalent to a mousedown, and the key release is
25505             equivalent to mouseup. Now a spacebar push will give the same
25506             visual feedback like a mouse click.
25507           - Added missing attributes
25508           - Added ImeModeChanged event
25509           - Added support for generating DoubleClick event for derived classes
25510         * CheckBox.cs:
25511           - Implemented DoubleClick event
25512           - Added missing attributes
25513         * CommonDialog.cs: Added missing attribute
25514         * ContextMenu.cs: Added missing attributes
25515         * RadioButton.cs:
25516           - AutoChecked buttons do not allow to be unselected when clicked
25517             (otherwise we might end up with no selected buttons in a group)
25518           - Added missing attributes
25519           - Implemented DoubleClickEvent
25520         * ThreadExceptionDialog.cs: Enabled TextBox code
25521
25522 2005-01-18  Peter Bartok  <pbartok@novell.com>
25523
25524         * Form.cs: Removed debug output
25525         * Button.cs: Added support for DoubleClick method
25526
25527 2005-01-18  Peter Bartok  <pbartok@novell.com>
25528
25529         * Form.cs:
25530           - Added method to parent window that allows triggering size
25531             calculations when a menu is added/removed
25532           - set_Menu: Cleaned up mess from early days of Form and Control,
25533             now properly triggers a recalc when a menu is added/removed
25534           - Added case to select form itself as focused form if no child
25535             controls exist
25536           - Added PerformLayout call when showing dialog, to ensure properly
25537             placed controls
25538         * Control.cs:
25539           - Select(): Made internal so Form can access it
25540           - Focus(): Only call Xplat layer if required (avoids loop), and sets
25541             status
25542         * Application.cs (Run): Removed hack and calls PerformLayout instead
25543           to trigger calculation when Form becomes visible
25544
25545 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
25546
25547         * ComboBox.cs: fixes for ownerdraw
25548
25549 2005-01-18  Peter Bartok  <pbartok@novell.com>
25550
25551         * TextControl.cs:
25552           - Sentinel is no longer static, each Document gets it's own, this
25553             avoids locking or alternatively overwrite problems when more
25554             than one text control is used simultaneously.
25555           - Switched to use Hilight and HilightText brushes for text selection
25556
25557         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
25558
25559 2005-01-18  Peter Bartok  <pbartok@novell.com>
25560
25561         * Control.cs:
25562           - Hooked up the following events:
25563                 o ControlAdded
25564                 o ControlRemoved
25565                 o HandleDestroyed
25566                 o ImeModeChanged
25567                 o ParentChanged
25568                 o TabStopChanged
25569                 o Invalidated
25570                 o SystemColorsChanged
25571                 o ParentFontChanged
25572                 o Move
25573           - Removed debug output
25574           - Added a call to the current theme's ResetDefaults when a color change
25575             is detected
25576         * Form.cs: Now setting the proper ImeMode
25577         * Theme.cs: Defined a method to force recreation of cached resources
25578           and rereading of system defaults (ResetDefaults())
25579         * ThemeWin32Classic.cs: Added ResetDefaults() stub
25580
25581 2005-01-17  Peter Bartok  <pbartok@novell.com>
25582
25583         * Control.cs: Added missing attributes
25584
25585 2005-01-17  Jackson Harper  <jackson@ximian.com>
25586
25587         * TreeNode.cs: Implement editing. Add missing properties selected
25588         and visible.
25589         * TreeView.cs: Implement node editing. Also some fixes to use
25590         Invalidate (invalid area) instead of Refresh when selecting.
25591
25592 2005-01-17  Peter Bartok  <pbartok@novell.com>
25593
25594         * Control.cs:
25595           - Implemented InvokeGotFocus() method
25596           - Implemented InvokeLostFocus() method
25597           - Implemented InvokePaint() method
25598           - Implemented InvokePaintBackground() method
25599           - Implemented InvokeClick() method
25600           - Implemented FindForm() method
25601           - Implemented RectangleToClient() method
25602           - Implemented ClientToRectangle() method
25603           - Implemented ResetBackColor() method
25604           - Implemented ResetCursor() method
25605           - Implemented ResetFont() method
25606           - Implemented ResteForeColor() method
25607           - Implemented ResetImeMode() method
25608           - Implemented ResetLeftToRight() method
25609           - Implemented ResetText() method
25610           - Implemented Scale() methods
25611           - Implemented ScaleCore() method
25612           - Implemented Update() method
25613           - Removed unused variables
25614           - Stubbed AccessibilityNotifyClients and
25615             ControlAccessibleObject.NotifyClients() methods (dunno what to do
25616             with those yet)
25617           - Now setting proper default for RightToLeft property
25618           - Fixed bug in SetClientSizeCore that would cause windows to get
25619             really big
25620           - Now sending Click/DoubleClick events
25621           - Now selecting controls when left mouse button is clicked on
25622             selectable control
25623         * AccessibleEvents.cs: Added
25624         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
25625         * XplatUIOSX.cs: Stubbed UpdateWindow() method
25626         * XplatUIWin32.cs: Implemented UpdateWindow() method
25627         * XplatUIX11.cs: Implemented UpdateWindow() method
25628         * Form.cs: Removed stray semicolon causing CS0162 warning
25629         * ThemeWin32Classic.cs: Fixed unused variable warnings
25630         * ScrollableControl.cs: Now calls base method for ScaleCore
25631         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
25632           style to avoid interference with internal click handler (which is
25633           different than standard Control click handling)
25634         * RadioButton.cs:
25635           - Now unchecks all sibling radio buttons when control is
25636             selected (Fixes #68756)
25637           - Removed internal tabstop variable, using the one inherited from
25638             Control
25639
25640 2005-01-17  Jackson Harper  <jackson@ximian.com>
25641
25642         * NavigateEventArgs.cs: Fix base type.
25643         * LinkLabel.cs: Sig fix
25644         
25645 2005-01-17  Jackson Harper  <jackson@ximian.com>
25646
25647         * TreeView.cs: Only invalidate the effected nodes bounds when
25648         selecting nodes.
25649
25650 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
25651
25652         * XplatUIWin32.cs: fixes Win32 marshaling
25653         * XplatUIX11.cs: fixes method signature
25654
25655 2005-01-17  Peter Bartok  <pbartok@novell.com>
25656
25657         * XplatUIX11.cs: Clean up resources when we no longer need them
25658
25659 2005-01-17  Peter Bartok  <pbartok@novell.com>
25660
25661         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
25662           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
25663           and DestroyCursor() methods.
25664         * Cursor.cs: Partially implemented, now supports standard cursors;
25665           still contains some debug code
25666         * Cursors.cs: Implemented class
25667         * Control.cs:
25668           - WndProc(): Added handling of WM_SETCURSOR message, setting the
25669             appropriate cursor
25670           - Implemented Cursor property
25671           - Replaced break; with return; more straightforwar and possibly
25672             faster
25673           - Now properly setting the result for WM_HELP
25674         * X11Structs.cs: Added CursorFontShape enum
25675         * XplatUIStructs.cs:
25676           - Added StdCursor enum (to support DefineStdCursor() method)
25677           - Added HitTest enum (to support sending WM_SETCURSOR message)
25678         * XplatUIX11.cs:
25679           - Now sends the WM_SETCURSOR message
25680           - Implemented new cursor methods
25681         * XplatUIOSX.cs: Stubbed new cursor methods
25682         * XplatUIWin32.cs:
25683           - Implemented new cursor methods
25684           - Added GetSystemMetrics function and associated enumeration
25685
25686 2005-01-15  Peter Bartok  <pbartok@novell.com>
25687
25688         * Control.cs:
25689           - WndProc(): Now handles EnableNotifyMessage
25690           - SelectNextControl(): Fixed bug where if no child or sibling
25691             controls exist we looped endlessly
25692
25693 2005-01-14  Jackson Harper  <jackson@ximian.com>
25694
25695         * TreeView.cs: Recalculate the tab pages when a new one is added
25696         so that the proper bounding rects are created.
25697
25698 2005-01-14  Jackson Harper  <jackson@ximian.com>
25699
25700         * TreeView.cs: Draw a gray box instead of a grip in the lower
25701         right hand corner when there are both horizontal and vertical
25702         scroll bars.
25703
25704 2005-01-14  Jackson Harper  <jackson@ximian.com>
25705
25706         * Control.cs: When erasing backgrounds use FromHwnd instead of
25707         FromHdc when there is a NULL wparam. This occurs on the X driver.
25708         * XplatUIX11.cs: Set the wparam to NULL.
25709
25710 2005-01-13  Jackson Harper  <jackson@ximian.com>
25711
25712         * PictureBox.cs: Implement missing methods (except ToString, need
25713         to test that on windows) and events. When visibility is changed we
25714         need to redraw the image because the buffers are killed. When size
25715         is changed refresh if the sizemode needs it.
25716
25717 2005-01-13  Peter Bartok  <pbartok@novell.com>
25718
25719         * Control.cs (SelectNextControl): Was using wrong method to select
25720           a control
25721
25722 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
25723
25724         * ComboBox.cs: fixes dropstyle
25725
25726 2005-01-13  Peter Bartok  <pbartok@novell.com>
25727
25728         * Form.cs:
25729           - Implemented Select() override
25730           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
25731           - Now sets keyboard focus on startup
25732         * Control.cs (SelectNextControl): Now properly handles directed=true
25733         * TextBoxBase.cs:
25734           - WndProc: Now passes tab key on to base if AcceptTabChar=false
25735           - Added (really bad) focus rectangle (mostly for testing)
25736         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
25737           to enforce redraw on focus changes
25738         * ContainerControl.cs:
25739           - Fixed detection of Shift-Tab key presses
25740           - Fixed traversal with arrow keys
25741         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
25742           gonna keep this or if it's complete yet
25743         
25744 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
25745
25746         * ComboBox.cs: missing properties, fixes
25747
25748 2005-01-13  Peter Bartok  <pbartok@novell.com>
25749
25750         * Panel.cs (ctor): Setting Selectable window style to off
25751         * Splitter.cs (ctor): Setting Selectable window style to off
25752         * GroupBox.cs (ctor): Setting Selectable window style to off
25753         * Label.cs (ctor): Setting Selectable window style to off
25754
25755 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
25756
25757         * UpDownBase.cs (InitTimer): If the timer has been already
25758         created, enable it.
25759
25760         Use a TextBox instead of a Label.
25761
25762 2005-01-12  Jackson Harper  <jackson@ximian.com>
25763
25764         * TreeView.cs: Refresh the tree after sorting the nodes. Always
25765         draw the connecting node lines (when ShowLines is true).
25766         * TreeNode.cs: The nodes index can now be updated. This is used
25767         when a node collection is sorted.
25768         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
25769         insert or an existing unsorted node collection can be sorted.
25770         
25771 2005-01-12  Peter Bartok  <pbartok@novell.com>
25772
25773         * ContainerControl.cs: Implemented ProcessDialogKeys()
25774
25775 2005-01-12  Peter Bartok  <pbartok@novell.com>
25776
25777         * Control.cs:
25778           - Implemented SelectNextControl() method
25779           - Several focus related bug fixes
25780           - Fixed Docking calculations to match MS documentation and
25781             behaviour
25782
25783 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
25784
25785         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
25786         bug fixes
25787
25788 2005-01-12  Peter Bartok  <pbartok@novell.com>
25789
25790         * Control.cs:
25791           - Fixed broken Contains() method
25792           - Implemented GetNextControl() method. Finally. This is the pre-
25793             requisite for focus handling.
25794
25795 2005-01-12  Peter Bartok  <pbartok@novell.com>
25796
25797         * OSXStrucs.cs: Added
25798
25799 2005-01-12  Peter Bartok  <pbartok@novell.com>
25800
25801         * XplatUIWin32.cs:
25802           - Removed PeekMessageFlags
25803           - Implemented SetWindowStyle() method
25804         * XplatUIStructs.cs: Added PeekMessageFlags
25805         * X11Structs: Added missing border_width field to XWindowChanges struct
25806         * XplatUIX11.cs:
25807           - PeekMessage: Now throws exception if flags which are not yet
25808             supported are passed
25809           - Implemented SetWindowStyle() method
25810           - Fixed SetZOrder to handle AfterHwnd properly
25811         * XplatUI.cs: Added SetWindowStyle() method
25812         * XplatUIDriver.cs: Added SetWindowStyle() abstract
25813         * Control.cs:
25814           - Implemented UpdateStyles() method
25815           - Implemented UpdateZOrder() method
25816         * XplatUIOSX.cs: Added SetWindowStyle() stub
25817
25818 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
25819
25820         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
25821         button mouse).
25822
25823
25824 2005-01-11  Jackson Harper  <jackson@ximian.com>
25825
25826         * TreeView.cs: Still need to draw lines to siblings even if out of
25827         the current node is out of the clip.
25828
25829 2005-01-11  Jackson Harper  <jackson@ximian.com>
25830
25831         * TreeView.cs: When setting the hbar/vbar/grip position use
25832         SetBounds so that perform layout is only called once. Also suspend
25833         and resume layout so layout is only done once for all controls.
25834         - Removed some debug fluff
25835         * SizeGrip.cs: Call base implmentation in overriding methods.
25836         - When visibility is changed the drawing buffers are killed so we
25837         need to redraw.
25838
25839 2005-01-11  Jackson Harper  <jackson@ximian.com>
25840
25841         * TreeView.cs: Calculate the open node count while drawing. This
25842         saves us an entire tree traversal for every paint operation. Use
25843         a member var for the open node count so less vars are passed around.
25844
25845 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
25846
25847         * MonthCalendar.cs:
25848         - fixed selection to use mousemove, not mouse polling on timer
25849         * ThemeWin32Classic.cs
25850         - removed redundant unused variable "no_more_content"
25851         
25852 2005-01-11  Peter Bartok  <pbartok@novell.com>
25853
25854         * XplatUIX11.cs (DoEvents): Needs to return when no more events
25855           are pending, so it now calls PeekMessage instead of GetMessage;
25856           implemented a incomplete version of PeekMessage
25857         
25858 2005-01-11  Peter Bartok  <pbartok@novell.com>
25859
25860         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
25861           I18n issues
25862         * TextBoxBase.cs: Added sending of TextChanged event
25863
25864 2005-01-10  Jackson Harper  <jackson@ximian.com>
25865
25866         * TreeView.cs: Try not to draw outside the clipping rectangle on
25867         each node element.
25868
25869 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
25870
25871         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
25872
25873 2005-01-10  Jackson Harper  <jackson@ximian.com>
25874
25875         * TreeView.cs:
25876         - Implement fast scrolling. Now only the newly
25877         exposed nodes are drawn and the old image is moved using the
25878         XplatUI::ScrollWindow method.
25879         - Factor in height of nodes when calculating whether or not the
25880         node is in the clipping rect.
25881
25882 2005-01-10  Jackson Harper  <jackson@ximian.com>
25883
25884         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
25885
25886 2005-01-10  Peter Bartok  <pbartok@novell.com>
25887
25888         * Application.cs: Added temporary hack to resolve all our resize
25889           required issues on startup. This will get fixed properly at
25890           some point in the future
25891
25892 2005-01-10  Jackson Harper  <jackson@ximian.com>
25893
25894         * SizeGrip.cs: New internal class that is used as a sizing
25895         grip control...hence the name.
25896
25897 2005-01-10  Peter Bartok  <pbartok@novell.com>
25898
25899         * Control.cs: Implemented proper TabIndex handling, now assigning
25900           a tabindex when a control is added to a container
25901         * GroupBox.cs (ctor): Now sets the Container style bit, required
25902           for Control.GetNextControl()
25903
25904 2005-01-09  Jackson Harper  <jackson@ximian.com>
25905
25906         * TextBoxBase.cs: Clear window when scrolling (fixes build).
25907
25908 2005-01-09  Peter Bartok <pbartok@novell.com>
25909
25910         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
25911           XplatUIX11.cs: Added ability to control ScrollWindow expose and
25912           an overload for ScrollWindow to allow only scrolling a rectangle
25913
25914 2005-01-09  Peter Bartok <pbartok@novell.com>
25915
25916         * Form.cs:
25917           - Implemented SetDesktopBounds method
25918           - Implemented SetDesktopLocation method
25919
25920 2005-01-08  Jackson Harper  <jackson@ximian.com>
25921
25922         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
25923         the node count has changed, this removes to VScroll::Refresh calls
25924         when drawing.
25925
25926 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
25927
25928         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
25929
25930 2005-01-07  Jackson Harper  <jackson@ximian.com>
25931
25932         * TreeNode.cs: Just update the single node when it is
25933         checked. Don't refresh after toggling, the Expand/Collapse already
25934         handles this.
25935         * TreeView.cs: Respect clipping a little more when drawing. Try
25936         not to redraw things that don't need to be redrawn. Just hide the
25937         scrollbars when they are no longer needed instead of removing
25938         them, so they don't have to be created again and again.
25939         
25940 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
25941
25942         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
25943         coordinates to window space to place the caret properly, FIXED.
25944         Implement GetWindowState & SetWindowState
25945
25946 2005-01-06  Peter Bartok <pbartok@novell.com>
25947
25948         * Form.cs:
25949           - Implemented ClientSize property
25950           - Implemented DesktopBounds property
25951           - Implemented DesktopLocation property
25952           - Implemented IsRestrictedWindow property
25953           - Implemented Size property
25954           - Implemented TopLevel property
25955           - Implemented FormWindowState property
25956         * Control.cs:
25957           - Implemented GetTopLevel() method
25958           - Implemented SetTopLevel() method
25959         * X11Structs.cs (Atom):
25960           - Added AnyPropertyType definition
25961           - Added MapState definiton and updated XWindowAttribute struct
25962         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
25963         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
25964         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
25965         * XplatUIWin32.cs:
25966           - Implemented GetWindowState() and SetWindowState() methods
25967           - Fixed Win32GetWindowLong return type
25968         * XplatUIX11.cs:
25969           - Introduced central function for sending NET_WM messages
25970           - Implemented GetWindowState() and SetWindowState() methods
25971         * TextBoxBase.cs (set_Lines):
25972           - Now uses Foreground color for text added via Text property (Duh!)
25973           - Added code to remember programmatically requested size (fixes
25974             behaviour when Multiline is set after Size)
25975           - Added AutoSize logic
25976
25977 2005-01-06  Jackson Harper  <jackson@ximian.com>
25978
25979         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
25980
25981 2005-01-06  Jackson Harper  <jackson@ximian.com>
25982
25983         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
25984         set to less then 0.
25985
25986 2005-01-06  Jackson Harper  <jackson@ximian.com>
25987
25988         * ScrollableControl.cs: Lazy init the scrollbars.
25989         
25990 2005-01-06  Jackson Harper  <jackson@ximian.com>
25991
25992         * Theme.cs: Speed up getting pens and solid brushes, by using
25993         their ARGB as a hash instead of tostring and not calling Contains.
25994
25995 2005-01-06  Peter Bartok <pbartok@novell.com>
25996
25997         * Form.cs:
25998           - Implemented OnActivated and OnDeactivate event trigger
25999           - Implemented Activate() method
26000           - Fixed ShowDialog() to activate the form that was active before
26001             the dialog was shown
26002         * XplatUIX11.cs:
26003           - Added global active_window var that tracks the currently active
26004             X11 window
26005           - Now always grabs Property changes from the root window to always
26006             catch changes on the active window property
26007           - Added code to PropertyNotify handler to send Active/Inactive
26008             messages when state changes. This puts X11 and Win32 en par on
26009             WM_ACTIVATE notifications (except for double notifications when
26010             the user clicks away from our modal window to another one of our
26011             windows)
26012
26013 2005-01-05  Jackson Harper  <jackson@ximian.com>
26014
26015         * ImageList.cs: Implment ctor
26016
26017 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
26018
26019         * XplatUIOSX.cs: Implement Activate/SetTopmost
26020
26021 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
26022
26023         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
26024
26025 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
26026
26027         * XplatUIOSX.cs: Implement GetActive/SetFocus.
26028
26029 2005-01-05  Peter Bartok <pbartok@novell.com>
26030
26031         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
26032           XplatUIOSX.cs: Added GetActive method to return the currently
26033           active window for the application (or null, if none is active)
26034         * Form.cs:
26035           - Implemented ActiveForm
26036           - Commented out owner assignment for modal dialogs (causes problems
26037             on Win32, since the owner will be disabled)
26038           - Reworked some Active/Focus handling (still incomplete)
26039         * CommonDialog.cs: Commented out owner assignment for modal dialogs
26040           (causes problems on Win32, since the owner will be disabled)
26041         * IWin32Window: Added ComVisible attribute
26042
26043 2005-01-05  Peter Bartok <pbartok@novell.com>
26044
26045         * ToolTip.cs (WndProc): Enable setting focus now that we have the
26046           required XplatUI functions.
26047
26048 2005-01-05  Peter Bartok <pbartok@novell.com>
26049
26050         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
26051           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
26052           to implement focus and activation handling; still incomplete and
26053           with debug output
26054
26055 2005-01-04  Peter Bartok <pbartok@novell.com>
26056
26057         * TextBoxBase.cs: Changed access level for Document property to
26058           match switch to internal for TextControl
26059
26060 2005-01-04  Peter Bartok <pbartok@novell.com>
26061
26062         * AccessibleObject: Added ComVisible attribute
26063
26064 2005-01-04  Jackson Harper  <jackson@ximian.com>
26065
26066         * X11Keyboard.cs: Remove unneeded var.
26067
26068 2005-01-04  Jackson Harper  <jackson@ximian.com>
26069
26070         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
26071         but PAINT.
26072         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
26073         ClientMessage. This makes apps exit cleanly (more often).
26074         
26075 2005-01-04  Jackson Harper  <jackson@ximian.com>
26076
26077         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
26078         handling focus, return correct colors and fonts,
26079         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
26080         handle selection, horizontal scrolling, and mouse interaction.
26081
26082 2005-01-04  Peter Bartok <pbartok@novell.com>
26083
26084         * ICommandExecutor.cs: Added
26085         * IDataGridColumnStyleEditingNotificationService.cs: Added
26086         * IFeatureSupport.cs: Added
26087         * IFileReaderService.cs: Added
26088         * IDataObject.cs: Added ComVisible attribute
26089         * AmbientProperties.cs: Added
26090         * BaseCollection.cs: Added missing attributes
26091         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
26092         * BaseCollection.cs: Added missing attributes
26093         * Binding.cs: Added TypeConverter attribute
26094         * BindingContext.cs: Added DefaultEvent attribute
26095         * BindingsCollection.cs: Added DefaultEvent attribute
26096         * Button.cs: Added DefaultValue attribute
26097         * DragEventArgs.cs: Added ComVisible attribute
26098         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
26099         * KeyEventArgs.cs: Added ComVisible attribute
26100         * KeyPressEventArgs.cs: Added ComVisible attribute
26101         * MouseEventArgs.cs: Added ComVisible attribute
26102         * NavigateEventArgs.cs: Added
26103         * NavigateEventHandler.cs: Added
26104         * FeatureSupport.cs: Added
26105         * OSFeature.cs: Added
26106         * Theme.cs: Added abstract Version property to support OSFeature
26107         * ThemeWin32Classic.cs: Added Version property to
26108           support OSFeature.Themes
26109         * ProgressBar.cs: Removed OnPaintBackground override, not required since
26110           the proper styles to avoid background drawing are set, also doesn't
26111           match MS signature
26112         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
26113         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
26114         * ScrollEventArgs.cs: Added ComVisible attribute
26115         * SplitterEventArgs.cs: Added ComVisible attribute
26116         * AccessibleSelection.cs: Added Flags attribute
26117         * Appearance.cs: Added ComVisible attribute
26118         * Border3DSide.cs: Added ComVisible attribute
26119         * Border3DStyle.cs: Added ComVisible attribute
26120         * BorderStyle.cs: Added ComVisible attribute
26121         * DragAction.cs: Added ComVisible attribute
26122         * ErrorBlinkStyle.cs: Added
26123         * ScrollEventType.cs: Added ComVisible attribute
26124         * AnchorStyles.cs: Added Editor attribute
26125         * DockStyle.cs: Added Editor attribute
26126         * HorizontalAlignment.cs: Added ComVisible attribute
26127         * HelpEventArgs.cs: Added ComVisible attribute
26128         * PaintEventArgs.cs: Added IDisposable
26129
26130 2005-01-04  Peter Bartok <pbartok@novell.com>
26131
26132         * TextControl.cs: Switched Line, LineTag and Document classes to
26133           internal
26134
26135 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
26136
26137         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
26138         Simple mode, fixes, IntegralHeight, etc.
26139
26140 2005-01-04  Peter Bartok <pbartok@novell.com>
26141
26142         * TextBoxBase.cs: Using proper font variable now
26143
26144 2005-01-04  Peter Bartok <pbartok@novell.com>
26145
26146         * Form.cs (ShowDialog): Set parent to owner, if provided
26147         * GroupBox.cs: Removed unused vars
26148         * TextControl.cs:
26149           - Added GetHashCode() for Document and LineTag classes
26150           - Removed unused variables
26151           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
26152             to allow translation between continuous char position and line/pos
26153         * CheckBox.cs: Removed vars that are provided by base class
26154         * RadioButton.cs: Removed vars that are provided by base class, added
26155           new keyword where required
26156         * LinkLabel.cs: Added new keyword where required
26157         * Control.cs (WndProc): Removed unused variable
26158         * TextBoxBase.cs:
26159           - Finished SelectionLength property
26160           - Implemented SelectionStart property
26161           - Implemented Text property
26162           - Removed unused vars
26163         * MessageBox.cs: Added new keyword where required
26164         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
26165           WndProc signature
26166         * MenuAPI.cs: Added new keyword where required
26167         * ButtonBase.cs: Removed vars that are provided by base class, added
26168           new keyword where required
26169         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
26170           argument to double, to allow compiling with csc 2.0 (Atsushi ran
26171           into this)
26172         * Application.cs (Run): Now triggers the ThreadExit event
26173         * CommonDialog.cs: Added new keyword where required; now properly sets
26174           parent (owner) for dialog
26175         * XplatUIX11.cs: Commented out unused vars
26176         * StatusBar.cs: Fixed signature for Text property
26177         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
26178
26179 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
26180
26181         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
26182         TrackBar.cs, MonthCalendar.cs: remove unused vars
26183
26184 2005-01-03  Jackson Harper  <jackson@ximian.com>
26185
26186         * ThemeWin32Classic.cs:
26187         * X11Keyboard.cs: Remove unused vars.
26188
26189 2005-01-03  Peter Bartok  <pbartok@novell.com>
26190
26191         * TextBox.cs:
26192           - set_Text: Tied into TextControl
26193           - set_TextAlignment: Tied into TextControl
26194         * TextControl.cs:
26195           - Added alignment properties and implemented alignment handling
26196             and drawing (still has a bug, not generating proper expose events)
26197           - Added new Line() constructor to allow passing the line alignment
26198           - Fixed selection setting, properly handling end<start now
26199           - Added aligment considerations to RecalculateDocument()
26200         * TextBoxBase.cs:
26201           - Now properly enforces control height for single line controls
26202           - Added support for CharacterCasing
26203           - Added IsInputKey override
26204           - Fixed Keys.Enter logic
26205           - Added SetBoundsCore override
26206           - Fixed mouse selection handling
26207
26208 2005-01-03  Jackson Harper  <jackson@ximian.com>
26209
26210         * TreeView.cs:
26211           - Collapse and uncheck all nodes when CheckBoxes is disabled.
26212           - Checkboxes are always aligned to the bottom of the node,
26213           regardless of item height.
26214           - Use the node bounds to draw the text so we can center it when
26215           the item height is greater then the font height.
26216           - Node::Bounds are only the text part of the node.
26217         * TreeNode.cs: New method to combine collapsing and unchecking all
26218           nodes recursively.
26219
26220 2005-01-02  Jackson Harper  <jackson@ximian.com>
26221
26222         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
26223         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
26224         tree when a check is changed. TODO: Only refresh the checked node.
26225
26226 2004-12-30  Jackson Harper  <jackson@ximian.com>
26227
26228         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
26229         * TreeNode.cs: When collapsing make sure to never collapse the
26230         root node.
26231
26232 2004-12-29  Jackson Harper  <jackson@ximian.com>
26233
26234         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
26235         
26236 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
26237
26238         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
26239
26240 2004-12-28  Peter Bartok  <pbartok@novell.com>
26241
26242         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
26243           not yet assigned
26244
26245 2004-12-28  Peter Bartok  <pbartok@novell.com>
26246
26247         * Control.cs (WndProc): Added WM_HELP handler, now generates
26248           HelpRequested event
26249         * Form.cs: Added HelpButton property and required support code
26250         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
26251
26252 2004-12-28  Peter Bartok  <pbartok@novell.com>
26253
26254         * CommonDialog.cs:
26255           - Made DialogForm.owner variable internal
26256           - Added check to ensure owner form is set before setting
26257             owner properties in CreateParams
26258
26259 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
26260
26261         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
26262           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
26263           GetCursorPos.  Fix major visibility issues.  Rework the windowing
26264           system to support borderless/titleless windows (implements menus).
26265           Fix GetWindowPos.  Implement initial background color support for
26266           views.
26267
26268 2004-12-28  Peter Bartok  <pbartok@novell.com>
26269
26270         * Form.cs (get_CreateParams): Make sure we have an owner before using
26271           the owner variable. Implement proper default if no owner exists
26272
26273 2004-12-28  Peter Bartok  <pbartok@novell.com>
26274
26275         * In preparation for making Managed.Windows.Forms the default build target
26276           for System.Windows.Forms, the following stubbed files were added.
26277           Dialogs are currently being implemented by contributors and are only
26278           short-term place holders.
26279         * ColorDialog.cs: Initial check-in (minmal stub)
26280         * DataGrid.cs: Initial check-in (minimal stub)
26281         * DataGridLineStyle.cs: Initial check-in (minimal stub)
26282         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
26283         * DataGridTableStyle.cs: Initial check-in (minimal stub)
26284         * FontDialog.cs: Initial check-in (minimal stub)
26285         * FileDialog.cs: Initial check-in (minimal stub)
26286         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
26287         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
26288         * OpenFileDialog: Initial check-in (minimal stub)
26289         * IComponentEditorPageSite.cs: Initial check-in
26290         * Splitter.cs: Initial check-in (for Jackson)
26291         * SplitterEventArgs.cs: Initial check-in (for Jackson)
26292         * SplitterEventHandler.cs: Initial check-in (for Jackson)
26293         * TextBox.cs: Initial check-in; still needs some wiring to
26294           TextControl backend
26295         * Form.cs: Implemented ControlBox property
26296         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
26297         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
26298         * TextControl.cs: Added selection functionality; added todo header
26299         * TextBoxBase.cs:
26300           - Implemented Lines property
26301           - Implemented TextHeight property
26302           - Implemented SelectedText property
26303           - Implemented SelectionLength property
26304           - Implemented SelectAll method
26305           - Implemented ToString method
26306           - Removed and cleaned up some debug code
26307           - Implemented (still buggy) mouse text selection
26308
26309 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
26310
26311         * ComboBox.cs: Complete DropDownList implementation, fixes.
26312
26313 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
26314
26315         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
26316         * ComboBoxStyle.cs: ComboBoxStyle enum
26317         * ComboBox.cs: Initial work on ComboBox control
26318
26319 2004-12-21  Peter Bartok  <pbartok@novell.com>
26320
26321         * Control.cs (ctor, CreateParams): Moved setting of is_visible
26322           forward so that anything that creates a window gets the default,
26323           also no longer uses Visible property in CreateParams to avoid
26324           walking up the parent chain and possibly get the wrong visible
26325           status. Fixed IsVisible to no longer walk up to the parent.
26326
26327 2004-12-21  Peter Bartok  <pbartok@novell.com>
26328
26329         * Form.cs (ShowDialog): Unset modality for the proper window
26330  
26331 2004-12-20  Peter Bartok  <pbartok@novell.com>
26332
26333         * CommonDialog.cs: Initial check-in
26334
26335 2004-12-20  Peter Bartok  <pbartok@novell.com>
26336
26337         * Control.cs (Visible): Now uses the parent window instead of the
26338           client area window for the property
26339
26340         * Form.cs
26341           - ShowDialog(): Now uses the proper window for modality
26342           - The default visibility state for the form parent is now false. This
26343             will prevent the user from seeing all the changes to the form and
26344             its controls before the application hits Application.Run()
26345           - Removed some stale commented out code
26346
26347         * NativeWindow.cs:
26348           - Added FindWindow() method to have a method to check for existence
26349             of a window handle
26350           - Added ability to override default exception handling (for example
26351             when debugging with VS.Net; to do this the ExternalExceptionHandler
26352             define must be set
26353           - Removed some useless debug output
26354
26355         * XplatUIX11.cs:
26356           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
26357             not working as expected
26358           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
26359             property to allow switching back to the modal window if focus is
26360             given to another one of our windows (Application Modal)
26361           - Now only sets override_redirect if we create a window
26362             without WS_CAPTION
26363           - Moved EventMask selection before mapping of newly created window
26364             so we can catch the map event as well
26365           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
26366           - Added various Atom related DllImports
26367           - Implemented Exit() method
26368           - .ctor() : No longer shows window if WS_VISIBLE is not defined
26369             in the CreateParams
26370
26371         * MessageBox.cs: Now properly deals with the FormParent window by
26372           providing an override the FormParent CreateParams property to
26373           set as POPUP instead of OVERLAPPED window.
26374
26375 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
26376
26377         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
26378         Minor code cleanup.
26379
26380 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
26381         
26382         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
26383
26384 2004-12-18  Peter Bartok  <pbartok@novell.com>
26385
26386         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
26387           implementing SetModal() method
26388
26389 2004-12-18  Peter Bartok  <pbartok@novell.com>
26390
26391         * X11Structs.cs (XGCValues): Fixed type of function element
26392         * XplatUI.cs: Added ScrollWindow() method
26393         * XplatUIDriver.cs: Added ScrollWindow() abstract
26394         * XplatUIWin32.cs: Implemented ScrollWindow() method
26395         * XplatUIX11.cs: Implemented ScrollWindow() method
26396         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
26397
26398 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
26399
26400         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
26401         Some more keyboard support (INCOMPLETE)
26402
26403 2004-12-17  Peter Bartok  <pbartok@novell.com>
26404
26405         * TextControl.cs:
26406         - Added color attribute to line tags.
26407         - Added color argument to all functions dealing with tags
26408         - Added color argument support to various functions
26409         - Fixed miss-calculation of baseline/shift in certain circumstances
26410
26411         * TextBoxBase.cs: Added new color option to test code
26412
26413 2004-12-17  Jackson Harper  <jackson@ximian.com>
26414
26415         * TreeNode.cs:
26416         * MonthCalendar.cs: Signature fixes
26417
26418 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
26419
26420         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
26421         keyboard event moved it.  Create a new graphics context for each paint resolves this
26422
26423 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
26424
26425         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
26426         Make caret exist and go blink blink.  Initial keyboard support.
26427         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
26428         works.
26429
26430 2004-12-17  Jackson Harper  <jackson@ximian.com>
26431
26432         * XplatUIStructs.cs: Updated set of virtual keycodes.
26433         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
26434
26435 2004-12-17  Jackson Harper  <jackson@ximian.com>
26436
26437         * XplatUIX11.cs: Prune old keyboard code.
26438
26439 2004-12-17  Jackson Harper  <jackson@ximian.com>
26440
26441         * XplatUIX11.cs: When generating mouse wparams get the modifier
26442         keys from the ModifierKeys property.
26443
26444 2004-12-17  Jackson Harper  <jackson@ximian.com>
26445
26446         * X11Keyboard.cs: Send up/down input when generating
26447         messages. Remove some unused vars.
26448
26449 2004-12-17  Jackson Harper  <jackson@ximian.com>
26450
26451         * TabControl.cs:
26452         * TreeView.cs: get rid of warnings.
26453
26454 2004-12-17  Jackson Harper  <jackson@ximian.com>
26455
26456         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
26457
26458 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
26459
26460         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
26461           CheckedListBox.cs: Implementation
26462
26463 2004-12-17  Peter Bartok  <pbartok@novell.com>
26464
26465         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
26466
26467 2004-12-16  Peter Bartok  <pbartok@novell.com>
26468
26469         * TextControl.cs:
26470           - InsertCharAtCaret(): Fixed start pos fixup
26471           - CaretLine_get: No longer derives the line from the tag, the tag
26472             could be stale if lines in the document have been added or deleted
26473           - RebalanceAfterDelete(): Fixed bug in balancing code
26474           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
26475           - Line.Streamline(): Now can also elminate leading empty tags
26476           - DumpTree(): Added a few more tests and prevented exception on
26477             uninitialized data
26478           - Added Debug section for Combining lines
26479           - Delete(): Now copies all remaining properties of a line
26480           
26481         * TextBoxBase.cs:
26482           - Left mousebutton now sets the caret (and middle button still acts
26483             as formatting tester, which must go away soon)
26484           - Added Debug section for Deleting/Combining lines
26485           - Fixed calculations for UpdateView after Combining lines
26486
26487 2004-12-16  Peter Bartok  <pbartok@novell.com>
26488
26489         * TextControl.cs: Now properly aligns text on a baseline, using the
26490           new XplatUI.GetFontMetrics() method. Simplified several calculations
26491         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
26492           defined
26493
26494 2004-12-16  Peter Bartok  <pbartok@novell.com>
26495
26496         * XplatUI.cs: Added GetFontMetrics() method
26497         * XplatUIDriver.cs: Added GetFontMetrics() abstract
26498         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
26499           into libgdiplus, our private GetFontMetrics function
26500         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
26501         * XplatUIWin32.cs: Implemented GetFontMetrics() method
26502
26503 2004-12-16  Jackson Harper  <jackson@ximain.com>
26504
26505         * XplatUIStruct.cs: Add enum for dead keys
26506         * X11Keyboard.cs: Map and unmap dead keys.
26507
26508 2004-12-16  Jackson Harper  <jackson@ximian.com>
26509
26510         * X11Keyboard.cs: Detect and use the num lock mask.
26511
26512 2004-12-16  Peter Bartok  <pbartok@novell.com>
26513
26514         * Control.cs (CreateGraphics): Added check to make sure the
26515           handle of the window exists before calling Graphics.FromHwnd()
26516
26517 2004-12-16  Peter Bartok  <pbartok@novell.com>
26518
26519         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
26520           contains a lot of code that's not supposed to be there for the
26521           real thing, but required for developing/testing the textbox
26522           backend.
26523
26524 2004-12-16  Peter Bartok  <pbartok@novell.com>
26525
26526         * TextControl.cs:
26527         - Fixed Streamline method
26528         - Added FindTag method to Line
26529         - Added DumpTree method for debugging
26530         - Added DecrementLines() method for deleting lines
26531         - Fixed UpdateView to update the cursor to end-of-line on single-line
26532           updates
26533         - Added PositionCaret() method
26534         - Fixed MoveCaret(LineDown) to move into the last line, too
26535         - Added InsertChar overload
26536         - Fixed InsertChar tag offset calculations
26537         - Added DeleteChar() method
26538         - Added Combine() method for folding lines
26539         - Fixed Delete() method, no longer allocates wasted Line object and
26540           now copies all properties when swapping nodes
26541         - Delete() method now updates document line counter
26542
26543 2004-12-15  Jackson Harper  <jackson@ximian.com>
26544
26545         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
26546         * X11Keyboard.cs: Expose the currently selected modifier keys
26547         through a property.
26548
26549 2004-12-15  Peter Bartok  <pbartok@novell.com>
26550
26551         * TextControl.cs: Initial check-in. Still incomplete
26552
26553 2004-12-15  Jackson Harper  <jackson@ximian.com>
26554
26555         * TreeNode.cs:
26556         * TreeView.cs: Fix build on csc (second time today ;-))
26557
26558 2004-12-15  Jackson Harper  <jackson@ximian.com>
26559
26560         * TreeView.cs: Store the treenodes plus/minus box bounds when it
26561         is calculated and use this for click testing.
26562         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
26563
26564 2004-12-15  Jackson Harper  <jackson@ximian.com>
26565
26566         * TreeView.cs: Pass the nodes image index to the image list when
26567         drawing that image.
26568
26569 2004-12-15  Jackson Harper  <jackson@ximian.com>
26570
26571         * X11Keyboard.cs: Set messages hwnd.
26572         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
26573         post_message calls.
26574
26575 2004-12-15  Jackson Harper  <jackson@ximian.com>
26576
26577         * X11Keyboard.cs: Fix to compile with csc.
26578         
26579 2004-12-15  Jackson Harper  <jackson@ximian.com>
26580
26581         * X11Structs.cs: Add key mask values
26582         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
26583         * X11Keyboard.cs: New file - Extrapolates and interpolates key
26584         down/up foo into WM_CHAR foo
26585         * KeyboardLayouts.cs: Common keyboard layouts
26586         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
26587         post messages into the main queue.
26588
26589 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
26590
26591         * Button.cs: implement ProcessMnemonic
26592         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
26593           brushes everytime
26594         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
26595         * ButtonBase.cs: Show HotkeyPrefix (not the &)
26596
26597 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
26598         
26599         * MonthCalendar.cs: Implemented click-hold for next/previous month
26600           and date selection
26601           
26602 2004-12-11  Peter Bartok  <pbartok@novell.com>
26603
26604         * X11Structs.cs:
26605           - Added XKeyboardState (moved from XplatUIX11.cs)
26606           - Added XCreateGC related enums and structures
26607           - Added GXFunction for XSetFunction
26608
26609         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
26610
26611         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
26612           CaretVisible() calls
26613
26614         * ToolTip.cs: Added code to prevent stealing focus from app windows
26615
26616         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
26617           DestroyCaret, SetCaretPos and CaretVisible)
26618
26619         * XplatUIX11.cs:
26620           - Added implementation for caret functions
26621           - Moved hover variables into a struct, to make it a bit easier
26622             on the eyes and to debug
26623           - Removed XKeyboardState (moved to XplatUIX11.cs)
26624           - Moved Keyboard properties into the properties region
26625
26626         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
26627           call to get a graphics context for our control
26628
26629         * XplatUIOSX.cs: Added empty overrides for the new caret functions
26630
26631         * TreeView.cs: Fixed bug. No matter what color was set it would always
26632           return SystemColors.Window
26633
26634         * XplatUIWin32.cs: Implemented caret overrides
26635
26636 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
26637
26638         * ListBox.cs: fire events, implement missing methods and properties,
26639         sorting.
26640
26641 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
26642
26643         * MonthCalendar.cs: invalidation bug fixing
26644         * ThemeWin32Classic.cs: paint fixing
26645
26646 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
26647
26648         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
26649         prepare the CGContextRef there now.
26650
26651 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
26652
26653         * MonthCalendar.cs:
26654           - optimisationL only invalidate areas that have changed
26655         * ThemeWin32Classic.cs:
26656           - only paint parts that intersect with clip_area
26657
26658 2004-12-09  Peter Bartok  <pbartok@novell.com>
26659
26660         * Application.cs: Undid changes from r37004 which cause problems
26661         on X11
26662
26663 2004-12-09  Ravindra  <rkumar@novell.com>
26664
26665         * ToolBar.cs: Added support for displaying ContextMenu
26666         attached to a button on ToolBar.
26667         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
26668         property.
26669
26670 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
26671
26672         * Label.cs: autosize works in text change and removes unnecessary
26673         invalidate
26674
26675 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
26676
26677         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
26678         remove warnings
26679
26680 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
26681
26682         * XplatUIOSX.cs: Added mouse move/click/grab support
26683         Remove some debugging WriteLines not needed anymore.
26684         Add window resizing/positioning.
26685         Fix visibility on reparenting.
26686
26687 2004-12-08  Peter Bartok  <pbartok@novell.com>
26688
26689         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
26690
26691 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
26692
26693         * XplatUIOSX.cs: Initial checkin
26694         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
26695
26696 2004-12-03  Ravindra <rkumar@novell.com>
26697
26698         * ListView.cs: Added some keybindings and fixed scrolling.
26699         ScrollBars listen to ValueChanged event instead of Scroll
26700         Event. This would let us take care of all changes being
26701         done in the scrollbars' values programmatically or manually.
26702         * ListView.cs (CanMultiselect): Added a check for shift key.
26703         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
26704         * ListViewItem.cs (Clone): Fixed. We need to make a copy
26705         of ListViewSubItemCollection as well.
26706
26707 2004-12-06  Peter Bartok <pbartok@novell.com>
26708
26709         * Control.cs (Parent): Added check and exception to prevent
26710         circular parenting
26711
26712 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
26713
26714         * ListBox.cs: implemented clipping, selection single and multiple,
26715         bug fixing
26716
26717 2004-12-03  Ravindra <rkumar@novell.com>
26718
26719         * ListView.cs (ListView_KeyDown):
26720         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
26721         when CTRL key is pressed.
26722         * ListViewItem.cs (Selected): Fixed setting the property.
26723
26724 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
26725
26726         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
26727
26728         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
26729         MinimizeBox, ShowInTaskbar, TopMost properties.
26730
26731         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
26732         will be implemented).
26733
26734 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
26735
26736         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
26737
26738         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
26739         tests.
26740         
26741         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
26742         
26743         * TreeView.cs: BackColor is Colors.Window.
26744
26745 2004-12-01  Jackson Harper  <jackson@ximian.com>
26746
26747         * TreeView.cs: When resizing the tree if the user is making it
26748         smaller we don't get expose events, so we need to handle adding
26749         the horizontal scrollbar in the size changed handler as well as
26750         the expose handler.
26751
26752 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
26753
26754         * DrawItemState.cs: fixes wrong enum values
26755
26756 2004-12-01  Jackson Harper  <jackson@ximian.com>
26757
26758         * TreeView.cs: Resize the hbar as well as the vbar on resize.
26759
26760 2004-12-01  Jackson Harper  <jackson@ximian.com>
26761
26762         * NodeLabelEditEventArgs.cs:
26763         * NodeLabelEditEventHandler.cs:
26764         * OpenTreeNodeEnumerator.cs:
26765         * TreeNode.cs:
26766         * TreeNodeCollection.cs:
26767         * TreeView.cs:
26768         * TreeViewAction.cs:
26769         * TreeViewCancelEventArgs.cs:
26770         * TreeViewCancelEventHandler.cs:
26771         * TreeViewEventArgs.cs:
26772         * TreeViewEventHandler.cs: Initial implementation.
26773
26774 2004-12-01  Ravindra <rkumar@novell.com>
26775
26776         * ListView.cs (CalculateListView): Fixed scrolling related
26777         calculations. Also, removed some debug statements from other
26778         places.
26779         * ListViewItem.cs: Changed access to 'selected' instance variable
26780         from private to internal.
26781         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
26782
26783 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
26784
26785         * ThemeWin32Classic.cs: remove cache of brush and pens for
26786         specific controls and use the global system, fixes scrollbutton
26787         bugs (for small sizes, disabled, etc)
26788         
26789         * ScrollBar.cs: does not show the thumb for very small controls
26790         (as MS) and allow smaller buttons that the regular size
26791
26792 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
26793
26794         * UpDownBase.cs: Add abstract methods for the interface.
26795         Add new virtual methods (need to be hooked up to TextEntry when it
26796         exists).
26797         Add override methods for most features.
26798         Computes the size, forces the height of the text entry.
26799
26800         * NumericUpDown.cs: Put here the current testing code.
26801
26802         * Set eol-style property on all files that do not have mixed line
26803         endings, to minimize the future problems.  There are still a few
26804         files with mixed endings, and someone should choose whether they
26805         want to move it or not.
26806
26807 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
26808
26809         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
26810         System.Colors
26811         
26812 2004-11-30  Ravindra <rkumar@novell.com>
26813
26814         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
26815         drawing and replaced use of SystemColors by theme colors.
26816         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
26817         * ListView.cs (ListViewItemCollection.Add): Throw exception when
26818         same ListViewItem is being added more than once.
26819
26820 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
26821
26822         * MonthCalendar.cs:
26823           - ControlStyles love to make the control not flicker
26824           
26825 2004-11-30  Peter Bartok  <pbartok@novell.com>
26826
26827         * CharacterCasing.cs: Added
26828
26829 2004-11-29  Peter Bartok  <pbartok@novell.com>
26830
26831         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
26832           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
26833           I am removing these files as they conflict with already completed
26834           work. While it is fantastic to get contributions to MWF, I
26835           respectfully ask that everyone please coordinate their contributions
26836           through mono-winforms-list or #mono-winforms at this time. We're
26837           explicitly avoiding stubbing and don't want controls that don't have
26838           their basic functionality implemented in svn. Please also see
26839           http://www.mono-project.com/contributing/winforms.html
26840
26841
26842 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
26843
26844         * Application.cs (ModalRun): Don't hang after exit.
26845
26846         * Theme.cs: New TreeViewDefaultSize property.
26847
26848         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
26849         with less hardcoded SystemColors constant.
26850         Implemented TreeViewDefaultSize.
26851
26852         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
26853         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
26854
26855
26856 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
26857
26858         * MonthCalendar.cs:
26859           - Fix NextMonthDate and PrevMonthDate click moving calendar
26860
26861 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
26862
26863         * MonthCalendar.cs:
26864           - Fix usage of ScrollChange Property when scrolling months
26865
26866 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
26867
26868         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
26869          - Fixes menu destroying
26870          - Support adding and removing items on already created menus
26871
26872 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
26873
26874         * MonthCalendar.cs:
26875           - Re-worked all bolded dates handling to match win32
26876         * ThemeWin32Classic.cs:
26877           - Fixed rendering with bolded dates
26878
26879 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
26880
26881         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
26882         - Horizontal scroolbar
26883         - Multicolumn
26884         - Fixes
26885
26886
26887 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
26888
26889         * MonthCalendar.cs:
26890           - Fix Usage of MaxSelectionCount from SelectionRange
26891           - Fixed Shift + Cursor Selection
26892           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
26893           - Fixed normal cursor selection to be compat with win32
26894           - Fixed Shift + Mouse Click selection
26895
26896 2004-11-24  Peter Bartok <pbartok@novell.com>
26897
26898         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
26899         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
26900         * XplatUIX11.cs:
26901           - CreatedKeyBoardMsg now updates keystate with Alt key
26902           - Added workaround for timer crash to CheckTimers, Jackson will
26903             develop a proper fix and check in later
26904           - Implemented DispatchMessage
26905           - Removed calling the native window proc from GetMessage (call
26906             now moved to DispatchMessage)
26907
26908         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
26909           the keydata (Fixes bug #69831)
26910
26911         * XplatUIWin32.cs:
26912           - (DispatchMessage): Switched to return IntPtr
26913           - Added DllImport for SetFocus
26914
26915 2004-11-24  Ravindra <rkumar@novell.com>
26916
26917         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
26918         background drawing.
26919         * ListViewItem.cs: Fixed various properties, calculations
26920         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
26921         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
26922         and some internal properties. Fixed MouseDown handler and Paint
26923         method.
26924
26925 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
26926
26927         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
26928
26929 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
26930
26931         * ContainerControl.cs: correct accidental check in of local changes
26932
26933 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
26934
26935         * ThemeWin32Classic.cs:
26936                 - Fixed Drawing Last month in grid (sometimes not showing)
26937         * MonthCalendar.cs:
26938                 - Fixed title width calculation bug (makeing title small)
26939
26940 2004-11-23  Peter Bartok <pbartok@novell.com>
26941
26942         * XplatUIX11.cs:
26943           - Added generation of WM_MOUSEHOVER event
26944           - Added missing assignment of async_method atom
26945           - Fixed WM_ERASEBKGND; now only redraws the exposed area
26946
26947 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
26948
26949         * ThemeWin32Classic.cs:
26950                 - Fixed Drawing of today circle when showtodaycircle not set
26951                 - fixed drawing of first and last month in the grid (gay dates)
26952         * MonthCalendar.cs:
26953                 - Fixed Drawing of today circle
26954                 - Fixed drawing of grady dates
26955                 - Fixed HitTest for today link when ShowToday set to false
26956                 - Fixed DefaultSize to obey ShowToday
26957
26958 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
26959
26960         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
26961         * System.Windows.Forms/Theme.cs
26962         * MonthCalendar.cs: added for MonthCalendar
26963         * SelectionRange.cs: added for MonthCalendar
26964         * Day.cs: added for MonthCalendar: added for MonthCalendar
26965         * DateRangeEventArgs.cs: added for MonthCalendar
26966         * DateRangeEventHandler.cs: added for MonthCalendar
26967
26968 2004-11-22  Ravindra <rkumar@novell.com>
26969
26970         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
26971         property.
26972
26973 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
26974
26975         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
26976         event handler.
26977         
26978         * NumericUpDown.cs: Added new implementation.
26979         * UpDownBase.cs: Added new implementation.
26980
26981         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
26982         implementations.
26983         
26984         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
26985         implementations.
26986
26987         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
26988         methods.
26989
26990 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
26991
26992         * Timer.cs  (Dispose): Should call the base dispose when
26993         overriding.
26994
26995 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
26996
26997         * ScrollBar.cs: updates thumb position when max, min or increment
26998         is changed
26999
27000 2004-11-21  Ravindra <rkumar@novell.com>
27001
27002         * ListView.cs: Implemented item selection, activation and
27003         column header style. Fixed properties to do a redraw, if
27004         required. Added support for MouseHover, DoubleClick, KeyDown
27005         and KeyUp event handling and some minor fixes.
27006         * ListViewItem.cs: Fixed constructor.
27007         * ThemeWin32Classic.cs: Improved drawing for ListView.
27008
27009 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
27010
27011         * ThemeWin32Classic.cs: initial listbox drawing code
27012         * DrawMode.cs: new enumerator
27013         * ListControl.cs: stubbed class
27014         * ListBox.cs: initial implementation
27015         * Theme.cs: new methods definitions
27016         * SelectionMode.cs: new enumerator
27017
27018 2004-11-17  Peter Bartok  <pbartok@novell.com>
27019
27020         * XplatUIWin32.cs: Added double-click events to the class style
27021         * Control.cs (WndProc):
27022           - Added handling of click-count to MouseDown/ MouseUp events.
27023           - Added handling of middle and right mouse buttons
27024           - Removed old debug code
27025
27026 2004-11-17  Jackson Harper  <jackson@ximian.com>
27027
27028         * XplatUIX11.cs: Use the new Mono.Unix namespace.
27029
27030 2004-11-17  Ravindra <rkumar@novell.com>
27031
27032         * ListView.cs: Added event handling for MouseMove/Up/Down.
27033         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
27034         * ThemeWin32Classic.cs: We need to clear the graphics context and
27035         draw column header in a proper state.
27036
27037
27038 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
27039
27040         *  Menu.cs: fixes signature
27041
27042 2004-11-16  Peter Bartok  <pbartok@novell.com>
27043
27044         * XplatUIX11.cs (GetMessage): Implemented generation of
27045           double click mouse messages
27046
27047 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
27048
27049         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
27050         not by menu
27051
27052 2004-11-11  Peter Bartok  <pbartok@novell.com>
27053
27054         * HandleData.cs: Added Visible property
27055         * XplatUIX11.cs (IsVisible): Now uses Visible property from
27056           HandleData
27057         * XplatUIX11.cs: Removed old debug leftovers
27058         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
27059         * Control.cs (WndProc): Removed old debug leftovers,
27060           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
27061           needed WM_SIZE handling
27062
27063 2004-11-11  Jackson Harper  <jackson@ximian.com>
27064
27065         * OwnerDrawPropertyBag.cs:
27066         * TreeViewImageIndexConverter.cs: Initial implementation
27067
27068 2004-11-10  Jackson Harper  <jackson@ximian.com>
27069
27070         * ThemeWin32Classic.cs:
27071         * TabControl.cs: instead of moving tabs by the slider pos just
27072         start drawing at the tab that is offset by the slider. This way
27073         scrolling always moves by exactly one tab.
27074
27075 2004-11-10  Jackson Harper  <jackson@ximian.com>
27076
27077         * TabControl.cs: You can only scroll left when the slider has
27078         already ben moved right.
27079         
27080 2004-11-10  Jackson Harper  <jackson@ximian.com>
27081
27082         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
27083         the clip area.
27084         
27085 2004-11-10  Jackson Harper  <jackson@ximian.com>
27086
27087         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
27088         clip area.
27089         
27090 2004-11-09  Jackson Harper  <jackson@ximian.com>
27091
27092         * TabControl.cs (CalcXPos): New helper method so we can determine
27093         the proper place to start drawing vertical tabs.
27094         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
27095         
27096 2004-11-09  Jackson Harper  <jackson@ximian.com>
27097
27098         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
27099         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
27100         and Bottom, left and right are illegal values for this and
27101         multiline is enabled when the alignment is set to left or right.
27102         (DrawTab): Each alignment block should draw the text itself now
27103         because Left requires special love. Also add rendering for Left
27104         aligned tabs.
27105         
27106 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
27107
27108         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
27109         does not destroy the windows, removes debugging messages
27110
27111 2004-11-09  jba  <jba-mono@optusnet.com.au>
27112
27113         * ThemeWin32Classic.cs
27114         (DrawButtonBase): Fix verticle text rect clipping in windows
27115         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
27116         rendering and incorrect text rect clipping
27117         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
27118         rendering and incorrect text rect clipping
27119         
27120 2004-11-08  Jackson Harper  <jackson@ximian.com>
27121
27122         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
27123         bottom when they are bottom aligned so the bottoms of the tabs get
27124         displayed.
27125         * TabControl.cs (DropRow): Move rows up instead of down when the
27126         tab control is bottom aligned.
27127
27128 2004-11-08 13:59  pbartok
27129
27130         * XplatUIX11.cs:
27131           - Added handling for various window styles
27132           - Added handling for popup windows
27133           - Added SetTopmost handling
27134
27135 2004-11-08 13:55  pbartok
27136
27137         * XplatUIWin32.cs:
27138           - Added argument to SetTopmost method
27139           - Fixed broken ClientToScreen function
27140
27141 2004-11-08 13:53  pbartok
27142
27143         * XplatUIStructs.cs:
27144           - Added missing WS_EX styles
27145
27146 2004-11-08 13:53  pbartok
27147
27148         * XplatUI.cs, XplatUIDriver.cs:
27149           - Added argument to SetTopmost
27150
27151 2004-11-08 13:52  pbartok
27152
27153         * X11Structs.cs:
27154           - Added XSetWindowAttributes structure
27155           - Improved XWindowAttributes structure
27156           - Added SetWindowValuemask enum
27157           - Added window creation arguments enum
27158           - Added gravity enum
27159           - Added Motif hints structure
27160           - Added various Motif flags and enums
27161           - Added PropertyMode enum for property functions
27162
27163 2004-11-08 13:50  pbartok
27164
27165         * Form.cs:
27166           - Fixed arguments for updated SetTopmost method
27167
27168 2004-11-08 13:49  pbartok
27169
27170         * ToolTip.cs:
27171           - Fixed arguments for updated SetTopmost function
27172           - Fixed usage of PointToClient
27173
27174 2004-11-08 13:44  pbartok
27175
27176         * MenuAPI.cs:
27177           - Added Clipping of children and siblings
27178
27179 2004-11-08 13:41  pbartok
27180
27181         * MainMenu.cs:
27182           - Removed SetMenuBarWindow call. We do this in Form.cs
27183
27184 2004-11-08 13:40  jackson
27185
27186         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
27187           scrolling jimmi in the correct location with bottom aligned tabs
27188
27189 2004-11-08 13:36  pbartok
27190
27191         * ContainerControl.cs:
27192           - Implemented BindingContext
27193           - Implemented ParentForm
27194
27195 2004-11-08 12:46  jackson
27196
27197         * TabControl.cs: Put bottom rendered tabs in the right location
27198
27199 2004-11-08 07:15  jordi
27200
27201         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
27202           removes dead code
27203
27204 2004-11-05 17:30  jackson
27205
27206         * TabControl.cs: When selected tabs are expanded make sure they
27207           don't go beyond the edges of the tab control
27208
27209 2004-11-05 14:57  jackson
27210
27211         * TabControl.cs: Reset show_slider so if the control is resized to
27212           a size where it is no longer needed it's not displayed anymore
27213
27214 2004-11-05 13:16  jackson
27215
27216         * TabControl.cs: Make tab pages non visible when added to the
27217           control
27218
27219 2004-11-05 12:42  jackson
27220
27221         * TabControl.cs: Implement SizeMode.FillToRight
27222
27223 2004-11-05 12:16  jackson
27224
27225         * Control.cs: Do not call CreateHandle if the handle is already
27226           created
27227
27228 2004-11-05 11:46  jackson
27229
27230         * TabControl.cs: Remove superflous call to CalcTabRows
27231
27232 2004-11-05 09:07  jackson
27233
27234         * XplatUIX11.cs: Update for Mono.Posix changes
27235
27236 2004-11-05 07:00  ravindra
27237
27238         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
27239           scrolling.
27240
27241 2004-11-04 22:47  jba
27242
27243         * ThemeWin32Classic.cs:
27244           - Fix Button rendering for FlatStyle = Flat or Popup
27245           - Fix RadioButton and CheckBox rendering when Appearance = Button
27246             (normal and flatstyle).
27247           - Correct outer rectangle color when drawing focus rectangle
27248           - Adjust button bounds to be 1 px smaller when focused
27249           - Make button not draw sunken 3d border when pushed (windows compat)
27250           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
27251           - Offset the text in RadioButton and Checkbox when being rendered as
27252           a button.
27253           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
27254           radiobuttons
27255           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
27256           - Fixed disabled text rendering for normally rendered radiobuttons
27257
27258 2004-11-04 10:26  jackson
27259
27260         * TabControl.cs: Recalculate tab rows when resizing
27261
27262 2004-11-04 07:47  jordi
27263
27264         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
27265           collection completion, drawing issues, missing features
27266
27267 2004-11-04 05:03  ravindra
27268
27269         * ScrollBar.cs:
27270                 - We need to recalculate the Thumb area when
27271                 LargeChange/maximum/minimum values are changed.
27272           - We set the 'pos' in UpdatePos() method to minimum, if it's less
27273                 than minimum. This is required to handle the case if large_change is
27274                 more than max, and use LargeChange property instead of large_change
27275                 variable.
27276           - We return max+1 when large_change is more than max, like MS does.
27277
27278 2004-11-04 04:29  ravindra
27279
27280         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
27281                 - Changed default value signatures (prefixed all with ListView).
27282                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
27283                 ListView.
27284           - Fixed calculations for ListViewItem and implemented Clone()
27285           method.
27286
27287 2004-11-04 04:26  ravindra
27288
27289         * Theme.cs, ThemeWin32Classic.cs:
27290                 - Changed default ListView values signatures (prefixed all with
27291                 ListView).
27292           - Fixed default size values for VScrollBar and HScrollBar.
27293                 - Fixed DrawListViewItem method.
27294
27295 2004-11-04 04:05  ravindra
27296
27297         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
27298
27299 2004-11-04 04:04  ravindra
27300
27301         * ImageList.cs: Implemented the missing overload for Draw method.
27302
27303 2004-11-03 19:29  jackson
27304
27305         * TabControl.cs: Handle dropping rows on selection properly
27306
27307 2004-11-03 11:59  jackson
27308
27309         * TabControl.cs: remove debug code
27310
27311 2004-11-03 11:52  jackson
27312
27313         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
27314           the scrolly widgerywoo
27315
27316 2004-11-02 13:52  jackson
27317
27318         * TabControl.cs: Resize the tab pages and tabs when the tab control
27319           is resized
27320
27321 2004-11-02 13:40  jackson
27322
27323         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
27324           selected tab to the bottom
27325
27326 2004-11-02 13:39  jackson
27327
27328         * TabPage.cs: Store the tab pages row
27329
27330 2004-11-02 12:33  jordi
27331
27332         * MenuItem.cs: fixes handle creation
27333
27334 2004-11-02 11:42  jackson
27335
27336         * TabControl.cs: signature fix
27337
27338 2004-11-02 08:56  jackson
27339
27340         * TabControl.cs: Calculate whether the tab is on an edge properly.
27341           Remove top secret debugging code
27342
27343 2004-11-01 19:57  jackson
27344
27345         * TabControl.cs: Add click handling, and proper sizing
27346
27347 2004-11-01 19:47  jackson
27348
27349         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
27350           tab controls
27351
27352 2004-11-01 19:39  jackson
27353
27354         * TabPage.cs: add internal property to store the bounds of a tab
27355           page
27356
27357 2004-10-30 04:23  ravindra
27358
27359         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
27360           values.
27361
27362 2004-10-30 04:21  ravindra
27363
27364         * ListView.cs, ListViewItem.cs: Added support for scrolling and
27365           fixed calculations.
27366
27367 2004-10-30 03:06  pbartok
27368
27369         * XplatUIX11.cs:
27370           - Removed extension of DllImported libs
27371
27372 2004-10-29 09:55  jordi
27373
27374         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
27375           navigation, itemcollection completion, menu fixes
27376
27377 2004-10-27 22:58  pbartok
27378
27379         * XplatUIX11.cs:
27380           - Now throws a nice error message when no X display could be opened
27381
27382 2004-10-26 13:51  jordi
27383
27384         * ListView.cs: removes warning
27385
27386 2004-10-26 03:55  ravindra
27387
27388         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
27389           ThemeWin32Classic.cs: Some formatting for my last checkins.
27390
27391 2004-10-26 03:36  ravindra
27392
27393         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
27394           control and default values.
27395
27396 2004-10-26 03:35  ravindra
27397
27398         * Theme.cs: Added some default values for ListView control.
27399
27400 2004-10-26 03:33  ravindra
27401
27402         * ToolBar.cs: ToolBar should use the user specified button size, if
27403           there is any. Added a size_specified flag for the same.
27404
27405 2004-10-26 03:33  ravindra
27406
27407         * ColumnHeader.cs: Added some internal members and calculations for
27408           ColumnHeader.
27409
27410 2004-10-26 03:32  ravindra
27411
27412         * ListViewItem.cs: Calculations for ListViewItem.
27413
27414 2004-10-26 03:31  ravindra
27415
27416         * ListView.cs: Added some internal members and calculations for
27417           ListView.
27418
27419 2004-10-22 13:31  jordi
27420
27421         * MenuAPI.cs: speedup menus drawing
27422
27423 2004-10-22 13:16  jackson
27424
27425         * XplatUIX11.cs: Make sure to update exposed regions when adding an
27426           expose event
27427
27428 2004-10-22 11:49  jackson
27429
27430         * Control.cs: oops
27431
27432 2004-10-22 11:41  jackson
27433
27434         * Control.cs: Check to see if the window should have its background
27435           repainted by X when drawing.
27436
27437 2004-10-22 11:31  jackson
27438
27439         * XplatUIX11.cs: When invalidating areas only use XClearArea if
27440           clear is true, this way we do not get flicker from X repainting the
27441           background
27442
27443 2004-10-22 11:28  jackson
27444
27445         * XEventQueue.cs: Queue properly
27446
27447 2004-10-21 09:38  jackson
27448
27449         * XEventQueue.cs: Fix access modifier
27450
27451 2004-10-21 09:36  jackson
27452
27453         * XEventQueue.cs: Don't loose messages
27454
27455 2004-10-21 09:22  jackson
27456
27457         * XEventQueue.cs: Don't loose messages
27458
27459 2004-10-20 04:15  jordi
27460
27461         * BootMode.cs: enum need it by SystemInfo
27462
27463 2004-10-19 21:58  pbartok
27464
27465         * XplatUIWin32.cs:
27466           - Small sanity check
27467
27468 2004-10-19 21:56  pbartok
27469
27470         * Form.cs:
27471           - Added private FormParentWindow class which acts as the container
27472             for our form and as the non-client area where menus are drawn
27473           - Added/Moved required tie-ins to Jordi's menus
27474           - Fixed/Implemented the FormStartPosition functionality
27475
27476 2004-10-19 21:52  pbartok
27477
27478         * Control.cs:
27479           - Removed unneeded locals
27480           - Added code to all size and location properties to understand and
27481             deal with the parent container of Form
27482
27483 2004-10-19 21:33  pbartok
27484
27485         * Application.cs:
27486           - Fixed to deal with new Form subclasses for menus
27487
27488 2004-10-19 17:48  jackson
27489
27490         * XEventQueue.cs: commit correct version of file
27491
27492 2004-10-19 16:50  jackson
27493
27494         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
27495
27496 2004-10-19 16:15  jordi
27497
27498         * MenuAPI.cs: MenuBarCalcSize returns the height
27499
27500 2004-10-19 08:31  pbartok
27501
27502         * Control.cs:
27503           - Added missing call to PreProcessMessage before calling OnXXXKey
27504           methods
27505
27506 2004-10-19 00:04  ravindra
27507
27508         * ToolTip.cs: Fixed constructor.
27509
27510 2004-10-18 09:31  jordi
27511
27512         * MenuAPI.cs: menuitems in menubars do not have shortcuts
27513
27514 2004-10-18 09:26  jordi
27515
27516         * MenuItem.cs: fixes MenuItem class signature
27517
27518 2004-10-18 08:56  jordi
27519
27520         * MenuAPI.cs: prevents windows from showing in the taskbar
27521
27522 2004-10-18 00:28  ravindra
27523
27524         * ToolTip.cs: Suppressed a warning message.
27525
27526 2004-10-18 00:27  ravindra
27527
27528         * Control.cs: Default value of visible property must be true.
27529
27530 2004-10-17 23:19  pbartok
27531
27532         * ToolTip.cs:
27533           - Complete implementation
27534
27535 2004-10-17 23:19  pbartok
27536
27537         * XplatUIX11.cs:
27538           - Added EnableWindow method
27539           - Added SetModal stub
27540           - Added generation of WM_ACTIVATE message (still needs testing)
27541           - Added SetTopMost stub
27542           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
27543
27544 2004-10-17 23:17  pbartok
27545
27546         * XplatUIWin32.cs:
27547           - Removed VirtualKeys to XplatUIStructs
27548           - Implemented SetTopMost method
27549           - Implemented EnableWindow method
27550           - Bugfix in ScreenToClient()
27551           - Bugfixes in ClientToScreen()
27552
27553 2004-10-17 22:51  pbartok
27554
27555         * XplatUIStructs.cs:
27556           - Added WS_EX styles to WindowStyles enumeration
27557
27558 2004-10-17 22:50  pbartok
27559
27560         * XplatUI.cs, XplatUIDriver.cs:
27561           - Added method for enabling/disabling windows
27562           - Added method for setting window modality
27563           - Added method for setting topmost window
27564
27565 2004-10-17 22:49  pbartok
27566
27567         * ThemeWin32Classic.cs:
27568           - Added ToolTip drawing code
27569
27570 2004-10-17 22:49  pbartok
27571
27572         * Theme.cs:
27573           - Added ToolTip abstracts
27574
27575 2004-10-17 22:47  pbartok
27576
27577         * Form.cs:
27578           - Fixed Form.ControlCollection to handle owner relations
27579           - Added Owner/OwnedForms handling
27580           - Implemented Z-Ordering for owned forms
27581           - Removed unneeded private overload of ShowDialog
27582           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
27583             so I hope)
27584           - Fixed Close(), had wrong default
27585           - Added firing of OnLoad event
27586           - Added some commented out debug code for Ownership handling
27587
27588 2004-10-17 22:16  pbartok
27589
27590         * Control.cs:
27591           - Fixed/implemented flat list of controls
27592
27593 2004-10-17 22:14  pbartok
27594
27595         * Application.cs:
27596           - Added code to simulate modal dialogs on Win32
27597
27598 2004-10-17 16:11  jordi
27599
27600         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
27601           mouse event
27602
27603 2004-10-17 13:39  jordi
27604
27605         * MenuAPI.cs: menu drawing fixes
27606
27607 2004-10-15 09:10  ravindra
27608
27609         * StructFormat.cs: General Enum.
27610
27611 2004-10-15 09:09  ravindra
27612
27613         * SizeGripStyle.cs: Enum for Form.
27614
27615 2004-10-15 09:08  ravindra
27616
27617         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
27618           in Theme for ListView.
27619
27620 2004-10-15 09:06  ravindra
27621
27622         * ColumnHeader.cs: Flushing some formatting changes.
27623
27624 2004-10-15 09:05  ravindra
27625
27626         * ListViewItem.cs: Implemented GetBounds method and fixed coding
27627           style.
27628
27629 2004-10-15 09:03  ravindra
27630
27631         * ListView.cs: Implemented Paint method and fixed coding style.
27632
27633 2004-10-15 07:34  jordi
27634
27635         * MenuAPI.cs: fix for X11
27636
27637 2004-10-15 07:32  ravindra
27638
27639         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
27640                 - Renamed Paint() method to Draw() for clarity. Also, moved
27641                 DrawImage() to OnPaint().
27642
27643 2004-10-15 07:25  ravindra
27644
27645         * CheckBox.cs, RadioButton.cs:
27646                 - Removed Redraw (), we get it from ButtonBase.
27647                 - Implemented Paint (), to do class specific painting.
27648
27649 2004-10-15 07:16  ravindra
27650
27651         * ButtonBase.cs:
27652                 - Redraw () is not virtual now.
27653                 - Added an internal virtual method Paint (), so that
27654                 derived classes can do their painting on their own.
27655                 - Modified OnPaint () to call Paint ().
27656
27657 2004-10-15 06:43  jordi
27658
27659         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
27660           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
27661
27662 2004-10-15 00:30  ravindra
27663
27664         * MessageBox.cs:
27665                 - MessageBox on windows does not have min/max buttons.
27666                 This change in CreateParams fixes this on Windows. We
27667                 still need to implement this windowstyle behavior in
27668                 our X11 driver.
27669
27670 2004-10-14 05:14  ravindra
27671
27672         * ToolBar.cs:
27673                 - Changed Redraw () to do a Refresh () always.
27674                 - Fixed the MouseMove event handling when mouse is pressed,
27675                 ie drag event handling.
27676                 - Replaced the usage of ToolBarButton.Pressed property to
27677                 ToolBarButton.pressed internal variable.
27678
27679 2004-10-14 05:10  ravindra
27680
27681         * ToolBarButton.cs:
27682                 - Added an internal member 'inside' to handle mouse move
27683                 with mouse pressed ie mouse drag event.
27684                 - Changed 'Pressed' property to return true only when
27685                 'inside' and 'pressed' are both true.
27686                 - Some coding style love.
27687
27688 2004-10-14 00:17  ravindra
27689
27690         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
27691           public method.
27692
27693 2004-10-14 00:15  ravindra
27694
27695         * ButtonBase.cs: Redraw () related improvements.
27696
27697 2004-10-14 00:14  ravindra
27698
27699         * MessageBox.cs: Moved InitFormSize () out of Paint method and
27700           removed unnecessary calls to Button.Show () method.
27701
27702 2004-10-13 17:50  pbartok
27703
27704         * XplatUIX11.cs:
27705           - Formatting fix
27706           - Removed destroying of window until we solve the problem of X
27707             destroying the window before us on shutdown
27708
27709 2004-10-13 16:32  pbartok
27710
27711         * ButtonBase.cs:
27712           - Now Redraws on MouseUp for FlatStyle Flat and Popup
27713
27714 2004-10-13 14:18  pbartok
27715
27716         * XplatUIX11.cs:
27717           - Added code to destroy the X window
27718
27719 2004-10-13 14:18  pbartok
27720
27721         * XplatUIWin32.cs:
27722           - Added code to destroy a window
27723
27724 2004-10-13 14:12  pbartok
27725
27726         * ButtonBase.cs:
27727           - Added the Redraw on Resize that got dropped in the last rev
27728
27729 2004-10-13 09:06  pbartok
27730
27731         * ThemeWin32Classic.cs:
27732           - Path from John BouAntoun:
27733             * Fix check rendering (centre correctly for normal style, offset
27734               correctly for FlatStyle).
27735             * Fix border color usage (use backcolor) for FlatStyle.Popup
27736             * Use checkbox.Capture instead of checkbox.is_pressed when
27737               rendering flatstyle states.
27738
27739 2004-10-12 21:48  pbartok
27740
27741         * ThemeWin32Classic.cs:
27742           - Removed all occurences of SystemColors and replaced them with the
27743             matching theme color
27744
27745 2004-10-12 21:41  pbartok
27746
27747         * ThemeWin32Classic.cs:
27748           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
27749             him using the function for flatstyle drawing
27750           - Changed functions to use the new version of CPDrawBorder3D
27751
27752 2004-10-12 21:15  pbartok
27753
27754         * ControlPaint.cs:
27755           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
27756             match MS documentation. They need to return defined colors if the
27757             passed color matches the configured control color. Thanks to John
27758             BouAntoun for pointing this out.
27759
27760 2004-10-12 20:57  pbartok
27761
27762         * Control.cs:
27763           - Fix from John BouAntoun: Raise ForeColorChanged event when text
27764             color is changed
27765
27766 2004-10-12 20:46  pbartok
27767
27768         * CheckBox.cs:
27769           - Fix from John BouAntoun: Now properly sets the Appearance property
27770
27771 2004-10-12 20:45  pbartok
27772
27773         * ThemeWin32Classic.cs:
27774           - Fixes from John BouAntoun: now handles forecolors and backcolors
27775             for flatstyle rendered controls much better; It also fixes normal
27776             checkbox rendering when pushed or disabled.
27777
27778 2004-10-08 02:50  jordi
27779
27780         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
27781           work
27782
27783 2004-10-07 08:56  jordi
27784
27785         * ThemeWin32Classic.cs: Removes deletion of cached brushes
27786
27787 2004-10-06 03:59  jordi
27788
27789         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
27790           XplatUIWin32.cs: removes warnings from compilation
27791
27792 2004-10-05 12:23  jackson
27793
27794         * RadioButton.cs: Fix ctor
27795
27796 2004-10-05 11:10  pbartok
27797
27798         * MessageBox.cs:
27799           - Partial implementation by Benjamin Dasnois
27800
27801 2004-10-05 10:15  jackson
27802
27803         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
27804           by John BouAntoun
27805
27806 2004-10-05 03:07  ravindra
27807
27808         * ToolBar.cs:
27809                 - Removed a private method, Draw ().
27810                 - Fixed the ButtonDropDown event handling.
27811                 - Fixed MouseMove event handling.
27812
27813 2004-10-05 03:04  ravindra
27814
27815         * ThemeWin32Classic.cs:
27816                 - Added DrawListView method and ListViewDefaultSize property.
27817                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
27818                 - Changed DOS style CRLF to Unix format (dos2unix).
27819
27820 2004-10-05 03:03  ravindra
27821
27822         * Theme.cs:
27823                 - Added DrawListView method and ListViewDefaultSize property.
27824
27825 2004-10-05 02:42  ravindra
27826
27827         * ToolBarButton.cs: Added an internal member dd_pressed to handle
27828           clicks on DropDown arrow.
27829
27830 2004-10-04 22:56  jackson
27831
27832         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
27833           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
27834           Control handle the buffers, derived classes should not have to
27835           CreateBuffers themselves.
27836
27837 2004-10-04 21:20  jackson
27838
27839         * StatusBar.cs: The control handles resizing the buffers now.
27840
27841 2004-10-04 21:18  jackson
27842
27843         * Control.cs: When resizing the buffers should be invalidated. This
27844           should be handled in Control not in derived classes.
27845
27846 2004-10-04 14:45  jackson
27847
27848         * TabPage.cs: oops
27849
27850 2004-10-04 02:14  pbartok
27851
27852         * LeftRightAlignment.cs:
27853           - Initial check-in
27854
27855 2004-10-04 01:09  jordi
27856
27857         * ThemeWin32Classic.cs: fixes right button position causing right
27858           button not showing on horizontal scrollbars
27859
27860 2004-10-02 13:12  pbartok
27861
27862         * XplatUIX11.cs:
27863           - Simplified the Invalidate method by using an X call instead of
27864             generating the expose ourselves
27865           - Added an expose when the window background is changed
27866           - Implemented ClientToScreen method
27867
27868 2004-10-02 13:08  pbartok
27869
27870         * XplatUIWin32.cs:
27871           - Added Win32EnableWindow method (test for implementing modal
27872           dialogs)
27873           - Added ClientToScreen method and imports
27874
27875 2004-10-02 13:07  pbartok
27876
27877         * XplatUI.cs, XplatUIDriver.cs:
27878           - Added ClientToScreen coordinate translation method
27879
27880 2004-10-02 13:06  pbartok
27881
27882         * KeyPressEventArgs.cs:
27883           - Fixed access level for constructor
27884
27885 2004-10-02 13:06  pbartok
27886
27887         * NativeWindow.cs:
27888           - Changed access level for the window_collection hash table
27889
27890 2004-10-02 13:05  pbartok
27891
27892         * Form.cs:
27893           - Added KeyPreview property
27894           - Added Menu property (still incomplete, pending Jordi's menu work)
27895           - Implemented ProcessCmdKey
27896           - Implemented ProcessDialogKey
27897           - Implemented ProcessKeyPreview
27898
27899 2004-10-02 13:02  pbartok
27900
27901         * Control.cs:
27902           - Added private method to get the Control object from the window
27903           handle
27904           - Implemented ContextMenu property
27905           - Implemented PointToScreen
27906           - Implemented PreProcessMessage
27907           - Implemented IsInputChar
27908           - Implemented IsInputKey
27909           - Implemented ProcessCmdKey
27910           - Completed ProcessKeyEventArgs
27911           - Fixed message loop to call the proper chain of functions on key
27912           events
27913           - Implemented ProcessDialogChar
27914           - Implemented ProcessDialogKey
27915           - Implemented ProcessKeyMessage
27916           - Implemented ProcessKeyPreview
27917           - Added RaiseDragEvent stub (MS internal method)
27918           - Added RaiseKeyEvent stub (MS internal method)
27919           - Added RaiseMouseEvent stub (MS Internal method)
27920           - Added RaisePaintEvent stub (MS Internal method)
27921           - Added ResetMouseEventArgs stub (MS Internal method)
27922           - Implemented RtlTranslateAlignment
27923           - Implemented RtlTranslateContent
27924           - Implemented RtlTranslateHorizontal
27925           - Implemented RtlTranslateLeftRight
27926           - Added generation of KeyPress event
27927
27928 2004-10-02 05:57  ravindra
27929
27930         * ListViewItem.cs: Added attributes.
27931
27932 2004-10-02 05:32  ravindra
27933
27934         * ListView.cs: Added attributes.
27935
27936 2004-10-01 11:53  jackson
27937
27938         * Form.cs: Implement the Close method so work on MessageBox can
27939           continue.
27940
27941 2004-09-30 14:06  pbartok
27942
27943         * XplatUIX11.cs:
27944           - Bug fixes
27945
27946 2004-09-30 11:34  jackson
27947
27948         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
27949
27950 2004-09-30 07:26  ravindra
27951
27952         * ListViewItemConverter.cs: Converter for ListViewItem.
27953
27954 2004-09-30 07:26  ravindra
27955
27956         * SortOrder.cs: Enum for ListView control.
27957
27958 2004-09-30 07:25  ravindra
27959
27960         * ColumnHeader.cs: Supporting class for ListView control.
27961
27962 2004-09-30 07:24  ravindra
27963
27964         * ListView.cs, ListViewItem.cs: Initial implementation.
27965
27966 2004-09-30 07:20  ravindra
27967
27968         * ItemActivation.cs: Enum for ListView Control.
27969
27970 2004-09-29 20:29  pbartok
27971
27972         * XplatUIX11.cs:
27973           - Added lookup of pixel value for background color; tries to get a
27974             color 'close' to the requested color, it avoids having to create a
27975             colormap.  Depending on the display this could mean the used color
27976             is slightly off the desired color. Might have to change it to a more
27977             resource intensive colormap approach, but it will work as a
27978           workaround to avoid red screens.
27979
27980 2004-09-29 14:27  jackson
27981
27982         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
27983
27984 2004-09-28 12:44  pbartok
27985
27986         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
27987           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
27988           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
27989           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
27990           TrackBar.cs, VScrollBar.cs:
27991           - Streamlined Theme interfaces:
27992             * Each DrawXXX method for a control now is passed the object for
27993               the control to be drawn in order to allow accessing any state the
27994               theme might require
27995
27996             * ControlPaint methods for the theme now have a CP prefix to avoid
27997               name clashes with the Draw methods for controls
27998
27999             * Every control now retrieves it's DefaultSize from the current
28000             theme
28001
28002 2004-09-28 12:17  jackson
28003
28004         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
28005           drawing
28006
28007 2004-09-24 14:57  jackson
28008
28009         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
28010           Gives us a nice little performance boost.
28011
28012 2004-09-24 12:02  jackson
28013
28014         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
28015           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
28016           Control and supporting classes. Initial checkin
28017
28018 2004-09-23 13:08  jackson
28019
28020         * Form.cs: Temp build fixage
28021
28022 2004-09-23 01:39  ravindra
28023
28024         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
28025           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
28026           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
28027           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
28028           EventHandlers needed by ListView Control.
28029
28030 2004-09-22 14:12  pbartok
28031
28032         * ScrollableControl.cs:
28033           - Implemented DockPadding property
28034           - Implemented AutoScroll property
28035           - Implemented AutoScrollMargin property
28036           - Implemented AutoScrollMinSize property
28037           - Implemented AutoScrollPosition property
28038           - Implemented DisplayRectangle property (still incomplete)
28039           - Implemented CreateParams property
28040           - Implemented HScroll property
28041           - Implemented VScroll property
28042           - Implemented OnVisibleChanged property
28043
28044 2004-09-22 14:09  pbartok
28045
28046         * Form.cs:
28047           - Added Form.ControllCollection class
28048           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
28049             RemoveOwnedForm (still incomplete, missing on-top and common
28050             minimize/maximize behaviour)
28051           - Added StartPosition property (still incomplete, does not use when
28052             creating the form)
28053           - Added ShowDialog() methods (still incomplete, missing forcing the
28054             dialog modal)
28055
28056 2004-09-22 14:05  pbartok
28057
28058         * Application.cs:
28059           - Added message loop for modal dialogs
28060
28061 2004-09-22 14:02  pbartok
28062
28063         * GroupBox.cs:
28064           - Fixed wrong types for events
28065
28066 2004-09-22 14:00  pbartok
28067
28068         * Shortcut.cs, FormWindowState.cs:
28069           - Fixed wrong values
28070
28071 2004-09-22 12:01  jackson
28072
28073         * Control.cs: Text is never null
28074
28075 2004-09-20 22:14  pbartok
28076
28077         * XplatUIWin32.cs:
28078           - Fixed accessibility level for Idle handler
28079
28080 2004-09-20 18:54  jackson
28081
28082         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
28083           XplatUIX11.cs: New message loop that uses poll so we don't get a
28084           busy loop
28085
28086 2004-09-17 10:43  pbartok
28087
28088         * ScrollBar.cs:
28089           - Fixed behaviour of arrow buttons. Now properly behaves like
28090             Buttons (and like Microsoft's scrollbar arrow buttons)
28091
28092 2004-09-17 10:14  pbartok
28093
28094         * ScrollBar.cs:
28095           - Added missing release of keyboard/mouse capture
28096
28097 2004-09-17 06:18  jordi
28098
28099         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
28100           Theme.cs: Very early menu support
28101
28102 2004-09-16 17:45  pbartok
28103
28104         * XplatUIWin32.cs:
28105           - Fixed sending a window to the front
28106           - Added overload for SetWindowPos to avoid casting
28107
28108 2004-09-16 17:44  pbartok
28109
28110         * Control.cs:
28111           - Added SendToBack and BringToFront methods
28112
28113 2004-09-16 07:00  ravindra
28114
28115         * Copyright: Added Novell URL.
28116
28117 2004-09-16 07:00  ravindra
28118
28119         * ToolBar.cs: Invalidate should be done before redrawing.
28120
28121 2004-09-15 21:19  ravindra
28122
28123         * ColumnHeaderStyle.cs: Enum for ListView Control.
28124
28125 2004-09-15 21:18  ravindra
28126
28127         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
28128           ListView Control.
28129
28130 2004-09-13 18:26  jackson
28131
28132         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
28133           properly
28134
28135 2004-09-13 18:13  jackson
28136
28137         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
28138           a second thread and post messages into the main threads message
28139           queue. This makes timing much more consistent. Both win2K and XP
28140           have a minimum timer value of 15 milliseconds, so we now do this
28141           too.
28142
28143 2004-09-13 15:18  pbartok
28144
28145         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
28146           XplatUIX11.cs:
28147           - Added Z-Ordering methods
28148
28149 2004-09-13 10:56  pbartok
28150
28151         * Form.cs:
28152           - Fixed #region names
28153           - Moved properties and methods into their proper #regions
28154
28155 2004-09-13 10:51  pbartok
28156
28157         * Form.cs:
28158           - Added Accept and CancelButton properties
28159           - Added ProcessDialogKey() method
28160
28161 2004-09-13 08:18  pbartok
28162
28163         * IWindowTarget.cs:
28164           - Initial check-in
28165
28166 2004-09-10 21:50  pbartok
28167
28168         * Control.cs:
28169           - Added DoDragDrop() [incomplete]
28170           - Properly implemented 'Visible' handling
28171           - Added SetVisibleCore()
28172           - Implemented FindChildAtPoint()
28173           - Implemented GetContainerControl()
28174           - Implemented Hide()
28175
28176 2004-09-10 19:28  pbartok
28177
28178         * Control.cs:
28179           - Moved methods into their appropriate #regions
28180           - Reordered methods within regions alphabetically
28181
28182 2004-09-10 18:57  pbartok
28183
28184         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
28185           - Added method to retrieve text from window
28186
28187 2004-09-10 18:56  pbartok
28188
28189         * Control.cs:
28190           - Moved some internal functions into the internal region
28191           - Implemented FontHeight
28192           - Implemented RenderRightToLeft
28193           - Implemented ResizeRedraw
28194           - Implemented ShowFocusCues
28195           - Implemented ShowKeyboardCues
28196           - Implemented FromChildHandle
28197           - Implemented FromHandle
28198           - Implemented IsMnemonic
28199           - Implemented ReflectMessage
28200           - All public and protected Static Methods are now complete
28201
28202 2004-09-10 16:54  pbartok
28203
28204         * Control.cs:
28205           - Implemented remaining missing public instance properties
28206           - Alphabetized some out of order properties
28207
28208 2004-09-10 05:51  ravindra
28209
28210         * PictureBox.cs: Added a check for null image.
28211
28212 2004-09-10 00:59  jordi
28213
28214         * GroupBox.cs: remove cvs tag
28215
28216 2004-09-09 05:25  ravindra
28217
28218         * ToolBar.cs: Make redraw accessible from ToolBarButton.
28219
28220 2004-09-09 05:23  ravindra
28221
28222         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
28223           parent redraw.
28224
28225 2004-09-09 02:28  pbartok
28226
28227         * ThemeWin32Classic.cs:
28228           - Improve disabled string look
28229
28230 2004-09-09 01:15  jordi
28231
28232         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
28233           args and handler
28234
28235 2004-09-08 23:56  ravindra
28236
28237         * ItemBoundsPortion.cs: It's enum, not a class!
28238
28239 2004-09-08 23:47  ravindra
28240
28241         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
28242           Enums for Form.
28243
28244 2004-09-08 21:13  ravindra
28245
28246         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
28247           ListView control.
28248
28249 2004-09-08 21:03  ravindra
28250
28251         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
28252           avoid crash.
28253
28254 2004-09-08 21:01  ravindra
28255
28256         * ScrollableControl.cs: Removed unreachable code.
28257
28258 2004-09-08 06:45  jordi
28259
28260         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
28261
28262 2004-09-08 01:00  jackson
28263
28264         * XplatUIX11.cs: Only run the timers when updating the message
28265           queue. This effectively gives X messages a higher priority then
28266           timer messages. Timers still need love though
28267
28268 2004-09-07 14:01  jackson
28269
28270         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
28271           this for us and the handle is no longer valid.
28272
28273 2004-09-07 13:59  jackson
28274
28275         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
28276           loop that manages to not crash. TODO: Add poll and cleanup timers
28277
28278 2004-09-07 11:12  jordi
28279
28280         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
28281
28282 2004-09-07 03:40  jordi
28283
28284         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
28285           fixes, methods, multiple links
28286
28287 2004-09-06 06:55  jordi
28288
28289         * Control.cs: Caches ClientRectangle rectangle value
28290
28291 2004-09-05 02:03  jordi
28292
28293         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
28294           certain situations
28295
28296 2004-09-04 11:10  jordi
28297
28298         * Label.cs: Refresh when font changed
28299
28300 2004-09-02 16:24  pbartok
28301
28302         * Control.cs:
28303           - Added sanity check to creation of double buffer bitmap
28304
28305 2004-09-02 16:24  pbartok
28306
28307         * ButtonBase.cs:
28308           - Fixed selection of text color
28309           - Fixed handling of resize event; now properly recreates double
28310             buffering bitmap
28311           - Added missing assignment of TextAlignment
28312           - Added proper default for TextAlignment
28313
28314 2004-09-02 14:26  pbartok
28315
28316         * RadioButton.cs:
28317           - Added missing RadioButton.RadioButtonAccessibleObject class
28318
28319 2004-09-02 14:26  pbartok
28320
28321         * Control.cs:
28322           - Added missing Control.ControlAccessibleObject class
28323           - Started to implement Select()ion mechanisms, still very incomplete
28324
28325 2004-09-02 14:25  pbartok
28326
28327         * AccessibleObject.cs:
28328           - Added missing methods
28329
28330 2004-09-02 14:23  pbartok
28331
28332         * AccessibleNavigation.cs, AccessibleSelection.cs:
28333           - Initial check-in
28334
28335 2004-09-02 10:32  jordi
28336
28337         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
28338           pool for pens, brushes, and hatchbruses
28339
28340 2004-09-01 15:30  jackson
28341
28342         * StatusBar.cs: Fix typo
28343
28344 2004-09-01 14:44  pbartok
28345
28346         * RadioButton.cs:
28347           - Fixed state
28348
28349 2004-09-01 14:39  pbartok
28350
28351         * Button.cs, RadioButton.cs:
28352           - Functional initial check-in
28353
28354 2004-09-01 14:01  pbartok
28355
28356         * CheckBox.cs:
28357           - Added missing default
28358           - Added missing region mark
28359
28360 2004-09-01 09:10  jordi
28361
28362         * Label.cs: fixes method signatures, new methods, events, fixes
28363           autosize
28364
28365 2004-09-01 07:19  jordi
28366
28367         * Control.cs: Init string variables with an empty object
28368
28369 2004-09-01 04:20  jordi
28370
28371         * Control.cs: fires OnFontChanged event
28372
28373 2004-08-31 20:07  pbartok
28374
28375         * ButtonBase.cs:
28376           - Enabled display of strings
28377
28378 2004-08-31 20:05  pbartok
28379
28380         * Form.cs:
28381           - Added (partial) implementation of DialogResult; rest needs to be
28382             implemented when the modal loop code is done
28383
28384 2004-08-31 19:55  pbartok
28385
28386         * CheckBox.cs:
28387           - Fixed to match the removal of the needs_redraw concept
28388
28389 2004-08-31 19:55  pbartok
28390
28391         * ButtonBase.cs:
28392           - Removed the rather odd split between 'needs redraw' and redrawing
28393           - Now handles the events that require regeneration (ambient
28394             properties and size)
28395
28396 2004-08-31 19:41  pbartok
28397
28398         * Control.cs:
28399           - Added firing of BackColorChanged event
28400           - Added TopLevelControl property
28401           - Fixed handling of WM_ERASEBKGRND message
28402
28403 2004-08-31 12:49  pbartok
28404
28405         * ButtonBase.cs:
28406           - Removed debug
28407           - Minor fixes
28408
28409 2004-08-31 12:48  pbartok
28410
28411         * CheckBox.cs:
28412           - Finished (famous last words)
28413
28414 2004-08-31 04:35  jordi
28415
28416         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
28417           scrolling bugs, adds new methods
28418
28419 2004-08-30 14:42  pbartok
28420
28421         * CheckBox.cs:
28422           - Implemented CheckBox drawing code
28423
28424 2004-08-30 14:42  pbartok
28425
28426         * ButtonBase.cs:
28427           - Made Redraw() and CheckRedraw() virtual
28428           - Improved mouse up/down/move logic to properly track buttons
28429
28430 2004-08-30 09:44  pbartok
28431
28432         * CheckBox.cs:
28433           - Updated to fix broken build. Not complete yet.
28434
28435 2004-08-30 09:28  pbartok
28436
28437         * CheckState.cs:
28438           - Initial checkin
28439
28440 2004-08-30 09:17  pbartok
28441
28442         * Appearance.cs:
28443           - Initial check-in
28444
28445 2004-08-27 16:12  ravindra
28446
28447         * ToolBarButton.cs: Added TypeConverter attribute.
28448
28449 2004-08-27 16:07  ravindra
28450
28451         * ImageIndexConverter.cs: Implemented.
28452
28453 2004-08-27 14:17  pbartok
28454
28455         * Control.cs:
28456           - Removed unneeded stack vars
28457           - First attempt to fix sizing issues when layout is suspended
28458
28459 2004-08-25 15:35  jordi
28460
28461         * ScrollBar.cs: more fixes to scrollbar
28462
28463 2004-08-25 14:04  ravindra
28464
28465         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
28466           Added the missing divider code and grip for ToolBar Control.
28467
28468 2004-08-25 13:20  pbartok
28469
28470         * Control.cs:
28471           - Control now properly passes the ambient background color to child
28472             controls
28473
28474 2004-08-25 13:20  jordi
28475
28476         * ScrollBar.cs: small bug fix regarding bar position
28477
28478 2004-08-25 12:33  pbartok
28479
28480         * Timer.cs:
28481           - Now only calls SetTimer or KillTimer if the enabled state has
28482           changed
28483
28484 2004-08-25 12:33  pbartok
28485
28486         * XplatUIWin32.cs:
28487           - Fixed timer handling, now seems to work
28488           - Improved error message for window creation
28489
28490 2004-08-25 12:32  pbartok
28491
28492         * Control.cs:
28493           - Fixed generation of MouseUp message
28494
28495 2004-08-25 12:29  jordi
28496
28497         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
28498           and fixes for progressbar
28499
28500 2004-08-24 18:43  ravindra
28501
28502         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
28503           in ToolBar control.
28504
28505 2004-08-24 17:15  pbartok
28506
28507         * Panel.cs:
28508           - Added #region
28509           - Added missing events
28510           - Alphabetized
28511
28512 2004-08-24 17:14  pbartok
28513
28514         * StatusBar.cs, PictureBox.cs:
28515           - Now uses Control's CreateParams
28516
28517 2004-08-24 16:36  pbartok
28518
28519         * XplatUIX11.cs:
28520           - Fixed background color handling
28521           - Fixed sending of enter/leave events on a grab
28522
28523 2004-08-24 16:35  pbartok
28524
28525         * X11Structs.cs:
28526           - Refined definitions for CrossingEvent
28527
28528 2004-08-24 12:37  jordi
28529
28530         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
28531           formmating, methods signature, and adds missing events
28532
28533 2004-08-24 12:24  jordi
28534
28535         * Control.cs: fire OnEnabledChanged event
28536
28537 2004-08-24 11:17  pbartok
28538
28539         * XplatUIWin32.cs:
28540           - Implemented SetTimer() and KillTimer()
28541
28542 2004-08-24 11:16  pbartok
28543
28544         * XplatUIX11.cs:
28545           - Now uses Remove instead of Add to kill the timer
28546
28547 2004-08-24 10:16  jackson
28548
28549         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
28550           picture boxes in the theme now. Draw picture box borders and obey
28551           sizing modes
28552
28553 2004-08-24 05:49  jackson
28554
28555         * Timer.cs: Remove top secret debugging code
28556
28557 2004-08-24 05:34  jackson
28558
28559         * PictureBox.cs: Temp hack to make picture boxes draw their full
28560           image
28561
28562 2004-08-24 05:29  jackson
28563
28564         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
28565           XplatUIX11.cs: Move timers to the driver level. On X they are
28566           queued by the driver and checked on idle.
28567
28568 2004-08-24 01:07  jackson
28569
28570         * XplatUIX11.cs: Use a queue for async messages instead of passing
28571           them as ClientMessages since that was totally broken. Also simply
28572           check for events and return an idle message if none are found. This
28573           gives us an idle handler, and prevents deadlocking when no messages
28574           are in the queue.
28575
28576 2004-08-23 18:19  ravindra
28577
28578         * XplatUIWin32.cs: Removed the unwanted destructor.
28579
28580 2004-08-23 17:27  pbartok
28581
28582         * ButtonBase.cs:
28583           - Finishing touches. Works now, just needs some optimizations.
28584
28585 2004-08-23 16:53  jordi
28586
28587         * ScrollBar.cs: small fix
28588
28589 2004-08-23 16:45  pbartok
28590
28591         * Application.cs:
28592           - Removed debug output
28593           - Simplifications
28594
28595 2004-08-23 16:43  jordi
28596
28597         * ScrollBar.cs: [no log message]
28598
28599 2004-08-23 16:10  pbartok
28600
28601         * Form.cs:
28602           - Fixed handling of WM_CLOSE message
28603           - Removed debug output
28604
28605 2004-08-23 16:09  pbartok
28606
28607         * Application.cs:
28608           - Added handling of Idle event
28609           - Added handling of form closing
28610           - Fixed reporting of MessageLoop property
28611           - Removed some unneeded code, should provide a bit of a speedup
28612
28613 2004-08-23 15:22  pbartok
28614
28615         * Control.cs:
28616           - Added InitLayout() method
28617           - Added code to properly perform layout when Anchor or Dock property
28618             is changed
28619           - Changed 'interpretation' of ResumeLayout. MS seems to have a
28620             LAMESPEC, tried to do it in a way that makes sense
28621
28622 2004-08-23 14:10  jordi
28623
28624         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
28625           properties and methods
28626
28627 2004-08-23 13:55  pbartok
28628
28629         * Control.cs:
28630           - Properly fixed Jordi's last fix
28631           - Now uses Cursor's Position property instead of calling XplatUI
28632           directly
28633
28634 2004-08-23 13:44  jordi
28635
28636         * PaintEventHandler.cs: Adding missing attribute
28637
28638 2004-08-23 13:39  pbartok
28639
28640         * Cursor.cs:
28641           - Implemented Position property
28642
28643 2004-08-23 13:39  pbartok
28644
28645         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
28646           - Added method to move mouse cursor
28647
28648 2004-08-23 13:39  pbartok
28649
28650         * XplatUIX11.cs:
28651           - Fixed setting of background color
28652           - Added method to move mouse cursor
28653
28654 2004-08-23 13:16  jordi
28655
28656         * Control.cs: avoids null exception
28657
28658 2004-08-22 17:46  jackson
28659
28660         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
28661           PictureBox
28662
28663 2004-08-22 17:40  jackson
28664
28665         * XplatUIX11.cs: Add some missing locks
28666
28667 2004-08-22 15:10  pbartok
28668
28669         * Control.cs, Form.cs:
28670           - Removed OverlappedWindow style from Control, instead it's default
28671             now is child
28672           - Made form windows OverlappedWindow by default
28673
28674 2004-08-22 13:34  jackson
28675
28676         * ScrollBar.cs: Update the position through the Value property so
28677           the OnValueChanged event is raised.
28678
28679 2004-08-22 12:04  pbartok
28680
28681         * SWF.csproj:
28682           - Added Cursor.cs and UserControl.cs
28683
28684 2004-08-22 12:03  pbartok
28685
28686         * Cursor.cs:
28687           - Started implementation, not usable yet
28688
28689 2004-08-22 12:00  pbartok
28690
28691         * UserControl.cs:
28692           - Implemented UserControl (complete)
28693
28694 2004-08-21 19:20  ravindra
28695
28696         * ToolBar.cs: Correcting the formatting mess of VS.NET.
28697
28698 2004-08-21 18:49  ravindra
28699
28700         * ToolBar.cs: Probably this completes the missing attributes in
28701           toolbar control.
28702
28703 2004-08-21 18:03  ravindra
28704
28705         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
28706           Fixed toolbar control signatures.
28707
28708 2004-08-21 16:32  pbartok
28709
28710         * LinkLabel.cs:
28711           - Signature Fixes
28712
28713 2004-08-21 16:30  pbartok
28714
28715         * Label.cs:
28716           - Signature fixes
28717
28718 2004-08-21 16:19  pbartok
28719
28720         * Control.cs, Label.cs:
28721           - Signature fixes
28722
28723 2004-08-21 15:57  pbartok
28724
28725         * ButtonBase.cs:
28726           - Added loads of debug output for development
28727           - Fixed typo in method name
28728
28729 2004-08-21 15:52  pbartok
28730
28731         * ToolBarButtonClickEventArgs.cs:
28732           - Added missing base class
28733
28734 2004-08-21 14:53  pbartok
28735
28736         * Control.cs:
28737           - Updated to match new GrabWindow signature
28738
28739 2004-08-21 14:51  pbartok
28740
28741         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
28742           - Added method to get default display size
28743
28744 2004-08-21 14:23  pbartok
28745
28746         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
28747           - Added method to query current grab state
28748           - Added argument to allow confining a grab to a window
28749
28750 2004-08-21 14:22  pbartok
28751
28752         * Keys.cs:
28753           - Added [Flags] attribute so that modifiers can be used in bitwise
28754           ops
28755
28756 2004-08-21 14:21  pbartok
28757
28758         * TrackBar.cs, ScrollBar.cs:
28759           - Replaced direct XplatUI calls with their Control counterpart
28760
28761 2004-08-21 13:32  pbartok
28762
28763         * Control.cs:
28764           - Implemented Created property
28765
28766 2004-08-21 13:28  pbartok
28767
28768         * Control.cs:
28769           - Implemented ContainsFocus
28770
28771 2004-08-21 13:26  pbartok
28772
28773         * Control.cs:
28774           - Implemented CausesValidation
28775
28776 2004-08-21 13:21  pbartok
28777
28778         * Control.cs:
28779           - Implemented CanFocus
28780           - Implemented CanSelect
28781           - Implemented Capture
28782
28783 2004-08-21 12:35  pbartok
28784
28785         * XplatUIWin32.cs:
28786           - Fixed bug with Async message handling
28787           - Implemented getting the ModifierKeys
28788
28789 2004-08-21 12:32  jackson
28790
28791         * AsyncMethodResult.cs: Make sure we have the mutex before we
28792           release it. Fixes BeginInvoke on windows
28793
28794 2004-08-21 11:31  pbartok
28795
28796         * XplatUIWin32.cs, XplatUIX11.cs:
28797           - Drivers now return proper mouse state
28798
28799 2004-08-21 10:54  jackson
28800
28801         * Control.cs: Implement EndInvoke
28802
28803 2004-08-21 10:48  jackson
28804
28805         * Timer.cs: Remove unneeded finalizer
28806
28807 2004-08-20 19:52  ravindra
28808
28809         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
28810           in mouse event handling in the ToolBar control.
28811
28812 2004-08-20 19:50  ravindra
28813
28814         * ImageList.cs: Changed draw method to use the arguments passed in
28815           to draw the image.
28816
28817 2004-08-20 18:58  pbartok
28818
28819         * XplatUIStructs.cs:
28820           - Added private message for async communication
28821
28822 2004-08-20 17:38  ravindra
28823
28824         * Control.cs: Made RightToLeft property virtual and removed a
28825           Console.WriteLine.
28826
28827 2004-08-20 14:39  jordi
28828
28829         * ThemeGtk.cs: use style_attach
28830
28831 2004-08-20 14:39  pbartok
28832
28833         * XplatUIWin32.cs:
28834           - Added jackson's Async code from X11 to Win32
28835
28836 2004-08-20 14:09  pbartok
28837
28838         * SWF.csproj:
28839           - Added all new files
28840
28841 2004-08-20 14:09  pbartok
28842
28843         * Control.cs:
28844           - Added call to set window background color
28845
28846 2004-08-20 14:03  pbartok
28847
28848         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
28849           - Added method for setting the window background
28850
28851 2004-08-20 14:02  pbartok
28852
28853         * XplatUIWin32.cs:
28854           - Added method for setting the background color
28855           - Added handling for erasing the window background
28856
28857 2004-08-20 13:45  jordi
28858
28859         * TrackBar.cs: fixes timer, new properties and methods
28860
28861 2004-08-20 13:34  jackson
28862
28863         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
28864           correct thread
28865
28866 2004-08-20 13:22  jackson
28867
28868         * Timer.cs: Timer Tick events are now handed through Controls Async
28869           mechanism so the callbacks are executed in the same thread as X
28870
28871 2004-08-20 13:19  jackson
28872
28873         * XplatUIDriver.cs: Expose functionality to send async messages
28874           through the driver
28875
28876 2004-08-20 13:18  jackson
28877
28878         * Control.cs: Implement Begininvoke
28879
28880 2004-08-20 13:14  jackson
28881
28882         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
28883           messages through the driver
28884
28885 2004-08-20 13:12  jackson
28886
28887         * XplatUIX11.cs: Lock before all X operations. Also added Async
28888           method functionality through XSendEvent
28889
28890 2004-08-20 13:11  jackson
28891
28892         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
28893           This will screw up on 64 bit systems)
28894
28895 2004-08-20 13:10  jackson
28896
28897         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
28898           Async messages through X/Win32
28899
28900 2004-08-19 19:39  pbartok
28901
28902         * XplatUIX11.cs:
28903           - Updated code to match new HandleData.DeviceContext type
28904
28905 2004-08-19 19:38  pbartok
28906
28907         * HandleData.cs:
28908           - Made DeviceContext a generic object to allow usage from various
28909           drivers
28910           - Added support for queueing Windows messages
28911
28912 2004-08-19 19:37  pbartok
28913
28914         * XplatUIWin32.cs:
28915           - Added generation of MouseEnter, MouseLeave and MouseHover events
28916           - Added cleanup on EndPaint
28917
28918 2004-08-19 19:17  pbartok
28919
28920         * Control.cs:
28921           - Added handling of WM_MOUSEHOVER
28922           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
28923           code
28924
28925 2004-08-19 18:55  jordi
28926
28927         * ThemeGtk.cs: fixes button order
28928
28929 2004-08-19 18:12  jordi
28930
28931         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
28932
28933 2004-08-19 17:09  pbartok
28934
28935         * Control.cs:
28936           - Added Right property
28937           - Added RightToLeft property
28938
28939 2004-08-19 16:27  jordi
28940
28941         * ThemeGtk.cs: experimental GTK theme support
28942
28943 2004-08-19 16:26  jordi
28944
28945         * ITheme.cs, Theme.cs: move themes from an interface to a class
28946
28947 2004-08-19 16:25  jordi
28948
28949         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
28950           theme enhancaments
28951
28952 2004-08-19 16:04  pbartok
28953
28954         * XplatUIX11.cs:
28955           - Added colormap basics
28956           - Added a way to re-initialize with a different display handle
28957           - Fixed setting of the window background color
28958           - Added various X11 imports related to colors and colormaps
28959
28960 2004-08-19 15:51  pbartok
28961
28962         * X11Structs.cs:
28963           - Removed packing hints (Paolo suggested this a while back)
28964           - fixed colormap type
28965           - Added default Atom types
28966           - Added Screen and color structs and enums
28967
28968 2004-08-19 15:39  pbartok
28969
28970         * ImageList.cs:
28971           - Added missing Draw() method
28972           - Added missing RecreateHandle event
28973
28974 2004-08-19 15:30  pbartok
28975
28976         * Form.cs:
28977           - Added handling of WM_CLOSE
28978
28979 2004-08-18 13:16  jordi
28980
28981         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
28982           a table
28983
28984 2004-08-18 09:56  jordi
28985
28986         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
28987
28988 2004-08-17 15:31  ravindra
28989
28990         * SWF.csproj: Updated project.
28991
28992 2004-08-17 15:25  pbartok
28993
28994         * Control.cs:
28995           - Drawing improvement; don't call UpdateBounds if we are not visible
28996             (or have been minimized)
28997
28998 2004-08-17 15:24  pbartok
28999
29000         * XplatUIWin32.cs:
29001           - Finished IsVisible
29002           - Added Win32GetWindowPlacement
29003
29004 2004-08-17 15:08  jackson
29005
29006         * Panel.cs: Initial checkin of the Panel
29007
29008 2004-08-17 14:25  pbartok
29009
29010         * Control.cs:
29011           - Fixed broken handling of default window sizes
29012
29013 2004-08-17 13:29  jackson
29014
29015         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
29016           has a large startup time.
29017
29018 2004-08-17 10:25  jackson
29019
29020         * HandleData.cs: union areas properly
29021
29022 2004-08-17 10:12  jackson
29023
29024         * HandleData.cs: union areas properly
29025
29026 2004-08-16 20:00  ravindra
29027
29028         * ToolBar.cs, ToolBarButton.cs: Added attributes.
29029
29030 2004-08-16 18:48  ravindra
29031
29032         * ToolBar.cs: Added attributes.
29033
29034 2004-08-16 17:17  ravindra
29035
29036         * SWF.csproj: Updated project.
29037
29038 2004-08-16 17:16  jackson
29039
29040         * XplatUIX11.cs: Check for more expose events before sending a
29041           WM_PAINT so they can all be grouped together. This makes dragging a
29042           window across another window redraw in a sane way.
29043
29044 2004-08-16 15:47  pbartok
29045
29046         * Control.cs:
29047           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
29048             support OnMouseEnter/Leave()
29049           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
29050             exposure handling
29051
29052 2004-08-16 15:46  pbartok
29053
29054         * XplatUIStructs.cs, XplatUIX11.cs:
29055           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
29056           OnMouseEnter/Leave()
29057
29058 2004-08-16 15:34  jackson
29059
29060         * XplatUIX11.cs: Group multiple expose events in HandleData, make
29061           sure messages get the message field set to WM_NULL if they are not
29062           handled.
29063
29064 2004-08-16 15:24  jackson
29065
29066         * HandleData.cs: HandleData is used for storing message information
29067           for window handles
29068
29069 2004-08-15 17:23  ravindra
29070
29071         * ColorDepth.cs: Added attribute.
29072
29073 2004-08-15 17:23  ravindra
29074
29075         * SWF.csproj: Updated project for ToolBar Control.
29076
29077 2004-08-15 17:20  ravindra
29078
29079         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
29080           control and also dos2unix format.
29081
29082 2004-08-15 17:13  ravindra
29083
29084         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
29085           ToolBarButtonClickEventArgs.cs,
29086           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
29087           ToolBarTextAlign.cs: First Implementation of ToolBar control.
29088
29089 2004-08-15 15:31  pbartok
29090
29091         * ButtonBase.cs:
29092           - First (mostly) working version
29093
29094 2004-08-13 16:15  pbartok
29095
29096         * Control.cs:
29097           - Fixed Anchor default
29098
29099 2004-08-13 15:43  pbartok
29100
29101         * Control.cs:
29102           - Changed GetCursorPos signature
29103
29104 2004-08-13 15:42  pbartok
29105
29106         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
29107           - Changed signature for GetCursorPos
29108
29109 2004-08-13 15:25  pbartok
29110
29111         * XplatUIX11.cs:
29112           - Cleanup
29113           - Fixed resizing/exposure handling
29114
29115 2004-08-13 15:22  jordi
29116
29117         * ThemeWin32Classic.cs: removes redundant code and fixes issues
29118           with tickposition
29119
29120 2004-08-13 14:55  jordi
29121
29122         * TrackBar.cs: change from wndproc to events
29123
29124 2004-08-13 13:00  jordi
29125
29126         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
29127           XplatUIX11.cs: implements PointToClient (ScreenToClient)
29128
29129 2004-08-13 12:53  pbartok
29130
29131         * XplatUIWin32.cs:
29132           - Changed GetWindowPos to also provide client area size
29133           - Fixed broken prototypes for several win32 functions
29134
29135 2004-08-13 12:53  pbartok
29136
29137         * XplatUI.cs, XplatUIDriver.cs:
29138           - Changed GetWindowPos to also provide client area size
29139
29140 2004-08-13 12:52  pbartok
29141
29142         * XplatUIX11.cs:
29143           - Added generation of WM_POSCHANGED
29144           - Changed GetWindowPos to also provide client area size
29145
29146 2004-08-13 12:52  pbartok
29147
29148         * Control.cs:
29149           - Added Dispose() and destructor
29150           - Fixed resizing and bounds calculation
29151           - Fixed Layout
29152           - Added memory savings for invisible windows
29153
29154 2004-08-13 12:46  jordi
29155
29156         * TrackBar.cs: adds timer and grap window
29157
29158 2004-08-13 10:25  jackson
29159
29160         * Timer.cs: SWF Timer
29161
29162 2004-08-12 16:59  pbartok
29163
29164         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
29165           - Implemented method to get current mouse position
29166
29167 2004-08-12 14:29  jordi
29168
29169         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
29170           enhancement, fix mouse problems, highli thumb, etc
29171
29172 2004-08-12 13:31  pbartok
29173
29174         * Control.cs:
29175           - Fixed Anchoring bugs
29176
29177 2004-08-12 13:01  jackson
29178
29179         * StatusBar.cs: Don't forget things
29180
29181 2004-08-12 12:54  jackson
29182
29183         * ThemeWin32Classic.cs: Handle owner draw status bars
29184
29185 2004-08-12 12:54  jackson
29186
29187         * StatusBar.cs: Implement missing properties, events, and methods.
29188           Handle mouse clicking
29189
29190 2004-08-12 10:19  jackson
29191
29192         * StatusBarPanelClickEventArgs.cs,
29193           StatusBarPanelClickEventHandler.cs: Classes for handling status
29194           bar panel click events
29195
29196 2004-08-12 10:10  jackson
29197
29198         * Control.cs: Add missing properties
29199
29200 2004-08-12 09:46  pbartok
29201
29202         * BindingsManagerBase.cs:
29203           - Name changed to BindingManagerBase.cs
29204
29205 2004-08-12 09:25  jordi
29206
29207         * ScrollableControl.cs: calls ctrlbase instead of exeception
29208
29209 2004-08-11 16:28  pbartok
29210
29211         * InputLanguageChangingEventArgs.cs:
29212           - Never check in before compiling. Fixes the last check-in
29213
29214 2004-08-11 16:26  pbartok
29215
29216         * InputLanguageChangingEventArgs.cs:
29217           - More signature fixes
29218
29219 2004-08-11 16:20  pbartok
29220
29221         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
29222           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
29223           ImageListStreamer.cs, InputLanguage.cs,
29224           InputLanguageChangedEventArgs.cs,
29225           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
29226           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
29227           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
29228           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
29229           - Signature fixes
29230
29231 2004-08-11 16:16  pbartok
29232
29233         * Application.cs:
29234           - Fixed Signature
29235           - Added .Net 1.1 method
29236
29237 2004-08-11 15:25  pbartok
29238
29239         * SWF.csproj:
29240           - Fixed BindingManagerBase.cs filename
29241
29242 2004-08-11 15:22  pbartok
29243
29244         * BindingManagerBase.cs:
29245           - Was checked in with wrong filename
29246
29247 2004-08-11 14:50  pbartok
29248
29249         * SWF.csproj:
29250           - Updated
29251
29252 2004-08-11 13:41  jordi
29253
29254         * XplatUIWin32.cs: Fixes ClientRect
29255
29256 2004-08-11 13:19  pbartok
29257
29258         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
29259           XplatUIX11.cs:
29260           - We had SetWindowPos and MoveWindow to set window positions and
29261             size, removed MoveWindow. We have GetWindowPos, so it made sense to
29262             keep SetWindowPos as matching counterpart
29263           - Added some X11 sanity checking
29264
29265 2004-08-11 12:59  pbartok
29266
29267         * Control.cs:
29268           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
29269             (It seems that SetBounds is just a front for SetBoundsCore and
29270              SetBoundsCore updates the underlying window system and
29271              UpdateBounds is responsible for updating the variables associated
29272              with the Control and sending the events)
29273           - Major cleanup of Size handling; we now have two sizes, client_size
29274             and bounds. Bounds defines the window with decorations, client_size
29275             without them.
29276
29277 2004-08-11 12:55  pbartok
29278
29279         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
29280           - Added method to calculate difference between decorated window and
29281             raw client area
29282
29283 2004-08-11 12:54  pbartok
29284
29285         * Label.cs:
29286           - Forcing redraw on resize
29287
29288 2004-08-11 11:43  pbartok
29289
29290         * ImageList.cs:
29291           - Removed disposing of the actual images when the list is disposed
29292
29293 2004-08-11 09:13  pbartok
29294
29295         * Control.cs:
29296           - Now properly reparents windows
29297
29298 2004-08-11 08:37  pbartok
29299
29300         * Control.cs:
29301           - Duh!
29302
29303 2004-08-11 07:47  pbartok
29304
29305         * Control.cs:
29306           - Rewrote the collection stuff. Might not be as fast now, not
29307             keeping the number of children around and accessible directly, but
29308             it's more straightforward
29309
29310 2004-08-11 07:44  pbartok
29311
29312         * AccessibleObject.cs:
29313           - Fixed to match ControlCollection rewrite
29314
29315 2004-08-11 07:43  pbartok
29316
29317         * ImageList.cs:
29318           - Added missing creation of the collection list
29319
29320 2004-08-10 20:08  jackson
29321
29322         * StatusBar.cs: Get the paint message from WndProc
29323
29324 2004-08-10 19:31  jackson
29325
29326         * ThemeWin32Classic.cs: Create Brushes as little as possible
29327
29328 2004-08-10 19:20  jackson
29329
29330         * UICues.cs: Add Flags attribute
29331
29332 2004-08-10 19:19  jackson
29333
29334         * StatusBarPanel.cs: Signature cleanup
29335
29336 2004-08-10 19:10  jackson
29337
29338         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
29339           Initial implementation of status bar item drawing
29340
29341 2004-08-10 17:27  jordi
29342
29343         * TrackBar.cs: add missing methods, properties, and restructure to
29344           hide extra ones
29345
29346 2004-08-10 16:24  jackson
29347
29348         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
29349           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
29350           attribute
29351
29352 2004-08-10 13:21  jordi
29353
29354         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
29355           enhancements and standarize on win colors defaults
29356
29357 2004-08-10 12:52  jackson
29358
29359         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
29360           ThemeWin32Classic.cs: Implement DrawItem functionality
29361
29362 2004-08-10 12:47  jordi
29363
29364         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
29365
29366 2004-08-10 12:32  jordi
29367
29368         * Control.cs: throw ontextchange event
29369
29370 2004-08-10 11:43  pbartok
29371
29372         * Control.cs:
29373           - Added more to the still unfinished Dock/Anchor layout code
29374
29375 2004-08-10 11:39  pbartok
29376
29377         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
29378           - Added GetWindowPos method
29379
29380 2004-08-10 11:36  pbartok
29381
29382         * XplatUIWin32.cs:
29383           - Implemented several methods
29384
29385 2004-08-10 09:47  jackson
29386
29387         * TrackBar.cs: Allow control to handle buffering
29388
29389 2004-08-10 09:41  jackson
29390
29391         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
29392
29393 2004-08-10 09:24  jackson
29394
29395         * Label.cs, LinkLabel.cs: Let Control handle buffering.
29396
29397 2004-08-10 09:09  jackson
29398
29399         * StatusBar.cs: Let Control handle all the buffering.
29400
29401 2004-08-10 09:08  jackson
29402
29403         * Control.cs: Control will now handle the buffering code, so each
29404           control does not have to implement this.
29405
29406 2004-08-10 08:34  jackson
29407
29408         * XplatUIDriver.cs: Use default colors from the theme
29409
29410 2004-08-09 17:12  pbartok
29411
29412         * ImageList.cs:
29413           - Fixed several bugs Ravindra pointed out
29414
29415 2004-08-09 16:11  pbartok
29416
29417         * Control.cs:
29418           - Added incomplete dock layout code
29419           - Added support for mouse wheel
29420
29421 2004-08-09 16:09  pbartok
29422
29423         * XplatUIX11.cs:
29424           - Added handling for middle and right mousebutton
29425           - Added handling for mouse wheel
29426           - Added handling for key state and mouse state and position
29427           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
29428           messages
29429
29430 2004-08-09 15:40  jackson
29431
29432         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
29433           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
29434           checkin
29435
29436 2004-08-09 15:37  jackson
29437
29438         * StatusBar.cs: Initial implementation of StatusBar
29439
29440 2004-08-09 15:36  jackson
29441
29442         * ITheme.cs: Add support for drawing status bar and getting status
29443           bar item sizes
29444
29445 2004-08-09 15:35  pbartok
29446
29447         * MouseButtons.cs:
29448           - Fixed values
29449
29450 2004-08-09 15:34  jackson
29451
29452         * ThemeWin32Classic.cs: Add support for drawing status bar and get
29453           status bar item sizes
29454
29455 2004-08-09 15:21  jackson
29456
29457         * ThemeWin32Classic.cs: Use known colors for default control
29458           colours
29459
29460 2004-08-09 15:12  jackson
29461
29462         * ThemeWin32Classic.cs: Make the default font static, it is static
29463           in control so this doesn't change functionality and creating fonts
29464           is sloooooow.
29465
29466 2004-08-09 14:56  pbartok
29467
29468         * X11Structs.cs:
29469           - Added GrabMode enum
29470
29471 2004-08-09 14:55  pbartok
29472
29473         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
29474           - Removed Run method, was only required for initial development
29475
29476 2004-08-09 14:51  pbartok
29477
29478         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
29479           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
29480           capture
29481
29482 2004-08-09 13:48  pbartok
29483
29484         * XplatUIX11.cs:
29485           - Fixed default sizing for child windows
29486
29487 2004-08-09 12:56  pbartok
29488
29489         * XplatUIX11.cs:
29490           - Added generation of WM_DESTROY message
29491           - Added handling of window manager induced shutdown
29492
29493 2004-08-09 11:31  jackson
29494
29495         * ThemeWin32Classic.cs: New names for control properties
29496
29497 2004-08-09 11:25  jackson
29498
29499         * Control.cs: Use new color names
29500
29501 2004-08-09 11:02  jackson
29502
29503         * XplatUI.cs: Get default window properties from the theme
29504
29505 2004-08-09 11:01  jackson
29506
29507         * ITheme.cs: The theme engine now controls default window
29508           properties
29509
29510 2004-08-09 11:00  jackson
29511
29512         * ThemeWin32Classic.cs: Add default window color properties
29513
29514 2004-08-09 10:17  jackson
29515
29516         * ThemeWin32Classic.cs: Use correct default back color
29517
29518 2004-08-09 10:05  jackson
29519
29520         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
29521           the theme now.
29522
29523 2004-08-09 09:56  jackson
29524
29525         * XplatUI.cs: Remove defaults, these are handled by the theme now.
29526
29527 2004-08-09 09:54  jackson
29528
29529         * Control.cs: Get default properties from the theme.
29530
29531 2004-08-09 09:53  jackson
29532
29533         * ITheme.cs: Themes now handle default control properties
29534
29535 2004-08-09 09:53  jackson
29536
29537         * ThemeWin32Classic.cs: Themes now handle default control
29538           properties so coloring will be consistent
29539
29540 2004-08-08 16:54  jordi
29541
29542         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
29543
29544 2004-08-08 15:08  jordi
29545
29546         * XplatUIX11.cs: fixes keyboard crash
29547
29548 2004-08-08 13:47  jordi
29549
29550         * Label.cs: add cvs header info
29551
29552 2004-08-08 12:09  jackson
29553
29554         * ThemeWin32Classic.cs: Add pen_buttonface
29555
29556 2004-08-08 11:52  jordi
29557
29558         * Label.cs, LinkLabel.cs: [no log message]
29559
29560 2004-08-08 11:34  jordi
29561
29562         * ThemeWin32Classic.cs: Use Windows Standard Colours
29563
29564 2004-08-07 17:32  jordi
29565
29566         * TrackBar.cs: throw exceptions of invalid enums values
29567
29568 2004-08-07 17:31  jordi
29569
29570         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
29571           draw method name
29572
29573 2004-08-07 16:56  jackson
29574
29575         * HorizontalAlignment.cs: Initial checkin
29576
29577 2004-08-07 13:16  jordi
29578
29579         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
29580           methods
29581
29582 2004-08-07 13:05  jordi
29583
29584         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
29585           GetSysColor defines
29586
29587 2004-08-06 18:01  pbartok
29588
29589         * ThemeWin32Classic.cs:
29590           - Fixed some rounding issues with float/int
29591
29592 2004-08-06 18:00  jackson
29593
29594         * DockStyle.cs, AnchorStyles.cs:
29595
29596                   Add flags and serializable attributes.
29597
29598 2004-08-06 17:46  pbartok
29599
29600         * XplatUIX11.cs:
29601           - Implemented GetParent
29602
29603 2004-08-06 17:18  pbartok
29604
29605         * TrackBar.cs:
29606           - Fixed some rounding issues with float/int
29607
29608 2004-08-06 17:17  pbartok
29609
29610         * X11Structs.cs, XplatUIX11.cs:
29611           - Fixed Refresh and Invalidate
29612
29613 2004-08-06 15:30  pbartok
29614
29615         * Control.cs, X11Structs.cs, XplatUIX11.cs:
29616           - Fixed recursive loop when resizing
29617           - Improved/fixed redrawing on expose messages
29618
29619 2004-08-06 09:53  jordi
29620
29621         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
29622           keyboard navigation
29623
29624 2004-08-06 08:02  pbartok
29625
29626         * X11Structs.cs, XplatUIX11.cs:
29627           - Fixed reparenting
29628           - Fixed window border creation
29629
29630 2004-08-05 15:38  pbartok
29631
29632         * XplatUIX11.cs:
29633           - Attempted fix for reparenting problems
29634
29635 2004-08-04 15:14  pbartok
29636
29637         * Control.cs:
29638           - Fixed Invalidation bug (calculated wrong client area)
29639           - Added ClientSize setter
29640
29641 2004-08-04 15:13  pbartok
29642
29643         * Form.cs:
29644           - Added AutoScale properties
29645
29646 2004-08-04 15:13  pbartok
29647
29648         * SWF.csproj:
29649           - Added latest files
29650
29651 2004-08-04 14:11  pbartok
29652
29653         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
29654           XplatUIX11.cs:
29655           - Added Invalidate handling
29656
29657 2004-08-03 17:09  jordi
29658
29659         * XplatUIDriver.cs: fixes spelling mistake
29660
29661 2004-07-27 09:53  jordi
29662
29663         * TrackBar.cs: fixes trackbar events, def classname, methods
29664           signature
29665
29666 2004-07-27 09:29  jordi
29667
29668         * ScrollBar.cs: fixes scrollbar events
29669
29670 2004-07-27 04:38  jordi
29671
29672         * Control.cs: changes to be able to run winforms samples
29673
29674 2004-07-26 11:42  jordi
29675
29676         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
29677           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
29678
29679 2004-07-26 05:41  jordi
29680
29681         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
29682           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
29683           implementation
29684
29685 2004-07-22 09:22  jordi
29686
29687         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
29688           check link overlapping, implement events, and fixes
29689
29690 2004-07-21 10:28  jordi
29691
29692         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
29693
29694 2004-07-21 10:19  jordi
29695
29696         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
29697           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
29698           LinkLabelLinkClickedEventArgs.cs,
29699           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
29700           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
29701           implementation
29702
29703 2004-07-19 13:09  jordi
29704
29705         * Control.cs, Label.cs: label control re-written: added missing
29706           functionlity, events, and properties
29707
29708 2004-07-19 10:49  jordi
29709
29710         * Control.cs: fixes SetBounds logic
29711
29712 2004-07-19 01:29  jordi
29713
29714         * Control.cs: Call RefreshWindow only if the window has created
29715
29716 2004-07-15 14:05  pbartok
29717
29718         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
29719           - Implemented ImageList and ImageList.ImageCollection classes
29720           - Added ColorDepth enumeration
29721           - Updated SWF VS.Net project
29722
29723 2004-07-15 11:06  jordi
29724
29725         * XplatUIStructs.cs: added MsgButons enum
29726
29727 2004-07-15 11:03  jordi
29728
29729         * Control.cs: added basic mouse handeling events
29730
29731 2004-07-15 03:38  jordi
29732
29733         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
29734           Vertical TrackBar control implementation
29735
29736 2004-07-13 09:33  jordi
29737
29738         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
29739
29740 2004-07-13 09:31  jordi
29741
29742         * Control.cs, Form.cs: commit: new properties and fixes form size
29743           problems
29744
29745 2004-07-09 14:13  miguel
29746
29747         * ProgressBar.cs: Spelling
29748
29749 2004-07-09 11:25  pbartok
29750
29751         * ProgressBar.cs:
29752           - Removed usage of Rectangle for drawing. Miguel pointed out it's
29753           faster
29754
29755 2004-07-09 11:17  miguel
29756
29757         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
29758
29759                 * ProgressBar.cs: Fixed spelling for `block'
29760
29761                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
29762                 style guidelines.
29763
29764                 Avoid using the += on rect.X, that exposed a bug in the compiler.
29765
29766 2004-07-08 23:21  pbartok
29767
29768         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
29769           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
29770           BaseCollection.cs, Binding.cs, BindingContext.cs,
29771           BindingMemberInfo.cs, BindingsCollection.cs,
29772           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
29773           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
29774           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
29775           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
29776           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
29777           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
29778           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
29779           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
29780           FrameStyle.cs, GiveFeedbackEventArgs.cs,
29781           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
29782           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
29783           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
29784           InputLanguageChangedEventArgs.cs,
29785           InputLanguageChangedEventHandler.cs,
29786           InputLanguageChangingEventArgs.cs,
29787           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
29788           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
29789           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
29790           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
29791           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
29792           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
29793           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
29794           QueryAccessibilityHelpEventArgs.cs,
29795           QueryAccessibilityHelpEventHandler.cs,
29796           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
29797           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
29798           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
29799           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
29800           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
29801           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
29802           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
29803           XplatUIX11.cs, lang.cs:
29804           - Initial check-in
29805
29806