2010-04-16 Carlos Alberto Cortez <calberto.cortez@gmail.com>
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2010-04-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2
3         * TreeNodeCollection.cs: When adding/inserting/setting a new node call
4         TreeView.Sort if needed, and update/recalculate this entire
5         collection in that case.
6         * TreeView.cs: Make 'sorted' internal, instead of directly using
7         Sorted, as this one could trigger a complete Sort() operation.
8
9 2010-04-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10
11         * TreeView.cs: We must use the comparer supplied by TreeViewNodeSorter
12         *always*, since it is used recursively, so checking for a number of
13         top level nodes is useless. This should fix a case where we were not
14         sorting any node with a single root node.
15
16 2010-04-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17
18         * DataGridView.cs: Call the base Paint impl last, instead of do that
19         at the beginning, to let handlers draw on top of us. 
20         Fixes the remaining bits of #587563.
21
22 2010-04-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
23
24         * ToolStripItem.cs: Separate the background rendering from the Paint
25         routine, so we can both make sure the background stuff is done first,
26         and we also let our items fire the OnPaint event handlers before or
27         after their own routines.
28         * ToolStripLabel.cs: Move the base call to OnPaint to the end, so any
29         user's Paint handler can draw on top of us, like .Net does.
30         Fixes #587563.
31
32 2010-04-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
33
34         * XplatUIX11.cs: When checking for the values returned by
35         _NET_WORKAREA, use current_desktop+1 instead of current_desktop, since
36         we need the actual value, instead of the index (which is 0 based, and
37         is not working in this case). Patch by Andy Stühr
38         (andysmuell@hammerhartes.de).
39         Fixes #494234.
40
41 2010-04-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
42
43         * ToolTip.cs: Make TipState internal.
44         * ToolStrip.cs: Use the same idea of ToolTip'state to have our
45         internal timer close the tooltip window after a delay, instead of
46         waiting for the mouse to move to a different item. Also, hide the
47         tooltip window when the handle is destroyed, and also when the control
48         is getting hidden.
49         Fixes #581273.
50
51 2010-03-31  Carlos Alberto Cortez <calberto.cortez@gmail.com>
52
53         * ListView.cs: Selection should be available after the first time the
54         handle has been created, even if later the handle is destroyed or
55         temporary invalidated.
56         Fixes #584070.
57
58 2010-03-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
59
60         * TreeView.cs: When receiving a double click on a node, toggle it only
61         if it has one or more nodes - just as .net does.
62         Fixes #578079.
63
64 2010-03-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
65
66         * X11Keyboard.cs: Small correction for the previous patch: I forgot to
67         take into account the case where the buffer used in XLookupString is
68         not empty, but filled with garbage.
69
70 2010-03-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
71
72         * X11Keyboard.cs: When handling the key events, sometimes calling
73         either Xutf8LookupString or XLookupString with special chars (such
74         backspace and enter) can result in a buffer filled with garbage, or
75         empty - thus re-use the value returned by the same functions to fill
76         the gap.
77         Fixes #582691.
78
79 2010-02-25  Ivan Zlatev  <ivan@ivanz.com>
80
81         * Control.cs: ControllCollaction IList implementation wasn't calling the 
82         Add implementation causing ParentChanged and all sorts of other events not to 
83         get fired.
84         [Fixes bug #580042]
85
86 2010-02-25  Ivan Zlatev  <ivan@ivanz.com>
87
88         * DataGridView.cs: If we are setting a new data source and it is 
89         data bindable clear DataMember before binding.
90         [Fixes bug #554296]
91
92 2010-02-25  Ivan Zlatev  <ivan@ivanz.com>
93
94         * DataGridViewCheckBoxCell.cs: Toggle the checkbox on Space key press.
95         [Fixes bug #574259]
96
97 2010-02-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
98
99         * RichTextBox.cs: When retrieving SelectedRtf/Rtf properly escape any
100         RTF reserved char, so we don't end up messing around the actual rtf
101         values.
102         Fixes part of #575731.
103
104 2010-02-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
105
106         * Line.cs: When setting the Text property, if the new text is larger
107         than the previous one, call Grow to update our internal 'widths'
108         array, to be properly in sync with the new text.
109         Fixes #569530.
110
111 2010-02-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
112
113         * TabControl.cs: When calculating the layout for the tab pages, take
114         into account the ImageList size info if it exists, even if it is
115         empty.
116
117 2010-02-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
118
119         * StatusStrip.cs:
120         * XplatX11.cs:
121         * X11Structs: Implement the new BeginMoveResize method, designed to
122         instruct the window manager to init a resize operation on a top level
123         form. This is used by StatusStrip.
124         * XplatUI.cs:
125         * XplatUIDriver.cs:
126         * XplatUIWin32.cs:
127         * XplatUICarbon.cs: Fill the gaps by creating stubs and updating the
128         method calls.
129         Fixes #573299.
130
131 2010-02-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
132
133         * ComboBox.cs: When creating DrawItemEventArgs pass the fore color and
134         back color arguments depending on the higlight/focus state, just like
135         .net.
136         Fixes #572643.
137
138 2010-01-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
139
140         * ComboBox.cs: When the normal drop down window is closed, make sure
141         that the auto complete list -if any- is closed as well, instead of
142         stay open without need.
143
144 2010-01-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
145
146         * TextBox.cs: When showing the autocomplete listbox, make sure it's on
147         top, by calling the raw XplatUI.SetZOrder for it, since we can't
148         properly call BringToFront on it as it is parentless. This fixes an
149         issue when using this feature with ComboBox's own parentless listbox.
150         Fixes the remaining bits of #489339.
151
152 2010-01-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
153
154         * XplatUI.cs:
155         * XplatUIDriver:
156         * XplatUICarbon:
157         * XplatUIWin32:
158         * XplatUIX11.cs: 
159         * XplatUIStructs: Implement support for different kind of audible
160         alerts in Windows, and update the requiered classes.
161         * MessageBox.cs: 
162         * TextBoxBase.cs: Update calls to XplatUI.AudibleAlert.
163         Fixes #473725.
164
165 2010-01-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
166
167         * ComboBox.cs: When use manually setting DropDownHeight, ignore the
168         MaxDropDownHeight property - also rename our field 'count' to
169         'visible_items_count' to avoid confusion as much as possible.
170         Fixes an issue with several items, showing an incorrect layout.
171
172 2010-01-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
173
174         * RichTextBox.cs: SelectedText should set Modified to true. Observe
175         that this is happening just here, not for the Text property, and
176         neither for the TextBoxBase impl.
177         Fixes #569950.
178
179 2010-01-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
180
181         * ToolStripMenuItem.cs: Put the Checked/CheckState logic in a single
182         place and synchronize the events properly. Fixes a lack of
183         coordination between the events - which should be fired together.
184
185 2010-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
186
187         * TrackBar.cs: Move our events code to a single method, allowing it to
188         optionally fire the Scroll event. This way we both avoid the
189         duplicated calls to OnScroll and also will be able to fire Scroll
190         *before* OnValueChanged in other places.
191         Fixes #568026.
192
193 2010-01-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
194
195         * RadioButton.cs: When drawing, if Appearance is Button use the old
196         normal routine in the theme engine, instead of using the one in 2.0,
197         since this last one doesn't support proper rendering of the control as
198         a button.
199         Fixes #567904.
200
201 2010-01-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
202
203         * GroupBoxRenderer.cs: Properly use SystemColors.GrayText to draw to
204         text of the group box if it is disabled.
205         Fixes #567847.
206
207 2009-12-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
208
209         * Control.cs: When changing the cursor and updating it, do update the
210         cursor immediately even if there's a child control under the current
211         cursor position - this is exactly what .net does.
212         Fixes #555780.
213
214 2009-11-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
215
216         * DataGrid.cs: In OnLeave, do cancel or end current edit, depending on
217         the commit_new_row value, instead of just trying to cancel if a new
218         row had been added. This is important when modifying existing rows and
219         then moving the focus out of the control.
220
221 2009-11-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
222
223         * XplatUICarbon.cs: Implement the overriden AudibleAlert
224         function in XplatUICarbon.  Currently it throws
225         NotImplementedException which will kill a WinForms application showing
226         a dialog box.
227         Patch by  Erik Ylvisaker (erik@agatelib.org).
228
229 2009-11-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
230
231         * DataGrid.cs: In CurrentCell, the check to do nothing in case we are
232         in the same cell as specified *and* not editing is wrong.
233
234 2009-11-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
235
236         * DataGrid.cs: When removing the cells, don't do anything if the
237         specified row is the extra cell we use to add new ones.
238
239 2009-11-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
240
241         * DataGrid.cs: CurrentCell should be *used* if the new value is the
242         same as the current one, since we could need to activate the edition
243         in the current row. Also, when beginning the edition, do nothing if,
244         basides having an empty source, we are sure we don't have the new
245         cell, which could obviously start it.
246         Fixes other bits of #323154.
247
248 2009-11-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
249
250         * DataGrid.cs: When we get notified by a change in the position of our
251         data source, don't set CurrentRow if the source is empty, as there's
252         no need to do anything else in the first place, and second, the logic
253         in the CurrentRow setter (public property) will add a new row by
254         default in this case (that is, when the source is empty).
255         Fixes part of #323154.
256
257 2009-11-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
258
259         * ToolStripMenuItem.cs: Don't try to use SystemColors.MenuText if fore
260         color is SystemColors.ControlText, as this system color detection
261         should be done *completely*. This is specially important when
262         detecting colors in systems running Gtk+ and dark themes.
263
264 2009-11-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
265
266         * DataGrid.cs: Add a new internal property to get the maximum possible
267         visible rows in the grid. We cannot use VisibleRowCount since this
268         value can, depending on the scroll position, return a +1 or -1 value,
269         so we need an absolute way to know whether we need a scroll bar or
270         not. Also, update VLargeChange to avoid code duplication.
271         Fixes a vertical scroll mismatch happening trying to add a new row
272         while the scrollbar has reached its maximum value.
273
274 2009-11-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
275
276         * DataGridTextBoxColumn.cs:
277         * DataGrid.cs: Position the cursor in the add row should *not* show
278         yet another new row - that will happen till we get any real input data
279         from the user. When that happens, we will also mark the new row as
280         ready to commit - otherwise, when the cursor moves to a different row,
281         the just added row will be discarded. This is exactly what .Net seems
282         to do.
283
284 2009-11-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
285
286         * DataGrid.cs: The large value for our vertical scrollbar should
287         depend on the number of visible rows, instead of trying to re-use the
288         value of VisibleRowCount, which is the value of *current* visible
289         rows, and can easily end messed up if new rows are added/removed.
290
291 2009-11-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
292
293         * DataGrid.cs: When moving the scroll, *dont* ever end the current
294         edit - this could seriously mess up our current edit cycle, specially
295         when adding new rows.
296
297 2009-11-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
298
299         * TabControl.cs: In OnKeyDown call the base implementation first -
300         this way we let the user tell us whether we should handle the key or
301         not.
302         Fixes #543717.
303
304 2009-11-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
305
306         * DataGrid.cs: Implement removal of rows the Correct Way by creating a
307         copy of the indexes, as any direct write access to the source will cause to
308         reset the entire selection - also, do the linear de-selection in
309         reverse order to avoid any index mismatch in the source, due to out of
310         synchronization removing the rows.
311
312 2009-11-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
313
314         * DataGridTextBoxColumn.cs:
315         * DataGrid.cs: Don't use this add-pending behaviour to try to add a
316         new row until we have the first input char - it was helping us to fix
317         other issues we have/had, but it's not matching .net.
318
319 2009-10-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
320
321         * TextBoxBase.cs: When returning the preferred height, and we are
322         supposed to be borderless, return the TopMargin value - usually in
323         borderless mode it has a value of 0, but in the ToolStrip controls we
324         need to set the margin manually.
325         Fixes #551214.
326
327 2009-10-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
328
329         * ToolTip.cs: ShowAlways works at the form level, not at the control
330         level. Fixes #544565.
331
332 2009-10-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
333
334         * ButtonBase.cs: Usually the click routines are handled in Control,
335         but in this class we are handling it ourselved, thus we need to have
336         the same calls, and we were missing the call to MouseClick.
337         Patch by Eric Petit <surfzoid@gmail.com>.
338
339 2009-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
340
341         * ComboBox.cs: When setting Text and data source is being used, if the
342         passed value is not matching any of the items in the source, don't
343         pass it to GetItemText, since it's useless, as GetItemText expects a
344         valid item.
345         Fixes #546009.
346
347 2009-10-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
348
349         * ListView.cs: When retrieving an item in virtual mode, as part of the
350         process calculate its layout, instead of trying to do it later.
351         * ListViewItem.cs: There's no need to try to infer whether we need to
352         compute layout or not anymore - we just do it every time we are
353         returning an item.
354         This way we should be fixing View changes with cached items, which
355         were storing the previous value, and not updating their contents
356         properly.
357
358 2009-10-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
359
360         * ColumnHeader.cs: Remove the double linear search in the Index
361         property, by removing the call to Contains, which is not needed.
362         Also, Columns collection can never be null.
363
364 2009-10-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
365
366         * ColumnHeader.cs: When calculating the width and height of the
367         column, try to expand to the right and use all the free space if we
368         are the last column *and* the resize mode is set to -2/header content.
369         Fixes #544716.
370
371 2009-10-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
372
373         * ListView.cs: When retrieving the top item, take into account the
374         offset represented by the header control, to retrieve the proper
375         value. Patch by Christoph von Wittich (Christoph at ApiViewer.de)
376         Fixes the remaining bits of #543773.
377
378 2009-10-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
379
380         * ListView.cs: TopItem setter should set the value as the top, not
381         only ensuring its visibility.
382         Fixes part of #543773.
383
384 2009-10-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
385
386         * ListView.cs: For virtual mode, when navigating the items using keyboard,
387         don't use the matrix of positions, and instead calculate the positions
388         based on the number of cols and rows, taking advantage of the fixed
389         positions of items. Use the same idea to implement FirstVisibleIndex,
390         so we avoid iterating over all the items. Patch by Stephen Robinson
391         mono at esar.org.uk.
392         Fixes part of #467418.
393
394 2009-10-12  Dick Porter  <dporter@codicesoftware.com>
395
396         * Splitter.cs: Adjust offsets when more than one splitter is
397         present in a control.  Fixes bug 509472.
398
399 2009-10-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
400
401         * ListView.cs: When computing the value for groups height don't use
402         text_size field, since in LargeIcon view it sometimes contains a
403         double height value - use Font.Height directly, and also improve the
404         padding value.
405         * ThemeWin32Classic: The same as above.
406         This way the space between the group header, the line, and the items
407         area is not that big in LargeIcon view.
408
409 2009-10-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
410
411         * ListView.cs: When retrieving the fixed positions for the items in
412         virtual mode, use the row value to compute the coords of the item,
413         instead of the col value, as opposed to SmallIcon/LargeIcon views.
414
415 2009-09-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
416
417         * ListView.cs: The location of the items should be computed on the fly
418         in virtual mode - that decreased speed overall, but reduces the load
419         time.that decreased speed overall, but reduces the load time. Also,
420         handle the cases where we were using data structures we don't need to
421         use/create for this mode.
422         Fixes part of #467418.
423
424 2009-09-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
425
426         * ListView.cs: Tile view and VirtualMode can't be applied together.
427         Patch by Stephen Robinson <mono@esar.org.uk>.
428
429 2009-09-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
430
431         * ListView.cs: When calculating the layout for Details view, don't ask
432         for the items *at all* in case we are in virtual mode. This should
433         re-enable the proper behaviour of virtual mode.
434
435 2009-09-26  Jonathan Pobst  <monkey@jpobst.com>
436
437         * TreeNode.cs: When we invalidate a node, make sure we start at
438         0, instead of the node's Bounds.Left, which does not include
439         the +/-, checkbox, or stateimages.
440         [Fixes bug #542481]
441
442 2009-09-24  Ivan N. Zlatev  <contact@i-nz.net>
443
444         * DataGridView.cs: Compare the name and not displayname of properties 
445         when checking if the column is already bound.
446
447 2009-09-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
448
449         * RichTextBox.cs: For SelectedRtf, after inserting the stream, adjust
450         the position of the caret by adding the needed chars represented by the new line chars,
451         according to the system, using rich *or* hard new lines as needed. Also do a
452         check to be sure we don't move the cursor position beyond the limits
453         of our text. This should avoid problems with text being pasted,
454         regarding the position of the caret.
455
456 2009-09-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
457
458         * RichTextBox.cs: When SelectedRtf is set, and we are in the 0
459         position in the x axis, force to re-use any already available line,
460         even if it is not empty. This way pasting text into our textbox in the
461         beginning for non empty lines should work fine.
462
463 2009-09-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
464
465         * RichTextBox.cs: When we are inserting a flow of rtf text, and we are
466         *not* loading it from a file, try to re-use a line if already
467         available, since the default behaviour of the parser is to create new
468         lines for the document.
469         This should fix a regressions we found after the last fix for #513030.
470
471 2009-09-14  Tom Hindle <tom_hindle@sil.org>
472
473         * ToolStripOverflow.cs: Fixes #536036 by adding null ptr check.
474
475 2009-09-11  Ivan N. Zlatev  <contact@i-nz.net>
476
477         * PropertyGrid.cs: Hide the splitter when the help is hidden.
478
479 2009-09-11  Ivan N. Zlatev  <contact@i-nz.net>
480
481         * InternalWindowManager.cs: Call Invalidate-Update instead of 
482         Refresh for MS compitability. Note also that Refresh is virtual 
483         and several controls override it in order to provide data refresh 
484         functionallity on top of the redraw and they do not expect this 
485         extra refresh call.
486         * Control.cs: In Refresh Invalidate the control and all children 
487         insead of calling Refresh for each of them.
488         [Fixes bug #538336]
489
490 2009-09-11  Ivan N. Zlatev  <contact@i-nz.net>
491
492         * PropertyGrid.cs: Always set the help panel properties on the 
493         internal control, because they are inherited and can change with 
494         the parent.
495         [Fixes bug #525305]
496
497 2009-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
498
499         * RichTextBox.cs: When processing rtf, don't add a new line if we
500         already have one for that position. This way we avoid overriding by
501         mistake our lines when copying/pasting.
502         Fixes #513030.
503
504 2009-09-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
505
506         * TextControl.cs: When inserting new lines, look for the end of file
507         char, and remove chars after it. This is unlikely to happeng either
508         loading a file, pasting text or pressing a char, but can happen using
509         the TextBox.Text property.
510         Fixes #535884.
511
512 2009-09-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
513
514         * Line.cs: In DeleteCharacters, cache line.Length for every tag, since
515         tag.Start changes will modify it indirectly and then we would end up
516         with wrong values.
517         Fixes #512521.
518
519 2009-09-03  Ivan N. Zlatev  <contact@i-nz.net>
520
521         * BindingSource.cs: Implement support for chained data sources.
522         * ListBindingHelper.cs: Add support for ICurrencyManagerProvider and 
523         clean up.
524         [Fixes part of bug #536547]
525
526 2009-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
527
528         * RichTextBox.cs: When saving the text to a file using SaveFile use
529         Environment.NewLine to separate the lines. This way we should be
530         saving the files according to the system.
531         Fixes the remaining part of #511515.
532
533 2009-08-31  Carlos Alberto Cortez <calberto.cortez@gmail.com>
534
535         * RichText.cs: Remove some unix new line characters and use
536         Environment.NewLine. Fixes part of #511515.
537
538 2009-08-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
539
540         * TextBoxBase.cs: Modified should *not* be modified from the Text
541         property, as our new tests show. It should be to false, however, in
542         Append and Clear; and Paste, Cut, Undo, and direct user input should set it
543         to true. Also, as opposed to what the .net docs say -but proven by our
544         tests-, the changes should be generating a ModifiedChanged event
545         (thus we set the property, instead of the field).
546         Fixes #511267.
547
548 2009-08-27  Ivan N. Zlatev  <contact@i-nz.net>
549
550         * DataGridView.cs: Fire the CellDoubleClicked event.
551         [Fixes bug #533430]
552
553 2009-08-27  Ivan N. Zlatev  <contact@i-nz.net>
554
555         * DataGridView.cs: Add support for column DataGridViewAutoSizeColumnMode
556         DisplayedCells and DisplayedCellsExceptHeader.
557         [Fixes bug #533435]
558
559 2009-08-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
560
561         * TextControl.cs: When removing a simple char, actually record the
562         action in the undo manager. This way we both support undoing the
563         removal of chars using backspace/delete, as well as keeping data
564         integrity when other undo tasks are performed.
565         Fixes #531983.
566
567 2009-08-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
568
569         * Control.cs: Remove the ancient code in ResetText, which was setting
570         the internal field to String.Empty, instead of doing it for our Text
571         property, as .net does (which also causes a TextChanged event and all
572         the other related routines).
573         Fixes #531587.
574
575 2009-08-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
576
577         * TreeNodeCollection.cs: Correctly implement Contains by using a
578         linear search - there's no possible way to use a binary search, since
579         the node instances are not implementing IComparable, nor have a
580         specific order.
581         Fixes #529927.
582
583 2009-08-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
584
585         * DataGrid.cs: If we are *not* changing a row
586         already added to the source, and thus we are adding a new 
587         row instead, try to move to the previous row when Esc is
588         pressed -if possible-.
589         Fixes some bits of #322974.
590
591 2009-08-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
592
593         * DataGridTextBoxColumn.cs:
594         * DataGrid.cs: Moving the cell to the add row (the last one) should
595         not immediately add a new row - this should happen until the very
596         first change happens in that textbox.
597         Fixes part of #322974.
598
599 2009-08-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
600
601         * ToolStripDropDown.cs: When assigning the owner item, use its Font as
602         well.
603
604 2009-08-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
605
606         * ToolStripItem.cs: When the owner changes its Font, call the
607         OnFontChanged event, so we let our users know that we likely have a
608         new font - since Font is an ambient property.
609         * ToolStripDropDownItem.cs: When our Font changes, propagate that
610         information to our DropDown control, if any.
611         Fixes #531515.
612
613 2009-08-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
614
615         * DataGrid.cs: 
616         * ThemeWin32Classic.cs: When the user clicks on a new cell, we should reset any
617         previous selection, just like .net does. Also, in the cases where a
618         cell is being edited and it keeps the selected status, use the normal
619         colors for it, and use the selected colors for the rest of the columns of
620         that row.
621         Fixes the remaining bits of #323051.
622
623 2009-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
624
625         * DataGrid.cs: When getting ProcessKeyPreview fired, call Edit() if we
626         are not editing already - so the edition is actually active on our
627         column style textbox. Also, it seems the code handling process the
628         grid keys is repeated, but instead of removing it, just comment it for
629         now.
630         Fixes part of #323051.
631
632 2009-08-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
633
634         * AsyncMethodResult.cs: Store a exception field in case the called
635         method actually caused an exception. This way we can throw it later.
636         * XplatUIDriver.cs: Check if the async method result has an exception
637         - throw it if needed. 
638         The idea is that Control.Invoke throws the exception from the thread
639         that called it, not the main MWF thread. 
640         Patch by Tom Spink <tspink@gmail.com>. Fixes #497175.
641
642 2009-08-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
643
644         * DataGrid.cs: In mouse move we need to shift the selection in case
645         the pointer is on the row headers.
646         Fixes #323052.
647
648 2009-08-11  Ivan N. Zlatev  <contact@i-nz.net>
649
650         * SplitContainer.cs: Avoid updating the splitter distance if it hasn't 
651         moved. Updating the distance was causing a re-layout which was resetting 
652         the clicks counter and preventing DoubleClick from every firing.
653         [Fixes bug #521387]
654
655 2009-08-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
656
657         * DataGrid.cs: When a new TableStyle is added, don't create new
658         columns for it unless it is empty - this is the correct way to both
659         respect the columns if they were provided by our user, or create them
660         for him in case the column collection is empty.
661         Fixes #323111.
662
663 2009-08-10  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
664
665         * DataGrid.cs: Actually call BindColumns in the handler for
666         ListManager.MetaDataChanged, since the current code is already taking
667         into account the scenario when a custom table style is used - this was
668         confusing us before, and that's why we commented the call to
669         BindColumns. Also call CallAreasAndInvalidate, to properly reflect the
670         changes as needed.
671         Fixes #465021.
672
673 2009-08-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
674
675         * DataGrid.cs: When setting the data source, if we have a user
676         provided table style available, force a complete bind in case the
677         column styles for that table style is empty.
678
679 2009-08-09  Ivan N. Zlatev  <contact@i-nz.net>
680
681         * DataGridViewCell.cs: Handle null and DBNull values.
682
683 2009-08-07 Rodrigo Kumpera  <rkumpera@novell.com>
684
685         * ListBindingHelper.cs: Fix the 1.0 build by making this type available
686         under that profile.
687
688 2009-08-07  Ivan N. Zlatev  <contact@i-nz.net>
689
690         * CurrencyManager.cs: Remove duplicate code.
691
692 2009-08-07  Ivan N. Zlatev  <contact@i-nz.net>
693
694         * DataGridView.cs, DataGridViewCell.cs, DataGridViewColumn.cs: 
695         Massive population performance boost. From seconds to ms.
696         [Fixes bug #528887]
697
698 2009-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
699
700         * DataGrid.cs: When handling mouse down on a column, don't do any sort
701         even if the list supports it if we are empty. This way we avoid an exc
702         sorting the empty list, and keep the UI compatible with .net.
703
704 2009-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
705
706         * DataGrid.cs: In Edit () check we have any row before trying to use
707         the current row. Fixes a IOOR exc with an empty data grid.
708
709 2009-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
710
711         * DataGridColumnStyle.cs: Don't call CheckValidDataSource when setting
712         the owner DataGrid - even if this seems to be the right thing to do,
713         .net is not doind this check at this point, but in later operations.
714         Fixes #465019.
715
716 2009-07-28  Mike Gorse  <mgorse@novell.com>
717
718         * ToolStripMenuItem.cs: Added UIA CheckOnClickChanged event.
719
720 2009-07-28  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
721
722         * Application.cs: Make FilterMessage internal for 1.1. Fixes the 1.1 build.
723
724 2009-07-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
725
726         * XplatUIX11.cs:
727         * XplatUIWin32.cs: We need to filter the messages using
728         Application.FilterMessage for our DoEvents implementations. Observe
729         that I don't like the idea of XplatUI call the upper level Application
730         class, but at this point is easier and simpler to do this call - based
731         on the fact it's only one simple call.
732         Fixes #516735.
733
734 2009-07-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
735
736         * TreeNodeCollection.cs: When removing the selected node, set the
737         SelectedNode value of TreeView to null if there aren't more nodes left - 
738         this is better than to clear the selected node in Clear, since we need
739         to handle the situation in the Remove methods as well.
740         Fixes #525002.
741
742 2009-07-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
743
744         * ToolStripItemCollection.cs: Find should do a case insensitive
745         search, and should throw an ArgumentNullException if the parameter is
746         an empty string.
747
748 2009-07-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
749
750         * PropertyGrid.cs: Use click handlers for each ToolStripButton instead
751         of using a global handler for the ToolStrip. This way the buttons can
752         be recovered and can have its PerformClick method called properly.
753         Fixes #522454.
754
755 2009-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
756
757         * X11Dnd.cs: Implement support for XdndActionList, so we can get the
758         complete list of the supported actions in the drag source, and use the
759         action passed in the Position message only as a fallback. This will
760         help us with dnd operations with non winforms apps.
761         Fixes #402158.
762
763 2009-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
764
765         * ToolStripItemCollection.cs: Use a List<> instead of an ArrayList in
766         Find. This should fix the exception we were getting when trying to
767         convert the ArrayList to an array of objects (since we were losing the
768         type parameter).
769         Fixes #519944.
770
771 2009-07-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
772
773         * RadioButton.cs: Setting Checked when none of the sibligs is checked
774         should happen *not* in GotFocus, but in the Enter event. This is
775         specially important since we should get that Checked behaviour even if
776         no handle is created yet - and thus, no actual GotFocus call happens at
777         the time.
778         Fixes #520764.
779
780 2009-07-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
781
782         * ComboBox.cs: Adjust manually the top border for out internal
783         ComboBox, since removing the border from it leaves it without any
784         margin. This is not noticeable in a default ComboBox, but it is in an
785         instance shown on top of ToolStrip.
786         Fixes the remaining part of #507462.
787
788 2009-07-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
789
790         * TextBoxBase.cs: Expose the margin top width as a property, to keep
791         the code clean.
792         * ToolStripTextBox.cs: Since we are actually using no border in the
793         default TextBox impl, and we are drawing the border ourselves, we need
794         to manually set the top margin.
795         Fixes part of #507462.
796
797 2009-07-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
798
799         * PrintPreviewDialog.cs: Record when left was pressed, so we can
800         simulate Tab+Alt when moving the focus throughout our buttons and
801         controls.
802         Fixes the remaining bits of #509142.
803
804 2009-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
805
806         * TabControl.cs: When computing the width of each tab page, use the
807         page's Font instead of the tab control one.
808         Fixes #514368.
809
810 2009-07-03  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
811
812         * MenuAPI.cs: When handling the Keys.Left key, don't close the menu if
813         the current menu is specifically a ContextMenu (this is what .net does
814         as well). This way we also avoid a crash caused by MenuTracker trying
815         to use the menu when it was already hidden.
816
817 2009-07-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
818
819         * PrintPreviewDialog.cs: Remove the code used to handle the
820         DropDown menu, since we are now doing it by default in ToolBar, and
821         just call the base impl as needed.Also, deactivate the dropdown menu
822         before moving the focus to a different button in our toolbar, as .net
823         does.
824         * ContextMenu.cs:
825         * MenuAPI.cs: Make as internal the needed bits to deactivate a
826         ContextMenu, and also to keep some beauty in our api.
827
828 2009-07-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
829
830         * ToolBar.cs: When handling the key down message, if we are on a
831         drop down button, either show the DropDownMenu or pass the key to its
832         ProcessCmdKey method as needed.
833         Fixes the remaining bits of #509985.
834
835 2009-06-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
836
837         * ToolBar.cs: Isolate the event logic related to OnButtonClick. Also
838         set current_item when navigating with the keyboard, so we can use it
839         properly later. Finally, handle both Enter and Space to fire
840         OnButtonClick *only*, without any other impact, as .net does.
841         Fixes part of #509985.
842
843 2009-06-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
844
845         * MenuAPI.cs: Close any active menu when we get a simple Alt.
846         Fixes #509299.
847
848 2009-06-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
849
850         * ToolBar.cs: In OnButtonClick only change the Pushed value for
851         buttons with toogle style. We were previously doing it for
852         DropDownButton's buttons, but that's not what .net is doing.
853         Fixes #510030.
854
855 2009-06-26  Atsushi Enomoto  <atsushi@ximian.com>
856
857         * XplatUICarbon.cs : support multi-byte text input.
858           Fixed bug #501276.
859
860 2009-06-22  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
861
862         * ListBox.cs: When creating DrawItemEventArgs, pass either
863         Theme.ColorHighlightText or ForeColor depending on the selected state
864         of our item, as .net does.
865         Fixes #512115.
866
867 2009-06-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
868
869         * ComboBox.cs: When handling WM_CHAR, process the message first, and
870         send it to the textbox only if it wasn't handled.
871         Fixes #507459.
872
873 2009-06-18  Jonathan Pobst  <monkey@jpobst.com>
874
875         * ComboBox.cs: Only do my big sort at the end of AddRange if
876         the combobox is actually set to Sorted.
877
878 2009-06-18 Tom Hindle <tom_hindle@sil.org>
879         
880         * XplatUIX11.cs: Enabled Text to coexist with custom data formats.
881         Fixes #511849.
882
883 2009-06-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
884
885         * ListBox.cs: When calculating the scrollbars for non MultiColumn
886         mode, force the use of the horizontal scrollbar only if
887         ScrollAlwaysVisible is true as well.
888         Fixes #513029.
889
890 2009-06-17  Jonathan Pobst  <monkey@jpobst.com>
891
892         * ComboBox.cs: When using AddRange on a sorted combobox, don't
893         try to use our inefficient sorted insert method, just append
894         it and sort the whole thing at then end.
895         [Fixes bug #511247]
896
897 2009-06-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
898
899         * ToolBar.cs: Expose as internal the code used to show a dropdown menu.
900         * PrintPreviewDialog.cs: Handle the down/up arrow keys for our
901         DropDown element.
902         Fixes #509152.
903
904 2009-06-16  Ivan N. Zlatev  <contact@i-nz.net>
905
906         * DataGridView.cs: Scrolling fixes.
907         [Fixes bug #512816]
908
909 2009-06-16  Ivan N. Zlatev  <contact@i-nz.net>
910
911         * DataGridView.cs, DataGridViewRowCollection.cs: Clean up a bit and 
912         optimize for batch adding rows.
913
914 2009-06-16  Ivan N. Zlatev  <contact@i-nz.net>
915
916         * DataGridView.cs: Avoid calling ReBind twice during the initial data 
917         binding.
918         [Fixes bug #512807]
919
920 2009-06-16  Ivan N. Zlatev  <contact@i-nz.net>
921
922         * DataGridView.cs: Suppress invalidation during data binding.
923         [Fixes part of bug #512807]
924
925 2009-06-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
926
927         * PrintPreviewDialog.cs: Tune the navigation among the buttons and
928         controls that are part of our ToolBar, so we can mimic the behaviour
929         observed in .Net, by handling also the arrow keys and doing the
930         preprocess for them too.
931         Fixes the remaining bits of #509142.
932
933 2009-06-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
934
935         * ToolBar.cs: Expose the current item as internal.
936         * PrintPreviewDialog.cs: Tune the TabStop property for
937         PrintPreviewControl/ToolBar so we match the .net scenario regarding
938         Tab navigation. Also implement support to navigate throughout the
939         items in the ToolBar.
940         Fixes #509142.
941
942 2009-06-09  Ivan N. Zlatev  <contact@i-nz.net>
943
944         * DataGridViewComboBoxCell.cs, DataGridViewComboBoxColumn.cs: 
945         Implement items syncing in the non-databound scenario.
946         [Fixes bug #494031]
947
948 2009-06-09  Ivan N. Zlatev  <contact@i-nz.net>
949
950         * DataGridView.cs: Call OnCellValidating and OnCellValidated and 
951         handle the Cancel accordingly.
952         [Fixes bug #506838]
953
954 2009-06-09  Ivan N. Zlatev  <contact@i-nz.net>
955
956         * DataGridViewBand.cs: Fix a typo in DefaultHeaderCellType.
957         [Fixes bug #506796]
958
959 2009-06-09  Ivan N. Zlatev  <contact@i-nz.net>
960
961         * DataGridViewColumnCollection.cs, DataGridViewRowCollection.cs, 
962         DataGridView.cs: Fire CollectionChangeAction.Refresh collection 
963         changed when Clearing the collections so that the DataGridView 
964         can know and reset the current cell.
965         [Fixes bug #492549]
966
967 2009-06-09  Ivan N. Zlatev  <contact@i-nz.net>
968
969         * BindingSource.cs: In ResetBindings use the ListChangedEventArgs ctor 
970         with the PropertyDescriptor parameter instead of index, because the 
971         latter will set some irelevant indices. Fixes a bug uncovered by recent
972          fix to ListChangedEventArgs.
973
974 2009-06-09  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
975
976         * DataObject.cs: When looking for any specific format, do a case
977         insensitive search, as .net does.
978         Fixes #509199.
979
980 2009-06-09  Ivan N. Zlatev  <contact@i-nz.net>
981
982         * CurrencyManager.cs: In AllowNew firstly check if the list is a 
983         IBindingList and proxy to AllowNew. IBindingList has slightly differet 
984         logic and eventhough it's an IList IsReadOnly should not be used in this 
985         case as it might be True but AllowNew could be True as well.
986         Fixes a bug uncovered by a fix to the Array class.
987
988 2009-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
989
990         * ListBindingHelper.cs: In GetListItemType do a null check when
991         looking for IList.Item, since the impl could be explicit, and thus
992         private. Fix by Florent Fayolle (p.ricca at odyssee-ingenierie.com).
993         Fixes the remaining part of #507120
994
995 2009-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
996
997         * DataObject.cs: Map StringFormat/Text/UnicodeText formats properly,
998         to match them in all the cases, as this is exactly what .net does.
999         Fixes #510728.
1000
1001 2009-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1002
1003         * ListBindingHelper.cs: In GetListItemType handle gracefully the case
1004         where an instance of IEnumerator returns a null value for its Current
1005         property. Fix by Florent Fayolle (p.ricca at odyssee-ingenierie.com).
1006         Fixes #507120.
1007
1008 2009-06-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1009
1010         * ComboBox.cs: Properly detect whether we need to use our vertical
1011         scrollbar or not, specially for DropDownList/DropDown styles,
1012         depending on the value of DropDownHeight.
1013         Fixes #508541.
1014
1015 2009-06-01  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1016
1017         * ToolTip.cs: Call the base implementation in Dispose, but do it
1018         before anything else to avoid a regression. This way we do the default
1019         routines related to any System.ComponentModel.Container.
1020         Fixes #508586.
1021
1022 2009-06-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1023
1024         * Clipboard.cs:
1025         * XplatUIX11.cs:
1026         * DataFormats.cs: Implement support for serializable types in our
1027         clipboard.
1028         Fixes #357642.
1029
1030 2009-05-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1031
1032         * ColorDialog.cs: Actually add the help button to the form, so it can
1033         be visible.
1034         Fixes #478555.
1035
1036 2009-05-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1037
1038         * PrintPreviewDialog.cs: Don't use Dock.Fill for the
1039         PrintPreviewControl, since it will be hidden in the top by our
1040         toolbar. Use manual location and anchoring instead.
1041         Fixes #474889.
1042
1043 2009-05-25  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1044
1045         * FileDialog.cs: When saving the size of the dialog, use the
1046         ClientSize instead of Size, so we have always the same size for the
1047         form. Patch by Alex Shulgin.
1048         Fixes #503064.
1049
1050 2009-05-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1051
1052         * MessageBox.cs: When showing the dialog call XplatUI.AudibleAlert to
1053         show a beep, similar to what .net does. 
1054         Fixes #473725.
1055
1056 2009-05-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1057
1058         * ContainerControl.cs:
1059         * MenuStrip.cs
1060         * ToolStrip.cs: Implicit mnemonic processing should happen for every
1061         ToolStrip child, not only for MenuStrip, so we are going to do that in
1062         ToolStrip.ProcessMnemonic, where we already had that exactly
1063         functionality, but we are only just checking that either this instance
1064         is a ToolStripDropDownMenu instance or Alt has been pressed. Finally
1065         remove the extra code, since we are not going to use it now.
1066         Fixes the remaining bits of #503663.
1067
1068 2009-05-21  Neville Gao  <nevillegao@gmail.com>
1069
1070         * ContextMenu.cs: Cleaned up UIA properties.
1071
1072 2009-05-20  Dick Porter  <dick@acm.org>
1073
1074         * XplatUICarbon.cs: Add more locking around MessageQueue
1075         manipulations.
1076
1077 2009-05-18  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1078
1079         * DateTimePicker.cs: Call Focus in HideMonthCalendar to avoid
1080         duplication of code, as well as actually getting the focus back in
1081         *any* scenario where the drop down is closed.
1082
1083 2009-05-18 Tom Hindle <tom_hindle@sil.org>
1084         * ScrollableControl.cs: Ignore setting properties HScroll and 
1085         VScroll when AutoScroll is true.
1086         [Fixes bug #500213]
1087
1088 2009-05-18  Jonathan Pobst  <monkey@jpobst.com>
1089
1090         * ToolStripRenderer.cs: Apply patch from Thomas Goldstein to make
1091         disabled graphics look closer to the ones that .Net produces.
1092         [Fixes bug #473660]
1093
1094 2009-05-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1095
1096         * DateTimePicker.cs: When calculating the max width for the year part,
1097         use the current value, since *all* the possible values are exactly a 4
1098         digits number. This way we avoid a ArgumentOutOfRangeException trying
1099         to check against different values.
1100         Fixes #500917.
1101
1102 2009-05-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1103
1104         * MessageBox.cs: When handling ProcessDialogChar, check that
1105         CancelButton is not null before trying to use it, to avoid a null ref
1106         exception. We don't need to do that on the ok/yes buttons, since they
1107         always exist.
1108         Fixes #503935.
1109
1110 2009-05-15  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1111
1112         * ListBox.cs: Handle the key down event in WndProc instead of doing it
1113         in an event handler, as we need to avoid any operation in case
1114         the user has handled it in its own OnKeyDown handler, and this can't
1115         be achieved since our handler would be the first one always.
1116         * FontDialog.cs: Update the calls since our method handling key down
1117         has been renamed.
1118         Fixes #503469.
1119
1120 2009-05-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1121
1122         * Application.cs: We should dismiss the active ToolStrip when we
1123         receive a WM_SYSKEYDOWN message, instead of WM_SYSKEYUP, so the next
1124         keyboard short cut can be properly processed by another menu item.
1125         Fixes part of #503663.
1126
1127 2009-05-13  Andreia Gaita  <avidigal@novell.com>
1128
1129         * HtmlDocument.cs: If the objects are strings, wrap them in ""
1130
1131 2009-05-13  Andreia Gaita  <avidigal@novell.com>
1132
1133         * HtmlDocument.cs: Fix InvokeScript call (duh).
1134
1135 2009-05-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1136
1137         * TextBox.cs: Expose IsAutoCompleteAvailable as internal.
1138         * ComboBox.cs: If auto complete is being used, it is needed to update
1139         the actual value of the combo box, doing it immediately if the user
1140         presses Enter, or doing it when our combo box loses focus. Finally,
1141         when handling Enter and Escape keys for the combobox, don't try to
1142         hide the listbox if it is not visible in the first place. 
1143         Fixes part of #489339.
1144
1145 2009-05-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1146
1147         * ToolStripDropDownMenu.cs: Use the height returned by
1148         ToolStripItem.GetPreferredHeight to calculate our own height.
1149
1150 2009-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1151
1152         * TreeNode.cs: When setting Checked, do a double null check, since the
1153         current node can still get a null parent handling
1154         TreeView.OnAfterCheck.
1155         Fixes #502567.
1156
1157 2009-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1158
1159         * Control.cs: When assigning ContextMenu, do a null check before
1160         assigning its container field.
1161
1162 2009-05-08  Brad Taylor  <brad@getcoded.net>
1163
1164         * DateTimePicker.cs: Add a UIA-specific property to ensure that if
1165         is_checkbox_checked is changed, we won't break.
1166
1167 2009-05-08  Andrés G. Aragoneses  <aaragoneses@novell.com>
1168
1169         * ToolStripItem.cs: Prevent NRE when our holder is a
1170         ToolStripDropDownButton and we get Select()ed.
1171
1172 2009-05-08  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1173
1174         * ToolStripControlHost.cs: DefaultSize must return the current size of
1175         the Control, not the value returned by GetPreferredSize. Also connect
1176         a handle to the control Resize event, and use it to fire
1177         OnHostedControlReize.
1178         Fixes the remaining bits of #483146.
1179
1180 2009-05-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1181
1182         * ToolStripDropDown.cs: When performing the layout, use
1183         ToolStripItem.GetPreferredSize ().Height instead of
1184         ToolStripItem.Height, since we are already using it that way in this
1185         same method.
1186         Fixes part of ##483146.
1187
1188 2009-05-08  Brad Taylor  <brad@getcoded.net>
1189
1190         * DateTimePicker.cs: Wrap UIA specific code in NET_2_0 wrappers.  Send
1191         OnUIASelectionChanged when ShowCheckbox is true and the checkbox
1192         recieves focus.  Part of fix for #502029.
1193
1194 2009-05-06  Mike Gorse  <mgorse@novell.com>
1195
1196         * FileDialog.cs: Add UIAFocusedItemChanged to PopupButtonPanel.
1197         Add PerformClick and PerformDoubleClick to PopupButton.
1198         Fixes #499851.
1199
1200 2009-05-04  Andrés G. Aragoneses  <aaragoneses@novell.com>
1201
1202         * TabControl.cs: call Focus() to emit GotFocus event at the
1203         proper time when SelectionIndex changes. Fixes #499887.
1204
1205 2009-05-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1206
1207         * MonthCalendar.cs: In SetBoundsCore always do the bounds check to
1208         have valid values, even if BoundSpecified is not including
1209         Size/Height/Width - this is useful when we are in a control using Dock
1210         or Anchor.
1211         Fixes part of #483146.
1212
1213 2009-04-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1214
1215         * ComboBox.cs: When losing the focus, if our textbox is not null,
1216         close its auto complete list, if any.
1217         Fixes part of #489339.
1218
1219 2009-04-27  Andrés G. Aragoneses  <aaragoneses@novell.com>
1220
1221         * ListView.cs: Make OnColumnClick +internal to be used by a11y.
1222
1223 2009-04-27  Brad Taylor  <brad@getcoded.net>
1224
1225         * ToolStripButton.cs: Emit an internal event when CheckOnClick is
1226         changed.
1227
1228 2009-04-26  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1229
1230         * XplatUIX11.cs: Properly support UTF8 when handling the
1231         SelectionRequest event - this is helpful supporting some window
1232         managers, such KDE, that explictly request the text in utf8, as
1233         opposed to gnome, that supports ascii.
1234         Fixes #489393.
1235
1236 2009-04-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1237
1238         * ToolStripDropDownItem.cs: When assigning a new
1239         ToolStripDropDownMenu, let it know we are its OwnerItem. This way the
1240         Capture duties performed by Application/ToolStripManager are handled
1241         nicely and we don't end up in an inconsisten stat.
1242         Fixes #492815.
1243
1244 2009-04-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1245
1246         * ToolStrip.cs: Even if we are not exactly a MenuStrip instance, close
1247         any ToolStripDropDownItem when receiving a mouse down event in an
1248         empty area.
1249
1250 2009-04-24  Andrés G. Aragoneses  <aaragoneses@novell.com>
1251
1252         * ToolBarButton.cs: add UIA events for style and dropdownmenu changes.
1253
1254 2009-04-24  Andrés G. Aragoneses  <aaragoneses@novell.com>
1255
1256         * ToolBarButton.cs: rename a method to include UIA prefix.
1257
1258 2009-04-24  Andrés G. Aragoneses  <aaragoneses@novell.com>
1259
1260         * ToolBarButton.cs: change visibility of some UIA methods from
1261         protected virtual to private.
1262
1263 2009-04-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1264
1265         * ToolStripDropDown.cs: In OnVisibleChanged, if we have an OwnerItem,
1266         fire OnDropDownOpened/OnDropDownClosed depending on the new
1267         visibility. This also ensures that any direct access to this instance
1268         will fire the mentioned events for the OwnerItem.
1269         * ToolStripDropDownItem.cs: Remove the invocations to
1270         OnDropDownOpened/OnDropDownClosed, since they are handled in
1271         ToolStripDropDown, as well as updating the
1272         OnDropDownHide/OnDropDownShow calls to be in the right order.
1273         Fixes #496193.
1274
1275 2009-04-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1276
1277         * Control.cs, ContextMenuStrip.cs, ToolStripMenuItem.cs: Only process any 
1278         shortchut in ToolStripMenuItem.ProcessCmdKey if the control generating the 
1279         event is the same as the owner of the menu item. Also set properly 
1280         SourceControl for ContextMenuStrip, as well as add an internal field to 
1281         contain the control that owns the ContextMenuStrip (we need to know this 
1282         even before the public property is assigned).
1283         Fixes bits of #393775.
1284
1285 2009-04-20  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1286
1287         * StatusStrip.cs: Use the same icon as .net when the mouse is over the
1288         size grip.
1289         Fixes #492828.
1290
1291 2009-04-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1292
1293         * ComboBox.cs: When calculating the height of the ComboListBox,
1294         specially for the 2.0 profile, use MaxDropDownItems if the
1295         DropDownHeight property hasn't been set, and use the later if it has
1296         been set. This way we support both properties.
1297         Fixes #493308.
1298
1299 2009-04-14  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1300
1301         * ThreadExceptionDialog.cs: Draw the error icon, previously missing.
1302         Fixes #474253.
1303
1304 2009-04-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1305
1306         * ContainerControl.cs: Implement support for Control.CausesValidation,
1307         by adding a pending list of controls to be validated in the top
1308         container control, and postpone validation as needed. 
1309         Also remove any control in the validation chain in case it gets removed 
1310         from its owner before the pending validation actually happens.
1311         Fixes #457170.
1312
1313 2009-04-09  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1314
1315         * ListBox.cs: The default instance StringFormat field used to draw our
1316         items should use the StringFormatFlags.NoWrap value, so it doesn't try
1317         to put in a different line the text that doesn't fit our bounds, but
1318         show it partially.
1319         Fixes #475581.
1320
1321 2009-04-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1322
1323         * CheckedListbox.cs: When executing OnItemClick check that the index
1324         is different to -1 before trying to retrieve an item using that value.
1325         Fixes a ArgumentOutOfRangeException thrown when the horizontal
1326         scrollbar was visible but not needed, and then a clicked was received
1327         on its area.
1328
1329 2009-04-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1330
1331         * MaskedTextBox.cs: If Insert is pressed, change the internal
1332         overwrite mode for our default value.
1333         Fixes some bits of #477395.
1334
1335 2009-04-06  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1336
1337         * ListView.cs: In EnsureVisible avoid any direct access to items if we
1338         are using virtual mode - otherwise use the bounds stored in a specific
1339         item in a given index. This is specially important when using groups
1340         or when items are re-arranged, since the position in the items
1341         collection can be different than that one being displayed.
1342         Fixes the rest of ##491978.
1343
1344 2009-04-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1345
1346         * ThemeWin32Classic.cs: Include the previous check for ListView in a
1347         2.0 define as needed.
1348
1349 2009-04-06  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1350
1351         * ThemeWin32Classic.cs: Don't draw ListView's gridlines if we are using groups.
1352         Fixes part of #491978.
1353
1354 2009-04-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1355
1356         * ToolTip.cs: New fields to store the title/icon information.
1357         * ThemeWin32Classic.cs: Implement support for tooltip's title and
1358         icon.
1359         Fixes #491978.
1360
1361 2009-04-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1362
1363         * TabControl.cs: When removing a tab that was previously selected, set
1364         internally the value of selected_index to -1, to avoid trying to
1365         access the previous one when trying to set the new one (and was
1366         already removed from the collection). This is what .net seems to do
1367         too.
1368         Fixes #490937.
1369
1370 2009-04-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1371
1372         * XplatUIX11.cs, X11Clipboard.cs: Text and Rtf formats must be
1373         separated, and we cannot fallback on Text if Rtf is requested but not
1374         present.
1375         * Clipboard.cs: Actually use the format specified by our user when
1376         putting data.
1377
1378 2009-03-31  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1379
1380         * X11Clipboard.cs: Actually look for the RtfText format when calling
1381         GetRftText in our clipboard formats list, instead of using the
1382         generical Text format.
1383
1384 2009-03-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1385
1386         * TextBox.cs: Process auto completion properly when we are using the
1387         internal source provided by ComboBox, and also remove some repeated
1388         checks.
1389         Fixes #489339.
1390
1391 2009-03-30 Tom Hindle <tom-hindle@sil.org>
1392         
1393         * DataGridView added Support for Invisible Columns to 
1394         AutoFillColumnsInternal method.
1395
1396 2009-03-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1397
1398         * X11Structs:
1399         * X11Clipboard.cs: Move internal ClipboardStruct from X11Structs to
1400         its own file, since it is adding some functionality and thus is not a
1401         simple struct as before.
1402         * XplatUIX11.cs: Add support to store different formats that could
1403         have been specified by the user when puting data in the Clipboard -
1404         this is important when more than one format is supported (such plain
1405         text and rtf text). Update in the needed places, as well as simplify
1406         the code.
1407         Fixes #489625.
1408
1409 2009-03-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1410
1411         * XplatUIX11.cs: When handling the SelectionRequest event, use
1412         SelectionRequestEvent instead of SelectionEvent, so we get the right
1413         data for the app asking for clipboard data. Set the member of
1414         SelectioneEvent.property to indicate the place where we are storing
1415         the information as well - this is specially important for gnome/kde
1416         apps using the TARGETS atom to ask for the supported permission before
1417         actually asking for a specific format.
1418         Fixes #489393.
1419
1420 2009-03-28  Ivan N. Zlatev  <contact@i-nz.net>
1421
1422         * DataGridViewCell.cs: We don't support drawing all types of cell borders, 
1423         so fallback and at least draw something instead of nothing.
1424
1425 2009-03-27  Ivan N. Zlatev  <contact@i-nz.net>
1426
1427         * DataGridView.cs: If the column header isn't visible allow resizing 
1428         using the cell column border. Also be sure to reset the cursor properly.
1429         [Fixes bug #489929]
1430
1431 2009-03-26   Carlos Alberto Cortez <calberto.cortez@gmail.com>
1432
1433         * ToolStrip.cs: When disposing, iterate over the items in reverse
1434         order, since disposing the items modifies the collection.
1435         * ToolStripItem.cs: Remove from the owner when disposing.
1436         Fixes #485769.
1437
1438 2009-03-26  Ivan N. Zlatev  <contact@i-nz.net>
1439
1440         * DataGridView.cs: Add an implementation for UpdateRowHeightInfo. No 
1441         longer throws a NotImplementedException.
1442           Based on a patch by Tom Hindle <tom_hindle@sil.org>
1443         [Fixes bug #488319]
1444
1445 2009-03-26  Ivan N. Zlatev  <contact@i-nz.net>
1446
1447         * DataGridView.cs: Implement IsCurrentRowDirty. No longer throws 
1448         NotImplementedException.
1449
1450 2009-03-26  Ivan N. Zlatev  <contact@i-nz.net>
1451
1452         * DataGridViewColumn.cs, DataGridViewTextBoxColumn.cs: 
1453         Fix SortMode clash handling.
1454         [Fixes bug #488263]
1455
1456 2009-03-26  Ivan N. Zlatev  <contact@i-nz.net>
1457
1458         * DataGridView.cs: Do not show the vertical scrollbar if there is only 
1459         one row or less. For the sake of MSNET compatibility.
1460         [Fixes bug #487988]
1461
1462 2009-03-26  Ivan N. Zlatev  <contact@i-nz.net>
1463
1464         * DataGridView.cs: When the current cell is moved out of the editing row 
1465         be sure to reset it back to a place holder row.
1466
1467 2009-03-19  Ivan N. Zlatev  <contact@i-nz.net>
1468
1469         * DataGridView.cs: If IsHandleCreated and the very first row is added 
1470         to the grid in a non-databound scenario - select the first cell.
1471         [Fixes bug #486881]
1472
1473 2009-03-19  Ivan N. Zlatev  <contact@i-nz.net>
1474
1475         * DataGridView.cs: If we are not databound and empty once the first row 
1476         gets added select the first cell.
1477         [Fixes bug #486881]
1478
1479 2009-03-19  Ivan N. Zlatev  <contact@i-nz.net>
1480
1481         * DataGridView.cs, DataGridViewColumn.cs: Do not set Row/CellTemplate's
1482         DataGridView. They do not belong to a DataGridView.
1483         [Fixes bug #486645]
1484
1485 2009-03-19  Ivan N. Zlatev  <contact@i-nz.net>
1486
1487         * DataGridViewCellCollection.cs, DataGridViewColumnCollection.cs: 
1488         Set indices and associate with DataGridView only after the item is 
1489         add to the internal list.
1490         [Fixes part of bug #486645]
1491
1492 2009-03-19  Ivan N. Zlatev  <contact@i-nz.net>
1493
1494         * DataGridView.cs: Do not add any cells to the FullRowTemplate in RowCount. 
1495         FullRowTemplate already contains all the cells.
1496         [Fixes part of bug #486645]
1497
1498 2009-03-19  Ivan N. Zlatev  <contact@i-nz.net>
1499
1500         * DataGridView.cs, DataGridViewCellCollection.cs: Split the column removal 
1501         to perform Pre and Post removal actions to allow the current cell to be 
1502         moved and all events fired properly before the column is removed.
1503
1504 2009-03-19  Ivan N. Zlatev  <contact@i-nz.net>
1505
1506         * DataGridView.cs, DataGridViewRow.cs: Split the row removal to perform Pre and 
1507         Post removal action to allow the current cell to be moved and all events fired 
1508         properly before the row is removed.
1509
1510 2009-03-18  Ivan N. Zlatev  <contact@i-nz.net>
1511
1512         * DataGridView.cs: Fire CellEnter and CellLeave events for the Cell.
1513         [Fixes bug #486640]
1514
1515 2009-03-18  Jonathan Pobst  <monkey@jpobst.com>
1516
1517         * XplatUICarbon.cs: Commit patch from Alex Shulgin that fixes window
1518         placement of popup windows on OSX.
1519
1520 2009-03-18  Matt Guo  <matt@mattguo.com>
1521
1522         * FontDialog.cs: Override "ToString" for FontDialog.ColorComboBox.ColorComboBoxItem
1523         [Fixes bug #482690]
1524
1525 2009-03-18  Ivan N. Zlatev  <contact@i-nz.net>
1526
1527         * DataGridView.cs: Implement the CellMouseDoubleClick event.
1528         [Fixes bug #486262]
1529
1530 2009-03-18  Ivan N. Zlatev  <contact@i-nz.net>
1531
1532         * DataGridView.cs: Fix scrolling to take into account that the 
1533         scrollbars are actually inside the client area of the datagridview.
1534
1535 2009-03-18  Ivan N. Zlatev  <contact@i-nz.net>
1536
1537         * DataGridView.cs: Implement mouse wheel scrolling.
1538         [Fixes bug #486159]
1539
1540 2009-03-17  Ivan N. Zlatev  <contact@i-nz.net>
1541
1542         * DataGridView.cs: When DataSource changes the rebinding should happen 
1543         not if IsHandleCreated but if BindingContext != null.
1544         [Fixes bug #486013]
1545
1546 2009-03-17  Ivan N. Zlatev  <contact@i-nz.net>
1547
1548         * DataGridView.cs: Browsable(false) properties should be skipped when 
1549         autogenerating the columns.
1550         [Fixes bug #486021]
1551
1552 2009-03-16  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1553
1554         * DomainUpDown.cs: When ReadOnly is true, all the text entered by the
1555         user should use a different handling, trying to use every pressed char
1556         as a unique and only one prefix to compare against the items. Also,
1557         refactor some input check code to avoid duplication.
1558         Fixes #458607.
1559
1560 2009-03-16  Ivan N. Zlatev  <contact@i-nz.net>
1561
1562         * DataGridViewCell.cs: In OwningColumng Handle invalid column index 
1563         silently.
1564         [Fixes bug #485278]
1565
1566 2009-03-16  Ivan N. Zlatev  <contact@i-nz.net>
1567
1568         * DataGridViewBand.cs: Update our State whenever a property changes.
1569         * DataGridView.cs: Don't be so generous in reseting Displayed, because 
1570         it will spawn lots and lots of unneeded State changed events.
1571         [Fixes bug #484989]
1572
1573 2009-03-16  Ivan N. Zlatev  <contact@i-nz.net>
1574
1575         * DataGridView.cs, DataGridViewRow.cs, DataGridViewColumn.cs: 
1576         Add support for invisible rows and columns.
1577         [Fixes bug #484951]
1578
1579 2009-03-16  Ivan N. Zlatev  <contact@i-nz.net>
1580
1581         * DataGridViewCell.cs: Escape literal { in ToString.
1582         * DataGridViewTextBoxCell.cs: Fix ToString.
1583         [Fixes bug #484923]
1584
1585 2009-03-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1586
1587         * MenuAPI.cs: When navigating items using the keyboard properly handle
1588         the case when no item is selected - this way we should try to select
1589         the first or the last item depending on the direction, but no the
1590         second or third one, etc.
1591
1592 2209-03-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1593
1594         * Form.cs: When calling ProcessCmdKey, just after checking for any
1595         MainMenu, check if there's an active ContextMenu that is *not* owned
1596         by the form - this is needed when a non-focusable control owns a
1597         ContextMenu but its ProcessCmdKey method can't be called since it
1598         can't receive any input.
1599         Fixes #477655.
1600
1601 2009-03-13  Neville Gao  <nevillegao@gmail.com>
1602
1603         * ToolBar.cs: Sent ButtonClick events when button style is DropDown.
1604         * ContextMenu.cs: Add UIA Framework property UIAVisible to detect if
1605         ContextMenu is displayed.
1606
1607 2009-03-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1608
1609         * XplatUIX11.cs: In GetMessage when F1 gets pressed, besides sending a
1610         WM_HELP message for the associated window, don't call
1611         NativeWindow.WndProc *at all*, since this could send a WM_*
1612         key-related to Control.WndProc. Also, return the keypress message, in
1613         case it needs to be preprocessed for any menu.
1614         Fixes #478476.
1615
1616 2009-03-08  Ivan N. Zlatev  <contact@i-nz.net>
1617
1618         * DataGridView.cs: When removing the first displayed row and moving 
1619         the current cell up one we must invalidate the first displayed row 
1620         index before calculating the row heights, etc.
1621         [Fixes bug #483202]
1622
1623 2009-03-08  Ivan N. Zlatev  <contact@i-nz.net>
1624
1625         * DataGridView.cs: Fix three column bugs:
1626            - Rows should be cleared (but not removed) if columns become 0.
1627            - The current cell should get moved
1628            - ColumnCount increase was adding too many columns.
1629
1630 2009-03-07  Ivan N. Zlatev  <contact@i-nz.net>
1631
1632         * DataGridView.cs: Fix RowCount decrease which wasn't working well 
1633         in both scenarions - with and without editing row.
1634
1635 2009-03-06  Ivan N. Zlatev  <contact@i-nz.net>
1636
1637         * DataGridView.cs: Be compatible with MS in that the scroll to 
1638         selection has a synchronous effect. The trick here is that in 
1639         order to avoid unnecessary calculations each time a row/column 
1640         is added/removed we recalculate the whole grid size just before 
1641         just before the scroll to selection.
1642         [Fixes bug #482478]
1643
1644 2009-03-06  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1645
1646         * RichTextBox.cs: LoadFile(string path) should pass by default
1647         RichTextBoxStreamType.RichText, without caring about the detection or
1648         extension of the file.
1649
1650 2009-03-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1651
1652         * RichTextBox.cs: When calling LoadFile, remove the extra EOL
1653         introduced by StreamReader, since it will convert the EOF to an EOL.
1654         Fixes #479646.
1655
1656 2009-03-06  Jonathan Pobst  <monkey@jpobst.com>
1657
1658         * ToolStripDropDownMenu.cs: Use Math.Max instead of calculating
1659         preferred size twice.
1660
1661 2009-03-06  Jonathan Pobst  <monkey@jpobst.com>
1662
1663         * ToolStripMenuItem.cs: Don't draw the dropdown arrow or shortcut
1664         string if we aren't on a ToolStripDropDownMenu.
1665
1666 2009-03-06  Jonathan Pobst  <monkey@jpobst.com>
1667
1668         * ToolStripDropDownButton.cs, ToolStripItem.cs: Refactor some Button
1669         code from Item to Button.  Patch from Alex Shulgin.
1670
1671 2009-03-05  Jonathan Pobst  <monkey@jpobst.com>
1672
1673         * ToolStripDrowDown.cs: Remove some hardcoded values and assumptions.
1674         * ToolStripDropDownButton.cs: This should use a ToolStripDropDownMenu,
1675         not a ToolStripDropDown.
1676         * ToolStripItem.cs: Don't use the item margins on a ToolStripDropDown.
1677
1678 2009-03-04  Ivan N. Zlatev  <contact@i-nz.net>
1679
1680         * DataGridView.cs: Fix RowCount/ColumnCount decreasing.
1681
1682           Based on a patch by Tom Hindle <tom_hindle@sil.org>
1683           [Fixes bug #482133]
1684
1685 2009-03-04  Ivan N. Zlatev  <contact@i-nz.net>
1686
1687         * DataGridView.cs, DataGridViewElement.cs: 
1688            - Always calls OnDataGridViewChanged() if the new DGV is 
1689            not the same/null as the current one.
1690            - Do not throw NREs when setting TopLeftHeaderCell to null
1691            - Unset the DGV for TopLeftHeaderCell when replacing it
1692           Based on a patch by Tom Hindle <tom_hindle@sil.org>
1693           [Fixes bug #481681]
1694
1695 2009-03-04  Jonathan Pobst  <monkey@jpobst.com>
1696
1697         * ToolStripDropDown.cs: When dismissing control due to ESC, don't
1698         hit a NRE if we are a ContextMenuStrip and do not have a parent.
1699         [Fixes bug #478616]
1700
1701 2009-03-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1702
1703         * ListView.cs: When removing items from a ListViewItemCollection
1704         contained in ListView (not in ListViewGroup), before actually removing
1705         the items remove them also from their -if any- associated groups. If
1706         the item is present in ListViewGroup.Items but not in ListView.Items,
1707         then don't remove it - this is *exactly* what .net seems to do.
1708         Fixes the remaining bits of #478689.
1709
1710 2009-02-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1711
1712         * ListView.cs: In our MouseDown handler in ItemControl use the item in
1713         the very specific *real* position where the mouse was pressed, using
1714         GetItemAtDisplayIndex for that purpose, instead of directly accessing
1715         Items - this is specially useful when groups with Details view is
1716         used. This is what we do in other places when using groups.
1717         Fixes part of #478689.
1718
1719 2009-02-27  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1720
1721         * MaskedTextBox.cs: Properly replace selection when a new valid key
1722         is pressed - even when IsOverwriteMode is false. This is what .net
1723         does.
1724
1725 2009-02-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1726
1727         * MaskedTextBox.cs: When setting Text and RejectOnFirstFailure is
1728         true, use MaskedTextProvider.Set instead of MaskedTextProvider.Replace, 
1729         since Set will keep the previous value in case of error (just what we
1730         need), but still call MaskedTextProvider.Clear if
1731         RejectOnFirstFailure is false - match .net.
1732
1733 2009-02-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1734
1735         * MaskedTextBox.cs: When setting Text use the very precise algorithm
1736         that .net uses: iterate over every char of the new value, trying to
1737         use every char, and use a normal call to MaskedTextProvider.Replace
1738         call if RejectInputOnFirstFailure is true. Fire OnMaskInputRejected 
1739         in case of error in both cases, as well.
1740         Fixes #477408.
1741
1742 2009-02-25  Neville Gao  <nevillegao@gmail.com>
1743
1744         * ColorDialog.cs: Added UIA Framwork Property:
1745         UIASelectedSmallColorControl.
1746
1747 2009-02-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1748
1749         * MaskedTextBox.cs: Forgot to update the call of the new method
1750         introduces in the previous patch.
1751
1752 2009-02-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1753
1754         * MaskedTextBox.cs: Handle OnKeyDown to properly process the Delete
1755         key. Also create a new method to avoid code duplication between
1756         OnKeyDown and OnKeyPress.
1757         Fixes #477388.
1758
1759 2009-02-24  Ivan N. Zlatev  <contact@i-nz.net>
1760
1761         * DataGridViewCell.cs: Invalidate the datagrid when the cell is selected 
1762         or deselected.
1763         [Fixes bug #479124]
1764
1765 2009-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1766
1767         * MaskedTextBox.cs: In OnKeyPress the IsOverwriteMode check is
1768         actually inversed, so put it the right way. Also, don't automatically
1769         look for the next editable item after adding a new one, but way for
1770         the next insertion (this is what .net does) - this is not needed when
1771         MaskedTextProvider.InsertAt is called however, since it already looks for the
1772         next editable position.
1773         Fixes the remaining bits of #477383.
1774
1775 2009-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1776
1777         * MaskedTextBox.cs: In OnKeyPress handle backspace by calling
1778         MaskedTextProvider.RemoveAt method. Also for setting the SelectionStart
1779         property after the text was modified, adjust the testPosition value
1780         depending on what method was called.
1781         Fixes part of #477383.
1782
1783 2009-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1784
1785         * ListView.cs: For EnsureVisible, adjust the view port bounds based on
1786         the existence of the column headers, as well as using this information
1787         to adjust the vscrollbar value, so items never get hidden by the
1788         column headers.
1789         Fixes #478498.
1790
1791 2009-02-23  Ivan N. Zlatev  <contact@i-nz.net>
1792
1793         * DataGridView.cs: Make the ScrollBars property work properly.
1794
1795 2009-02-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1796
1797         * TextBox.cs: Some code lifting for AutoComplete's support. First,
1798         when handling non-navigation keys, save the original Text typed by the
1799         user, and don't motify it BEFORE. This was a design mistake, since the
1800         re-assignation happens only when navigating the append/suggest list,
1801         not while creating the matches. Also, process the Delete key just like 
1802         the backspace one. Finally, when handling WM_CHAR, ignore both Escape
1803         and Enter keys.
1804         Fixes some missing bits of #469967.
1805
1806 2009-02-22  Ivan N. Zlatev  <contact@i-nz.net>
1807
1808         * DataGridView.cs: Fix row removal in the data-bound scenario.
1809
1810 2009-02-19  Ivan N. Zlatev  <contact@i-nz.net>
1811
1812         * DataGridViewCell.cs: Use strict equality comparison in order to 
1813         prevent superfluous CellValueChanged events.
1814
1815 2009-02-19  Ivan N. Zlatev  <contact@i-nz.net>
1816
1817         * DataGridView.cs: Do not reset the columns when the data list changes, 
1818         but only the rows. Fixes multiple bugs related to sorting, custom 
1819         column styles being reset and more.
1820
1821 2009-02-19  Jonathan Pobst  <monkey@jpobst.com>
1822
1823         * ThemeWin32Classic.cs: Respect a PictureBox's Padding when
1824         drawing the image.
1825
1826 2009-02-18  Andrés G. Aragoneses  <aaragoneses@novell.com>
1827
1828         * ToolBarButton.cs: Oops, use the correct event (fix r127298).
1829
1830 2009-02-17  Andrés G. Aragoneses  <aaragoneses@novell.com>
1831
1832         * ToolBarButton.cs: Event for Enabled property (needed to fix
1833           UIA #474197).
1834
1835 2009-02-16  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1836
1837         * TextBox.cs: When handling WndProc with autocomplete activated,
1838         event if the new text is not causing any change in the look up
1839         algorithm, save it as we normally do when numbers and letters.
1840         Fixes #469967.
1841
1842 2009-02-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1843
1844         * TreeNode.cs: When Text/StateImageIndex/StateImageKey/NodeFont change
1845         Invalidate the proper bounds in the TreeView, not only resetting the
1846         width.
1847         Fixes #475542.
1848
1849 2009-02-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1850
1851         * TreeNode.cs: Don't return TreeView.BackColor when retrieving our own
1852         BackColor property. This is what .net does in both 1.1 and 2.0.
1853         * TreeView.cs: When selected_node is not the same as highlighted_node,
1854         we need to handle the back color in a different way, trying to use the
1855         node's BackColor if it's not Color.Empty.
1856         Fixes #464200.
1857
1858 2009-02-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1859
1860         * TreeView.cs: When canceling selection in our MouseUp handler,
1861         invalidate also the previous selected node bounds.
1862         Fixes #464191.
1863
1864 2009-02-07  Ivan N. Zlatev  <contact@i-nz.net>
1865
1866         * DataGridView.cs: End or if end fails then cancel the current edit 
1867         operation before clearing the data source.
1868
1869 2009-02-07  Ivan N. Zlatev  <contact@i-nz.net>
1870
1871         * DataGridView.cs: Data-bind only after the handle is created.
1872         [Fixes bug #473680]
1873
1874 2009-02-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1875
1876         * TreeView.cs: When handling the MouseMove event, check if
1877         focused_node and selected_node fields are null - usually they are non
1878         null, since we have always a selected node, but canceling selection by
1879         handling BeforeSelect event leaves the two of them as null.
1880         Fixes #470451.
1881
1882 2009-02-06  Neville Gao  <nevillegao@gmail.com>
1883
1884         * TabControl.cs: Control enabled to support accessibility.
1885         [Fixes Bug #472428]
1886
1887 2009-02-05  Ivan N. Zlatev  <contact@i-nz.net>
1888
1889         * DataGridViewRowCollection.cs, DataGridView.cs: Fix row insertation: 
1890            - Use ArrayList.Insert instead of the Item property so that the item 
1891            is actually inserted and not an existing item replaced.
1892            - Call DataGridView.OnRowsAddedInternal and drop internal from 
1893            OnRowsAdded for binary compitability. This also fixes several 
1894            redrawing issues.
1895         [Fixes bug #472968]
1896
1897 2009-02-05  Andrés G. Aragoneses  <aaragoneses@novell.com>
1898
1899         * ToolBarButton.cs: Doh, fire OnUIATextChanged *after* setting
1900           the value.
1901
1902 2009-02-04  Andrés G. Aragoneses  <aaragoneses@novell.com>
1903
1904         * ToolBarButton.cs: Add another event (OnUIATextChanged).
1905
1906 2009-02-04  Andrés G. Aragoneses  <aaragoneses@novell.com>
1907
1908         * ToolBarButton: Fix typo in previous commit (r125704).
1909
1910 2009-02-04  Andrés G. Aragoneses  <aaragoneses@novell.com>
1911
1912         * ToolBar.cs, ToolBarButton.cs: Add new UIA events to know
1913         when a button gets focus, firing the events from the ToolBar.
1914         r: jpobst
1915
1916 2009-02-04  Mario Carrion  <mcarrion@novell.com>
1917
1918         * ColumnHeader.cs: Raising ListView.ColumnWidthChanged when setting 
1919         Width.
1920         * ListView.cs: Internal method added: RaiseColumnWidthChanged, used by
1921         ColumnHeader to raise ColumnWidthChanged.
1922         [Fixes Bug #467086]
1923
1924 2009-02-03  Ivan N. Zlatev  <contact@i-nz.net>
1925
1926         * DataGridViewRowCollection.cs, DataGridView.cs: Move row completion 
1927         code in the row collection code, so that the completion happens before 
1928         the CollectionChanged event, also better encapsulation.
1929         [Fixes bug #471987]
1930
1931 2009-02-02  Ivan N. Zlatev  <contact@i-nz.net>
1932
1933         * DataGridView.cs: When editing is finished do not remove the editing 
1934         row, because it has already become a real one. Instead add a new one.
1935         [Fixes bug #471754]
1936
1937 2009-02-02  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1938
1939         * TreeView.cs: When drawing the node's image, check that the index
1940         specified by the node is valid for the ImageList.
1941         Fixes #471094.
1942
1943 2009-02-02  Andrés G. Aragoneses  <aaragoneses@novell.com>
1944
1945         * ToolBar.cs: Add new UIAPerformClick method to be called by
1946         UIAutomationWinforms when someone calls Invoke() on the
1947         ToolBarButtonProvider. r: jpobst
1948
1949 2009-02-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1950
1951         * XplatUIX11.cs: Don't send a WM_SHOWWINDOW message when receiving
1952         MapNotify/UnmapNotify events - we are already firing those events in
1953         the proper places, so we avoid this way to send the same message two
1954         times. I'm leaving the handling code in case we could break something
1955         in the future, as this change seems dangerous (but needed).
1956         Fixes #467546.
1957
1958 2009-02-01  Ivan N. Zlatev  <contact@i-nz.net>
1959
1960         * DataGridView.cs: Complete incomplete rows when they are added to 
1961         the grid.
1962         [Fixes bug #471068]
1963
1964 2009-02-01  Ivan N. Zlatev  <contact@i-nz.net>
1965
1966         * DataGridView.cs, DataGridViewColumnCollection.cs: Ensure that the 
1967         binding is cleared prior to setting it to null. Fixes a regression 
1968         causing exceptions when the DataSource is set to null and then set 
1969         again to a data source.
1970
1971 2009-02-01  Ivan N. Zlatev  <contact@i-nz.net>
1972
1973         * DataGridView.cs, DataGridViewImageColumn.cs, DataGridViewCell.cs: 
1974            - Make Image/Bitmap cells work.
1975            - Handle images with size greater than the cell.
1976            - Default to MiddleCenter alignment for image cells.
1977         [Fixes bug #471101]
1978
1979 2009-01-30  Ivan N. Zlatev  <contact@i-nz.net>
1980
1981         * UpDownBase.cs: Force Height to PreferredHeight.
1982
1983 2009-01-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1984
1985         * XplatUIX11.cs: We should use utf8 handling clipboard transference
1986         with other x11 applications, and use utf16 when handling clipboard
1987         data in the class library. Update the related points as well.
1988         Fixes #468683.
1989
1990 2009-01-28  Ivan N. Zlatev  <contact@i-nz.net>
1991
1992         * DataGridViewCell.cs: Format strings according to the supplied 
1993         CellStyle.Format.
1994         [Fixes bug #470384]
1995
1996 2009-01-28  Ivan N. Zlatev  <contact@i-nz.net>
1997
1998         * DataGridView.cs: Reset the hover cell if it gets moved due to row(s) 
1999         addition or removal. Fixes multiple crashes in OnMouseMove.
2000
2001 2009-01-27  Ivan N. Zlatev  <contact@i-nz.net>
2002
2003         * DataGridView.cs: Fix a NRE when setting the CurrentCell to null.
2004
2005 2009-01-27  Ivan N. Zlatev  <contact@i-nz.net>
2006
2007         * XplatUIX11.cs: Fire Timer.Tick even if there is no MainForm for the 
2008         current context.
2009         [Fixes bug #469239]
2010
2011 2009-01-26  Andreia Gaita  <avidigal@novell.com>
2012
2013         * WebBrowser.cs: fix initial value of ScrollbarsEnabled, so they
2014         won't be disabled by default.
2015         Fixes #468690
2016
2017 2009-01-26  Ivan N. Zlatev  <contact@i-nz.net>
2018
2019         * DataGridView.cs: Do not clear the rows if we are not databound.
2020
2021 2009-01-26  Ivan N. Zlatev  <contact@i-nz.net>
2022
2023         * DataGridView.cs: Do not be too smart about selecting the first cell 
2024         when the first row is added as this is not what MS does. Fixes the 
2025         failing unit tests.
2026
2027 2009-01-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2028
2029         * TreeNode.cs: NextVisibleNode and PrevVisibleNode properties don't
2030         take into account the fact that OpenTreeNodeEnumerator needs to call
2031         MoveNext/MovePrevious to actually put the passed node as the one
2032         retrieved in Current. This way this property should work as really
2033         expected in .net.
2034         Fixes part of #467225.
2035
2036 2000-01-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2037
2038         * TreeView.cs: When calculating the scrollbars, don't use
2039         TreeNode.Bounds, since it still can have the values of the previous
2040         -and now invalid- layout -which depends on TreeView.skipped_nodes, and
2041         could not have been updated as well-, and use the actual number of
2042         visible number of nodes to compute the height needed to contain all
2043         the nodes. Also reset the value of vbar to 0 when disabled - this way
2044         we make sure that, when re-enabled, it will update the visible area of
2045         the treeview, even if the previous value before disabling it is the
2046         same as now. Finally don't do anything for the vbar.ValueChanged
2047         handler - for the case wheer we manually set the value but don't the
2048         vbar is disabled already.
2049         Fixes part of #467225.
2050
2051 2009-01-23  Jonathan Pobst  <monkey@jpobst.com>
2052
2053         * ToolStrip.cs: Switch from foreach to for, in case the collection
2054         somehow changes while enumerating it.
2055
2056 2009-01-23  Ivan N. Zlatev  <contact@i-nz.net>
2057
2058         * DataGridView.cs, DataGridViewCell.cs: Fix crashes when there is no 
2059         editing control.
2060
2061 2009-01-23  Ivan N. Zlatev  <contact@i-nz.net>
2062
2063         * DataGridView.cs: Fix new row adding/editing in the non-databound 
2064         scenario.
2065
2066 2009-01-21  Mike Gorse  <mgorse@novell.com>
2067
2068         * TrackBar.cs: Make LargeIncrement/Decrement internal so that UIA can
2069           use them.
2070           Added UIAValueParamChangedEvent.
2071
2072 2009-01-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2073
2074         * TreeView.cs: In CollapseAll, set vbar to the maximum value, instead
2075         of trying to set as top node the highest parent of the previous top
2076         node. Moving to the bottom of the TreeView after a call to CollapseAll
2077         is exactly what .net does. This should avoid some nasty issue when
2078         CollapseAll is called and we don't need the vertical scroll bar.
2079
2080 2009-01-21  Mario Carrion <mcarrion@novell.com>
2081
2082         * Form.cs: UIA Support: Internal events added: UIAWindowStateChanged
2083         and UIATopMostChanged.
2084
2085 2009-01-21  Sandy Armstrong  <sanfordarmstrong@gmail.com>
2086
2087         * MenuItem.cs: Add UIACheckChanged, UIARadioCheckChanged,
2088         UIAEnabledChanged, and UIATextChanged events.
2089
2090         * Form.cs: Add UIAMenuChanged event.
2091
2092         * Menu.cs:
2093         * MenuAPI.cs: Note which internal APIs are being used by UIA.
2094
2095 2009-01-21  Neville Gao  <nevillegao@gmail.com>
2096
2097         * ToolBar.cs: Control enabled to support accessibility.
2098         [Fixes Bug #455950]
2099
2100 2009-01-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2101
2102         * TreeView.cs: When handling mouse up event, check whether
2103         highlighted_node is null or not - usually it should be non-null
2104         alwaays, since the mouse down handler sets it, but some externa
2105         operations, such TreeNodeCollection.Clear, could set it to null.
2106         Fixes #438650.
2107
2108 2009-01-19  Ivan N. Zlatev  <contact@i-nz.net>
2109
2110         * ThemeWin32Classic.cs: Draw the menu item shortcut even if the menu 
2111         item is disabled.
2112
2113 2009-01-19  Ivan N. Zlatev  <contact@i-nz.net>
2114
2115         * MenuAPI.cs: Do not handle shortcuts if the menu item is disabled.
2116         [Fixes bug #467285]
2117
2118 2009-01-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2119
2120         * MonthCalendar.cs: When handling the selection changes using the
2121         mouse, don't set SelectionRange if the selection range didn't actually
2122         change. This matters because, even if we set the range to the same
2123         previous range, an extra DateChanged event is fired. Just to be clear:
2124         SelectionRage property doesn't check whether the new value is
2125         different to the previous one (by ref equals doesn't work here).
2126         Fixes other bits of #364914.
2127
2128 2009-01-19  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
2129
2130         * MonthCalendar.cs: Remove the extra OnDateChanged call when handling
2131         selection using the keyboard, since we are already firing this event
2132         when setting SelectionRange. Also don't set SelectionRange if the
2133         previous and the new value are the same (the property, just as .net
2134         does, doesn't check whether the previous value and the new one are the
2135         same). This saves us from firing OnDateChanged event if the selection
2136         range didn't change actually.
2137         Fixes the remaining bits of #364914.
2138
2139 2009-01-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2140
2141         * ListBox.cs: When removing an item and the last item is selected,
2142         remove it from the selection, and if selection mode is One try to
2143         select the new last item.
2144         Fixes #465422.
2145
2146 2009-01-16  Mike Gorse  <mgorse@novell.com>
2147
2148         * Splitter.cs: Make MaxSize internal so that UIA code can use it.
2149
2150 2009-01-16  Mario Carrion <mcarrion@novell.com>
2151
2152         * ColumnHeader.cs: UIA Support: raising internal event UIATextChanged 
2153         when changing Text. 
2154
2155 2009-01-16  Carlos Alberto Cortez <calberto.cortez@ggmail.com>
2156
2157         * X11Structs.cs:
2158         * XplatUIX11.cs: Properly encode/decode the unicode strings we
2159         store/retrieve in the Clipboard. Also, since we try to convert the
2160         data to different formats, separate the source and the result of
2161         it, so we can always fallback to the original and don't mix wrong
2162         conversions.
2163
2164 2009-01-16  Mike Gorse  <mgorse@novell.com>
2165
2166         * TextControl.cs: Add UIASelectionChanged event.
2167
2168 2009-01-16  Ivan N. Zlatev  <contact@i-nz.net>
2169
2170         * DataGridView.cs: Forward the first key events to the editing control.
2171         [Fixes bug #457307]
2172
2173 2009-01-14  Andrés G. Aragoneses  <aaragoneses@novell.com>
2174
2175         * Application.cs: Oops, launch the copied handler of PreRun instead of
2176         the global one (gendarme would bark otherwise). (Improving r123375)
2177
2178 2009-01-14  Andrés G. Aragoneses  <aaragoneses@novell.com>
2179
2180         * XplatUI.cs:
2181         * Application.cs: Move the PreRun event fire to the end of the XplatUI
2182         static ctor (we don't move the PreRun event to this class because its
2183         usage would cause the call to the static ctor). This way we can get
2184         a11y support for dialogs that run without App.Run.
2185
2186 2009-01-14  Andrés G. Aragoneses  <aaragoneses@novell.com>
2187
2188         * ListView.cs: New internal property to know the inner array's length of
2189         the location of items, in order to avoid a try-catch strategy for the
2190         case when this array has not been resized yet (for reference, look at
2191         r123288). r: jpobst
2192
2193 2009-01-13  Andrés G. Aragoneses  <aaragoneses@novell.com>
2194
2195         * Application.cs: Simplify UIA initialization, reducing it from 4 to 1
2196         reflection calls. This requires UIAutomationWinforms r123213.
2197
2198 2009-01-12  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
2199
2200         * MonthCalendar.cs: Detect selection changes in MouseDown/MouseMove
2201         handlers and fire the DateSelected event until MouseUp is reached,
2202         like .net does, instead of firing it for each mouse event.
2203         Fixes part of #364914.
2204
2205 2009-01-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2206
2207         * TreeView.cs: When the selection gets canceled using the BeforeSelect
2208         event, invalidate the previous highlighted_node bounds, to show the
2209         user that the item was *not* selected.
2210         Fixes #464191.
2211
2212 2009-01-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2213
2214         * ComboBox.cs: Separate some scroll logic: setting SelectedIndex, as
2215         well as -in DropDown and Simple modes- writing in the textbox should
2216         try to set the requested item as the top one, but navigating with the
2217         keyboard and handling mouse selection don't need that behaviour. Also,
2218         when resetting selected_index handling key press events, reset
2219         ComboListBox.HighlightIndex. 
2220         Fixes the remaining bits of #464188.
2221
2222 2009-01-11  Ivan N. Zlatev  <contact@i-nz.net>
2223
2224         * DataGridView.cs: Fix crashes when shortcut keys are pressed, but 
2225         there are no cells:
2226            - CurrentCellAddress should be -1, -1 and not 0, 0.
2227            - Be tolerant and fall back to clearing the current cell if either 
2228            column or row is -1 in MoveCurrentCell.
2229            - Misc. more -1 checks.
2230
2231 2009-01-11  Ivan N. Zlatev  <contact@i-nz.net>
2232
2233         * DataGridView.cs: Preserve the column index. Fixes a regression 
2234         introduced by the data binding position tracking code.
2235
2236 2009-01-11  Ivan N. Zlatev  <contact@i-nz.net>
2237
2238         * DataGridView.cs: If the bottom of the row matches the client height 
2239         do not regard the row as partially visible. Fixes the weird scrolling 
2240         when there is no scrollbar.
2241
2242 2009-01-11  Ivan N. Zlatev  <contact@i-nz.net>
2243
2244         * DataGridViewComboBoxCell.cs: Implement/Fix the data binding.
2245
2246 2009-01-09  Mario Carrion  <mcarrion@novell.com>
2247
2248         * MessageBox.cs: Fixed internal UIAIconRectangle property.
2249
2250 2009-01-09  Ivan N. Zlatev  <contact@i-nz.net>
2251
2252         * DataGridViewCheckBoxCell.cs: Respect the ReadOnly state of the Cell.
2253
2254 2009-01-09  Ivan N. Zlatev  <contact@i-nz.net>
2255
2256         * DataGridView.cs: Track the Position in the CurrencyManager.
2257
2258 2009-01-09  Ivan N. Zlatev  <contact@i-nz.net>
2259
2260         * DataGridView.cs: Implement data-bound new item editing/addition.
2261         * DataGridViewRowCollection.cs: Make it possible for us to internally 
2262         remove the edit row.
2263         [Fixes bugs #457107, #457308, #325240]
2264
2265 2009-01-09  Ivan N. Zlatev  <contact@i-nz.net>
2266
2267         * CurrencyManager.cs: Even if Position is set to a greater value than the 
2268         list count reset it to position of the last item.
2269
2270 2009-01-09  Ivan N. Zlatev  <contact@i-nz.net>
2271
2272         * BindingSource.cs: AddNew doesn't set index/add_pending for IBindingList. 
2273         Fix that in order to make CancelNew to work.
2274
2275 2009-01-09  Ivan N. Zlatev  <contact@i-nz.net>
2276
2277         * BindingSource.cs: When adding a new item try to delegate to the internal 
2278         list first before throwing an exception.
2279
2280 2009-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2281
2282         * ComboBox.cs: When setting the text and adjusting the top_item, do it
2283         *only* if the current item is *not* visible already.
2284         Fixes part of #464188.
2285
2286 2009-01-09  Ivan N. Zlatev  <contact@i-nz.net>
2287
2288         * DataGridView.cs: Requesting the CurrencyManager for the first time can 
2289         lead to unexpected OnBindingContextChanged calls and recursive rebinding. 
2290         Fix that.
2291         [Fixes bug #464493]
2292
2293 2009-01-08  Brad Taylor  <brad@getcoded.net>
2294
2295         * ComboBox.cs: Expose a few private fields as internal UIA properties.
2296
2297 2009-01-07  Mario Carrion <mcarrion@novell.com>
2298         
2299         * DataGrid.cs: CWL removed.
2300
2301 2009-01-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2302
2303         * RadioButton.cs: When setting Checked, we should first update the
2304         check state of the current RadioButton, as well as invalidating it,
2305         and after that actually update the siblings. This is done to match
2306         .net.
2307         Fixes the remaining bits of #463028.
2308
2309 2009-01-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2310
2311         * RadioButton.cs: Setting Checked to false should set TabStop to stop
2312         as well. Also, when we get the focus and no other RadioButton is
2313         selected in the parent control, we should mark ourselves as Checked.
2314         Fixes part of #463028.
2315
2316 2009-01-05  Mario Carrion <mcarrion@novell.com>
2317
2318         * DataGrid.cs: UIA suppport. internal events: 
2319         UIAGridCellChanged, UIAColumnsHeadersVisibleChanged, 
2320         UIASelectionChanged, UIACollectionChanged. Internal properties: 
2321         UIARowHeight, UIACellsArea, UIACaptionArea, 
2322         UIAColumnHeadersArea, UIASelectedRows, UIACurrentTableStyle, 
2323         UIAVScrollBar and UIAHScrollBar.
2324
2325 2009-01-05  Jonathan Pobst  <monkey@jpobst.com>
2326
2327         * ToolStripSplitStackLayout.cs: Enable the overflow button if any
2328         of the buttons are set to Overflow = Always.
2329         [Fixes bug #463013]
2330
2331 2009-01-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2332
2333         * BindingNavigator.cs: Properly enable/disable the toolstrip buttons,
2334         based on whether the binding source is availble or not. Fixes #463008.
2335
2336 2009-01-03  Ivan N. Zlatev  <contact@i-nz.net>
2337
2338         * DataGridViewCell.cs: We should return a value even if we are not bound 
2339         to a DataGridView.
2340
2341 2009-01-02  Ivan N. Zlatev  <contact@i-nz.net>
2342
2343         * CurrencyManager.cs, DataGrid.cs: 
2344            - Rename CanAddRows to AllowNew. The CurrencyManager has no 
2345            concept of "rows".
2346            - Add two more internal properties AllowRemove and AllowEdit.
2347         * DataGridView.cs: Refactor in a data-bound situation AllowUserToAddRows, 
2348         AllowUserToDeleteRows and cell ReadOnly state to be also checked against the 
2349         CurrencyManager data source.
2350
2351 2009-01-02  Ivan N. Zlatev  <contact@i-nz.net>
2352
2353         * DataGridView.cs: Fix crashes caused by assigning negative values to 
2354         ScrollBar.LargeIncrement when the ClientSize.Width/Height is less than 
2355         the column/row heights/widths.
2356         [Fixes bug #462684]
2357
2358 2009-01-02  Ivan N. Zlatev  <contact@i-nz.net>
2359
2360         * DataGridView.cs: Non-autogenerated columns that have a data property 
2361         set that exists in the current datasource should be set to be data-bound.
2362
2363 2009-01-02  Ivan N. Zlatev  <contact@i-nz.net>
2364
2365         * DataGridView.cs: Fix column sorting for columns containing null 
2366         values. A "null" value is not always "null" (e.g could be String.Empty) 
2367         and thus parsing numeric types throwed an exception for "null" values.
2368
2369 2009-01-02  Ivan N. Zlatev  <contact@i-nz.net>
2370
2371         * DataGridView.cs: Detach the editing control when the edit is 
2372         finished.
2373
2374 2009-01-02  Ivan N. Zlatev  <contact@i-nz.net>
2375
2376         * DataGridView.cs: Multiple fixes to handle last column/row removal 
2377         and cell movement after that instead of throwing exceptions.
2378
2379 2009-01-02  Ivan N. Zlatev  <contact@i-nz.net>
2380
2381         * DataGridViewCellCollection.cs: When cells are removed the column 
2382         indices become invalid if the cell is not the last one and have to 
2383         be refreshed.
2384
2385 2009-01-01  Ivan N. Zlatev  <contact@i-nz.net>
2386
2387         * DataGridView.cs: Return false in CommitEdit if there was an error.
2388
2389 2009-01-01  Ivan N. Zlatev  <contact@i-nz.net>
2390
2391         * DataGridView.cs: Remove a leftover Console.WriteLine.
2392
2393 2009-01-01  Ivan N. Zlatev  <contact@i-nz.net>
2394
2395         * DataGridViewRow.cs: Access the indexer of the data manager directly 
2396         instead of the internal list.
2397
2398 2009-01-01  Ivan N. Zlatev  <contact@i-nz.net>
2399
2400         * DataGridViewCell.cs, DataGridView.cs, DataGridViewCheckBoxCell.cs: 
2401         Rewrite the value getting, setting, parsing, formatting logic:
2402            - If data-bound value get/set should actually get and set from the 
2403              data source.
2404            - Make proper usage of TypeConverters for value parsing/formatting.
2405            - Raise DataError if setting the new value fails.
2406            - Get rid off the internal valueType field and get/set the ValueType 
2407            property instead.
2408         [Fixes bug #462051]
2409
2410 2009-01-01  Ivan N. Zlatev  <contact@i-nz.net>
2411
2412         * DataGridView.cs: Rewrite the DataBinding layer:
2413            - Get rid off all BindingSource/IBindingList/DataSet/DataTable 
2414            specific code.
2415            - Get rid off the per DataSource type column autogeneration code.
2416            - Use the CurrencyManager for everything that is DataBinding related.
2417
2418 2009-01-01  Ivan N. Zlatev  <contact@i-nz.net>
2419
2420         * CurrencyManager.cs: Do not fire duplicate ListChanged events.
2421
2422 2008-12-31  Ivan N. Zlatev  <contact@i-nz.net>
2423
2424         * DataGridView.cs, DataGridViewRow.cs: Add a new internal property 
2425         DataManager to fetch the CurrencyManager for the DataGridView and to 
2426         spare this logic for the other components to follow.
2427
2428 2008-12-31  Mario Carrion  <mcarrion@novell.com>
2429
2430         * MessageBox.cs: UIA support: new properties: UIAMessage, 
2431         UIAMessageRectangle and UIAIconRectangle.
2432
2433 2008-12-31  Sandy Armstrong  <sanfordarmstrong@gmail.com>
2434
2435         * FileDialog.cs: Add PopupButtonPanel.PopupButton.PerformClick method
2436         and DirComboBox.DirComboBoxItem.ToString override for UIA support.
2437
2438 2008-12-31  Ivan N. Zlatev  <contact@i-nz.net>
2439
2440         * DataGridView.cs: Do not autogenerate duplicate column for a 
2441         data member that has already problematically been assigned one.
2442         [Fixes bug #457305]
2443
2444 2008-12-30  Jonathan Pobst  <monkey@jpobst.com>
2445
2446         * ProfessionalColorTable.cs: Better detection of user's theme.
2447         [Fixes bug #462766]
2448
2449 2008-12-30  Ivan N. Zlatev  <contact@i-nz.net>
2450
2451         * DataGridView.cs: In the case where there are no autogenerated 
2452         columns and the user adds columns problematically we must generate 
2453         the rows after the very first column is added.
2454
2455 2008-12-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2456
2457         * DateTimePicker.cs: When increasing/decreasing the value of month
2458         with ShowUpDown set to true, moving from december to january, and
2459         moving from january to december should adjust the year to the next and
2460         the previous year, respectively.
2461         Fixes the remaining bits of #459674.
2462
2463 2008-12-30  Ivan N. Zlatev  <contact@i-nz.net>
2464
2465         * DataGridView.cs: If a new cell is selected edit mode should be 
2466         immediately enabled only if EditOnEnter is set. Whether the mouse 
2467         or not was used to select the cell is irrelevant.
2468
2469 2008-12-29  Ivan N. Zlatev  <contact@i-nz.net>
2470
2471         * DataGridView.cs: Remove a bogus ReBind call, which was causing 
2472         recursive rebinding.
2473
2474 2008-12-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2475
2476         * DateTimePicker.cs: Handle the "MMMM" month format.
2477         Fixes #459674.
2478
2479 2008-12-23  Ivan N. Zlatev  <contact@i-nz.net>
2480
2481         * DataGridView.cs: 
2482            - Make ReBind private and refactor various calls to call ReBind 
2483            instead of ClearBinding/DoBinding
2484            - Rebind when the column collection changes
2485         * DataGridViewColumnCollection.cs: 
2486            - Leave the rebinding on change to be handled by the DataGridView.
2487
2488 2008-12-23  Jonathan Pobst  <monkey@jpobst.com>
2489
2490         * DataGridView.cs: Add a ReBind convenience method.
2491         * DataGridViewColumnCollection.cs: Rebind when a column is added.
2492         [Fixes bug #462019]
2493
2494 2008-12-23  Neville Gao  <nevillegao@gmail.com>
2495
2496         * StatusBar.cs: Modified argument variable.
2497         * SplitContainer.cs: Control enabled to support accessibility.
2498         [Fixes Bug #455950]
2499
2500 2008-12-22  Jonathan Pobst  <monkey@jpobst.com>
2501
2502         * ToolStripMenuItem.cs: Guard against an NRE.
2503         [Fixes bug #457110]
2504
2505 2008-12-22  Mario Carrion  <mcarrion@novell.com>
2506
2507         * Control.cs: AccessibleXXXX properties don't return 
2508         AccessibleObject.XXXX, instead a local referece is returned.
2509
2510 2008-12-22  Neville Gao  <nevillegao@gmail.com>
2511
2512         * PrintPreviewControl.cs: Added internal properties to support
2513         accessibility.
2514         [Fixes Bug #459699]
2515
2516 2008-12-19  Mario Carrion  <mcarrion@novell.com>
2517
2518         * Control.cs: Reverted r121561. 
2519
2520 2008-12-19  Andrés G. Aragoneses  <aaragoneses@novell.com>
2521
2522         * X11DesktopColors.cs: Since r121873 we don't need gtk a11y checks here,
2523         it has been moved to the bridge.
2524
2525 2008-12-18  Brad Taylor  <brad@getcoded.net>
2526
2527         * DateTimePicker.cs: Add a few UIA specific events, and a couple
2528         internal methods useful for UIA.
2529
2530 2008-12-18  Mario Carrion <mcarrion@novell.com>
2531
2532         * ListBox.cs: Fixed GetItemRectangle when MultiColumn is true.
2533         [Fixes Bug #455752]
2534
2535 2008-12-17  Mike Gorse  <mgorse@novell.com>
2536
2537         * ListView.cs, ListViewItem.cs: Send OnUIAFocusedItemChanged if an
2538           item's Focused property is set.
2539
2540 2008-12-17  Sandy Armstrong  <sanfordarmstrong@gmail.com>
2541
2542         * TreeView.cs:
2543         * TreeNode.cs:
2544         * TreeNodeCollection.cs: Add events for UIA support:
2545         UIACheckBoxesChanged, UIALabelEditChanged, UIANodeTextChanged, and
2546         UIACollectionChanged.
2547
2548 2008-12-17  Bill Holmes  <billholmes54@gmail.com>
2549
2550         * ListViewItem.cs (ListViewSubItem.ctor): Initalizing the 
2551           SubItemStyle member field. 
2552
2553         Contributed under MIT/X11 license.
2554
2555 2008-12-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2556
2557         * ListBox.cs: In MultiColumn mode don't use top_index to calculate the
2558         y coord, since it's useless in this case, and we need to rely only on
2559         the number of rows and ItemHeight to compute this value.
2560         Fixes part of #257471.
2561
2562 2008-12-15  Mike Gorse  <mgorse@novell.com>
2563
2564         * StatusBar.cs: Send OnUIACollectionChanged in Remove().
2565
2566 2008-12-15  Mario Carrion  <mcarrion@novell.com>
2567
2568         * Control.cs: Accessibility properties instantiate AccessibilityObject when
2569         needed.
2570         [Fixes Bug #459223]
2571
2572 2008-12-15  Brad Taylor  <brad@getcoded.net>
2573
2574         * ToolStripItem.cs: Add a UIA specific event for listening for when a
2575         ToolStripItem becomes selected or deselected.
2576
2577 2008-12-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2578
2579         * MonthCalendar.cs: Select the date in MouseDown, not in MouseUp, as
2580         .net does. Use the date in the point of the mouse move coords as the
2581         new range as well, if the left button of the mouse is being pressed.
2582         Fixes #364914.
2583
2584 2008-12-12  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
2585
2586         * MonthCalendar.cs: When modifying either AnnuallyBoldedDates,
2587         MonthlyBoldedDates or BoldedDates call UpdateBoldedDates, to
2588         effectively repaint the control.
2589         Fixes the remaining bits of #417961.
2590
2591 2008-12-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2592
2593         * MonthCalendar.cs: When setting MaxDate/MinDate, adjust the selected
2594         range to contain only dates within the new possible range.
2595         Fixes part of #417961.
2596
2597 2008-12-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2598
2599         * MaskedTextBox.cs: MaskedTextService.Replace doesn't expect the
2600         length of the text, but the end position, so we need to substract 1 to
2601         have a valid value. Also, in the same InputText method, don't use
2602         SelectionLength as the length of the text, since the selected text
2603         could actually be empty, but we need to set the value anyway.
2604         Fixes #457370.
2605
2606 2008-12-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2607
2608         * TextBox.cs: Don't do any auto complete task if the custom source is
2609         null or empty. Also avoid duplication of code.
2610         Fixes #457743.
2611
2612 2008-12-09  Ivan N. Zlatev  <contact@i-nz.net>
2613
2614         * DataGridView.cs: Refresh column sizes when new rows are added.
2615         [Fixes bug #457050]
2616
2617 2008-12-09  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
2618         * RichTextBox.cs: When parsing the contents of a rtf file, don't call
2619         Split to create a line - we are already doing this, by _adding_ a new
2620         one when rtf_cursor_x is 0 (this field gets this value just after we
2621         receive the newline param as true). This avoids having a proportional number
2622         of empty lines in the end of the rich text box.
2623         Fixes #396664.
2624
2625 2008-12-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2626
2627         * RichTextBox.cs: When saving the contents as a plain text, don't add
2628         a new line for every Line structure, since the data in Document
2629         already contains the new line characters. This avoids duplicated new
2630         lines using the Save methods.
2631         Fixes #445618.
2632
2633 2008-12-09  Sandy Armstrong  <sanfordarmstrong@gmail.com>
2634
2635         * TreeView.cs: Expose ScrollBars as internal properties, for use by UIA
2636         framework.  Fixes bug #457678.
2637
2638 2008-12-08  Ivan N. Zlatev  <contact@i-nz.net>
2639
2640         * DataGridViewRow.cs: Prevent an exception on a not yet databound grid, 
2641         where datasource is null.
2642         [Fixes exception reported in bug 441240]
2643
2644 2008-12-08  Ivan N. Zlatev  <contact@i-nz.net>
2645
2646         * DataGridView.cs: EndEdit validation fixes.
2647
2648 2008-12-08  Ivan N. Zlatev  <contact@i-nz.net>
2649
2650         * DataGridView.cs: This is the cool patch that adds support for 
2651         actually updating the data in the databinding backend after editing. 
2652         With bonus firing and handling the DataError event.
2653
2654 2008-12-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2655
2656         * Line.cs: When calculating the text tags's Shift value, store it as
2657         pixels instead of points. This way we can actually handle different
2658         fonts in the same RichTextBox, as well as the right size of the caret.
2659         Fixes part of #351938.
2660
2661 2008-12-08  Ivan N. Zlatev  <contact@i-nz.net>
2662
2663         * DataGridViewCheckBoxCell.cs: Fix to make it work. Wrong value was 
2664         casted to CheckState causing InvalidCastExceptions.
2665
2666 2008-12-08  Ivan N. Zlatev  <contact@i-nz.net>
2667
2668         * DataGridView.cs: Fix the DataGridViewEditMode.EditOnEnter behavior 
2669         to not depend on the item being clicked.
2670
2671 2008-12-08  Ivan N. Zlatev  <contact@i-nz.net>
2672
2673         * DataGridView.cs: Implement NotifyCurrentCellDirty, so that it no 
2674         longer throws a NotImplementedException.
2675
2676 2008-12-08  Ivan N. Zlatev  <contact@i-nz.net>
2677
2678         * DataGridView.cs: Set EditingControlFormattedValue when preparing an 
2679         IDataGridViewEditingControl for editing.
2680
2681 2008-12-08  Ivan N. Zlatev  <contact@i-nz.net>
2682
2683         * DataGridViewComboBoxCell.cs: Implement data binding support.
2684
2685 2008-12-08  Ivan N. Zlatev  <contact@i-nz.net>
2686
2687         * DataGridView.cs: Use the CurrencyManager to update the data source 
2688         binding position instead of casting the data sourcde to BindingSource.
2689         This enables position updating for other type of data sources.
2690
2691 2008-12-08  Ivan N. Zlatev  <contact@i-nz.net>
2692
2693         * ComboBox.cs: Update the SelectedIndex before updating the Text 
2694         in OnDisplayMemberChanged.
2695
2696 2008-12-07  Ivan N. Zlatev  <contact@i-nz.net>
2697
2698         * DataGridView.cs: Fix our support for IDataGridViewEditingControl.
2699         [Fixes bug #457112]
2700
2701 2008-12-06  Ivan N. Zlatev  <contact@i-nz.net>
2702
2703         * DataGridView.cs: Sorting fixes:
2704            - Be strict when sorting is enabled.
2705            - If there is a data source delegate the sorting request.
2706
2707 2008-12-06  Ivan N. Zlatev  <contact@i-nz.net>
2708
2709         * Binding.cs: When converting the data also try with the destination 
2710         type typeconverter. This indirectly adds support for Nullable types 
2711         in our databinding layer.
2712
2713 2008-12-06  Ivan N. Zlatev  <contact@i-nz.net>
2714
2715         * DataGridView.cs: When cell editing is finished focus back the 
2716         DataGridView. Fixes keyboard navigation post-editing.
2717
2718 2008-12-06  Ivan N. Zlatev  <contact@i-nz.net>
2719
2720         * DataGridView.cs: Fix the cell editing by delaying the currentCell 
2721         setting to after EndEdit is called for the old cell.
2722
2723 2008-12-06  Ivan N. Zlatev  <contact@i-nz.net>
2724
2725         * BindingSource.cs: Reset the bindings. Fixes a NotWorking test.
2726
2727 2008-12-06  Ivan N. Zlatev  <contact@i-nz.net>
2728
2729         * XplatUIX11.cs: Send WM_HELP only to the focused window.
2730
2731 2008-12-05  Ivan N. Zlatev  <contact@i-nz.net>
2732
2733         * CurrencyManager.cs: Fix exceptions when resetting the data source 
2734         for the same time (e.g. in ComboBox): 
2735            - Do not set the list position if we are still transferring data
2736            - When resetting the list firstly push the data then update the 
2737            binding.
2738         * Binding.cs: Check BindingManager.Position == -1 instead of 
2739         BindingManager.Current == null in order to avoid unexpected 
2740         exceptions.
2741
2742 2008-12-05  Brad Taylor  <brad@getcoded.net>
2743
2744         * MonthCalendar.cs: Add UIA specific events so that we can know when
2745         the selection changes, and when MaxSelectedCount changes.
2746
2747 2008-12-05  Ivan N. Zlatev  <contact@i-nz.net>
2748
2749         * DataGridView.cs: Cleanup rows_displayed out of OnPaint. It's not 
2750         used for anything.
2751
2752 2008-12-05  Ivan N. Zlatev  <contact@i-nz.net>
2753
2754         * DataGridView.cs: Fix scrolling and selection of cells/rows prior
2755         to the control being drawn for the first time by:
2756            - Implement DisplayedRowsCount to not rely on the control being
2757            already painted. Also added support for the partial row flag.
2758            - Fix scrolling to take into account partial rows and scroll to
2759            them.
2760         [Fixes bug #456527]
2761
2762 2008-12-05  Ivan N. Zlatev  <contact@i-nz.net>
2763
2764         * DataGridView.cs: Do not reset the CurrentCell when the handle is
2765         created if the user has already set it.
2766
2767 2008-12-05  Ivan N. Zlatev  <contact@i-nz.net>
2768
2769         * DataGridView.cs: Fix CurrentCell to actually select the cell.
2770
2771 2008-12-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2772
2773         * XplatUIX11.cs: Add support to RichTextFormat by reading it as ascii
2774         text and then let the underneath users of IDataObject interpret and
2775         parse by themselves. 
2776         Fixes #439251.
2777
2778 2008-12-01  Ivan N. Zlatev  <contact@i-nz.net>
2779
2780         * DataGridView.cs: Fix my previous commit to actually update what it 
2781         was supposed to.
2782
2783 2008-12-01  Ivan N. Zlatev  <contact@i-nz.net>
2784
2785         * DataGridView.cs: Ensure that when a row is removed the all the 
2786         current row/column/cell get updated. Fixes multiple exceptions.
2787
2788 2008-12-01  Ivan N. Zlatev  <contact@i-nz.net>
2789
2790         * DataGridView.cs: Fix scrolling to the current cell when key navigation 
2791         is used.
2792         [Fixes bug #443560]
2793
2794 2008-12-01  Ivan N. Zlatev  <contact@i-nz.net>
2795
2796         * DataGridView.cs, DataGridViewCell.cs: Fire CellStateChanged events.
2797         * DataGridViewCell.cs: Set the cell as selected prior to setting the 
2798         new state.
2799         [Fixes issue 1 in bug #443560]
2800
2801 2008-12-01  Ivan N. Zlatev  <contact@i-nz.net>
2802
2803         * DataGridView.cs: Invalidate after the current row/column seletion 
2804         chagnes.
2805         [Fixes bug #438434]
2806
2807 2008-12-01  Ivan N. Zlatev  <contact@i-nz.net>
2808
2809         * DataGridView.cs: Refresh the data if the data list is reset, etc.
2810
2811 2008-12-01  Ivan N. Zlatev  <contact@i-nz.net>
2812
2813         * DataGridView.cs: Handle datasource state changes:
2814            - IBindingList - list changes
2815            - BindingSource - list changed and datasource changes
2816
2817 2008-11-30  Ivan N. Zlatev  <contact@i-nz.net>
2818
2819         * DataGridView.cs: Select the first cell when databound. 
2820         Visually select when CurrentCell is set.
2821
2822 2008-11-30  Ivan N. Zlatev  <contact@i-nz.net>
2823
2824         * DataGridView.cs: Set the current cell before raising CellClick.
2825
2826 2008-11-30  Ivan N. Zlatev  <contact@i-nz.net>
2827
2828         * DataGridView.cs: Cleanup MoveCurrentCell to not fire any CellEnter, 
2829         CellLeave events as this is already done in SetCurrentCellAddressCore.
2830
2831 2008-11-30  Ivan N. Zlatev  <contact@i-nz.net>
2832
2833         * DataGridView.cs: Set the minimum size for the columns to be the 
2834         width of their header, so that the columns don't get squashed 
2835         all together.
2836
2837 2008-11-30  Ivan N. Zlatev  <contact@i-nz.net>
2838
2839         * DataGridView.cs: After the data is bound PerformLayout, so that 
2840         the columns get autosized.
2841
2842 2008-11-30  Ivan N. Zlatev  <contact@i-nz.net>
2843
2844         * DataGridView.cs: Move all currentCell setting code into 
2845         one central place - SetCurrentCellAddressCore. That way the 
2846         current cell is properly updated when programatically set.
2847         Fire RowEnter/Leave events.
2848
2849 2008-11-30  Ivan N. Zlatev  <contact@i-nz.net>
2850
2851         * DataGridView.cs: Update the CurrencyManager.Position, so that 
2852         when a BindingSource is used BindingSource.Current will be correct.
2853
2854 2008-11-30  Ivan N. Zlatev  <contact@i-nz.net>
2855
2856         * GroupBoxRenderer.cs: Fix when VisualStyles disabled:
2857            - No caption text is drawn because Color.Empty is used.
2858            - Fix top and height off by 1.
2859
2860 2008-11-30  Ivan N. Zlatev  <contact@i-nz.net>
2861
2862         * DataGridViewRow.cs: Implement DataBoundItem.
2863
2864 2008-11-30  Ivan N. Zlatev  <contact@i-nz.net>
2865
2866         * BindingSource.cs: Return null for Current if there is no data present.
2867
2868 2008-11-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2869
2870         * MenuAPI.cs: Add a Menu.SelectedItem null check when navigating the
2871         menus using the arrow keys. Also when handling the left arrow key, don't 
2872         assign the current menu to the parent one, if the parent is null.
2873         Fixes #446392.
2874
2875 2008-11-24  Everaldo Canuto  <ecanuto@novell.com>
2876
2877         * PrintPreviewDialog.cs: Fix toolbar size, height must be 26. Fixes bug
2878         #413501.
2879
2880 2008-11-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2881
2882         * Scrollbar.cs:
2883         * ScrollableControl.cs: Simplify the code to manually set the size of
2884         the thum area, avoiding duplication of code, and also preserving the
2885         right value for different code paths - this can happen when size
2886         changes are made to the scrollbar after setting LargeChange, Maximum
2887         or related properties for the ScrollBar.
2888
2889 2008-11-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2890
2891         * ScrollableControl.cs: When scrolling, don't invalidate the entire
2892         area, and call to XplatUIX11.ScrollWindow instead. This is exactly
2893         what .Net does: copy the visible area, and only invalidate the part of
2894         the area that wasn't visible before scrolling.
2895         Fixes #441738.
2896
2897 2008-11-24  Jonathan Pobst  <monkey@jpobst.com>
2898
2899         * DataGridView.cs: Listen for a DataTable's TableCleared event so we
2900         can clear ourselves when it is raised, we don't have a newrowindex
2901         if we don't have any columns.
2902         * DataGridViewRowCollection.cs: Ensure we always delete all the rows,
2903         re-index after each delete so the NewRow will have the correct index.
2904         [Fixes bug #448005]
2905
2906 2008-11-24  Jonathan Pobst  <monkey@jpobst.com>
2907
2908         * Form.cs: Don't change min/max size if it is empty.
2909         [Fixes bug #447873]
2910
2911 2008-11-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2912
2913         * ScrollBar.cs:
2914         * ScrollableControl.cs: When the manual thumb size is used, the
2915         maximum allowed value should depend on that thumb size, instead of
2916         LargeChange (using the maximum - LargeChange + 1 value). But
2917         LargeChange should be used normally when incrementing/decrementing.
2918         Fixes the remaining part of #441546.
2919
2920 2008-11-23  Andreia Gaita  <avidigal@novell.com>
2921
2922         * WebBrowser.cs, WebBrowserBase.cs: Delay loading of DocumentStream 
2923         until an about:blank has been loaded (according to spec). Fix 
2924         ScrollbarsEnabled to set when a document is loaded (since we use js 
2925         for it). Fix url so it reflects the current loading document and not 
2926         the previous one. Send StatusChanged events.
2927
2928 2008-11-23  Andreia Gaita  <avidigal@novell.com>
2929
2930         * Application.cs: If a message comes in for an embedded control
2931         (like webbrowser) when we're capturing the keyboard, release the
2932         capture and continue.
2933         [fixes #429462]
2934
2935 2008-11-22  Andreia Gaita  <avidigal@novell.com>
2936
2937         * XplatUI.cs: Only use PlatformID.MacOSX enum when not building on VS
2938
2939 2008-11-21  Andreia Gaita  <avidigal@novell.com>
2940
2941         * WebBrowser.cs, HtmlDocument.cs: Fixes for #428172
2942         
2943 2008-11-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2944
2945         * ScrollBar.cs:
2946         * ScrollableControl.cs: Set manually the thumb size for the
2947         ScrollableControl scrollbars, so any further changes to the underneath
2948         scrollbars respect the original size.
2949         Fixes part of #441546.
2950
2951 2008-11-21  Geoff Norton  <gnorton@novell.com>
2952
2953         * XplatUI.cs: Ensure that we can run on .net 2.0 with mono 2.2 where
2954         PlatformID.MacOSX now exists.
2955
2956 2008-11-20  Jonathan Pobst  <monkey@jpobst.com>
2957
2958         * TextBoxBase.cs: Provide a default implementation for ChangeBackColor.
2959         Having something internal abstract isn't very nice for people who want
2960         to inherit from this class.
2961
2962 2008-11-20  Jonathan Pobst  <monkey@jpobst.com>
2963
2964         * ToolStripItem.cs: Don't crash if ImageIndex or ImageKey is set to an
2965         invalid value.  Just return null for the Image, and use the ImageList's
2966         ImageSize for calculations.
2967
2968 2008-11-20  Jonathan Pobst  <monkey@jpobst.com>
2969
2970         * ComboBox.cs: Call HideWindow instead of Hide when closing the dropdown
2971         through DroppedDown so the proper events get called and state gets reset.
2972         [Fixes bug #446805]
2973
2974 2008-11-18  Jonathan Pobst  <monkey@jpobst.com>
2975
2976         * DataGridViewColumnCollection.cs: Make sure we re-index the columns after
2977         the collection is modified.
2978
2979 2008-11-17  Jonathan Pobst  <monkey@jpobst.com>
2980
2981         * DomainUpDown.cs: Remove string cache and reflection optimizations.  They
2982         aren't always correct, and fixing them for every case is not worth the
2983         negligible benefit they provide.
2984         [Fixes bug #445713]
2985
2986 2008-11-17  Jonathan Pobst  <monkey@jpobst.com>
2987
2988         * DataGridView.cs: We should never add actual cells to the RowTemplate.
2989         Internally, use RowTemplateFull to give us a new row with cells.
2990         * DataGridViewColumnCollection.cs: Clear Rows when we clear Columns.
2991         * DataGridViewRowCollection.cs: Use RowTemplateFull.
2992
2993 2008-11-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2994
2995         * XplatUIX11.cs: Forms without borders should be able to change its
2996         size - specially they should be able to be maximized, adding the
2997         respective MotifFunctions.Resize bit when setting window properties as
2998         well as *not* marking the Hwnd as size fixed.
2999         Fixes #444347.
3000
3001 2008-11-12  Jonathan Pobst  <monkey@jpobst.com>
3002
3003         * DataGridViewCellStyle.cs: Allow SelectionBackColor to have
3004         an alpha value.
3005         [Fixes bug #444348]
3006
3007 2008-11-11  Andrés G. Aragoneses  <aaragoneses@novell.com>
3008
3009        * Application.cs: After UIA assembly is successfully loaded,
3010        dump any exception that happens on initialization to stderr.
3011
3012 2008-11-11  Jonathan Pobst  <monkey@jpobst.com>
3013
3014         * DataGridView.cs: Add internal to OnAutoSizeColumnModeChanged.
3015         * DataGridViewColumn.cs: Recalculate columns when AutoSizeMode changes.  Raise
3016         AutoSizeColumnModeChanged.
3017         [Fixes bug #443609]
3018
3019 2008-11-11  Jonathan Pobst  <monkey@jpobst.com>
3020
3021         * DataGridViewRowCollection.cs: Guard against the user deleting the
3022         NewRow.  Add an internal delete so we can still delete it.
3023         * DataGridView.cs: Use the new internal delete when deleting the NewRow.
3024         [Fixes bug #442181]
3025
3026 2008-11-10  Jonathan Pobst  <monkey@jpobst.com>
3027
3028         * TextControl.cs: Add some order of operation to our math so
3029         we don't end up with a negative height for our invalidate rect.
3030         [Fixes bug #381889]
3031
3032 2008-11-10  Jonathan Pobst  <monkey@jpobst.com>
3033
3034         * Control.cs: When our enabled changes, notify our implicit children
3035         controls as well as our regular controls.
3036         [Fixes bug #441523]
3037
3038 2008-11-08  Andreia Gaita <shana@jitted.com> 
3039
3040         * HtmlElement.cs: Small code cleanup
3041
3042 2008-11-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3043
3044         * BindingNavigator.cs: MoveFirstItem should be enabled only if
3045         position is larger than 0, not only different than 0. Also Position
3046         and Count items should be enabled if the BindingSource is non null and
3047         non empty.
3048         Fixes #439961.
3049
3050 2008-11-05  Jonathan Pobst  <monkey@jpobst.com>
3051
3052         * TabControl.cs: Don't raise SelectedIndexChanged until we have
3053         actually modified the tab collection, so TabCount will be correct.
3054         [Fixes bug #441896]
3055
3056 2008-11-05  Sandy Armstrong  <sanfordarmstrong@gmail.com>
3057
3058         * ListViewItem.cs: Mark ListViewSubItem.UIATextChanged event as
3059         NonSerialized to fix serialization of ListViewItem.
3060
3061 2008-11-04  Mike Gorse  <mgorse@novell.com>
3062
3063         * ListView.cs: Call OnUIAFocusedItemChanged after completing the
3064           focus change, and always call in SetFocusedItem.
3065         * ListBox.cs: Add UIAFocusedItemChanged as in ListView.
3066
3067 2008-11-04  Jonathan Pobst  <monkey@jpobst.com>
3068
3069         * ComboBox.cs: Only call OnDrawItem when we are using an OwnerDraw
3070         mode.  Based on a patch by John Mortlock.
3071         [Fixes bug #436790]
3072
3073 2008-11-04  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
3074
3075         * ListView.cs: Use the UsingGroups property where needed, instead of
3076         duplicating the check in other places.
3077
3078 2008-11-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3079
3080         * ListView.cs: When calculating layout, refresh the count of items
3081         belonging to the default item, insteas of doing it only one time. This
3082         was already working fine for icon views, not not for details.
3083         Fixes #438948.
3084
3085 2008-11-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3086
3087         * ListView.cs:
3088         * ListViewItem.cs:
3089         * ThemeWin32Classic.cs: Don't render Tile view if there wasn't a call
3090         to Applicatin.EnableVisualStyles, and use LargeIcon view, as .net
3091         does.
3092         Fixes #437933.
3093
3094 2008-11-03  Sandy Armstrong  <sanfordarmstrong@gmail.com>
3095
3096         * ListView.cs: Wrap call to OnUIAFocusedItemChanged with #if NET_2_0.
3097
3098 2008-11-03  Sandy Armstrong  <sanfordarmstrong@gmail.com>
3099
3100         * ListView.cs: Add internal UIAFocusedItemChanged event.  Fixes bug
3101         #441280, patch by Mike Gorse <mgorse@novell.com>.
3102
3103 2008-11-03  Jonathan Pobst  <monkey@jpobst.com>
3104
3105         * TreeView.cs: When doing ExpandAll, don't scroll to the bottom
3106         if there is no scrollbar.
3107         [Fixes bug #440885]
3108
3109 2008-11-03  Jonathan Pobst  <monkey@jpobst.com>
3110
3111         * ProgressBar.cs, ThemeWin32Classic.cs, ThemeVisualStyles.cs: Commit
3112         patch from Andy Hume that fixes many issues with ProgressBar.
3113         [See bug #440220]
3114
3115 2008-11-03  Jonathan Pobst  <monkey@jpobst.com>
3116
3117         * Form.cs: Don't allow MinimumSize and MaximumSize to conflict.
3118         [Fixes bug #438866]
3119
3120 2008-11-03  Sandy Armstrong  <sanfordarmstrong@gmail.com>
3121
3122         * UpDownBase.cs:
3123         * DomainUpDown.cs:
3124         * NumericUpDown.cs: Internal events added to UpDownBase:
3125         UIAUpButtonClick and UIADownButtonClick.  Patch by Neville Gao
3126         <ngao@novell.com>.
3127
3128 2008-11-03  Sandy Armstrong  <sanfordarmstrong@gmail.com>
3129
3130         * ToolStripLabel.cs: Internal event added: UIAIsLinkChanged.
3131
3132 2008-11-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3133
3134         * ListView.cs:
3135         * ThemeWin32Classic.cs: Don't use groups nor insertion mark in
3136         Application.EnableVisualStyles hasn't been called.
3137         Fixes part of #437933.
3138
3139 2008-10-31  Andreia Gaita  <shana@jitted.com>
3140
3141         * Form.cs (SetVisibleCore): since set_ActiveControl no longer calls focus
3142           if the container is not focused already, we need to specifically set
3143           focus to the first available control, or to the form itself if there
3144           are no controls.
3145
3146 2008-10-31  Andreia Gaita  <shana@jitted.com>
3147
3148         activate message fix: a call to .Show now waits until both WM_SHOWWINDOW and
3149         WM_ACTIVATE have been processed before returning, so it is guaranteed that
3150         once it returns and the form is visible, it is actually on the screen on X11
3151
3152         * ContainerControl.cs: Only send focus to the control if the top container
3153           is already focused. This is so that, when a form is first shown, all
3154           the enter/leave events are done first before any focus stuff comes in.
3155           If a control has no top container, there's an extra check on Control.Focus
3156           to make sure it gets focused in this particular case.
3157
3158         * Control.cs: Force focus if the control is active but did not receive
3159           focus after being set as active.
3160
3161         * MdiClient.cs: Dispose the form when closing
3162
3163         * XplatUIX11.cs: When mapping and unmapping windows, make sure the call
3164           doesn't return until both WM_SHOWWINDOW and WM_ACTIVATE have come in
3165           if the window is a top Form.
3166           Reset all hwnd properties when the window has been destroyed so that
3167           we don't land in any codepaths that might try to do something with it.
3168           Added a bunch of debugging messages. If TRACE is defined, all X calls
3169           are logged through DebugHelper. Set a few missing EntryPoint attributes.
3170
3171 2008-10-29  Mario Carrion <mcarrion@novell.com>
3172
3173         * ListViewItem.cs: Control enabled to support Accessibility:
3174         - Internal events: UIATextChanged, UIASubItemTextChanged.
3175         - Internal event UIATextChanged in ListViewSubItem that triggers
3176         UIASubItemTextChanged.
3177         * ListView.cs: Control enabled to support Accessibility:
3178         - Internal events: UIACheckBoxesChanged, UIAMultiSelectChanged, 
3179         UIAShowGroupsChanged, UIAViewChanged and UIALabelEditChanged.
3180         - Internal event UIACollectionChanged in ColumnHeaderCollection.
3181         - Internal event UIACollectionChanged in ListViewItemCollection.
3182         - Internal properties: UIAHeaderControl, UIAColumns, UIARows, 
3183         UIADefaultListViewGroup, UIAHScrollBar and UIAVScrollBar.
3184         - Internal methods: UIAGetHeaderBounds.
3185
3186 2008-10-25  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
3187
3188         * ScrollableControl.cs: Actually fire the 2.0 Scroll event when we get
3189         the event from the respective scrollbars.
3190         Fixes #436709.
3191
3192 2008-10-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3193
3194         * ComboBox.cs: Use the new CanNavigateAutoCompleteList property of the
3195         textbox to know whether any navigation key will be handled or not. If
3196         not, don't pass the message to the textbox, and use it here instead. 
3197         * TextBox.cs: Define a new CanNavigateAutoCompleteList property -which
3198         is more precise- than the previous AutoCompleteMatches one.
3199         This should the keyboard navigation in ComboBox when using auto
3200         complete modes.
3201
3202 2008-10-24  Jonathan Pobst  <monkey@jpobst.com>
3203
3204         * ComboBox.cs: Fix item height calculation based off Font to match .Net.
3205         [Fixes bug #436730]
3206
3207 2008-10-24  Jonathan Pobst  <monkey@jpobst.com>
3208
3209         * ToolStripDropDownItem.cs: Call OnClick instead of base.OnClick so
3210         overridden methods will get called.
3211         * ToolStripItem.cs: Raise Click before MouseUp.
3212         * ToolStripSplitButton.cs: Fix up some bounding rectangles to take
3213         the item's location into account.
3214         [Fixes bug #437683]
3215
3216 2008-10-24  Neville Gao  <nevillegao@gmail.com>
3217
3218         * NumericUpDown.cs: Control enabled to support accessibility.
3219         [Fiexes bug #438135]
3220
3221 2008-10-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3222
3223         * TextBox.cs: Check that we actually have items no navigate, select
3224         text when pressing enter, as well as handle direction keys only if
3225         mode is different to Suggest or the suggest listbox is visible.
3226
3227 2008-10-23  Andreia Gaita  <shana@jitted.com>
3228
3229         * WebBrowser.cs: Use the new ContentStream property to retrieve
3230           a stream encoded from the document content
3231
3232 2008-10-23  Andreia Gaita  <shana@jitted.com>
3233
3234         * HtmlDocument.cs,
3235           HtmlElement.cs,
3236           HtmlWindow.cs: Fix GetHashcode for null objects
3237
3238 2008-10-22  Andreia Gaita  <shana@jitted.com>
3239
3240         * HtmlDocument.cs,
3241           HtmlElement.cs,
3242           HtmlWindow.cs: Fix equality operators (fixes #428173)
3243
3244 2008-10-21  Jonathan Pobst  <monkey@jpobst.com>
3245
3246         * XplatUIWin32.cs: Apply patch from John Mortlock that ensures
3247         mouse_state gets set during WM_MOUSEMOVE and WM_NCMOUSEMOVE.
3248         [Fixes bug #436772]
3249
3250 2008-10-21  Jonathan Pobst  <monkey@jpobst.com>
3251
3252         * ComboBox.cs: Fire SelectedIndexChanged when the user selects the
3253         same item with the mouse as was already selected.
3254         [Fixes bug #436789]
3255
3256 2008-10-21  Brad Taylor  <brad@getcoded.net>
3257         
3258         * TextControl.cs: Break out code to get the visible range into
3259           GetVisibleLineIndexes to be used in UIA code.
3260         
3261         * Line.cs:
3262         * TextControl.cs:
3263         * TextBoxBase.cs: Add comments indicating that the method or property
3264           is used via reflection from UIA code.
3265
3266 2008-10-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3267
3268         * ListViewItem.cs: Match .net serialization.
3269         Fixes remaining part of #417520.
3270
3271 2008-10-20  Jonathan Pobst  <monkey@jpobst.com>
3272
3273         * ToolStripProfessionalRenderer.cs: Don't paint over a set BackgroundImage.
3274
3275 2008-10-20  Mario Carrion <mcarrion@novell.com>
3276
3277         * ErrorProvider.cs, ToolTip.cs, HelpProvider.cs: UIA internal property 
3278         added: UIAToolTipRectangle.
3279
3280 2008-10-19  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
3281
3282         * ListViewItem.cs: When deserializing enumerate over the data, instead
3283         of accessing the data directly. This way we handle much better the
3284         cases were we lack information.
3285         Fixes #417520.
3286
3287 2008-10-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3288
3289         * ListView.cs: When removing an item from a main ListView.Items
3290         collection (and not a ListViewGroupCollection.Items one), remove it
3291         also from the group, as .net does. Patch by Mario Carrion (mario at
3292         novell dot com).
3293         Fixes #436653.
3294
3295 2008-10-19  Andreia Gaita  <avidigal@novell.com>
3296
3297         * Form.cs: Forms that get closed without a handle being created are
3298         disposed in 2.0. Fixes failing FormTest.FormClose and
3299         FormTest.FormClose2 on windows.
3300
3301 2008-10-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3302
3303         * ListView.cs: If both scrollbars are visible, the vertical one
3304         shouldn't extend too far down.
3305         Fixes #435771.
3306
3307 2008-10-17  Jonathan Pobst  <monkey@jpobst.com>
3308
3309         * DataGridView.cs: Add the ability to resize columns and rows with
3310         the mouse.  Also support double-clicking to autoresize.
3311         * DataGridViewColumn.cs: Invalidate the grid if a column's width changes.
3312         * DataGridViewRow.cs: Invalidate the grid if a row's height changes.
3313         * DataGridViewTextBoxCell.cs: Add 1 to preferred width so ellipsis
3314         isn't shown on autoresize.
3315         [Fixes bug #420193]
3316
3317 2008-10-17  Mario Carrion <mcarrion@novell.com>
3318
3319         * ComboBox.cs: Remove UIAListbox.
3320
3321 2008-10-17  Mario Carrion <mcarrion@novell.com>
3322
3323         * ComboBox.cs, ListBox.cs: Using added/removed item in 
3324           OnUIACollectionChangedEvent instead of index.
3325
3326 2008-10-17  Jonathan Pobst  <monkey@jpobst.com>
3327
3328         * ComboBox.cs: When we are sorting the items, if the item's type
3329         doesn't support IComparer, use a default one that compares based
3330         off the item's visible text.
3331         [Fixes bug #436328]
3332
3333 2008-10-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3334
3335         * ColumnHeader.cs: Invalidate ListView.header_control when setting
3336         ImageIndex/ImageKey.
3337         * ThemeWin32Classic.cs: When drawing the column header, draw a image
3338         for the column if available, and make the required adjustments to the
3339         text location.
3340         Fixes #435105.
3341
3342 2008-10-17  Neville Gao  <nevillegao@gmail.com>
3343
3344         * StatusBarPanel.cs: Control enabled to support accessibility.
3345         [Fixes bug #435988]
3346
3347 2008-10-16  Jonathan Pobst  <monkey@jpobst.com>
3348
3349         * DataGridView.cs: When a user begins an edit in the 'new row',
3350         make that a real row, and add a new 'new row'.  If the user
3351         cancels the edit, remove the new 'new row' and reset everything.
3352         Also, ensure UserAddedRow and UserRemovedRow events are raised.
3353         [Fixes bug #430954]
3354
3355 2008-10-16  Ivan N. Zlatev  <contact@i-nz.net>
3356
3357         * TableLayoutSettings.cs: Fix NREs when deserializing and 
3358         panel is not yet set.
3359         [Fixes bug #436199]
3360
3361 2008-10-16  Jonathan Pobst  <monkey@jpobst.com>
3362
3363         * DataGridView.cs: Invalidate after deleting a row.
3364
3365 2008-10-16  Jonathan Pobst  <monkey@jpobst.com>
3366
3367         * DataGridView.cs: Handle Enter and Escape keys.
3368           - Move call to EndEdit to MoveCurrentCell.
3369           - Remove call to EndEdit from navigation key routines.
3370           - Fire CellLeave and CellEnter.
3371
3372 2008-10-16  Jonathan Pobst  <monkey@jpobst.com>
3373
3374         * DataGridViewCell.cs: Some fixes to the new cell border
3375         painting code.
3376
3377 2008-10-16  Jonathan Pobst  <monkey@jpobst.com>
3378
3379         * ThemeEngine.cs: Enable visualstyles rendering by default
3380         (on platforms that support it).
3381
3382 2008-10-15  Ivan N. Zlatev  <contact@i-nz.net>
3383
3384         * XplatUIX11.cs, XplatUICarbon.cs: Do not Timer.Tick before 
3385         MainForm.OnLoad has completed unless DoEvents is forced.
3386         [Fixes bug #412536]
3387
3388 2008-10-15  Jonathan Pobst  <monkey@jpobst.com>
3389
3390         * ToolTip.cs: Ensure that Timer.Internal cannot be set to 0.
3391
3392 2008-10-15  Jonathan Pobst  <monkey@jpobst.com>
3393
3394         * Control.cs: Make our implementation of DrawToBitmap better 
3395         match WmPaint.  [Fixes bug #435579]
3396
3397 2008-10-14  Andreia Gaita  <avidigal@novell.com>
3398
3399         * WebBrowser.cs: Use DocumentElement as the document's root for the
3400         whole content. Should fix DocumentText and DocumentStream problems.
3401
3402 2008-10-14  Jonathan Pobst  <monkey@jpobst.com>
3403
3404         * DataGridViewColumnCollection.cs: Remove calls to OnColumnAddedInternal,
3405         these will get called in DGV.OnCollectionChanged.  Make sure 
3406         OnCollectionChanged always gets called.
3407         * DataGridView.cs: Make a OnColumnRemovedInternal that removes the cells
3408         from every row.  Call this in OnCollectionChanged.
3409         [Fixes bug #433669]
3410
3411 2008-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3412
3413         * ComboBox.cs: WM_KEYDOWN and WM_KEYUP messages should be sent to the
3414         textbox if auto complete is used, since we need to navigate over it.
3415         And in this case don't pass this messages to the base impl. Also hide
3416         the auto complete list box when displaying the drop down listbox.
3417         * TextBox.cs: new internal members to expose some of the auto complete
3418         functionality to combobox.
3419
3420 2008-10-13  Ivan N. Zlatev  <contact@i-nz.net>
3421
3422         * XplatUIX11.cs, XplatUICarbon.cs, Form.cs: Do not Timer.Tick before 
3423         MainForm.OnLoad has completed.
3424         [Fixes bug #412536]
3425
3426 2008-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3427
3428         * TextBox.cs: Apply an old-approved patch that adds autocomplete's
3429         Append support to this controls. We need it to apply new patches.
3430
3431 2008-10-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3432
3433         * Control.cs: When updating z order in child controls, send to back
3434         the implicit controls. Also, do it explicitly, instead of making
3435         GetAllControls return the implicit controls in a specific order, and
3436         thus avoid depending on that, which could change in the future.
3437         Fixes #434304.
3438
3439 2008-10-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3440
3441         * X11Dnd.cs: Try to call Application.DoEvents before returning in a
3442         call to StartDrag, since we must fire DragDrop/DragLeave *before*
3443         that, as .net does - instead of firing DragDrop/DragLeave *after* the
3444         call to Control.DoDragDrop has completed. This is needed since at the
3445         point of returning, we have sent related dnd ClientMessages, but we
3446         need to wait for them to fire the wmf respective ones.
3447         Fixes #325076.
3448
3449 2008-10-09  Everaldo Canuto  <ecanuto@novell.com>
3450
3451         * LinkLabel.cs: Recreate link pieces when change Padding.
3452
3453 2008-10-09  Everaldo Canuto  <ecanuto@novell.com>
3454
3455         * LinkLabel.cs: Take Padding into account when recreate link pieces.
3456         [Fixes bug #412530]
3457
3458 2008-10-08  Everaldo Canuto  <ecanuto@novell.com>
3459
3460         * Control.cs: Implement internal property PaddingClientRectangle, it will be
3461         useful for drawing controls that must take care about Padding property.
3462
3463 2008-10-08  Jonathan Pobst  <monkey@jpobst.com>
3464
3465         * BindingSource.cs: Make item_type internal so we can access it in DGV.
3466         * DataGridView.cs: Add support for autogenerating columns from a
3467         BindingSource.
3468
3469 2008-10-07  Jonathan Pobst  <monkey@jpobst.com>
3470
3471         * DataGridView.cs: Comment out an exception that is getting thrown
3472         too often currently.
3473
3474 2008-10-07  Jonathan Pobst  <monkey@jpobst.com>
3475
3476         * DataGridView.cs: Always rebind to the datasource, as things may
3477         have changed in it that we aren't capturing yet.
3478
3479 2008-10-07  Jonathan Pobst  <monkey@jpobst.com>
3480
3481         * DataGridViewTextBoxCell.cs: Don't default to VerticalCenter font
3482         drawing mode.  If we are top aligned, give ourselves some top padding.
3483
3484 2008-10-06  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
3485
3486         * X11Dnd.cs: When firing the default dnd enter/leave events, fire the
3487         events on the control under the mouse pointer, instead of firing them
3488         on the window generating the dnd operation. To achieve this re-use the
3489         code used to get the window under the pointer when getting MouseMove
3490         events.
3491         Fixes #381876.
3492
3493 2008-10-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3494
3495         * X11Dnd.cs: Don't check that that the window sending the dnd events
3496         is the owner of the selection. Although Gtk+ sets it that way, it's
3497         not a requirement of the XDnd protocol, and Qt doesn't seem to do it.
3498         So, just as Gtk+ does, we set our window sending the dnd events as the
3499         owner of the selection, but don't check it when receiving them. This
3500         should fix interoperability with Qt/Kde.
3501         Fixes #324251.
3502
3503 2008-10-06  Jonathan Pobst  <monkey@jpobst.com>
3504
3505         * DataGridView.cs: Make sure we take the vertical scrollbar into
3506         account when autosizing columns.
3507
3508 2008-10-06  Jonathan Pobst  <monkey@jpobst.com>
3509
3510         * DataGridView.cs: Handle sorting datetimes.
3511
3512 2008-10-04  Ivan N. Zlatev  <contact@i-nz.net>
3513
3514         * ButtonBase.cs, Control.cs, Label.cs, PictureBox.cs, TabControl.cs, 
3515         TextBoxBase.cs, ToolBar.cs, TrackBar.cs, TreeView.cs: Cleanup 
3516         compilation warnings.
3517
3518 2008-10-03  Ivan N. Zlatev  <contact@i-nz.net>
3519
3520         * RTF.cs, Application.cs, BindingContext.cs, BindingSource.cs, 
3521         ContextMenuStrip.cs, Control.cs, Hwnd.cs, Line.cs, MaskedTextBox.cs, 
3522         ProgressBar.cs, SaveFileDialog.cs, TextControl.cs, Theme.cs, 
3523         ToolBar.cs, ToolStripItemCollection.cs, TrackBar.cs: Cleanup 
3524         compilation warnings.
3525
3526 2008-10-03  Ivan N. Zlatev  <contact@i-nz.net>
3527
3528         * DataGridView.cs, DataGridViewCell.cs, 
3529         DataGridViewCellValidatingEventArgs.cs, 
3530         DataGridViewComboBoxEditingControl.cs, DataGridViewHeaderCell.cs, 
3531         DataGridViewRow.cs, DataGridViewRowHeaderCell.cs, 
3532         DataGridViewTextBoxEditingControl.cs: Cleanup compilation warnings.
3533
3534 2008-10-03  Ivan N. Zlatev  <contact@i-nz.net>
3535
3536         * HtmlElementEventArgs.cs, HtmlWindowCollection.cs: 
3537         Cleanup compilation warnings.
3538
3539 2008-10-03  Ivan N. Zlatev  <contact@i-nz.net>
3540
3541         * XplatUIWin32.cs: Cleanup compilation warnings.
3542
3543 2008-10-03  Ivan N. Zlatev  <contact@i-nz.net>
3544
3545         * PropertyGrid.cs: Cleanup compilation warnings.
3546
3547 2008-10-02  Jonathan Pobst  <monkey@jpobst.com>
3548
3549         * DataGridViewRow.cs: Only clear the row background if we
3550         are going to paint a new background.
3551
3552 2008-10-02  Jonathan Pobst  <monkey@jpobst.com>
3553
3554         * DataGridViewCell.cs, DataGridViewColumnHeaderCell.cs,
3555         DataGridViewRowHeaderCell.cs: Remove PaintPartBorder and
3556         use PaintBorder instead.        
3557
3558 2008-10-02  Jonathan Pobst  <monkey@jpobst.com>
3559
3560         * DataGridView.cs: When CellBorderStyle is set, update the
3561         AdvancedCellBorderStyle to match.
3562
3563 2008-10-02  Jonathan Pobst  <monkey@jpobst.com>
3564
3565         * DataGridViewCell.cs: Add helper methods to convert Alignment
3566         to TextFormatFlags and align rectangles.
3567         * DataGridViewTextBoxCell.cs: Use Alignment when painting text.
3568         * DataGridViewImageCell.cs: Use Alignment when painting the image.
3569
3570 2008-10-02  Ivan N. Zlatev  <contact@i-nz.net>
3571
3572         * ToolTip.cs: Display tooltips only for controls on the active form.
3573         [Fixes bug #428115]
3574
3575 2008-10-02  Jonathan Pobst  <monkey@jpobst.com>
3576
3577         * DataGridView.cs: Make OnCellValueNeeded internal.
3578         * DataGridViewCell.cs: Raise the CellValueNeeded event so the
3579         user can supply their own value if they choose.
3580
3581 2008-10-02  Jonathan Pobst  <monkey@jpobst.com>
3582
3583         * DataGridViewColumnHeaderCell.cs: Create a new style object
3584         so the DefaultCellStyle doesn't get changed.
3585
3586 2008-10-02  Jonathan Pobst  <monkey@jpobst.com>
3587
3588         * ToolStripItem.cs: Check to make sure the owner is actually
3589         changing in InternalOwner before doing any work.  Fixes some
3590         failing tests.
3591
3592 2008-10-01  Jonathan Pobst  <monkey@jpobst.com>
3593
3594         * DataGridViewColumnHeaderCell.cs: Correctly calculate style.
3595         * DataGridView.cs: Use a column header's inherited style instead
3596         of just using the default.
3597
3598 2008-10-01  Jonathan Pobst  <monkey@jpobst.com>
3599
3600         * SplitContainer.cs: Raise SplitterMoved when the splitter is
3601         moved through code.
3602
3603 2008-10-01  Mario Carrion <mcarrion@novell.com>
3604
3605         * ScrollBar.cs: Internal property added: UIAThumbPosition.
3606
3607 2008-10-01  Jonathan Pobst  <monkey@jpobst.com>
3608
3609         * ToolStripOverflowButton.cs: Use InternalOwner instead of Owner.
3610
3611 2008-10-01  Jonathan Pobst  <monkey@jpobst.com>
3612
3613         * ToolStripItem.cs: When the user sets Owner, we need to remove
3614         it from its previous owner and then add it to the new owner's
3615         item collection.  Also, create InternalOwner, so we can set the owner
3616         that doesn't do this new stuff.
3617         * ToolStripItemCollection.cs: Use InternalOwner instead of Owner.
3618
3619 2008-10-01  Jonathan Pobst  <monkey@jpobst.com>
3620
3621         * ToolStripItem.cs: When our parent changes, recalculate our text
3622         size, since we may be getting our Font from our parent.  When our
3623         owner's Font changes, recalculate ourselves as we may be using
3624         that font.
3625
3626 2008-10-01  Everaldo Canuto  <ecanuto@novell.com>
3627
3628         * MenuAPI.cs: Select the first option of a popup when opening the popup via
3629         return key. [Fixes bug #413792].
3630
3631 2008-10-01  Jonathan Pobst  <monkey@jpobst.com>
3632
3633         * ToolStripItem.cs: Make Font, BackColor, and ForeColor be
3634         ambient properties.  (Get their value from their parents if
3635         values haven't been set.)
3636
3637 2008-10-01  Jonathan Pobst  <monkey@jpobst.com>
3638
3639         * ToolStripSystemRenderer.cs: Call overridden methods' bases
3640         after our logic, so users can do painting by handling the events.
3641         Currently, we draw over any user painting.
3642
3643 2008-10-01  Jonathan Pobst  <monkey@jpobst.com>
3644
3645         * ToolStripProfessionalRenderer.cs: Call overridden methods' bases
3646         after our logic, so users can do painting by handling the events.
3647         Currently, we draw over any user painting.
3648
3649 2008-09-30  Everaldo Canuto  <ecanuto@novell.com>
3650
3651         * MenuAPI.cs: Prevent NRE when deactivate menu. Fixes #413636.
3652
3653 2008-09-30  Jonathan Pobst  <monkey@jpobst.com>
3654
3655         * TreeNode.cs, TreeView.cs: Move logic that determines the node
3656         image to draw to TreeNode.  Give Index/Keys put on the node
3657         precedence over the global one for the TreeView.
3658
3659 2008-09-30  Jonathan Pobst  <monkey@jpobst.com>
3660
3661         * TreeNode.cs: Setting ImageIndex or ImageKey should reset the other.
3662
3663 2008-09-29  Mario Carrion <mcarrion@novell.com>
3664
3665         * ListBox.cs: Index fixed.
3666
3667 2008-09-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3668
3669         * TabControl.cs: When expanding the tab -because it's selected now-,
3670         using Right alignment, instead of adding some selected delta value to
3671         the X origin, substract it, so it gets a location adjacent to the panel, 
3672         instead of be more separated.
3673         Fixes #409170.
3674
3675 2008-09-29  Jonathan Pobst  <monkey@jpobst.com>
3676
3677         * MessageBox.cs: Use SystemIcons for graphics instead of keeping our
3678         own copies of them.
3679
3680 2008-09-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3681
3682         * X11Dnd.cs: source and related fields should be set to IntPtr.Zero,
3683         as well as the other static fields, to avoid using their previous
3684         values my mistake when handling the dnd events. This should avoid
3685         handling any status event after the drop has been finalized/cancelled.
3686
3687 2008-09-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3688
3689         * X11Dnd.cs: We have to send a dnd enter event as soon as we start the
3690         operation, instead of waiting until we get any movement - this will
3691         help us to have the data available in case no movement was detected
3692         and _still_ we have to fire DragEnter and DragLeave/DragDrop events.
3693         Finally add a windows.forms-only fallback to fire the mentioned events
3694         if no movement at all was detected, just like .net does.
3695         Fixes #381876.
3696
3697 2008-09-27  Jonathan Pobst  <monkey@jpobst.com>
3698
3699         * ThemeWin32Classic.cs: When drawing a status bar panel, don't
3700         return early if the text is empty because the icon doesn't get
3701         drawn then.  [Fixes bug #428113]
3702
3703 2008-09-25  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
3704
3705         * FileDialog.cs: Implement basic support for sorting by columns in
3706         Details view. Patch by Eric Petit.
3707         Fixes #428006.
3708
3709 2008-09-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3710
3711         * ThemeWin32Classis.cs: When drawing gridlines take into account the
3712         case where ListView.ItemSize hasn't been computed, and provide a
3713         fallback as well. This prevents a division by 0.
3714
3715 2008-09-24  Jonathan Pobst  <monkey@jpobst.com>
3716
3717         * ThemeVisualStyles.cs: Use ClientRectangle instead of Bounds to
3718         correctly draw tooltip backgrounds.
3719
3720 2008-09-24  Jonathan Pobst  <monkey@jpobst.com>
3721
3722         * ImageList.cs: Change CopyTo implementation to ensure clones are
3723         created of our images.
3724         [Fixes bug #409169]
3725
3726 2008-09-24  Jonathan Pobst  <monkey@jpobst.com>
3727
3728         * Control.cs: When setting fonts, we need to ensure we change our
3729         reference to the new font object, even if it represents the same
3730         font as before.  If we don't, the original font can get disposed
3731         and we will still try to use it.
3732         [Fixes bug #386450]
3733
3734 2008-09-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3735
3736         * FileDialog.cs: Take into account Tile view when selecting the view
3737         (2.0 profile).
3738
3739 2008-09-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3740
3741         * ThemeWin32Classic.cs: When drawing gridlines for ListView don't use
3742         the item bounds, since we can't iterate over them in virtual mode.
3743         Also fix wrong calculation of the gridlines when using scrolling.
3744         Fixes #400390.
3745
3746 2008-09-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3747
3748         * XplatUIX11.cs: When handling EnterNotify events, take into account
3749         both the public and implicit controls when trying to detect the
3750         grab/ungrab process. This should fix ListView selection in Details
3751         view.
3752
3753 2008-09-23  Jonathan Pobst  <monkey@jpobst.com>
3754
3755         * TreeView.cs: Redraw the whole node area when the selected node changes.
3756         Things like state images were not getting redrawn because the invalid
3757         rectangle was too small.
3758         [Fixes bug #428211]
3759
3760 2008-09-23  Mario Carrion  <mcarrion@novell.com>
3761
3762         * ListBox.cs: UIA Selection Pattern fully supported in ListBox control.
3763         [Fixes bug #428993]
3764
3765 2008-09-23  Jonathan Pobst  <monkey@jpobst.com>
3766
3767         * Form.cs: Do not set the Form's icon in the backend if showicon = false.
3768         [Fixes bug #428114]
3769
3770 2008-09-23  Jonathan Pobst  <monkey@jpobst.com>
3771
3772         * ThemeWin32Classic.cs: Allow tooltips to be multiline.
3773         [Fixes bug #427884]
3774
3775 2008-09-23  Jonathan Pobst  <monkey@jpobst.com>
3776
3777         * StatusBar.cs: Add tooltip support.
3778         [Fixes bug #428113]
3779
3780 2008-09-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3781
3782         * ThemeWin32Classic.cs: Use StringAlignment.Center for the vertical
3783         alignments of sub items in Details view. Patch by John Mortlock (johnm at 
3784         hlaustralia.com.au).
3785         Fixes #425360.
3786
3787 2008-09-23  Neville Gao  <nevillegao@gmail.com>
3788
3789         * StatusBar.cs: Add UIA event in AddInternal () to support accessibility.
3790         [Fixes bug #419079]
3791
3792 2008-09-22  Jonathan Pobst  <monkey@jpobst.com>
3793
3794         * TextBoxBase.cs: Set Text to "" instead of null in Clear().
3795         [Fixes bug #428107]
3796
3797 2008-09-22  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
3798
3799         * ListView.cs: Don't do anything when EnsureVisible is called inside a
3800         BeginUpdate/EndUpdate block.
3801         Fixes #425049.
3802
3803 2008-09-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3804
3805         * ListViewItem.cs: The semantics for the public .ctor of
3806         ListViewSubItemCollection need us to already have a Text value for the
3807         item, which in our implementation have as available *after* adding the
3808         first sub item. So create an internal .ctor that satisfies our needs
3809         and let the public .ctor have the same semantics as .net.
3810         Fixes #427561.
3811
3812 2008-09-19  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
3813
3814         * ListControl.cs: Changes in Formatting related values should call
3815         RefreshItems, as .net does.
3816         * ComboBox.cs:
3817         * ListBox.cs: In the respective overrides of RefreshItems calculate
3818         layout as well as refreshing - again, this is what .net does.
3819         Fixes #426168.
3820
3821 2008-09-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3822
3823         * ListBox.cs: In UpdateTopItem, don' call to XplatUI.ScrollWindow,
3824         since we are already doing that when we change the value of the
3825         scrollbar or force the call to ScrollWindow in the same method. This
3826         way we don't cause a Invalidate call for all the listbox bounds for
3827         methods calling UpdateTopItem with an already updated top item. This
3828         was happening specially calling EnsureVisible with already visible
3829         items.
3830
3831 2008-09-18  Mike Gorse <mgorse@novell.com>
3832
3833         * Application.cs, IKeyFilter.cs, X11Keyboard.cs, XplatUI.cs,
3834           XplatUIStructs.cs: Added KeyFilter
3835         [Fixes bug #427039]
3836
3837 2008-09-18  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
3838
3839         * RelatedPropertyManager.cs: The properties returned by
3840         GetItemProperties should be that ones of the *actual* object returned
3841         by the property, not the property type - this is very special when the
3842         property exposes a type, but the returned object actually is a child
3843         class and implements more functionality and properties.
3844
3845 2008-09-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3846
3847         * Binding.cs: Don't look for the property in the data source if the
3848         passed string is empty.
3849
3850 2008-09-18  Ivan N. Zlatev  <contact@i-nz.net>
3851
3852         * XplatUIX11.cs: Comment out _NET_WM_WINDOW_TYPE_DIALOG in order to 
3853         fix unused variable warnings.
3854
3855 2008-09-18  Ivan N. Zlatev  <contact@i-nz.net>
3856
3857         * XplatUIX11.cs: Send WM_HELP when F1 is pressed.
3858         [Fixes bug #427073]
3859
3860 2008-09-18  Ivan N. Zlatev  <contact@i-nz.net>
3861
3862         * XplatUIX11.cs: 
3863          - Do not set _NET_WM_WINDOW_TYPE_DIALOG for modal forms, because this 
3864          leads to the window manager overriding our border style and zorder. 
3865          - Allow the activation of non-modal forms, which are children of a 
3866          modal form.
3867         [Fixes bug #423417]
3868
3869 2008-09-17  Ivan N. Zlatev  <contact@i-nz.net>
3870
3871         * XplatUIX11.cs, X11Structs.cs: For mapped windows SetTopMost should 
3872         ask the window manager to do the work instead of changing the property 
3873         directly.
3874         [Fixes bug #423417]
3875
3876 2008-09-17  Everaldo Canuto  <ecanuto@novell.com>
3877
3878         * CurrencyManager.cs: Check for positon before call ChangeRecordState in
3879         AddNew to fix some navigation for empty datasets. [Fixes #323053]
3880
3881 2008-09-17  Everaldo Canuto  <ecanuto@novell.com>
3882
3883         * FileDialog.cs: Remove OnPaint method on PopupButtonPanel and set 
3884         InternalBorderStyle to BorderStyle.Fixed3D. It is the best way to get 3d
3885         border and fixes some drawing issues when resize form.
3886
3887 2008-09-17  Everaldo Canuto  <ecanuto@novell.com>
3888
3889         * FileDialog.cs: Lots of layout fixes to mimic Win32. [Fixes #408752]
3890         
3891         * ThemeWin32Classic.cs: We don't need to reduce button size when it is
3892         AcceptButton.
3893
3894 2008-09-17  Ivan N. Zlatev  <contact@i-nz.net>
3895
3896         * TextBoxBase.cs: For standard textbox the scrollbars are always 
3897         visible if Multiline is true.
3898         [Fixes bug #426896]
3899
3900 2008-05-12  Everaldo Canuto  <ecanuto@novell.com>
3901
3902         * DataGridTextBoxColumn.cs: Uncomment code accidentally commited in last
3903         patch.
3904         
3905 2008-05-12  Everaldo Canuto  <ecanuto@novell.com>
3906
3907         [Fixes most od DBNull and HeadersVisible problems]
3908         
3909         * DataGrid.cs:
3910         - ShowingColumnHeaders removed because we dont need it, ColumnHeadersVisible
3911         returns the value that we need.
3912         - Fixed FromPixelToColumn method that return zero for first     column and for
3913         row header cell, now it returns -1 for row header cell.
3914         - Fixed HitTest to check row header cell in column header area, it now
3915         returns HitTestType.None. [Fixes #322864]
3916         - Fixed the calculation of visible columns in UpdateVisibleColumn, now it
3917         checks for RowHeadersVisible and other things.
3918         - If an exception occurs when setting CurrentCell and user type 'yes' in
3919         message dialog, invalidade current and new cell and set setting_current_cell
3920         to false to prevent future errors. [Partially fixes #323050]
3921
3922         * DataGridColumnStyle.cs: Don't call EndEdit after set property_descriptor
3923         value (SetColumnValueAtRow), it must be done by grid to properly show 
3924         messages. [Fixes #323050]
3925
3926         * ThemeWin32Classic.cs: Lots of fixes in DataGridPaintColumnHeaders to
3927         better draw column and row header. Also dont draw anything when column
3928         headers is not visible.
3929
3930 2008-09-16  Jonathan Pobst  <monkey@jpobst.com>
3931
3932         * ThemeWin32Classic.cs: Hook ListViewItems into the ShowFocusCues
3933         logic.
3934
3935 2008-09-16  Jonathan Pobst  <monkey@jpobst.com>
3936
3937         * TreeView.cs: Don't start editing a node on right click, only
3938         left click.
3939
3940 2008-09-16  Jonathan Pobst  <monkey@jpobst.com>
3941
3942         * NativeWindow.cs: Reenable the ThreadExceptionDialog I accidentally
3943         disabled over a year ago.
3944         * Form.cs: Wrap calling Load in a try/catch because it can happen
3945         before the catch-all one in NativeWindow.
3946         [Fixes bug #425414]
3947
3948 2008-09-16  Jonathan Pobst  <monkey@jpobst.com>
3949
3950         * ToolStripDropDownMenu.cs: Calculate the connected area better
3951         to take into account when the drop down is not directly under the
3952         owner item.
3953         * ToolStripProfessionalRenderer.cs: Draw the whole unconnected area.
3954
3955 2008-09-16  Mario Carrion <mcarrion@novell.com>
3956
3957         * ScrollBar.cs: New event added: UIAValueChanged, generated when
3958           LargeChange, SmallChange, Maximum or Minimum values are changed.
3959         [Fixes bug #426464]
3960
3961 2008-09-16  Mario Carrion <mcarrion@novell.com>
3962
3963         * ErrorProvider.cs: Component enabled to support accessibility.
3964         * Application.cs: Updated to Initialize UIA in ErrorProvider.
3965         [Fixes bug #426459]
3966
3967 2008-09-16  Jonathan Pobst  <monkey@jpobst.com>
3968
3969         * TextBoxBase.cs: Flag has_been_focused when SelectionStart is set
3970         so we don't highlight on first focus.
3971         [Fixes bug #360869]
3972
3973 2008-09-16  Jonathan Pobst  <monkey@jpobst.com>
3974
3975         * TextControl.cs: Correctly calculate the height of the area we 
3976         need to invalidate when we have started scrolling and viewport_y
3977         is used.  [Fixes bug #387608]
3978
3979 2008-09-16  Jonathan Pobst  <monkey@jpobst.com>
3980
3981         * TextControl.cs: When getting the SelectedText, don't add in
3982         NewLine characters, as they are already contained in the lines.
3983         [Fixes bug #388115]
3984
3985 2008-09-16  Jonathan Pobst  <monkey@jpobst.com>
3986
3987         * TextBoxBase.cs: Replace the buggy Lines setter with one that
3988         simply concats the lines and send it to the Text setter.
3989         [Fixes issue #2 and #3 of 388115]
3990
3991 2008-09-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3992
3993         * Binding.cs: The default value of DataSourceNullValue should be
3994         Convert.DBNull actually. Also, the NullValue should only be used *if*
3995         itself is not null, and use the null/Convert.DBNull value instead.
3996
3997 2008-09-15  Jonathan Pobst  <monkey@jpobst.com>
3998
3999         * TextControl.cs: Add a method to convert a string newline to the
4000         newline enum.
4001         * TextBoxBase.cs: When the user hits enter, insert a native newline.
4002         [Fixes part 1 of bug #388115]
4003
4004 2008-09-15  Mario Carrion <mcarrion@novell.com>
4005
4006         * ToolTip.cs: UnPopup event set to internal to match public API.
4007
4008 2008-09-15  Jonathan Pobst  <monkey@jpobst.com>
4009
4010         * TextBoxBase.cs: If the user is using Ctrl-Tab to move focus, we
4011         have to remove the Ctrl in order for the focus moving code to kick in.
4012         [Fixes bug #426170]
4013
4014 2008-09-15  Jonathan Pobst  <monkey@jpobst.com>
4015
4016         * CheckedListBox.cs: Return the real item index from Add.  It may not be
4017         the last item if the list is sorted.  The user can change the NewValue in
4018         the ItemCheck event, we need to use that value if so.
4019         * ListBox.cs: Return the real item index from a sorted Add.
4020         [Fixes bug #426166]
4021
4022 2008-09-15  Ivan N. Zlatev  <contact@i-nz.net>
4023
4024         * MimeIcon.cs: Add null checks in the GnomeHandler, because it might 
4025         happen that the icons from the theme is missing or the particular size 
4026         unavailable.
4027         [Fixes bug #424981]
4028
4029 2008-09-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4030
4031         * Binding.cs: When assigning null or DBNull depending on value/ref type,
4032         use IsValueType instead to get the precise desired value.
4033         Fixes #424276.
4034
4035 2008-09-12  Jonathan Pobst  <monkey@jpobst.com>
4036
4037         * TreeNodeCollection.cs: When adding a new node to an opened node,
4038         we have to invalidate everything below the parent node because
4039         every node scoots down and we have to repaint them.
4040         [Fixes bug #411386]
4041
4042 2008-09-12  Jonathan Pobst  <monkey@jpobst.com>
4043
4044         * ThemeWin32Classic.cs: Take CheckBox and RadioButton's CheckAlign
4045         property into account when drawing.
4046         [Fixes bug #416064]
4047
4048 2008-09-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4049
4050         * ListBox.cs: When calling Items.Clear(), call
4051         SelectedIndexCollection.ClearCore instead of normal Clear method, to
4052         not fire any Selected*Changed event - this is done to match .net and
4053         don't have invalid values when changing the DataSourceProperty.
4054         Fixes #424273.
4055
4056 2008-09-12  Mario Carrion  <mcarrion@novell.com>
4057
4058         * HelpProvider.cs: Control enabled to support accessibility.
4059         * Application.cs: Updated to Initialize UIA in HelpProvider.
4060         [Fixes bug #425988]
4061
4062 2008-09-12  Jonathan Pobst  <monkey@jpobst.com>
4063
4064         * Form.cs: When we are showing a dialog box, if its owner is TopMost,
4065         make the dialog TopMost as well.
4066         [Fixes bug #425984]
4067
4068 2008-09-12  Jonathan Pobst  <monkey@jpobst.com>
4069
4070         * Win32DnD.cs, XplatUIWin32.cs: Applied patch from Andy Hume that handles
4071         clipboard data better.
4072         [Fixes bug #414446]
4073
4074 2008-09-12  Jonathan Pobst  <monkey@jpobst.com>
4075
4076         * TextBoxBase.cs: Applied patch from John Mortlock that ensures
4077         TextChanged and SelectionChanged events fire in the same order as .Net.
4078         [Fixes bug #425725]
4079
4080 2008-09-12  Jonathan Pobst  <monkey@jpobst.com>
4081
4082         * DataGridView.cs: When sorting a column, if it only contains numbers,
4083         do a numeric sort instead of a string sort.
4084         [Fixes bug #425849]
4085
4086 2008-09-12  Jonathan Pobst  <monkey@jpobst.com>
4087
4088         * TableLayoutSettings.cs, TableLayoutStyleCollection.cs: Guard
4089         against NRE's when the settings have a null panel.
4090         * TableLayoutPanel.cs: When setting the TableLayoutSettings, ensure
4091         the panel gets set.
4092         [Fixes bug #425647]
4093
4094 2008-09-11  Mario Carrion  <mcarrion@novell.com>
4095
4096         * ToolTip.cs: Control enabled to support accessibility.
4097         * Application.cs: Updated to Initialize UIA in ToolTip.
4098         [Fixes bug #425277]
4099
4100 2008-09-11  Jonathan Pobst  <monkey@jpobst.com>
4101
4102         * Control.cs: Make the custom Enumerator internal to fix build.
4103
4104 2008-09-11  Jonathan Pobst  <monkey@jpobst.com>
4105
4106         * DataGridViewCheckBoxCell.cs: If our content is clicked and we aren't
4107         already in edit mode, begin edit mode.  Generally edit mode isn't
4108         started until the second click, but CheckBoxes are special.
4109
4110 2008-09-11  Jonathan Pobst  <monkey@jpobst.com>
4111
4112         * ErrorProvider.cs: Never try to add our icons to ContainerControl,
4113         since that can be set to anything.  Always add them to the Control's
4114         parent.  [Fixes bug #416058]
4115
4116 2008-09-11  Jonathan Pobst  <monkey@jpobst.com>
4117
4118         * ListView.cs: Use a custom enumerator for ListViewItemCollection
4119         so items can be deleted in a foreach.
4120         [Fixes bug #425342]
4121
4122 2008-09-11  Jonathan Pobst  <monkey@jpobst.com>
4123
4124         * DataGridViewRow.cs: Better implementation of GetPreferredHeight.
4125         Store the user set explicit height so that the row can be AutoSized
4126         and then when AutoSize is turned off, it can get its original size back.
4127         * DataGridView.cs: Use the Row's GetPreferredHeight instead of 
4128         duplicating the logic.  When setting AutoSizeRowsMode to None, reset
4129         rows' heights back to their explicit values.
4130         [Fixes bug #415780]
4131
4132 2008-09-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4133
4134         * DateTimePicker.cs: When getting focus, select the checkbox if we are
4135         already showing it. Also, don't change its value when pressing space
4136         if the checkbox is not visible (ShowCheckBox as false). Finally, the
4137         checkbox should remain selected as long as Checked is false, and the
4138         other parts are disabled.
4139         Fixes #424267.
4140         
4141 2008-09-11  Jonathan Pobst  <monkey@jpobst.com>
4142
4143         * MessageBox.cs: Handle shortcut keys to dialog buttons.
4144         [Fixes bug #425425]
4145
4146 2008-09-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4147
4148         * Binding.cs: When the value retrieved from the control property is
4149         null, don't return Convert.DBNull for Nullable instances, since they
4150         can *actually* get a null value.
4151         Fixes #424265.
4152
4153 2008-09-10  Jonathan Pobst  <monkey@jpobst.com>
4154
4155         * Control.cs: Add an internal field to force doublebuffering regardless
4156         of what the public mechanisms are set to.  This is because MS's native
4157         controls are doublebuffered even though their .Net bits are set to false.
4158         * ProgressBar.cs: Set force_double_buffer to true.
4159         [Fixes bug #406595]
4160
4161 2008-09-10  Jonathan Pobst  <monkey@jpobst.com>
4162
4163         * DataGridViewCheckBoxColumn.cs: Use the threestate constructor for
4164         the cell template.
4165         * DataGridViewCheckBoxCell.cs: Add proper support for threestate.
4166         * DataGridViewCell.cs: Implement GetEditedFormattedValue for types
4167         without EditingControls, paint background selection for types without
4168         EditingControls, reset the EditingCellValueChanged flag when the
4169         cell's value is committed.
4170         * DataGridView.cs: Make BeginEdit and EndEdit work with cells that don't
4171         have EditingControls, remove a double call to a cell's OnContentClickInternal,
4172         don't do cell changing logic in OnMouseDown if the cell didn't change.
4173         [Fixes bug #420351]
4174
4175 2008-09-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4176
4177         * DateTimePicker.cs: Fix the edition of am/pm specifier.
4178
4179 2008-09-09  Jonathan Pobst  <monkey@jpobst.com>
4180
4181         * TextControl.cs: Add "&" to the list of valid characters in a URL.
4182
4183 2008-09-09  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
4184
4185         * DateTimePicker.cs: Before incrementing or decrementing any part in
4186         the textbox, end any current edit. Also when ending the current edit
4187         use the editing_part_index field instead of the current selected
4188         value, since they can be out of synch, and we really need to work on
4189         the *real* current edit part. Finally when PartData.Selected changes,
4190         always try to end any ongoing edit.
4191         This should fix some small errors handling mouse navigation and
4192         increase/decrease operations.
4193
4194 2008-09-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4195
4196         * DateTimePicker.cs: 'hh' and 'HH' formats (12 and 24 hour formats
4197         respectively) should handled different, since the 12 hours format
4198         needs the value typed by the user to be adjusted depending on the
4199         a.m/p.m value, so it is preserved, and only changed when the value
4200         reaches the 12 value (when it changes from a.m to p.m).
4201         Fixes part of #416555.
4202
4203 2008-09-08  Jonathan Pobst  <monkey@jpobst.com>
4204
4205         * ToolStrip.cs: Ensure MouseDown gets called for MenuStrip items.
4206         * ToolStripDropDownItem.cs: Don't fire events and such again if
4207         ShowDropDown is called on an already dropped down item.
4208         * ToolStripMenuItem.cs: Call ShowDropDown even if there aren't any
4209         subitems, the user may add some in the DropDownOpening event.
4210         [Fixes bug #417877]
4211
4212 2008-09-08  Jonathan Pobst  <monkey@jpobst.com>
4213
4214         * ComboBox.cs: Fix IOORE when setting SelectedItem to null.
4215         [Fixes bug #424270]
4216
4217 2008-09-08  Jonathan Pobst  <monkey@jpobst.com>
4218
4219         * MdiClient.cs: When looking for menustrips on a child form to merge,
4220         look inside ToolStripContainers.
4221         [Fixes bug #424264]
4222
4223 2008-09-08  Ivan N. Zlatev  <contact@i-nz.net>
4224
4225         * ErrorProvider.cs: Unbreak my previous commit.
4226
4227 2008-09-08  Ivan N. Zlatev  <contact@i-nz.net>
4228
4229         * ErrorProvider.cs: Icon should always be 16x16.
4230         [Fixes bug #424380]
4231
4232 2008-09-07  Ivan N. Zlatev  <contact@i-nz.net>
4233
4234         * GridEntry.cs: Invalidate the child items cache when the property 
4235         value changes.
4236
4237 2008-09-07  Ivan N. Zlatev  <contact@i-nz.net>
4238
4239         * GridEntry.cs, PropertyGridView.cs: 
4240            - Update the ReadOnly detection and rendering to finally hopefully 
4241            match the one of MSFT.
4242            - Niceify and move the debug CWLS.
4243         [Fixes bug #409028]
4244
4245 2008-09-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4246
4247         * ListView.cs: Don't call Invalidate at all from SetItemLocation,
4248         since we are already calling Invalidate for the entire control when
4249         needed - and call Redraw() when size changes, since we need to paint
4250         there by ourselved and not anymore from the mentioned method. 
4251         This should improve the layout process. Also clean some not needed calls 
4252         here and there.
4253
4254 2008-09-05  Jonathan Pobst  <monkey@jpobst.com>
4255
4256         * MenuAPI.cs: Add a null check to the Alt-F4 code.
4257         [Fixes bug #420309]
4258
4259 2008-09-05  Jonathan Pobst  <monkey@jpobst.com>
4260
4261         * ThreadExceptionDialog.cs: Disable AutoScaling for this dialog.
4262         [Fixes bug #423040]
4263
4264 2008-09-04  Ivan N. Zlatev  <contact@i-nz.net>
4265
4266         * GridEntry.cs, CategoryGridEntry.cs, RootGridEntry.cs, PropertyGrid.cs, 
4267         PropertyGridView.sc: Implement lazy/delayed propertygrid population 
4268         on item expansion. Improves performance and fixes bug #417955.
4269         [Fixes bug #417955]
4270
4271 2008-09-05  Stephane Delcroix  <sdelcroix@novell.com>
4272
4273         * Control.cs: only check for OptimizedDoubleBuffer in NET_2_0.
4274         fix the build.
4275
4276 2008-09-04  Jonathan Pobst  <monkey@jpobst.com>
4277
4278         * TextControl.cs: Add "_" to the list of valid characters in a URL.
4279         [Fixes bug #423408]
4280
4281 2008-09-04  Jonathan Pobst  <monkey@jpobst.com>
4282
4283         * Control.cs: If using OptimizedDoubleBuffer, ensure the clip 
4284         region gets set.
4285         [Fixes bug #414166]
4286
4287 2008-09-04  Jonathan Pobst  <monkey@jpobst.com>
4288
4289         * FontDialog.cs: When storing our font size from the starting font,
4290         use SizeInPoints instead of Size in case Size is a different unit
4291         from Points.
4292         [Fixes bug #416489]
4293
4294 2008-09-04  Jonathan Pobst  <monkey@jpobst.com>
4295
4296         * FileDialog.cs: When enter is pressed on a SaveFileDialog and we
4297         don't use it for anything else, check if a directory is highlighted.
4298         If it is, navigate into it.
4299         [Fixes bug #422087]
4300
4301 2008-09-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4302
4303         * Binding.cs: When acquiring a BindingManagerBase for the first time,
4304         check that the specified property actually exists in the data source,
4305         and throw an ArgumentException if that's not the case - this is only
4306         done for this scenario, since for later cases (such Position changes)
4307         we throw different exceptions (match .Net).
4308
4309 2008-09-03  Ivan N. Zlatev  <contact@i-nz.net>
4310
4311         * ButtonBase.cs CheckBox.cs, Control.cs, FlowLayoutPanel.cs, 
4312           FlowLayoutSettings.cs, GroupBox.cs, Label.cs, ListBox.cs, 
4313           PropertyGrid.cs, RadioButton.cs, TableLayoutPanel.cs, 
4314           TableLayoutSettings.cs, ToolStrip.cs, ToolStripDropDownButton.cs, 
4315           ToolStripDropDownMenu.cs, ToolStripItem.cs, ToolStripSplitButton.cs, 
4316           ToolStripStatusLabel.cs: Add missing PerformLayout calls to various 
4317           properties.
4318           [Fixes bug #418684]
4319
4320 2008-09-03  Neville Gao  <nevillegao@gmail.com>
4321
4322         * StatusBar.cs: Control enabled to support accessibility.
4323         [Fixes bug #419079]
4324
4325 2008-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4326
4327         * Binding.cs: When connecting the event handler for the "Changed"
4328         event for the property, only do it for PropertyManager, and not for
4329         CurrencyManager - this is exactly what does .Net, totally ignoring any
4330         change in the property of the elements of a list.
4331         Fixes the tests.
4332
4333 2008-09-02  Jonathan Pobst  <monkey@jpobst.com>
4334
4335         * XplatUIWin32.cs: Ensure we never send the WS_EX_MDICHILD flag
4336         to Windows when creating a window, as we fake MDI stuffs.
4337         [Fixes bug #421858]
4338
4339 2008-09-01  Ivan N. Zlatev  <contact@i-nz.net>
4340
4341         * TextBox.cs: Invalidate after UseSystemPasswordChar, so that the 
4342         change takes effect.
4343
4344 2008-08-24  Ivan N. Zlatev  <contact@i-nz.net>
4345
4346         * XplatUIX11.cs: Provide MouseButtons/State information to the XPlatUI.
4347         [Fixes bug #419001]
4348
4349 2008-08-27  Jonathan Pobst  <monkey@jpobst.com>
4350
4351         * DataGridView.cs: Raise CellContentClick event.
4352         [Fixes part of bug #420351]
4353
4354 2008-08-27  Mario Carrion  <mcarrion@novell.com>
4355
4356         * ScrollBar.cs: Control enabled to support accessibility.
4357         [Fixes bug #416759]
4358
4359 2008-08-27  Mario Carrion  <mcarrion@novell.com>
4360
4361         * ComboBox.cs: Control enabled to support accessibility.
4362         [Fixes bug #416663]
4363
4364 2008-08-27  Mario Carrion  <mcarrion@novell.com>
4365
4366         * ListBox.cs: Control enabled to support accessibility.
4367         [Fixes bug #416640]
4368
4369 2008-08-27  Jonathan Pobst  <monkey@jpobst.com>
4370
4371         * ComboBox.cs: Don't suppress the TextChanged event when changing
4372         the SelectedIndex.
4373         * ToolStripComboBox.cs: Listen to the ComboBox's TextChanged event
4374         and re-raise it.
4375         [Fixes bug #420673]
4376
4377 2008-08-26  Jonathan Pobst  <monkey@jpobst.com>
4378
4379         * ErrorProvider.cs: Fix a regression NRE when setting properties
4380         for a control before it has a parent.
4381         [Fixes bug #420305]
4382
4383 2008-08-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4384
4385         * Binding.cs: Use the BindingManagerBase.Current value to obtain
4386         connect the property "Changed" event, instead of using the data
4387         sources - this is useful when the property specifies actually a
4388         multiple objects path.
4389         Fixes part of #417973.
4390
4391 2008-08-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4392
4393         * RelatedPropertyManager.cs: PropertyManager instances associated to a
4394         nested properties should return not the properties of the data source
4395         itself, but the properties of the type of a specific property in the
4396         data source - match .net.
4397
4398 2008-08-24  Gert Driesen  <drieseng@users.sourceforge.net>
4399
4400         * ListBox.cs (IntegerCollection): To avoid duplication, moved code for
4401         AddRange overloads into AddItems method, and added missing NULL check.
4402         Added extra argument check to RemoveAt for compatibility with MS. 
4403         Modified IList implementation of Add, Contains, IndexOf and Remove to
4404         throw an ArgumentException if item is not an int. Modified IList.Insert
4405         to throw a NotSupportException instead of an Exception. Implemented
4406         ICollection.
4407         (ObjectCollection): To avoid duplication, use AddItems method from
4408         AddRange overloads. On 1.0 profile, first perform NULL check on items
4409         in AddItems.
4410
4411 2008-08-23  Gert Driesen  <drieseng@users.sourceforge.net>
4412
4413         * Control.cs: Do not modify bounds directly in .ctor's. Fixes bug
4414          #419087.
4415
4416 2008-08-22  Atsushi Enomoto  <atsushi@ximian.com>
4417
4418         * X11Keyboard.cs : comment out some Console.WriteLine().
4419
4420 2008-08-22  Atsushi Enomoto  <atsushi@ximian.com>
4421
4422         * X11Keyboard.cs : fixed wrong call to XOpenIM() which happened
4423           even if premises are not filled. Also XLookupString() was not
4424           receiving correct input, which blocked precise input handling
4425           on non-XIM mode.
4426
4427 2008-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
4428
4429         * ListView.cs: When calling OnCacheVirtualItems, cast to the right
4430         type of delegate, instead of EventHandler - this was causing a type
4431         cast exception in all apps handling this event.
4432         Fixes #417876.
4433
4434 2008-08-20  Jonathan Pobst  <monkey@jpobst.com>
4435
4436         * ToolStripDropDownItem.cs: Always raise DropDownOpening in
4437         ShowDropDown to give the user a chance to dynamically add
4438         drop down items.  [Step 1 of fixing bug #417877]
4439
4440 2008-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4441
4442         * X11Dnd.cs: Don't fire pseudo motion DragOver events if we haven't
4443         had any mouse motion since the call to StartDrag, to match the dnd
4444         behaviour of .net.
4445         Fixes part of #381876.
4446
4447 2008-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4448
4449         * XplatUIX11.cs: Only do the children control bounds check for EnterNotify
4450         if mode is NotifyUngrab, and let it flow if mode is NotifyNormal.
4451         Also, if we are actually moving into a different window after
4452         grabbing, generate a LeaveNotify event for the previous window, since
4453         we need to fire the leave events until the grab ends, not when
4454         actually moving outside of the control.
4455
4456 2008-08-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4457
4458         * XplatUIX11.cs: The check inside EnterNotify case to fire MouseEnter
4459         events only for client windows was wrong - we need to compare the
4460         client window against the window receiving the EnterNotify event, not
4461         against zero (since client window is never Zero, btw).
4462         This prevents having unnecessary handling of EnterNotify events for
4463         non-client windows when a gran begins.
4464
4465 2008-08-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4466
4467         * XplatUIX11.cs: Handling X ButtonPress events, we must *not* generate
4468         MouseMove/MotionNotify events at all (which should only happen after
4469         MouseUp/ButtonRelease, as .Net does).
4470         This avoids firing an extra and unnecessary MouseMove event just after
4471         every MouseDown event.
4472
4473 2008-08-19  Jonathan Pobst  <monkey@jpobst.com>
4474
4475         * LinkLabel.cs: Always clear any previous links when LinkArea
4476         is set.  [Fixes bug #410709]
4477
4478 2008-08-19  Jonathan Pobst  <monkey@jpobst.com>
4479
4480         * ToolStripProfessionalRenderer.cs: Revert last change.
4481         * ProfessionalColorTable.cs: For Classic, use SystemColors.Window
4482         for ToolStripDropDownBackground.
4483
4484 2008-08-19  Jonathan Pobst  <monkey@jpobst.com>
4485
4486         * ToolStripProfessionalRenderer.cs: Use Window color for the 
4487         background of dropdowns to match .Net when the user is not
4488         using the default white.  [Fixes bug #418108]
4489
4490 2008-08-19  Atsushi Enomoto  <atsushi@ximian.com>
4491
4492         * XplatUIWin32.cs : SetTimer() used to set wrong window handle and
4493           it caused timer registration twice. Fixed bug #418107.
4494
4495 2008-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4496
4497         [Correction: This is the actual change to X11Dnd issue, not the
4498         previous one, which was actually a different issue.]
4499
4500         * X11Dnd.cs: Increase the interval for the Timer, to not fire our
4501         pseudo motion HandleMouseOver method so aggresive. Also, don't call it
4502         when the pointer is actually in motion, but only when the pointer
4503         seems to stop (as .net does).
4504         Fixes part of #381876.
4505
4506
4507 2008-08-18  Jonathan Pobst  <monkey@jpobst.com>
4508
4509         * ListBox.cs: Fix CopyTo implementation.
4510         [Fixes bug #409169]
4511
4512 2008-08-18  Jonathan Pobst  <monkey@jpobst.com>
4513
4514         * ThemeWin32Classic.cs: Use ClientRectangle instead of Bounds when
4515         drawing a ComboBox's background.  Fixes bad disabled rendering when
4516         the control is not at 0,0.
4517         [Fixes bug #416063]
4518
4519 2008-08-16  Ivan N. Zlatev  <contact@i-nz.net>
4520
4521         * GridEntry.cs: Leave the ICustomTypeDescriptor handling up to the 
4522         ComponentModel layer, which will properly prioritize the attributes.
4523         Avoids wrong prioritization of duplicate attributes when retrieving 
4524         the converter and editor.
4525         [Fixes bug #417729]
4526
4527 2008-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4528
4529         * XplatUIX11.cs: Increase the interval for the Timer, to not fire our
4530         pseudo motion HandleMouseOver method so aggresive. Also, don't call it
4531         when the pointer is actually in motion, but only when the pointer
4532         seems to stop (as .net does).
4533         Fixes part of #381876.
4534
4535 2008-08-15  Ivan N. Zlatev  <contact@i-nz.net>
4536
4537         * GridEntry.cs: Perform stricter check for the ParentEntry's 
4538         PropertyDescriptor/PropertyOwner for the ICustomTypeDescriptor 
4539         implementation.
4540         [Fixes bug #417567]
4541
4542 2008-08-14  Geoff Norton  <gnorton@novell.com>
4543
4544         * XplatUICarbon.cs: Properly implement PeekMessage and DoEvents.
4545         Fixes #396983.  Properly fix ActiveWindow trackin and do not
4546         prematurely show POPUP windows.
4547
4548 2008-08-12  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
4549
4550         * XplatUIX11.cs: Handle the obscured regions while scrolling using
4551         GraphicsExpose event, processing it just after we copy the scrolled
4552         area. This ensures that the next calls to ScrollWindow will copy
4553         regions already updated, and the scrolling will be smooth. Also remove
4554         the code that was trying to detect the obscured regions, since we are
4555         not using it anymore (too slow).
4556
4557 2008-08-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4558
4559         * ListBox.cs: Fix the -temporary- broken selection in ListBox for
4560         MultiExtended mode, by separating some logic between the ctrl/shift
4561         handling. Also ignore any MouseMove events generated together with
4562         MouseDown events - we are only interested in the real motion event.
4563         Fixes part of #414963.
4564
4565 2008-08-08  Jonathan Pobst  <monkey@jpobst.com>
4566
4567         * DataGridViewCell.cs: Guard against an AOORE when checking if a cell
4568         is selected.  [Fixes bug #414143]
4569
4570 2008-08-07  Ivan N. Zlatev  <contact@i-nz.net>
4571
4572         * GridEntry.cs: Check if current property is a ICustomTypeDescriptor 
4573         and not the parent one (the propertyowner). Fixes the behavior of 
4574         GetConverter/GetEditor.
4575         [Fixes bug #415452]
4576
4577 2008-08-07  Ivan N. Zlatev  <contact@i-nz.net>
4578
4579         * PropertyGrid.cs: Refresh should also repopulate the PropertyGrid.
4580         [Fixes part of bug #415452]
4581
4582 2008-08-05  Ivan N. Zlatev  <contact@i-nz.net>
4583
4584         * GridEntry.cs: ITypeDescriptorContext should be relative to the parent 
4585         GridEntry, not the current.
4586         [Fixes bug #413896]
4587
4588 2008-08-04  Ivan N. Zlatev  <contact@i-nz.net>
4589
4590         * TextBoxBase.cs: De-internalize max_length field.
4591         * RichTextBox.cs: Use base.MaxLength - both TextBoxBase and RichTextBox 
4592         share the same logic.
4593         [Fixes bug #414454]
4594
4595 2008-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4596
4597         * ListBox.cs: Selection changes made in the MouseDown handler should
4598         use the *Core versions of selection in SelectedIndices collection,
4599         since the SelectedIndexChanged/SelectedValueChanged events are fired
4600         until we get a MouseUp event, and thus we need to separate the logic
4601         from the events, as done in the keyboard navigation. Also, fire those
4602         selection events from keyboard navigation in SelectionMode.None, even
4603         if we don't have a selection, as .Net does.
4604
4605 2008-08-01  Jonathan Pobst  <monkey@jpobst.com>
4606
4607         * ToolStripButton.cs, ToolStripMenuItem.cs: Guard against a NRE my
4608         last change introduced when an item is clicked but isn't on a toolstrip.
4609
4610 2008-07-31  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4611
4612         * ListBindingHelper.cs: When looking for an object's properties, check
4613         if it implements ICustomTypeDescriptor, in which case we should
4614         resolve the propertu based on its GetProperties method, not in its
4615         actual properties. This is what .Net seems to do.
4616         Fixes a UsingWebBrowser problem during initialization.
4617
4618 2008-07-31  Jonathan Pobst  <monkey@jpobst.com>
4619
4620         * ToolStrip.cs: Fix an NRE caused by clicking on a ToolStripButton
4621         sitting on a MenuStrip.
4622
4623 2008-07-31  Jonathan Pobst  <monkey@jpobst.com>
4624
4625         * ToolStripButton.cs: If we "click" a top button on a menustrip that has
4626         no children with the keyboard, we need to release the keyboard capture.
4627         [Fixes bug #413567]
4628
4629 2008-07-31  Jonathan Pobst  <monkey@jpobst.com>
4630
4631         * ToolStripMenuItem.cs: If we "click" a top level menu item that has
4632         no children with the keyboard, we need to release the keyboard capture.
4633         [Fixes bug #413567]
4634
4635 2008-07-31  George Giolfan  <georgegiolfan@yahoo.com>
4636
4637         * ThemeVisualStyles.cs: Made ScrollBar rendering less strict so it supports
4638         the GTK+-based implementation of VisualStyles.
4639         * ThemeWin32Classic.cs: Exposed various layout values for use in the
4640         GTK+-based implementation of VisualStyles: ListViewGetHeaderHeight(Font),
4641         ListViewGetHeaderHeight(), ProgressBarChunkSpacing, ProgressBarGetChunkSize(),
4642         ProgressBarGetChunkSize(int), ProgressBarDefaultHeight,
4643         TrackBarGetThumbSize(), TrackBarVerticalTrackWidth,
4644         TrackBarHorizontalTrackHeight.
4645
4646 2008-07-31  George Giolfan  <georgegiolfan@yahoo.com>
4647
4648         * TabControl.cs: Added hot style handling for the scroll buttons.
4649         right_slider_state, left_slider_state are now of type PushButtonState to
4650         allow for a hot state. Added tracking of the mouse button being held down
4651         on a tab page. Extracted HasHotElementStyles, RightScrollButtonArea,
4652         LeftScrollButtonArea.
4653         * Theme.cs, ThemeWin32Classic.cs: Removed TabControlGetLeftScrollRect,
4654         TabControlGetRightScrollRect.
4655
4656 2008-07-30  Everaldo Canuto  <ecanuto@novell.com>
4657
4658         * MenuAPI.cs: Check for null GrabControl on ProcessMnemonic to prevent 
4659         runtime errors.
4660
4661 2008-07-30  Ivan N. Zlatev  <contact@i-nz.net>
4662
4663         * Form.cs: Ensure that we reset the shown_raised flag after 
4664         the form is closed, so that we raise the show events the next 
4665         time the form is shown.
4666         [Fixes bug #413141]
4667
4668 2008-07-30  Ivan N. Zlatev  <contact@i-nz.net>
4669
4670         * Form.cs: Ensure closing events are raised only once.
4671         [Fixes bug #413143]
4672
4673 2008-07-30  Ivan N. Zlatev  <contact@i-nz.net>
4674
4675         * X11Keyboard.cs: Refactor SendKeyboardInput to accept the keycode, 
4676         so that we can successfully generate the LParam in-place instead of 
4677         in KeyEvent, which isn't called for e.g. MainMenu. Fixes keyboard 
4678         navigation for menus.
4679
4680 2008-07-30  Everaldo Canuto  <ecanuto@novell.com>
4681
4682         * MenuAPI.cs: When montion don't set the keyboard navigation state to 
4683         'navigating'. Fixes bug #411356.
4684
4685 2008-07-30  Everaldo Canuto  <ecanuto@novell.com>
4686
4687         [Fixed remaining issues of #406773 (#1)]
4688         * MenuItem.cs: UpdateMenuItem added to track the shotcut changes.
4689
4690         * MenuAPI.cs: Don't create tracker on TrackPopupMenu, it will be created in
4691         MainMenu (already done) and ContextMenu creation.
4692
4693         * ContextMenu.cs: Create tracker on construction. 
4694
4695 2008-07-30  Everaldo Canuto  <ecanuto@novell.com>
4696
4697         * MenuAPI.cs: For ContextMenu set GrabControl on TrackPopupMenu, it make
4698         possible to instantiate MenuTracker without GrabControl.
4699
4700 2008-07-30  Everaldo Canuto  <ecanuto@novell.com>
4701
4702         * MenuAPI.cs: On constructor dont set the GrabControl for non ContextMenu.
4703
4704         * MainMenu.cs: Set GrabControl on SetForm using current form.
4705
4706 2008-07-30  Everaldo Canuto  <ecanuto@novell.com>
4707
4708         * MenuAPI.cs: Chage grab_control to GrabControl and make it public.
4709
4710 2008-07-30  Everaldo Canuto  <ecanuto@novell.com>
4711
4712         * MenuAPI.cs: Check if menu is activated before deactivate it in 
4713         ProcessShortcut.
4714
4715 2008-07-30  Ivan N. Zlatev  <contact@i-nz.net>
4716
4717         * TableLayoutStyleCollection, TableLayoutStyle.cs, RowStyle.cs, 
4718         ColumnStyle.cs: 
4719         Make the TableLayoutStyle owned by the the TableLayoutPanel, so that:
4720          - One style instance can only participate in a single style collection.
4721          - Styles can request their owner to layout whenever their properties 
4722          change.
4723          [Fixes bugs #412583 and #412582]
4724
4725 2008-07-29  Ivan N. Zlatev  <contact@i-nz.net>
4726
4727         * X11Keyboard.cs: Implement the generation of the LParam for 
4728         all keyboard messages.
4729         [Fixes bug #378728]
4730
4731 2008-07-29  Jonathan Pobst  <monkey@jpobst.com>
4732
4733         * ListBox.cs: Don't let the user set TopIndex so high that it
4734         scrolls up far enough to show empty items.
4735         [Fixes bug #412728]
4736
4737 2008-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4738
4739         * ThemeWin32Classic.cs: Actually commit the changes to fix #410880
4740         (I'm an idiot and forgot to commit the actual changes, as well as
4741         specify the right file, which is this one, not ListView.cs).
4742
4743 2008-07-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4744
4745         * ListView.cs: Don't draw ListViewSubItem instances from
4746         DrawListViewItem - we need to reuse the main item's drawing for the
4747         first sub item in case owner draw is true, but wants the system to
4748         do the default draw for the first sub item, without incurring in a
4749         recursion problem.
4750         Fixes #410880.
4751
4752 2008-07-28  Jonathan Pobst  <monkey@jpobst.com>
4753
4754         * ToolStripButton.cs: Update Checked for CheckOnClick before
4755         raising the Click event.  [Fixes bug #412505]
4756
4757 2008-07-28  Ivan N. Zlatev  <contact@i-nz.net>
4758
4759         * Form.cs: Remove some seems leftover code for non-TopLevel's 
4760         CreateParams, which is breaking ClientSize sizing, because it 
4761         removes the border window styles.
4762
4763 2008-07-27  Ivan N. Zlatev  <contact@i-nz.net>
4764
4765         * PropertyGrid.cs: Invalidate the View when the PropertyTab 
4766         changes.
4767
4768 2008-07-25  Gert Driesen  <drieseng@users.sourceforge.net>
4769
4770         * WebBrowser.cs: Removed debug output.
4771
4772 2008-07-25  Jonathan Pobst  <monkey@jpobst.com>
4773
4774         * FileDialog.cs: Apply patch from Ernesto to clean up some
4775         dialog messages.
4776
4777 2008-07-25  Ivan N. Zlatev  <contact@i-nz.net>
4778
4779         * TableLayoutPanel.cs: Perform layout on GrowStyle change, so 
4780         that the change has an immediate effect.
4781
4782 2008-07-25  Ivan N. Zlatev  <contact@i-nz.net>
4783
4784         * ScrollableControl.cs: Update PerformLayout calls to include 
4785         provide the name of the property that changed.
4786
4787 2008-07-25  Ivan N. Zlatev  <contact@i-nz.net>
4788
4789         * TableLayoutPanel.cs: Draw relative to the DisplayRectangle 
4790         location. Fixes drawing of border and cell borders if scrollable.
4791
4792 2008-07-25  Ivan N. Zlatev  <contact@i-nz.net>
4793
4794         * ScrollableControl.cs: Perform layouting after the AutoScroll 
4795         properties have changed, so that the changes have immediate 
4796         effect.
4797         [Fixes bug #409090]
4798
4799 2008-07-25  Ivan N. Zlatev  <contact@i-nz.net>
4800
4801         * XplatUIX11.cs: Non Client area is actually Client such in the 
4802         case of NotifyIcon, so double check WholeWindow == ClientWindow 
4803         when adding an expose.
4804         [Fixes bugs #324237 and #357022]
4805
4806 2008-07-25  Ivan N. Zlatev  <contact@i-nz.net>
4807
4808         * TableLayoutPanel.cs: Invalidate after layouting, so that we 
4809         repaint the cell borders.
4810
4811 2008-07-25  Ivan N. Zlatev  <contact@i-nz.net>
4812
4813         * PropertyGridTextBox.cs: Stop filtering messages prior to our 
4814         disposal to avoid unexpected ObjectDisposedExceptions.
4815
4816 2008-07-24  Ivan N. Zlatev  <contact@i-nz.net>
4817
4818         * TableLayoutPanel.cs: Layout on Row/Column count change.
4819
4820 2008-07-22  Gert Driesen  <drieseng@users.sourceforge.net>
4821
4822         * ListViewItem.cs: Changed binary serialization to match MS. Fixes
4823         bug #409351.
4824         * PictureBox.cs: When ImageLocation is set to null or an empty string,
4825         only set image to null if it was previously initialized from an url
4826         (or using ImageLocation). In ImageLocation, load specified image
4827         asynchronously if WaitOnLoad is false. Added support for local file
4828         paths to LoadAsync, and added missing argument check.
4829
4830 2008-07-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4831
4832         * DateTimePicker.cs: 
4833         * ThemeWin32Classic.cs: Add a editing capability to DateTimePicker, in
4834         order to set the value as required (which means: when selection
4835         changes for a part being edited, and not before that if not needed).
4836         Also use an enum to describe which part are we using, and use the
4837         selection as a property in PartData, in order to notify the
4838         DateTimePicker owner that we need to end the current edit.
4839         Fixes #383462.
4840
4841 2008-07-17  Ivan N. Zlatev  <contact@i-nz.net>
4842
4843         * PropertyGridTextBox.cs: Validation should be performed only if we 
4844         are focused. We can lose focus for example if the Return key is used 
4845         to set the entry and there is an error. When the message box is 
4846         displayed we would have validate on click in the message box.
4847
4848 2008-07-16  Ivan N. Zlatev  <contact@i-nz.net>
4849
4850         * GridEntry.cs: Checking for DesignerSerializaitonVisibility.Content 
4851         in order to determine that we are expandable is wrong. There was a bug, 
4852         now fixed, in TypeDescriptor that was causing the wrong converter to be 
4853         returned which caused GetPropertiesSupported == false in most cases.
4854         [Fixes bug #409027]
4855
4856 2008-07-15  Jonathan Pobst  <monkey@jpobst.com>
4857
4858         * ImageList.cs: Fix ICollection.CopyTo implementation for
4859         ImageListCollection.  [Fixes bug #409169]
4860
4861 2008-07-14  Jonathan Pobst  <monkey@jpobst.com>
4862
4863         * MenuAPI.cs, ToolStripDropDown.cs: Use VirtualScreen instead of
4864         WorkingArea so that menus can appear on the second monitor
4865         when one has dual monitors.
4866
4867 2008-07-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4868
4869         * TextBox.cs: Auto complete stuff in WndProc should be 2.0 only.
4870         Fixes build.
4871
4872 2008-07-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4873
4874         * TextBox.cs: Implement navigation support for auto complete in
4875         TextBox, as well as refactor the code to show the auto complete window
4876         when receiving a WM_CHAR message, instead of TextChanged, since
4877         autocomplete itself should be able to set the Text a lot of times and
4878         finally only typing should show it, not changes from code.
4879
4880 2008-07-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4881
4882         * TabControl.cs: When expanding the selected tab, don't adjust the
4883         width if alignment is Right, since it has a different offset than 0,
4884         as opposed to the other alignments.
4885         Fixes the selected tab not being painted at all with alignment = Right
4886         and using FillToRight size mode.
4887
4888 2008-07-14  Jonathan Pobst  <monkey@jpobst.com>
4889
4890         * TreeView.cs: Fix ToString to match MS.  [Fixes bug #409029]
4891
4892 2008-07-14  Jonathan Pobst  <monkey@jpobst.com>
4893
4894         * NumericUpDown.cs: Apply patch from Andy Hume to clamp out of range
4895         values from the textbox to the boundary values.  [Fixes bug #409026]
4896
4897 2008-07-14  Jonathan Pobst  <monkey@jpobst.com>
4898
4899         * TreeNodeCollection.cs: We were copying one too many elements when
4900         doing our array copy.  Fixes a crash when RemoveAt is called.
4901         [Fixes bug #408999]
4902
4903 2008-07-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4904
4905         * TabControl.cs: When doing the layout and need to call FillRow -using
4906         FillToRight size mode-, use the overload receiving a bool param
4907         indicating whether we need to do a vertical or horizontal calculation.
4908         Fixes part of #399583.
4909
4910 2008-07-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4911
4912         * TextBox.cs: When painting, use the value returned by
4913         GetLastVisibleItem instead of using the cached last_item field, since
4914         there could be a desynchronization between the layout and the
4915         painting. Fixes a AOOR exception in auto complete mode.
4916
4917 2008-07-12  George Giolfan  <georgegiolfan@yahoo.com>
4918
4919         * ThemeVisualStyles.cs: Disabled when Application.VisualStyleState is
4920         NonClientAreaEnabled until our VisualStyles is modified to allow it.
4921
4922 2008-07-12  Gert Driesen  <drieseng@users.sourceforge.net>
4923
4924         * TextBox.cs: Fixed NRE in LostFocus. Avoid unnecessary initialization.
4925
4926 2008-07-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4927
4928         * TextBox.cs: When focus is lost, if the auto complete listbox is
4929         visible, hide it.
4930
4931 2008-07-11  George Giolfan  <georgegiolfan@yahoo.com>
4932
4933         * InternalWindowManager.cs: HandleSizing: Implemented a better minimum
4934         tracking size for tool windows.
4935         * Theme.cs, ThemeWin32Classic.cs : Extracted
4936         ManagedWindowSpacingAfterLastTitleButton.
4937
4938 2008-07-11  Jonathan Pobst  <monkey@jpobst.com>
4939
4940         * ThemeEngine.cs: Remove the clearlooks, nice, and old gtk themes.
4941         They are bit-rotted and have always been listed as "unsupported".
4942
4943 2008-07-11  Jonathan Pobst  <monkey@jpobst.com>
4944
4945         * PictureBox.cs: Don't crash if ImageLocation is set to "" or null.
4946
4947 2008-07-11  George Giolfan  <georgegiolfan@yahoo.com>
4948
4949         * ThemeVisualStyles.cs: Fixed minimized window height adjustment.
4950
4951 2008-07-10  Jonathan Pobst  <monkey@jpobst.com>
4952
4953         * ListBox.cs: Make sure last_item_visible gets reset before we try
4954         to do a layout due to scrollbars appearing or disappearing.
4955         [Fixes bug #408139]
4956
4957 2008-07-10  Jonathan Pobst  <monkey@jpobst.com>
4958
4959         * XPlatUIWin32.cs: Change GetMenuOrigin to calculate borders better
4960         for different window themes.  [Fixes bug #339140]
4961
4962 2008-07-10  George Giolfan  <georgegiolfan@yahoo.com>
4963
4964         * ThemeWin32Classic.cs: Implemented minimized window border width properly,
4965         in ManagedWindowBorderWidth.
4966
4967 2008-07-10  Jonathan Pobst  <monkey@jpobst.com>
4968
4969         * InternalWindowManager.cs: Change MouseMove to take a point, so
4970         we can use the same point later on.
4971         * MdiWindowManager.cs: Store point sent to MouseMove so we can
4972         later reset to it.  On Windows, the Cursor.Position had already
4973         changed by the time we were resetting to it.
4974         [Fixes bug #363239]
4975
4976 2008-07-10  Jonathan Pobst  <monkey@jpobst.com>
4977
4978         * InternalWindowManager.cs: Ignore mouse actions on TitleButtons that
4979         are inactive.
4980         * ThemeWin32Classic.cs: Disable or hide MinimizeBox/MaximizeBox if
4981         user requested it.
4982         [Fixes bug #398686]
4983
4984 2008-07-10  Jonathan Pobst  <monkey@jpobst.com>
4985
4986         * MdiWindowManager.cs: Double-clicking on the title bar should not
4987         maximize a MDI form if MaximizeBox = false.
4988
4989 2008-07-10  George Giolfan  <georgegiolfan@yahoo.com>
4990
4991         * ThemeVisualStyles.cs: Fixed a warning.
4992
4993 2008-07-10  George Giolfan  <georgegiolfan@yahoo.com>
4994
4995         * ThemeVisualStyles.cs: Fixed warnings and formatted.
4996
4997 2008-07-10  George Giolfan  <georgegiolfan@yahoo.com>
4998
4999         * ThemeVisualStyles.cs: Removed ManagedWindowGetMenuButtonSize. The base
5000         implementation produces a better result.
5001
5002 2008-07-10  George Giolfan  <georgegiolfan@yahoo.com>
5003
5004         * ThemeVisualStyles.cs: Adjusted height and border rendering for minimized
5005         windows.
5006
5007 2008-07-10  George Giolfan  <georgegiolfan@yahoo.com>
5008
5009         * Application.cs: Added VisualStylesEnabled because XplatUI.ThemesEnabled
5010         cannot be used from the ThemeEngine constructor.
5011         * ThemeEngine.cs: Changed the XplatUI.ThemesEnabled check to
5012         Application.VisualStylesEnabled because it does not work on X11.
5013
5014 2008-07-09  Jonathan Pobst  <monkey@jpobst.com>
5015
5016         * StatusBar.cs: Apply patch from Andy Hume to remove lazy instantiation
5017         that we did not always check for, as well as fixes to the IList
5018         implementations.  [Fixes bug #402703]
5019
5020 2008-07-09  George Giolfan  <georgegiolfan@yahoo.com>
5021
5022         * IDeviceContext.cs: Added Dispose.
5023
5024 2008-07-09  George Giolfan  <georgegiolfan@yahoo.com>
5025
5026         * Control.cs: Added OnSizeInitializedOrChanged.
5027         * Form.cs: OnLoadInternal: Added a call to
5028         Control.OnSizeInitializedOrChanged.
5029         * InternalWindowManager.cs:
5030          * HandleTitleBarMouseMove: No longer invalidates the parent window.
5031          * DrawTitleButton: Extracted Theme.ManagedWindowDrawMenuButton.
5032          * TitleButton: Added Entered.
5033          * TitleButtons.MouseMove: Added handling of TitleButton.Entered.
5034         * MdiWindowManager.cs:
5035          * HandleTitleBarMouseMove: Now invalidates the parent window when a mouse
5036          move over the maximized title buttons causes a change.
5037          * IsActive: Can now be called before the window is added to a MDI parent.
5038         * Theme.cs: Added ManagedWindowTitleButtonHasHotElementStyle,
5039         ManagedWindowDrawMenuButton, ManagedWindowOnSizeInitializedOrChanged.
5040         * ThemeVisualStyles.cs: Implemented proper managed window rendering.
5041         * ThemeWin32Classic.cs:
5042          * Extracted ManagedWindowDrawTitleBarAndBorders, ManagedWindowDrawTitleButton.
5043          * DrawTitleButton takes a new form parameter.
5044          * Added ManagedWindowTitleButtonHasHotElementStyle,
5045          ManagedWindowDrawMenuButton, ManagedWindowOnSizeInitializedOrChanged.
5046
5047 2008-07-09  George Giolfan  <georgegiolfan@yahoo.com>
5048
5049         * ThemeEngine.cs: ThemeVisualStyles is now selected if
5050         Application.EnableVisualStyles has been called, even if the current system
5051         configuration does not support rendering with Visual Styles.
5052         * ThemeVisualStyles.cs: Now falls back to ThemeWin32Classic when Visual
5053         Styles should not be used.
5054
5055 2008-07-08  Jonathan Pobst  <monkey@jpobst.com>
5056
5057         * ComboBox.cs: PreferredHeight is not tied to ItemHeight.  Fixes 3rd
5058         ComboBox in FormsTest.
5059
5060 2008-07-08  Ivan N. Zlatev  <contact@i-nz.net>
5061
5062         * ThemeWin32Classic.cs: (ManagedWindowBorderWidth): width 3 is only 
5063         for fixed toolwindows.
5064
5065 2008-07-08  George Giolfan  <georgegiolfan@yahoo.com>
5066
5067         * Form.cs: SetBoundsCore: Added minimum size for minimized windows.
5068
5069 2008-07-07  Ivan N. Zlatev  <contact@i-nz.net>
5070
5071         * Control.cs: CreateControl just returns if the Control is diposed 
5072         and doesn't throw ObjectDisposedException.
5073         [Fixes bug #406566]
5074
5075 2008-07-07  Ivan N. Zlatev  <contact@i-nz.net>
5076
5077         * Control.cs: Do not create the control if the parent isn't created 
5078         yet, e.g in the case of a parented form on which .Show is called.
5079         It will be created when the parent is made visible/created.
5080         Improves #402446.
5081
5082 2008-07-07  Ivan N. Zlatev  <contact@i-nz.net>
5083
5084         * Form.cs: Avoid recursively calling OnSizeChanged due to recursive 
5085         WM_WINDOWPOSCHANGED caused by the layouting code on win32.
5086         [Fixes bug #406786]
5087
5088 2008-07-07  Ivan N. Zlatev  <contact@i-nz.net>
5089
5090         * Form.cs: When disposed set owner to null. Improves #402446.
5091
5092 2008-07-07  Ivan N. Zlatev  <contact@i-nz.net>
5093
5094         * Form.cs, FlowLayoutPanel.cs: When calculating the PreferredSize 
5095         use children's PreferredSize if in AutoSize mode and ExplicitBounds 
5096         if not.
5097         * Form.cs: Take the Padding into account for the PreferredSize.
5098         [Fixes bug #402849]
5099
5100 2008-07-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5101
5102         * TabControl.cs: Since we don't support more than one direction in
5103         TabControl rows alignment (this is, the row becomes the
5104         bottom row when selected), make Direction return always 1. This way
5105         the layout doesn't get confused about a bad calculation.
5106         Fixes #399582.
5107
5108 2008-07-07  Ivan N. Zlatev  <contact@i-nz.net>
5109
5110         * XplatUIX11.cs: Implement NC hit-testing for mouse down/up messages, 
5111         so that the wparam is properly set.
5112         Fixes form moving in the test case in bug 402446.
5113
5114 2008-07-07  Jonathan Pobst  <monkey@jpobst.com>
5115
5116         * FolderBrowserDialog.cs: If we can't find the SelectedPath, display
5117         the full tree instead of nothing.  [Improves bug #406584]
5118
5119 2008-07-07  George Giolfan  <georgegiolfan@yahoo.com>
5120
5121         * ThemeWin32Classic.cs: Adjusted minimized window painting.
5122
5123 2008-07-07  George Giolfan  <georgegiolfan@yahoo.com>
5124
5125         * InternalWindowManager.cs: No longer draws decorations for maximized MDI
5126         children.
5127
5128 2008-07-04  Jonathan Pobst  <monkey@jpobst.com>
5129
5130         * TreeView.cs: Add a null check when using CollapseAll on an
5131         empty tree.  [Fixes bug #406449]
5132
5133 2008-07-03  Jonathan Pobst  <monkey@jpobst.com>
5134
5135         * Form.cs: Make OnMenuComplete internal so we can call it.
5136         * MenuAPI.cs: Raise Form.MenuComplete when a menu item is clicked.
5137         [Fixes bug #399321]
5138
5139 2008-07-03  Jonathan Pobst  <monkey@jpobst.com>
5140
5141         * TabControl.cs: Handle Up and Down keys when TabControl is in
5142         vertical alignment.
5143         [Fixes bug #399585]
5144
5145 2008-07-03  Jonathan Pobst  <monkey@jpobst.com>
5146
5147         * TabControl.cs: Invalidate when we remove a tab.  Guard against
5148         an AOORE when trying to remove a tabpage that is not owned by the
5149         parent control.
5150         [Fixes bug #399927]
5151
5152 2008-07-03  Jonathan Pobst  <monkey@jpobst.com>
5153
5154         * ScrollBar.cs: Change the LargeChange calculation to be correct.
5155         Ensure we are using LargeChange instead of large_change so we our
5156         calculations are correct.
5157         [Fixes bug #403122]
5158
5159 2008-07-03  Jonathan Pobst  <monkey@jpobst.com>
5160
5161         * TableLayoutPanel.cs: When we change to a serialized TableLayoutSettings,
5162         we need to ensure the ColumnCount/RowCount gets set.
5163         [Fixes bug #404851]
5164
5165 2008-07-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5166
5167         * ListBox.cs: When handling item navigation, if selection mode is
5168         None, call EnsureVisible, since scrolling is normally handled by
5169         selection, that we are not calling in this case.
5170         Fixes #398345.
5171
5172 2008-07-02  Jonathan Pobst  <monkey@jpobst.com>
5173
5174         * ContainerControl.cs: Apply a patch from Ernesto Carrea that adds
5175         a null check to our focus walking code.  [Fixes bug #394332]
5176
5177 2008-07-02  Andy Hume <andyhume32 at yahoo dot co dot uk>
5178
5179         * ComboBox.cs: Case missed in bug 379596 "Support item
5180         navigation by entering text": On _close_ drop-down select
5181         the first item matching the text in the textbox.  [Fixes bug #397265]
5182
5183 2008-07-02  Jonathan Pobst  <monkey@jpobst.com>
5184
5185         * DataGridView.cs: Fix a crash when sorting by column headers, 
5186         mentioned in bug #404841.  Remove some dead switch cases.
5187
5188 2008-07-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5189
5190         * ComboBox.cs:
5191         * TextBox.cs: Implement AutoComplete support for ComboBox, which just
5192         uses the AutoComplete support in the internal TextBox. Also TextBox
5193         can store a reference to ComboBox, in case AutoCompleteSource is set
5194         to ListItems (this is, ComboBox's items, and we don't want to pass an
5195         additional collection).
5196
5197 2008-07-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5198
5199         * ListViewItem.cs: Restore the initial value of bounds rect to
5200         Rectangle.Empty, and is this value for Layout detection in virtual
5201         mode. Fixes the tests.
5202
5203 2008-06-30  Jonathan Pobst  <monkey@jpobst.com>
5204
5205         * XPlatUI.cs: Remove references to "new" X11 backend.
5206
5207 2008-06-28  Ivan N. Zlatev  <contact@i-nz.net>
5208
5209         * Control.cs: Add an internal virtual OnDragDropEnd method 
5210         to allow controls such as ListBox, which depend on a sequence 
5211         of MouseDown+Move+End events, to handle the lack of a MouseUp 
5212         when a DnD operation is started in MouseDown.
5213         * ListBox.cs: If a DnD operation is started in MouseDown we won't 
5214         get a MouseUp, so reset our state whenever a DnD operation ends.
5215
5216 2008-06-28  Ivan N. Zlatev  <contact@i-nz.net>
5217
5218         * PropertyGrid.cs: Clear the root griditem first thing when 
5219         new object/s is/are selected. Fixes some rare cases where 
5220         the View will get a paint request and won't know that the 
5221         grid is in the process of repopulating.
5222
5223 2008-06-27  Ivan N. Zlatev  <contact@i-nz.net>
5224
5225         * XplatUIX11.cs, InternalWindowManager.cs: 
5226         If WS_EX_TOOLWINDOW is set in the CreateParams for a form MS 
5227         doesn't automagically update the FormBorderStyle, so we must 
5228         double check the CreateParams explicitly to determine if the 
5229         window is a toolwindow.
5230         * ThemeWin32Classic.cs: Use InternalWindowManager.IsToolWindow 
5231         instead of doing custom checks.
5232
5233         Fixes toolwindows for the test case in bug #402446
5234
5235 2008-06-27  Ivan N. Zlatev  <contact@i-nz.net>
5236
5237         * Control.cs: Visibility of the control should be false 
5238         when the handle is destroyed in WmDestroy and not immediately 
5239         in Dispose(). This is effectively where the disposing process 
5240         ends even though the control is marked as Disposed immediately 
5241         after calling Dispose().
5242         [Fixes bug #402446]
5243
5244 2008-06-27  Ivan N. Zlatev  <contact@i-nz.net>
5245
5246         * PropertyGridTextBox.cs: Start monitoring the mouse clicks 
5247         when the textbox gets focus.
5248         [Fixes bug #402704]
5249
5250 2008-06-27  Ivan N. Zlatev  <contact@i-nz.net>
5251
5252         * PropertyGridTextBox.cs, PropertyGridView.cs: 
5253          - Alt + Down should show the drop down editor.
5254          - Focus the editor when showing it
5255         [Fixes bug #402710]
5256
5257 2008-06-25  Jonathan Pobst  <monkey@jpobst.com>
5258
5259         * ThemeWin32Classic.cs: Fix from Andy for panel text for panels
5260         that are not the first panel.
5261         * StatusBar.cs: Ensure that the X coordinate of panels is always
5262         stored.  Fix IList implementation of StatusBarPanelCollection to
5263         call the regular methods.
5264         [Fixes bug #403599, #402165]
5265
5266 2008-06-23  Jonathan Pobst  <monkey@jpobst.com>
5267
5268         * ThemeWin32Classic.cs: Fix position calculation for centered
5269         text on status bar panels.  [Fixes bug #402165]
5270
5271 2008-06-22  Ivan N. Zlatev  <contact@i-nz.net>
5272
5273         * Splitter.cs: Fix Splitter to:
5274          - Work for arbitrary splitter size
5275          - Handle MinSize and MinExtra properly
5276          - Get rid of absolute positioning during drag and use relative
5277          - Multiple other fixes 
5278          [Fixes bug #338966]
5279
5280 2008-06-22  Ivan N. Zlatev  <contact@i-nz.net>
5281
5282         * Cursor.cs: Show shouldn't hide the cursor.
5283
5284 2008-06-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5285
5286         * ListViewItem.cs: When invalidating, add some extra space to bounds,
5287         since focus rectangle and selection can add some space and need to
5288         take into account those small offsets - specially in Details view.
5289         * ListView.cs: Instead of invalidate using item Bounds directly, call
5290         item.Invalidate, to have the code centralized.
5291         Fixes focused/selection garbage when selecting and deselecting items
5292         that are close.
5293
5294 2008-06-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5295
5296         * ListViewItem.cs: Set bounds initially to -1 values - thus in virtual
5297         mode we can check whether we have to force a Layout or not, and can
5298         cache based on this, instead of avoiding caching all the the time. Do
5299         this check in GetBounds and TextBounds.
5300         Fixes selection in Details view.
5301
5302 2008-06-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5303
5304         * ListView.cs: Make HeaderControl internal, thus the theme engine can
5305         get its *real* height instead of trying to infere it.
5306         * ThemeWin32Classic.cs: When drawing gridlines, don't iterate over the items to
5307         get the position of them, since it's in general a bad idea in general,
5308         and because we can't do that in virtual mode. Instead get the first
5309         visible item as well as item height, and draw them.
5310         Fixes #400390.
5311
5312 2008-06-20  Jonathan Pobst  <monkey@jpobst.com>
5313
5314         * ToolStripSplitButton.cs: We can't add in extra width if
5315         the button is not AutoSize.  [Fixes bug #401279]
5316
5317 2008-06-20  Ivan N. Zlatev  <contact@i-nz.net>
5318
5319         * PaddingConverter.cs: 
5320          - Implement conversion to InstanceDescriptor
5321          - Handle "All" in CreateInstance by using the supplied 
5322          ITypeDescriptorContext.
5323          [Fixes bugs #396076 and #396078]
5324
5325          Patch by Andy Hume  <andyhume32@yahoo.co.uk>
5326          Code contributed under MIT/X11 license.
5327
5328 2008-06-19  Andy Hume <andyhume32 at yahoo dot co dot uk>
5329
5330         * ComboBox.cs, ListControl.cs, Control.cs, Button.cs, 
5331         ButtonBase.cs:
5332         Add Category attributes.
5333         Code is contributed under the MIT/X11 license.
5334
5335 2008-06-18  Ivan N. Zlatev  <contact@i-nz.net>
5336
5337         * Form.cs: 
5338          - Fix a NRE when unparenting a form.
5339          - Do not recreate or destroy a parented form when 
5340         unparenting. 
5341
5342 2008-06-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5343
5344         * TextBox.cs: Implement basic support for AutComplete with custom
5345         sources.
5346
5347 2008-06-18  Jonathan Pobst  <monkey@jpobst.com>
5348
5349         * ToolStripSplitButton.cs: Left and Top of ButtonBounds, SplitterBounds,
5350         DropDownButtonBounds should be from the origin of the button, not the
5351         ToolStrip.  [Fixes bug #401279]
5352
5353 2008-06-16  Sandy Armstrong <sanfordarmstrong@gmail.com> 
5354
5355         * X11DesktopColors.cs: Clear GTK_MODULES environment variable before
5356           running gtk_init_check.  This prevents GAIL from loading
5357           unnecessarily, which was breaking UIA support.  Initial fix for bug
5358           #375987.
5359         * Application.cs: Add UIA support to Winforms.  New static constructor
5360           uses reflection to initialize UIAutomationWinforms assembly.  Added
5361           PreRun event so UIA can initialize before the mainloop starts, and
5362           FormAdded event so UIA can provide a11y support for new Forms in an
5363           Application.
5364
5365 2008-06-16  Jonathan Pobst  <monkey@jpobst.com>
5366
5367         * DataGridView.cs: When binding to a dataset, subscribe to table
5368         and column change events.  Unsubscribe to these when we clear bindings.
5369         [Fixes bug #399601]
5370
5371 2008-06-14  Everaldo Canuto  <ecanuto@novell.com>
5372
5373         [DataGrid drawing refactory]
5374
5375         * DataGrid.cs: Fix the caption size, we need one pixel more for divider.
5376
5377         * DataGridColumnStyle.cs: Removing PaintHeader code, the draw operations
5378         must be handle by Theme, now it call DataGridPaintColumnHeader.
5379
5380         * DataGridTextBoxColumn.cs: Fix the textbox size. It must be one pixel less,
5381         test cases must be also fixed because it checks for wrong size.
5382
5383         * ThemeWin32Classic.cs: 
5384                 - Draw the bottom line of grid caption.
5385                 - Prevent to draw caption text when it is empty.
5386                 - Use CPDrawBorder3D for 3D efects to simplify code.
5387                 - Uses 3D (when not flat) to paint corner shared between row and column
5388                 header.
5389                 - Fix header drawing issues on win32, now borders are drawing.
5390                 - Fix column header paint issues to mimic win32.
5391                 - Adjust header drawing for last column, like first one it must be draw
5392                 different.
5393                 - Added DataGridPaintRowHeaderStar to draw star like .net does, it is
5394                 not an character.
5395                 - DataGridPaintColumnHeader created to draw column headers, it also
5396                 paint stuff right on Win32.
5397                 - Use DataGridPaintColumnHeader method instead of DataGridColumnStyle 
5398                 class.
5399
5400         * Theme.cs: 
5401                 - DataGridPaintRowHeaderStar method added.
5402                 - DataGridPaintColumnHeader method added.
5403
5404 2008-06-13  Jonathan Pobst  <monkey@jpobst.com>
5405
5406         * Control.cs: Don't reset to Dock style layout if DockStyle is
5407         set to none.  [Fixes bug #399316]
5408
5409 2008-06-12  Everaldo Canuto  <ecanuto@novell.com>
5410
5411         * Win32DnD.cs: Fix the check for control not equal null.
5412         Fixes bug #341420 and #381886. 
5413
5414 2008-06-12  Jonathan Pobst  <monkey@jpobst.com>
5415
5416         * DataGridViewRowCollection.cs: Update the indexes of rows after
5417         one has been removed.
5418         * DataGridViewSelectedRowCollection.cs: Add internal clear method.
5419         * DataGridViewSelectedColumnCollection.cs: Add internal clear method.
5420         * DataGridView.cs: Add support for deleting rows via Delete key, deleting
5421         rows for the Rows collection, or deleting rows from the bound DataSet.
5422
5423 2008-06-12  Jonathan Pobst  <monkey@jpobst.com>
5424
5425         * DataGridView.cs: Listen to a DataSet's changed event even
5426         when autogeneratecolumns is false.  Refactor the changed event's
5427         add row code to use the same as the existing add row code.
5428         [Fixes bug #399601]
5429
5430 2008-06-11  Jonathan Pobst  <monkey@jpobst.com>
5431
5432         * TextBoxBase.cs: We need to call RaiseSelectionChanged pretty
5433         much any time the caret moves and there is text, not just when
5434         the selection changes as one would think.
5435         * RichTextBox.cs: Override RaiseSelectionChanged and fire
5436         SelectionChanged.
5437         [Fixes bug #397271]
5438
5439 2008-06-11  Jonathan Pobst  <monkey@jpobst.com>
5440
5441         * FontDialog.cs: Forward ListBox keyboard events to the ListBox
5442         instead of trying to duplicate the code.
5443         * ListBox.cs: Make method internal so we can send keyboard events.
5444         [Fixes bug #398344]
5445         
5446 2008-06-11  Jonathan Pobst  <monkey@jpobst.com>
5447
5448         * TextBoxBase.cs: When pasting and checking the max length,
5449         subtract the selected text length (the text we will be replacing) from
5450         the document length.
5451         * TextControl.cs: Ensure every character insertion is reflected in
5452         charcount, so max length will work properly.
5453         [Fixes bug #398605]
5454
5455 2008-06-11  Jonathan Pobst  <monkey@jpobst.com>
5456
5457         * ListBox.cs: Ensure scrollbars are updated when a single
5458         column listbox with an already set top-index is created.
5459         [Fixes bug #398342]
5460
5461 2008-06-11  Jonathan Pobst  <monkey@jpobst.com>
5462
5463         * FontDialog.cs: Typing in the font/style textboxes should search
5464         the list boxes case-insensitively.  [Fixes bug #398343]
5465
5466 2008-06-11  George Giolfan  <georgegiolfan@yahoo.com>
5467
5468         * ThemeWin32Classic.cs: Managed window title bar layout now uses actual
5469         widths of icon and buttons instead of hard coded values.
5470
5471 2008-06-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5472
5473         * ListBox.cs: When SelectionMode is None, clicking an item should move focus
5474         as well as generating a SelectedIndexChanged event, just like .Net does
5475         -surprise-.
5476         Fixes #398345.
5477
5478 2008-06-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5479
5480         * ListBox.cs: When navigating items visually, use FocusedItem as the
5481         reference point instead of SelectedIndex, since even in
5482         SelectionMode.None we need to support navigation, and in that case we
5483         just can't use SelectedIndex.
5484         Fixes part of #398345.
5485
5486 2008-06-10  Jonathan Pobst  <monkey@jpobst.com>
5487
5488         * Control.cs: Make a SetBoundsInternal that avoids the new
5489         SetBounds code.
5490         * ComboBox.cs, Form.cs, ListBox.cs, ScrollableControl.cs: Use
5491         SetBoundsInternal instead of SetBoundsCoreInternal.
5492
5493 2008-06-10  Ivan N. Zlatev  <contact@i-nz.net>
5494
5495         * ScrollableControl.cs: Use SetBoundsCoreInternal instead of 
5496         SetBounds for the scrollbars.
5497
5498 2008-06-10  Andreia Gaita <avidigal@novell.com> 
5499
5500         * HtmlDocument.cs: Implement RightToLeft, ContextMenuShowing,
5501           FocusingEvent, LosingFocusEvent, OnMouseDown, OnMouseLeave,
5502           OnMouseMove, OnMouseOver, OnMouseUp
5503         * HtmlElement.cs: Optimize InsertBefore. Implement RemoveFocus,
5504           ScrollIntoView, Focusing, GotFocus, LosingFocus, LostFocus.
5505         * HtmlElementCollection.cs, HtmlWindowCollection.cs: Keep a reference
5506           to the WebControl object to pass to new collection objects
5507         * HtmlHistory.cs: Implement support for individual window histories.
5508         * HtmlWindow.cs: Implement History, Position, Size, WindowFrameElement,
5509           AttachEventHandler, DetachEventHandler, RemoveFocus, Error,
5510           GotFocus, LostFocus, OnLoad, OnUnload
5511         * WebBrowser.cs: Implement EncryptionLevel, ScrollBarsEnabled,
5512           ContextMenu
5513         * WebBrowserBase.cs: Implement Cursor, Enabled, UseWaitCursor, Add
5514           security level changes and context menu event support.
5515
5516 2008-06-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5517
5518         * ComboBox.cs: Pressing Enter should close the dropdown listbox, just
5519         as happens with Esc, patch my Andy Hume.
5520         Fixes #396294.
5521
5522 2008-06-10  George Giolfan  <georgegiolfan@yahoo.com>
5523
5524         * MdiWindowManager.cs: DrawMaximizedButtons now uses
5525         ManagedWindowGetMenuButtonSize instead of ManagedWindowButtonSize.
5526         * Theme.cs: Made MenuButtonSize platform dependent. Added
5527         ManagedWindowButtonSize.
5528         * ThemeWin32Classic.cs: Added ManagedWindowGetMenuButtonSize.
5529         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added MenuButtonSize.
5530
5531 2008-06-10  George Giolfan  <georgegiolfan@yahoo.com>
5532
5533         * DateTimePicker.cs, Theme.cs, ThemeVisualStyles.cs, ThemeWin32Classic.cs:
5534         Added support for rendering with VisualStyles.
5535
5536 2008-06-10  George Giolfan  <georgegiolfan@yahoo.com>
5537
5538         * ComboBox.cs, Theme.cs, ThemeVisualStyles.cs, ThemeWin32Classic.cs: Added
5539         support for rendering the border with VisualStyles.
5540
5541 2008-06-10  George Giolfan  <georgegiolfan@yahoo.com>
5542
5543         * InternalWindowManager.cs: Added ShowIcon. Fixed IconRectangleContains when
5544         the icon is not shown.
5545         * ThemeWin32Classic.cs: Now uses InternalWindowManager.ShowIcon instead of
5546         its own logic.
5547
5548 2008-06-10  George Giolfan  <georgegiolfan@yahoo.com>
5549
5550         * InternalWindowManager.cs: Draw minimized windows even if they don't have
5551         borders.
5552
5553 2008-06-09  Jonathan Pobst  <monkey@jpobst.com>
5554
5555         * ComboBox.cs, ListBox.cs: Use SetBoundsInternalCore instead of SetBounds.
5556
5557 2008-06-09  Jonathan Pobst  <monkey@jpobst.com>
5558
5559         * Control.cs: Fill in the defaults for unspecified bounds in SetBounds.
5560         [Fixes bug #397943]
5561
5562 2008-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5563
5564         * ComboBox.cs: When snaping height -because of IntegralHeight set to
5565         true- with ComboBoxStyle.Simple, set the height to PreferredHeight
5566         if the requested height leaves the listbox area with *less* than the
5567         required are to see one item. We were setting it to PreferredHeight
5568         even for values matching the height for a single item.
5569         Fixes #396297.
5570
5571 2008-06-06  Jonathan Pobst  <monkey@jpobst.com>
5572
5573         * DataGridViewCell.cs: Simplify GetInheritedStyle by using ApplyStyle.
5574
5575 2008-06-06  Jonathan Pobst  <monkey@jpobst.com>
5576
5577         * DataGridViewCell.cs: Use property instead of field.
5578
5579 2008-06-06  George Giolfan  <georgegiolfan@yahoo.com>
5580
5581         * InternalWindowManager.cs, ThemeWin32Classic.cs: Removed useless Form.Icon
5582         null checks.
5583
5584 2008-06-06  George Giolfan  <georgegiolfan@yahoo.com>
5585
5586         * Theme.cs: Added #region around the managed window code. Made the managed
5587         window methods abstract.
5588         * ThemeWin32Classic.cs: Added #region around the managed window code.
5589
5590 2008-06-06  George Giolfan  <georgegiolfan@yahoo.com>
5591
5592         * InternalWindowManager.cs: Now only calls Theme.DrawManagedWindowDecorations
5593         if it has borders.
5594         * ThemeWin32Classic.cs: Removed HasBorders checks in
5595         DrawManagedWindowDecorations.
5596
5597 2008-06-06  George Giolfan  <georgegiolfan@yahoo.com>
5598
5599         * InternalWindowManager.cs, Theme.cs, ThemeWin32Classic.cs: Refactored:
5600         Extracted ManagedWindowGetTitleBarIconArea.
5601
5602 2008-06-05  Jonathan Pobst  <monkey@jpobst.com>
5603
5604         * DataGridViewCellStyle.cs: Don't clone the font.
5605
5606 2008-06-05  Jonathan Pobst  <monkey@jpobst.com>
5607
5608         * DataGridViewCell.cs: Ensure we don't pass null to GetConverter.
5609
5610 2008-06-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5611
5612         * XplatUIX1..cs: Use IntPtr size instead of int, as wee need to work
5613         also on 64 bit machinges. Fixes the BadWindow errors while scrolling
5614         in 64 bit machines.
5615
5616 2008-06-05  Jonathan Pobst  <monkey@jpobst.com>
5617
5618         * DataGridViewCell.cs: Correctly get converters for FormattedValue.
5619         Use Format/FormatProvider before trying converters.
5620         * DataGridViewCellStyle.cs: ApplyStyle should only apply things that
5621         are 'set'.  Change constructor to not use ApplyStyle since it wants
5622         everything applied.  Clone the Font.
5623         * DataGridViewRowHeaderCell.cs: Start with DefaultCellStyle and
5624         ApplyStyle the rest.
5625
5626 2008-06-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5627
5628         * ListView.cs: We need to calculate the scrollbars even if the handle
5629         hasn't been created - this is needed when methods using scrollbars
5630         info, such EnsureVisible, are called before control has been created.
5631         Fixes #397272.
5632
5633 2008-06-05  George Giolfan  <georgegiolfan@yahoo.com>
5634
5635         * ThemeVisualStyles.cs: ScrollBar is now rendered with the VisualStyles API
5636         only if the elements are defined. 
5637
5638 2008-06-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5639
5640         * ComboBox.cs: I'm an idiiot - forgot to commit the last ComboBox
5641         section. Also, when setting bounds, snap height as well as save the
5642         requested height if Dock has any value affecting the height: Left,
5643         Right and Bottom - important if using IntegralHeight as true.
5644
5645 2008-06-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5646
5647         * ComboBox.cs: When calling UpdateComboBoxBounds, adjust the height
5648         passed to SetBounds to reflect the new adjusted height (Integral-wise), 
5649         instead of doing that only in our SetBoundsCore override, since the 
5650         bounds cached can be the same as saved one and we could not get the
5651         new height applied.
5652         Fixes #396297.
5653
5654 2008-06-04  George Giolfan  <georgegiolfan@yahoo.com>
5655
5656         * Theme.cs: Made ToolWindowCaptionButtonSize platform dependent.
5657         * XplatUI.cs: Added ToolWindowCaptionButtonSize.
5658         * XplatUIDriver.cs: Changed SmallCaptionButtonSize to 15,15. Added
5659         ToolWindowCaptionButtonSize.
5660         * XplatUIWin32.cs: Added ToolWindowCaptionButtonSize.
5661
5662 2008-06-04  George Giolfan  <georgegiolfan@yahoo.com>
5663
5664         * MdiWindowManager.cs: Now uses SystemInformation.DoubleClickTime instead of
5665         hard coded values.
5666         * Theme.cs: Made DoubleClickTime plaform dependent.
5667
5668 2008-06-04  George Giolfan  <georgegiolfan@yahoo.com>
5669
5670         * Theme.cs: Made ToolWindowCaptionHeight platform dependent.
5671         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added
5672         ToolWindowCaptionHeight.
5673
5674 2008-06-04  George Giolfan  <georgegiolfan@yahoo.com>
5675
5676         * InternalWindowManager.cs: The adjustment to ensure positive client area
5677         sizes is now platform dependent (disabled on Windows).
5678         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added
5679         RequiresPositiveClientAreaSize.
5680
5681 2008-06-04  George Giolfan  <georgegiolfan@yahoo.com>
5682
5683         * Form.cs: Fixed null handling in Icon (see SettingIconToNull in the tests).
5684
5685 2008-06-04  George Giolfan  <georgegiolfan@yahoo.com>
5686
5687         * InternalWindowManager.cs: Changed IconicSize to use
5688         SystemInformation.MinimizedWindowSize.
5689         * XplatUICarbon.cs, XplatUIX11.cs: Removed MinimizedWindowSize.
5690         * XplatUIDriver.cs: Changed MinimizedWindowSize to provide a default value.
5691
5692 2008-06-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5693
5694         * ComboBox.cs: If the combobox is anchored both on top and bottom,
5695         adjust height if IntegralHeight is true when calling SetBoundsCore (as
5696         likely the height was modified even if Height wasn't specified in
5697         BoundsSpecified parameter).
5698         Fixes part of #396297.
5699
5700 2008-06-04  George Giolfan  <georgegiolfan@yahoo.com> 
5701
5702         * InternalWindowsManager.cs: Changed minimum window size while resizing to
5703         SystemInformation.MinWindowTrackSize.
5704         * XplatUICarbon.cs, XplatUIX11.cs: Removed MinWindowTrackSize.
5705         * XplatUIDriver.cs: Changed MinWindowTrackSize to provide a default value.
5706
5707 2008-06-03  George Giolfan <georgegiolfan@yahoo.com> 
5708
5709         * MenuItem.cs: Fixed Dispose.
5710
5711 2008-06-03  George Giolfan <georgegiolfan@yahoo.com> 
5712
5713         * ColumnHeader.cs: CalcColumnHeader now uses the theme to get the height.
5714         * DataGridView.cs: * EnableHeadersVisualStyles: Fixed default value.
5715         EnteredHeaderCell, PressedHeaderCell: Added.
5716         * DataGridViewCell.cs: Refactored: Extracted GetBorderPen.
5717         * DataGridViewColumnHeaderCell.cs, DataGridViewRowHeaderCell.cs: Gave the
5718         theme a chance to override default painting.
5719         * ListView.cs: Added EnteredColumnHeader. Refactored: Extracted
5720         GetColumnHeaderInvalidateArea, Invalidate(ColumnHeader).
5721         * Theme.cs, ThemeVisualStyles.cs, ThemeWin32Classic.cs: Added members for
5722         ListView and DataGridView header rendering.
5723         
5724 2008-06-03  Ivan N. Zlatev  <contact@i-nz.net>
5725
5726         * RichTextBox.cs: GetPositionFromCharIndex should return the 
5727         visual position of the character relative to the viewport.
5728         [Fixes part of bug #396664]
5729
5730 2008-06-03  Ivan N. Zlatev  <contact@i-nz.net>
5731
5732         * GridEntry.cs: Make HasCustomEditor check for EditStyle != None 
5733         and not just for the existance of an UITypeEditor. In some cases 
5734         there is an editor associated just to do PaintValue, but which 
5735         doesn't actually support editing.
5736         [Fixes bug #396632]
5737
5738 2008-05-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5739
5740         * ComboBox.cs: page_size as well as vscrollbar.LargeChange should be 1
5741         if needed, instead of 0 - this should help us in the corner case where
5742         we have more than one item but we are only partially showing 1 item.
5743         Fixes part of #374713.
5744
5745 2008-05-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5746
5747         * XplatUiX11.cs: When scrolling and detecting the obscured areas in a
5748         control, return immediately if the any parent control's handle hasn't
5749         been created or isn't visible, as well as avoiding creating the parent
5750         Form if the handle hasn't been previously created.
5751         Fixes tests.
5752
5753 2008-06-02  Jonathan Pobst  <monkey@jpobst.com>
5754
5755         * TableLayoutPanel.cs: Use border sizes when calculating the
5756         panel's preferred size.  [Fixes part of bug #396433]
5757
5758 2008-06-02  Ivan N. Zlatev  <contact@i-nz.net>
5759
5760         * SplitContainer.cs:
5761          - Fix SplitterDistance to update only if needed. 
5762          - Make it force min and max validation.
5763          - Handle properly mouse moves outside the resizeable area.
5764          [Fixes bug #396232]
5765
5766 2008-06-02  Andreia Gaita <avidigal@novell.com> 
5767
5768         * WebBrowserBase.cs: Implement support for ScriptErrorsSuppressed
5769           (which also suppresses all popup dialogs). Throw NotSupported
5770           exceptions for activex getters/setters.
5771         * WebBrowser.cs: Implement DocumentStream, DocumentType, IsBusy,
5772           IsOffline, ReadyState, ScriptErrorsSuppressed, ScrollbarsEnabled,
5773           StatusText, Version, GoSearch
5774         * HtmlDocument.cs: Add DocType support
5775
5776 2008-06-02  Andy Hume  <andyhume32@yahoo.co.uk>
5777
5778         * TextBox.cs: Implement TextBoxAutoCompleteSourceConverter.
5779         [Fixes bug 396124]
5780
5781 2008-06-02  Ivan N. Zlatev  <contact@i-nz.net>
5782
5783         * GridEntry.cs: Pass the ITypeDescriptorContext everywhere.
5784
5785 2008-06-02  Jonathan Pobst  <monkey@jpobst.com>
5786
5787         * TableLayoutPanel.cs: When calculating preferred size, use the
5788         actual number of columns and rows, not what the user set them to.
5789         [Fixes bug #396141]
5790
5791 2008-06-02  George Giolfan <georgegiolfan@yahoo.com> 
5792
5793         * Form.cs: Enabled managed handling of tool window MDI children. Fixes bug
5794         394311.
5795
5796 2008-06-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5797
5798         * XplatUIX11.cs: When detecting areas obscured in a control by other
5799         toplevel windows while scrolling, return if the control hasn't a 
5800         container form.
5801         Fixes some tests.
5802
5803 2008-05-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5804
5805         * XplatUIX11.cs: Properly detect the visible area of a control being
5806         scrolled (obscured by other winforms controls and any X toplevel
5807         windows), to mark as invalid the requested area to be scrolled that
5808         isn't visible and thus can't be copied.
5809         Fixes #324513.
5810
5811 2008-05-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5812
5813         * ListBox.cs: Compute the precise amount to vertically scroll when
5814         using DrawMode.OwnerDrawVariable.
5815         Patch by jkeymer (j.keymer@gmx.net).
5816
5817 2008-05-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5818
5819         * ComboBox.cs: Use ListBox-like scrollbar values In ComboListBox 
5820         to avoid setting an invalid value for the verticall scrollbar 
5821         when navigating items. And, duh, also remove my silly debug messages
5822         from previous commits.
5823         Fixes #374713.
5824
5825 2008-05-30  Ivan N. Zlatev  <contact@i-nz.net>
5826
5827         * FlatButtonAppearance.cs: Make FlatButtonAppearanceConverter exandable and 
5828         make it MS compatible.
5829
5830 2008-05-30  Ivan N. Zlatev  <contact@i-nz.net>
5831
5832         * PropertyGrid.cs, PropertyGridView.cs, GridEntry.cs: 
5833          - Allow the editing of entries even if their parent is read-only.
5834          - Do not render expandable properties read-only.
5835          - Refactor expansion checks form PropertyGrid into PropertyGrid.
5836
5837 2008-05-30  George Giolfan <georgegiolfan@yahoo.com> 
5838
5839         * ScrollBar.cs, Theme.cs, ThemeVisualStyles.cs, ThemeWin32Classic.cs: Added
5840         support for the hover style.
5841
5842 2008-05-29  Andreia Gaita <avidigal@novell.com> 
5843
5844         * ContainerControl.cs: Check for null dead-end when traversing the tree
5845           of parent controls.
5846         
5847           [Fixes #394332, patch by Ernesto Carrea]
5848
5849 2008-05-29  Geoff Norton  <gnorton@novell.com>
5850
5851         * XplatUICarbon.cs: Fix a culture-dependent conversion to be the
5852         constant that it is.  Fixes #393981
5853
5854 2008-05-29  Jonathan Pobst  <monkey@jpobst.com>
5855
5856         * Form.cs: Add a MonoTODO to the AutoScaleBaseSize setter explaining
5857         that the user probably doesn't want to set this.
5858
5859 2008-05-29  Jonathan Pobst  <monkey@jpobst.com>
5860
5861         * ThemeWin32Classic.cs: Don't let the text size be bigger than
5862         the control size for CheckBox/RadioBox.
5863         [Fixes part of bug #394645]
5864
5865 2008-05-29  Ivan N. Zlatev  <contact@i-nz.net>
5866
5867         * PropertyGrid.cs: Update the state of the sorting buttons in 
5868         the toolbar if PropertySort is set programatically.
5869
5870 2008-05-29  Ivan N. Zlatev  <contact@i-nz.net>
5871
5872         * GridItemCollection.cs: Add multiple items with conflicting names 
5873         support and also preserve name ordering.
5874         [Fixes #395345]
5875
5876 2008-05-29  Ivan N. Zlatev  <contact@i-nz.net>
5877
5878         * GridItemCollection.cs: Revert my multiple items with same 
5879         name patch.
5880
5881 2008-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5882
5883         * ScrollBar.cs: Scrollbars should only react to left-clicks, not right
5884         or middle ones.
5885         Fixes part of #393908.
5886
5887 2008-05-28  Jonathan Pobst  <monkey@jpobst.com>
5888
5889         * ToolStripDrowDown.cs: When using the Show () methods that have a
5890         Control parameter, set the menu owner to that Control.
5891         [Fixes bug #394345]
5892
5893 2008-05-28  Ivan N. Zlatev  <contact@i-nz.net>
5894
5895         * PropertyGridTextBox.cs, PropertyGridView.cs: Implement validation.
5896         [Fixes bug #362756]
5897
5898 2008-05-27  Ivan N. Zlatev  <contact@i-nz.net>
5899
5900         * GridItemCollection.cs: Refactor to support multiple items with the 
5901         same name.
5902         [Fixes bug #394314]
5903
5904 2008-05-27  Jonathan Pobst  <monkey@jpobst.com>
5905
5906         * Control.cs: The 2.0 check for illegal cross thread calls in 
5907         Control.Handle were throwing an exception when we were getting
5908         the Handle in order to invoke correctly.  Created a private
5909         version that does not contain this check.
5910         [Fixes bug #394531]
5911
5912 2008-05-27  Ivan N. Zlatev  <contact@i-nz.net>
5913
5914         * PropertyGrid.cs: Respect DefaultTabType.
5915
5916 2008-05-27  Ivan N. Zlatev  <contact@i-nz.net>
5917
5918         * ListView.cs: SPACE selects an item.
5919         [Fixes bug #393023]
5920
5921 2008-05-27  Ivan N. Zlatev  <contact@i-nz.net>
5922
5923         * ListView.cs: Reset the search string whenever the items are 
5924         modified.
5925         [Fixes bug #393020]
5926
5927 2008-05-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5928
5929         * ListControl.cs: For the first added item PositionChanged is fired
5930         _before_ ItemChanged, which leave us in a temporary invalid state - so
5931         we need to set the selected index from ItemChanged handler *if* we
5932         know that the first item has just been added *and* the items have been
5933         actually added to the ListControl.
5934         Fixes #369048.
5935
5936 2008-05-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5937
5938         * TabControl.cs: Only clicks with the left button should be
5939         handled.
5940         Fixes #393908.
5941
5942 2008-05-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5943
5944         * ComboBox.cs: 
5945         * FIleDialog.cs:
5946         * TextBox.cs: Expose an internal method in TextBox to restore the
5947         original context menu, and call it from ComboBox to re-use it in the
5948         combobox containing the file name in FileDialog.cs.
5949         Fixes part of #393775.
5950
5951 2008-05-24  George Giolfan  <georgegiolfan@yahoo.com>
5952
5953         * ThemeVisualStyles.cs: Added support for the hot ComboBox drop down button
5954         style.
5955
5956 2008-05-24  George Giolfan  <georgegiolfan@yahoo.com>
5957
5958         * ComboBox.cs, Theme.cs, ThemeWin32Classic.cs: Added support for the hot drop
5959         down button style.
5960
5961 2008-05-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5962
5963         * ComboBox.cs: Minor correction to previous patch: PageDown should
5964         also *try* to move by one item if the computed offset is negative,
5965         just like the PageUp case.
5966
5967 2008-05-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5968
5969         * ComboBox.cs: When navigating using PageDown/PageUp the navigation
5970         should be done for at least 1 item, and not stay at the same item.
5971         Fixes part of #374713.
5972
5973 2008-05-23  Jonathan Pobst  <monkey@jpobst.com>
5974
5975         * FileDialog.cs: Add a FSEntryComparer, and use it to sort the
5976         directories.  [Fixes bug #393931]
5977
5978 2008-05-22  Andreia Gaita <avidigal@novell.com> 
5979
5980         * WebBrowser.cs: Implement DocumentText. Implement AllowNavigation.
5981           Don't fire events until the initial about:blank page has finished
5982           loading. Clean up events.
5983
5984 2008-05-22  Atsushi Enomoto  <atsushi@ximian.com>
5985
5986         * XplatUIX11.cs : when we call WM_SETFOCUS, call X11Keyboard
5987           FocusIn() too. This should fix the issue on switching
5988           scim keyboards.
5989
5990 2008-05-22  Atsushi Enomoto  <atsushi@ximian.com>
5991
5992         * X11Keyboard.cs : set XIM font size to somewhat reasonable
5993           number (ideally the input textbox size, but that could be
5994           too messy).
5995
5996 2008-05-22  Jonathan Pobst  <monkey@jpobst.com>
5997
5998         * ToolStripTextBox.cs: List for the TextBox's TextChanged and fire
5999         the ToolStripItem's TextChanged.  [Fixes bug #393597]
6000
6001 2008-05-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6002
6003         * TabControl.cs: When invalidating in SelectedIndex and we need to
6004         inflate to take into account the border of the tabs, make sure that
6005         the invalidated rect doesn't overflow the control bounds, since that
6006         would avoid updating at all.
6007
6008 2008-05-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6009
6010         * TabControl.cs: Don't substract scroller width from the row width,
6011         since we need to take into account the total width of the control when
6012         calculating the position of the tabs. This avoids showing scroller
6013         when it is actually not needed.
6014         Fixes part of #322325.
6015
6016 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
6017
6018         * ThemeVisualStyles.cs: Added support for TextBoxBase.
6019
6020 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
6021
6022         * RichTextBox.cs, TextBoxBase.cs, Theme.cs, ThemeWin32Classic.cs: Refactored:
6023         Extracted TextBoxBase.Draw and Theme.TextBoxBase*.
6024
6025 2008-05-21  Jonathan Pobst  <monkey@jpobst.com>
6026
6027         * DataGridView.cs: Only paint the top left header cell if there
6028         are columns.
6029
6030 2008-05-21  Jonathan Pobst  <monkey@jpobst.com>
6031
6032         * DataGridView.cs: When binding to a BindingSource, get the underlying
6033         list to bind to.  [Fixes bug #345483]
6034
6035 2008-05-21  Jonathan Pobst  <monkey@jpobst.com>
6036
6037         * DataGridView.cs: Do not bind to collection properties.
6038         [Fixes bug #337470]
6039
6040 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
6041
6042         * ThemeVisualStyles.cs: Added support for the hot TrackBar thumb style.
6043
6044 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
6045
6046         * Theme.cs, ThemeWin32Classic.cs, TrackBar.cs: Added support for the hot
6047         thumb style.
6048
6049 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
6050
6051         * ThemeVisualStyles.cs: Added support for ToolTip transparent background.
6052
6053 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
6054
6055         * Theme.cs, ThemeWin32Classic.cs, ToolTip.cs: Added support for transparent
6056         background.
6057
6058 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
6059
6060         * ThemeVisualStyles.cs: Added support for ToolBar hot and hot checked styles.
6061
6062 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
6063
6064         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs: Added support for hot and hot
6065         checked styles.
6066
6067 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
6068
6069         * TabControl.cs: Extended to handle the hot style.
6070
6071 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
6072
6073         * Theme.cs, ThemeVisualStyles.cs, ThemeWin32Classic.cs, UpDownBase.cs:
6074         Extended UpDownBase code to handle hot and disabled styles.
6075
6076 2008-05-20  Jonathan Pobst  <monkey@jpobst.com>
6077
6078         * DataGridView.cs: Handle databinding to generic list type things.
6079         [Fixes bug #325239]
6080
6081 2008-05-20  Jonathan Pobst  <monkey@jpobst.com>
6082
6083         * DataGridViewCellCollection.cs: Add a method to find the cell
6084         with the given DataPropertyName.
6085         * DataGridViewColumn.cs: Track if the column was autogenerated or not.
6086         * DataGridViewColumnCollection.cs: Add a method to clear all
6087         autogenerated columns.
6088         * DataGridView.cs: If AutoGenerateColumns is false, don't autogenerate
6089         columns.
6090         [Fixes bug #348082]
6091
6092 2008-05-20  Jonathan Pobst  <monkey@jpobst.com>
6093
6094         * DataGridView.cs: Don't try to update the RowTemplate with
6095         a null CellTemplate.
6096
6097 2008-05-20  Jonathan Pobst  <monkey@jpobst.com>
6098
6099         * DataGridViewColumn.cs: Allow IsDataBound to be set internally.
6100         * DataGridViewColumnCollection.cs: Ensure OnColumnAdded is called.
6101         * DataGridView.cs: Lots of fixes/enhancements to databinding to
6102         a DataSet.
6103
6104 2008-05-20  Jonathan Pobst  <monkey@jpobst.com>
6105
6106         * Control.cs: Remove invalidating implicit child controls when
6107         control is invalidated.  It was causing too many redraws on
6108         controls with implicit scrollbars.
6109         * ListView.cs: Listen to the Invalidated event and invalidate
6110         child controls.
6111
6112 2008-05-20  Andreia Gaita <avidigal@novell.com> 
6113
6114         * WebBrowserBase.cs, WebBrowser.cs: Hook up page loading events
6115         * HtmlDocument.cs: Check for nulls
6116
6117 2008-05-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6118
6119         * Control.cs: In ControlCollection.RemoveInternal, remove the
6120         internal control before calling PerformLayout and OnControlRemoved,
6121         which was leaving us in an invalid state and causing a X error (bad
6122         match). Observe that Remove () call has the same order.
6123         Fixes an X error changing ComboBoxStyle.DropDownStyle.
6124
6125 2008-05-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6126
6127         * TabControl.cs: Don't paint by ourselved and instead let OnPaint
6128         being fired if ControlStyles.UserPaint style is activated.
6129         Fixes #371905.
6130
6131 2008-05-19  Ivan N. Zlatev  <contact@i-nz.net>
6132
6133         * GridEntry.cs: Don't be so strict when setting the value - 
6134         do not check if what we set is what we get.
6135         [Fixes bug #389245]
6136
6137 2008-05-19  Ivan N. Zlatev  <contact@i-nz.net>
6138
6139         * XplatUIX11.cs: If there are no timers timeout should be 0
6140         [Fixes bug #363522]
6141
6142 2008-05-19  Jonathan Pobst  <monkey@jpobst.com>
6143
6144         * Control.cs: As a followup to invalidating implicit children when
6145         a control is invalidated, only invalidate them if they are in the
6146         clip rectangle.
6147
6148 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
6149
6150         * ThemeVisualStyles.cs: Implemented partial support for ToolTip.
6151
6152 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
6153
6154         * ThemeWin32Classic.cs: Refactored: Extracted ToolTipDrawBackground.
6155
6156 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
6157
6158         * GroupBoxRenderer.cs: Fixed text area clipping in the Visual Styles case.
6159         * XplatUIWin32.cs: Made Win32DeleteObject public.
6160
6161 2008-05-19  Ivan N. Zlatev  <contact@i-nz.net>
6162
6163         * GridEntry.cs: Determine HasDefaultValue more strictly by using 
6164         PropertyDescriptor.ShouldSerializeValue.
6165         [Fixes bug #391924]
6166
6167 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
6168
6169         * ThemeVisualStyles.cs: Enabled support for ScrollBar element styles not present
6170         in the classic theme.
6171
6172 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
6173
6174         * ScrollBar.cs: Added FirstButtonEntered, SecondButtonEntered, ThumbEntered,
6175         ThumbPressed.
6176         * Theme.cs, ThemeWin32Classic.cs: Added ScrollBarHasHotElementStyles,
6177         ScrollBarHasPressedThumbStyle.
6178
6179 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
6180
6181         * TextRenderer.cs: Included some methods in the 1.1 profile.
6182
6183 2008-05-19  Jonathan Pobst  <monkey@jpobst.com>
6184
6185         * Control.cs: When we make a control visible, it may have been
6186         previously visible and while it wasn't visible, the z-order of
6187         things may have been shuffled, so the control needs to have its
6188         z-order updated just in case.  [Fixes bug #391518]
6189
6190 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
6191
6192         * ThemeVisualStyles.cs: Added support for GroupBox.
6193
6194 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
6195
6196         * GroupBoxRenderer.cs: Included in the 1.1 profile.
6197
6198 2008-05-16  Atsushi Enomoto  <atsushi@ximian.com>
6199
6200         * XplatUIX11.cs, X11Keyboard.cs : redoing r103060 with fix for
6201           bug #389996; XSelectInput() behaved as mouse handler robber,
6202           so remove extra call to it.
6203
6204 2008-05-15  Jonathan Pobst  <monkey@jpobst.com>
6205
6206         * Control.cs: Simplify ControlCollection.Contains method.
6207
6208 2008-05-15  Jonathan Pobst  <monkey@jpobst.com>
6209
6210         * DataGridViewRow.cs: Implement GetPreferredSize.
6211
6212 2008-05-15  Jonathan Pobst  <monkey@jpobst.com>
6213
6214         * DataGridViewComboBoxCell.cs: Don't declare text twice.  Fixes build.
6215
6216 2008-05-15  Jonathan Pobst  <monkey@jpobst.com>
6217
6218         * DataGridViewComboBoxCell.cs: Implement some NIEX stuffs, better
6219         painting and edit control fixes.
6220
6221 2008-05-14  Jonathan Pobst  <monkey@jpobst.com>
6222
6223         * DataGridView.cs, DataGridViewCell.cs: Work around some external
6224         checks to make sure we are in an actual row/col for top left header cell.
6225         * DataGridViewTopLeftHeaderCell.cs: Implement some NIEX's.
6226
6227 2008-05-14  Jonathan Pobst  <monkey@jpobst.com>
6228
6229         * Control.cs: Use long instead of int when handling WParam from
6230         mousewheel scrolling.  Int was overflowing on Win64.
6231
6232 2008-05-14  Jonathan Pobst  <monkey@jpobst.com>
6233
6234         * FlowLayoutPanel.cs, ScrollableControl.cs: We need to layout the
6235         flow panel without scrolling first, and then calculate the 
6236         scrolling based on the new layout.  [Fixes bug #390149]
6237
6238 2008-05-14  Jonathan Pobst  <monkey@jpobst.com>
6239
6240         * ListBox.cs: Invalidate after scrolling up when selected index
6241         changes.  [Fixes bug #390151]
6242
6243 2008-05-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6244
6245         * ComboBox.cs: When setting mode to Simple *and* height hasn't been
6246         set, default height to 150. I tried first with DefaultSize, but this
6247         is not generating a SetBoundsCore call before handle creation time, so
6248         we can take it into account. This is just what .net does.
6249
6250 2008-05-13  Jonathan Pobst  <monkey@jpobst.com>
6251
6252         * XplatUIX11.cs, X11Keyboard.cs: Had to revert eno's r103060,
6253         as it broke some stuff.  Calberto is filing a bug for eno to
6254         work with.
6255
6256 2008-05-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6257
6258         * ComboBox.cs: When handling PageDown pressed event, set SelectedIndex
6259         to 0 is the current value is -1, and if style is not Simple, just
6260         return, like .net does.
6261         Fixes part of #374713.
6262
6263 2008-05-13  Jonathan Pobst  <monkey@jpobst.com>
6264
6265         * ThemeWin32Classic.cs, ThemeVisualStyles.cs: When calculating
6266         progress bar stuffs, use doubles instead of ints to prevent
6267         overflow.  [Fixes bug #389798]
6268
6269 2008-05-13  Atsushi Enomoto  <atsushi@ximian.com>
6270
6271         * XplatUIX11.cs, X11Keyboard.cs :
6272           Significant refactoring on XIM support. Now IM engine UI
6273           should show up, at mostly-correct preedit position.
6274           - Eliminated use of FocusWindow, as it is never mapped
6275             and hence blocks correct preedit position. XIC is now
6276             created per window, and it must be destroyed too when
6277             the window is destroyed.
6278           - WM_QUIT messages should not be filtered even when hwnd
6279             is zombie. Filtering it could cause endless loop.
6280           - Preedit position must move only when the window is alive.
6281           - Make it IDisposable and make sure to release XIM/XICs.
6282
6283 2008-05-13  Atsushi Enomoto  <atsushi@ximian.com>
6284
6285         * Timer.cs, Control.cs, Form.cs, ApplicationContext.cs,
6286           XplatUIX11.cs, XplatUIWin32.cs :
6287           fix for bug #325033 and #387693;
6288           - WM_QUIT should not be sent when no running application
6289             exists.
6290           - SetTimer/KillTimer (especially on win32) should be
6291             invoked for the window that the timer is/will_be attached.
6292           - There could be unattached timers to a window when it's
6293             started. For those timers, hold pending timers and when
6294             a window is mapped, attach them to it.
6295           - WaitForHwndMessage() could run into loop when
6296             WM_SHOWWINDOW is handled before this method is called.
6297             So, strictly check wm_showwindow state.
6298           - Tick handler should not be invoked while one Tick handler
6299             call is still running (introduced Busy state).
6300
6301 2008-05-13  Andreia Gaita <avidigal@novell.com> 
6302
6303         * WebBrowserBase.cs: Override Internal alternative methods for
6304           SetBoundsCore and OnResize instead of the protected ones.
6305         * Control.cs: Move SetBoundsCore and OnResize implementations to
6306           SetBoundsCoreInternal and OnResizeInternal, so they can be
6307           overriden internally (WebBrowserBase needs to catch them but can't
6308           override the protected methods without api compat problems)
6309
6310 2008-05-13  Andreia Gaita <avidigal@novell.com> 
6311
6312         * WebBrowserBase.cs: Hiding away non-public overrides for api compat
6313
6314 2009-05-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6315
6316         * Binding.cs:
6317         * ListView.cs: Remove debug messages.
6318
6319 2008-05-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6320
6321         * ComboBox.cs: Don't do any calculation for simple mode if the listbox
6322         area is empty. Also calculate scrollbars in Simple mode based in area
6323         height and total number of items, not in MaxDropDownItems.
6324         Fixes part of #371991.
6325
6326 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
6327
6328         * PictureBox.cs: Always invalidate on resize.  Fixes an app for jhill.
6329
6330 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
6331
6332         * BindingSource.cs: GetListSortDescription is not public.
6333
6334 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
6335
6336         * WebBrowser.cs, WebBrowserBase.cs, WebBrowserSiteBase.cs: corcompare.
6337
6338 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
6339
6340         * HtmlElement.cs: Fix parameter names to match MS.
6341         * HtmlWindowCollection.cs: Should not be sealed.
6342
6343 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
6344
6345         * ThemeWin32Classic.cs: Always draw the scrollbar area under the thumb
6346         button, because the thumb button will not get drawn if the scrollbar
6347         is disabled.  [Fixes bug #389262]
6348
6349 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
6350
6351         * ListBox.cs: Handle End key for multi-column listboxen.
6352         [Fixes bug #389266]
6353
6354 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
6355
6356         * ListBox.cs: Fix algorithm to determine which column our item is in.
6357         [Fixes bug #389265]
6358
6359 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
6360
6361         * ListBox.cs: Invalidate when the listbox is resized.
6362         [Fixes bug #389256]
6363
6364 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
6365
6366         * ListBox.cs: There is always at least one row in the ListBox (if
6367         we are doing these calculations.)  [Fixes bug #389253]
6368
6369 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
6370
6371         * ListBox.cs: There is always at least one column in the ListBox.
6372         [Fixes bug #389250]
6373
6374 2008-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6375
6376         * ComboBox.cs: When handle is created call UpdateComboBoxBounds to
6377         ensure in Simple mode that the height is exactly the requested one.
6378         Also add the ComboBoxListControl to the controls collection in Simple
6379         mode even if handle hasn't been created.
6380         Fixes part of #371991.
6381
6382 2008-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6383
6384         * ComboBox.cs: For ComboListBox control -specially in Simple mode-, give focus to
6385         our ComboBox owner instead of giving it back to the previous control (
6386         as done in other controls). Also remove the empty override of Select
6387         method, since we want to be selected *and* give focus to our owner.
6388         This should let the user do keys-navigation in Simple mode. 
6389
6390 2008-05-10  Geoff Norton  <gnorton@novell.com>
6391
6392         * XplatUICarbon.cs: Dont use HIViewScrollRect as it's causing painting
6393         problems with rapid scrolling of treeviews. Fixes #381084
6394
6395 2008-05-10  Geoff Norton  <gnorton@novell.com>
6396
6397         * XplatUICarbon.cs: Deactivate the active window before
6398         activating the desired window.  Completes fixing #386504
6399
6400 2008-05-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6401
6402         * ListView.cs: When calculating scrollbars, set horizontal scroll bar
6403         SmallChange to the item size width plus the padding, to match .net.
6404
6405 2008-05-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6406
6407         * FileDialog.cs: Apply the custom filter typed by the user in the file
6408         name combobox as much as possible while navigating in the file dialog.
6409         Fixes #385261.
6410
6411 2008-05-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6412
6413         * Binding.cs: Actually use NullValue if the retrieved value of
6414         data source is null or DBNull. Makes a test pass.
6415
6416 2008-05-09  Jonathan Pobst  <monkey@jpobst.com>
6417
6418         * ErrorProvider.cs, Form.cs: Get icons from ResourceImageLoader.
6419         * MimeIcon.cs: Provide a way to get icons from resources.
6420
6421 2008-05-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6422
6423         * Binding.cs: When the value retrieved from the control to be assigned
6424         to the data source is null, actually use the 2.0 DataSourceNullValue
6425         value. Make pass a data binding test.
6426
6427 2008-05-08  Jonathan Pobst  <monkey@jpobst.com>
6428
6429         * Control.cs: We need to invalidate implicit children even when
6430         invalidate is called with invalidatechildren = false.  (Implicit
6431         children are really part of the parent.)
6432         * ListView.cs: Double-buffer internal child controls for less
6433         flicker.
6434         * ThemeWin32Classic.cs: Remove an extra nested loop in drawing
6435         owner ListView subitems for greatly increased performance.
6436         [Fixes bug #388477]
6437
6438 2008-05-08  Carlos Alberto Cortez <calebrto.cortez@gmail.com>
6439
6440         * FileDialog.cs: When the user types a wildcard character in the
6441         filename combobox, update the contents of the folder using the text as
6442         a filter.
6443         Fixes part of #385261.
6444
6445 2008-05-08  Jonathan Pobst  <monkey@jpobst.com>
6446
6447         * ListBox.cs: Various fixes for MultiColumn listboxen.
6448         [Fixes bug #388114]
6449
6450 2008-05-08  Andreia Gaita <avidigal@novell.com> 
6451
6452         * HtmlElement.cs: Implement Style property
6453
6454 2008-05-08  Jonathan Pobst  <monkey@jpobst.com>
6455
6456         * ListBox.cs: Respect checkboxes when measuring item size.
6457         * ThemeWin32Classis.cs: When drawing list items, don't draw
6458         text outside of the item's bounds to prevent overlapping.
6459         (.Net actually overlaps, but that's just silly.)
6460         [Fixes bug #388117]
6461
6462 2008-05-08  Everaldo Canuto  <ecanuto@novell.com>
6463
6464         * NotifyIcon.cs: Call SetForegroundWindow before show context menu. Thanks
6465         Gert Driesen. Fixes bug #324830. 
6466
6467 2008-05-07  Everaldo Canuto  <ecanuto@novell.com>
6468
6469         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: SetForegroundWindow
6470         method implemented.
6471
6472 2008-05-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6473
6474         * BindingSource.cs: When calling IsSynchronized, return the value of
6475         the related IList list.
6476
6477 2008-05-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6478
6479         * ListBindingHelper.cs: Fix some bits in GetListItemProperties, to
6480         make a test pass.
6481
6482 2008-05-07  Jonathan Pobst  <monkey@jpobst.com>
6483
6484         * DataGridView.cs: Implement PageUp/PageDown keys.  Extend keyboard
6485         navigation to scroll the grid if the current cell is not visible.
6486
6487 2008-05-07  Andreia Gaita <avidigal@novell.com> 
6488
6489         * HtmlElement.cs: Implement TabIndex
6490
6491 2008-05-07  Jonathan Pobst  <monkey@jpobst.com>
6492
6493         * ListBox.cs: Respect ScrollAlwaysVisible and HorizontalScrollbar
6494         properties, even when there are no items.
6495         [Fixes bug #387611]
6496
6497 2008-05-07  Ivan N. Zlatev  <contact@i-nz.net>
6498
6499         * NativeWindow.cs: Add support for multiple handles per window.
6500         * NativeWindows.cs, LibSupport.cs, Control.cs, XplatUIX11GTK.cs, 
6501         XplatUIX11.cs, X11Display.cs: Do not access NativeWindow.windows_collection 
6502         directly - use FromHandle instead.
6503         [Fixes bug #374660]
6504
6505 2008-05-07  Andreia Gaita <avidigal@novell.com> 
6506
6507         * HtmlElement.cs: Implement InnerHTML setter
6508
6509 2008-05-07  Andreia Gaita <avidigal@novell.com> 
6510
6511         * HtmlDocument.cs: Implement Focused
6512
6513 2006-05-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6514
6515         * BindingSource.cs: Minor fixes to the the ApplySort and Remove sort
6516         methods, as well as add messages to the exceptions.
6517
6518 2006-05-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6519
6520         * BindingSource.cs: Setting DataSource should only reset DataMember if
6521         the previous value was null (make pass a not working test).
6522
6523 2006-05-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6524
6525         * BindingSource.cs: When EndInit call is postponed and is called until
6526         DataSource.EndInit is called, remove the handler for data source.
6527
6528 2008-05-06  Jonathan Pobst  <monkey@jpobst.com>
6529
6530         * ToolStripManager.cs: Don't use IsAlive, race condition, etc. etc.
6531
6532 2008-05-06  Jonathan Pobst  <monkey@jpobst.com>
6533
6534         * ToolStripManager.cs: Store references to toolstrips as
6535         weak references so they do not prevent forms from getting collected.
6536         [Fixes bug #386483]
6537
6538 2008-05-06  Jonathan Pobst  <monkey@jpobst.com>
6539
6540         * TrackBar.cs: We can't set ResizeRedraw because it isn't set
6541         on .Net.  So do the same thing in WndProc.
6542
6543 2008-05-06  Jonathan Pobst  <monkey@jpobst.com>
6544
6545         * TrackBar.cs: Commit patch from Andy Hume that corrects
6546         the clickable areas to better match .Net.
6547         [Fixes bug #387074]
6548
6549 2008-05-06  Jonathan Pobst  <monkey@jpobst.com>
6550
6551         * TrackBar.cs: Commit patch from Andy Hume that adds the
6552         ResizeRedraw control flag so the track bar repaints itself
6553         when it is resized.  [Fixes bug #387072]
6554
6555 2008-05-06  Jonathan Pobst  <monkey@jpobst.com>
6556
6557         * TrackBar.cs: Commit patch from Andy Hume that adds better
6558         support for keyboard navigation when the TrackBar is vertical.
6559         [Fixes bug #387071]
6560
6561 2008-05-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6562
6563         * BindingSource.cs: Implement ISupportInitializeNotification support.
6564
6565 2008-05-06  George Giolfan  <georgegiolfan@yahoo.com>
6566
6567         * ThemeVisualStyles.cs: Added support for ToolBar.
6568
6569 2008-05-06  George Giolfan  <georgegiolfan@yahoo.com>
6570
6571         * ToolBar.cs: Made the Vertical property internal.
6572
6573 2008-05-05  George Giolfan  <georgegiolfan@yahoo.com>
6574
6575         * ThemeVisualStyles.cs: Added support for TrackBar.
6576
6577 2008-05-05  George Giolfan  <georgegiolfan@yahoo.com>
6578
6579         * ThemeWin32Classic.cs: Refactored: Extracted TrackBarGetThumbSize,
6580         TrackBarDrawVerticalTrack, TrackBarDrawVerticalThumbRight,
6581         TrackBarDrawVerticalThumbLeft, TrackBarDrawVerticalThumb,
6582         TrackBarGetVerticalTickPainter, TrackBarDrawHorizontalTrack,
6583         TrackBarDrawHorizontalThumbBottom, TrackBarDrawHorizontalThumbTop,
6584         TrackBarDrawHorizontalThumb, TrackBarGetHorizontalTickPainter.
6585
6586 2008-05-05  George Giolfan  <georgegiolfan@yahoo.com>
6587
6588         * ThemeVisualStyles.cs: Added support for UpDownBase.
6589
6590 2008-05-05  George Giolfan  <georgegiolfan@yahoo.com>
6591
6592         * Theme.cs, ThemeWin32Classic.cs, UpDownBase.cs: Refactored:
6593         Extracted Theme.UpDownBaseDrawButton.
6594
6595 2008-05-05  Jonathan Pobst  <monkey@jpobst.com>
6596
6597         * ToolStrip.cs, ToolStripDropDownItem.cs: Make sure toolstrips are
6598         removed from the static toolstrips collection in ToolStripManager
6599         when they are disposed.  Provides a workaround for bug #386483.
6600
6601 2008-05-05  Ivan N. Zlatev  <contact@i-nz.net>
6602
6603         * GridEntry.cs: Read-only properties with Editor with 
6604         UITypeEditorEditStyle.Modal shouldn't be read-only in the PropertyGrid.
6605         [Fixes bug #384184]
6606
6607 2008-05-05  Jonathan Pobst  <monkey@jpobst.com>
6608
6609         * MenuStrip.cs, ToolStrip.cs: Guard against an NRE when pressing
6610         the menu key and there are no items on the menu.
6611         [Fixes bug #386644]
6612
6613 2008-05-05  Sebastien Pouliot  <sebastien@ximian.com>
6614
6615         * Control.cs: Avoid calling ToString on a string.
6616         * Form.cs: Avoid calling ToString on a string. Found using Gendarme.
6617         * GroupBox.cs: In FlatStyle property throw, not just create, the 
6618         exception. Avoid calling ToString on a string.
6619         * ProgressBar.cs: Avoid calling ToString on a string. 
6620         * ScrollBar.cs: Avoid calling ToString on a string. 
6621         [All issues were found using Gendarme]
6622
6623 2008-05-05  Everaldo Canuto  <ecanuto@novell.com>
6624
6625         * NotifyIcon.cs: Prevent click events to be trigger after double click 
6626         events. Fixes remaining issues of bug #324832.
6627
6628 2008-05-05  Everaldo Canuto  <ecanuto@novell.com>
6629
6630         * NotifyIcon.cs: Trigger click and mouseclick events after mouseup event
6631         to mimic win32 behavior. Partially fixes bug #324832.
6632
6633 2008-05-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6634
6635         * BindingSource.cs: Implement Find methods.
6636
6637 2008-05-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6638
6639         * BindingSource.cs: Implement Sort, ApplySort overloads, and
6640         RemoveSort methods.
6641
6642 2008-05-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6643
6644         * ListBindingHelper.cs: When calling GetListItemProperties and the
6645         passed object is ITypedList, return the result of
6646         ITypedList.GetItemProperties instead.
6647
6648 2008-05-04  Everaldo Canuto  <ecanuto@novell.com>
6649
6650         * LinkLabel.cs: Set default value of name on constructor of Link class
6651         only for 2.0 profile.
6652
6653 2008-05-04  Everaldo Canuto  <ecanuto@novell.com>
6654
6655         * LinkLabel.cs: Fix implementation of LinkCollection.LinksAdded property.
6656         Fixes remaining issues of bug #346154.
6657
6658 2008-05-04  Everaldo Canuto  <ecanuto@novell.com>
6659
6660         * LinkLabel.cs: Set a default value for name on internal contructor of
6661         Link class. It fixes assert B5 of LinkCollectionTest.Constructor1.
6662
6663 2008-05-04  Everaldo Canuto  <ecanuto@novell.com>
6664
6665         * LinkLabel.cs: Move links collection from LinkCollection to LinkLabel
6666         and refer all instances to owner.links. Partially fixes #346154.
6667
6668 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
6669
6670         * LinkLabel.cs: Fix linkarea values for empty text, must have start and 
6671         length equal zero. Also called CreateLinkPieces in constructor. It fixes
6672         the LinkLabel test 'TestLinkArea'.
6673
6674 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
6675
6676         * Form.cs: Remove menu before close form to prevent form to be not gaced.
6677         [Fixes #386460]
6678
6679 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
6680
6681         * MenuAPI.cs: Dispose popup window after hide. Thanks to Jesse Jones.
6682         [Fixes #386463]
6683
6684 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
6685
6686         * MenuAPI.cs: Implemented keyboard navigation for ContextMenu.
6687         [Fixed bug #357004]
6688
6689 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
6690
6691         * MenuAPI.cs: Remove unused ProcessCmdKey method.
6692
6693 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
6694
6695         * MenuAPI.cs: Prevent NRE in menu deactivation when shortcut is used. 
6696         [Fixes bug #375398]
6697
6698 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
6699
6700         * MenuAPI.cs: Enable implicit mnemonics for menus. Fixes remaining issues
6701         of bug #367492.
6702
6703 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
6704
6705         * MenuAPI.cs: Check if mouse down comes from menu, we need it because
6706         sometimes we open a conext menu on mouse down of some controls and the mouse
6707         up is dispatched to menu and dont need to. It fix remaining issues of 
6708         #363711 and other problems related to menu mouse click events.
6709
6710 2008-05-02  Everaldo Canuto  <ecanuto@novell.com>
6711
6712         * MonthCalendar.cs: Implemented "Go to today" context menu, also changed
6713         some var names to better fit changes, now we have month_menu and today_menu
6714         vars. Fixes bug #363711.
6715
6716 2008-05-02  Everaldo Canuto  <ecanuto@novell.com>
6717
6718         * MonthCalendar.cs: Handle every right mouse click to open context menu,
6719         right now the default month menu but it will be change to have "Go to today"
6720         menu.
6721
6722 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
6723
6724         * FileDialog.cs, MaskedTextBox.cs, OpenFileDialog.cs: corcompare.
6725
6726 2008-05-02  Everaldo Canuto  <ecanuto@novell.com>
6727
6728         * ThemeWin32Classic.cs: Fix MonthCalendar arrows drawing.
6729
6730 2008-05-02  George Giolfan  <georgegiolfan@yahoo.com>
6731
6732         * ThemeVisualStyles.cs: Added support for TreeView.
6733
6734 2008-05-02  George Giolfan  <georgegiolfan@yahoo.com>
6735
6736         * Theme.cs, ThemeWin32Classic.cs, TreeView.cs: Refactored:
6737         Moved TreeView.DrawNodePlusMinus to Theme.TreeViewDrawNodePlusMinus.
6738
6739 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
6740
6741         * OpenFileDialog.cs: Implement 2.0 SP1 stuffs.
6742
6743 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
6744
6745         * FileDialogCustomPlace.cs, FileDialogCustomPlacesCollection.cs:
6746         Implement 2.0 SP1 stuffs.
6747
6748 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
6749
6750         * FileDialog.cs: Implement 2.0 SP1 stuffs.
6751
6752 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
6753
6754         * Control.cs, ContainerControl.cs, DataGridView.cs, TextBoxBase.cs:
6755         Implement CanEnableIme property. (2.0 SP1)
6756
6757 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
6758
6759         * BindingManagerBase.cs, PropertyManager.cs: Hide GetItemProperties
6760         from the 2.0 API.
6761
6762 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
6763
6764         * Control.cs: Provide an internal way for a control to override
6765         the setting of Height.
6766         * DateTimePicker.cs: Remove SetBoundsCore from 2.0 profile,
6767         set height using new method.
6768
6769 2008-05-02  George Giolfan  <georgegiolfan@yahoo.com>
6770
6771         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawMixedCheckBox.
6772
6773 2008-05-02  George Giolfan  <georgegiolfan@yahoo.com>
6774
6775         * ControlPaint.cs, Theme.cs, ThemeWin32Classic.cs: Refactored:
6776         ControlPaint.DrawMixedCheckBox now calls Theme.CPDrawMixedCheckBox.
6777
6778 2008-05-02  George Giolfan  <georgegiolfan@yahoo.com>
6779
6780         * ThemeVisualStyles.cs: Added support for StatusBar.
6781
6782 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
6783
6784         * DataObject.cs: Add the other IDataObject interface.
6785
6786 2008-05-02  George Giolfan  <georgegiolfan@yahoo.com>
6787
6788         * ThemeWin32Classic.cs: Refactored: extracted DrawStatusBarBackground,
6789         DrawStatusBarSizingGrip, DrawStatusBarPanelBackground.
6790
6791 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
6792
6793         * DataGridViewCheckBoxCell.cs, DataGridViewImageCell.cs: Fix parameter names.
6794         * ListView.cs: Hide non-public API.
6795         * MaskedTextBox.cs: Remove extra attribute.
6796
6797 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
6798
6799         * DataGridViewImageCell.cs: Use formatted value instead of value
6800         to calculate preferred size.
6801
6802 2008-05-01  Jonathan Pobst  <monkey@jpobst.com>
6803
6804         * ListBox.cs: Move some initialization around so that selected_indices
6805         is not accessed before it is created.
6806
6807 2008-05-01  Jonathan Pobst  <monkey@jpobst.com>
6808
6809         * InputLanguageCollection.cs: Implement the collection better.
6810         [Fixes bug #385506]
6811
6812 2008-05-01  Jonathan Pobst  <monkey@jpobst.com>
6813
6814         * ToolStripDropDownItem.cs: Get the correct event object for
6815         DropDownItemClicked.
6816         * ToolStripMenuItem.cs: Raise DropDownItemClicked on our owner.
6817         [Fixes bug #385475]
6818
6819 2008-05-01  Jonathan Pobst  <monkey@jpobst.com>
6820
6821         * DataGridViewRowCollection.cs: We don't currently support shared 
6822         rows.  Should fix test failures caused by previous commit.
6823
6824 2008-04-30  Jonathan Pobst  <monkey@jpobst.com>
6825
6826         * DataGridViewRow.cs: Fixes for cloning the row, ensure header cell's
6827         datagridview gets set.  Only paint cells in visible columns.
6828         * DataGridViewCell.cs: Draw border after cell content.
6829         * DataGridView.cs: Invalidate after setting some properties.  Only
6830         use visible columns.  Fit hit test bug with areas in the col/row header
6831         area but not in a row or col.  Implement UpdateCell/Row methods.
6832
6833 2008-04-30  Jonathan Pobst  <monkey@jpobst.com>
6834
6835         * DataGridViewElement.cs: Don't throw NIEX.
6836         * DataGridViewColumnHeaderCell.cs: Draw error icons for top left header cells.
6837         * DataGridViewColumnDesignTimeVisibleAttribute.cs: Don't throw NIEX.
6838         * DataGridViewCheckBoxColumn.cs: Implement ToString.
6839         * DataGridViewCheckBoxCell.cs: Allow DBNull as a value.
6840         * DataGridViewCell.cs: Don't raise CellFormatting for RowHeader cells,
6841         if the user filled in the formatting Value, use it.
6842
6843 2008-04-30  Jonathan Pobst  <monkey@jpobst.com>
6844
6845         * DataGridViewTextBoxCell.cs: Fix for objects that cannot be cast
6846         to a string.
6847
6848 2008-04-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6849
6850         * BindingSource.cs: Some corrections to Filter property, as well as
6851         setting it for our list when resetting it.
6852
6853 2008-04-29  Jonathan Pobst  <monkey@jpobst.com>
6854
6855         * ScrollBar.cs: Don't let dragging the thumb grip set the value greater
6856         than the maximum.  Fixes reopened bug #384182.
6857
6858 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
6859
6860         * ToolStripDropDown.cs: Fix offscreen position for DropDown itens.
6861         Fixes remaining issues of #367490.
6862
6863 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
6864
6865         * ToolStripDropDown.cs: Screen.Bound dont return right value then use 
6866         SystemInformation.WorkingArea to get max_screen value.
6867
6868 2008-04-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6869
6870         * BindingSource.cs: Implement Filter and RemoveFilter.
6871
6872 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
6873
6874         * MenuAPI.cs: Prevent sub-menu positon to be less than zero.
6875
6876 2008-04-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6877
6878         * X11Dnd.cs: When trying to convert data and we know we started the
6879         dnd loop, don't try to use the cached data if the loop is not running,
6880         which means that the data has been resetted.
6881         Fixes #378191.
6882
6883 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
6884
6885         * MenuAPI.cs: Force first menu subitem to show from left to right to mimic
6886         win32 behavior.
6887
6888 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
6889
6890         * MenuAPI.cs: Check the screen limits before show sub-menus and prevent
6891         it to drawn off screen edge. Fixes bug #367490.
6892
6893 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
6894
6895         * MenuAPI.cs: In PopupWindow.RefreshItems uses a temp point var to store
6896         menu position to have only one assignment of Location var.
6897
6898 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
6899
6900         * MenuAPI.cs: Implement the right key for sub-menus. Thanks Ernesto Carrea
6901         for this patch. Fixes bug #384115.
6902
6903 2008-04-28  Jonathan Pobst  <monkey@jpobst.com>
6904
6905         * ScrollBar.cs: If SmallChange is larger than LargeChange, make them
6906         the same.  If LargeChange is zero, set a minimum size for the scroll
6907         thumb grip.  [Fixes bug #384182]
6908
6909 2008-04-28  Jonathan Pobst  <monkey@jpobst.com>
6910
6911         * TextBoxTextRenderer.cs: Don't turn &A into a prefix for textboxen.
6912         [Fixes bug #384181]
6913
6914 2008-04-28  Jonathan Pobst  <monkey@jpobst.com>
6915
6916         * ListBox.cs: Math.Min should be Math.Max.  [Fixes bug #384183]
6917
6918 2008-04-28  George Giolfan  <georgegiolfan@yahoo.com>
6919
6920         * ThemeVisualStyles.cs: Added partial support for ScrollBar (based on the
6921         patch from Ernesto).
6922
6923 2008-04-28  George Giolfan  <georgegiolfan@yahoo.com>
6924
6925         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawComboButton.
6926
6927 2008-04-28  George Giolfan  <georgegiolfan@yahoo.com>
6928
6929         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawButton.
6930
6931 2008-04-28  George Giolfan  <georgegiolfan@yahoo.com>
6932
6933         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawRadioButton.
6934
6935 2008-04-28  George Giolfan  <georgegiolfan@yahoo.com>
6936
6937         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawScrollButton.
6938
6939 2008-04-27  George Giolfan  <georgegiolfan@yahoo.com>
6940
6941         * ThemeVisualStyles.cs: Added support for ButtonBase.UseVisualStyleBackColor.
6942
6943 2008-04-27  Andreia Gaita <avidigal@novell.com> 
6944
6945         * HtmlWindow.cs, HtmlHistory.cs: Throw on DomHistory getter (it's
6946           supposed to return a reference to an mshtml interface, which we
6947           don't support).
6948         * HtmlElement.cs: Throw on DomElement getter (it's supposed to return a
6949           reference to an mshtml interface, which we don't support). Code
6950           formatting cleanup.
6951         * HtmlDocument.cs: Add DefaultEncoding getter implementation. Throw on
6952           DomDocument getter (it's supposed to return a reference to an
6953           mshtml interface, which we don't support). Code formatting cleanup.
6954
6955 2008-04-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6956
6957         * ListView.cs: Ouch, forgot to commit.
6958
6959 2008-04-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6960
6961         * ListView.cs: 
6962         * ThemeWin32Classic.cs: Fire the -until now- forgotten CacheVirtualItems event.
6963
6964 2008-04-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6965
6966         * ListView.cs: When calculating box selection for virtual mode, don't
6967         look for intersection with item's text, but item bounds, since that
6968         would mean read ListViewItem's text for _every_ item, and that's
6969         something we just can't do in virtual mode (items are only requested
6970         when drawn).
6971
6972 2008-04-26  George Giolfan  <georgegiolfan@yahoo.com>
6973
6974         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawCaptionButton and
6975         partial support for managed windows (based on the patch from Ernesto).
6976
6977 2008-04-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6978
6979         * ListView.cs: When doing a key search use FindItemWithText method
6980         instead of doing the search by ourselves, this way we avoid
6981         duplicating the code and also we handle the special case for virtual
6982         mode. To achieve that make our private overload of FindItemWithText
6983         internal and also have a 'roundtrip' parameter.
6984
6985 2008-04-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6986
6987         * ListView.cs: When doing the layout don't request the
6988         ListViewItem instance if we are in virtual mode (since we can't request it
6989         until the item is actully drawn).
6990
6991 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
6992
6993         * ThemeVisualStyles.cs: Added support for ProgressBar (based on the patch 
6994         from Ernesto).
6995
6996 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
6997
6998         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawCheckBox (based on 
6999         the patch from Ernesto).
7000
7001 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
7002
7003         * ThemeEngine.cs: Added code to select ThemeVisualStyles.
7004         * ThemeVisualStyles.cs: Added.
7005
7006 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
7007
7008         * IDeviceContext.cs: Added a missing using.
7009
7010 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
7011
7012         * ButtonBase.cs: Made IsDefault protected internal.
7013         * ButtonRenderer.cs: Made GetPushButtonRenderer(PushButtonState) internal.
7014
7015 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
7016
7017         * Application.cs: Included VisualStyles-related members in the 1.1 profile.
7018         * ButtonRenderer.cs, CheckBoxRenderer.cs, Padding.cs, PaddingConverter.cs,
7019         RadioButtonRenderer.cs: Included in the 1.1 profile.
7020         * IDeviceContext.cs: Added.
7021         * TextRenderer.cs: Included a member in the 1.1 profile.
7022
7023 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
7024
7025         * ThemeWin32Classic.cs: Added ShouldPaintFocusRectangle(ButtonBase).
7026
7027 2008-04-24  Jonathan Pobst  <monkey@jpobst.com>
7028
7029         * ErrorProvider.cs: Make the error icons come after the control
7030         they refer to.  It isn't the way the MS does it, but its better
7031         than what we were doing.  See bug #368587.
7032
7033 2008-04-24  Jonathan Pobst  <monkey@jpobst.com>
7034
7035         * InputLanguage.cs, InputLanguageCollection.cs: Apply patch
7036         from Eric Albright that lazy loads the input language as ensures
7037         everything gets properly initialized.  Fixes bug #373871.
7038
7039 2008-04-24  Jonathan Pobst  <monkey@jpobst.com>
7040
7041         * ToolStrip.cs: Don't use ToolStripControlHosts when figuring up
7042         implicit mnemonics.  [Fixes bug #383000]
7043
7044 2008-04-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7045
7046         * X11Dnd.cs: When canceling the operation, automatically restore the
7047         default cursor - normally the default cursor is restored when the
7048         mouse buttons are released, but we should be able to restore it even
7049         if the buttons are still pressed (for example, when pressing ESC to
7050         cancel).
7051         Fixes #381894.
7052
7053 2008-04-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7054
7055         * X11Dnd.cs: When starting a new drad and drop operation, set control
7056         field to null, just as the other fields, to avoid calling any
7057         operation on a previous control. Also, when calling DndLeave on a
7058         control, set it to null, thus we don't fire that event multiple times
7059         for that control.
7060         Fixes #209264.
7061
7062 2008-04-23  Geoff Norton  <gnorton@novell.com>
7063
7064         * XplatUICarbon.cs: Ensure that we have a valid hwnd before accessing
7065         the whole_window object.  Fixes #377084.
7066
7067 2008-04-23  Andreia Gaita <avidigal@novell.com> 
7068
7069         * HtmlElement.cs: Implement RaiseEvent (event injection into the
7070           embedded browser)
7071
7072 2008-04-23  Jonathan Pobst  <monkey@jpobst.com>
7073
7074         * DataGridViewColumnHeaderCell.cs: Implement some NIEX stuffs.
7075
7076 2008-04-23  Andreia Gaita <avidigal@novell.com> 
7077
7078         * HtmlElement.cs, HtmlDocument.cs: Implement javscript method
7079           invocation
7080
7081 2008-04-23  Andreia Gaita <avidigal@novell.com> 
7082
7083         * HtmlElement.cs, HtmlDocument.cs: Implement custom event handler
7084           attaching/detaching
7085
7086 2008-04-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7087
7088         * X11Dnd.cs: When the drop was cancelled, or could just not be
7089         performed, return DragDropEffect.None always (match .net).
7090
7091 2008-04-22  Jonathan Pobst  <monkey@jpobst.com>
7092
7093         * DataGridViewRowHeaderCell.cs: Fill in some NIEX stuff.
7094
7095 2008-04-22  Jonathan Pobst  <monkey@jpobst.com>
7096
7097         * DataGridViewRowCollection.cs: Revert something I didn't mean to commit.
7098
7099 2008-04-22  Jonathan Pobst  <monkey@jpobst.com>
7100
7101         * DataGridView.cs: Add support for error icon tool tips.
7102         * DataGridViewCell.cs: ErrorIconBounds needs to call GetErrorIconBounds.
7103         * DataGridViewRowHeaderCell.cs: Need internal way to get ErrorIconBounds.
7104
7105 2008-04-22  Ivan N. Zlatev  <contact@i-nz.net>
7106
7107         * X11Structs.cs: Add mouse button masks enum.
7108         * XplatUIX11.cs, Hwnd.cs: Send WM_ENTERSIZEMOVE and 
7109         WM_EXITSIZEMOVE only once at the beginning and at the end of the 
7110         form resize/move operation instead of for each step of it.
7111         [Fixes bug #346529 for the x11 backend]
7112
7113 2008-04-21  Jonathan Pobst  <monkey@jpobst.com>
7114
7115         * DataGridView*: Implement support for drawing error icons.
7116
7117 2008-04-21  Jonathan Pobst  <monkey@jpobst.com>
7118
7119         * TreeView.cs: Make vbar and hbar internal.
7120         * TreeNode.cs: If collapsing the node removes one of the TreeView's
7121         scrollbars, invalidate the whole thing.
7122         [Fixes bug #382001]
7123
7124 2008-04-21  Jonathan Pobst  <monkey@jpobst.com>
7125
7126         * TreeView.cs: Calling Sort() sets Sorted = true.
7127         * TreeNodeCollection.cs: Try to find the owner TreeView to determine
7128         if the nodes need to be sorted.
7129         [Fixes bug #382028]
7130
7131 2008-04-21  Ivan N. Zlatev  <contact@i-nz.net>
7132
7133         * Form.cs: Fire SizeChanged for both when the form is minimized and 
7134         restored.
7135         * XplatUIX11.cs: Instead of tracking minimization on UnmapNotify track it 
7136         on PropertyNotify of _NET_WM_STATE. Much much cleaner.
7137
7138 2008-04-21  Jonathan Pobst  <monkey@jpobst.com>
7139
7140         * ComboBox.cs: If the combobox is disabled, draw a disabled
7141         background before painting anything else.
7142         [Fixes bug #381729]
7143
7144 2008-04-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7145
7146         * X11Dnd.cs: Wehn the drag and drop operation is cancelled don't
7147         forget to send a Leave event to the target window - just as .net does
7148         when cancelling dnd operations.
7149
7150 2008-04-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7151
7152         * X11Dnd.cs: Stop tracking messages as part of the dnd operation as
7153         soon as possible - this happens when we send the drop message to the
7154         target window. This way we avoid firing any DragOver _after_ drop finished.
7155         Fixes #378179.
7156
7157 2008-04-20  Ivan N. Zlatev  <contact@i-nz.net>
7158
7159         * XplatUIX11.cs: Send WM_WINDOWPOSCHANGED when a toplevel is minimized.
7160         * Form.cs: Handle form minimization as a special state, where size doesn't 
7161         change, but we have to fire SizeChanged.
7162         [Fixes bug #325122 for the win32 and x11 backends]
7163
7164 2008-04-20  Ivan N. Zlatev  <contact@i-nz.net>
7165
7166         * XplatUIX11.cs: Win32 doesn't send WM_(KILL|SET)FOCUS 
7167         if the handle is disabled.
7168         [Fixes bug #371751]
7169
7170 2008-04-20  Ivan N. Zlatev  <contact@i-nz.net>
7171
7172         * XplatUIX11.cs: Enable Maximize/Minimize/Close ability (not decorations) 
7173         for forms with FormBorderStyle.None.
7174         [Fixes bug #349571]
7175
7176 2008-04-20  Ivan N. Zlatev  <contact@i-nz.net>
7177
7178         * XplatUIX11.cs: Implement support for WM_ENTERSIZEMOVE and 
7179         WM_EXITSIZEMOVE.
7180         [Fixes bug #346529 for the X11 backend]
7181
7182 2008-04-19  Ivan N. Zlatev  <contact@i-nz.net>
7183
7184         * XplatUIX11.cs: 
7185           - Send a mouse Enter message after say dragging the mouse with a 
7186           button down and then release it in another client.
7187           - Reset the cursor to prevent X11 from remembering it and setting it 
7188           before the control gets WM_SETCURSOR.
7189           - Qeueue a mouse move after a mouse enter like win32.
7190           [Fixes bug #323234]
7191
7192 2008-04-19  Ivan N. Zlatev  <contact@i-nz.net>
7193
7194         * XplatUIX11.cs: Implement limited support for WM_SYSCOMMAND. 
7195         It's sent when the form gets moved, resized, closed.
7196         * XplatUIStructs.cs: Add SystemCommands enum for WM_SYSCOMMAND.
7197         [Fixes bug #359193 for X11]
7198
7199 2008-04-19  Ivan N. Zlatev  <contact@i-nz.net>
7200
7201         * Form.cs: Add a ValidateChildren for the 1.1 profile. Fixes 
7202         the build.
7203
7204 2008-04-19  Ivan N. Zlatev  <contact@i-nz.net>
7205
7206         * ListView.cs: Move CalculateDetailsGroupItemsCount to the NET_2_0 
7207         group. Fixes the 1.1 build.
7208
7209 2008-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7210
7211         * ListView.cs: Use display indexes for selection in Details view, as
7212         well as do the proper layout based on display indexes for that view
7213         too.
7214
7215 2008-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7216
7217         * ListView.cs: Focused item information is now stored as a display
7218         index, and display indexes are used all over the place for selection,
7219         instead of ListViewItem.Index values, which doesn't give us enough
7220         information to modify the selection in groups mode, and was broken.
7221
7222 2008-04-18  Ivan N. Zlatev  <contact@i-nz.net>
7223
7224         * Control.cs: Do not fire MouseDown if validation of the control has 
7225         failed.
7226         * Form.cs: Validate the form before closing.
7227         [Fixes bugs #330501 and #353310]
7228
7229 2008-04-18  Andreia Gaita <avidigal@novell.com> 
7230
7231         * WebBrowserBase.cs: Added WndProc, DrawToBitmap,
7232           CreateWebBrowserSiteBase implementations
7233         * HtmlElement.cs: Add missing OuterHTML, OuterText setters, stubbed
7234           Style and TabIndex setters
7235
7236 2008-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7237
7238         * ListViewGroup.cs: When returning the actual item count, return the
7239         proper count for default group.
7240         Fix the tests.
7241
7242 2008-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7243
7244         * ListView.cs:
7245         * ListViewGroup.cs: When calculating groups layout, get the actual
7246         number of items per group, since groups added to the group BUT not
7247         added to the ListView are just ignored, and can cause some nasty
7248         exceptions because of the lack of synchronization. Also for
7249         ListViewGroup don't use lazy initialization for items, since we 
7250         the common scenario is to use it always - and it helps us to  refactor
7251         and clean the .ctor overloads.
7252
7253 2008-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7254
7255         * ListView.cs: When adding an item to a ListViewItemCollection
7256         belonging to a group (ListViewGroup.Items), don't generate a redraw if
7257         the added item hasn't beeen previously added to the ListView instance
7258         refered by the group, since it will be ignored. This should avoid some 
7259         really nasty flickering.
7260
7261 2008-04-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7262
7263         * ListView.cs: When accessing an item in a specific display
7264         position, use the helper method GetItemAtDisplayIndex, instead of
7265         direct access to the reordered_items_indices array. When doing layout
7266         for groups set the correct Items index for the display position (since
7267         in groups mode items don't have the same position as in Items
7268         collection).
7269         * ListViewGroup.cs: Add a field to store the starting item number,
7270         which is later used when calculating the layout.
7271
7272         Fixes #360805.
7273
7274 2008-04-17  Gert Driesen  <drieseng@users.sourceforge.net>
7275
7276         * Application.cs: Fixed ProductVersion to fallback to the assembly
7277         version. Fixes regression for bug #325413.
7278
7279 2008-04-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7280
7281         * ListView.cs: New helper method to retrieve an item in a _specific
7282         display_ position (the items can be displayed in a different order
7283         than one of Items collection).
7284         * ThemeWin32Classic.cs: When drawing, instead of iterating over Items
7285         collection, use ListView.GetItemAtDisplayIndex, to get an item in a
7286         specific display position (again remember that items can be sorted
7287         different than Items).
7288
7289 2008-04-16  Jonathan Pobst  <monkey@jpobst.com>
7290
7291         * DataGridViewColumnCollection.cs: Create a cached copy of our sorted
7292         list and update it when the collection changes.  We were recreating
7293         this several times per row paint and for every pixel the mouse moved
7294         across the grid.
7295         * DataGridViewColumn.cs: Regenerate cached sorted list when DisplayIndex
7296         changes.
7297
7298 2008-04-16  Jonathan Pobst  <monkey@jpobst.com>
7299
7300         * DataGridViewColumnCollection.cs: Convert our internal sorted columns
7301         list to use generics.
7302         * DataGridView.cs, DataGridViewRow.cs: Use generic sorted column list
7303         and remove unneccessay casts.
7304
7305 2008-04-16  Jonathan Pobst  <monkey@jpobst.com>
7306
7307         * DataGridViewBand.cs: Add internal way to set displayed variable.
7308         * DataGridViewRow.cs: Don't paint cells in non-displayed columns.
7309         * DataGridView.cs: Make sure we always keep track of Displayed
7310         rows and columns, and only draw things that are displayed.
7311
7312 2008-04-16  Atsushi Enomoto  <atsushi@ximian.com>
7313
7314         * X11Keyboard.cs, XplatUIX11.cs : manage key state regardless of
7315           whether the key events are filtered or not. Introduced
7316           PreFilter() process for this purpose. This fixes atokx3/iiimx
7317           shift state issue.
7318
7319 2008-04-16  Andreia Gaita <avidigal@novell.com> 
7320
7321         * HtmlHistory.cs: Implement Length property
7322
7323 2008-04-15  Jonathan Pobst  <monkey@jpobst.com>
7324
7325         * DataGridView.cs: Call EndEdit when a sort is performed so we take
7326         away the edit textbox.  Refactor to reuse column sort code.
7327
7328 2008-04-12  Everaldo Canuto  <ecanuto@novell.com>
7329
7330         * MenuAPI.cs: Remove the code that save and restore capture status of 
7331         grab_control, this fixes some Menu and Context menu bugs but maybe it can
7332         cause some others, I cant figure the possible problems of this patch but
7333         right now remove the code looks to be better than keep it. This patch fixes
7334         bugs #357638, #378721 and #379570.
7335
7336 2008-04-12  Andreia Gaita <avidigal@novell.com> 
7337
7338         * HtmlDocument.cs, HtmlElement.cs, HtmlHistory.cs, WebBrowser.cs:
7339         Implement OuterHtml, OuterText, Enabled, Scroll*, *Rectangle properties,
7340         add missing properties and event handlers.
7341         
7342 2008-04-14  Jonathan Pobst  <monkey@jpobst.com>
7343
7344         * ListBox.cs: Make sure the LargeChange we are setting is at least
7345         zero, to prevent an IOORE.  [Fixes bug #379531]
7346
7347 2008-04-13  Andy Hume <andyhume32@yahoo.co.uk>
7348
7349         * ComboBox.cs: Support item navigation by entering text.  Firstly, 
7350         in DropDownList mode, for each key-press select the next item 
7351         starting with that letter.
7352         For other modes, when no item selected, on arrow-up/-down and open 
7353         drop-down select the first item matching the text in the textbox.
7354
7355 2008-04-14  Atsushi Enomoto  <atsushi@ximian.com>
7356
7357         * X11Keyboard.cs : Control.FromHandle() could return null
7358           in MoveCurrentCaretPos().
7359
7360 2008-04-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7361
7362         * ListView.cs: When changing the size in VirtualMode, also Reset the
7363         selection.
7364         * ListViewItem.cs: Don't call SelectedIndexCollection.Reset when
7365         changing selection info for VirtualMode.
7366         Fixes #372618.
7367
7368 2008-04-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7369
7370         * ThemeWin32Classic.cs: When drawing ListViewItem instancesin Details
7371         view, don't use LineLimit for the first item - use NoWrap *always*
7372         instead, since ListView.LabelWrap is not used for this view.
7373         Fixes #378054.
7374
7375 2008-04-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7376
7377         * Binding.cs: Call UpdateIsBinding when setting control - probably
7378         Binding is already usable and we don't need to wait to check the
7379         IsBinding state. Also for 1.1 profile use IsHandleCreated instead of
7380         Created, just like 2.0 does.
7381         * CurrencyManager.cs: I'm so lame - the previous check was wrong.
7382
7383 2008-04-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7384
7385         * Binding.cs: Just realized we don't need to have a handler for
7386         BindingContextChanged, since this info should be now consumed directly
7387         in the BindingManagerBase. And also, the manager.IsBindingSuspended
7388         state info is checked directly, instead of caching it.
7389
7390         * CurrencyManager.cs: IsSuspended should return always false if Count
7391         == 0.
7392
7393 2008-04-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7394
7395         * Binding.cs: When calling PushData, return if manager.Count == 0,
7396         since we just don't have data to be read. Also, when setting the
7397         Control for binding, hook up some events to refresh the IsBinding
7398         state when BindingContext change or control gets created; use
7399         Control.IsHandleCreated instead of Control.Created check to set
7400         IsBinding state - we *actually* need to modify IsBinding when control
7401         is created, but we don't have any Created event, only HandleCreated.
7402         Fixes part of #349364.
7403
7404 2008-04-11  Geoff Norton  <gnorton@novell.com>
7405
7406         * XplatUICarbon.cs: Expose Caret to the Carbon layer.  Guard against
7407         warping a null Caret.
7408
7409 2008-04-11  Jonathan Pobst  <monkey@jpobst.com>
7410
7411         * DataGridView.cs: Implement row/column autosizing methods. Implement
7412         autosorting.
7413         * DataGridViewColumnHeaderCell.cs: Add painting of the sort glyph.
7414         * DataGridViewRowCollection.cs: Add an internal sorting method.
7415
7416 2008-04-11  Jonathan Pobst  <monkey@jpobst.com>
7417
7418         * ThemeWin32Classic.cs: Apply patch from Ernesto to cache an expensive
7419         value in ListView drawing code.
7420
7421 2008-04-11  Jonathan Pobst  <monkey@jpobst.com>
7422
7423         * FileDialog.cs: Only call FileOk when Ok is clicked, not when Cancel
7424         is clicked.  Respect the user setting Cancel in FileOk.
7425
7426 2008-04-11  Geoff Norton  <gnorton@novell.com>
7427
7428         * ListView.cs: Avoid setting and resetting control Width/Heights and
7429         calculate the final value and set it once.  Prevents a feedback loop
7430         on the mac.
7431
7432 2008-04-10  Jonathan Pobst  <monkey@jpobst.com>
7433
7434         * TreeView.cs: Clamp setting the scrollbar value using SafeValueSet.
7435         [Fixes bug #378869]
7436
7437 2008-04-10  Atsushi Enomoto  <atsushi@ximian.com>
7438
7439         * X11Keyboard.cs, X11Structs.cs : make over-the-spot mode default.
7440           Add some on-the-spot code, but it seems we don't need it.
7441
7442 2008-04-10  Jonathan Pobst  <monkey@jpobst.com>
7443
7444         * Form.cs: Add method for DataGridView to trigger focus cues
7445         even when it handles the tab keypress.
7446
7447 2008-04-10  Jonathan Pobst  <monkey@jpobst.com>
7448
7449         * DataGridView.cs: More keyboard handling, tab, esc.
7450         * DataGridViewTextBoxEditingControl.cs: Don't request arrow keys
7451         when at the beginning or end of the text in the text box.
7452
7453 2008-04-09  Jonathan Pobst  <monkey@jpobst.com>
7454
7455         * DataGridViewCell.cs: Guard against an NRE causing a test to fail.
7456
7457 2008-04-09  Jonathan Pobst  <monkey@jpobst.com>
7458
7459         * DataGridView.cs: Some fixups for showing and adding the edit control.
7460         * DataGridViewButtonColumn.cs: Implement ToString.
7461         * DataGridViewCell.cs: Size and position the control simultaneously.
7462         * DataGridViewTextBoxCell.cs: Use base to position control.
7463
7464 2008-04-09  Jonathan Pobst  <monkey@jpobst.com>
7465
7466         * DataGridViewCell.cs: Fix up some formatting and painting code.
7467         * DataGridViewImageCell.cs: Implement some NIEX methods.
7468
7469 2008-04-09  Jonathan Pobst  <monkey@jpobst.com>
7470
7471         * ToolStripItemCollection.cs: What moving an item from one owner
7472         to another, remove from source owner before adding to destination.
7473         [Fixes bug #378109]
7474
7475 2008-04-09  Jonathan Pobst  <monkey@jpobst.com>
7476
7477         * PictureBox.cs: Call Load when ImageLocation is set.
7478         [Fixes bug #378308]
7479
7480 2008-04-09  Atsushi Enomoto  <atsushi@ximian.com>
7481
7482         * X11Keyboard.cs, XplatUIX11.cs :
7483           Implement over-the-spot mode (with some odd offsets).
7484           - set preedit position when caret is set.
7485           - Wrap XMoveResizeWindow() to move preedit position.
7486
7487 2008-04-08  Everaldo Canuto  <ecanuto@novell.com>
7488
7489         * X11keyboard.cs: Fix last patch, maxval must be less not greater than
7490         array lenght.
7491
7492 2008-04-08  Everaldo Canuto  <ecanuto@novell.com>
7493
7494         * KeyboardLayouts.cs: Uses GENERATING_RESOURCES to make VKeyTableIndex
7495         and ScanTableIndex public, it fix compilations errors when compiling
7496         WinForms to generate keyboard layout resources.
7497
7498 2008-04-08  Everaldo Canuto  <ecanuto@novell.com>
7499
7500         * X11keyboard.cs: Prevent keyboard errors when vitual table theres 
7501         different element count than scan table. It prevents some errors in non
7502         standard keyboards.
7503
7504 2008-04-08  Jonathan Pobst  <monkey@jpobst.com>
7505
7506         * DataGridViewHeaderCell.cs: Implement some NIEX methods.
7507
7508 2008-04-08  Jonathan Pobst  <monkey@jpobst.com>
7509
7510         * DataGridView.cs: Call OnContentClick.
7511         * DataGridViewCell.cs: Do a null check on ValueType instead
7512         of valueType.
7513         * DataGridViewCheckBoxCell.cs: Implement.
7514
7515 2008-04-08  Atsushi Enomoto  <atsushi@ximian.com>
7516
7517         * X11Keyboard.cs : Do not cast IntPtr to int. Use long.
7518
7519 2008-04-08  Atsushi Enomoto  <atsushi@ximian.com>
7520
7521         * X11Keyboard.cs : Check XGetIMValues() return value in
7522           case it does not return input styles in some environment.
7523
7524 2008-04-08  Atsushi Enomoto  <atsushi@ximian.com>
7525
7526         * X11Keyboard.cs : sizeof(IntPtr) != 4 on amd64.
7527
7528 2008-04-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7529
7530         * BindingContext.cs: Stub UpdateBinding method.
7531
7532 2008-04-07  Atsushi Enomoto  <atsushi@ximian.com>
7533
7534         * X11Structs.cs : added couple of structs for XIM support.
7535         * X11Keyboard.cs :
7536           Release XIM in case it failed to create XIC. 
7537           Use consts for XNblah string.
7538           Add support for IM style customization and XIC creation
7539           for preedit-position and preedit-callback.
7540           Right now use MONO_WINFORMS_XIM_STYLE environment variable
7541           (list of: over-the-spot | on-the-spot | root). Only root
7542           mode works so far.
7543
7544           (redoing r99172 with fix.)
7545
7546 2008-04-07  Jonathan Pobst  <monkey@jpobst.com>
7547
7548         * TreeView.cs: Center the checkbox a little better.
7549
7550 2008-04-07  Jonathan Pobst  <monkey@jpobst.com>
7551
7552         * ThemeClearlooks.cs, ThemeGtk.cs, ThemeNice.cs, ThemeWin32Classic.cs:
7553         Apply very nice patch from Ernesto Carrea that simplifies our
7554         scrollbar drawing.  [From bug #376146]
7555
7556 2008-04-07  Jonathan Pobst  <monkey@jpobst.com>
7557
7558         * TreeView.cs: Correct the location of the root node checkbox when
7559         ShowRootLines = false.  Don't draw the root lines for the root node
7560         when ShowRootLines = false.  [Fixes bug #377535]
7561
7562 2008-04-06  Gert Driesen  <drieseng@users.sourceforge.net>
7563
7564         * WebBrowserBase.cs: Added missing attributes and fixed attributes.
7565         Fixed line endings.
7566         * WebBrowser.cs: Added missing attributes and fixed attributes. Fixed
7567         line endings.
7568         * MaskedTextBox.cs: Added missing attribute. Code formatting.
7569         * PageSetupDialog.cs: Added missing attribute. Code formatting.
7570         * HtmlWindowCollection.cs: Code formatting. Fixed line endings.
7571         * ImeMode.cs: Added missing field.
7572         * HtmlWindow.cs: Code formatting. Fixed line endings.
7573         * HtmlElement.cs: Code formatting. Fixed line endings. Fixed compiler
7574         warnings.
7575         * HtmlHistory.cs: Code formatting. Fixed line endings.
7576         * HtmlDocument.cs: Code formatting. Fixed line endings.
7577         * ToolStripPanel.cs: Added missing IList implementation.
7578         * HtmlElementCollection.cs: Code formatting. Fixed line endings.
7579
7580 2008-04-06  Gert Driesen  <drieseng@users.sourceforge.net>
7581
7582         * BindingContext.cs: Changed argument names to fix corcompare errors.
7583         * DataGridView.cs: Removed extra explicit interface implementation
7584         of IDropTarget. Code formatting.
7585         * FlowLayoutPanel.cs: Changed argument names to fix corcompare errors.
7586         * ComboBox.cs: Changed argument names to fix corcompare errors.
7587         * DataGridTextBoxColumn.cs: Changed argument names to fix corcompare
7588         errors.
7589         * GridColumnStylesCollection.cs: Changed argument names to fix
7590         corcompare errors. Removed extra tabs.
7591         * GridTableStylesCollection.cs: Changed argument names to fix corcompare
7592         errors.
7593         * Control.cs: Changed argument names to fix corcompare errors. Code
7594         formatting. Removed extra explicit IList implementation.
7595         * TextBox.cs: Changed argument names to fix corcompare errors. Code
7596         formatting. Use string.Empty instead of "".
7597         * GridItemCollection.cs: Changed argument names to fix corcompare
7598         errors. Code formatting.
7599         * DataGridViewTopLeftHeaderCell.cs: Changed argument names to fix
7600         corcompare errors. Code formatting.
7601         * ImageList.cs: Changed argument names to fix corcompare errors.
7602         * ToolStripItem.cs: Changed argument names to fix corcompare errors.
7603         * DataGridViewRowCollection.cs: Changed argument names to fix
7604         corcompare errors. Code formatting.
7605         * TableLayoutPanel.cs: Changed argument names to fix corcompare errors.
7606         * DataGridViewSelectedCellCollection.cs: Changed argument names to
7607         fix corcompare errors. Code formatting.
7608         * DataGridViewComboBoxCell.cs: Changed argument names to fix
7609         corcompare errors. Code formatting.
7610         * LinkLabel.cs: Changed argument names to fix corcompare errors.
7611         * TreeNode.cs: Changed argument names to fix corcompare errors. Code
7612         formatting.
7613         * PropertyGrid.cs: Changed argument names to fix corcompare errors.
7614         Code formatting.
7615         * BindingSource.cs: Changed argument names to fix corcompare errors.
7616         Removed extra explicit interface implementations.
7617         * DataGridViewSelectedRowCollection.cs: Changed argument names to
7618         fix corcompare errors. Code formatting.
7619         * ToolStripItemCollection.cs: Removed extra explicit interface
7620         implementation of IList.ReadOnly.
7621         * DataGridViewColumnCollection.cs: Changed argument names to fix
7622         corcompare errors. Code formatting.
7623         * DataGridViewRow.cs: Rename converter to match MS. Code formatting.
7624         * ListView.cs:  Changed argument names to fix corcompare errors.
7625         * DataGridViewHeaderCell.cs: Changed argument names to fix corcompare
7626         errors.
7627         * DataGridBoolColumn.cs: Changed argument names to fix corcompare
7628         errors.
7629         * ListBindingHelper.cs: Changed argument names to fix corcompare
7630         errors.
7631         * DataGridViewSelectedColumnCollection.cs: Changed argument names to
7632         fix corcompare errors. Code formatting.
7633         * ToolStripPanel.cs: Removed extra explicit implementation of
7634         IDropTarget interface.
7635         * ListBox.cs: Changed argument names to fix corcompare errors. Code
7636         formatting. Removed extra tabs and spaces.
7637         * DataGridViewCellCollection.cs: Changed argument names to fix
7638         corcompare errors.
7639         * Help.cs: Changed argument names to fix corcompare errors. Code
7640         formatting.
7641         * TabControl.cs: Changed argument names to fix corcompare errors.
7642         * DataGridColumnStyle.cs: Changed argument names to fix corcompare
7643         errors.
7644         * TableLayoutSettings.cs: Changed argument names to fix corcompare
7645         errors.
7646
7647 2008-04-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7648
7649         * ListBindingHelper.cs: When returning properties, only return those
7650         that are browsable. Also, don't do a linear search of the properties,
7651         but use the indexer of the PropertyDescriptorCollection class.
7652
7653 2008-04-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7654
7655         * BindingSource.cs: Implement GetRelatedCurrencyManager by adding a
7656         Dictionary containing the related (child) currency managers. Also,
7657         when setting DataSource, add datasource to our List if it is not a list.
7658
7659 2008-04-05  Ivan N. Zlatev  <contact@i-nz.net>
7660
7661         * PropertyGridTextBox.cs: Fix background color of the buttons.
7662         * PropertyGridView.cs: Make the entry less jumpy.
7663
7664 2008-04-05  Ivan N. Zlatev  <contact@i-nz.net>
7665
7666         * PropertyGrid.cs: Fix unused variable warnings.
7667
7668 2008-04-05  Ivan N. Zlatev  <contact@i-nz.net>
7669
7670         * PropertyGridView.cs: Fix expansion via [+] misbehavior on 
7671         double-click. It expanded it once in the mouse down and then 
7672         again in the double-click handler.
7673
7674 2008-04-04  Ivan N. Zlatev  <contact@i-nz.net>
7675         
7676         * GridEntry.cs: ICustomTypeDescriptor support for PropertyOwner, 
7677         TypeConverter and UITypeEditors.
7678
7679 2008-04-04  Ivan N. Zlatev  <contact@i-nz.net>
7680
7681         * Control.cs: Visibility should be set synchronously, 
7682         so we must also redraw once it is and not rely on layouting or 
7683         other code to repaint.
7684         [Fixes bug #339898]
7685
7686 2008-04-04  Jonathan Pobst  <monkey@jpobst.com>
7687
7688         * DataGridViewCell.cs: Respect DataGridView.GridColor.
7689
7690 2008-04-03  Jonathan Pobst  <monkey@jpobst.com>
7691
7692         * Control.cs: Invalidate when the alpha channel is less than 255,
7693         not only when control is transparent.
7694
7695 2008-04-03  Jonathan Pobst  <monkey@jpobst.com>
7696
7697         * DataGridViewRowPrePaintEventArgs.cs, DataGridViewRowPostPaintEventArgs.cs:
7698         Implement some painting convenience methods that threw NIEX.
7699
7700 2008-04-03  Jonathan Pobst  <monkey@jpobst.com>
7701
7702         * DataGridView.cs: Call CellMouse[Enter|Move|Leave] properly.
7703         * DataGridViewLinkCell.cs: Implement.
7704
7705 2008-04-03  Ivan N. Zlatev  <contact@i-nz.net>
7706
7707         * GridEntry.cs: Report the conversion exception error description.
7708         [Fixes bug #375792]
7709
7710 2008-04-03  Ivan N. Zlatev  <contact@i-nz.net>
7711
7712         * PropertyGridView.cs: Do not scroll to item on resize.
7713         [Fixes bug #375789]
7714
7715 2008-04-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7716
7717         * BindingContext.cs: When retrieving a BindingManagerBase, if the
7718         dataSource parameter is ICurrencyManagerProvider, then return
7719         ICurrencyManagerProvider.CurrencyManager/GetRelatedCurrencyManager
7720         instead of creating a new one.
7721
7722 2008-04-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7723
7724         * BindingSource.cs: Implement support for Type instances as
7725         DataSource.
7726
7727 2008-04-02  Jonathan Pobst  <monkey@jpobst.com>
7728
7729         * DataGridView.cs: Minor cleanups and call CellMouseUp.
7730         * DataGridViewCell.cs: Make some painting routines internally virtual.
7731         * DataGridViewButtonCell.cs: Implement.
7732
7733 2008-04-02  Jonathan Pobst  <monkey@jpobst.com>
7734
7735         * Control.cs: We always need to invalidate our children with
7736         transparent backgrounds when we are invalidated.
7737         [Fixes bug #376081]
7738
7739 2008-04-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7740
7741         * BindingSource.cs: EndEdit and CancelEdit should call EndCurrentEdit
7742         and CancelCurrentEdit on CurrencyManager respectively. Implement
7743         support for ICancelAddNew too.
7744
7745 2008-04-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7746
7747         * CurrencyManager.cs: When calling EndCurrentEdit/CancelCurrentEdit,
7748         call EndNew/CancelNew if list is ICancelAddNew.
7749
7750 2008-04-01  Jonathan Pobst  <monkey@jpobst.com>
7751
7752         * DataGridView.cs: Guard against an exception while painting
7753         if there are no rows.
7754
7755 2008-04-01  Jonathan Pobst  <monkey@jpobst.com>
7756
7757         * DataGridView.cs: Implement a bunch of keyboard commands.
7758
7759 2008-03-31  Jonathan Pobst  <monkey@jpobst.com>
7760
7761         * ToolBar.cs: Don't do our painting if UserPaint is set.  If UserPaint
7762         isn't set, don't call OnPaint.  [Fixes bug #375300]
7763
7764 2008-03-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7765
7766         * BindingSource.cs: IsBindingSuspended, ResumeBinding and
7767         SuspendBinding depend on CurrencyManager. Implement RemoveCurrent,
7768         hookup the remaining events related to CurrencyManager, and fire
7769         OnListChanged also for the Clear () method.
7770
7771 2008-03-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7772
7773         * BindingSource.cs: Use Current and Position implementations in
7774         CurrencyManager instead of using our own routines, since we need 
7775         to be in synch with it. Count should NEVER return a -1 value, and 
7776         also report ListChanged events for both simple IList data 
7777         sources (manually) as well for IBindingList ones (by hooking up an
7778         event handler for it).
7779
7780 2008-03-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7781
7782         * BindingSource.cs: Make one .ctor call the another, to avoid
7783         duplicate code. Add the CurrencyManager property, and also for AddNew
7784         throw the proper exceptions and show better error messages.
7785
7786 2008-03-28  Jonathan Pobst  <monkey@jpobst.com>
7787
7788         * ComboBox.cs: Only adjust selectedindex if Handle has been
7789         created.  Fixes failing test.
7790
7791 2008-03-28  Jonathan Pobst  <monkey@jpobst.com>
7792
7793         * ComboBox.cs: Adjust selectedindex if we insert a new item
7794         above the current selectedindex in a sorted ComboBox.
7795         [Fixes bug #374654]
7796
7797 2008-03-28  Jonathan Pobst  <monkey@jpobst.com>
7798
7799         * ComboBox.cs: Support PageUp/PageDown when dropdown is closed.
7800         [Fixes bug #374712]
7801
7802 2008-03-28  Jonathan Pobst  <monkey@jpobst.com>
7803
7804         * DataGridViewTextBoxCell.cs: Implement stuffs.
7805
7806 2008-03-27  Jonathan Pobst  <monkey@jpobst.com>
7807
7808         * TreeView.cs: Create the scrollbars even earlier to be
7809         double dog certain they are created before they are accessed.
7810
7811 2008-03-27  Jonathan Pobst  <monkey@jpobst.com>
7812
7813         * XplatUIX11.cs: Remove a no-op line that csc was choking on.
7814
7815 2008-03-27  Jonathan Pobst  <monkey@jpobst.com>
7816
7817         * ScrollBar.cs: Create an internal safe Value setter so we
7818         won't crash if we try to set a value outside the min and max.
7819         * TextBoxBase.cs: Use safe value setter to guard against a
7820         potential NRE that is being reported by Reflector.
7821
7822 2008-03-27  Jonathan Pobst  <monkey@jpobst.com>
7823
7824         * TreeView.cs: Create the scrollbars earlier in the constructor
7825         to attempt to guard against an NRE in SetTop in Reflector.
7826
7827 2008-03-27  Jonathan Pobst  <monkey@jpobst.com>
7828
7829         * DataGridView.cs, DataGridViewCell.cs, DataGridViewCell.cs,
7830         DataGridViewRowCollection.cs: Do not scroll column and row headers,
7831         show messagebox on data format error, use column display index
7832         correctly, make sure HitTest supports new layout stuff,
7833         make sure scrollbars support new layout stuff.
7834
7835 2008-03-27  Atsushi Enomoto  <atsushi@ximian.com>
7836
7837         * XplatUIX11.cs : Patch by Doug Rintoul.
7838           For some IM engines, keypress events need to delay call
7839           to XPending() and XNextEvent() in the loop so that it
7840           does not mess the orders in XIM commit callback.
7841           Some KeyRelease events such as shift keys need to be
7842           processed both in the IM engine and winforms driver
7843           itself since winforms holds its own state check.
7844
7845           For details, see: http://lists.ximian.com/pipermail/mono-winforms-list/2008-March/003279.html
7846
7847 2008-03-27  Atsushi Enomoto  <atsushi@ximian.com>
7848
7849         * X11Keyboard.cs, XplatUIX11.cs :
7850           add primitive support for XIM input support (preedit-
7851           nothing and status-nothing). It requires precise event
7852           capturing (XSelectInput/"filterEvents") and different
7853           call to XFilterEvent against root window.
7854           Get composed string and send dummy WM_IME_COMPOSITION.
7855           Free XIM and XIC instances in finalizer.
7856
7857           (This first patch does not include suggested changes
7858            by Doug Rintoul. It will follow.)
7859
7860 2008-03-26  Jonathan Pobst  <monkey@jpobst.com>
7861
7862         * DataGridView.cs: When binding to a property, if the property
7863         doesn't have a setter, set the column to readonly.
7864         [Fixes bug #343965]
7865
7866 2008-03-26  Jonathan Pobst  <monkey@jpobst.com>
7867
7868         * ComboBox.cs: Guard against NRE if an arrow key is hit while
7869         we aren't dropped down.  Support Home/End in DropDownList mode.
7870         [Fixes bug #371990]
7871
7872 2008-03-26  Jonathan Pobst  <monkey@jpobst.com>
7873
7874         * TreeNodeCollection.cs: Don't increment count until we've
7875         saved our index to return.
7876         [Fixes bug #373603]
7877
7878 2008-03-25  Jonathan Pobst  <monkey@jpobst.com>
7879
7880         * Label.cs: Add padding to the label's AutoSize calculation.
7881         [Fixes bug #373792]
7882
7883 2008-03-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7884
7885         * ListBindingHelper.cs: Actually implement GetListName method.
7886
7887 2008-03-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7888
7889         * BindingSource.cs: Throw the propert expceptions for some methods, as
7890         well as detect the list item type for Add method if DataSource is null.
7891
7892 2008-03-25  Jonathan Pobst  <monkey@jpobst.com>
7893
7894         * DataGridViewCell.cs: I don't know why I commented this out,
7895         putting it back for now.
7896
7897 2008-03-25  Jonathan Pobst  <monkey@jpobst.com>
7898
7899         * DataGridViewCell.cs: Remove storage for owning column, just
7900         use column index.
7901         * DataGridViewColumn.cs: Make getter for HeaderTextSet.
7902         * DataGridViewColumnHeaderCell.cs: If the header text has been
7903         explicitly set, return it.
7904         [Fixes bug #325979]
7905
7906 2008-03-25  Jonathan Pobst  <monkey@jpobst.com>
7907
7908         * DataGridViewRowCollection.cs: Disable row sharing when
7909         using data binding.  Its a great feature, but lets work on
7910         getting DGV usable first before we worry about optimizations.
7911
7912 2008-03-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7913
7914         * BindingSource.cs: When resetting our internal list, compute list
7915         item type information to be used for indirect list access. Also
7916         implement/tune some properties and methods related to the list access
7917         too.
7918         * ListBindingHelper.cs: Add a stub for GetListName method, used from
7919         BindingSource.
7920
7921 2008-03-24  Jonathan Pobst  <monkey@jpobst.com>
7922
7923         * DataGridView.cs: If RowCount is increased while ColumnCount
7924         is zero, add a column.  [Fixes bug #331649]
7925
7926 2008-03-24  Jonathan Pobst  <monkey@jpobst.com>
7927
7928         * DataGridViewRowCollection.cs: When adding new rows for
7929         databinding, make sure they are place before the add row.
7930         [Fixes bug #343961]
7931
7932 2008-03-24  Jonathan Pobst  <monkey@jpobst.com>
7933
7934         * DataGridViewRow.cs: Draw cells in column DisplayIndex order
7935         instead of Index order.
7936
7937 2008-03-24  Jonathan Pobst  <monkey@jpobst.com>
7938
7939         * DataGridView.cs: If columns are added by increasing ColumnCount,
7940         they need to be DataGridViewTextBoxColumns, not DataGridViewColumn.
7941         [Fixes bug #325588]
7942
7943 2008-03-24  Jonathan Pobst  <monkey@jpobst.com>
7944
7945         * DataGridView.cs: Turn off and on the "new row" when 
7946         AllowUserToAddRows is toggled.  When the handle is created,
7947         set current cell and selected cell/row/col.
7948
7949 2008-03-24  Jonathan Pobst  <monkey@jpobst.com>
7950
7951         * ComboBox.cs: When navigating the drop down by keyboard, we
7952         need to scroll the list box if our selection moves out of the
7953         currently shown items.  [Fixes bug #371990]
7954
7955 2008-03-24  Luke Page <luke.a.page@gmail.com>
7956
7957         * RichTextBox.cs: Handles visible rtf tag and no longer shows the text
7958         on the control. Also now handles unicode compatibility characters and
7959         stores the unicode compatibility length on the stack. Fixes Bugs
7960         #355198 and #366436.
7961
7962 2008-03-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7963
7964         * BindingSource..cs: Take into account DataMember when re-creating the
7965         List property, and also create a specific kind of list as needed.
7966
7967 2008-03-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7968
7969         * ListBindingHelper.cs: Add a new case for GetList () method - when we
7970         get an empty IEnumerable, try to detect whether the datamember is
7971         valid or not for that type, if true, return null, and throw exception
7972         otherwise.
7973
7974 2008-03-22  Jonathan Pobst  <monkey@jpobst.com>
7975
7976         * ComboBox.cs: Alt-Down should drop down the list, Esc should
7977         retract it.  [Fixes bug #371989]
7978
7979 2008-03-22  Ivan N. Zlatev  <contact@i-nz.net>
7980
7981         * PropertyGrid.cs: Initialize the sorting button as pushed.
7982
7983 2008-03-22  Ivan N. Zlatev  <contact@i-nz.net>
7984
7985         * PropertyGrid.cs: 
7986          - Visually select the PropertyTab.
7987          - Filter Properties by Attributes properly.
7988
7989 2008-03-21  Jonathan Pobst  <monkey@jpobst.com>
7990
7991         * MenuItem.cs: Remove menu item from parent when disposed.
7992         [Fixes bug #372845]
7993
7994 2008-03-21  Jonathan Pobst  <monkey@jpobst.com>
7995
7996         * ToolBar.cs: Don't reset layout_type if Dock = None.
7997
7998 2008-03-21  Andreia Gaita <avidigal@novell.com> 
7999
8000         * UserControl.cs: Select the first available control when we get focus.
8001           Fixes #372616
8002
8003 2008-03-21  Jonathan Pobst  <monkey@jpobst.com>
8004
8005         * DataGridViewCell.cs, DataGridViewTextBoxCell.cs: Don't paint
8006         the content if we are in edit mode.  [Fixes bug #343964]
8007
8008 2008-03-21  Jonathan Pobst  <monkey@jpobst.com>
8009
8010         * DataGridViewCell.cs: Fix border painting for column headers.
8011
8012 2008-03-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8013
8014         * BindingSource.cs: When setting or resetting data source,
8015         use ListBindingHelper.GetList () method, since it will get the list in
8016         case datasource is IListSource.
8017
8018 2008-03-20  Jonathan Pobst  <monkey@jpobst.com>
8019
8020         * DataGridViewCell.cs: Implement lots more stuffs.
8021
8022 2008-03-20  Ivan N. Zlatev  <contact@i-nz.net>
8023
8024         * PropertyGridView.cs, GridEntry.cs: Implement support for 
8025         UITypeEditor.IsDropDownResizable.
8026
8027 2008-03-20  Jonathan Pobst  <monkey@jpobst.com>
8028
8029         * DataGridViewCell.cs: Remove unused variables, improve how
8030         several of the property getters work.
8031         * DataGridViewRow.cs: Don't call setSize on a cell, cell should
8032         get its size from the parent row/col.
8033
8034 2008-03-20  Ivan N. Zlatev  <contact@i-nz.net>
8035
8036         * PropertyGrid.cs: Ensure PropertiesTab is visible even if the 
8037         user alters manually the PropertyTabs collection via the 
8038         PropertyTabs property.
8039
8040 2008-03-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8041
8042         * ListBindingHelper.cs: Implement -previously- ignored cases. We have
8043         new tests for them to be sure to be compatible with .net.
8044
8045 2008-03-20  Andreia Gaita <avidigal@novell.com> 
8046
8047         * WebBrowserBase.cs: Fix attributes, add events
8048         * WebBrowser.cs: Fix Padding signature
8049
8050 2008-03-20  Ivan N. Zlatev  <contact@i-nz.net>
8051
8052         * PropertyGrid.cs, PropertyGridView.cs: Implement PropertyTab support.
8053
8054 2008-03-19  Jonathan Pobst  <monkey@jpobst.com>
8055
8056         * DataGridView.cs, DataGridViewCell.cs, DataGridViewCellStyle.cs,
8057         DataGridViewLinkCell.cs, DataGridViewRow.cs, DataGridViewRowHeaderCell.cs,
8058         DataGridViewTextBoxCell.cs: Changes so that DataGridViewCell
8059         passes the new suite of tests for it.
8060
8061 2008-03-18  Andreia Gaita <avidigal@novell.com> 
8062
8063         * WebBrowser.cs: Add missing attributes, missing Padding and
8064           DefaultSize properties, remove extraneous getters
8065
8066 2008-03-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8067
8068         * ListBindingHelper.cs: Implement a pair of GetListItemProperties
8069         method overloads.
8070
8071 2008-03-16  Jonathan Pobst  <monkey@jpobst.com>
8072
8073         * ComboBox.cs: Move resetting the selected index to keypress
8074         instead of textchanged.  Changing the text programmatically
8075         should not trigger resetting the selected index.  Fixes test.
8076
8077 2008-03-16  Jonathan Pobst  <monkey@jpobst.com>
8078
8079         * ComboBox.cs: When the user types into the textbox, reset
8080         the selected index to -1.  [Fixes bug #371672]
8081
8082 2008-03-16  Jonathan Pobst  <monkey@jpobst.com>
8083
8084         * FileDialog.cs: Support Control-A for selecting everything
8085         in an OpenFileDialog.  [Fixes bug #371564]
8086
8087 2008-03-15  Jonathan Pobst  <monkey@jpobst.com>
8088
8089         * DataGridView.cs: When row/column visible/height properties
8090         change, invalidate.  Take the NIEX out of InvalidateRow/Column
8091         etc.  We don't support them yet, but we can just invalidate
8092         everything until we do support them.  (Added MonoTODO).  Set
8093         proper control styles.
8094         * DataGridViewRow.cs: Don't call PaintHeader if row headers
8095         are turned off. 
8096
8097 2008-03-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8098
8099         * ListBindingHelper.cs: Implement 2.0 GetListItemType methods.
8100
8101 2008-03-14  Jonathan Pobst  <monkey@jpobst.com>
8102
8103         * DataGridViewRow.cs: Only paint the white background in
8104         cell bounds, the row bounds extends past the cells if the 
8105         grid width isn't as wide as the DGV.
8106
8107 2008-03-14  Jonathan Pobst  <monkey@jpobst.com>
8108
8109         * DataGridView*: Completely revamp the drawing to match the
8110         public API.  Our grids now look better, and call all the
8111         appropriate methods and event to allow users to override
8112         the painting and do their own.
8113
8114 2008-03-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8115
8116         * ListBindingHelper.cs: Implement 2.0 GetList methods.
8117
8118 2008-03-13  Jonathan Pobst  <monkey@jpobst.com>
8119
8120         * DataGridView.cs: Implement BorderStyle.
8121
8122 2008-03-13  Jonathan Pobst  <monkey@jpobst.com>
8123
8124         * FileDialog.cs: Apply patch from Andy Hume: Any time we
8125         are comparing attributes, make sure we only look at the
8126         one we are interested.  These calls were failing if there
8127         were more than one attribute.
8128         [Fixes bug #370385]
8129
8130 2008-03-13  Jonathan Pobst  <monkey@jpobst.com>
8131
8132         * DataGridColumnStyle.cs: Hide ctor from 1.1 profile.
8133
8134 2008-03-12  Jonathan Pobst  <monkey@jpobst.com>
8135
8136         * PageSetupDialog.cs: Stub EnableMetric.
8137         * PrintControllerWithStatusDialog.cs: Implement IsPreview.
8138         * PrintPreviewDialog.cs: Add ProcessDialogKey,
8139         ProcessTabKey.
8140
8141 2008-03-12  Jonathan Pobst  <monkey@jpobst.com>
8142
8143         * MonthCalendar.cs: Remove unused variable.
8144
8145 2008-03-12  Jonathan Pobst  <monkey@jpobst.com>
8146
8147         * DataGridView*.cs: corcompare stuffs.
8148
8149 2008-03-11  Jonathan Pobst  <monkey@jpobst.com>
8150
8151         * MonthCalendar.cs: Remove an incorrect invalidate optimization.
8152         The savings aren't worth the extra code to fix the optimization.
8153         [Fixes bug #368585]
8154
8155 2008-03-11  Jonathan Pobst  <monkey@jpobst.com>
8156
8157         * ToolBar.cs: Always call base.Dock in the Dock override so that
8158         Control's layout_type gets reset correctly.
8159         [Fixes bug #368882]
8160
8161 2008-03-11  Ivan N. Zlatev  <contact@i-nz.net>
8162
8163         * X11Dnd.cs: End DnD operation also for the middle mouse button.
8164
8165 2008-03-11  Jonathan Pobst  <monkey@jpobst.com>
8166
8167         * ContainerControl.cs: We can't do MenuStrip implicit mnemonics
8168         at the same time we do explicit ones, because we have to give all
8169         other controls on the container a chance to handle explicit ones
8170         first.  If no one has an explicit mnemonic, then we can let the
8171         MenuStrip have a shot at implicit mnemonics.
8172         * MenuStrip.cs: Create an implicit mnemonic function.
8173         * ToolStrip.cs: When processing explicit mnemonics, don't do implicit
8174         mnemonics for MenuStrips.
8175         [Fixes bug #368493]
8176
8177 2008-03-11  Jonathan Pobst  <monkey@jpobst.com>
8178
8179         * AxHost.cs, Binding.cs, DataGridView.cs, DataGridViewCell.cs,
8180         DataGridColumnStyle.cs: corcompare stuffs.
8181
8182 2008-03-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8183
8184         * FileDialog.cs: Don't add any ColumnHeader to Columns if view is not
8185         Details - This is needed after we added the bits to use any available
8186         column also for List and SmallIcon view. 
8187
8188 2008-03-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8189
8190         * ListBox.cs: Fire SelectedIndexChanged and SelectedValueChanged events
8191         at the proper place, not only when changing SelectedIndex and changing
8192         the selection using keys/mouse, as .net does.
8193
8194 2008-03-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8195
8196         * ControlBindingsCollection.cs: Implement last 2.0
8197         DefaultDataSourceUpdateMode property. Also fix a wrong instruction
8198         in the new 2.0 Add methods.
8199
8200 2008-03-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8201
8202         * ListBox.cs: When calling SelectedIndexCollection.Clear,
8203         return if no items are previously selected - this is done to avoid 
8204         firing OnSelectedIndexChanged without need to do so. Also,
8205         when creating handle ensure that the focused item is visible (as
8206         .net does).
8207
8208 2008-03-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8209
8210         * ListBox.cs: Rewrote/refactored most of selection code. We require
8211         the following things in selection: a) keep selection sorted (both
8212         indices and items), b) SelectedIndices automatically detect the
8213         selection mode, c) SelectedIndex should be the first selected item
8214         index, d) Need to Focus/adjust scroll bar when selecting a new item,
8215         not only for SelectedIndex, which is specially important in Multi*
8216         selection modes. To achieve this we are moving the selection core to
8217         SelectedIndexCollection and make depend all selection modifications on
8218         it.
8219         Fixes #366438.
8220
8221 2008-03-06  Jonathan Pobst  <monkey@jpobst.com>
8222
8223         * ToolStrip.cs: Enable implicit mnemonics for drop down
8224         menu strips.  [Fixes part of bug #367692]
8225
8226 2008-03-06  Jonathan Pobst  <monkey@jpobst.com>
8227
8228         corcompare - fix parameter names [stragglers].
8229         Binding.cs, BindingsCollection.cs, GridColumnStylesCollection.cs,
8230         HelpEventHandler.cs, Label.cs, ListView.cs, Message.cs,
8231         TabControl.cs.
8232
8233 2008-03-06  Jonathan Pobst  <monkey@jpobst.com>
8234
8235         Control.cs: Don't call ProcessMenuKey on WM_SYSKEYUP if there
8236         was a mnemonic pressed as well as Alt.  Also, if nothing handles a
8237         mnemonic, let the ToolStripManager have it even if it doesn't
8238         have a matching mnemonic.
8239         [Fixes bug #367499]
8240
8241 2008-03-06  Jonathan Pobst  <monkey@jpobst.com>
8242
8243         corcompare - fix warning about implicit implementation
8244         * ToolStrip.cs: Add IToolStripData interface.
8245         * IToolStripData.cs: Add.
8246
8247 2008-03-06  Jonathan Pobst  <monkey@jpobst.com>
8248
8249         corcompare - fix warning about implicit implementation
8250         * Control.cs, ToolStripPanelRow.cs: Add IBounds interface.
8251         * IBounds.cs: Add.
8252
8253 2008-03-05  Jonathan Pobst  <monkey@jpobst.com>
8254
8255         corcompare - fix parameter names [N-Z].
8256         LinkArea.cs, NativeWindow.cs, NotifyIcon.cs, PageSetupDialog.cs,
8257         Panel.cs, PrintDialog.cs, PrintPreviewControl.cs, PropertyGrid.cs,
8258         PropertyManager.cs, RichTextBox.cs,
8259         ScrollBar.cs, SelectionRange.cs, SplitContainer.cs, StatusBar.cs,
8260         StatusBarDrawItemEventArgs.cs, StatusBarPanelClickEventArgs.cs,
8261         StatusStrip.cs, TabControl.cs, TableLayoutColumnStyleCollection.cs,
8262         TableLayoutRowStyleCollection.cs, TableLayoutStyleCollection.cs,
8263         TextBoxBase.cs, ThreadExceptionDialog.cs, ToolStrip.cs,
8264         ToolStripContentPanel.cs, ToolStripDropDown.cs,
8265         ToolStripDropDownMenu.cs, ToolStripItem.cs, ToolStripMenuItem.cs,
8266         ToolStripPanel.cs, ToolStripSeparator.cs,
8267         TreeNode.cs, TreeView.cs, TreeViewHitTestInfo.cs,
8268         UICuesEventHandler.cs, UpDownBase.cs.
8269
8270 2008-03-05  Jonathan Pobst  <monkey@jpobst.com>
8271
8272         corcompare - fix parameter names [G-M].
8273         GridColumnStylesCollection.cs, GridItemCollection.cs,
8274         GridTableStylesCollection.cs, GroupBox.cs, Help.cs,
8275         HelpProvider.cs, ImageListStreamer.cs, InputLanguageCollection.cs,
8276         Label.cs, LayoutEngine.cs, LinkClickedEventArgs.cs,
8277         LinkLabel.cs, ListBox.cs, ListView.cs, ListViewGroupCollection.cs,
8278         ListViewItem.cs, Menu.cs, MenuItem.cs, MenuStrip.cs, MouseEventArgs.cs.
8279
8280 2008-03-05  Jonathan Pobst  <monkey@jpobst.com>
8281
8282         corcompare - fix parameter names [A-F].
8283         Control.cs, DataGridBoolColumn.cs, DataGridColumnStyle.cs,
8284         DataGridTextBoxColumn.cs, DataGridViewButtonCell.cs,
8285         DataGridViewCellCollection.cs, DataGridViewCellParsingEventArgs.cs,
8286         DataGridViewCheckBoxCell.cs, DataGridViewColumnDesignTimeVisibleAttribute.cs,
8287         DataGridViewComboBoxCell.cs, DataGridViewHeaderCell.cs,
8288         DataGridViewImageCell.cs, DataObject.cs, DomainUpDown.cs,
8289         DrawItemEventArgs.cs, FolderBrowserDialog.cs, FontDialog.cs, Form.cs.
8290
8291 2008-03-03  Ivan N. Zlatev  <contact@i-nz.net>
8292
8293         * GridEntry.cs: Do not convert not only if the types match, 
8294         but also if the property type is assigneable from the value's
8295         type.
8296         [Fixes bug #366566]
8297
8298 2008-03-03  Ivan N. Zlatev  <contact@i-nz.net>
8299
8300         * PropertyGridView.cs: 
8301          - Subscribe to the listbox only once and not everytime.
8302          - Update the textbox even if SetValue fails.
8303          - Close the listbox before calling TrySetValue just in case.
8304          [Fixes bug #366569]
8305
8306 2008-03-03  Jonathan Pobst  <monkey@jpobst.com>
8307
8308         * Control.cs: Hide ICollection.CopyTo from the 1.1 profile.
8309
8310 2008-03-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8311
8312         * ListView.cs: Implement support for custom column width based on
8313         Columns collection (we were previously using this collection only
8314         with Details view).
8315         Fixes #364484.
8316
8317 2008-03-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8318
8319         * ListViewItem.cs: For Tile view, always set bounds for the first
8320         subitem (which is the main one), and also don't let Width be larger
8321         than ListView.TileSize.Width. Improve code readibility also.
8322         * ThemeWin32Classic.cs: When painting the ListViewItem instances
8323         in Tile view, _always_ use the NoWrap flag.
8324         Fixes #360798.
8325
8326 2008-02-29  Ivan N. Zlatev  <contact@i-nz.net>
8327
8328         * PropertyGrid.cs: Check for null PropertyDescriptor.Name just 
8329         in case.
8330         * GridEntry.cs: For MS compitability make all child properties 
8331         readonly if the parent is readonly. Ugh.
8332         [Fixes bug #365945 and #365944]
8333
8334 2008-02-29  Andreia Gaita <avidigal@novell.com> 
8335
8336         * HtmlHistory.cs: Fix sigs for Forward and Back to navigate by index
8337           relative to the history
8338
8339 2008-02-29  Andreia Gaita <avidigal@novell.com>
8340
8341         * HtmlElement.cs: More handlers for mouse and key events
8342
8343 2008-02-28  Andreia Gaita <avidigal@novell.com>
8344
8345         * WebBrowserBase.cs: MouseClick sig changed.
8346         * HtmlHistory.cs: Implement history navigation
8347         * HtmlElement.cs: Add event handlers, and connect them.
8348
8349 2008-02-28  Ivan N. Zlatev  <contact@i-nz.net>
8350
8351         * GridEntry.cs: 
8352          - Use PropertyDescriptor.DisplayName instead of .Name for Label,
8353            so that DisplayNameAttribute doesn't get ignored.
8354          - Check for ParenthesizeNameAttribute and parenthesize the Label.
8355          - Add support for PasswordPropertyTextAttribute
8356         * PropertyGridView.cs: Check if an entry is a password.
8357         [Fixes bugs #365589, #365586, #365588]
8358
8359 2008-02-28  Andreia Gaita <avidigal@novell.com>
8360
8361         * PropertyGridView.cs: Revert the message filtering change, as we
8362         need it to block after all. Remove block parameter, unnecessary.
8363
8364 2008-02-27  Jonathan Pobst  <monkey@jpobst.com>
8365
8366         * UserControl.cs: Better implementation of GetPreferredSize.
8367         First step to fixing bug #361441.
8368
8369 2008-02-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8370
8371         * Binding.cs: Actually implement data binding support for 
8372         classes implementing IBindableComponent.
8373         * ControlBindingsCollection.cs: Likewise.
8374
8375 2008-02-26  Andreia Gaita  <avidigal@novell.com>
8376
8377         * PropertyGridView.cs: Use a message filter to check when to 
8378         close the dropdown
8379
8380 2008-02-26  Andreia Gaita  <avidigal@novell.com>
8381
8382         * Application.cs: Change the message_filters loop so a filter 
8383         can be removed while looping.
8384
8385 2008-02-26  Ivan N. Zlatev  <contact@i-nz.net>
8386
8387         * GridEntry.cs: Optimization in ToggleValue so that it caches
8388         the current value.
8389         * PropertyGridView.cs: An optimization so that the property isn't 
8390         re-read twice for each StandardValue added to the drop-down menu.
8391         Patch by Andy Hume <andyhume32@yahoo.co.uk> under the MIT/X11
8392         license.
8393         [Fixes bug #362755]
8394
8395 2008-02-26  Jonathan Pobst  <monkey@jpobst.com>
8396
8397         * Application.cs: Apply patch from Justin Cherniak to match
8398         MS better for ProductName, ProductVersion, and CompanyName.
8399         [Fixes bug #361709]
8400
8401 2008-02-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8402
8403         * Binding.cs: Actually implement 2.0 NullValue property. Also
8404         when changing the formatting related properties, only update the state
8405         if formatting_enabled is true (we don't mind otherwise).
8406
8407 2008-02-25  Jonathan Pobst  <monkey@jpobst.com>
8408
8409         * ToolStrip.cs: Don't raise ItemClicked for disabled items.
8410         [Fixes bug #364486]
8411
8412 2008-02-25  Ivan N. Zlatev  <contact@i-nz.net>
8413
8414         * GridEntry.cs: Use the PropertyDescriptor.PropertyType instead 
8415         of GetType on the current value as it uses reflection to 
8416         determine the type. This fixes the case where the new value is 
8417         null. 
8418
8419 2008-02-25  Ivan N. Zlatev  <contact@i-nz.net>
8420
8421         * PropertyGridView.cs: Limit mousewheel scrolling to not scroll
8422         past the view.
8423
8424 2008-02-24  Luke Page  <luke.a.page@gmail.com>
8425
8426         * Line.cs, TextControl.cs: Implement offset x and y so that a
8427         document doesn't have to begin  at (0,0) on the viewpoint.
8428         * TextBox.cs, TextBoxBase.cs: RightToLeft switches the scroll
8429         bars and switches the text alignment (and therefore is now
8430         implemented for textbox). Fixes #321383.
8431
8432 2008-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8433
8434         * Binding.cs: Actually implement 2.0 FormatString and FormatInfo
8435         properties. Also when changing FormattingEnabled update the control
8436         property -as .Net does-.
8437
8438 2008-02-22  Carlos Alberto Cortez <calberto.cortez@Å‹mail.com>
8439
8440         * ControlBindingsCollection.cs: Add the missing 2.0 Add overloads.
8441         * Binding.cs: Add stubs for the overloads of the Add method in
8442         CBCollection.
8443
8444 2008-02-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8445
8446         * Binding.cs: PullData () returns a false value if we got an exception.
8447         Also when validating the control and we get an error, instead of
8448         setting the value of the previous one, cancel the event (tested in 1.1
8449         and 2.0).
8450
8451 2008-02-22  Jonathan Pobst  <monkey@jpobst.com>
8452
8453         * TreeView.cs: Make selected_node and highlighted_node internal.
8454         * TreeNodeCollection.cs: Reset selected_node and highlighted_node
8455         to null when Nodes.Clear is called.
8456         [Fixes bug #363884]
8457
8458 2008-02-21  Jonathan Pobst  <monkey@jpobst.com>
8459
8460         * FontDialog.cs: Ensure that when the Font is set in code,
8461         all the gui pieces are updated accordingly.
8462         [Fixes bug #361020]
8463
8464 2008-02-21  Jonathan Pobst  <monkey@jpobst.com>
8465
8466         * TextRenderer.cs: Respect proposed size for MeasureString.
8467         * ThemeWin32Classics.cs: If our CheckBox/RadioButton isn't
8468         autosize, use a proposed width to force wrapping for long text.
8469         [Fixes bug #360981]
8470
8471 2008-02-21  Jonathan Pobst  <monkey@jpobst.com>
8472
8473         * TreeView.cs: Factor in checkboxes = false and state images in
8474         to HitTest.  [Fixes bug #363360]
8475
8476 2008-02-21  Jonathan Pobst  <monkey@jpobst.com>
8477
8478         * ThemeWin32Classic.cs: Only look at the Date part of a DateTime
8479         when drawing the selected range.
8480         [Fixes bug #363648]
8481
8482 2008-02-21  Jonathan Pobst  <monkey@jpobst.com>
8483
8484         * ToolStripContainer.cs: Add SupportsTransparentBackColor and
8485         ResizeRedraw control styles.
8486         [Fixes bug #363555]
8487
8488 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
8489
8490         * TreeView.cs: StateImages are basically custom checkboxes, so
8491         factor their size the same as real checkboxes when determining
8492         what got clicked.
8493         [Fixes bug #363367]
8494
8495 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
8496
8497         * MessageBox.cs: Make the message box wider if the form caption
8498         is longer than the text in the form.
8499         [Fixes bug #361137]
8500
8501 2008-02-20  Ivan N. Zlatev  <contact@i-nz.net>
8502
8503         * PropertyGridView.cs: Fix a NRE when closing the drop down form.
8504
8505 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
8506
8507         * TreeNode.cs: Guard against an NRE when the parent's
8508         StateImageList hasn't been set.
8509         [Fixes bug #363353]
8510
8511 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
8512
8513         * SplitContainer.cs: Add SupportsTransparentBackColor and
8514         OptimizedDoubleBuffering control styles.
8515         [Fixes bug #363303]
8516
8517 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
8518
8519         * Application.cs: For the app data paths and the registry key paths,
8520         ensure they are created before returning them to the user.
8521         [Fixes bug #361709]
8522
8523 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
8524
8525         * Application.cs: Guard against an NRE in CompanyName and
8526         ProductName.
8527
8528 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
8529
8530         * Application.cs: For CompanyName, ProductName, and ProductVersion,
8531         make sure we handle all three cases correctly: attribute is present,
8532         attribute is present but is an empty string, and attribute is not
8533         present.
8534
8535 2008-02-20  Ivan N. Zlatev  <contact@i-nz.net>
8536
8537         * PropertyGridView.cs: 
8538          - Fix a NRE that caused a test failure
8539          - Another performance improvement - cache the standard values
8540          listbox.
8541
8542 2008-02-19  Jonathan Pobst  <monkey@jpobst.com>
8543
8544         * ComboBox.cs: Fix previous change to affect both 1.1 and 2.0
8545         code paths.
8546
8547 2008-02-19  Ivan N. Zlatev  <contact@i-nz.net>
8548
8549         * PropertyGridView.cs: Fix a big performance bug.
8550
8551 2008-02-19  Jonathan Pobst  <monkey@jpobst.com>
8552
8553         * SelectionRange.cs: Apply patch from Andy Hume to make
8554         constructor behavior more accurate.  [Fixes bug #362117]
8555
8556 2008-02-19  Andreia Gaita <avidigal@novell.com> 
8557
8558         * Control.cs: Added a new flag is_disposing to track if the
8559         window is currently in the process of being disposed of.
8560         This is used so that, when firing visibility changes triggered
8561         by unparenting controls during Dispose, the control doesn't
8562         get created again.      
8563
8564 2008-02-19  Jonathan Pobst  <monkey@jpobst.com>
8565
8566         * ComboBox.cs: Set height to preferred height when the handle
8567         is created.  [Fixes bug #360862]
8568
8569 2008-02-18  Andreia Gaita <avidigal@novell.com>
8570
8571         * XplatUIX11.cs: Create FosterParent with border width at 0.
8572         With the previous value of 4, everytime a control got reparented
8573         from parent = null, it's location would be shifted right and 
8574         down by 4, since these coordinates would be offset by the 
8575         FosterParent's border width.
8576
8577 2008-02-18  Ivan N. Zlatev  <contact@i-nz.net>
8578
8579         * Control.cs: During diposing firstly remove ourselfes from
8580         the parent and *then* destroy our handle, because removing
8581         ourselfes from the parent controls collection causes 
8582         VisibilityChange, etc events, which require a handle and end
8583         up recreating the control.
8584
8585 2008-02-17  Ivan N. Zlatev  <contact@i-nz.net>
8586
8587         * GridEntry.cs: Set expanded state before notifying that the
8588         expansion has taken place.
8589         * PropertyGridView.cs:
8590          - Set the propertygridtextbox text to the selected 
8591          StandardValue before proceeding to setting it.
8592          - Scrolling bugfixes.
8593
8594 2008-02-16  Ivan N. Zlatev  <contact@i-nz.net>
8595
8596         * GridEntry.cs:
8597          - Fix ValueText to not return null.
8598          - Fix conversion error reporting to actually happen.
8599         * PropertyGridView.cs: Set entry only if the text has changed.
8600         [Fixes bug #362116]
8601
8602 2008-02-16  Ivan N. Zlatev  <contact@i-nz.net>
8603
8604         * GridEntry.cs: 
8605          - Fix handling of a null current value.
8606          - Swallow editor exceptions.
8607         [Fixes bug #362114]
8608
8609 2008-02-16  Ivan N. Zlatev  <contact@i-nz.net>
8610
8611         * PropertyGrid.cs: Clear current items first thing before 
8612         repopulating subitems.
8613         * GridEntry.cs: 
8614          - Handle null StandardValuesCollection.
8615          - Mark as not editable if there is no PropertyDescriptor and
8616          if the Converter cannot convert from string.
8617         [Part of fix for bugs #360666 and #358332]
8618
8619 2008-02-15  Luke Page  <luke.a.page@gmail.com>
8620         * MaskedTextBox.cs: Now skips non editable characters after a
8621         character has been entered and we are progressing to the next
8622         position in the MaskedTextBox.
8623
8624 2008-02-15  Luke Page  <luke.a.page@gmail.com>
8625         * TextBoxBase.cs: Handles MouseDown when shift key is clicked so
8626         that it changes the selection rather than just repositioning the
8627         cursor. Fixes Bug #360873.
8628
8629 2008-02-15  Luke Page  <luke.a.page@gmail.com>
8630         * TextBoxBase.cs, TextControl.cs, RichTextBox.cs: TextChanged fires
8631         when Undo/Redo changes the text. Undo/Redo/Undo/Redo now works
8632         correctly. See #359330
8633
8634 2008-02-15  Andreia Gaita <avidigal@novell.com>
8635
8636         * XplatUIX11.cs: If the handle is null when posting a message, use the
8637         current thread queue to post instead. Fixes #332409
8638
8639         * SendKeys.cs: Slight optimization
8640
8641 2008-02-14  Ivan N. Zlatev  <contact@i-nz.net>
8642
8643         * PropertyGrid.cs, PropertyGridView.cs:
8644         Fix multiple scrolling and sizing issues.
8645         [Fixes bug #359199]
8646
8647 2008-02-12  Ivan N. Zlatev  <contact@i-nz.net>
8648
8649         * PropertyGridView.cs: Ensure that drop down editors are shown
8650         in the WorkingArea of the screen.
8651         [Fixes bug #359807]
8652
8653 2008-02-12  Ivan N. Zlatev  <contact@i-nz.net>
8654
8655         * GridEntry.cs: Fail silently when UITypeEditor is missing.
8656         [Fixes bug #360666]
8657
8658 2008-02-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8659
8660         * Binding.cs: Implement 2.0 DataSourceNullValue property.
8661
8662 2008-02-11  Ivan N. Zlatev  <contact@i-nz.net>
8663
8664         * PropertyGridView.cs:
8665          - Clear the controls in the drop down form after it is hidden.
8666          - Fix Width sizing of the dropdown editors to match MSFT.
8667
8668 2008-02-11  Ivan N. Zlatev  <contact@i-nz.net>
8669
8670         * PropertyGridView.cs: 
8671          - Fix height for drawing the grid entry
8672          text value, so that it clips multiline text properly.
8673          - Fix unfocusing to match MSFT.
8674
8675 2008-02-11  Ivan N. Zlatev  <contact@i-nz.net>
8676
8677         * PropertyGrid.cs: Do not populate subgriditems unless expandable.
8678         Fixes a bug where on repopulation after value changed items become
8679         expandable.
8680
8681 2008-02-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8682
8683         * Binding.cs: For the 2.0 profile, look for a 
8684         'PropertyChanged' event in the target control, and add checks for
8685         DataSourceUpdateMode property to change -or not- the data source
8686         from validation/control property change.
8687
8688 2008-02-10  Atsushi Enomoto  <atsushi@ximian.com>
8689
8690         * Binding.cs : build fix (operator == is not overriden in 1.x. Do
8691           not compare struct with null in 2.0).
8692
8693 2008-02-10  Luke Page <luke.a.page@gmail.com>
8694
8695         * MaskedTextBox.cs: UseSystemPasswordChar updates PasswordChar, PasswordChar
8696         updates the provider and if not using a provider, uses the internal document
8697         class implementation of password char. Also when showing text, uses display string
8698         from the provider, instead of the actual text.
8699
8700 2008-02-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8701
8702         * Binding.cs: Ooooops, forgot to take into account the data_source
8703         and binding_member_info null case (it was breaking the Binding tests).
8704
8705 2008-02-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8706
8707         * Binding.cs: Implement support for data source changes exposed by
8708         'PropertyNameChanged' events, and update the control property as
8709         needed.
8710
8711 2008-02-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8712
8713         * Binding.cs: Implement 2.0 WriteValue method.
8714
8715 2008-02-08  Jonathan Pobst  <monkey@jpobst.com>
8716
8717         Commit patch from James Purcell for better AutoScale implementation:
8718
8719         * ScaleControl should call GetScaledBounds with the control's total size rather
8720         than client size.  GetScaledBounds should handle ignoring the borders in its
8721         calculations.  Cleaned up ScaleControl/GetScaledBounds overrides in controls
8722         (for the most part they just call the base code now since that is fixed).
8723         * Added ScaleChildrenInternal to allow controls to disable scaling of children
8724         without having to override ScaleChildren (since none of .NET's controls do). 
8725         This is required for most controls in Mono that have scrollbars to prevent the
8726         scrollbars from being moved/resized.
8727         * Nested ContainerControls can have a different scale mode than their parent. 
8728         This is briefly mentioned in MSDN but is buggy in MS.NET (the runtime and
8729         designer produce different results both of which look incorrect).
8730         * Default AutoScaleMode for ContainerControl should be Inherit.
8731         * Simplified workaround for ComboBox scaling issue.
8732         * 1.0 style auto-scaling now uses its own methods instead of sharing 2.0's. 
8733         1.0 style auto scaling should scale the whole control's size instead of
8734         ignoring the borders (except for Form) and the rounding is done differently to
8735         preserve control alignment.
8736         * ApplyAutoScaling (used for 1.0 style) should use the rounded result of
8737         GetAutoScaleSize.
8738         * Cleaned up fix for "Bug 355703 - Setting AutoScale = true doesn't stick".
8739         * CurrentAutoScaleDimensions should round the estimated character width instead
8740         of truncating.
8741         * ListBox's GetScaledBounds should always use the height it was set to instead
8742         of the height that was passed in.  This prevents rounding errors from
8743         accumulating quickly with IntegralHeight.
8744         [Bug #359098]
8745
8746 2008-02-08  Andreia Gaita <avidigal@novell.com>
8747
8748         * Form.cs: Add a null check (darn it). 
8749
8750 2008-02-08  Jonathan Pobst  <monkey@jpobst.com>
8751
8752         * MdiClient.cs: Make sure the requesting form actually owns the
8753         control menu items before removing them.  Also, use
8754         Suspend/ResumeLayout when adding or removing items so we only
8755         layout once.
8756         [Fixes bug #359887]
8757
8758 2008-02-08  Jonathan Pobst  <monkey@jpobst.com>
8759
8760         * Control.cs: Guard against an NRE in ShowFocusCues.
8761         [Fixes bug #359830]
8762
8763 2008-02-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8764
8765         * Binding.cs: Implement 2.0 ReadValue method and ControlUpdateMode
8766         property, as well as stubbing DataSourceUpdateMode.
8767
8768 2008-02-08  Andreia Gaita <avidigal@novell.com>
8769
8770         * Form.cs: When closing forms, get focus back to the active control of the
8771         active form. [Fixes #341314, corner case]
8772         
8773 2008-02-07  Jonathan Pobst  <monkey@jpobst.com>
8774
8775         * MdiClient.cs: After we move the scrollbars, invalidate the NC
8776         area, so any old scrollbar artifacts are cleaned up.
8777         [Fixes bug #336305]
8778
8779 2008-02-07  Jonathan Pobst  <monkey@jpobst.com>
8780
8781         * MdiWindowManager.cs: If we are maximized and using MainMenuStrip
8782         for our menus, display that control box menu instead of the 1.1
8783         menu one.
8784
8785 2008-02-07  Jonathan Pobst  <monkey@jpobst.com>
8786
8787         * MdiControlStrip.cs: Add property to access the mdi form tied to
8788         each toolstripitem.
8789         * MdiClient.cs: Be smarter about removing and adding toolstripitems
8790         to the implicitly merged menu.  Every time we clicked the form, items
8791         were getting removed and the re-added, causing the form to jump around
8792         as the menu resized.
8793
8794 2008-02-07  Jonathan Pobst  <monkey@jpobst.com>
8795
8796         * MdiClient.cs: Make sure the NormalBounds always gets set.  It
8797         was being reset by the implicit menu merge for menustrips.
8798         [Fixes bug #336296]
8799
8800 2008-02-07  Jonathan Pobst  <monkey@jpobst.com>
8801
8802         * Form.cs: Don't do the previous change when WindowState = Normal,
8803         or it messes up where the window is placed.  Fixes test failure.
8804
8805 2008-02-07  Jonathan Pobst  <monkey@jpobst.com>
8806
8807         * Form.cs: When becoming visible, if we are an MDI child, call
8808         SetWindowState with a dummy old_state so that changes will actually
8809         be made.
8810         [Fixes the 2nd part of bug #325473]
8811
8812 2008-02-07  Andreia Gaita <avidigal@novell.com>
8813
8814         * Control.cs: Reset properties to their pre parent-change values in case
8815         the new parent == null (in which case we're basically removing the control, 
8816         and don't want any events fired due to fake property changes)
8817         [Fixes #355850]
8818
8819 2008-02-06  Ivan N. Zlatev  <contact@i-nz.net>
8820
8821         * PropertyGridView.cs: 
8822          - Refactor SetValue to allow setting the value
8823         when a custom editor is used, but the entry is not editable.
8824          - Remove the custom editor control on CloseDropDown.
8825         [Fixes #359196]
8826
8827 2008-02-06  Andreia Gaita <avidigal@novell.com>
8828
8829         * PrintControllerWithStatusDialog.cs: Set PrintFileName value through
8830         reflection only on 1.1, this property is public on system.drawing on 2.0.
8831         Fixed #359247
8832
8833 2008-02-06  Andreia Gaita  <avidigal@novell.com>
8834         
8835         * WebBrowser.cs: Do a normal page refresh by default.
8836
8837 2008-02-05  Andreia Gaita  <avidigal@novell.com>
8838
8839         * XplatUIWin32.cs, XplatUICarbon.cs: set the hwnd.Mapped flag when we create 
8840         the window so that the check on Control.UpdateZOrderOfChild passes on non-X
8841         platforms. Fixes #359036
8842         
8843         Note: Control.UpdateZOrderOfChild needs to be rewritten to not rely on 
8844         platform-specific flags.
8845
8846 2008-02-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8847
8848         * Binding.cs: Add 2.0 BindableComponent property - just return control
8849         by now.
8850
8851 2008-02-05  Everaldo Canuto  <ecanuto@novell.com>
8852
8853         * MenuAPI.cs: Check if control is disposable when track popup menu. Thanks
8854         Jonathan for this patch. Fixes #358442.
8855
8856 2008-02-05  Jonathan Pobst  <monkey@jpobst.com>
8857
8858         * Form.cs: If we change the active MDI child form, let the others
8859         know they need to repaint their title bar so it will appear inactive.
8860         [Fixes part 1 of bug #325473]
8861
8862 2008-02-05  Ivan N. Zlatev  <contact@i-nz.net>
8863
8864          * PropertyGridView.cs: Do not trucate custom editors' width
8865          and align them to the left.
8866          [Fixes #358353 and #358349]
8867
8868 2008-02-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8869
8870         * BindingsCollection.cs: Implement 2.0 CollectionChanging event.
8871         Also fix the arguments passed to CollectionChangeEventArgs in the
8872         related methods.
8873
8874 2008-02-04  Geoff Norton  <gnorton@novell.com>
8875
8876         * Hwnd.cs: The conversion to Quartz coordinates happens in
8877         System.Drawing.  Removing this translation from here.
8878
8879 2008-02-04  Ivan N. Zlatev  <contact@i-nz.net>
8880
8881          * PropertyGrid.cs, PropertyGridView.cs, GridEntry.cs,
8882          CategoryGridEntry.cs, RootGridEntry.cs, GridItem.cs,
8883          GridItemCollection.cs:
8884          PropertyGrid rewrite part 2. Tons of bugfixes and new features.
8885
8886 2008-02-04  Geoff Norton  <gnorton@novell.com>
8887
8888         * X11Keyboard.cs: VK_MENU should send a KEYUP instead of 
8889         SYSKEYUP if any other key has been pressed in the mean time.
8890         Fixes #324404
8891
8892 2008-02-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8893
8894         * ListView.cs: In ItemControl.ItemsMouseMove, only fire ItemDrag event
8895         when the item in current position is different than 0. Also, save the
8896         item index in the beginning of the operation, instead of getting the
8897         index of the item when the event is actually performed. Lastly clean
8898         the related fields in ItemsMouseUp if the ItemDrag operation wasn't
8899         triggered.
8900         [Fixes #357873]
8901
8902 2008-02-03  Jonathan Pobst  <monkey@jpobst.com>
8903
8904         * Form.cs: Alt-Minus for MDI children system menu should work
8905         with both the minus keys on the keyboard.
8906         [Fixes bug #336295]
8907
8908 2008-02-03  Jonathan Pobst  <monkey@jpobst.com>
8909
8910         * Control.cs: Don't invalidate on region change.  The WM should
8911         take care of this automagically.  Keeps us out of an infinite
8912         paint loop if someone changes the Region in the OnPaint.
8913         [Fixes bug #358327]
8914
8915 2008-02-04  Ivan N. Zlatev  <contact@i-nz.net>
8916
8917          * ImageIndexConverter.cs: ConvertFrom must handle "(none)".
8918
8919 2008-02-03  Jonathan Pobst  <monkey@jpobst.com>
8920
8921         * DateTimePicker.cs: Apply patch from Srikanth Madikeri so we drop
8922         down the MonthCalendar only on F4, not Alt+F4.
8923         * MonthCalendar.cs: If we are a popup, close ourselves on Alt+F4.
8924         [Fixes bug #358340]
8925
8926 2008-02-03  Jonathan Pobst  <monkey@jpobst.com>
8927
8928         * ThemeWin32Classic.cs: For MonthCalendar, draw a dark border
8929         if its part of a DateTimePicker, else, use the back color.
8930         [Fixes bug #358339]
8931
8932 2008-02-03  Jonathan Pobst  <monkey@jpobst.com>
8933
8934         * Hwnd.cs: Use GraphicContext instead of the uninitialized bmp_g.
8935         [Fixes bug #358342]
8936
8937 2008-02-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8938
8939         * CurrencyManager.cs: When we get a ListChanged event from our source,
8940         always fire our own ListChanged event, as .Net does.
8941
8942 2008-02-03  Luke Page  <luke.a.page@gmail.com>
8943
8944         * RichTextBox.cs: AutoSize now defaults to false. Fixes Bug
8945         #358379.
8946
8947 2008-02-03  Luke Page  <luke.a.page@gmail.com>
8948
8949         * TextBoxBase.cs, RichTextBox.cs, TextControl.cs: Sets richtext
8950         property. Removed if for richtext property that was always true.
8951         PgUp/PgDn at top/bottom fixed for RTB. Fixes bug #358237.
8952
8953 2008-02-03  Luke Page  <luke.a.page@gmail.com>
8954
8955         * TextBoxBase.cs - commited patch from James Purcell that
8956         correctly sets the FixedHeight control style when the MultiLine
8957         property is changed on a TextBox control. Fixes bug 358229.
8958
8959 2008-02-02  Luke Page  <luke.a.page@gmail.com>
8960
8961         * Line.cs, LineTag.cs, RichTextBox.cs, TextControl.cs
8962         Fixes bug 351938 - caret is positioned correctly when drawn
8963         and when calculating textual position of caret, no longer
8964         has a NRE in certain situations.
8965         
8966 2008-02-01  Geoff Norton  <gnorton@novell.com>
8967
8968         * Hwnd.cs: Ensure that windows moved into -'ve coordinate space
8969         get that region removed from the paint event.
8970         * XplatUICarbon.cs: Remove the window mapping after disposing of 
8971         window.  Prevents a crash with handle reuse.  Optimize exposes
8972         only onto visible windows (rare; but possible).
8973
8974 2008-02-01  Jonathan Pobst  <monkey@jpobst.com>
8975
8976         * UpDownBase.cs: Make sure the internal textbox calls the base's
8977         OnMouseDown and OnMouseUp so the textbox will function correctly.
8978         There were notes saying it doesn't chain up, but its an internal
8979         class, so our implementation may differ.
8980         [Fixes bug #357482]
8981
8982 2008-02-01  Jonathan Pobst  <monkey@jpobst.com>
8983
8984         * ListBox.cs: Fix a logic error and don't process MouseDown
8985         for mouse buttons other than Left.
8986
8987 2008-02-01  Jonathan Pobst  <monkey@jpobst.com>
8988
8989         * Control.cs: Remove HeightInternal.
8990         * ListBox.cs: Commit patch from James Purcell that correctly
8991         calculates heights for ListBoxen.
8992         [Fixes bug #357152]
8993
8994 2008-02-01  Jonathan Pobst  <monkey@jpobst.com>
8995
8996         * Label.cs: Apply patch from James Purcell that corrects the 
8997         signature of the AutoSize property.
8998         [Fixes bug #357605]
8999
9000 2008-02-01  Jonathan Pobst  <monkey@jpobst.com>
9001
9002         * ListBox.cs: Don't throw [Mouse]Click events for buttons
9003         other than the left mouse button.
9004
9005 2008-01-31  Jonathan Pobst  <monkey@jpobst.com>
9006
9007         * Control.cs: Remove my awesome optimization as it caused some
9008         regressions with control ordering.  :(
9009         [Fixes bug #357467]
9010
9011 2008-01-31  Ivan N. Zlatev  <contact@i-nz.net>
9012
9013          * PropertyGridView.cs: Fix a NRE on double click when there is no
9014          selected object.
9015
9016 2008-01-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9017
9018         * BindingManagerBase.cs: Implement IsBindingSuspended 2.0 property.
9019
9020 2008-01-30  Jonathan Pobst  <monkey@jpobst.com>
9021
9022         * ListBox.cs: Call MouseClick and MouseDoubleClick.
9023         [Fixes bug #357146]
9024
9025 2008-01-29  Jonathan Pobst  <monkey@jpobst.com>
9026
9027         * Hwnd.cs: Make bmp, bmp_g variables threadstatic and private.
9028         * Control.cs, DataGridViewCell.cs, LineTag.cs: Use Hwnd.GraphicsContext
9029         instead of Hwnd.bmp_g.
9030
9031 2008-01-29  Jonathan Pobst  <monkey@jpobst.com>
9032
9033         * TextRenderer.cs: Don't maintain private bitmap/graphics contexts.
9034         Use the Hwnd one instead.
9035
9036 2008-01-29  Jonathan Pobst  <monkey@jpobst.com>
9037
9038         * Form.cs: Remove duplicated copy of GetAutoScaleSize.
9039
9040 2008-01-29  Jonathan Pobst  <monkey@jpobst.com>
9041
9042         * Form.cs: corcompare for RestoreBounds.
9043
9044 2008-01-29  Jonathan Pobst  <monkey@jpobst.com>
9045
9046         * Control.cs: Add MarshalAs attribute to Font getter for corcompare.
9047
9048 2008-01-29  Jonathan Pobst  <monkey@jpobst.com>
9049
9050         * Form.cs: Handle Alt-Minus for MDI children forms.
9051         * MdiWindowManager.cs: Make ShowPopup internal so Form can call it.
9052         Add mnemonics to the control menu.
9053         [Fixes bug #336295]
9054
9055 2008-01-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9056
9057         * Binding.cs: Initial implementation bits of FormattingEnabled
9058         property and BindingComplete event (2.0). 
9059         * BindingCompleteEventArgs.cs: Internal methods for setting error text
9060         and exception.
9061
9062 2008-01-28  Jonathan Pobst  <monkey@jpobst.com>
9063
9064         * TableLayoutPanel.cs: Draw the table border at 0,0 instead of
9065         table.Location.  [Fixes bug #354672]
9066
9067 2008-01-28  Jonathan Pobst  <monkey@jpobst.com>
9068
9069         * Form.cs: Handle WM_ENTERSIZEMOVE and WM_EXITSIZEMOVE to raise
9070         ResizeBegin and ResizeEnd.  [Fixes bug #346529 for win32]
9071
9072 2008-01-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9073
9074         * ComboBox.cs: When OnDisplayMemberChanged method is reached, instead
9075         of doing all the re-bound work, just invalidate and call SetControlText 
9076         to set the updated text of selected item to our textbox.
9077         Fixes #333750.
9078
9079 2008-01-28  Andreia Gaita <avidigal@novell.com>
9080
9081         * HtmlWindow.cs: Add event handler support. Add Document, Frames, 
9082         IsClosed, Opener, StatusBarText, Url properties, stub out the remaining
9083         missing properties and methods. Add Load, Unload, Error, GotFocus, 
9084         LostFocus, Resize, Scroll events (only load and unload are connected)
9085
9086 2008-01-27  Gert Driesen  <drieseng@users.sourceforge.net>
9087
9088         * AccessibleObject.cs: Modified argument names to match MS.
9089         * Button.cs: Modified argument names to match MS.
9090         * BindingContext.cs: Modified argument names to match MS.
9091         * BindingMemberInfo.cs: Modified argument names to match MS.
9092         * ButtonBase.cs: Modified argument names to match MS.
9093         * ComboBox.cs: Modified argument names to match MS.
9094         * Control.cs: Modified argument names to match MS.
9095         * CheckedListBox.cs: Modified argument names to match MS.
9096         * CommonDialog.cs: Modified argument names to match MS.
9097         * DataGrid.cs: Modified argument names to match MS.
9098         * CursorConverter.cs: Modified argument names to match MS.
9099         * ControlPaint.cs: Modified argument names to match MS.
9100         * CheckBox.cs: Modified argument names to match MS.
9101         * ControlBindingsCollection.cs: Modified argument names to match MS.
9102         * BindingSource.cs: Modified argument names to match MS.
9103         * DataFormats.cs: Modified argument names to match MS.
9104         * ContainerControl.cs: Modified argument names to match MS.
9105         * CurrencyManager.cs: Modified argument names to match MS.
9106         * Application.cs: Modified argument names to match MS.
9107         * ContextMenuStrip.cs: Modified argument names to match MS.
9108         * ContextMenu.cs: Modified argument names to match MS.
9109         * BindingManagerBase.cs: Modified argument names to match MS.
9110         * WindowsFormsSection.cs: Fixed line ending.    
9111
9112 2008-01-27  Andreia Gaita <avidigal@novell.com>
9113
9114         * PropertyGridView.cs: Rearrange the dropdown loop so that it exits when
9115         detecting that the dropdown toolwindow is hidden. EndLoop outside the
9116         while.
9117
9118 2008-01-26  Gert Driesen  <drieseng@users.sourceforge.net>
9119
9120         * PropertiesTab.cs: Fixed argument name of GetDefaultProperty to match
9121         MS. Code formatting.
9122
9123 2008-01-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9124
9125         * Binding.cs: Don't avoid the Format event if the control 
9126         property type is object. Also, if the value retrieved by 
9127         the data source is null _and_ the control proeprty type 
9128         is object, return Convert.DBNull (match .Net).
9129         Fixes part of #324286.
9130
9131 2008-01-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9132
9133         * ListControl.cs: Since we are getting two BinginContextChanged events
9134         for the same binding context instance (when the control is added to
9135         form, and when the form is actually shown), take it into account only the
9136         first time for a given binding context instance.
9137         Fixes part of #324286.
9138
9139 2008-01-26  Ivan N. Zlatev  <contact@i-nz.net>
9140
9141          * PropertryGridView.cs: Ops.
9142
9143 2008-01-26  Ivan N. Zlatev  <contact@i-nz.net>
9144
9145          * PropertyGridView.cs: Close dropdown form if the owner form is
9146          moved or minimized.
9147          [Fixes bug #322446]
9148
9149 2008-01-25  Ivan N. Zlatev  <contact@i-nz.net>
9150
9151          * PropertyGrid.cs, PropertyGridView.cs, GridEntry.cs, GridItem.cs, 
9152          RootGridEntry.cs, CategoryGridEntry.cs:
9153          PropertyGrid rewrite.
9154          - Rewrite all of the control logic in PropertyGrid.
9155          - Rewrite all of the ComponentModel logic in GridEntry.
9156          - Rewrite all UI work in PropertyGridView.
9157          - Many bugfixes, etc.
9158
9159 2008-01-24  Jonathan Pobst  <monkey@jpobst.com>
9160
9161         * TableLayoutPanel.cs: Enhance GetPreferredSize to take into account
9162         when all contained controls are autosize or dock-fill.  Also take into
9163         account when the total percentage of column/row sizes is not 100%.
9164         [Fixes bug #354672]
9165
9166 2008-01-24  Andreia Gaita <avidigal@novell.com>
9167
9168         * HtmlDocument.cs:
9169         - Save a reference to the IDocument in the instance and
9170           use that one instead of going to WebHost.Document; the document that the 
9171           WebHost returns might not be the right one (in case of frames).
9172         - Use the hashcode returned from the IDocument interface.
9173         - Implemented: ActiveElement, ActiveLinkColor, All, BackColor, Cookie, 
9174           Domain (setter is not supported), Encoding, ForeColor, Forms, Images, 
9175           LinkColor, Url, VisitedColor, Window
9176
9177         * HtmlElement.cs: 
9178         - Implemented: CanHaveChildren, Children, Document, GetAttribute, 
9179           set_Attribute, NextSibling, Parent, TagName, AppendChild, 
9180           GetElementsByTagName, GetHashCode, HasAttribute, InsertAdjacentElement,
9181           SetAttribute, Equals, equality operators.
9182         - Added stubs for: AttachEventHandler, DetachEventHandler, Focus, 
9183           InvokeMember, RaiseEvent, RemoveFocus, ScrollIntoView, 
9184         
9185         * HtmlElementCollection.cs: Change implementation to use a generic
9186         collection. Implemented Enumerator and CopyTo
9187
9188         * HtmlHistory.cs: Add constructor, no implementation yet.
9189
9190         * HtmlWindow.cs: Initial implementation with: Name, Parent, Alert,
9191         Confirm, Prompt, Navigation, ScrollTo, Open, OpenNew, GetHashCode, 
9192         Equals, equality operators.
9193
9194         * HtmlWindowCollection.cs: Implemented. 
9195
9196         * WebBrowser.cs: Use the Navigation object to navigate (WebHost.Navigate
9197         has been deprecated).
9198
9199         * WebBrowserBase.cs: Use Completed event to track document loading
9200         (Navigated has been deprecated)
9201
9202 2008-01-24  Jonatham Pobst  <monkey@jpobst.com>
9203
9204         * ThemeWin32Classic.cs: Add tab stops and NoWrap to dropdown MenuItems.  Top
9205         level MenuItems do not respect tabs.
9206         [Fixes bug #355196]
9207
9208 2008-01-23  Geoff Norton  <gnorton@novell.com>
9209
9210         * XplatUICarbon.cs:  Ensure that windows are created in their initial 
9211         FormWindowState.  Finished fixing Fullscreen windows on Carbon
9212
9213 2008-01-23  Everaldo Canuto  <ecanuto@novell.com>
9214
9215         * MenuAPI.cs: When FindForm fails uses FindRootParent to find the control to
9216         be used as grab_control. Also save status of capture before show ContextMenu
9217         and restore it after close.
9218
9219 2008-01-23  Everaldo Canuto  <ecanuto@novell.com>
9220
9221         * Control.cs: Internal FindRootParent method added to return high control
9222         in parent tree.
9223
9224 2008-01-23  Geoff Norton  <gnorton@novell.com>
9225
9226         * Hwnd.cs: Refactor Whole/Client pointer to 1 element for Cursors.
9227         * XplatUICarbon.cs: Refactor some dead code out to Cursor.cs and make
9228         it work again.  Handle HITTEST events.
9229
9230 2008-01-23  Geoff Norton  <gnorton@novell.com>
9231
9232         * XplatUICarbon.cs: Ensure that we always have a host window.  Prevents
9233         a crash in certain cases.  Support for fullscreen windows in certain cases.
9234
9235 2008-01-23  Jonathan Pobst  <monkey@jpobst.com>
9236
9237         * Form.cs: Don't set AutoScaleMode in AutoScale if we don't have to.
9238         [Fixes bug #355703]
9239
9240 2008-01-23  Geoff Norton  <gnorton@novell.com>
9241         
9242         * XplatUICarbon.cs: Remove some dead code that was causing warnings.
9243
9244 2008-01-23  Geoff Norton  <gnorton@novell.com>
9245
9246         * XplatUICarbon.cs:  Re-enabled Carets in QuickDraw as a overlay window.
9247
9248 2008-01-23  Everaldo Canuto  <ecanuto@novell.com>
9249
9250         * SplitContainer.cs: Remove unused declarations.
9251         * Binding.cs: Remove unused declarations.
9252
9253 2008-01-23  Everaldo Canuto  <ecanuto@novell.com>
9254
9255         * Form.cs: Remove unused declaration of 'active' in Activate method.
9256         * Control.cs: Move declaration of nested_layout inside '#if NET_2_0" to 
9257         prevent compilation warnings.
9258         * TextControl.cs: Remove unused declaration of selection_pos_on_line.
9259         * Hwnd.cs: Remove unused declaration of clip in GetClippingRectangles.
9260         * Bindings.cs: Remove unused formatting_enabled declaration.
9261         * ToolTip.cs: Put some methods inside '#if NET_2_0" to prevent compilation 
9262         warnings.
9263         * TreeView.cs: Put some methods inside '#if NET_2_0" to prevent compilation 
9264         warnings.
9265         * PropertyGridView.cs: Remove usused 'ex' declaration.
9266         * DataGridView.cs: Remove unused declarations.
9267
9268 2008-01-23  Everaldo Canuto  <ecanuto@novell.com>
9269
9270         [Fixes bugs #343966, #338511 and other non reported (context)menu bugs]
9271         
9272         * Form.cs: Remove all active_tracker (used by menu) stuff, it is now moved 
9273         to Control class, it makes possible to grab menu to controls that can't 
9274         reach Form using parent tree. Handle for WmButtonUp, WmButtonDown and
9275         WmMouseMove removed since it was used only to track menu events.
9276
9277         * Control.cs:
9278         - Moved all active_tracker stuff from Form.
9279         - ProcessActiveTracker added to prevent code duplicity, now mouse events 
9280         can call this method instead of reimplement all necessary code handle for
9281         menu tracker.
9282         - Call to ProcessActiveTracker for mouse events (WmButtonUp, WmButtonDown
9283         and WmMouseMove).
9284         
9285         * MenuAPI.cs: 
9286         - Remove special handle to ToolStripOverflow, now we can grab menu to 
9287         controls that can't reach Form using parent tree.
9288         - Change type of grab_control from Form to Control.
9289
9290 2008-01-22  Geoff Norton  <gnorton@novell.com>
9291
9292         * TextBoxBase.cs: Split up the sizing of controls and placing of 
9293         controls.  Fixes a bug where scrollbars in Reflector could be sized
9294         wrong and have non-working thumbers.
9295
9296 2008-01-23  Geoff Norton  <gnorton@novell.com>
9297
9298         * XplatUI.cs: Refactor environment variables to default support to the
9299         Carbon driver on the Mac.
9300
9301 2008-01-23  Everaldo Canuto  <ecanuto@novell.com>
9302
9303         * Label.cs: Uses new LabelPainter for drawing operations.
9304         * ThemeWin32Classic.cs: DrawLabel and LabelDefaultSize removed.
9305         * Theme.cs: DrawLabel and LabelDefaultSize removed.
9306
9307 2008-01-22  Geoff Norton  <gnorton@novell.com>
9308
9309         * XplatUICarbon.cs: Enable packing scroll delta into the mouse wParam
9310
9311 2008-01-22  Jonathan Pobst  <monkey@jpobst.com>
9312
9313         * ThemeWin32Classic.cs: Run Flat, Button appearance, 2.0 CheckBoxes
9314         through the normal flat button code and don't draw the checkbox glyph.
9315         * Theme.cs: Button->ButtonBase signature change.
9316         [Fixes bug #324755]
9317
9318 2008-01-22  Everaldo Canuto  <ecanuto@novell.com>
9319
9320         * LinkLabel.cs: Uses new class LinkLabelPainter.
9321
9322 2008-01-22  Everaldo Canuto  <ecanuto@novell.com>
9323
9324         * MessageBox.cs: Adjust right border space, we don't need to add 
9325         "space_border*2" two times.
9326
9327 2008-01-22  Jonathan Pobst  <monkey@jpobst.com>
9328
9329         * ScrollableControl.cs: With the advent of 2.0's Padding, DockPadding
9330         becomes a wrapper around Padding.
9331         [Fixes a part of bug #354676]
9332
9333 2008-01-22 Geoff Norton  <gnorton@novell.com>
9334
9335         * Mime.cs:  Avoid a needles exception on OSX if we dont have a buffer
9336         acquired.  Also ensure the buffer is large enough to grab the header
9337         we need on linux boxes.
9338
9339 2008-01-22  Jonathan Pobst  <monkey@jpobst.com>
9340
9341         * Control.cs: Implement a custom enumerator so people can delete
9342         from the Controls collection while in a foreach.
9343         [Fixes bug #355074]
9344
9345 2008-01-22  Ivan N. Zlatev  <contact@i-nz.net>
9346
9347          * PropertyGridView.cs: Fix focusing behavior:
9348          - Tab should focus the grid text box.
9349          - Clicking on the labels shouldn't focus the grid text box.
9350
9351 2008-01-22  Ivan N. Zlatev  <contact@i-nz.net>
9352
9353          * PropertyGridView.cs: IsValueTypeGridItem should return true 
9354          for Arrays as well.
9355
9356 2008-01-22  Ivan N. Zlatev  <contact@i-nz.net>
9357
9358          * PropertyGrid.cs, GridEntry.cs, PropertyGridView.cs:
9359           - Renamed GridEntry.SelectedObjects to TargetObjects to better
9360           reflect the property name role.
9361           - PropertyGrid.GetTarget is not required as the target is known
9362           (TargetObjects).
9363           - Setting values will handle value types as a special case now and
9364           populate them up in the chain.
9365           [Fixes #354990]
9366
9367 2008-01-21  Jonathan Pobst  <monkey@jpobst.com>
9368
9369         * Hwnd.cs: Create a public property for the Graphics we keep around.
9370
9371 2008-01-21  Ivan N. Zlatev  <contact@i-nz.net>
9372
9373          * PropertyGridView.cs: Just hide the grid textbox and do nothing more 
9374          when the current object selection changes. 
9375          Fixes failing test SelectedObject_Null2.B5.
9376
9377 2008-01-21  Ivan N. Zlatev  <contact@i-nz.net>
9378
9379          * PropertyGrid.cs: Process Browsable properties with 
9380          DesignerSerializationVisibilityAttribute.Content as being expandable.
9381          This seems also what MS does. Without this e.g SplitContainer.Panel1/2
9382          will not be expandable. We should be nested components-friendly now.
9383
9384 2008-01-21  Andreia Gaita <avidigal@novell.com>
9385
9386         * WebBrowserBase.cs: Check if control was loaded properly, 
9387         don't bind if it wasn't.
9388
9389         * HtmlDocument.cs: Implement CreateElement, Equals, Focus, 
9390         GetElementFromPoint, equality operators, OpenNew, Write.
9391         Remove extra set_Body
9392
9393 2008-01-18  Jonathan Pobst  <monkey@jpobst.com>
9394
9395         * ContainerControl.cs, Control.cs: Apply patch from James Purcell
9396         that makes our AutoScale* stuff more tolerant to different orders
9397         of being set.  [Fixes bug #354669]
9398
9399 2008-01-18  Ivan N. Zlatev  <contact@i-nz.net>
9400
9401          * PropertyGridView.cs, PropertyGridTextBox.cs: 
9402          Drop WM_LBUTTONDOWN msg sending and use focusing instead.
9403          [Fixes #339005 and #348209]
9404
9405 2008-01-18  Ivan N. Zlatev  <contact@i-nz.net>
9406
9407          * PropertyGridView.cs: Hide the grid text box before adjusting it
9408          for the newly selected GridItem.
9409          [Fixes #338999]
9410
9411 2008-01-18  Jonathan Pobst  <monkey@jpobst.com>
9412
9413         * Form.cs: Give MDI children the opportunity to cancel the parent form
9414         attempting to close.  Ensure that all [Form]Clos[ing,ed] events get called
9415         properly for both the parent and child.
9416         * Application.cs: Signature of internal method changed, pass the previous
9417         default of false.
9418         [Fixes bug #354286]
9419
9420 2008-01-17  Ivan N. Zlatev  <contact@i-nz.net>
9421
9422         * PropertyGridView.cs: Set the property value only if it has changed.
9423         [Fixes bug #338997]
9424
9425 2008-01-17  Jonathan Pobst  <monkey@jpobst.com>
9426
9427         * MenuAPI.cs: Windows sends us MOUSEMOVE messages when any key is pressed.
9428         If the mouse hasn't actually moved, ignore these messages so the currently
9429         highlighted menuitem isn't reset to the one under the mouse.
9430         [Fixes bug #333668]
9431
9432 2008-01-17  Ivan N. Zlatev  <contact@i-nz.net>
9433
9434         * PropertyGridView.cs: When the property changes Invalidate the GridItem
9435         in order for the properties with UITypeEditor.GetPaintValueSupported == true
9436         to reflect the change visually.
9437         [Fixes bug #338998]
9438
9439 2008-01-17  Jonathan Pobst  <monkey@jpobst.com>
9440
9441         * ButtonBase.cs: Add LineLimit to 1.1 button drawing, and TextBoxControl
9442         to 2.0 button drawing.
9443         * ThemeWin32Classic.cs: Ensure that the rectangle we are using to draw 
9444         the button text is tall enough for one line.  LineLimit says it will
9445         always draw at least one line, but it is a lie.
9446         [Fixes bug #324941]
9447
9448 2008-01-17  Atsushi Enomoto  <atsushi@ximian.com>
9449
9450         * XplatUIStructs.cs, X11Keyboard.cs :
9451           added some more VK_* keys to be handled.
9452
9453 2008-01-16  Andreia Gaita <avidigal@novell.com>
9454
9455         * Control.cs: Check if there is a container before setting or getting
9456         the validation flag.
9457
9458 2008-01-16  Andreia Gaita <avidigal@novell.com>
9459
9460         * ContainerControl.cs: Add flag to track if a control cancels validation, 
9461         so we don't fire click events.
9462
9463         * Control.cs: 
9464         - (HandleClick) Check if validation was cancelled before  firing the click
9465         events (doubleclicks are fired, but not clicks)
9466         - (WmLButtonDown) Reset validation flag. The flag is normally reset on 
9467         ContainerControl.set_ActiveControl, but in the case of non-selectable
9468         controls, like a Label, activecontrol is not set. 
9469
9470         * ButtonBase.cs: Only fire clicks if validation passes.
9471         
9472         Fixes #353310
9473
9474 2008-01-16  Geoff Norton  <gnorton@novell.com>
9475
9476         * XplatUICarbon.cs: Implement GetAutoScaleSize to fix Reflector on
9477         trunk
9478
9479 2008-01-16  Jonathan Pobst  <monkey@jpobst.com>
9480
9481         * FolderBrowserDialog.cs: If we cannot interpret the user's requested
9482         SelectedPath, just display the default dialog instead of crashing.
9483         [Fixes bug #348989]
9484
9485 2008-01-16  Geoff Norton  <gnorton@novell.com>
9486
9487         * XplatUICarbon.cs:  Flicker be gone!  Generate our messages in
9488         AddExpose instead of trusting apples compositing manager which doesn't
9489         work for our use case.  Remove some dead code causing warnings and 
9490         redecorate some other code to prevent warnings.
9491
9492 2008-01-16  Geoff Norton  <gnorton@novell.com>
9493
9494         * XplatUICarbon.cs:  Avoid some unecessary invalidation calls when
9495         carbon signals us to redraw.  Fixes another portion of the flickering bug
9496
9497 2008-01-16  Everaldo Canuto  <ecanuto@novell.com>
9498
9499         * Form.cs: Prevent the MdiParent property to be set when value is the same
9500         as value already set. Fixes bug #328019.
9501
9502 2008-01-16  Everaldo Canuto  <ecanuto@novell.com>
9503
9504         * Form.cs: Don't set mdi_parent as null when mdi window close is prevented, 
9505         it prevents NRE when closing mdi child windows. Fixes bug #325211.
9506
9507 2008-01-16  Everaldo Canuto  <ecanuto@novell.com>
9508
9509         * InternalWindowManager.cs: Invalidade close button after mouse up when 
9510         mdi form is prevented to close.
9511
9512 2008-01-16  Everaldo Canuto  <ecanuto@novell.com>
9513
9514         * MdiClient.cs: Fix the minimum bounds on child window sizes when cascade,
9515         thanks to Andy Hume. Fixes bug #325433.
9516
9517 2008-01-16  Andreia Gaita <avidigal@novell.com>
9518
9519         * LinkLabel.cs: Reset focused_index when resellecting the control.
9520         Fixes #323190
9521
9522 2008-01-15  Geoff Norton  <gnorton@novell.com>
9523
9524         * XplatUICarbon.cs:  Rework Grab/Ungrab handling to send some needed 
9525         messages.
9526
9527 2008-01-15  Jonathan Pobst  <monkey@jpobst.com>
9528
9529         * Form.cs: Change 2 more AutoScaleBaseSize calculation to round instead
9530         of truncate.
9531
9532 2008-01-15  Jonathan Pobst  <monkey@jpobst.com>
9533
9534         * ContainerControl.cs: Setting AutoScaleMode to anything should set
9535         Form.AutoScale to false.
9536         * Form.cs: Setting AutoScale to true should set AutoScaleMode to None.
9537         AutoScaleBaseSize should be changed on Font change unless it has been
9538         explicitly set.
9539         [Fixes bug #353827]
9540
9541 2008-01-15  Everaldo Canuto  <ecanuto@novell.com>
9542
9543         * MenuAPI.cs: On instance of MenuTracker check if source control is
9544         ToolStripOverflow and use properly method to find form.
9545         [Fixes bug #338511]
9546
9547 2008-01-15  Everaldo Canuto  <ecanuto@novell.com>
9548
9549         [Fixes bug #323241 Transparent toolbar support]
9550
9551         * ToolBar.cs: Define ToolBarStyles.TBSTYLE_FLAT in CreateParams when toolbar
9552         is flat.
9553
9554         * Control.cs: Paint background as transparent in case of TBSTYLE_FLAT is
9555         defined in control style to mimic win32 behavior.
9556
9557         * ThemeWin32Classic.cs: Don't paint background for flat apparence toolbar, 
9558         it will be transparent.
9559
9560 2008-01-14  Everaldo Canuto  <ecanuto@novell.com>
9561
9562         * XplatUIStructs.cs: Implement ToolBarStyles to use in Style property of
9563         CreateParams for ToolBar controls.
9564
9565 2008-01-14  Jonathan Pobst  <monkey@jpobst.com>
9566
9567         * Form.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs: Forms with
9568         FixedToolWindow, SizeableToolWindow, or None for border styles have
9569         different minimum sizes than regular forms.  Implemented to fix
9570         regression in PDN with toolbox being too wide.
9571
9572 2008-01-14  Andreia Gaita <avidigal@novell.com>
9573
9574         * HtmlElementCollection.cs: Implemented
9575
9576         * HtmlElement.cs: Implemented:
9577           - All
9578           - InnerHtml
9579           - InnerText
9580           - Id
9581           - Name
9582           - FirstChild
9583
9584         * HtmlDocument.cs: Implemented GetElementsByTagName.
9585
9586 2008-01-14  Jonathan Pobst  <monkey@jpobst.com>
9587
9588         * Screen.cs: Stub BitsPerPixel to always return 32.
9589
9590 2008-01-14  Jonathan Pobst  <monkey@jpobst.com>
9591
9592         * Form.cs: Implement RestoreBounds.
9593
9594 2008-01-14  Jonathan Pobst  <monkey@jpobst.com>
9595
9596         * RichTextBox.cs, ToolStrip.cs: Fix some typos pointed out by
9597         Sebastien and his fabulous magical problem-finding machine:
9598         Gendarme.  Also put a MonoTodo on AutoWordSelect since we don't
9599         respect the value set.
9600
9601 2008-01-14  Everaldo Canuto  <ecanuto@novell.com>
9602
9603         * Form.cs: In WmWindowPosChanged call base.WndProc including when state is
9604         minimized. Fixes bug #325122 for Win32. Thanks  Srikanth Madikeri.
9605
9606 2008-01-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9607
9608         * X11Dnd.cs: Since we don't propagate the WM_LBUTTONUP/WM_RBUTTONUP
9609         messages (to match .Net), we need to remove the capture ourselves.
9610
9611 2008-01-11  Jonathan Pobst  <monkey@jpobst.com>
9612
9613         * MenuAPI.cs: If we get an Alt-F4, release our capture so Windows
9614         will process the message and close our window.
9615         [Fixes bug #324328]
9616
9617 2008-01-10  Geoff Norton  <gnorton@novell.com>
9618
9619         * XplatUICarbon.cs:  Clip the Graphics context to the invalid area
9620         tracked in the Hwnd.  Only invalidate the dirty region to the Carbon
9621         window manager.
9622
9623 2008-01-10  Jonathan Pobst  <monkey@jpobst.com>
9624
9625         * Form.cs: Enforce the Form minimum size in SetBoundsCore.  Fixed
9626         failing test.
9627
9628 2008-01-10  Jonathan Pobst  <monkey@jpobst.com>
9629
9630         * XplatUIX11.cs: Set a minimum window size and enforce it.  Even though
9631         Linux doesn't care, having a minimum matches MS and keeps the window
9632         from becoming too small to use window decorations.
9633         [Fixes bug #338996]
9634
9635 2008-01-10  Jonathan Pobst  <monkey@jpobst.com>
9636
9637         * ThemeWin32Classic.cs: Tie CheckBox/RadioButton focus rectangles to
9638         ShowFocusCues.  Make focus rectangles fit the text instead of the whole
9639         control.  [Fixes bug #325419]
9640
9641 2008-01-10  Jonathan Pobst  <monkey@jpobst.com>
9642
9643         * ComboBox.cs: Guard against an NRE if the user open a new form from a
9644         SelectedIndexChanged event.  This closes the combobox dropdown, and we
9645         were trying to dispose it.  [Fixes bug #352830]
9646
9647 2008-01-09  Jonathan Pobst  <monkey@jpobst.com>
9648
9649         * Control.cs, Form.cs: Implement the necessary semantics for
9650         ShowFocusCues.  All paint code will need to check Control.ShowFocusCues
9651         to determine if a focus rectangle should be drawn.
9652         * PropertyGrid.cs: Fix property visibility to match override.
9653         * ThemeWin32Classic.cs: Use ShowFocusCues for Button.
9654
9655 2008-01-09  Jonathan Pobst  <monkey@jpobst.com>
9656
9657         * Application.cs: Use GetCommandLineArgs to calculate ExecutablePath.
9658         [Fixes bug #323552]
9659
9660 2008-01-09  Geoff Norton  <gnorton@novell.com>
9661         
9662         * XplatUICarbon.cs: Scroll windows in the correct direction.
9663
9664 2008-01-09  Geoff Norton  <gnorton@novell.com>
9665
9666         * XplatUICarbon.cs: Track all created utility windows so we can hide them
9667         when the app is deactivated or spaces is enabled.
9668
9669 2008-01-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9670
9671         * ListViewItem.cs: Cosmetic fix - When calculating layout for item, don't add an
9672         extra separation pixel for the label rect origin if SmallImageList is
9673         null, and thus we don't need that separation between icon and label
9674         rects.
9675         Patch by Ernesto Carrea.
9676         Fixes # 340195.
9677
9678 2008-01-08  Jonathan Pobst  <monkey@jpobst.com>
9679
9680         * StatusStrip.cs: Invalidate after completing a layout.  The base
9681         OnLayout does this, but we don't call the base.
9682         * ToolStripItem.cs: Revert the previous change to invalidate after
9683         the item moves.
9684         [Fixes bug #351341 better.]
9685
9686 2008-01-07  Geoff Norton  <gnorton@novell.com>
9687
9688         * XplatUICarbon.cs:  WM_DESTROY is a teardown of a single window
9689         not a notification to exit the application.  Listen for WM_QUIT
9690         instead.
9691
9692 2008-01-07  Andreia Gaita <avidigal@novell.com>
9693
9694         * HtmlDocument.cs: Fix case on GetElementById (interface changed)
9695
9696 2008-01-07  Jonathan Pobst  <monkey@jpobst.com>
9697
9698         * ToolStripItem.cs: If the bounds of an item changes, invalidate it
9699         so it can repaint at the correct location.
9700         [Fixes bug #351341]
9701
9702 2008-01-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9703
9704         * ListControl.cs: SelectedValue should return a null value if
9705         SelectedIndex is -1. Also, when setting it, it should throw an
9706         ArgumentNullException if the value is null, as well as taking
9707         into account the String.Empty value, instead of ignoring it (we have
9708         tests for that now).
9709         Fixes part of #324286.
9710
9711 2008-01-06  Jonathan Pobst  <monkey@jpobst.com>
9712
9713         * TextBoxBase.cs, TextControl.cs: Patch from Luke Page to ensure
9714         SelectionStart is updated after pressing enter.  Fixes bug #351918.
9715
9716 2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
9717
9718         * TextControl.cs: Revert a piece r92316 that prevented the fix
9719         from working when there were multiple tags in the text box.
9720         Fixes bug #351881.
9721
9722 2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
9723
9724         * TextControl.cs: Apply patch from Luke Page that prevents an
9725         NRE when determining the beginning of a paragraph.
9726         Fixes bug #351886.
9727
9728 2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
9729
9730         * TextBoxBase.cs: Apply patch from Luke Page that ensures the
9731         caret gets moved with clicking away from a selected block of
9732         text.  Fixes bug #351885.
9733
9734 2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
9735
9736         * TextControl.cs: Apply patch from Luke Page that takes line
9737         alignment into account for mouse selection, so that center and
9738         right aligned text can be selected.
9739         Fixes bug #351881.
9740
9741 2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
9742
9743         * RichTextBox.cs: Apply patch from Luke Page that fixes some caret
9744         issues after loading an RTF file by using the correct line feeds.
9745         Fixes bug #351841.
9746
9747 2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
9748
9749         * TextControl.cs: When deleting multiple line selections, we need
9750         to invalidate every line beginning at the first line of the selection.
9751         Patch from Luke Page fixes bug #351791.
9752
9753 2008-01-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9754
9755         * ListControl.cs: When getting a CurrencyManager.PositionChanged
9756         event, don't set SelectedIndex if the number of items is 1. This is
9757         because, for the first item, PositionChanged is fired _before_
9758         ItemChanged (the place where we actually populate the items), and
9759         leave us in a temporary invalid state (since items collection is
9760         empty).
9761         Fixes #349655.
9762
9763 2008-01-04  Geoff Norton  <gnorton@novell.com>
9764
9765         * XplatUICarbon.cs:  Create native toolwindows instead of
9766         the managed drawing ones.
9767
9768 2008-01-03  Jonathan Pobst  <monkey@jpobst.com>
9769
9770         * LineTag.cs: If the line doesn't have any characters, return
9771         0 for GetCharIndex.  Fixes an AOORE exception after certain
9772         caret movements.  Fixes bug #351683.  Patch by Luke Page.
9773
9774 2008-01-03  Jonathan Pobst  <monkey@jpobst.com>
9775
9776         * TextBoxBase.cs: Apply patch from Luke Page so when backspace
9777         is hit when there is selected text, only the selected text gets
9778         deleted, not the character in front of the selection as well.
9779         Fixes bug #351578.
9780
9781 2008-01-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9782
9783         * ComboBox.cs: When the values are displayed, calculate the
9784         ComboListBox scrollbar's LargeChange based on the visible area's
9785         height and  the actuall ItemHeight, instead of calculating it
9786         based on MaxDropItems value, since it's not used by our _current_ 
9787         2.0 profile.
9788         Fixes #332366.
9789
9790 2008-01-03  Jonathan Pobst  <monkey@jpobst.com>
9791
9792         * Line.cs, LineTag.cs, RichTextBox.cs, TextBoxBase.cs, TextControl.cs:
9793         Patch from Luke Page that fixes issues with font colors and styles
9794         not showing up in a readonly RichTextBox.  Fixes bug #324354.
9795
9796 2008-01-03  Jonathan Pobst  <monkey@jpobst.com>
9797
9798         * Line.cs, RichTextBox.cs, TextControl.cs: Another awesome patch
9799         from Luke Page.  This one fixes bug #349926.
9800
9801 2007-12-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9802
9803         * CurrencyManager.cs: Actually fire the 2.0 ListChanged event when
9804         an item in the IBindingList source changes with
9805         ListChangedType.ItemAdded. Ignore for now firing the event for other
9806         changes, since we want to have tests for those cases as well.
9807
9808 2007-12-28  Jonathan Pobst  <monkey@jpobst.com>
9809
9810         * TextBoxBase.cs: Don't store a 1x1 Bitmap for every TextBox
9811         created.
9812
9813 2007-12-28  Jonathan Pobst  <monkey@jpobst.com>
9814
9815         * TextBoxTextRenderer.cs: Implement a cache for measuring each
9816         character.  This is effective because the typical usage of a
9817         TextBox is with a limited amount of fonts and characters, and
9818         the current implementation of TextBox measures everything one
9819         character at a time.  Another second or two speedup for bug #347238.
9820
9821 2007-12-28  Jonathan Pobst  <monkey@jpobst.com>
9822
9823         * Control.cs: Rewrite the Font getter to only query the parent's
9824         Font property once instead of twice.  Since this operation is
9825         recursive, the queries were growing exponentially as the control
9826         tree got deeper.  Another second or two speedup for bug #347238.
9827
9828 2007-12-28  Jonathan Pobst  <monkey@jpobst.com>
9829
9830         * Control.cs: Avoid setting a parent (and more importantly, updating
9831         the zorder of all its children) if the parent is already correct in
9832         WmShowWindow.  Decreases the startup time of the test case on bug
9833         #347238 from 35 seconds to 11 seconds.
9834
9835 2007-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9836
9837         * X11Dnd.cs: When the dnd operation has started and we are 
9838         in the dnd loop, don't dispatch either WM_LBUTTONUP nor WM_RBUTTONUP.
9839         This is done to match .Net, which doesn't send those messages after
9840         dnd operation was completed/cancelled.
9841         Fixes #349922.
9842
9843 2007-12-27  Jonathan Pobst  <monkey@jpobst.com>
9844
9845         * ToolStrip.cs: Previous change should be != null, not == null.
9846         Thanks Gert!
9847
9848 2007-12-27  Jonathan Pobst  <monkey@jpobst.com>
9849
9850         * ToolStrip.cs: Guard against an NRE after ItemClicked is called, the
9851         user may have moved the mouse off the current item during the event.
9852
9853 2007-12-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9854
9855         * ListView.cs: In ItemControl.ItemsMouseMove, try to avoid
9856         calling GetItemAt for every MouseMove event by also taking into
9857         account whether any mouse button is pressed (probably dragging); 
9858         if so, we can call GetItemAt, and if not, try to not call it 
9859         (GetItemAt can be quite expensive when used with a large number of items).
9860
9861 2007-12-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9862
9863         * ListView.cs: Implement -finally- support for dnd, by calling
9864         OnItemDrag as needed. Also, remove the dnd TODO, and add myself to the
9865         authors list ;-).
9866         * ListViewInsertionMark.cs: Implement NearestIndex method, by doing a
9867         simple calculation of distances for all the items in the owner
9868         listview.
9869
9870 2007-12-21  Geoff Norton  <gnorton@novell.com>
9871
9872         * XplatUICarbon.cs:  Ensure that we create WindowMapping handles
9873         for windows that are originally created as invisible.  Fixes missing
9874         main window in paint-mono.
9875
9876 2007-12-21  Geoff Norton  <gnorton@novell.com>
9877
9878         * XplatUICarbon.cs:  Register our D&D handler.  Register our custom
9879         subclass handler for com.novell.mwfview subclassing HIView.  Implement
9880         Pasteboard and Dnd methods.
9881
9882 2007-12-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9883
9884         * ListBox.cs: When we got focus, give focus to first item if there
9885         wasn't any pervious focused item. Also update navigation to depend on
9886         SelectedIndex rather than FocusedItem, just as .Net does.
9887         Fixes #349174.
9888
9889 2007-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9890
9891         * ListBox.cs: Both FindString and FindStringExact methods must do an
9892         case insensitive search, should allow the last valid index to be
9893         passed in the overload taking an initial index, and should also
9894         continue searching from the top back to the specified index when it
9895         reaches the bottom.
9896
9897 2007-12-19  Jonathan Pobst  <monkey@jpobst.com>
9898
9899         * TextControl.cs: Apply patch from Luke Page that fixes a scrolling
9900         redraw issue, and allows RichTextBox to draw colored text even while
9901         disabled or readonly.
9902
9903 2007-12-19  Jonathan Pobst  <monkey@jpobst.com>
9904
9905         * RichTextBox.cs, TextBoxBase.cs: Apply patch from Luke Page that
9906         disallows cut/paste in a readonly textbox, adds support for Shift-Insert,
9907         and doesn't grey text in a disabled RichTextBox.
9908
9909 2007-12-19  Jonathan Pobst  <monkey@jpobst.com>
9910
9911         * RichTextBox.cs: Apply patch from Luke Page that adds better support
9912         for many RTF commands: quad alignment, separate formatting for blocks
9913         inside groups, and ParDef support.  Makes the test case from bug #324589
9914         look much better.
9915
9916 2007-12-19  Jonathan Pobst  <monkey@jpobst.com>
9917
9918         * LineTag.cs: Fix an error in the new Draw method that caused
9919         a crash when rendering the document on bug #324589.
9920
9921 2007-12-19  Jonathan Pobst  <monkey@jpobst.com>
9922
9923         * Line.cs, LineTag.cs, RichTextBox.cs, TextBoxBase.cs,
9924         TextControl.cs: Apply patch from Luke Page that adds support
9925         for URL links in RichTextBox.
9926         [Fixes enhancement #342516]
9927
9928 2007-12-18  Everaldo Canuto  <ecanuto@novell.com>
9929
9930         * MenuItem.cs: When cloning menuitem clone also name and tag properties for
9931         2.0 profile. Thanks Ernesto Carrea and Luke Page. Fixes bug #340289.
9932
9933 2007-12-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9934
9935         * ListBox.cs: When a key gets pressed, try to find a string
9936         if the key is a character or a digit.
9937         Fixes #343971.
9938
9939 2007-12-17  Jonathan Pobst  <monkey@jpobst.com>
9940
9941         * TableLayoutPanel.cs: Remove some unused variables.
9942
9943 2007-12-17  Jonathan Pobst  <monkey@jpobst.com>
9944
9945         * DateTimePicker.cs: Commit patch from Luke Page that ensures
9946         we don't end up at an invalid date when we click the up/down
9947         spinner to change the month or year.  Fixes bug #348682.
9948
9949 2007-12-17  Jonathan Pobst  <monkey@jpobst.com>
9950
9951         * Application.cs: Calling Exit in 2.0 should chain to the
9952         Exit (CancelEventArgs) version so it can be cancelled.
9953         * Form.cs: Create a flag to allow raising the Closing
9954         events to be skipped.  We raise them once in Application.Exit
9955         and don't want to raise them again when the Form is actually
9956         closed.  [Fixes bug #349073]
9957
9958 2007-12-16  Jonathan Pobst  <monkey@jpobst.com>
9959
9960         * ToolStripDropDown.cs: Guard against an NRE when there
9961         hasn't been a mainform set in the application context.
9962         [Fixes bug #349108]
9963
9964 2007-12-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9965
9966         * ListBox.cs: When SetBoundsCore gets called, besides
9967         calling UpdateScrollBars, update the value of
9968         last_visible_index, since we could need to show more items
9969         than before, and we need to let the paint routines know that.
9970         Fixes #344445.
9971
9972 2007-12-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9973
9974         * ListView.cs: Add DesignerSerializationVisibility attribute to
9975         InsertionMark property.
9976         * ListViewItem.cs: Add same attribute to Position property.
9977
9978 2007-12-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9979
9980         * ListViewItem.cs: .ctor (SerializationInfo, StreamingContext)
9981         is 2.0 only.
9982
9983 2007-12-14  Jonathan Pobst  <monkey@jpobst.com>
9984
9985         * ThemeWin32Classic.cs: Don't draw the background on a
9986         flat button if there is a background image.
9987         [Fixes bug #348649]
9988
9989 2007-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9990
9991         * ListBox.cs: If we remove the item currently selected,
9992         remove it not only from SelectedItems, but also
9993         resetting selected_index. Moreover, set focused_item to Items.Count - 1 if 
9994         the items count decreased and focused_item has bigger value than that.
9995
9996 2007-12-13  Jonathan Pobst  <monkey@jpobst.com>
9997
9998         * Control.cs: Perform our layout after we resize ourselves
9999         if we had to adjust our AutoSize.  Missed commit for bug
10000         #346246.
10001
10002 2007-12-13  Jonathan Pobst  <monkey@jpobst.com>
10003
10004         * TableLayoutPanel.cs: Override GetPreferredSizeCore so
10005         we can provide an implementation of AutoSize.
10006         [Fixes bug #346246]
10007
10008 2007-12-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10009
10010         * ListBox.cs: Add the internal overload Sort (bool paint),
10011         to indicate whether we actually need a paint or we will
10012         call Refresh ourselves. This way we don't request a paint
10013         _before_ having an updated and valid layout.
10014         Fixes #347233.
10015
10016 2007-12-12  Andreia Gaita <avidigal@novell.com>
10017
10018         * XPlatUIX11.cs: Send paint messages when updating a systray icon
10019         * NotifyIcon.cs: Invalidate the window before doing a systray change so it is
10020         properly invalidated. 
10021         Fixes #324237
10022
10023 2007-12-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10024
10025         * ListViewItem.cs: When using a .ctor taking a ListViewGroup,
10026         don't simply assign it to our internal group field, but instead 
10027         use our Group property, which should do all the neccessary work
10028         required to support groups. Fixes an issue reported to me (mail) by a 
10029         guy using this new feature.
10030
10031 2007-12-11  Jonathan Pobst  <monkey@jpobst.com>
10032
10033         * Control.cs: Use Scale instead of ScaleControl to ensure the
10034         whole hierarchy gets scaled.
10035         [Fixes bug #347282]
10036
10037 2007-12-10  Jonathan Pobst  <monkey@jpobst.com>
10038
10039         * DateTimePicker.cs: Don't set the internal MonthCalendar's
10040         Parent property.  Doing this causes the control to be hosted by
10041         the Form instead of being a popup window.
10042         [Fixes bug #347665]
10043
10044 2007-12-10  Jonathan Pobst  <monkey@jpobst.com>
10045
10046         * ToolStripItemCollection.cs: If we try to insert a ToolStripItem
10047         at an index higher than Count, just use Add instead of Insert.
10048         [Fixes bug #347669]
10049
10050 2007-12-10  Jonathan Pobst  <monkey@jpobst.com>
10051
10052         * ThemeWin32Classic.cs: Don't draw a PictureBox's background in
10053         DrawPictureBox, this is handled by Control.PaintBackground.
10054         [Fixes bug #347276]
10055
10056 2007-12-10  Everaldo Canuto  <ecanuto@novell.com>
10057
10058         * MenuAPI.cs: When process menu keys return true by default only if menu is
10059         active. Fixes bug #342892.
10060
10061 2007-12-09  Andreia Gaita <avidigal@novell.com>
10062
10063         * Control.cs: check if windows are actually mapped before
10064         trying to zorder. Fixes #342509, #346955
10065
10066 2007-12-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10067
10068         * ListView.cs:
10069         * ListViewInsertionMark.cs:
10070         * ThemeWin32Classic.cs: Implement the drawing side of the
10071         new 2.0 ListView.InsertionMark property.
10072
10073 2007-12-07  Jonathan Pobst  <monkey@jpobst.com>
10074
10075         * CurrencyManager.cs: Silence some debug spew.
10076
10077 2007-12-07  Geoff Norton  <gnorton@novell.com>
10078         
10079         * Hwnd.cs: Refactor GetClippingRectangles to suppose returning the
10080         masks for our children as well as siblings to avoid having to query
10081         Quartz for this information.
10082         * XplatUICarbon.cs: Implement a delegate based system to pass
10083         information to System.Drawing.  Implement Async methods.  Remove
10084         the hack for the resize thumb and imlpement a transparent Grow Box.
10085         Rework the messaging system to proplery create window's and messages,
10086         fixes TabControl.
10087
10088 2007-12-06  Andreia Gaita <avidigal@novell.com>
10089
10090         * X11Keyboard.cs: Use Xutf8LookupString to support international 
10091         characters under alternate codepages. Patch from #340878
10092
10093 2007-12-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10094
10095         * ListView.cs: When doing layout computations, set position in the
10096         ListView instances (we cache the position just as .Net does).
10097         * ListViewItem.cs: New internal setter method for Position. Also set
10098         position field as also available in 1.1, since we are going to use it
10099         now in the common case.
10100
10101 2007-12-06  Andreia Gaita <avidigal@novell.com>
10102
10103         * Control.cs: When removing controls, get the actual container
10104         to notify about active control changes. Fixes 341314.
10105
10106 2007-12-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10107
10108         * ListViewItem.cs: Forgot to add Font to our serialization stuff.
10109
10110 2007-12-05  Andreia Gaita <avidigal@novell.com>
10111
10112         * Control.cs: When updating the zorder, ignore windows that are not
10113         mapped. Fixes #342509
10114
10115 2007-12-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10116
10117         * ListViewItem.cs: Actually implement serialization on this class.
10118
10119 2007-12-05  Gert Driesen  <drieseng@users.sourceforge.net>
10120
10121         * LinkLabel.cs: Fixed paramname of ArgumentNullException in ctor of
10122         LinkCollection. Spaces to tabs, and removed extra tabs.
10123
10124 2007-12-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10125
10126         * XplatUIX11.cs: Make toolwindows' decorations show up without causing any
10127           tests to fail (hopefully).
10128
10129 2007-12-03  Jonathan Pobst  <monkey@jpobst.com>
10130
10131         * ToolStripDropDownMenu.cs: Fill in AffectedBounds when drawing
10132         the image margin so custom renderers can correctly place it.
10133
10134 2007-12-03  Jonathan Pobst  <monkey@jpobst.com>
10135
10136         * StatusStrip.cs: Fill in AffectedBounds when drawing the grip
10137         so custom renderers can correctly place it.
10138
10139 2007-12-03  Jonathan Pobst  <monkey@jpobst.com>
10140
10141         * Application.cs: Let WM_CHAR messages flow through to controls
10142         hosted in Strips.  [Fixes bug #343972]
10143
10144 2007-12-02  Jonathan Pobst  <monkey@jpobst.com>
10145
10146         * ToolStripManager.cs: Guard against an NRE I ran into.
10147
10148 2007-12-02  Jonathan Pobst  <monkey@jpobst.com>
10149
10150         * LinkLabel.cs: Apply patch from George to fix bug 344012.  If
10151         a Link is manually added to the Links collection, we need to set
10152         its owner, so it can invalidate properly.
10153         [Fixes bug #344012]
10154
10155 2007-11-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10156
10157         * ListView.cs: When changing ListViewItem.Position (which calls
10158         ListView.ChangeItemLocation), invalidate not only the area
10159         corresponding to the main item, but also to the area occupied
10160         by the items being moved.
10161
10162 2007-11-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10163
10164         * ListView.cs: When changing the position of a given item,
10165         don't use item bounds, but item areas (which includes the item spacing
10166         between them). Also, use first/last position if the requested
10167         position is outside bounds (as .Net does). Invalidate the previous and
10168         new bounds. Finally, in ItemControl.ItemsMouseDown use the actual item
10169         in a specific position, instead of directly accessing Items collection
10170         (this is done to get the right item - remember an Item can have a
10171         different position in the grid than in the Items collection).
10172
10173 2007-11-23  Everaldo Canuto  <ecanuto@novell.com>
10174
10175         * MessageBox.cs: Calculate text area instead of just top left, this rect 
10176         area will be used in DrawString. Fixes bug #343364.
10177
10178 2007-11-23  Everaldo Canuto  <ecanuto@novell.com>
10179
10180         * MessageBox.cs: Calculate max amount for text area width, it must be 60% of
10181         screen width. Partially fixes bug #343364.
10182
10183 2007-11-23  Everaldo Canuto  <ecanuto@novell.com>
10184
10185         * NotifyIcon.cs: Remove duplicated code before call realculate and put this
10186         code inside recalculate, it makes code more simple.
10187
10188 2007-11-22  Everaldo Canuto  <ecanuto@novell.com>
10189
10190         * NotifyIcon.cs: When recalculate icon verify if icon is active to decide
10191         between update or add icon. Fixes bug #324344.
10192
10193 2007-11-21  Andreia Gaita <avidigal@novell.com>
10194
10195         * XPlatUIX11.cs: Do not treat tool windows as if they have no 
10196         window manager, since that stretches the drawing area to include
10197         the window decorations, and they get hidden. Reverts r84444 and fixes
10198         #335849 and #342790 (mdi and pdn3 regression)
10199
10200 2007-11-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10201
10202         * ListView.cs: When setting focused item, try to give focus to the
10203         previous one _only_ if the previous one remains valid. 
10204         Fixes #342504.
10205
10206 2007-11-20  Jonathan Pobst  <monkey@jpobst.com>
10207
10208         * Application.cs: Revert r89650, as it broke a common case to fix
10209         an obscure case.  Fixes bug #342606.
10210
10211 2007-11-20  Everaldo Canuto  <ecanuto@novell.com>
10212
10213         * ThemeWin32Classic.cs: Fix extra space on end of tooltip.
10214
10215 2007-11-20  Everaldo Canuto  <ecanuto@novell.com>
10216
10217         * ThemeWin32Classic.cs: Fix tooltip text align removing horizontal 
10218         alignment. [Fixes #324228]
10219
10220 2007-11-19  Jonathan Pobst  <monkey@jpobst.com>
10221
10222         * ToolStrip.cs: Handle flow layout in GetPreferredSize to fix PDN3.
10223         [Fixes bug #342123]
10224
10225 2007-11-19  Everaldo Canuto  <ecanuto@novell.com>
10226
10227         * Form.cs: Check for empty Text before assign to cp.Caption in CreateParams
10228         it prevent problems when empty captions. [Fixes #342141]
10229
10230 2007-11-19  Jonathan Pobst  <monkey@jpobst.com>
10231
10232         * Label.cs: Use Size instead of None.  Fixes bug #342077.
10233
10234 2007-11-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10235
10236         * ListViewItem.cs: Implement 2.0 FindNearestItem method.
10237
10238 2007-11-17  Jonathan Pobst  <monkey@jpobst.com>
10239
10240         * MenuStrip.cs: Guard against a NRE when a MdiWindowItem is set
10241         but there isn't a MdiContainer.
10242         [Fixes bug #342358]
10243
10244 2007-11-17  Jonathan Pobst  <monkey@jpobst.com>
10245
10246         * TextControl.cs: Don't recalculate document if the recalc_start and
10247         recalc_end hasn't changed.
10248         [Fixes bug #342505]
10249
10250 2007-11-17  Gert Driesen  <drieseng@users.sourceforge.net>
10251
10252         * DataGridViewTextBoxCell.cs: Removed CWL.
10253
10254 2007-11-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10255
10256         * ListView.cs: Implement 2.0 SearchForVirtualItem event support.
10257
10258 2007-11-16  Jonathan Pobst  <monkey@jpobst.com>
10259
10260         * TextControl.cs: Missed some code for bug 341534 to trigger a
10261         recalculation when the font changes.
10262
10263 2007-11-16  Andreia Gaita <avidigal@novell.com>
10264
10265         * Control.cs: When updating the zorder, check if the child to update is
10266         the same control that is set to always be on top (i.e., scrollbars), and 
10267         just put it on top directly. Fixes BadMatch error on pdn3
10268
10269 2007-11-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10270
10271         * ListView.cs: Throw the needed exceptions for FindNearestItem.
10272
10273 2007-11-16  Jonathan Pobst  <monkey@jpobst.com>
10274
10275         * Control.cs: Don't perform a new layout when a label changes its text,
10276         cause label handles its own autosizing.
10277         [Fixes bug #342077]
10278
10279 2007-11-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10280
10281         * ListView.cs: Implement 2.0 FindNearestItem methods.
10282
10283 2007-11-15  Jonathan Pobst  <monkey@jpobst.com>
10284
10285         * ToolStripPanel.cs: Make Join at least add the control to the panel,
10286         even if the rest of what Join does isn't supported.  Add some more
10287         support for vertical toolbars.
10288         * ToolStripPanelRow.cs: Add some more support for vertical toolbars.
10289         [Fixes the application breaking parts of bug #341998]
10290
10291 2007-11-15  Jonathan Pobst <monkey@jpobst.com>
10292
10293         * ToolStripItem.cs: When determining if we have a check/image margin,
10294         we need to look at ShowCheckMargin as well as ShowImageMargin.
10295
10296 2007-11-15  Geoff Norton  <gnorton@novell.com>
10297
10298         * XplatUIOSX.cs: Rename to...
10299         * XplatUICarbon.cs: and refactor all event handling out to the new event handling
10300         system in System.Windows.Forms.CarbonInternal.  Lots of code cleanup as well.
10301
10302 2007-11-15  Jonathan Pobst  <monkey@jpobst.com>
10303
10304         * KeysConverter.cs: The default values should be an array of Keys, not
10305         strings.  Also, the array has more values for 2.0.
10306         [Fixes bug #341851]
10307
10308 2007-11-14  Jonathan Pobst  <monkey@jpobst.com>
10309
10310         * Application.cs: Change ExecutablePath to use 
10311         Process.GetCurrentProcess ().MainModule.FileName instead of Assembly.GetEntryAssembly.
10312         [Fixes bug #323552]
10313
10314 2007-11-14  Jonathan Pobst  <monkey@jpobst.com>
10315
10316         * LineTag.cs: Don't attempt to draw '\r', treat it like it doesn't exist.
10317         When measureing CR or LF, use /u000D instead of /u0013. (Hex, not decimal.)
10318         * TextControl.cs: Fix a case in GetLineEnding where a \n before a \r would
10319         be ignored.  Create a new GetLineEnding that can specify which types of
10320         line endings to look for.  On Insert, only create new lines for \n and \r\n.
10321         [Fixes bug #324274]
10322
10323 2007-11-14  Jonathan Pobst  <monkey@jpobst.com>
10324
10325         * TextBoxBase.cs: As we loop through each line changing the font, tell
10326         the document that the line needs to be recalculated.  Fixes bug #341534.
10327
10328 2007-11-13  Jonathan Pobst  <monkey@jpobst.com>
10329         [Another round of refactoring]
10330         * Line.cs: Add DeleteCharacters.
10331         * LineTag.cs: Add Delete.
10332         * TextBoxBase.cs: Update to use new methods.
10333         * TextControl.cs: Refactor the Delete* methods.
10334
10335 2007-11-13  Everaldo Canuto  <ecanuto@novell.com>
10336
10337         * Win32DnD.cs: Implement Win32 Drop files, thank you Srikanth Madikeri for
10338         the patch. [Fixes #324856]
10339
10340 2007-11-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10341
10342         * ListView.cs:
10343         * ListViewItem.cs: Add an initial implementation of
10344         2.0 ListViewItem.Position getter.
10345
10346 2007-11-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10347
10348         * ListView.cs: Add a reordered_items_indices array, to allow us
10349         to have a different sorting than that of Items (the sorting in Items
10350         could not match the actual sorting in screen). This is needed to
10351         implement a pair of 2.0 features.
10352         * ListViewItem.cs: Add a DisplayIndex property to keep track of the
10353         actual position in the ListView grid, since it could have a position
10354         different than its Index (position in ListViewItemCollection). 
10355
10356 2007-11-09  Jonathan Pobst  <monkey@jpobst.com>
10357
10358         * Label.cs: Add StringFormatFlags.LineLimit.  This tells DrawString to
10359         not draw partial lines.
10360         * LinkLabel.cs: Change FormatFlags setter from = to |= so that the
10361         LineLimit flag from the base is preserved.
10362         Fixes the windows part of bug #338965.
10363
10364 2007-11-09  Jonathan Pobst  <monkey@jpobst.com>
10365
10366         * TextBoxBase.cs: Move handling of the enter key from KEYDOWN to CHAR
10367         so that it can be canceled in KeyPress.
10368         Fixes bug #340078.
10369
10370 2007-11-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10371
10372         * ListView.cs: In ItemControl, reset mouse-handling related
10373         fields even if we dont' have items (we still should reset them when
10374         we had items but then called Items.Clear). Partially based in a patch
10375         by George Giolfan.
10376         Fixes #338399.
10377
10378 2007-11-08  Gert Driesen  <drieseng@users.sourceforge.net>
10379
10380         * Application.cs: In ProductVersion first try AssemblyFileVersion
10381         before falling back to assembly version. Fixes bug #339787.
10382
10383 2007-11-08  Andreia Gaita <avidigal@novell.com>
10384
10385         * HtmlElement.cs: Implement InnerText setter.
10386         * WebBrowserBase.cs: Implement Navigated event support.
10387         Add flag to track when the browser "document" is ready to be retrieved.
10388         * WebBrowser.cs: Implement CanGoBack, CanGoForward, Title, Url.
10389         Make sure browser document is ready before retrieving it.
10390         Clean up cached objects (document) when moving to a new page through
10391         any of the navigation methods.
10392         Use the new Mono.WebBrowser.INavigation interface to control navigation.
10393         Implement OnNavigated event.
10394
10395 2007-11-07  Jonathan Pobst  <monkey@jpobst.com>
10396
10397         * ThemeWin32Classic.cs: Don't draw the background in DrawLabel or
10398         DrawLinkLabel, this is handled by OnPaintBackground.
10399         Fixes bug #339565, part II.
10400
10401 2007-11-07  Andreia Gaita <avidigal@novell.com>
10402
10403         * Control.cs: Revert r88915. Selecting text on a textbox depends on
10404         getting a Select call on click, so this call needs to be here for now.
10405         Unfixes #325809
10406
10407 2007-11-07  Geoff Norton  <gnorton@novell.com>
10408
10409         * OSXStructs.cs: Add the kEventClassApplication constants.
10410         * XplatUIOSX.cs: Send a WM_LBUTTONDOWN to the Grab window when the 
10411         application is deactivated otherwise Menu overlays linger on top of
10412         other application windows.
10413
10414 2007-11-07  Geoff Norton  <gnorton@novell.com>
10415
10416         * XplatUIOSX.cs: Dont throw an exception on OverrideCursor as we
10417         dont support cursors yet anyways.  This allows Reflector to run.
10418
10419 2007-11-07  Geoff Norton  <gnorton@novell.com>
10420
10421         * XplatUIOSX.cs: Implement DragSize.
10422
10423 2007-11-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10424
10425         * ListView.cs: When we receive a WM_LBUTTONDOWN message in
10426         ItemControl, request the focus, as .Net does. This is needed after 
10427         Control does not request focus anymore when it receives a
10428         WM_LBUTTONDOWN.
10429
10430 2007-11-06  Jonathan Pobst  <monkey@Jpobst.com>
10431
10432         * Label.cs: Make DrawImage internal so it can be called from Theme code.
10433         Remove the DrawImage call from OnPaint.
10434         * LinkLabel.cs: Remove the DrawImage call from OnPaint.
10435         * ThemeWin32Classic.cs: Call DrawImage after we paint the background,
10436         but before we draw the text for DrawLabel and DrawLinkLabel.
10437         Fixes bug #339565.
10438
10439 2007-11-05  Andreia Gaita <avidigal@novell.com>
10440
10441         * Control.cs: Remove select call on click. Fixes #325809
10442
10443 2007-11-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10444
10445         * ListViewItem.cs: Add 2.0 Position property getter.
10446
10447 2007-11-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10448
10449         * ListView.cs: Add 2.0 BackgroundImageTiled property.
10450         Also, to make it work properly, change item's BackColor and
10451         BackgroundImageLayout as needed.
10452         * ThemeWin32Classic.cs: Don't fill any background rectangle 
10453         in ListView.ItemControl when drawing items; just let the Control
10454         base implementation fill it.
10455
10456 2007-11-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10457
10458         * ListViewGroup.cs: Adda TypeConverter attribute for this class,
10459         as well as adding a custom 'dummy' Converter, as .net does.
10460
10461 2007-11-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10462
10463         * PropertyGridView.cs: When clicking drop-down button,
10464         select an index in the listbox only if our standard values collection 
10465         has one or more items.
10466
10467 2007-11-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10468
10469         * ListViewItem.cs: Add a DefaultValue attribute to 2.0 IndentCount
10470         property.
10471
10472 2007-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
10473
10474         * PropertyGrid.cs: In PropertySort, update the toolbar buttons even if
10475         the value is not changed. This ensure a pushed button remains in that
10476         state when clicked again. When switching the value of PropertySort
10477         between Categorized and CategorizedAlphabetical, do not update the
10478         grid items and do not fire a PropertyChangedEvent. When clicking the
10479         sorting buttons, do not modify the PropertySort value when switching
10480         between Categorized and CategorizedAlphabetical but only update the
10481         button state.
10482
10483 2007-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
10484
10485         * Label.cs: Make AutoEllipsis internal on 1.0 profile. Code
10486         formatting.
10487         * PropertyGrid.cs: Also put Categorized button in pushed state when
10488         PropertySort is CategorizedAlphabetical. Set AutoEllipsis to true
10489         for help description label.
10490
10491 2007-11-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10492
10493         * ListView.cs: When calculating the biggest item for a given column,
10494         take into account 2.0 LIstViewItem.IndentCount, since it directly affects
10495         the item's width.
10496
10497 2007-11-03  Gert Driesen  <drieseng@users.sourceforge.net>
10498
10499         * PropertyGrid.cs: Fixed default value for PropertySort. Allow invalid
10500         value for PropertySort on 1.0 profile. PropertySortChanged event
10501         should only be fired on 2.0 profile. Fixed NullReferenceException
10502         in UpdateSortLayout when PropertyGrid contains no items.
10503
10504 2007-11-02  Jonathan Pobst  <monkey@jpobst.com>
10505
10506         * MessageBox.cs: Patch from George to implement MessageBoxDefaultButton.
10507         [Fixes bug #338554]
10508
10509 2007-11-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10510
10511         * ListViewItem.cs: Implement 2.0 IndentCount property.
10512
10513 2007-11-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10514
10515         * X11Dnd.cs: When sending status in a dnd operation, compare current
10516         effect with the 'allowed' field instead of 'drag_data.Allowed', since
10517         the later is only created when a Winforms application is both the
10518         source and the target, but not when we are the target only.
10519         Fixes part of #324251.
10520
10521 2007-11-01  Geoff Norton  <gnorton@novell.com>
10522
10523         * XplatUI*.cs: Add GetPreviousWindow utility method to return windows in
10524         order of Z-Order.
10525         * Hwnd.cs: Add initial implementation of GetClippingRectangles to clip sibling 
10526         children out of the drawing view on mac.
10527         * XplatUIOSX.cs: Code cleanup.  Handle more window grab cases.  Fix SetParent
10528         to handle the orphan and invisible case (1/2 fixes TabStrip drawing in FormsTest)
10529         
10530 2007-11-01  Jonathan Pobst  <monkey@jpobst.com>
10531
10532         * ToolStrip.cs: Don't process MouseUp for a ToolStripControlHost, clicking
10533         on the non-hosted-control part of it shouldn't do anything.
10534         Fixes part of bug #327498.
10535
10536 2007-11-01  Andreia Gaita <avidigal@novell.com>
10537
10538         * WebBrowserBase.cs: revert previous change, resize can be called anytime
10539
10540 2007-11-01  Jonathan Pobst  <monkey@jpobst.com>
10541
10542         * Application.cs: When a toolstrip has the keyboard input loop, let messages
10543         it does not use flow through to controls that are hosted in menus.
10544         Same with mouse clicks.
10545         * Form.cs: Don't close all menus on click if the click is on a
10546         control hosted in a menu.
10547         Fixes part of bug #327498, and part of bug #325969.
10548
10549 2007-10-31  Andreia Gaita <avidigal@novell.com>
10550
10551         * WebBrowserBase.cs: Only call resize on gluezilla when it is active
10552
10553 2007-10-31  Jonathan Pobst  <monkey@jpobst.com>
10554
10555         * TextBoxBase.cs: Use int.MaxValue for MaxLength instead of magic number.
10556         Addresses an issue raised in bug #336218.
10557
10558 2007-10-30  Jonathan Pobst  <monkey@jpobst.com>
10559
10560         * Form.cs: Patch from George that moves the conversion of ClientSize->Size
10561         for PreferredSize from OnLayout to PreferredSize.  Fixes bug #325242.
10562
10563 2007-10-30  Andreia Gaita <avidigal@novell.com>
10564
10565         * ContainerControl.cs: Check if the active control is a
10566         child of a removed control and update active_control accordingly.
10567         Fixes #329718
10568
10569 2007-10-29  Jonathan Pobst  <monkey@jpobst.com>
10570
10571         * DateTimePicker.cs: Throw ArgEx if the Value is set outside the MinDate
10572         or the MaxDate.  Fixed bug #337693.
10573
10574 2007-10-29  Jonathan Pobst  <monkey@jpobst.com>
10575
10576         * XplatUIWin32.cs: Always call SetWindowPos with SWP_FRAMECHANGED flag
10577         after calling SetWindowLong for a form, to force an immediate NC refresh.
10578         Fixes first part of bug #325150.
10579
10580 2007-10-29  Jonathan Pobst  <monkey@jpobst.com>
10581
10582         * ComboBox.cs: Don't try to resize the listbox when we are DropDownStyle
10583         simple.  Fixes the last part of bug #322668.
10584
10585 2007-10-29  Jonathan Pobst  <monkey@jpobst.com>
10586
10587         * MessageBox.cs: If the owner is TopMost, then the MessageBox form
10588         needs to be TopMost as well, or else the MessageBox is under the form.
10589         Patch by George fixes bug #325300.
10590
10591 2007-10-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10592
10593         * X11Dnd.cs: When starting a new drag operation, reset the static
10594         'dropped' field to false (previously the implementation didn't reset
10595         it and got confused after the first drag).
10596         Fixes #325071.
10597
10598 2007-10-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10599
10600         * PropertyGrid.cs: When PropertySort changes, re-organize the grid
10601         items instead of re-creating them all. For this purpose we now cache
10602         both CategoryGridEntry items and the GridEntries for the main object's
10603         properties.
10604         * GridItem.cs: Make SetParent method abstract.
10605         * GridEntry.cs: Override the SetParent method (already there, but now
10606         we override it).
10607         Fixes #324866.
10608
10609 2007-10-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10610
10611         * PropertyGridView.cs: Set the plus/minus bounds of a grid item
10612         depending on its depth (as .Net does). Update the needed values in
10613         MouseDown handler. Also draw the plus/minus rect after the label,
10614         so we don't draw on top of it.
10615
10616 2007-10-24  Everaldo Canuto  <ecanuto@novell.com>
10617
10618         * MenuAPI.cs: Return true as default in ProcessKeys to prevent keys to be
10619         processed by forms or controls when menu is active. [Fixes #333548]
10620
10621 2007-10-24  Jonathan Pobst  <monkey@jpobst.com>
10622
10623         * ToolStripItem.cs: Don't focus a ToolStripControlHost on Select of the
10624         parent doesn't have focus.  This was causing ToolStripTextBoxes to take
10625         focus on mouse over.
10626
10627 2007-10-24  Jonathan Pobst  <monkey@jpobst.com>
10628
10629         * TextControl.cs: Code cleaning, simplifying.
10630
10631 2007-10-24  Geoff Norton  <gnorton@novell.com>
10632
10633         * XplatUIOSX.cs: Route mouse events to the grab hwnd on mouse down as well.
10634         * XplatUIStructs.cs: Fix the ToString method of POINT and MSG.
10635
10636 2007-10-24  Jonathan Pobst  <monkey@jpobst.com>
10637
10638         * TextBoxBase.cs: If the user sets maxlength to 0, it should mean
10639         the cap is maxvalue, not actually 0.  [Fixes bug #336218]
10640
10641 2007-10-24  Andreia Gaita <avidigal@novell.com>
10642
10643         * SendKeys.cs: apply jpobst's patch to bug #332409
10644
10645 2007-10-23  Andreia Gaita <avidigal@novell.com>
10646
10647         * TextBoxTextRenderer.cs: Lower bounds max size to Int16.MaxValue, the 
10648         Windows 2000 gdi DrawText call doesn't draw if it's higher than that
10649         for some reason
10650
10651 2007-10-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10652
10653         * PropertyGridView.cs: If a property has an UIEditor available,
10654         make the drop-down/editor button available only if the property
10655         is _not_ read only.
10656
10657 2007-10-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10658
10659         * PropertyGridView.cs: Don't make the grid item textbox 
10660         editable when a drop-down control is available, but 
10661         CanConvertFrom (typeof (string)) is false or GetStandardValuesExclusive () is
10662         true. The same bur the color of the grid item value's label.
10663
10664 2007-10-22  Geoff Norton  <gnorton@novell.com>
10665
10666         * OSXStructs.cs: Add the needed constants for keyboard modifiers.
10667         * OSXKeyboard.cs: Initial support for keyboard and limited modifiers.
10668         * XplatUIOSX.cs: New reversible frame support.  Wire in the new keyboard
10669         driver.  Padd the bottom of all real windows so the resize thumb doesn't
10670         obscure scroll/status bars.
10671
10672 2007-10-22  Jonathan Pobst  <monkey@jpobst.com>
10673
10674         * WindowsFormsSection.cs: Implement.
10675
10676 2007-10-22  Everaldo Canuto  <ecanuto@novell.com>
10677
10678         * MdiClient.cs: Maximize new active mdi child when a maximized child is 
10679         closed see #325434 patch.
10680
10681 2007-10-22  Everaldo Canuto  <ecanuto@novell.com>
10682
10683         * MdiClient.cs: Fix remaining issues from layout vertical and horizontal,
10684         see #325434 patch.
10685
10686 2007-10-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10687
10688         * PropertyGridView.cs: When showing the textbox for a grid item,
10689         have two local variables to store the read-only and non-editable
10690         status of a grid item (we were previously using just one variable
10691         to do this, when actually they are slightly different).
10692         Fixes part of #325023.
10693
10694 2007-10-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10695
10696         * PropertyGridView.cs: When showing a drop-down list, try to get the
10697         values using TypeConverter.ConvertTo (to convert to a string). Fixes
10698         part of #325023.
10699
10700 2007-10-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10701
10702         * PropertyGrid.cs: When updating a property and populating sub grid
10703         items, remove the previous ones, and invalidate the specific area.
10704         * PropertyGridView.cs: A new InvalidateBelowGridItem to invalidate the
10705         area behind a grid item.
10706         * GridItemCollection.cs: Add an internal Clear method, to allow us to
10707         clean the items if needed (specially for controls implementing 
10708         ICustomTypeDescriptor and returning a variable number of properties).
10709         Fixes #324865.
10710
10711 2007-10-19  Jonathan Pobst  <monkey@jpobst.com>
10712
10713         * TextControl.cs: Clean up and document the Insert function.
10714
10715 2007-10-17  Jonathan Pobst  <monkey@jpobst.com>
10716
10717         * TextControl.cs: Make sure we know our start point for updating the view
10718         in ReplaceSelection.  Fixes an issue where pasting multiline text wouldn't
10719         update the view.
10720
10721 2007-10-17  Jonathan Pobst  <monkey@jpobst.com>
10722
10723         * ListView: Couple of corcompare fixes.
10724
10725 2007-10-17  Geoff Norton  <gnorton@novell.com>
10726
10727         * XplatUIOSX.cs: Implement support for window icons in the dock.  Set
10728         the title caption of real window.
10729
10730 2007-10-17  Jonathan Pobst  <monkey@jpobst.com>
10731
10732         * ErrorProvider.cs: Add the error provider's internal window to a 
10733         containercontrol when the parent changes.  [Fixes bug #329714]
10734
10735 2007-10-17  Geoff Norton  <gnorton@novell.com>
10736
10737         * XplatUIOSX.cs: Implement ScrollWindow.  Properly create TOOLWINDOWs.
10738         When we make a new window; restore the old active window - fixes dialogs.
10739
10740 2007-10-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10741
10742         * PropertyGridView.cs: Look for RefreshPropertiesAttribute
10743         when modifying a property, and if found then invalidate as
10744         requested.
10745         Fixes part of #324865.
10746
10747 2007-10-17  Geoff Norton  <gnorton@novell.com>
10748
10749         * XplatUIOSX.cs: Re-enable the native driver on the Mac.  This is still
10750         highly experimental.  Fixed coordinate translation.  Fixed window locations.
10751         Initial support for clipping. Implemented NC areas and menus.  Support for
10752         launching from command line from Will Johansson (wjohansson@atacomm.com).
10753         * OSXStructs.cs: Add ProcessSerialNumer (Patch from Will Johansson
10754         wjohansson@atacomm.com)
10755         * Hwnd.cs: Add some internal structures for tracking Mac cursors.
10756         Hwnds now track the existence of all of their children for Mac clipping.
10757     * XplatUI.cs: Re-enabled the native driver on the Mac.
10758
10759 2007-10-17  Jonathan Pobst  <monkey@jpobst.com>
10760
10761         * Line.cs: Move the InsertString function to here.
10762         * TextControl.cs: Cleanup some duplicate code, move some InsertString
10763         functionality to Line.
10764
10765 2007-10-17  Geoff Norton  <gnorton@novell.com>
10766
10767         * ComboBox.cs: Destroy the popup after hiding it.  Fixes #322582
10768
10769 2007-10-16  Gert Driesen  <drieseng@users.sourceforge.net>
10770
10771         * ButtonBase.cs: Fixed IsDefault to use assigned value instead of
10772         always setting value to true.
10773         * Form.cs: When changing AcceptButton, notify new and original button.
10774
10775 2007-10-16  Jonathan Pobst  <monkey@jpobst.com>
10776
10777         * Form.cs: Guard against an NRE when the user sets the AcceptButton to
10778         a custom control that implements IButtonControl instead of an actual
10779         button.  [Fixes bug #334244]
10780
10781 2007-10-15  Everaldo Canuto  <ecanuto@novell.com>
10782
10783         * Form.cs: Change SelectActiveControl to internal, we need to call it in
10784         MdiWindowManager.
10785         
10786         * MdiWindowManager.cs: In RaiseActivated call SelectActiveControl to select
10787         active control when activate a new mdi window.
10788         
10789         [Fixes bug #330495]
10790
10791 2007-10-15  Everaldo Canuto  <ecanuto@novell.com>
10792
10793         * ComboBox.cs: Dont implicit add listbox_ctrl on OnHandleCreated because it
10794         is already added.
10795         [Fixes bug #333617]
10796
10797 2007-10-15  Jonathan Pobst  <monkey@jpobst.com>
10798
10799         * TextControl.cs: When SuspendRecalc is first called, reset the recalc_start
10800         to MaxValue and recalc_end to MinValue.  Currently, recalc_start is always 1,
10801         so we always recalculate the whole document instead of just the new part.
10802         [Fixes bug #325082]
10803
10804 2007-10-15  Jonathan Pobst  <monkey@jpobst.com>
10805
10806         * LineTag.cs: Fix a case where the GetCharIndex would not return 0
10807         when the mouse was to the left of the first character in the line.
10808
10809 2007-10-15  Jonathan Pobst  <monkey@jpobst.com>
10810
10811         * TextBox.cs, TextBoxBase.cs: When setting the document's password
10812         character, use the property instead of the variable so that the
10813         UseSystemPasswordChar property is taken into account.
10814         [Fixes bug #333748]
10815
10816 2007-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10817
10818         * FolderBrowserDialog.cs: When a node is right clicked and the "New
10819         folder" contex menu appears, actually add the new folder to it, even
10820         if the node is not currently selected. Still use SelectedNode in case 
10821         there wasn't found a node under the pointer.
10822         Fixes #325452.
10823
10824 2007-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10825
10826         * ListViewItem.cs: When retrieving the focused state, the index check
10827         should be done only when ListView is in virtualmode, as it is an
10828         expensive check for normal mode.
10829
10830 2007-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10831
10832         * ListViewItem.cs: Make the focus state information be stored
10833         in the ListView, not in the items. This is done to match the MS
10834         behaviour for items that are not yet part of a ListView control;
10835         besides that, since just one item can be focused at the same time,
10836         we save a little space in our items.
10837         Fixes part of #331643.
10838
10839 2007-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
10840
10841         * ComboBox.cs: When focus is lost, deselect the text. When setting
10842         text of control, select all text. Do not hide selection when control
10843         does not have focus. Fixes bug #333663.
10844
10845 2007-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
10846
10847         * TextBoxBase.cs: On 2.0 profile, throw ArgumentOutOFRangeException
10848         instead of ArgumentException when SelectionLength is set to negative
10849         value. Added same check to SelectionStart. Code formatting.
10850
10851 2007-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
10852
10853         * TextBoxBase.cs: Invalidate selection before changing SelectionLength
10854         or SelectionStart. Code formatting.
10855
10856 2007-10-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10857
10858         * TreeView.cs: drag_begin_x and drag_begin_y are now set to -1,
10859         indicating that there was not a previous drag-and-drop operation going
10860         on.
10861         Fixes part of #325071.
10862
10863 2007-10-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10864
10865         * X11Dnd.cs: When DragEventArgs.Effect is set to a value not part of
10866         AllowedEffect, don't let the drop operation happen. 
10867         Fixes #32580.
10868
10869 2007-10-12  Jonathan Pobst  <monkey@jpobst.com>
10870
10871         * TextRenderer.cs: Use GDI on Windows in both the 1.1 and 2.0 profiles.
10872
10873 2007-10-12  Jonathan Pobst  <monkey@jpobst.com>
10874
10875         * Line.cs, LineTag.cs: Guard against an exception when Document.Clear
10876         is called.
10877
10878 2007-10-12  Jonathan Pobst  <monkey@jpobst.com>
10879
10880         * Line.cs: Add a method that finds the tag that contains an x-coord.
10881         * LineTag.cs: Add a method that finds the character at an x-coord using
10882         a binary search, the old way was a linear search.
10883         * TextControl.cs: Change FindCursor to use the above new methods.
10884
10885 2007-10-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10886
10887         * DragEventArgs.cs: Allow Effect to have a non allowed value (a
10888         value different than AllowedEffect). This should be possible to
10889         indicate that dragging is not possible in some control/area.
10890
10891 2007-10-11  Jonathan Pobst  <monkey@jpobst.com>
10892
10893         * LineTag.cs: Encapsulate all variables with properties.  Calculate ascent/
10894         descent internally when font changes instead of outside code being responsible
10895         for setting it.
10896         * Line.cs, RichTextBox.cs, TextBoxBase.cs, TextControl.cs: Use Tag properties
10897         instead of accessing internal variables.
10898
10899 2007-10-09  Everaldo Canuto  <ecanuto@novell.com>
10900
10901         * MdiClient.cs: Always call ArrangeIconicWindows before any arrangement and
10902         remove special treatment for ArrangeIcons since it is already arranged.
10903
10904 2007-10-09  Jonathan Pobst  <monkey@jpobst.com>
10905
10906         * TextBoxTextRenderer.cs: Draw takes a Color now instead of a Brush, as
10907         the Win32 backend uses Color.
10908         * Line.cs, LineTag.cs, RichTextBox.cs, TextBoxBase.cs, TextControl.cs:
10909         Refactor to store a Color instead of a Brush for Color.
10910
10911 2007-10-09  Jonathan Pobst  <monkey@jpobst.com>
10912
10913         * Line.cs, LineTag.cs: Override GetHashCode to make a compiler warning go
10914         away.  I didn't realize I needed this when I refactored these earlier.
10915
10916 2007-10-09  Jonathan Pobst  <monkey@jpobst.com>
10917
10918         * LineTag.cs, RichTextBox.cs, TextBoxBase.cs, TextControl.cs: Refactor to
10919         store a Color structure and use the ResPool for back color instead of
10920         holding onto brushes.
10921
10922 2007-10-09  Jonathan Pobst  <monkey@jpobst.com>
10923
10924         * TextControl.cs: Fix how we calculate the end of the tag we are drawing.
10925         [Fixes bug #325592]
10926
10927 2007-10-08  Jonathan Pobst  <monkey@jpobst.com>
10928
10929         * MonthCalendar.cs: When ShowWeekNumbers is changed, force the calendar
10930         to recalculate its size.  Fixes a part of bug #331052.
10931
10932 2007-10-08  Jonathan Pobst  <monkey@jpobst.com>
10933
10934         * NotifyIcon.cs: Set the correct mouse button when handling right mouse
10935         button.  Fixes a part of bug #331052.
10936
10937 2007-10-08  Jonathan Pobst  <monkey@jpobst.com>
10938
10939         * Form.cs: Trim NewLine before setting XPlatUI.SetText, and when setting
10940         the CreateParams.
10941         * ThemeWin32Classic.cs: Trim NewLine before drawing MDI children window
10942         decorations.
10943         [Fixes bug #330986]
10944
10945 2007-10-08  Jonathan Pobst  <monkey@jpobst.com>
10946
10947         * TextBoxTextRenderer.cs: Don't make this a static class, as static
10948         doesn't exist in 1.1.  (Thanks jb!)
10949
10950 2007-10-08  Jonathan Pobst  <monkey@jpobst.com>
10951
10952         * TextBoxTextRenderer.cs: Abstract text measuring and drawing to this
10953         class to allow us to use different backends on different platforms.
10954         Linux uses the current [Draw|Measure]String backend.  Windows uses
10955         the TextRenderer.[Draw|Measure]Text backend, which uses GDI instead
10956         of GDI+.  This leads to better looking text and more accurate measurements
10957         on Windows, fixing many of the reported issues.
10958         * Line.cs, LineTag.cs: Update to use TextBoxTextRenderer.
10959
10960 2007-10-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10961
10962         * FolderBrowserDialog.cs: When running on Windows,
10963         try to detect paths such "C:" and add Path.DirectorySeparatorChar,
10964         since we must match both "C:" and "C:\" forms. A little hackish, but
10965         works.
10966         Fixes #325247.
10967
10968 2007-10-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10969
10970         * ListView.cs: When calling EndEdit (after editing an item),
10971         create a new instance of LabelEditEventArgs to keep clean the fields
10972         in case we get a new call to BeginEdit; also do Application.DoEvents
10973         to have focus in synch. This is a fix similar to TreeView's #325244.
10974
10975 2007-10-07  Andreia Gaita <avidigal@novell.com>
10976
10977         * HtmlDocument.cs, HtmlElement.cs, WebBrowser.cs: Added dom support
10978         * WebBrowserBase.cs: Added dialog support, calling the
10979           WebBrowserDialogs classes for each specific dialog type.
10980
10981 2007-10-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10982
10983         * ListView.cs: When the last item is focused and is removed,
10984         move the focus to the previous item (in Items order). This is what MS
10985         does.
10986         Fixes #330415.
10987
10988 2007-10-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10989
10990         * ListView.cs: In ListViewItemCollection, make Remove call RemoveAt,
10991         instead of the opposite (RemoveAt call Remove). This is a better
10992         approach since we don't need to to a pair of traversals when using
10993         RemoveAt.
10994
10995 2006-10-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10996
10997         * TreeView.cs: When Keys.Left is pressed, before trying to Collapse
10998         check that the node actually has nodes, and if not, move to the
10999         parent node instead. 
11000         Fixes #325265.
11001
11002 2006-10-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11003
11004         * TreeView.cs: Move the previous change to the general case (to
11005         call Application.DoEvents in cases where the method was called by
11006         different places).
11007
11008 2007_10-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11009
11010         * TreeView.cs: When calling EndEdit and we need to hide the textbox,
11011         call Application.DoEvents. This is neccessary when we get a call to
11012         BeginEdit from an AfterLabelEdit handler, because the focus always
11013         goes to the TreeView, even if we try to give it to our
11014         LabelEditTextBox. The call do Application.DoEvents seems to
11015         synchronize the focus, basically.
11016         Fixes #325244.
11017
11018 2007-10-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11019
11020         * TreeView.cs: When AfterLabelEdit event is fired, TreeNode.IsEditing
11021         should be false. This also removes some nasty recursive paths. Fixes
11022         part of #325244.
11023
11024 2007-10-04  Everaldo Canuto  <ecanuto@novell.com>
11025
11026         * MdiClient.cs: When cascade (layout) mdi window that is maximized, set the
11027         state to normal. Also resize window when cascading. Fixes #325433. 
11028
11029 2007-10-04  Jonathan Pobst  <monkey@jpobst.com>
11030
11031         * RichTextBox.cs: When SelectionColor is set to Color.Empty, use
11032         DefaultForeColor, as drawing empty colored lines isn't very useful.
11033         [Fixes the not drawn lines part of bug #324358]
11034
11035 2007-10-04  Jonathan Pobst  <monkey@jpobst.com>
11036
11037         * TextControl.cs: Move Line and LineTag classes into separate files to
11038         make things easier to find.
11039         * Line.cs, LineTag.cs: Bring coding standards up to Mono's guidelines.
11040         * RichTextBox.cs: Capitalize LineTag.Length property access.
11041         - This is purely an organizational/formatting change, no logic changed. -
11042
11043 2007-10-03  Everaldo Canuto  <ecanuto@novell.com>
11044
11045         * ThemeWin32Classic.cs: Do not show focus rectangle in radio buttons when
11046         text is empty.
11047
11048 2007-10-03  Everaldo Canuto  <ecanuto@novell.com>
11049
11050         * ThemeWin32Classic.cs: Do not show focus rectangle in checkboxes when
11051         text is empty.
11052
11053 2007-10-03  Everaldo Canuto  <ecanuto@novell.com>
11054
11055         * ComboBox.cs: On contructor use backgound_color instead of BackColor to
11056         prevent calling of OnBackColorChanged. Fixes #325321.
11057
11058 2007-10-03  Everaldo Canuto  <ecanuto@novell.com>
11059
11060         * TextBox.cs: When check enabled uses Enabled property instead of is_enabled
11061         because control can be disabled because owner is disabled.
11062
11063 2007-10-02  Jonathan Pobst  <monkey@jpobst.com>
11064
11065         * ComboBox.cs: For the 1.1 profile, the default SelectedText is
11066         string.Empty, test failed from previous change.
11067
11068 2007-10-02  Jonathan Pobst  <monkey@jpobst.com>
11069
11070         * TextBoxBase.cs: For the 1.1 profile, the default SelectedText
11071         is null, not String.Empty.  See bug #323038.
11072
11073 2007-10-01  Jonathan Pobst  <monkey@jpobst.com>
11074
11075         * TextControl.cs: Change the margins to match MS a little better.
11076         Still not perfect for X11 due to some DrawString differences, but
11077         is still an improvement over the old stuff.
11078         Partially fixes #324467.
11079
11080 2007-09-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11081
11082         * FolderBrowserDialog.cs: When using MyComputer as 
11083         RootFolder, let absolute paths be considered as valid ones. Also, use
11084         Path.DirectorySeparatorChar instead of Path.AltDirectorySeparatorChar,
11085         for Windows compatibility.
11086         Partially fixes #325247.
11087
11088 2007-09-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11089
11090         * FolderBrowserDialog.cs: Fix the recursive FindPathInNodes method.
11091         Also remove the stack.Count > 0 check in FBTreeView.SetSelectedNode
11092         method, since it causes the dialog to not select folders directly
11093         under the root path (when setting SelectedPath property).
11094
11095 2007-09-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11096
11097         * TreeNode.cs: When calling Expand/Collapse and need to call 
11098         ExpandBelow/CollapseBelow respectively, take into account
11099         partially visible nodes (previously Expanding/Collapsing
11100         a partially visible node in the bottom was not updating its +- sign).
11101
11102 2007-09-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11103
11104         * TreeView.cs: When calling Expand on a TreeNode, and we need to
11105         expand nodes below (ExpandBelow), scroll the entire Viewport
11106         area if the node is above it and not visible (instead of scrolling
11107         the area from node's Bottom, which applies only when the node is
11108         visible).
11109         Fixes #325266.
11110
11111 2007-09-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11112
11113         * TreeView.cs: When calling ExpandAll, set SelectedNode to the top
11114         node in the bottom area (as .Net does). This is done to preserve the
11115         scroll position when ExpandAll is called before handle is created for
11116         the 1.1 profile (bottom area, as opposed to top area in 2.0).
11117         Fixes #324103.
11118
11119 2007-09-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11120
11121         * TreeView.cs: When calling ExpandAll, don't move the scroll to the 
11122         bottom area if we are in fact not using the vertical scroll bar.
11123         Fixes #324824.
11124
11125 2007-09-27  Jonathan Pobst  <monkey@jpobst.com>
11126
11127         * Control.cs: Comment out a double buffering optimization that doesn't
11128         take into account invalidates created in OnPaint, causing the control
11129         to never be redrawn.  It would take quite a bit of work to work around
11130         this, but I left it commented with an explanation for later possible
11131         optimization.
11132         [Fixes bug #328681]
11133
11134 2007-09-27  Jonathan Pobst  <monkey@jpobst.com>
11135
11136         * Control.cs: Ask parent to perform a layout if control is AutoSize and
11137         the text changes.
11138         * RadioButton.cs: Implement GetPreferredSizeCore.
11139         [Fixes bug #328672]
11140
11141 2007-09-26  Jonathan Pobst  <monkey@jpobst.com>
11142
11143         * RichTextBox.cs, TextBoxBase.cs, WindowsFormsSynchronizationContext.cs:
11144         corcompare stuffs.
11145
11146 2007-09-26  Jonathan Pobst  <monkey@jpobst.com>
11147
11148         * Application.cs: Move the sync context stuff to Run instead of RunLoop
11149         so that it doesn't get uninstalled on modal forms.
11150         * Control.cs: Install a sync context when a control is created.
11151         * WindowsFormsSyncronizationContext.cs: Create a private static control
11152         to invoke on.  This is easier than trying to find a created control we
11153         can use.
11154         [Fixes bug #327608]
11155
11156 2007-09-25  Jonathan Pobst  <monkey@jpobst.com>
11157
11158         * Application.cs: Install a WindowsFormsSynchronizationContext in the
11159         run loop, and uninstall it when done.
11160         * WindowsFormsSynchronizationContext.cs: Implement.
11161         [Fixes the common case in bug #327608]
11162
11163 2007-09-23  Gert Driesen  <drieseng@users.sourceforge.net>
11164
11165         * DataGridViewCellCollection.cs: Added argument checks for indexers.
11166         Use case-insensitive lookup of column name in indexer. Code
11167         formatting.
11168
11169 2007-09-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11170
11171         * TreeNode.cs: When collapsing or expanding a node, check whether its
11172         change will affect the visible area (we were previously doing a
11173         IsVisible check, but that check is not enough since children nodes
11174         could be still visible). Fixes part of #325266.
11175
11176 2007-09-21  Jonathan Pobst  <monkey@jpobst.com>
11177
11178         * TreeView.cs: Always select the first node when the TreeView gets
11179         focus if there is no currently selected node.
11180         [Fixes bug #324279]
11181
11182 2007-09-21  Jonathan Pobst  <monkey@jpobst.com>
11183
11184         * TreeView.cs: Do not raise BeforeSelect or AfterSelect when the
11185         node being selected is null.
11186         [Patch from Yves Bastide fixes bug #326858]
11187
11188 2007-09-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11189
11190         * TreeNode.cs: Add an internal ArePreviousNodesExpanded, to know
11191         whether all the parent nodes are expanded.
11192         * TreeNodeCollection.cs: When adding a new node an calling SetupNode,
11193         call RecalculateVisibleOrder if all previous nodes are expanded.
11194         Before that we were doing a IsVisible check, but sometimes the node
11195         is not in the visible area, but _should_already be ready, because of
11196         all previous nodes are expanded. Fixes #325259.
11197
11198 2007-09-20  Jonathan Pobst  <monkey@jpobst.com>
11199
11200         * ToolStripSplitButton.cs: Call the ButtonClick event if the button
11201         portion of the item is clicked.
11202
11203 2007-09-20  Jonathan Pobst  <monkey@jpobst.com>
11204
11205         * TextControl.cs: Do not tell the system to move the cursor if the
11206         textbox isn't focused.  Fixes part of bug #322668.
11207
11208 2007-09-20  Jonathan Pobst  <monkey@jpobst.com>
11209
11210         * ComboBox.cs: When there are no items, do not show the dropdown if
11211         the down arrow is clicked.  Fixes part of bug #322668.
11212
11213 2007-09-20  Jonathan Pobst  <monkey@jpobst.com>
11214
11215         * ToolStripComboBox.cs: Manually set the size of this control in the
11216         constructor, as it doesn't seem to be the same as DefaultSize.
11217         Fixes a failing monobuild test.
11218
11219 2007-09-19  Jonathan Pobst  <monkey@jpobst.com>
11220
11221         * DateTimePicker.cs: If the user sets MinDate to DateTime.MinValue,
11222         change it to DateTimePicker.MinDateTime.  [Fixes bug #326609]
11223
11224 2007-09-19  Jonathan Pobst  <monkey@jpobst.com>
11225
11226         * Theme.cs: FileDialogs should be using DesktopDirectory instead of
11227         Desktop.  This lets it work for people who have moved their desktops
11228         from the default location on windows.  For people who have not, both
11229         values are the same, so it shouldn't hurt anything.  [Fixes bug #325270]
11230
11231 2007-09-18  Jonathan Pobst  <monkey@jpobst.com>
11232
11233         * ToolStripControlHostTest.cs: DefaultSize is based off hosted control,
11234         but when the base constructor sets this, the control is null.  Set it
11235         again in the constructor.  Fixes a failing monobuild test.
11236
11237 2007-09-18  Jonathan Pobst  <monkey@jpobst.com>
11238
11239         * ToolStripDropDownItem.cs: Make sure Click and DropDownOpened events
11240         get called.
11241         * ToolStripSplitButton.cs: Make sure MouseDown and MouseUp events get
11242         called.
11243
11244 2007-09-18  Jonathan Pobst  <monkey@jpobst.com>
11245
11246         * ToolStrip.cs: Don't show tooltips for ToolStripTextBoxes, they
11247         will handle it themselves.
11248         * ToolStripItem.cs: When deciding what the text of a tooltip should
11249         be, use the Text property instead of the text field.
11250         * ToolStripTextBox.cs: Handle tooltips.
11251         [Fixes bugs #325417 and #325973]
11252
11253 2007-09-18  Jonathan Pobst  <monkey@jpobst.com>
11254
11255         * ToolStripDropDownButton.cs: Only drop down overflow menu with a
11256         left click.  Fixes the easy part of bug #325969.
11257
11258 2007-09-18  Jonathan Pobst  <monkey@jpobst.com>
11259
11260         * ToolStrip.cs: Set AutoSizeMode back to GrowAndShrink to refix
11261         bug #325406, but set a minimum for StatusStrip to 22 to keep
11262         bug #325390 fixed.  I think this minimum would have been figured
11263         up automatically if the grip was actually a ToolStripItem, but it
11264         currently is not.
11265
11266 2007-09-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11267
11268         * ListView.cs: max_label_wrapping is now 30 pixels instead of 38,
11269         as this is apparently the actual value used by .Net. Also apply
11270         ItemPadding in Details view only, and decrease the general width padding,
11271         to have only the needed. This should fix #324340 in Windows too.
11272
11273 2007-09-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11274
11275         * ListViewItem.cs: Don't Invalidate item if parent is inside
11276         a BeginUpdate/EndUpdate block. This prevents to have differences
11277         between the ListView and items state, as well as avoid some exceptions
11278         there.
11279         * ListView.cs: Make 'updating' field internal.
11280
11281 2007-09-17  Jonathan Pobst  <monkey@jpobst.com>
11282
11283         * ToolStripControlHost.cs: Realign control when ControlAlign changes.
11284         * ToolStripItem.cs: Use ImageScalingSize when calculating preferred
11285         size if appropriate.
11286         Fixes reopened bug #325414.
11287
11288 2007-09-17  Jonathan Pobst  <monkey@jpobst.com>
11289
11290         * ToolStrip.cs: Set AutoSizeMode back to GrowOnly.
11291         * ToolStripItem.cs: Invalidate before and after our new autosize when
11292         text changes.
11293         Fixes reopened bug #325390.
11294
11295 2007-09-17  Jonathan Pobst  <monkey@jpobst.com>
11296
11297         * ToolStripMenuItem.cs: Make sure we invalidate when clicked so
11298         mnemonics can be drawn or undrawn correctly.  Fixes reopened bug 
11299         #325044.
11300
11301 2007-09-17  Jonathan Pobst  <monkey@jpobst.com>
11302
11303         * Control.cs: Do WM_CONTEXTMENU before OnMouseUp.  [Fixes bug #325535]
11304
11305 2007-09-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11306
11307         * ColumnHeader.cs: When drawing column text, use EllipsisCharacter
11308         instead of EllipsisWord (by equistango at gmail.com). Fixes part of
11309         #82734.
11310
11311 2007-09-14  Jonathan Pobst  <monkey@jpobst.com>
11312
11313         * ToolStrip.cs: Make ToolStrip selectable when TabStop = true.  Find an
11314         item to select when the ToolStrip is selected.
11315         * ToolStripControlHost: Realign the control when the bounds or visibility
11316         change.
11317         * ToolStripItem.cs: When selected, if it's a control host, focus the control.
11318         * ToolStripOverflow.cs: When laying out the drop down, respect the item's
11319         preferred height.
11320         * ToolStripTextBox.cs: OnPaintInternal should call base.OnPaintInternal, not
11321         base.OnPaint.  Was causing text not to be drawn.
11322
11323 2007-09-14  Jonathan Pobst  <monkey@jpobst.com>
11324
11325         * SplitterPanel.cs: Ignore attempts to set AutoSizeMode.
11326
11327 2007-09-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11328
11329         * TreeView.cs: When creating the label edit text box,
11330         set is initially to Visible = false. This is done to
11331         prevent a confusion in the layout which makes it to lose
11332         focus when shown the first time. Fixes part of #82592.
11333
11334 2007-09-13 Andreia Gaita <avidigal@novell.com>
11335
11336         * WebBrowserBase.cs: add FocusOption enumeration for finer focus control
11337
11338 2007-09-13  Jonathan Pobst  <monkey@jpobst.com>
11339
11340         * ToolStrip.cs: Take Margin into account when calculating preferred
11341         size.  Also, allow preferred size to get smaller than the explicit
11342         size.
11343         * ToolStripTextBox.cs: Don't change the GetPreferredSize implementation.
11344         First step towards fixing bug #82747.
11345
11346 2007-09-13  Jonathan Pobst  <monkey@jpobst.com>
11347
11348         * TreeView.cs: Applied patch from latency@gmx.de to not paint the
11349         full row select background over the plus/minus glyph.  Also, turn
11350         off the focus rectangle for full row select since MS doesn't seem
11351         to ever paint it.  [Fixes bug #81839]
11352
11353 2007-09-13  Jonathan Pobst  <monkey@jpobst.com>
11354
11355         * ToolStrip.cs: Don't FocusInternal if there is no selected item.
11356         This was causing keyboard opened dropdowns to lose focus.
11357         [Fixes bug #82803]
11358
11359 2007-09-13  Jonathan Pobst  <monkey@jpobst.com>
11360
11361         * Control.cs: If Rectangle.Empty is passed to Invalidate, use
11362         ClientRectangle instead.  [Fixes bug #82838]
11363
11364 2007-09-13  Jonathan Pobst  <monkey@jpobst.com>
11365
11366         * SplitContainer.cs: We can't reset Visible on every layout because
11367         someone may have set Visible = false explicitly on a SplitterPanel.
11368         Make sure when we switch orientation the SplitterDistance does not
11369         change.  Fixes two failing tests.
11370
11371 2007-09-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11372
11373         * TreeView.cs: Use MeasureTextInternal instead of MeasureText in
11374         TextRenderer, since the latter is only available in 2.0.
11375
11376 2007-09-13  Ivan N. Zlatev <contact@i-nz.net>
11377
11378         * Cursor.cs: Fix Cursor.Current to apply Cursor.Default.
11379         * SplitContainer.cs: Implement FixedPanel layouting.
11380
11381 2007-09-12  Andreia Gaita  <avidigal@novell.com>
11382
11383         * WebBrowserBase.cs: setup shutdown routine
11384
11385 2007-09-12  Andreia Gaita  <avidigal@novell.com>
11386
11387         * Application.cs: Let keyboard events that are targetted 
11388                 to non-mwf windows hosted inside mwf (as in, webbrowser),
11389                 propagate properly. Fixes keyboard handling on the webbrowser.
11390
11391 2007-09-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11392
11393         * ListView.cs: When handling MouseUp event and we are 
11394         highligting a node with the mouse right button, don't trigger
11395         Before/AfterSelecting event, since we are not actually selecting
11396         the node.
11397
11398 2007-09-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11399
11400         * TreeView.cs: When editing a node, modify the edit text box
11401         depending on the text length (as you are typing), like MS does.
11402
11403 2007-09-12  Jonathan Pobst  <monkey@jpobst.com>
11404
11405         * ToolStrip.cs: Fixup preferred size calculations for vertical toolbars. 
11406         Override GetPreferredSizeCore to perform calculations.  Remove custom
11407         autosize logic.  [Fixes bug #82739]
11408
11409 2007-09-12  Jonathan Pobst  <monkey@jpobst.com>
11410
11411         * TextBoxBase.cs: Modified should default to false.
11412
11413 2007-09-11  Jonathan Pobst  <monkey@jpobst.com>
11414
11415         * Control.cs: Update the anchoring distances even when layout is supspended.
11416         Patch provided by George fixes bug #82805.
11417
11418 2007-09-11  Jonathan Pobst  <monkey@jpobst.com>
11419
11420         * Control.cs: Provide a setter for ExplicitHeight.
11421         * TextBoxBase.cs: Now that we have the implementation for explicit heights,
11422         remove the hacks in here for requested_height.
11423         [Fixes bug #82749]
11424
11425 2007-09-11  Jonathan Pobst  <monkey@jpobst.com>
11426
11427         * ScrollBar.cs: Fix an issue reported on the lists where setting a scrollbar's
11428         Maximum to lower that its current Value caused an ArgumentException by setting
11429         the Value to the new Maximum.
11430
11431 2007-09-11  Jonathan Pobst  <monkey@jpobst.com>
11432
11433         * ThemeWin32Classic.cs: Math is hard!  Fix some math so that the TrackBar
11434         handle moves to the closest tick when it is being dragged.
11435         [Fixes bug #82751]
11436
11437 2007-09-11  Jonathan Pobst  <monkey@jpobst.com>
11438
11439         * ToolStripManager.cs: When we have added MDI buttons onto a MenuStrip, we
11440         can't let them count as real items when calculating where to merge in the
11441         user's items.  [Fixed bug #82786]
11442
11443 2007-09-10  Jonathan Pobst  <monkey@jpobst.com>
11444
11445         * ToolStripMenuItem.cs: Add a parent type check so we don't crash on people
11446         who want to add a menu item directly onto a toolstrip.
11447         [Fixes bug #82775, part II]
11448
11449 2007-09-10  Jonathan Pobst  <monkey@jpobst.com>
11450
11451         * StatusStrip.cs: Synchronize SetDisplayedItems with the ToolStrip version.
11452         * ToolStrip.cs: If a ToolStripItem set to not visible is added to a ToolStrip,
11453         don't set it to available.
11454         * ToolStripItem.cs: When Visible is changed, tell the owner to perform a layout.
11455         [Fixes bug #82727, part II]
11456
11457 2007-09-10  Jonathan Pobst  <monkey@jpobst.com>
11458
11459         * StatusStrip.cs: Change item placement to None if not visible.
11460         * ToolStripItem.cs: Invalidate when InternalVisible changes.
11461         These should have been committed to fix 82723, but I missed them.
11462
11463 2007-09-10  Jonathan Pobst  <monkey@jpobst.com>
11464
11465         * ToolStrip.cs: Make sure ItemClicked is raised before the ToolStripItem's
11466         Click, and that it is only called once.
11467         * ToolStripMenuItem.cs: Call OnClick even when there are dropdown items.
11468         * ToolStripDropDownItem.cs: Override HandleItemClick so dropdowns stay
11469         dropped down.
11470         [Fixes bug #82775]
11471
11472 2007-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11473
11474         * ColumnHeaderSample.cs: Use 5 pixels as extra height instead of 8
11475         to match .Net.
11476         * ThemeWin32Classic.cs: For the columns text, use 5 pixels as left padding
11477         instead of 8, just like above. Partially fixes #82734.
11478
11479 2007-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11480
11481         Patch by Ernesto Carrea <equistango at gmail.com>. Partially 
11482         fixes #82734.
11483
11484         * ListView.cs: Remove extra space between rows in Details view (match
11485         .Net). 
11486         * ThemeWin32Classic.cs: Header text should use ListView.Font, not
11487         the DefaultFont.
11488
11489 2007-09-08  Gert Driesen  <drieseng@users.sourceforge.net>
11490
11491         * Application.cs: Modified ProductVersion to return value of
11492         AssemblyInformationVersion if available, and fallback to assembly
11493         version. Fixes bug #82746. Code formatting.
11494         * BindingSource.cs: Remove NIE from Dispose, and mark it MonoTODO
11495         instead.
11496
11497 2007-09-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11498
11499         * Control.cs: When updating ZOrder for a child control,
11500         take into account the implicit ones (we need it in our controls
11501         using them). Fixes #82642.
11502
11503 2007-09-07  Jonathan Pobst  <monkey@jpobst.com>
11504
11505         * ToolStripItem.cs: Add support for animated images.
11506         [Fixes bug #82726]
11507
11508 2007-09-07  Jonathan Pobst  <monkey@jpobst.com>
11509
11510         * ToolStrip.cs: Make sure we aren't drawing anything that isn't 
11511         visible.  [Fixes bug #82727]
11512
11513 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
11514
11515         * ToolStripItem.cs: If AutoSize changes the size of our item, invalidate
11516         so we repaint using the new size.  [Fixes bug #82723]
11517
11518 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
11519
11520         * TreeView.cs: If ShowLines is true, we should ignore the FullRowSelect
11521         option.  [Fixes bug #81779]
11522
11523 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
11524
11525         * TreeView.cs: Override HandleClick because the StandardClick style is
11526         set to false.  According to MSDN (and testing), the click events should
11527         only be raised when the click occurs on a TreeNode.  [Fixes bug #81739]
11528
11529 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
11530
11531         * ToolStripTextBox.cs: Invalidate our textbox when it loses focus, so
11532         the border will disappear.  Fixes reopened #82653.
11533
11534 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
11535
11536         * Control.cs: If the control is autosize, and its preferred size changes
11537         when it lays out its children, tell its parent so it can be re-layed out.
11538         Fixing some of the fallout from r85433.
11539
11540 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
11541
11542         * ThemeWin32Classic.cs: Fix a NRE caused by r85427 because RadioButton
11543         and CheckBox share some code.
11544
11545 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
11546
11547         * TrackBar.cs: Only call OnScroll if we actually changed the Value of
11548         the TrackBar, not every mouse move.  [Fixed bug #82718]
11549
11550 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
11551
11552         * ThemeWin32Classic.cs: Allow a CheckBox to be rendered like a Button
11553         under 2.0 rendering.  [Fixes bug #82657]
11554
11555 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
11556
11557         * TreeView.cs: If we found a TreeNode to display a context menu, but
11558         it doesn't have one to show, let the TreeView display its menu
11559         instead.  [Fixes bug #82680]
11560
11561 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
11562
11563         * ToolStripTextBox.cs: TextBox no longer call OnPaint, we need to use
11564         OnPaintInternal instead.  Give the internal TextBox a Border property
11565         so it can draw itself more correctly.  [Fixes bug #82653]
11566
11567 2007-09-06  Zoltan Varga  <vargaz@gmail.com>
11568
11569         * HtmlHistory.cs HtmlWindow.cs HtmlWindowCollection.cs ListBindingHelper.cs WindowsFormsSection.cs WindowsFormsSynchronizationContext.cs: Stubs for missing 2.0 classes.
11570
11571 2007-09-05  Everaldo Canuto  <everaldo@simios.org>
11572
11573         * ComboBox.cs: Adjust combobox button state to reflect current state when
11574         back to enabled = true. Fixes first issue of #82654.
11575
11576 2007-09-05  Everaldo Canuto  <everaldo@simios.org>
11577
11578         * Control.cs: Fix last patch regression, prevent forms to update zorder when
11579         setting visible property.
11580
11581 2007-09-05  Everaldo Canuto  <everaldo@simios.org>
11582
11583         * Control.cs: Update zorder after control creation in SetVisibleCore, it 
11584         fix zorder for controls initially created as non visible. Fixes #82667.
11585
11586 2007-09-04  Everaldo Canuto  <everaldo@simios.org>
11587
11588         * ThemeWin32Classic.cs: Adjust checkbox light color to ControlLightLight to
11589         mimic win32 look. Fixes #82656.
11590
11591 2007-09-01  Zoltan Varga  <vargaz@gmail.com>
11592
11593         * FileDialogCustomPlace.cs FileDialogCustomPlacesCollection.cs: 
11594         Stubs for new net 3.5 classes.
11595
11596 2007-08-31  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11597
11598         * ListViewItem.cs: In ListViewItemCollection operations calculate
11599         Layout for owner as well as invalidate it. Fixes part of #82642.
11600
11601 2007-08-31  Jonathan Pobst  <monkey@jpobst.com>
11602
11603         * ToolStripItem.cs: Take Parent/Owner's Enabled state in to account
11604         when returning Enabled.  [Fixes bug #82651]
11605
11606 2007-08-30  Everaldo Canuto  <everaldo@simios.org>
11607
11608         * ToolBar.cs: Fix button size for non flat toolbars. Fixes #82368.
11609
11610 2007-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11611
11612         * ListView.cs: Put item padding info in a single place
11613         (Theme.ListViewItemPaddingWidth) to have working AutoResize on
11614         columns again.
11615         * ThemeWin32Classic.cs:
11616         * Theme.cs: Likewise.
11617
11618 2007-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11619
11620         * ListView.cs: When a ListViewSubItem instance is invalidated,
11621         invoke Invalidate on parent ListViewItem, not parent ListView.
11622         Fixes #81570.
11623
11624 2007-08-30  Jonathan Pobst  <monkey@jpobst.com>
11625
11626         * ListView.cs, ListViewItem.cs: corcompare stuffs.
11627
11628 2007-08-30  Jonathan Pobst  <monkey@jpobst.com>
11629
11630         * BindingMemberInfo.cs: Implement == and != operators.
11631
11632 2007-08-30  Jonathan Pobst  <monkey@jpobst.com>
11633
11634         * HtmlElementEventArgs.cs: Implement properties.
11635
11636 2007-08-29  Jonathan Pobst  <monkey@jpobst.com>
11637
11638         * HtmlElementErrorEventArgs.cs, HtmlElementErrorEventHandler.cs: Added.
11639
11640 2007-08-29  Jonathan Pobst  <monkey@jpobst.com>
11641
11642         * TabControl.cs: I was looking into the MonoTODO on TabPageCollection.
11643         Add (string,string,string) to implement the imagekey.  It turns out, we
11644         use the requested imagekey whereas .Net does not.  So I broke ours to match
11645         theirs.  :(
11646
11647 2007-08-29  Jonathan Pobst  <monkey@jpobst.com>
11648
11649         * Form.cs, UserControl.cs: Override ValidateChildren, AutoValidate.
11650
11651 2007-08-29  Jonathan Pobst  <monkey@jpobst.com>
11652
11653         * ContainerControl.cs: Implement ValidateChildren and new Validate overload.
11654
11655 2007-08-29  Gert Driesen  <drieseng@users.sourceforge.net>
11656
11657         * FolderBrowserDialog.cs: Set Tag of newly created node, and keep it
11658         up-to-date. Fixes bug #82618.
11659
11660 2007-08-29  Everaldo Canuto  <everaldo@simios.org>
11661
11662         * TextBoxBase.cs: Call CalculateDocument after changes Lines property to
11663         reflect document changes. Fixes #82367.
11664
11665 2007-08-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11666
11667         * ListView.cs: Add/fix some override differences between 1.1 and 2.0,
11668         as well as add new ones. This should make work the BackgroundImage
11669         property for ListView again.
11670
11671 2007-08-28  Jonathan Pobst  <monkey@jpobst.com>
11672
11673         * DataGrid.cs, DataGridViewButtonColumn.cs, DataGridViewCheckBoxColumn.cs,
11674         DataGridViewComboBoxColumn.cs, DataGridViewImageColumn.cs, DataGridViewLinkColumn.cs,
11675         DataGridViewTextBoxColumn.cs, ToolTip.cs: corcompare stuffs.
11676
11677 2007-08-28  Jonathan Pobst  <monkey@jpobst.com>
11678
11679         * Control.cs, XPlatUI.cs, XPlatUIDriver.cs, XPlatUIWin32.cs: Implement
11680         IsKeyLocked.
11681
11682 2007-08-28  Jonathan Pobst  <monkey@jpobst.com>
11683
11684         * Cursor.cs: Add HotSpot, hook into XPlatUI.GetCursorInfo.
11685         * XPlatUIWin32.cs: Implement hotspot lookup in GetCursorInfo.
11686
11687 2007-08-28  Jonathan Pobst  <monkey@jpobst.com>
11688
11689         * RadioButton.cs: Use 2.0 rendering.  Use base implementation of TextAlign.
11690         * Theme.cs, ThemeWin32Classic.cs: Implement 2.0 rendering for RadioButton.
11691
11692 2007-08-27  Ivan N. Zlatev  <contact@i-nz.net>
11693
11694         * CursorConverter.cs: Implement conversion to InstanceDescriptor.
11695
11696 2007-08-27  Ivan N. Zlatev  <contact@i-nz.net>
11697
11698         * GridEntry.cs: Implement GetService.
11699
11700 2007-08-27  Jonathan Pobst  <monkey@jpobst.com>
11701
11702         * LabelEditTextBox.cs, TreeView.cs: After hiding the textbox used
11703         for label editting, make sure we focus back on the TreeView.
11704         [Fixes bug #82590]
11705
11706 2007-08-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11707
11708         * ListView.cs: Add some 2.0 overrides.
11709
11710 2007-08-27  Everaldo Canuto  <ecanuto@novell.com>
11711
11712         * Form.cs: Uses opacity var instead of Opacity property in CreateHandle
11713         because getter dont returns right value before handle creation. Thanks 
11714         to George. Fixes #82569.  
11715
11716 2007-08-27  Everaldo Canuto  <ecanuto@novell.com>
11717
11718         * Theme.cs: Revert last patch, it causes error under win32. 
11719
11720 2007-08-27  Everaldo Canuto  <ecanuto@novell.com>
11721
11722         * Theme.cs: Uses Environment.SpecialFolder.DesktopDirectory instead of 
11723         Environment.SpecialFolder.Desktop in Places method, Desktop returns the 
11724         logical Desktop rather than the physical file system location. Fixes #82603. 
11725
11726 2007-08-26  Everaldo Canuto  <ecanuto@novell.com>
11727
11728         * MessageBox.cs: Add clipboard copy (ctrl+c) to messagebox. Thanks Andy Hume
11729         for the patch. Fixes #82568.
11730
11731 2007-08-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11732
11733         * ListView.cs: Add a pair of missing 2.0 ListViewItemCollection.Insert
11734         methods.
11735
11736 2007-08-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11737
11738         * ListViewInsertionMark.cs: New stubbed class.
11739
11740 2007-08-25  Gert Driesen  <drieseng@users.sourceforge.net>
11741
11742         * FolderBrowserDialog.cs: When adding folder, immediately create the
11743         directory with temporary name and rename the directory when editing
11744         finishes. This matches MS. Ensure the node for the new folder is 
11745         selected and LabelEdit is disabled, when editing is either finished
11746         or cancelled.
11747
11748 2007-08-25  Gert Driesen  <drieseng@users.sourceforge.net>
11749
11750         * TreeView.cs: When editing label of node, ensure node is visible.
11751
11752 2007-08-25  Ivan N. Zlatev  <contact@i-nz.net>
11753
11754         * PropertyGridView.cs: Set the value only if it has changed.
11755
11756 2007-08-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11757
11758         * ListView.cs: Some more code refactoring to add support sorting
11759         with groups (now for Details view). Remove unused code also.
11760
11761 2007-08-24  Jonathan Pobst  <monkey@jpobst.com>
11762
11763         * NodeLabelEditEventArgs.cs: EndEdit immediately when CancelEdit is called.
11764         Not a big fan of reacting immediately to a field in an EventArg, but that's
11765         the way it's done.  (This is part of the previous commit that got left out.)
11766
11767 2007-08-25  Gert Driesen  <drieseng@users.sourceforge.net>
11768
11769         * FolderBrowserDialog.cs: Removed need for separate description field.
11770         Replaced "" with string.Empty. Fixed tabindex. Ensure OK button
11771         has focus when dialog box is displayed again, regardless of what
11772         button was pressed the previous time. Set RootFolder and SelectedPath
11773         each time dialog box is displayed. This ensures the treeview is
11774         refreshed, and fixes bug #82579. Do no hide selected node in TreeView
11775         when it does not have focus. Added support for more special folders.
11776
11777 2007-08-24  Jonathan Pobst  <monkey@jpobst.com>
11778
11779         * TreeView.cs: Create a CancelEdit method.  Clone the edit_args in EndEdit
11780         before calling AfterLabelEdit.  If the user calls BeginEdit in that event,
11781         it resets the edit_args.
11782         * TreeNode.cs: Call CancelEdit if the user passes cancel = true to EndEdit.
11783         [Fixes bug #82577]
11784
11785 2007-08-24  Gert Driesen  <drieseng@users.sourceforge.net>
11786
11787         * FolderBrowserDialog.cs: Modifies form caption and text of new folder
11788         button to match MS. Provide more meaningful exception message for
11789         invalid RootFolder value. Use zero-length string when SelectedPath
11790         is set to null. Allow non-rooted paths in SelectedPath, but ignore
11791         them in FolderBrowserTreeView. Allow folders to be created in
11792         RootFolder. Fixes bug #82576.
11793
11794 2007-08-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11795
11796         * ListView.cs: Correctly compute the layout_ht (height) when using groups,
11797         since we need to take into account the group headers and the margin
11798         between them.
11799         * ListViewGroup.cs: Add a rows field to store the number of rows per
11800         group.
11801
11802 2007-08-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11803
11804         * DateTimePicker.cs: The MS' MTB has a really stupid year formatting.
11805           Anyways, let's just follow the lead.
11806
11807 2007-08-24  Jonathan Pobst  <monkey@jpobst.com>
11808
11809         * CheckBox.cs: Set the AutoSizeMode to GrowAndShrink.
11810         * Form.cs, GroupBox.cs: Don't skip Right or Bottom anchored 
11811         controls in GetPreferredSizeCore.
11812         * ThemeWin32Classic.cs: Tweak text drawing of CheckBoxes.
11813         [Fixes bug #82488]
11814
11815 2007-08-24  Jonathan Pobst  <monkey@jpobst.com>
11816
11817         * PrintDialog.cs: Need to instantiate the form variable here too.
11818
11819 2007-08-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11820
11821         * ListView.cs: Do some reorganization to support sorting in groups,
11822         by doing the layout sequentially in ListView.Items. Also add support
11823         for the Default Group, which should be available for items with no
11824         group assigned.
11825         * ListViewGroup.cs: Add support for DefaultGroup. Include new members
11826         for storing layout info also.
11827         * ListViewGroupCollection.cs: Add a DefaultGroup as part of the
11828         collection, as well as providing internal members to do a traversal
11829         including the default group (needed when doing layout/drawing).
11830         * ThemeWin32Classic.cs: When drawing group headers use internal
11831         ListViewGroupCollection members to take into account the default
11832         group.
11833
11834 2007-08-23  George Giolfan  <georgegiolfan@yahoo.com>
11835
11836         * FlowLayoutPanel.cs: Add GetPreferredSizeCore.  [Fixes bug #82537]
11837
11838 2007-08-23  Jonathan Pobst  <monkey@jpobst.com>
11839
11840         * TreeView.cs: IsInputKey: don't ask for any keys if the handle hasn't
11841         been created.  If handle is created, we want arror keys.  If we are editing
11842         a node, we want things like enter, esc, home, end, page up, page down.
11843         Allows Esc to work for FolderBrowserDialog.
11844
11845 2007-08-23  Jonathan Pobst  <monkey@jpobst.com>
11846
11847         * ColorDialog.cs, FontDialog.cs: Set the form's CancelButton so that
11848         they close when ESC is pressed.  Thanks Andy!
11849
11850 2007-08-23  Jonathan Pobst  <monkey@jpobst.com>
11851
11852         * CommonDialog.cs: Do not instantiate form, leave that for derived classes.
11853         This way we can tell if this is a CommonDialog provided with mono, or one
11854         that is being implemented outside by a developer.  If it is an external one,
11855         the developer is responsible for showing their own form.  We were showing
11856         our blank form after the developer showed his.
11857         * ColorDialog.cs, FileDialog.cs, FolderBrowserDialog.cs, FontDialog.cs,
11858         PageSetupDialog.cs: Instantiate form variable in our constructor.
11859         [Fixes bug #82531]
11860
11861 2007-08-23  Jonathan Pobst  <monkey@jpobst.com>
11862
11863         * ListBox.cs, ListView.cs, TreeView.cs: Override IsInputCharInternal
11864         and always return true.  [Fixes bug #81616]
11865
11866 2007-08-23  Jonathan Pobst  <monkey@jpobst.com>
11867
11868         * TextBoxBase.cs: Allow 2.0 AutoSize to change the height of the
11869         TextBox.  [Fixes bug #82549]
11870
11871 2007-08-23  Gert Driesen  <drieseng@users.sourceforge.net>
11872
11873         * FileDialog.cs: When Save/Open is clicked and no filename is selected
11874         or entered then do not close the dialog. Fixes bug #82539. Removed
11875         CWLs.
11876
11877 2007-08-22  Everaldo Canuto  <ecanuto@novell.com>
11878
11879         * FileDialog.cs: Create UpdateRecentFiles and move the recent files refresh
11880         code to this method. It is calling every time filter changes. This method
11881         will help to fix the bug #80887.
11882
11883 2007-08-22  Jonathan Pobst  <monkey@jpobst.com>
11884
11885         * CheckBox.cs: Implement AutoSize calculation.
11886
11887 2007-08-22  Jonathan Pobst  <monkey@jpobst.com>
11888
11889         * CheckBox.cs: Use new 2.0 rendering for 2.0.
11890         * Theme.cs: Method declarations for 2.0 rendering path.
11891         * ThemeWin32Classic.cs: 2.0 rendering implementation for CheckBox.
11892
11893 2007-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11894
11895         * ListViewGroupCollection.cs: Fix a typo of the previous patch.
11896
11897 2007-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11898
11899         * ListViewGroupCollection.cs: Implement AddRange the right way, to
11900         only call Redraw on the parent one time.
11901
11902 2007-08-21  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11903
11904         * DataGridViewRowHeaderCell.cs, DataGridViewColumnHeaderCell.cs: Implemented
11905           GetClipboardContent.
11906         * DataGridViewCell.cs: Implemented GetClipboardContent,
11907           GetEditedFormattedValue, GetFormattedValue.
11908         * DataGridView.cs: Implemented GetClipboardContent, TopLeftHeaderCell.
11909
11910 2007-08-21  Jonathan Pobst  <monkey@jpobst.com>
11911
11912         * TableLayoutStyleCollection.cs: corcompare fix.
11913
11914 2007-08-21  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11915
11916         * DataObject.cs: Implemented retrieval of convertible / not convertible
11917           objects.
11918
11919 2007-08-21  Jonathan Pobst  <monkey@jpobst.com>
11920
11921         * ToolStripItem.cs: When changing the item's text, invalidate before we resize
11922         ourselves.  This ensures the entire old bounds are repainted, in case our new
11923         size is smaller.  [Fixes bug #82518]
11924
11925 2007-08-20  Everaldo Canuto  <ecanuto@novell.com>
11926
11927         * XplatUIX11.cs: Apply patch from #81588, it makes use of PointerMotionHintMask
11928         flag to make fast handle of mouse events, without this the mouse move is
11929         handled in some manner, whether it is a mouse move or not. Fixes #81588.
11930
11931 2007-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11932
11933         * ListView.cs: When doing layout calculations don't use a ref
11934         param to keep the current item; instead use its Index value (this 
11935         is specially important when doing the layout with Groups
11936         and Items being sparse). Also don't take into account items added to
11937         the Group but not yet added to the main ListView.Items collection.
11938
11939 2007-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11940
11941         * ListViewGroupCollection.cs: Forgot to mimic an issue
11942         in the indexer (don't assign the ListView owner for new values).
11943
11944 2007-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11945
11946         * ListViewGroupCollection.cs: Make the string indexer use
11947         the int based indexer to re-use code, instead of duplicate the code.
11948         Also Redraw as needed and take into account null values.
11949
11950 2007-08-20  Jonathan Pobst  <monkey@jpobst.com>
11951
11952         * StatusStrip.cs: Make sure the item's parent gets set in SetDisplayedItems.
11953         [Fixes bug #82481]
11954
11955 2007-08-20  Jonathan Pobst  <monkey@jpobst.com>
11956
11957         * ToolStrip.cs: Add some logic to un-focus controls in ToolStripControlHosts
11958         when other buttons are clicked or navigated to.
11959
11960 2007-08-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11961
11962         * XplatUIX11.cs: Treat toolwindows as if they had no window manager, since
11963           it's XplatUIX11 that attaches them.
11964
11965 2007-08-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11966
11967         * DataGridView.cs: If a column has been added, recreate the editing row.
11968           Fixes #82226.
11969
11970 2007-08-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11971
11972         * TextControl.cs: Use Math.Max instead of Math.Min when deciding the length
11973           of the tag to draw. Makes disappearing text show up again.
11974
11975 2007-08-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
11976
11977         * StatusBar.cs: Take into account any icons when a panel has AutoSize =
11978           Contents. Fixes #82487.
11979
11980 2007-08-19  Andreia Gaita  <avidigal@novell.com>
11981
11982         * Added HtmlElement.cs, HtmlElementCollection.cs, 
11983           HtmlElementEventArgs.cs, HtmlElementEventHandler.cs
11984           
11985 2007-08-19  Andreia Gaita  <avidigal@novell.com>
11986
11987         * BindingSource.cs: Implement this, dispose and getenumerator.
11988         * DataGridViewRowCollection.cs: Move the InvalidOperationException
11989         out of AddInternal, throw it only on public Add calls. The 
11990         UsingWebBrowser sample was blowing up with this when setting the
11991         DataSource after adding DataBindings, so it's likely that .net
11992         only throws this exception when Add is called directly. 
11993         
11994         * ToolStripControlHost.cs: Return the hosted control's text
11995         property, and not the ToolStripItem one (it would always return
11996         the initial value).
11997         
11998         * HtmlDocument.cs: Implement GetElementById and All
11999         * WebBrowser.cs: Remove exception on set_DocumentStream.        
12000
12001 2007-08-19  Everaldo Canuto  <ecanuto@novell.com>
12002
12003         * Form.cs: Fix the max and min value for opacity (0~1).
12004
12005 2007-08-19  Everaldo Canuto  <ecanuto@novell.com>
12006
12007         [Fixes #80118]
12008         * DataGridTableStyle.cs: Default header font is now null, on getter it 
12009         returns datagrid font when is null. On setter permits null.
12010
12011         * DataGrid.cs:
12012         - When ResetHeaderFont set header font to null.
12013         - On EndInit set grid_style.DataGrid.
12014
12015 2007-08-19  Everaldo Canuto  <ecanuto@novell.com>
12016
12017         * TabControl.cs: Fix regression in default padding x.
12018
12019 2007-08-19  Everaldo Canuto  <ecanuto@novell.com>
12020
12021         * TabControl.cs: Fix tab page text area removing padding. Fixes #82471.
12022
12023 2007-08-19  Everaldo Canuto  <ecanuto@novell.com>
12024
12025         * TabControl.cs: Fix first tab drawing, when selected it must have x = 0
12026         not 2. Fixes #82229.
12027
12028 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
12029
12030         * TabControl.cs: Fix tab size when image height is less than text height.
12031         Partially fixes #81837.
12032
12033 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
12034
12035         * Form.cs: Add WS_EX_CONTROLPARENT to forms to make it selectable using 
12036         "alt + tab". It works only for Win32, for X11 theres no way to remove window
12037         from taskbar and keep it on "alt_tab". Fixes #81722.
12038
12039 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
12040
12041         * XplatUIX11.cs: Apply patch from Jurek Bartuszek to fix DrawReversibleFrame
12042         and DrawReversibleLine, also apply same behavior to FillReversibleRectangle. 
12043         Fixes #80877 and #79418.
12044
12045 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
12046
12047         * MenuAPI.cs: Fix popup menu position when the size is larger than distance 
12048         between position and one of the screen borders. Fixes #82349.
12049
12050 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
12051
12052         * MessageBox.cs: When there is no form that invoked the MessageBox, shows
12053         the MessageBox in the taskbar. Fixes #82457.
12054
12055 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
12056
12057         * MessageBox.cs: Fix form size when icon is set and text height is bigger
12058         than icon. Fixes #82468.
12059
12060 2007-08-18  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12061
12062         * ThemeWin32Classic.cs: A FixedToolWindow has border size 3.
12063         * InternalWindowManager.cs: Change HandleCalcSize to return a boolean value
12064           if handled or not. Implement WM_NCCALCSIZE for WParam == 0 as well.
12065           Refactored HandleNCCalcSize somewhat to avoid code duplication.
12066         * Form.cs: Add is_clientsize_set, set in set_ClientSize, used by
12067           FormBorderStyle to decide if we're calculating a new size from the
12068           client size or not. CreateParams: Don't fake tool windows, only the X11
12069           backend manages toolwindows manually.
12070
12071 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
12072
12073         * Form.cs: Only reset is_visible if !IsDisposed to prevent an
12074         ObjectDisposedException.
12075
12076 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
12077
12078         * Form.cs: Reset is_visible back to true after OnLoad.  Setting this
12079         in OnLoad should not have any effect.  [Fixes bug #82470]
12080
12081 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
12082
12083         * ToolTip.cs: Add a hack to ToolTipWindow so it will still size and
12084         paint for controls that create their own ToolTipWindow instead of
12085         going through ToolTip.
12086
12087 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
12088
12089         * ToolTip.cs: Make Hide internal instead of public to match MS API.
12090
12091 2007-08-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12092
12093         * ListViewGroupCollection.cs: Use generic List instead of an
12094         ArrayList, since this collection is 2.0 only.
12095
12096 2007-08-17  Jeffrey Stedfast  <fejj@novell.com>
12097
12098         * ToolTip.cs (Hide): Made public to make the build work (should
12099         this not be public?).
12100
12101 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
12102
12103         * ToolBar.cs, ToolStrip.cs, TreeView.cs: Use a ToolTip instead of a
12104         ToolTipWindow.
12105         * ToolTip.cs: Add an internal Visible property to facilitate transition.
12106
12107 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
12108
12109         * DrawToolTipEventArgs.cs, DrawToolTipEventHandler.cs, PopupEventArgs.cs,
12110         PopupEventHandler.cs: Make these internal for 1.1.
12111         * ThemeClearlooks.cs, ThemeWin32Classic.cs: Use TextRenderer, and modify to not
12112         use ToolTipWindow internals.
12113         * ToolTip.cs: Add 2.0 modal Show methods.  Had to move a lot of stuff around to
12114         support this.  A lot of stuff in the ToolTipWindow got moved to the ToolTip.
12115
12116 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12117
12118         * X11Dnd.cs: Add a null check.
12119
12120 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12121
12122         * X11Dnd.cs: MwfWindow: Try to load the control directly from the handle if
12123           nothing else succeeds. Fixes #82453.
12124
12125 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12126
12127         * XplatUIWin32.cs: PaintEventStart: validate the entire source client
12128           rectangle if we're painting to another window than the one the paint
12129           message was generated on. Simplify the code somewhat, which makes
12130           PaintEventEnd also simpler.
12131
12132 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12133
12134         * Control.cs: When changing parent of a form, let the form decide whether
12135           XplatUI.SetParent should be called or not.
12136         * Form.cs: ChangingParent: only call XplatUI.SetParent if we're not
12137           recreating the handle. If the new parent's handle isn't created, don't
12138           recreate our handle, just destroy it. CreateParams: Check if the
12139           parent's handle is created before fetching it.
12140
12141 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12142
12143         * Control.cs, Form.cs, InternalWindowManager.cs, MainMenu.cs, MdiClient.cs:
12144           Update calls to PaintEventStart/End to take a Message argument.
12145         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Update PaintEventStart/End to
12146           take a Message argument.
12147         * XplatUIWin32.cs, XplatUIX11.cs: Update PaintEventStart/End to take a
12148           Message argument, and handle the case where we don't paint to the window
12149           for which the paint message was generated.
12150
12151 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12152
12153         * XplatUIWin32.cs: Don't call Win32GetLastError directly, use
12154           Marshal.GetLastWin32Error. Plug nasty memory leak in
12155           PaintEventStart/End, we were creating a DC we weren't releasing.
12156
12157 2007-08-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12158
12159         * ListView.cs: Add Groups support in Details view. Also have a small
12160         method to do the layout of the group header. Don't use a separate
12161         method to do the groups calculation in Icons view, since our methods
12162         are now a little simpler.
12163         * ListViewGroup.cs: Use the more accurate `HeaderBounds' name than
12164         `Bounds'.
12165         * ThemeWin32Classic.cs: Likewise.
12166
12167 2007-08-16  Jonathan Pobst  <monkey@jpobst.com>
12168
12169         * Application.cs: Add FilterMessage method and rework our message loop
12170         logic to use it.
12171
12172 2007-08-16  Jonathan Pobst  <monkey@jpobst.com>
12173
12174         * Application.cs: Add some methods and stub a few methods that are
12175         pretty much never used.
12176
12177 2007-08-15  Jonathan Pobst  <monkey@jpobst.com>
12178
12179         * TreeNode.cs: Add some serialization methods.
12180
12181 2007-08-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12182
12183         * ListView.cs: In ListViewItemCollection have a 
12184         'is_main_collection' field to not modify ListViewItem.ListView
12185         when using it as ListViewGroup.Items (and not ListView.Items)
12186         and also don't modify selection state (.Net behaviour). 
12187         Instead, set group for items contained in a ListViewGroup.Items collection.
12188         * ListViewItem.cs: Simplify some code in Group setter.
12189         * ListViewGroup.cs: use the new .ctor to pass the current instance
12190         to the ItemsCollection.
12191         * ListViewGroup.cs: Set the ListView property for ListViewGroup
12192         instances when adding/removing. Also make Remove use RemoveAt, which
12193         should perform better.
12194
12195 2007-08-14  Jonathan Pobst  <monkey@jpobst.com>
12196
12197         * Message.cs, TabControl.cs, TextBox.cs, TextBoxBase.cs: Hide some 2.0 API
12198         that crept into the 1.1 profile.
12199
12200 2007-08-14  Jonathan Pobst  <monkey@jpobst.com>
12201
12202         * ToolBarButton.cs: Implement ImageKey.
12203
12204 2007-08-14  Jonathan Pobst  <monkey@jpobst.com>
12205
12206         * ToolBar.cs: Implement ScaleControl/ScaleCore.
12207
12208 2007-08-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12209
12210         * PictureBox.cs: OnAnimateImage/UpdateAnimateImage: Check if handle is still
12211           created, it might have gotten destroyed since we last checked. Fixes
12212           #82405.
12213
12214 2007-08-11  Jonathan Pobst  <monkey@jpobst.com>
12215
12216         * ToolTip.cs: Remove mouse in control check from mouseleave handler so
12217         tooltip will hide when mouse is moved off the control.
12218         [Fixes bug #82407]
12219
12220 2007-08-11 Andreia Gaita <avidigal@novell.com>
12221
12222         * WebBrowserBase.cs, WebBrowser.cs: add implementation
12223         using Mono.Mozilla for loading and navigating webcontrol
12224         with xulrunner.
12225         The initial implementation was done on 
12226         /trunk/mozembed/tests/browser , and copied here.
12227
12228 2007-08-11  Gert Driesen  <drieseng@users.sourceforge.net>
12229
12230         * ThemeWin32Classic.cs: On 2.0 profile, use ForeColor and BackColor of
12231         ToolTipWindow for drawing the tooltip. Fixes bug #82408.
12232
12233 2007-08-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12234
12235         * DataGridView.cs: Add support for an editing row. Fixes #82226.
12236           RowTemplateFull: throw an exception if a column doesn't have a template.
12237         * DataGridViewRowCollection.cs: AddInternal: if there are any editing rows,
12238           add the row just before it.
12239         * DataGridViewTextBoxCell.cs: Don't paint cells which are in edit mode as
12240           selected.
12241         * DataGridViewSelectedRowCollection.cs: Don't return the editing row. Add a
12242           DataGridView field to be able to reach the grid's editing row.
12243
12244 2007-08-10  Jonathan Pobst  <monkey@jpobst.com>
12245
12246         * ToolTip.cs: If the control's handle hasn't been created when it has a
12247         tooltip set on it, don't check to see if we need to show the tooltip.  This
12248         check was causing the control's handle to be created.
12249         [Fixes bug #82399]
12250
12251 2007-08-10  Jonathan Pobst  <monkey@jpobst.com>
12252
12253         * TextBoxBase.cs: Fix SelectionLength when no text selected to match MS:
12254                                         1.1             2.0
12255         Handle Not Created      -1              0
12256         Handle Created          0               0
12257         [Fixes bug #82371]
12258
12259 2007-08-10  Jonathan Pobst  <monkey@jpobst.com>
12260
12261         * ToolTip.cs: Hide the tooltip if the control is clicked to match MS behavior.
12262         [Fixes bug #82348]
12263
12264 2007-08-09  Jonathan Pobst  <monkey@jpobst.com>
12265
12266         * DrawToolTipEventArgs.cs: Don't dispose a brush we got from the respool.
12267         * ToolTip.cs: Implement some properties and owner draw.
12268
12269 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12270
12271         * DataGridView.cs: OnPaint: don't set scrollbar visibility to false then
12272           show them again, since setting visibility causes a paint, causing an
12273           endless loop (instead use a temporary and set it all when it's known if
12274           they should be shown or not). Fixes #79265.
12275
12276 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12277
12278         * DataGridView.cs: Only do a full column/row selection if a header was
12279           clicked and we're in Column/RowHeader selection mode. If shift and ctrl
12280           isn't pressed, deselect everything before selecting something.
12281
12282 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12283
12284         * DataGridView.cs: Fix SelectedRows and SelectedColumns to match MS
12285           behaviour according to bug #81075 - they are returned in the order they
12286           are selected. Fix HitTest to check if the point is within any of the
12287           headers. Allow for row/column selection when in ColumnHeader or
12288           RowHeader selection mode. Add SetSelected[Column|Row]CoreInternal for
12289           the row and column to call when their selected state changes, and
12290           updated selected_[rows|columns] whenever SetSelected* is called.
12291         * DataGridViewBand.cs: Initialize isRow correctly. Call
12292           SetSelected[Row|Column]CoreInternal when the selected state changes, and
12293           add a SelectedInternal to avoid StackOverflows.
12294         * DataGridViewColumn.cs, DataGridViewRow.cs: If DGV is ReadOnly, we're also
12295           ReadOnly no matter what.
12296         * DataGridViewSelectedColumnCollection.cs,
12297           DataGridViewSelectedRowCollection.cs: Add an InternalAddRange that adds
12298           the items in reverse order (just as MS does...)
12299
12300 2007-08-09  Jonathan Pobst  <monkey@jpobst.com>
12301
12302         * Application.cs: Only release menustrips if Alt (MenuKey) is pressed by
12303         itself, not part of a mnemonic.  [Fixes bug #82378]
12304
12305 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12306
12307         * DataGridView.cs: BeginEdit: don't allow editing of readonly cells.
12308         * DataGridViewCell.cs: Implement ReadOnly better: the cell is ReadOnly if
12309           the DGV, the column, the row, or the cell itself is readonly.
12310
12311 2007-08-09  Gert Driesen  <drieseng@users.sourceforge.net>
12312
12313         * ThemeNice.cs: Use XplatUI.RunningOnUnix instead of checking
12314         OSVersion.Platform.
12315         * FileDialog.cs: Same.
12316         * TextRendered.cs: Same.
12317         * FolderBrowserDialog.cs: Same.
12318         * TextBoxBase.cs: Same.
12319         * Application.cs: Same.
12320         * Cursors.cs: Same.
12321         * ThemeClearLooks.cs: Same.
12322
12323 2007-08-09  Gert Driesen  <drieseng@users.sourceforge.net>
12324
12325         * XplatUI.cs: Added RunningOnUnix property to be used by controls
12326         instead of duplicating these checks everywhere.
12327         * FileDialog.cs: Use case-insensitive comparison for populating the
12328         DirComboBox when not running on unix. Fixes bug #82385.
12329         * OpenFileDialog.cs: to match MS, change label of DirComboBox to 
12330         "Look in".
12331
12332 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12333
12334         * DataGridView.cs: SelectedRows: we need to check if selectionMode is
12335           FullRowSelect (not FullColumnSelect). Fixes #81075. Implemented
12336           BeginEdit, EndEdit, SetSelected<Cell|Row|Column>Core. Implemented row,
12337           cell and column selection with ctrl and shift pressed. Call the correct
12338           BeginEdit/EndEdit whenever we start/end editing. Move painting code to
12339           the corresponding virtual method (PaintBackground to paint background,
12340           etc).
12341         * DataGridViewCell.cs: Implement Selected correctly, we're selected if
12342           either the column, row or the cell itself is selected.
12343         * DataGridViewRowCollection.cs: Use DGV.OnRowsAddedInternal instead of
12344           OnRowsAdded.
12345         * DataGridViewRow.cs: Moved some of the painting code from DataGridView
12346           here. When the row is selected, don't select all cells. Each cell now
12347           queries the row to see if the row is selected.
12348
12349 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12350
12351         * DataGridViewColumn.cs: Throw if the SortMode conflicts with DataGridView's
12352           SelectionMode.
12353
12354 2007-08-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12355
12356         * ListView.cs: In ListViewItemsCollection check that owner is
12357         not null before trying to access it (this happens quite often
12358         using Groups). Also don't duplicate calls by calling CollectionChanged
12359         method.
12360
12361 2007-08-08  Jonathan Pobst  <monkey@jpobst.com>
12362
12363         * ToolStrip.cs: Record if we were activated by mouse or keyboard.  Redraw
12364         when we are dismissed to clear keyboard mnemonics.
12365         * MenuStrip.cs, ToolStripDropDown.cs, ToolStripItem.cs, 
12366         ToolStripMenuItem.cs: Record if we were activated by mouse or keyboard.
12367         * ToolStripItemTextRenderEventArgs.cs: Draw mnemonic underlines if menu
12368         was activated by keyboard or the OS tells us to always draw them.
12369         * ToolStripManager.cs: Setup storage for activated by mouse or keyboard.
12370         [Fixes bugs #82376, #82377]
12371
12372 2007-08-08  Jonathan Pobst  <monkey@jpobst.com>
12373
12374         * Control.cs: If no one accepts a mnemonic, let the MenuStrip have a 
12375         shot at having it because Alt was pressed.
12376         * MenuStrip.cs: When handling Alt, don't select a SystemMenuItem, select
12377         the first real menu item.
12378         * ToolStrip.cs: Don't crash when looking for a ToolStripItem to handle
12379         a mnemonic if Text is null.
12380         [Fixes bug #82374]
12381
12382 2007-08-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12383
12384         * ListView.cs: In ListViewItemCollection.AddItem, don't do a linear
12385         search do check whether the item is already contained in the
12386         collection or not; instead check if the owner of the item is the same
12387         as ours. Also, remove a redundant check in the same method. 
12388
12389 2007-08-08  Jonathan Pobst  <monkey@jpobst.com>
12390
12391         * Control.cs: Allow the clip region to be set back to null.
12392         * XplatUIWin32.cs: If we are sent a null clip region, use IntPtr.Zero.
12393         [Fixes button still showing up in bug #82370 when Show Through is turned off]
12394
12395 2007-08-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12396
12397         * GridEntry.cs: Add a null check.
12398         * PropertyGrid.cs: When checking for existing grid entries, ignore category
12399           entries. Fixes #82297.
12400
12401 2007-08-07  Jonathan Pobst  <monkey@jpobst.com>
12402
12403         * OwnerDrawPropertyBag.cs: Make the serialization constructor protected
12404         for 2.0.
12405
12406 2007-08-07  Jonathan Pobst  <monkey@jpobst.com>
12407
12408         * ListBox.cs: Implement ScaleControl.
12409
12410 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12411
12412         * Form.cs: Add a few ActiveMenu null checks. ActiveMenu might be null if we
12413           have a menu strip.
12414         * MdiWindowManager.cs: Don't create a maximized menu if the child or it's
12415           parent has a menu strip. Fixes #81689.
12416
12417 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12418
12419         * ToolTip.cs: We don't get mouse events on all platforms in the exact same
12420           moments, so apply some fuzzy logic to determine if the mouse is still
12421           inside a control or not. Fixes #82288 (for the third time).
12422
12423 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12424
12425         * Control.cs: CreateControl: create implicit children as well. Fixes #82344.
12426           Don't create the child if it has been disposed already (may happen if
12427           the user closes the form the Load event).
12428
12429 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12430
12431         * ToolTip.cs: If ReshowDelay is 0, show the tooltip immediately. Fixes
12432           #82288.
12433
12434 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12435
12436         * Control.cs: Add a null check in OnParentBindingContextChanged. The parent
12437           might call us after we've been destroyed, in which case our own private
12438           parent field is null. Fixes #82326.
12439
12440 2007-08-06  Jonathan Pobst  <monkey@jpobst.com>
12441
12442         * ToolStripDropDown.cs: Fix a failing test on X11 by adding a null
12443         check for setting the dropdown's owner.
12444
12445 2007-08-06  Jonathan Pobst  <monkey@jpobst.com>
12446
12447         * MdiClient.cs: Fix some failing tests on X11 by adding a null check
12448         before removing system menu items.
12449
12450 2007-08-02  Jonathan Pobst  <monkey@jpobst.com>
12451
12452         * MdiClient.cs, MdiWindowManager.cs: Support 2.0 Mdi MenuStrip
12453         folding.
12454         * MdiControlStrip.cs: Added.  These are the menu items used in mdi
12455         folding.
12456         * ToolStrip.cs: Add a null check to mnemonics.
12457         * ToolStripDropDownMenu.cs: When using a SystemMenuItem, there is
12458         no ConnectedArea.
12459         [Fixes most of bug #81689]
12460
12461 2007-08-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12462
12463         * PropertyGrid.cs: Add a null-check. Fixes #82289/SVGPad.
12464
12465 2007-08-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12466
12467         Use InitialDelay if ReshowDelay is zero. Fixes #82288.
12468
12469 2007-08-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12470
12471         * DataGridViewCell.cs: EditType: returns
12472           DataGridViewTextBoxEditingControl always.
12473
12474 2007-08-01  Jonathan Pobst  <monkey@jpobst.com>
12475
12476         * TextRenderer.cs: Remove the LineLimit string format flag from the
12477         DrawString fallback method so that things like buttons that aren't
12478         tall enough to draw a full line will still draw part of the text.
12479         [Fixes part of bug #82272]
12480
12481 2007-08-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12482
12483         * DataGridView.cs: Implemented AutoResizeColumn(s).
12484         * DataGridViewCellStyle.cs: Added SetAlignment, fills in a StringFormat
12485           according to the Alignment.
12486         * DataGridViewColumnHeaderCell.cs, DataGridViewTextBoxCell.cs:
12487           Implement alignment and padding when painting.
12488         * DataGridViewRow.cs: SetValues: Don't create a cell if it already
12489           exists.
12490         * DataGridViewCell.cs: Implement BorderWidths in the most primitive
12491           way.
12492         * DataGridViewColumnCollection.cs: Raise OnColumnAdded on the DGV when
12493           a column is added.
12494
12495 2007-07-31  Jonathan Pobst  <monkey@jpobst.com>
12496
12497         * TextBoxBase.cs: Use Control.ExplicitBounds instead of explicit_bounds,
12498         which is internal.
12499
12500 2007-07-31  Jonathan Pobst  <monkey@jpobst.com>
12501
12502         * ToolStrip.cs: Stub out drag and drop methods, fix some corcompare stuff,
12503         hide GetPreferredSize from public API.
12504         * ToolStripDropDown.cs: Override AllowItemReorder, fix AccessibleObject.
12505         * ToolStripItem.cs: Stub out drag and drop methods and events.
12506         * ToolStripManager.cs: Stub out Save/LoadSettings.
12507         * ToolStripOverflow.cs: Use renamed ToolStrip.GetPreferredSize.
12508         * ToolStripPanel.cs: Fix corcompare error.
12509         * ToolStripPanelRow.cs: Use renamed ToolStrip.GetPreferredSize.
12510         * ToolStripSplitButton.cs: Fix AccessibleObject stuff.
12511         * ToolStripSplitStackLayout.cs: Use renamed ToolStrip.GetPreferredSize.
12512
12513 2007-07-31  Jonathan Pobst  <monkey@jpobst.com>
12514
12515         * TextBoxBase.cs: In our new GetPreferredSizeCore, return the explicit
12516         bounds height instead of PreferredHeight.  Puts things back the way 
12517         they were for height while still fixing the width.  Fixes broken unit
12518         tests.
12519
12520 2007-07-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12521
12522         * Binding.cs: Implement 2.0 constructors and add a null check.
12523
12524 2007-07-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12525
12526         * DataGridViewRowCollection.cs: Allow a null DGV in the constructor,
12527           and fix row index (off by one).
12528
12529 2007-07-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12530
12531         * PropertyGridView.cs: Remove debug output.
12532
12533 2007-07-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12534
12535         * Control.cs: We need to reset the is_created flags when the handle is
12536           destroyed. Fixes #82187.
12537         * XplatUIWin32.cs: In GetWindowRect don't offset screen coordinates to
12538           client coordinates if the window doesn't have a parent.
12539           Win32GetParent returns the parent or the owner, and for top-level
12540           windows with no parent (but with an owner) we were calculating the
12541           location from the location of the owner.
12542         * Form.cs: Remove incorrect fix for #82187. Don't raise OnLoad if the
12543           form has been disposed.
12544         * MdiClient.cs: Add a null-check.
12545
12546 2007-07-30  Jonathan Pobst  <monkey@jpobst.com>
12547
12548         * TextBoxBase.cs: TextBoxBase reports itself at AutoSize, but doesn't
12549         actually do auto-sizing.  Override the internal GetPreferredSizeCore 
12550         so we can provide an implementation that returns the current width
12551         and preferred height.  Allows anchor = right to work with TextBox 2.0.
12552         [Fixes bug #82233]
12553
12554 2007-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12555
12556         * ListView.cs: Add support for navigating items in Groups mode, by
12557         creating a big matrix containing all rows and cols of all groups. When
12558         are in other mode than Details, pressing Up should have a similar
12559         behaviour as that one of Down (moving to the next available column if
12560         current one doesn't have an item in the requested row). Also, don't
12561         proceed to use groups if ShowGroups is false.
12562         * ListViewGroup.cs: Add an internal int field to store the starting
12563         row of the group (used by the big matrix used for navigating the
12564         ListView).
12565         * ThemeWin32Classic.cs: Don't draw headers if ListView.ShowGroups is
12566         false.
12567
12568 2007-07-30  Jonathan Pobst  <monkey@jpobst.com>
12569
12570         * ToolStripDropDown.cs: When we do Show, start with the 
12571         DefaultDropDownDirection, but if our popup menu is going to off-screen,
12572         modify the direction to keep it on screen.  [Fixes bug #82210]
12573
12574 2007-07-29  Gert Driesen  <drieseng@users.sourceforge.net>
12575
12576         * FileDialog.cs: Accept any FilterIndex value, and store it
12577         unmodified. When FilterIndex is less than 1, or greater than number
12578         of filters, then default to first filter. Only add filter extension to
12579         file if user did not specifiy an extension. When type of dialog is
12580         OpenFileDialog and DefaultExt is set, then only use filter extension
12581         if: CheckFileExists is true and no file wih the default extension
12582         exists, or CheckFileExists is false, and user specified file does not
12583         exist. When CheckFileExists is true, then add first extension of 
12584         selected filter that matches existing file. Perform checks for
12585         existing file, overwrite and create after extension has been added to
12586         file name. When CheckFileExists is true and type is SaveFileDialog,
12587         then only consider first filter extension if DefaultExt is set.
12588         When CheckFileExists is true, then ignore DefaultExt if file with that
12589         extension does not exist. Also perform check for existing file when
12590         type is SaveFileDialog. Changed some field to constants.
12591
12592 2007-07-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12593
12594         * ListView.cs: Take into account the region used by header
12595         control when doing the vertical scroll (this way we invalidate
12596         the precise area, and don't get any dirty one).
12597
12598 2007-07-27  Everaldo Canuto  <ecanuto@novell.com>
12599
12600         * FileDialog.cs: Check for valid filterIndex on button open/save. 
12601         Fixes #82184.
12602
12603 2007-07-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12604
12605         * ListView.cs: Update some layout calculations in details view
12606         and clean the code in a pair of assignations.
12607
12608 2007-07-26  Jonathan Pobst  <monkey@jpobst.com>
12609
12610         * ComboBox.cs, ContainerControl.cs, DataGrid.cs, FontDialog.cs, Label.cs,
12611         LinkLabel.cs, ListBox.cs, ListView.cs, ListViewItem.cs, MessageBox.cs,
12612         MonthCalender.cs, StatusBar.cs, ThemeClearlooks.cs, ThemeWin32Class.cs,
12613         ToolBar.cs, TreeView.cs: First pass at using thread-safe string measuring.
12614
12615 2007-07-26  Jonathan Pobst  <monkey@jpobst.com>
12616
12617         * TextRenderer.cs: Use [ThreadStatic] instead of locks to improve
12618         performance of thread-safe Graphic methods.  (Thanks rolf!)
12619
12620 2007-07-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12621
12622         * ListView.cs: When doing the layout calculations, don't calculate
12623         scroll bars before handle is created. This is unnecessary and also
12624         calculating them before handle creation item causes a number of random
12625         bugs (which begin to appear after Chris' big patch for handle creation
12626         fixes). 
12627
12628 2007-07-26  Jonathan Pobst  <monkey@jpobst.com>
12629
12630         * TextRenderer.cs: Create thread-safe versions of Graphics.MeasureString
12631         for things that don't have a Graphics object.  Currently, things just use
12632         the static Hwnd.bmp_g which is not thread safe.
12633
12634 2007-07-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12635
12636         * Form.cs: ShowDialog: don't destroy handles if the dialog is a common
12637           dialog. Fixes #82187.
12638
12639 2007-07-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12640
12641         * DataGridViewElement.cs: Initialize state.
12642         * DataGridView.cs: Forward a few Mouse events to cells. Add
12643           GetRowInternal and GetCellInternal that doesn't unshare rows.
12644           Implement GetCellDisplayRectangle. HitTest: if the row is shared,
12645           don't use the index, but look it up. Add
12646           DataGridViewControlCollection.RemoveInternal to remove controls
12647           that Remove won't remove (scrollbars, edit control).
12648         * DataGridViewColumn.cs: Initialize State correctly.
12649         * DataGridViewColumnHeaderCell.cs, DataGridViewComboBoxCell.cs,
12650           DataGridViewHeaderCell.cs, DataGridViewRowHeaderCell.cs: Started
12651           implementing this.
12652         * DataGridViewRowCollection.cs: Implemented shared rows.
12653         * DataGridViewRow.cs: Throw exceptions as MS do.
12654         * DataGridViewCell.cs: A few properties are implemented by a
12655           Get<Property> method, so move implementation there and remove the
12656           NIEX in the method. Add a bunch of OnXInternal that DataGridView
12657           calls when necessary.
12658         * DataGridViewComboBoxEditingControl.cs: Remove a few NIEX'es that just
12659           complicates matters.
12660         * DataGridViewCellCollection.cs: Add a GetCellInternal that doesn't
12661           unshare any rows.
12662
12663 2007-07-25  Jonathan Pobst  <monkey@jpobst.com>
12664
12665         * UpDownBase.cs: We cannot override SetBoundsCore for 2.0, which was relayout-ing
12666         the children controls.  Instead, we will just set up the proper docking for the
12667         children controls so we don't have to worry about it.  [Fixes bug #82188]
12668
12669 2007-07-25  Jonathan Pobst  <monkey@jpobst.com>
12670
12671         * TreeView.cs, NodeLabelEditEventArgs.cs, LabelEditTextBox.cs: Support edit
12672         canceling and correct Before/AfterLabelEdit properties as layed out in bug
12673         81847.  [Fixes bug #81847]
12674
12675 2007-07-25  Jonathan Pobst  <monkey@jpobst.com>
12676
12677         * Label.cs: If AutoSize = true and a width or height is set, ignore it and
12678         redo the autosize.  VS2005 defaults to setting the AutoSize, and then setting
12679         an explicit size based on the design-time size of the text.  Since our fonts
12680         may not match this explicit size, we tend to cut off the ends of people's labels.
12681
12682 2007-07-24  Jonathan Pobst  <monkey@jpobst.com>
12683
12684         * Menu.cs: Add some missing methods to MenuItemCollection.
12685
12686 2007-07-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12687
12688         * DataGridView.cs: Added RowTemplateFull, creates a row from the templates in the columns.
12689         * DataGridViewBand.cs: DefaultHeaderCellType: initialize correctly. Resizable: if not set, check DGV.
12690         * DataGridViewColumn.cs: InheritedAutoSizeMode: if not set, check DGV. Resizable: delegate to base class. ToolTipText: Never return null. Initialize a few other properties correctly.
12691         * DataGridViewColumnCollection.cs: Add: Default column is a TextBoxColumn.
12692         * DataGridViewComboBoxCell.cs: Started implementing this, lots left still.
12693         * DataGridViewElement.cs: State defaults to Visible.
12694         * DataGridViewRowCollection.cs: Add: creates the new row based on a template.
12695         * DataGridViewTextBoxColumn.cs: SortMode: delegate to base class, but initialize to Automatic. ToString: implement correctly.
12696
12697 2007-07-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12698
12699         * Control.cs: Minor 1.1 corcompare fix.
12700
12701 2007-07-23  Jonathan Pobst  <monkey@jpobst.com>
12702
12703         * LinkLabel.cs, PrintPreviewDialog.cs, TabPage.cs, TextBox.cs,
12704         TextBoxBase.cs, ToolBar.cs: 2.0 corcompare work.
12705
12706 2007-07-23  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12707
12708         * DataGridViewLinkColumn.cs, DataGridViewRowCollection.cs,
12709           DataGridViewImageColumn.cs, DataGridViewSelectedCellCollection.cs,
12710           DataGridViewComboBoxCell.cs, DataGridViewLinkCell.cs,
12711           DataGridViewSelectedColumnCollection.cs,
12712           DataGridViewSelectedRowCollection.cs: Corcompare work.
12713
12714 2007-07-23  Jonathan Pobst  <monkey@jpobst.com>
12715
12716         * PrintDialog.cs: Stub UseEXDialog.  I chose to stub this because
12717         it is autoset by VS2005 designer and the effect is barely noticeable.
12718
12719 2007-07-23  Jonathan Pobst  <monkey@jpobst.com>
12720
12721         * TreeView.cs: Implement HitTest.
12722
12723 2007-07-23  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12724
12725         * DataGridViewTextBoxCell.cs: Use DGV.EditControlInternal instead of
12726           manually adding and removing the control from the Controls
12727           collecftion.
12728         * DataGridView.cs: Implement DataGridViewControlCollection. Add an
12729           EditingControlInternal property that tracks the editing control.
12730           Always keeping the scrollbars in the Controls collection, as MS
12731           testing confirms is the right behaviour.
12732
12733 2007-07-23  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12734
12735         * ScrollableControl.cs: Fix implementation of AutoScrollPosition
12736           according to MSDN and new test.
12737
12738 2007-07-20  Jonathan Pobst  <monkey@jpobst.com>
12739
12740         * TreeNode.cs: Implement ToolTipText.
12741         * TreeView.cs: Implement tooltips, NodeMouse* events.
12742
12743 2007-07-20  Jonathan Pobst  <monkey@jpobst.com>
12744
12745         * TreeView.cs: Implement OnNodeMouseClick and OnNodeMouseDoubleClick.
12746
12747 2007-07-20  Jonathan Pobst  <monkey@jpobst.com>
12748
12749         * TreeNode.cs: Implement ContextMenu, ContextMenuStrip, and Level.
12750         * TreeView.cs: Use the node's contextmenu[strip] if applicable.
12751
12752 2007-07-20  Ivan N. Zlatev  <contact@i-nz.net>
12753
12754         * Control.cs, Form.cs, ContainerControl.cs,
12755         ScrollableControl.cs, ButtonBase.cs:  Added ShouldSerialize
12756         for misc properties.
12757
12758 2007-07-20  Jonathan Pobst  <monkey@jpobst.com>
12759
12760         * TreeNode.cs: Implement StateImageIndex and StateImageKey.
12761         * TreeView.cs: Implement StateImageList.
12762
12763 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12764
12765         * Form.cs: Don't check if the current form is the active form before
12766           activating it. Fixes #81904.
12767
12768 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12769
12770         * Form.cs: Don't check if the current form is the active form before
12771           activating it. Fixes #81904.
12772
12773 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12774
12775         * TreeView.cs: Apply patch from Tyron (tmm@aon.at). Fixes #81847.
12776
12777 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12778
12779         * Form.cs: Don't try to position the form after loading if the form was
12780           disposed. Fixes #81969.
12781
12782 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12783
12784         * PropertyGrid.cs, PropertyGridView.cs: Implemented 2.0 methods and
12785           properties. Had to change ToolBar into ToolStrip, which required a
12786           few #ifs.
12787
12788 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12789
12790         * PropertyGrid.cs: PropertyToolBar: Redraw the entire toolbar when it's
12791           resized, fixes part of #79829 (vertical lines in toolbar).
12792           PropertyGrid: Refactored Populate* to something that's easier to
12793           follow at least for me, as well as splitting it up into several new
12794           methods, required to update only subitems when something has
12795           changed by a popup editor or listbox. Don't use events to check
12796           when any values are changed, since the events are unreliable (we're
12797           changing the objects the events are registered with, and if the
12798           event handling requires the objects to be immutable (objects stored
12799           in hashtables for instance), the events will never be raised).
12800         * PropertyGridView.cs: Call PropertyGrid.PropertyValueChangedInternal
12801           everytime we change a value, since events are unreliable.
12802           DropDownButtonClicked: For the same reason don't compare objects to
12803           check if it has changed or not, it would require all objects to
12804           derive Equals. Fix dialog location on windows, MS is doing weird
12805           things when creating parented forms.
12806         * GridEntry.cs: Add a SelectedObject setter.
12807
12808 2007-07-19  Jonathan Pobst  <monkey@jpobst.com>
12809
12810         * TreeNode.cs: Add some corcompare attributes.
12811         * TreeNodeCollection.cs: Implement 2.0 stuffs.
12812         * TreeView.cs: Implement some 2.0 stuffs.
12813
12814 2007-07-18  Andreia Gaita  <avidigal@novell.com>
12815
12816         * WebBrowser.cs, WebBrowserBase.cs: add some more MonoTODOs now
12817         for moma.
12818
12819 2007-07-19  Jonathan Pobst  <monkey@jpobst.com>
12820
12821         * ListBox.cs: Implement custom tab offsets.
12822
12823 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
12824
12825         * ToolStripContentPanel.cs: Support System renderer.
12826         * ToolStripControlHost.cs: Set RightToLeft to default to No.
12827
12828 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
12829
12830         * ScrollableControl.cs: Don't mess up the user's explicit bounds.
12831
12832 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
12833
12834         * CheckBox.cs: Chain TextAlign to base implementation instead of
12835         maintaining another one.
12836
12837 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
12838
12839         * ButtonBase.cs: Fix an incorrect string constant.
12840
12841 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
12842
12843         * TextRenderer.cs: Use the static Graphics context in Hwnd instead
12844         of creating one for measuring strings.
12845
12846 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
12847
12848         * ToolStrip.cs, ToolStripDropDown.cs, ToolStripDropDownMenu.cs: 
12849         Implement MaxItemSize.
12850
12851 2007-07-17  Jonathan Pobst  <monkey@jpobst.com>
12852
12853         * Control.cs: Remove per-control 1x1 Bitmap and Graphics context used
12854         for DeviceContext.  Instead, use the static one available in Hwnd.
12855         Informal tests show this saves about 500k on formtest.exe.
12856
12857 2007-07-17  Jonathan Pobst  <monkey@jpobst.com>
12858
12859         * ContainerControl.cs: Implement 2.0 AutoScaling.
12860
12861 2007-07-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12862
12863         * ComboBox.cs: Work around bug #82120 (bug in mcs).
12864
12865 2007-07-16  Jonathan Pobst  <monkey@jpobst.com>
12866
12867         * ThemeWin32Classic.cs: Allow a Flat button to be Focused and Entered.
12868         Darken the focus color.
12869
12870 2007-07-16  Jonathan Pobst  <monkey@jpobst.com>
12871
12872         * ListBox.cs: When measuring items, if it's a CheckedListBox, add room
12873         for the checkbox.
12874         * ThemeWin32Classic.cs: Make the checkbox bigger in a CheckedListBox and use
12875         X, Y instead of a rect for drawing text.
12876         - For ControlPaint.DrawCheckBox, center the check a little better when the
12877         checkbox is odd width.  When drawing a flat checkbox, use a white background
12878         when state != inactive.
12879         [Fixes bugs #82097, 82100]
12880
12881 2007-07-16  Gert Driesen  <drieseng@users.sourceforge.net>
12882
12883         * ListControl.cs: When changing CurrencyManager, disconnect event
12884         handlers from previous one. Fixes bug #81771. Code formatting.
12885
12886 2007-07-15  Andreia Gaita <avidigal@novell.com>
12887
12888         * PrintPreviewControl.cs: Remove extraneous Invalidate calls. Separate
12889         full preview invalidation from layout invalidation, and only invalidate
12890         the layout when setting zoom or other properties. Invalidation should
12891         always be done even when resetting properties with the same values as
12892         what is there. Fixes #81744 and #79830.
12893
12894 2007-07-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12895
12896         * ListView.cs: Implement initial support for Groups. Split some of the
12897         LayoutIcons code to render a partial list of the items (needed by
12898         items contained in ListViewGroup instances). Let the
12899         ListViewItemsCollection.ListView property be modifiable (needed when
12900         using Groups, too).
12901         * ListViewGroup.cs: Use a Bounds property rather than a Location
12902         one. Also invalidate the bounds when they get changed.
12903         * ThemeWin32Classic.cs: When drawing items, also draw the group header
12904         if ListView.Groups.Count is bigger than 0. Add a DrawListViewGroupHeader
12905         method as well.
12906
12907 2007-07-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12908
12909         * ListView.cs: When space gets pressed and CheckBoxes is true, 
12910         don't invoke the Begin and EndUpdate methods. We are generating 
12911         a redraw of the entire control without need to do so.
12912
12913 2007-07-13  William Holmes <billholmes54@gmail.com> 
12914
12915         * Control.cs: Changing logic in FindFlatForward and 
12916           FindFlatBackward to handle multiple Controls with 
12917           the same TabIndex.  
12918           This fixes bug 81687.
12919
12920 2007-07-13  Jonathan Pobst  <monkey@jpobst.com>
12921
12922         * OSFeature.cs: Enable IsPresent.
12923
12924 2007-07-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12925
12926         * Control.cs: Don't do anything in WmShowWindow if the control has been
12927           disposed. We can get WM_SHOWWINDOW after a control is disposed: a
12928           control is created, put on a form, the control is disposed (the
12929           form is never shown), and then we get a MapNotify, triggering a
12930           WM_SHOWWINDOW.
12931         * Form.cs: Exclude the current form when sending Deactivate to all
12932           MdiChildren.
12933         * NativeWindow.cs: Set WindowCreating to null as soon as possible,
12934           there was a race condition because assigning the handle raises
12935           events, we can get more messages, therefore trying to assign the
12936           handle again, which would fail if any of those event handlers
12937           closed/disposed the control.
12938
12939 2007-07-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12940
12941         * Form.cs: Make the fix for #80775 windows-only (fixes #81957).
12942
12943 2007-07-12  Jonathan Pobst  <monkey@jpobst.com>
12944
12945         * SystemInformation.cs, Theme.cs, XplatUI.cs, XplatUIDriver.cs,
12946         XplatUIWin32.cs: Implement SystemInformation 2.0 properties.
12947
12948 2007-07-12  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12949
12950         * DateTimePicker.cs: If there's no part format specifier, return an
12951           empty string.
12952
12953 2007-07-12  Jonathan Pobst  <monkey@jpobst.com>
12954
12955         * FlatButtonAppearance.cs: Throw NotSupportedException for a
12956         Transparent BorderColor.
12957
12958 2007-07-12  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12959
12960         * DataGridView.cs, TextControl.cs, ProgressBar.cs, PrintDialog.cs,
12961           MessageBox.cs, ButtonBase.cs, PageSetupDialog.cs, NumericUpDown.cs,
12962           X11Dnd.cs, Binding.cs, DataGrid.cs, AxHost.cs,
12963           LinkLabelLinkClickedEventArgs.cs, TextRenderer.cs, Label.cs,
12964           LinkLabel.cs, TreeNode.cs, BindingSource.cs, TabPage.cs,
12965           TextBoxBase.cs, BindingNavigator.cs, Application.cs,
12966           ToolStripPanel.cs, TabControl.cs, ThemeClearlooks.cs, TreeView.cs:
12967           Remove warnings.
12968         * X11Structs.cs: Remove warnings, add ToString implementations.
12969
12970 2007-07-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12971
12972         * XplatUIX11.cs: Translate min/max size according to the actual min/max
12973           size, and not the current size. Fixes #81798.
12974
12975 2007-07-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12976
12977         * XplatUIX11.cs: Fix #80822 again (DefWndProc can be reached before
12978           XplatUI.CreateWindow returns, in which case the hwnd isn't assigned
12979           to the control yet).
12980
12981 2007-07-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12982
12983         * PropertyGridTextBox.cs: Add a method that sends any forwarded
12984           mousedowns to the contained textbox.
12985         * X11Structs.cs: More ToString implementation.
12986         * PropertyGridView.cs: Forward any mousedowns to the textbox, fixes
12987           #81791.
12988
12989 2007-07-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12990
12991         * PropertyGridView.cs: Add a null-check, fixes a few tests.
12992
12993 2007-07-10  Jonathan Pobst  <monkey@jpobst.com>
12994
12995         * TableLayoutPanelCellPosition.cs: TypeConverter.
12996
12997 2007-07-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12998
12999         [ Fixes #79761]
13000         
13001         * PropertyGridTextBox.cs: Propagate any color changes to all contained
13002           controls.
13003         * PropertyGridView.cs: A few color fixes.
13004
13005 2007-07-10  Jackson Harper  <jackson@ximian.com>
13006
13007         * TextControl.cs: Remove some old unused text formatting stuff.
13008
13009 2007-07-10  Jackson Harper  <jackson@ximian.com>
13010
13011         * TreeView.cs: Update full row select invalidation to match the
13012         newer DrawSelection... method.
13013         - Make sure to invalidate the entire width when selecting a new
13014         node, if we have full row selection enabled.
13015
13016 2007-07-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13017
13018         * PropertyGridView.cs: Fix for #81800, makes text show up on initial
13019           display of properties again.
13020
13021 2007-07-10  Jonathan Pobst  <monkey@jpobst.com>
13022
13023         * ListBox.cs: Add IntegerCollection and Add, Clear, Remove
13024         to existing collections.
13025
13026 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
13027
13028         * AccessibleObject.cs, RadioButton.cs: Fix some base classes
13029         that changed between 1.1 and 2.0.
13030
13031 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
13032
13033         * PowerStatus.cs: Added.  This is just a data class, it is filled
13034         in by SystemInformation.
13035
13036 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
13037
13038         * Message.cs: Add op_Equality and op_Inequality.
13039
13040 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
13041
13042         * MenuStrip.cs: Finish corcompare work.
13043
13044 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
13045
13046         * LinkArea.cs: Add op_Equality and op_Inequality.
13047
13048 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
13049
13050         * Application.cs: Add MessageLoopCallback delegate.
13051
13052 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
13053
13054         * ListBox.cs: First set of 2.0 stuffs.
13055
13056 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
13057
13058         * Control.cs: Make an internal Height property we can override
13059         without messing up the public API.
13060         * ListBox.cs: Override HeightInternal to always return the size
13061         the user set.  [Fixes bug #80466]
13062
13063 2007-07-08  Jonathan Pobst  <monkey@jpobst.com>
13064
13065         * TableLayoutPanel.cs: Add a null check so we don't NRE trying to
13066         paint cell borders if we haven't calculated where they go yet.
13067         [Fixes bugs #82040 and #82041]
13068
13069 2007-07-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13070
13071         * ListView.cs: In Details view, set the location of item_control
13072         in the (0,0) position (and the header_control is thus on the
13073         item_control). This way the Bounds of the Items are relative to the
13074         ListView control (before this, they had a Bounds value without the
13075         header_control offset, which wasn't matching .Net). Fixes #82004.
13076
13077 2007-07-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13078
13079         * ListControl.cs: When DataSource is set to null, pass an empty
13080         array of object to SetItemsCore. This is done to clean the items
13081         in the ListContol children. Fixes #81788.
13082
13083 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
13084
13085         * ListControl.cs: Add 2.0 stuffs.
13086
13087 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
13088
13089         * Label.cs: Finish up 2.0 stuffs.  Replace calls to Refresh with Invalidate,
13090         Refresh is overkill for just about every repaint request.
13091
13092 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
13093
13094         * ToolStripItem.cs: TextDirection getter handles looking up Inherit for us,
13095         so remove my custom Get method and fix the property getter.
13096
13097 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
13098
13099         * Label.cs: DefaultMargin for 2.0.
13100
13101 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
13102
13103         * ComboBox.cs: Override IsInputCharInternal and return true.  Fixes 
13104         reported issue where other controls with mnemonics would steal strokes
13105         from a selected ComboBox.
13106
13107 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
13108
13109         * ScrollOrientation.cs: Make internal for 1.1.
13110         * ScrollEventArgs.cs: Add 2.0 stuffs.
13111
13112 2007-07-05  Jonathan Pobst  <monkey@jpobst.com>
13113
13114         * ToolStrip.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
13115         ToolStripItem.cs, ToolStripItem.cs, ToolStripItemTextRenderEventArgs.cs,
13116         ToolStripRenderer.cs, ToolStripSeparator.cs: Implement TextDirection.
13117
13118 2007-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13119
13120         * ListViewItem.cs: Implement the small 2.0 GetSubItemAt method.
13121
13122 2007-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13123
13124         * ListView.cs: Implement the so-incredibly broken 2.0 
13125         VirtualItemsSelectionRangeChanged event.
13126
13127 2007-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13128
13129         * ListView.cs: When enter is pressed and selection is non empty,
13130         an OnItemActivate event must be fired.
13131
13132 2007-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13133
13134         * ListView.cs: Store the FocusedItem information as an
13135         int instead of a ListViewItem (needed by VirtualMode).
13136         Update the calls to SetFocusedItem to pass an index instead of
13137         an item.
13138         * ListViewItem.cs: Likewise. Also, in VirtualMode retrieve
13139         the Focused state from the owner ListView. 
13140
13141 2007-07-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13142
13143         * ListView.cs: Set ListView.focused_item from ListViewItem.Focused
13144         property. Also, invalidate previous focused item in the mentioned
13145         property (match .Net).
13146
13147 2007-07-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13148
13149         * ListView.cs: Implement 2.0 FocusedItem property setter.
13150
13151 2007-07-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13152
13153         * ListView.cs: Implement 2.0 TopItem property setter.
13154
13155 2007-07-03  Jonathan Pobst  <monkey@jpobst.com>
13156
13157         * StatusStrip.cs: The default renderer is System.
13158         * ToolStrip.cs, ToolStripManager: Now that we have System renderer, use it 
13159         if the user specifies it.
13160         * ToolStripDropDown.cs: Don't reset our Renderer on changing OwnerItem
13161         if we are ManagerRenderMode.
13162         * ToolStripMenuItem.cs: Calculate our text color better.
13163         * ToolStripRenderer.cs, ToolStripProfessionalRenderer.cs: Move some stuff
13164         from Professional to the base class based off working with the System renderer.
13165         * ToolStripSystemRenderer.cs: Added.
13166
13167 2007-07-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13168
13169         * ListView.cs: I'm so lame - the real name is HitTest, not HitInfo.
13170
13171 2007-07-02  Jonathan Pobst  <monkey@jpobst.com>
13172
13173         * ToolTip.cs: Implement 2.0 Tag property.
13174
13175 2007-06-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13176
13177         * ListView.cs: Implement 2.0 HitTest methods.
13178
13179 2007-06-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13180
13181         * ListViewItem.cs: Add a 2.0 bool Hot property, to tell whether the
13182         item is under the pointer or not (sugar). Also remove the TODO
13183         regarding to the cursor changes in OneClick activation.
13184         * ThemeWin32Classic.cs: When HotTracking is true and we are drawing
13185         the subitems use the parent's HotFont if UseItemStyleForSubItems is
13186         true; otherwise don't show the underline style.
13187
13188 2007-06-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13189
13190         * ListView.cs: In ItemControl.ItemsMouseMove, refactor
13191         the code to retrieve the item at position only one time. Also
13192         change cursor when Activation is ItemActivation.OneClick as well
13193         as invalidate the item if HotTracking is true (to show/hide the
13194         underline style). Add an internal HotItemIndex property to retrieve
13195         the current hot item's index.
13196         * ListViewItem.cs: Add an internal HotFont property to cache the
13197         font used when HotTracking is true and the pointer moves within the
13198         item's borders.
13199         * ThemeWin32Classic.cs: When drawing the item's text, use Font or
13200         HotFont depending on the hot state of the item.
13201
13202 2007-06-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13203
13204         * ListView.cs: Implement 2.0 HotTracking property.
13205
13206 2007-06-21  Jonathan Pobst  <monkey@jpobst.com>
13207
13208         * ToolStripControlHost.cs: If our hosted control never got created,
13209         don't try to dispose it.  [Fixes bug #81909]
13210
13211 2007-06-21  Jonathan Pobst  <monkey@jpobst.com>
13212
13213         * TableLayoutPanel.cs: Implement ScaleCore, ScaleControl.
13214
13215 2007-06-21  Jonathan Pobst  <monkey@jpobst.com>
13216
13217         * TableLayoutPanel.cs: Implement CellBorderStyle.  [Fixes bug #81884]
13218
13219 2007-06-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13220
13221         * ThemeWin32Classic.cs: In OwnerDraw mode draw subitems only for 
13222         Details view.
13223         * DrawListViewColumnHeaderEventArgs.cs:
13224         * DrawListViewSubItemEventArgs.cs: Add padding to the bounds when drawing text
13225         using the DrawText () methods.
13226
13227 2007-06-19  Jonathan Pobst  <monkey@jpobst.com>
13228
13229         * ToolStripProfessionalRenderer.cs: Put back clearing a ToolStripDropDown's
13230         background which got erased in my changes yesterday.
13231
13232 2007-06-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13233
13234         * ListViewItem.cs: Actually set bounds for subitems in Details view
13235         (2.0 feature).
13236         * ThemeWin32Classic.cs: Refactor the drawing code for subitems, so we
13237         can invoke from the owner draw routines if we need it. Also, add
13238         support for Owner draw in Details view.
13239
13240 2007-06-18  Jonathan Pobst  <monkey@jpobst.com>
13241
13242         * ToolStripDropDownMenu.cs, ToolStripItem.cs, ToolStripLabel.cs,
13243         ToolStripMenuItem.cs, ToolStripProfessionalRenderer.cs: Respect the
13244         ShowImageMargin setting, properly align text in a ToolStripLabel
13245         hosted on a ToolStripDropDown.
13246
13247 2007-06-18  Jonathan Pobst  <monkey@jpobst.com>
13248
13249         * ToolStrip.cs, ToolStripContentPanel.cs, ToolStripDropDownMenu.cs,
13250         ToolStripProfessionalRenderer.cs: Refactor and clean up some rendering code.
13251
13252 2007-06-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13253
13254         * DrawListViewSubItemEventArgs.cs: Actually implement its methods.
13255
13256 2007-06-18  Jonathan Pobst  <monkey@jpobst.com>
13257
13258         * ToolStripLabel.cs: If the label is on a dropdown, adjust the text
13259         location to match ToolStripMenuItems.
13260
13261 2007-06-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13262
13263         * DrawListViewColumnHeaderEventArgs.cs:
13264         * ThemeWin32Classic.cs: Implement 2.0 OwnerDraw support for
13265         column headers in ListView. 
13266
13267 2007-06-15  Jonathan Pobst  <monkey@jpobst.com>
13268
13269         * UserControl.cs: Implement AutoSize.
13270
13271 2007-06-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13272
13273         * DrawListViewItemEventArgs.cs:
13274         * ListView.cs:
13275         * ThemeWin32Classic.cs: Implement basic support for 2.0 OwnerDraw in
13276         ListView.
13277
13278 2007-06-15  Jonathan Pobst  <monkey@jpobst.com>
13279
13280         * ToolStripDropDownItemAccessibleObject.cs: Added.
13281         * ToolStripDropDownItem.cs, ToolStripItem.cs, ToolStripMenuItem.cs,
13282         ToolStripOverflow.cs, ToolStripOverflowButton.cs, ToolStripPanel.cs,
13283         ToolStripProgressBar.cs, ToolStripSeparator.cs, ToolStripSplitButton.cs,
13284         ToolStripTextBox.cs: corcompare work.
13285
13286 2007-06-14  Jonathan Pobst  <monkey@jpobst.com>
13287
13288         * OSFeature.cs, StatusStrip.cs, TabControl.cs, TableLayoutSettings.cs,
13289         TableLayoutStyle.cs, TableLayoutCollection.cs, ToolStripContentPanel.cs,
13290         ToolStripControlHost.cs, ToolStripDropDown.cs, ToolStripDropDownButton.cs:
13291                 corcompare.
13292
13293 2007-06-14  Jonathan Pobst  <monkey@jpobst.com>
13294
13295         * OSFeature.cs: Add IsPresent.
13296         * PrintPreviewControl.cs: Add RightToLeft.
13297         * SplitContainer.cs: Add AutoScrollOffset, ScaleControl.
13298         * SplitterPanel.cs: Add AutoSizeMode.
13299
13300 2007-06-13  Jonathan Pobst  <monkey@jpobst.com>
13301
13302         * LayoutEventArgs.cs: Add 2.0 AffectedComponent.
13303         * MdiClient.cs: Add 2.0 ScaleControl.
13304         * NativeWindow.cs: Implement 2.0 interface IWin32Window.
13305         * NumericUpDownAccelerationCollection.cs: Add [ListBinding].
13306
13307 2007-06-13  Jonathan Pobst  <monkey@jpobst.com>
13308
13309         * Form.cs: Implement some scaling methods, stub some RTL methods,
13310         corcompare work.
13311
13312 2007-06-13  Jonathan Pobst  <monkey@jpobst.com>
13313
13314         * Control.cs: corcompare work.
13315         * FlatButtonAppearance.cs, FolderBrowserDialog.cs: Add TypeConverters.
13316
13317 2007-06-13  Jonathan Pobst  <monkey@jpobst.com>
13318
13319         * ControlPaint.cs, Theme.cs, ThemeWin32Classic.cs: Implement
13320         ControlPaint 2.0 stuffs.
13321
13322 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
13323
13324         * ThreadExceptionDialog.cs: Add 2.0 stuffs.
13325
13326 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
13327
13328         * UpDownBase.cs: Add 2.0 stuffs.
13329
13330 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
13331
13332         * NumericUpDown.cs: Add 2.0 stuffs.
13333
13334 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
13335
13336         * NotfiyIcon.cs: Add MouseDoubleClick event, hook up MouseClick event.
13337
13338 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
13339
13340         * ErrorProvider.cs: Implement 2.0 stuffs.
13341
13342 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
13343
13344         * DomainUpDown.cs: Implement 2.0 stuffs.
13345
13346 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
13347
13348         * CheckedListBox.cs: Fix RefreshItems signature.
13349
13350 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
13351
13352         * PictureBox.cs: Implement 2.0 stuffs.
13353
13354 2007-06-12  Andreia Gaita  <avidigal@novell.com>
13355         
13356         * TabControl.cs: Check if there are tabpages before checking
13357         the selected index - fix #81802 (font changes raise a ResizeTabs
13358         call on controls.add, which blew up nicely with no tabpages)
13359
13360 2007-06-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13361
13362         * ListView.cs:
13363         * ListViewItem.cs: Implement 2.0 ItemSelectionChanged event.
13364
13365 2007-06-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13366
13367         * ListView.cs:
13368         * ListViewItem.cs: In VirtualMode the selection information
13369         resides in the ListView, rather than in the Items. Also, throw
13370         InvalidOperationExceptions when VirtualMode is being used and
13371         CheckedItemCollection is accessed.
13372
13373 2007-06-08  Jonathan Pobst  <monkey@jpobst.com>
13374
13375         * ComboBox.cs: Add ScaleControl.
13376
13377 2007-06-08  Jonathan Pobst  <monkey@jpobst.com>
13378
13379         * ButtonBase.cs: ButtonBaseAccessibleObject.State should not be visible to 1.1.
13380
13381 2007-06-08  Jonathan Pobst  <monkey@jpobst.com>
13382
13383         * GroupBox.cs: Add 2.0 stuffs.
13384
13385 2007-06-08  Jonathan Pobst  <monkey@jpobst.com>
13386
13387         * Panel.cs: Add autosize properties/event.
13388
13389 2007-06-07  Jonathan Pobst  <monkey@jpobst.com>
13390
13391         * Control.cs:
13392         - When we remove a control, remove it from the collection before performing the layout.
13393         - Setup an internal property for explicit_bounds.
13394         - Don't let the UpdateBounds in CreateHandle overwrite our explicit bounds.
13395         - Perform a layout when we set a new AutoSizeMode.
13396
13397 2007-06-07  Jonathan Pobst  <monkey@jpobst.com>
13398
13399         * ScrollableControl.cs: Add 2.0 stuffs.
13400
13401 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
13402
13403         * ScrollBar.cs: Add 2.0 stuffs.
13404
13405 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
13406
13407         * Splitter.cs: Add 2.0 stuffs.
13408
13409 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
13410
13411         * SplitContainer.cs: Apply patch from Neil Cawse <neilcawse@geotab.com>
13412         to have BindingContext simply use base implementation.
13413
13414 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
13415
13416         * ColumnHeader.cs: corcompare fix.
13417
13418 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
13419
13420         * Button.cs: corcompare fixes.
13421         * ButtonBase.cs: corcompare fixes, add ButtonBaseAccessibleObject.State.
13422
13423 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
13424
13425         * Button.cs: Override GetPreferredSizeCore.
13426         * ButtonBase.cs: PerformLayout after changing properties that can affect
13427         AutoSize.  Simplify some mouse/keyboard code.
13428         * Control.cs: PerformLayout after changing Padding if AutoSize = true.
13429         * MouseEventArgs.cs: Make Location internal for 1.1.
13430         * TextRenderer.cs: Make MeasureTextInternal (string, Font, bool) internal for 1.1.
13431         * Theme.cs: Add CalculateButtonAutoSize.
13432         * ThemeWin32Classic.cs: Implement CalculateButtonAutoSize.
13433
13434 2007-06-05  Miguel de Icaza  <miguel@novell.com>
13435
13436         * TreeNodeCollection.cs: Applied patch from Neil Cawse <neilcawse@geotab.com>
13437
13438 2007-06-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13439
13440         * ListViewItem.cs: We can't cache Bounds in VirtualMode 
13441         since we can get different item instances every time we retrieve it.
13442
13443 2007-06-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13444
13445         * ListView.cs: Work around for #81602, since an unkown an pretty
13446         infrequent condition appears only in some systems (old linux boxes, it
13447         seems).
13448
13449 2007-06-04  Jonathan Pobst  <monkey@jpobst.com>
13450
13451         * Button.cs: Completely reformat and a little refactor to bring
13452         this closer to Mono circa 2007.
13453
13454 2007-06-04  Jonathan Pobst  <monkey@jpobst.com>
13455
13456         * CheckBox.cs, Form.cs, RadioButton.cs: Change call to ButtonBase.Redraw
13457         to be ButtonBase.Invalidate.
13458
13459 2007-06-04  Jonathan Pobst  <monkey@jpobst.com>
13460
13461         * ButtonBase.cs: GetPreferredSize is 2.0 only.  Fixes build.
13462
13463 2007-06-04  Jonathan Pobst  <monkey@jpobst.com>
13464
13465         * ButtonBase.cs: Completely reformat and a little refactor to bring
13466         this closer to Mono circa 2007.
13467
13468 2007-06-01  Everaldo Canuto  <ecanuto@novell.com>
13469
13470         * Label.cs: Fixes preferred sizes for 2.0 profile, also adjust some
13471         values for autosize. Fixes #80137.
13472
13473 2007-06-01  Jonathan Pobst  <monkey@jpobst.com>
13474
13475         * Control.cs: Don't perform layout when AutoSize changes.
13476         * Form.cs: Perform layout in AutoSize override.  Don't set ClientSize
13477         directly when autosizing, use SetBounds with BoundsSpecified.None.
13478         Fixes unit tests my last commit broke.
13479
13480 2007-06-01  Jonathan Pobst  <monkey@jpobst.com>
13481
13482         * Control.cs: Perform layout when AutoSize changes.
13483         * Form.cs: Implement AutoSizing.
13484
13485 2007-06-01  Chris Toshok  <toshok@ximian.com>
13486
13487         * DataGrid.cs: remove the XXX'ed check at the top of
13488         ProcessGridKey.  fixes #80464.
13489
13490 2007-06-01  Chris Toshok  <toshok@ximian.com>
13491
13492         * DataGridTextBoxColumn.cs: TextBox.TextChanged event handler
13493         adding idempotent (add/remove in Edit()), and also make sure we
13494         don't add it until after we set the text, so it's not tripped in
13495         Edit().  Fixes unit test regression.
13496
13497 2007-06-01  Jonathan Pobst  <monkey@jpobst.com>
13498
13499         * Control.cs: In UpdateBounds, only recalculate anchor distances if the
13500         change is user explicit, not when the layout engine moves stuff.  Fixes
13501         anchoring to bottom and right.  [Fixes bug #81790]
13502
13503 2007-06-01  Andreia Gaita  <avidigal@novell.com>
13504
13505         * PrintDialog.cs: Add collation preview thumbnails. Fixes #80726.
13506
13507 2007-06-01  Andreia Gaita  <avidigal@novell.com>
13508
13509         * ContainerControl.cs: 
13510         Fire enter event for common ancestor if it is not a ContainerControl.
13511         Send focus to the active_control and not the 'value', the active 
13512         control might have been changed in one of the events fired.     
13513         Definitely fixes #80159.
13514
13515 2007-06-01  Andreia Gaita  <avidigal@novell.com>
13516
13517         * DataGrid.cs: Finish editing when focus leave the datagrid. Fixes #80159.
13518
13519 2007-06-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13520
13521         * PropertyGrid.cs: Anchor the help description to the bottom of the
13522           help panel and refactor SelectGridItem into a
13523           SelectGridItemInternal that can be set to null (and update it to
13524           clear the help texts when it is set to null). Set root item to null
13525           when there's no SelectedObject. Fixes #80438.
13526         * ScrollableControl.cs: In Recalculate we need to ResumeLayout(true)
13527           when we're recalculating after a resize (only).
13528
13529 2007-05-31  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13530
13531         * ListView.cs: Implement 2.0 RedrawItems method.
13532
13533 2007-05-31  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13534
13535         * ListControl.cs: Disconnect PositionChanged and ItemChanged
13536         handlers from previous data manager when DataSource is set to
13537         null. Fixes #81771.
13538
13539 2007-05-31  Jackson Harper  <jackson@ximian.com>
13540
13541         * TextBoxBase.cs: These seem to be the correct values.
13542
13543 2007-05-31  Everaldo Canuto  <ecanuto@novell.com>
13544
13545         * FileDialog.cs: When close dialog with ok set filterindex using combobox
13546         value. Fixes #81784.
13547
13548 2007-05-31  Jonathan Pobst  <monkey@jpobst.com>
13549
13550         * Control.cs: Implement 2.0 scaling methods.
13551
13552 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13553
13554         * ProgressBar.cs, WebBrowserBase.cs, Control.cs, MaskedTextBox.cs,
13555           MessageBox.cs, PropertyGrid.cs, RichTextBox.cs: Fix warnings and
13556           corcompare issues.
13557
13558 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13559
13560         * ProgressBar.cs: Implemented missing 2.0 members.
13561
13562 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13563
13564         * Control.cs: Corcompare issues.
13565         * MessageBox.cs: Implemented missing 2.0 functions.
13566
13567 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13568
13569         * CheckedListBox.cs, ListBox.cs, ListControl.cs, ComboBox.cs:
13570           Implemented more 2.0 members.
13571
13572 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13573
13574         * Application.cs: Try to avoid NRE when Assembly.GetEntryAssembly is
13575           null (strange, but it seems to happen when running unit tests).
13576
13577 2007-05-30  Andreia Gaita  <avidigal@novell.com>
13578
13579         * ContainerControl.cs: Set active_control even earlier, before 
13580         firing any events, and undo it if validation returns false.
13581
13582 2007-05-30  Andreia Gaita  <avidigal@novell.com>
13583
13584         * ContainerControl.cs: Raise Validation and Enter/Leave events
13585         even if there is no Form and set active_control earlier, just
13586         before firing Enter events (toshok's patches). Fixes #80647.
13587
13588 2007-05-30  Jackson Harper  <jackson@ximian.com>
13589
13590         * TextControl.cs: Redid the pageup/pagedown a little to simplify
13591         things and fix bug #81311.
13592
13593 2007-05-30  Jackson Harper  <jackson@ximian.com>
13594
13595         * X11Dnd.cs: Now that we have our own event loop, we need to
13596         cancel when we get a mouseup but it won't be accepted.
13597
13598 2007-05-30  Chris Toshok  <toshok@ximian.com>
13599
13600         * DataGrid.cs (set_CurrentCell): guard against negative
13601         column/row.
13602
13603         * DataGridColumnStyle.cs (CheckValidDataSource): just use the
13604         array index syntax instead of looping over the property names.
13605
13606         * DataGridTextBoxColumn.cs: add a changed handler on the textbox,
13607         and set IsInEditOrNavigateMode to false there.
13608
13609 2007-05-30  Jackson Harper  <jackson@ximian.com>
13610
13611         * TreeView.cs: Make sure we don't get a bad visible order when
13612         setting to the top node.  Fixes some misc crashing in
13613         ControlInspector.
13614
13615 2007-05-30  Andreia Gaita  <avidigal@novell.com>
13616
13617         * UserControl.cs: Add 2.0 AutoSizeMode
13618
13619 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
13620
13621         * DataGridTextBoxColumn.cs: Fix textbox horizontal offset.
13622
13623 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
13624
13625         * DataGridTextBoxColumn.cs: Fix textbox position to prevent override grid
13626         lines. Fixes #80285. 
13627
13628 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
13629
13630         * DataGridColumnStyle.cs: Add char trimming column header text format. 
13631
13632 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
13633
13634         * DataGridColumnStyle.cs: Fix grid header arrow drawing over column name. 
13635         Fixes #80147.
13636
13637 2007-05-29  Jackson Harper  <jackson@ximian.com>
13638
13639         * TreeNode.cs: Fix off by one on calculating whether or not a node
13640         is visible.
13641
13642 2007-05-29  Jonathan Pobst  <monkey@jpobst.com>
13643
13644         * Control.cs: ResumeLayout(false) should recalculate anchor distances.
13645         * ScrollableControl.cs: Force an UpdateDistances when we move the
13646         scrollbars.
13647         [Fixes bug #80605]
13648
13649 2007-05-29  Andreia Gaita  <avidigal@novell.com>
13650
13651         * PageSetupDialog.cs: Fix #80728 - Changing the printer doesn't
13652         update the page setup screen.
13653
13654 2007-05-29  Andreia Gaita  <avidigal@novell.com>
13655
13656         * PageSetupDialog.cs: Fix landscape mode.
13657
13658 2007-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13659
13660         * SystemInformation.cs: Add 2.0 IconSizeVerticalSpacing and
13661         IconSizeHorizontalSpacing.
13662
13663 2007-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13664
13665         * ListView.cs: The declaration of prev_tooltip_item should be inside
13666         a NET_2_0 conditional (avoid a warning).
13667
13668 2007-05-28  Andreia Gaita  <avidigal@novell.com>
13669
13670         * PageSetupDialog.cs: Implement PrintPreview control to display
13671         the preview thumbnail. Change unit conversion to use 
13672         PrinterUnitConvert methods.
13673         
13674         Note: there is a huge bug in ms.net where the default margins are 
13675         interpreted as centimeters (?), when in fact they are set in inches. When 
13676         loading the page setup dialog initially (ms.net), the default margins 
13677         are set to 1 inch, and the dialog shows them with value 10, when in fact 
13678         it should be 25 (properly converted). Our dialog doesn't have this bug.
13679         
13680         * Theme.cs, ThemeWin32Classic.cs: Add a CPDrawBorder override for 
13681         RectangleF.
13682         * ControlPaint.cs: Add a DrawBorder internal method for RectangleF.
13683
13684 2007-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13685
13686         * ListView.cs:
13687         * ListViewItem.cs: Implement 2.0 ToolTipText support for listview
13688         items.
13689
13690 2007-05-28  Andreia Gaita  <avidigal@novell.com>
13691
13692         * X11Dnd.cs: A direct cast to VirtualKeys is not allowed from
13693         an IntPtr on csc (it builds fine on mcs, could it be a compiler
13694         bug?), convert the ptr to Int32 first.
13695
13696 2007-05-28  Jackson Harper  <jackson@ximian.com>
13697
13698         * X11Dnd.cs: Add a timer, so after drop, if a finish is not
13699         recieved, we will exit the dnd tracking loop.
13700
13701 2007-05-28  Jackson Harper  <jackson@ximian.com>
13702
13703         * X11Dnd.cs: Keep tracking until the xdnd finished event is
13704         recieved. TODO: I should probably stick a timer on the dropped
13705         event, and finish the drag if the XDND Finished event never shows
13706         (because some apps don't seem to send it).
13707
13708 2007-05-28  Everaldo Canuto  <ecanuto@novell.com>
13709
13710         * ToolBar.cs: Fix toolbar default width for button with image. Fixes
13711         #81733.
13712
13713 2007-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13714
13715         * MonthCalendar.cs: Only mark the keypresses we actually handle as
13716           handled.
13717
13718 2007-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13719
13720         * MonthCalendar.cs: Set the size after initializing all the relevant
13721           variables. Fixes #81742.
13722
13723 2007-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13724
13725         * KeyEventArgs.cs: Fix typo.
13726
13727 2007-05-28  Gert Driesen  <drieseng@users.sourceforge.net>
13728
13729         * DateTimePicker.cs: Changed exceptions thrown by MinDate and MaxDate
13730         to match MS. Fixed MinDate to only accept value less than or equal
13731         to MaxDate on 2.0 profile and less than MaxDate on 1.0 profile.
13732         Removed TODO's that are now verified by unit tests.
13733
13734 2007-05-27  Gert Driesen  <drieseng@users.sourceforge.net>
13735
13736         * TreeNodeCollection.cs: Minor corrections to exceptions to match
13737         MS.
13738
13739 2007-05-25  Jackson Harper  <jackson@ximian.com>
13740
13741         * X11Dnd.cs: Rework to make StartDrag a blocking call that runs
13742         it's own message loop.
13743         * XplatUIX11.cs: Remove some of the dnd hooks
13744
13745 2007-05-25  Gert Driesen  <drieseng@users.sourceforge.net>
13746
13747         * XplatUIX11.cs: Change MinimumWindowSize to {Width=0,Height=0}
13748         instead of MinimizedWindowSize.
13749
13750 2007-05-25  Jackson Harper  <jackson@ximian.com>
13751
13752         * TextBoxBase.cs: Raise textchanged when cutting and pasting text.
13753
13754 2007-05-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13755
13756         * KeyEventArgs.cs: Added SuppressKeyPress.
13757         * Control.cs: Added support for SuppressKeyPress.
13758
13759 2007-05-24  Andreia Gaita  <avidigal@novell.com>
13760
13761         * NumericUpDown.cs: Refactor code to fix regressions on #79950 and
13762         problems with PieChart. suppress_validation should not be a counter,
13763         if there are several BeginInit calls, the first EndInit will 
13764         activate validation. Fix exceptions thrown by set_Value.
13765         * UpDownBase.cs: ValidateText only if it's the user editing it.
13766
13767 2007-05-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13768
13769         * ListControl.cs: FilterItemOnProperty should return the filtered
13770         item proeprty even if DataSource is null. The same applies for
13771         GetItemText. Fixes #80427.
13772
13773 2007-05-24  Jonathan Pobst  <monkey@jpobst.com>
13774
13775         * Control.cs: If a control doesn't have a parent when it's Dock is
13776         set, but it has children, it needs to do a layout.  Fixes some nested
13777         controls issues.  [Fixes bug #81199]
13778
13779 2007-05-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13780
13781         * ComboBox.cs: If there are few items in the drop down list, make it
13782           the exact size the items need, no bigger. Fixes #81612.
13783
13784 2007-05-24  Jonathan Pobst  <monkey@jpobst.com>
13785
13786         * Application.cs: When we have captured the keyboard for a menu,
13787         check for mouse down events in case we need to close the menu.
13788         * Control.cs, Form.cs: Remove mouse down checks for menus.
13789
13790 2007-05-24  Jackson Harper  <jackson@ximian.com>
13791
13792         * TextControl.cs: Handle tabs in non multiline mode a little
13793         differently.
13794
13795 2007-05-24  Jackson Harper  <jackson@ximian.com>
13796
13797         * TextControl.cs: We need to manually break apart tabbed text and
13798         move the tabs, since the system.drawing tabbing mechanism relies
13799         on tab stops.
13800         * TextBoxBase.cs: Move the caret properly when the user enters a
13801         tab.
13802
13803 2007-05-24  Jonathan Pobst  <monkey@jpobst.com>
13804
13805         * ContainerControl.cs: Don't check CanSelect before calling
13806         ProcessMnemonic.
13807         * ToolStrip.cs: Only do implicit mnemonics on MenuStrips.  Don't
13808         release a KeyboardActive on click if it's not ours.
13809
13810 2007-05-23  Andreia Gaita  <avidigal@novell.com>
13811
13812         * ColumnHeader.cs: Add TypeConverter
13813
13814 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
13815
13816         * LinkLabel.cs: Implement LinkCollection.Add with Link parameter (2.0).
13817
13818 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
13819
13820         * LinkLabelLinkClickedEventArgs.cs, LinkLabel.cs: Implement Button property.
13821
13822 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
13823
13824         * LinkLabel.cs: Implement public Padding property.
13825
13826 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
13827
13828         * LinkLabel.cs: Implement public FlatStyle.
13829
13830 2007-05-23  Jonathan Pobst  <monkey@jpobst.com>
13831
13832         * Control.cs: Apply patch from George to call parent.PerformLayout
13833         when Visible is changed.  [Fixes bugs #81118, 81718]
13834
13835 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
13836
13837         * MainMenu.cs, MenuAPI.cs: Implement Collapse event for MainMenu (2.0).
13838
13839 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
13840
13841         * ContextMenu.cs: Implement ProcessCmdKey with control parameter.
13842
13843 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
13844
13845         * ContextMenu.cs: Implement Collapse.
13846
13847 2007-05-23  Rolf Bjarne Kvinge <RKvinge@novell.com>
13848
13849         * ToolBarButton.cs: Implement Name.
13850
13851 2007-05-22  Everaldo Canuto  <ecanuto@novell.com>
13852
13853         * ToolBar.cs: Fix OnButtonDropDown to save item used in dropdown instead of
13854         use current_item, it prevents some NRE. Fixes #81675.  
13855
13856 2007-05-22  Andreia Gaita  <avidigal@novell.com>
13857
13858         * NumericUpDown.cs: Fix PieChart by not returning from UpdateEditText
13859         without updating the text.
13860
13861 2007-05-22  Jonathan Pobst  <monkey@jpobst.com>
13862
13863         * XplatUIWin32.cs: Plug a GDI leak caused by calling Font.ToHfont ()
13864         without calling DeleteObject.  [Should fix bug #81709]
13865
13866 2007-05-22  Jackson Harper  <jackson@ximian.com>
13867
13868         * RichTextBox.cs: Set the line endings correctly, when flushing
13869         RTF text.
13870
13871 2007-05-22  Gert Driesen  <drieseng@users.sourceforge.net>
13872
13873         * XplatUIX11.cs: MinimumWindowSize on X11 is actually
13874          {Width=0,Height=0}.
13875
13876 2007-05-22  Jackson Harper  <jackson@ximian.com>
13877
13878         * TreeView.cs: Setting top with a null node should set to the very
13879         top.
13880
13881 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13882
13883         * Form.cs: ShowDialog: destroy the handle when message loop is
13884           finished, matches MS behaviour. Refactor parts of WmClose into
13885           RaiseCloseEvents, that only raises events if they haven't already
13886           been raised. Fixes #81688 and #81521.
13887         * Application.cs: Don't call close on the form when exiting a modal
13888           loop, it will raise all the (Form)Closed/Closing events again if
13889           WM_CLOSE has been sent earlier on, instead call RaiseCloseEvent,
13890           which doesn'r raise any events it they have been raised before.
13891
13892 2007-05-22  Jonathan Pobst  <monkey@jpobst.com>
13893
13894         * Control.cs: Add OnPrint.
13895         * ToolStrip.cs: Add GetChildAtPoint.
13896         * ToolStripContainer.cs: Add OnRightToLeftChanged.
13897         * ToolStripRenderer.cs: Make CreateMirrorImage internal.
13898
13899 2007-05-22  Everaldo Canuto  <ecanuto@novell.com>
13900
13901         * MenuAPI.cs: Prevent context menu to be typed as MainMenu. Fixes #81509.  
13902
13903 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13904
13905         * InternalWindowManager.cs: ToolTipShow: Don't show tooltip if the form
13906           isn't visible anymore. Fixes #81651.
13907
13908 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13909
13910         * Control.cs: WmShowWindow: Update children's z-order after setting
13911           their parent. SetParent may show the window, thereby corrupting
13912           z-order, since the window will be shown on top.
13913         * XplatUIWin32.cs: SetParent: don't call SetVisible on forms. Prevents
13914           multiple (and redundant) WM_SHOWWINDOW messages.
13915         * MdiWindowManager.cs: RaiseDeactivate: only raise after an Activate
13916           event has already been raised.
13917         * Form.cs: Change is_changing_visible_state to a counter, since
13918           SetVisibleCore can be called recursively. CreateHandle: when
13919           creating mdi children, send (De)Activated events.
13920         * MdiClient.cs: Update use of is_changing_visible_state.
13921         * Application.cs: OnThreadException: Surround exception handling with
13922           try/finally to ensure we always reset the error-handling state
13923           before leaving.
13924
13925 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13926
13927         * ThemeWin32Classic.cs: DrawProgressBar: Avoid a DivideByZero exception
13928           (#81704).
13929
13930 2007-05-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13931
13932         * ListView.cs: Use Theme.ListViewHorizontalSpacing for List and
13933         SmallIcon views, now that we have a standarized horizontal spacing.
13934
13935         * ThemeWin32Classic.cs: ListViewHorizontalSpacing now has a value of
13936         4, just like the other views (Match .Net).
13937
13938 2007-05-21  Jonathan Pobst  <monkey@jpobst.com>
13939
13940         * Control.cs: Delay calculating anchor distances until we actually layout.
13941         Always query the WM for the actual size and location it put us at instead of
13942         only when we send negative values.
13943         [Fixes bugs #81694, 81695]
13944
13945 2007-05-21  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13946
13947         * Application.cs: Avoid a possible stack overflow when trying to exit
13948           the application.
13949
13950 2007-05-19  Marek Safar  <marek.safar@gmail.com>
13951
13952         * Theme.cs (GetHatchBrush): A key uses internal value instead of formated
13953         enum value.
13954
13955 2007-05-19  Andreia Gaita  <avidigal@novell.com>
13956
13957         * NumericUpDown.cs: Added 2.0 methods (spin acceleration)
13958         * NumericUpDownAcceleration.cs, 
13959           NumericUpDownAccelerationCollection.cs: Added 2.0
13960           implementation.
13961
13962 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
13963
13964         * RichTextBox.cs: Recalculate the document after the ScrollBars
13965         property is changed. Fixes bug #81681.
13966
13967 2007-05-18  Jonathan Pobst  <monkey@jpobst.com>
13968
13969         * DataObject.cs: Implement 2.0 methods.
13970
13971 2007-05-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13972
13973         * ThemeWin32Classic.cs: Draw the check marks in ListViewItems
13974         in the center of the checkbox, not in the left-top corner. 
13975         Fixes #80037.
13976
13977 2007-05-18  Jackson Harper  <jackson@ximian.com>
13978
13979         * RichTextBox.cs: Recalculate the document after the scrollbars
13980         property is changed.
13981         * TextBoxBase.cs: ScrollBars is not a flags enum...This fixes
13982         81486.
13983
13984 2007-05-18  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13985
13986         * CreateParams.cs: Make HasWindowManager marginally faster.
13987         * XplatUIX11.cs, Hwnd.cs: CreateWindow: Move the default location code
13988           into Hwnd so that other drivers can use it as well.
13989         * XplatUIWin32.cs: CreateWindow: If the window has a window manager get
13990           the default location from Hwnd. Fixes MDI client windows always
13991           showing up at (0,0) in Windows (Win32 won't set the default
13992           location since the window styles aren't correct).
13993
13994 2007-05-18  Gert Driesen  <drieseng@users.sourceforge.net>
13995
13996         * TreeView.cs: Modified DoubleBuffered to just use the base
13997         implementation.
13998
13999 2007-05-18  Jackson Harper  <jackson@ximian.com>
14000
14001         * TreeView.cs: Set the top node to the last child node when
14002         expanding all
14003         - When we get focus, if there is no selected node, use the top
14004         node.
14005
14006 2007-05-18  Jonathan Pobst  <monkey@jpobst.com>
14007
14008         * KeysConverter.cs: Add CanConvertTo.
14009         * LinkLabel.cs: Add some 2.0 constructors and properties to LinkLabel.Link.
14010         * LinkConverter.cs: Added.
14011
14012 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
14013
14014         * Cursor.cs: Apply Sebastien patch from #81669 to open file in read mode,
14015         it prevents error when file dont have write access. Fixes #81669 and #81667.  
14016
14017 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
14018
14019         * ThemeWin32Classic.cs: Check for ShowKeyboardCues true when draw toolbar 
14020         button text. Fixes #79640.  
14021
14022 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
14023
14024         * Control.cs: According to MSDN controls created in the designer theres 
14025         keyboard accelerators visible by default. So included check for design
14026         in ShowKeyboardCuesInternal.  
14027
14028 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
14029
14030         * ThemeWin32Classic.cs: Check for ShowKeyboardCues true when draw combobox 
14031         text. Fixes #81621.  
14032
14033 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
14034
14035         * Control.cs: ShowKeyboardCuesInternal add to expose ShowKeyboardCues
14036         for 1.0, becuse ShowKeyboardCues is protected on 1.0.  
14037
14038 2007-05-17  Everaldo Canuto  <ecanuto@novell.com>
14039
14040         * Control.cs: Finish implementation of UI State using WmChangeUIState
14041         to send WM_UPDATEUISTATE to all child controls. Some hack will be needed
14042         in some controls to check for show_keyboard_cues to draw accell keys "_".  
14043
14044 2007-05-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14045
14046         * ListBox.cs: When calculating the horizontal scrollbar
14047         in single column mode, don't use values less than 0 for
14048         Maximum. Fixes #81474.
14049
14050 2007-05-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14051
14052         * ListBox.cs: Throw the some missing exceptions in
14053         ListBox.ObjectCollection methods.
14054
14055 2007-05-17  Jackson Harper  <jackson@ximian.com>
14056
14057         * TextBoxBase.cs: Recalculate the document when the word wrap
14058         value has changed. This fixes 81488.
14059
14060 2007-05-17  Jonathan Pobst  <monkey@jpobst.com>
14061
14062         * Clipboard.cs: Implement missing GetText overload.
14063
14064 2007-05-17  Chris Toshok  <toshok@ximian.com>
14065
14066         * Control.cs (CheckDataBindings): remove the binding_context arg
14067         to binding.Check.
14068
14069         * CurrencyManager.cs (OnItemChanged): fix this now that
14070         BindingManagerBase is fixed. also remove the comment telling where
14071         the fix should go.  We set transfering_data to true/false around
14072         the call to PushData to keep UpdateIsBinding from being called.
14073         (ListChangedHandler): remove the extra OnMetaDataChanged call for
14074         PropertyDescriptorAdded in the 1.1 case.  The extra call is
14075         actually generated by System.Data generating 2 metadata changed
14076         events of its own per column add.  The fix should go there.  Add a
14077         comment to that affect in our test's Assert.Ignore.
14078
14079         * BindingManagerBase.cs: Rework PullData and PushData slightly.
14080         we keep a boolean flag (transfering_data) that keeps us from
14081         calling UpdateIsBinding multiple times if we re-enter either of
14082         them.
14083
14084         * ControlBindingsCollection.cs (AddCore): remove the
14085         binding_context arg to binding.Check.
14086
14087         * Binding.cs (IsBinding): don't check if we're binding here, just
14088         return our cached value.  we update it in UpdateIsBinding.
14089         (Check): don't take the binding_context arg, we'll just use our
14090         control's.  Also, for some reason MS doesn't use the data member
14091         field when getting the bindingmanager for this binding.  it just
14092         uses the datasource.  Make this method callable multiple times,
14093         and only do the is_null_desc stuff if manager.Position != -1 (so
14094         we don't get an exception accessing manager.Current).
14095         (UpdateIsBinding): move the code from IsBinding here.
14096         (PositionChangedHandler): call Check here to we can initialize
14097         things that require a non- -1 position.
14098
14099 2007-05-17  Everaldo Canuto  <ecanuto@novell.com>
14100
14101         * Form.cs: When alt keys is pressed send WM_CHANGEUISTATE to top level
14102         control.
14103
14104 2007-05-17  Andreia Gaita  <avidigal@novell.com>
14105
14106         * TabControl.cs: Add 2.0 methods and events, including
14107         OnEnter / OnLeave and raises it for tabpages (fixes #79869)
14108         * TabPage.cs: Add 2.0 methods
14109
14110 2007-05-17  Everaldo Canuto  <ecanuto@novell.com>
14111
14112         * Control.cs: Implement WmUpdateUIState, show_focus_cues and
14113         keyboard_cues is properly handled by message method.  
14114
14115 2007-05-17  Jonathan Pobst  <monkey@jpobst.com>
14116
14117         * TreeViewImageIndexConverter.cs: Add 2.0 methods.
14118
14119 2007-05-17  Jonathan Pobst  <monkey@jpobst.com>
14120
14121         * ToolStripTextBox.cs: Wire up new 2.0 Textbox methods/properties.
14122
14123 2007-05-16  Everaldo Canuto  <ecanuto@novell.com>
14124
14125         * Control.cs: 
14126         - WmUpdateUIState added to handle state changes, it make call to
14127         OnChangeUICues event.
14128         - Fixed ShowKeyboardCues to check for MenuAccessKeysUnderlined in
14129         SystemInformation.
14130
14131 2007-05-16  Jonathan Pobst  <monkey@jpobst.com>
14132
14133         * ImageKeyConverter.cs: Added.
14134         * TreeViewImageKeyConverter.cs: Added.
14135
14136 2007-05-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14137         
14138         * ToolTips.cs: Update Text if SetToolTip is called for a control
14139         already showing the tooltip, as well as restarting its timer; show
14140         tooltip if we are inside the control bounds by the time of calling
14141         SetToolTip. Inside ShowTooltip remove the check to not show the 
14142         tooltip again for the active control (it is allowed by .Net to 
14143         show the tooltip on the same control multiple times).
14144
14145 2007-05-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14146
14147         * MaskedTextBox.cs: Small fix for Text that fixes a broken test.
14148
14149 2007-05-16  Andreia Gaita <avidigal@novell.com> 
14150
14151         * ContainerControl.cs: only process tab key if there are no 
14152         modifier keys present, otherwise the control does the 
14153         tab processing, if it needs to. Fixes #81622
14154         * TabControl.cs: Fixes calculation for which tab to select on
14155         shift+ctrl+tab.
14156
14157 2007-05-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14158
14159         * MaskedTextBox.cs: Small fix for Text that fixes a broken test.
14160
14161 2007-05-15  Jonathan Pobst  <monkey@jpobst.com>
14162
14163         * Control.cs: Make IsInputCharInternal to allow controls to
14164         override it and still match MS API.
14165         * TextBoxBase.cs: Override IsInputCharInternal and always
14166         return true.
14167         [Fixes bug #81616]
14168
14169 2007-05-15  Jackson Harper  <jackson@ximian.com>
14170
14171         * TextBox.cs: Disable some of the menu options when using a
14172         readonly textbox.
14173
14174 2007-05-15  Jackson Harper  <jackson@ximian.com>
14175
14176         * TextBox.cs:
14177         * TextBoxBase.cs:
14178         * RichTextBox.cs: Some new 2.0 methods
14179
14180 2007-05-15  Gert Driesen  <drieseng@users.sourceforge.net>
14181
14182         * FileDialog.cs: On 1.0 profile, do not support multidotted 
14183         extensions.
14184
14185 2007-05-14  Jackson Harper  <jackson@ximian.com>
14186
14187         * TextBoxBase.cs: Implement some of the new 2.0 methods.
14188         * RichTextBox.cs: We need to override these methods on 2.0.
14189         * MaskedTextBox.cs: These are implemented now
14190         * TextControl.cs: This was off by one.
14191
14192 2007-05-14  Jackson Harper  <jackson@ximian.com>
14193
14194         * TextControl.cs: Because the line endings are including in the
14195         text, we don't need to add them in anymore.
14196
14197 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
14198
14199         * ToolBar.cs: Fix autosize and get it working only after hadle is created,
14200         also prevent redraw in set_autosize if handle is not created. Fixes #81523.
14201
14202 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
14203
14204         * ToolBar.cs: Adjust size to default size when button theres no text and
14205         image, it fixes remaining issues from #81524.
14206
14207 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
14208
14209         * ToolBar.cs: 
14210         - When not flat call redraw to recalculate sizes on creare handle to match
14211         win32 behavior.
14212         - Revert 77220 because it causes some regressions in toobar
14213         button.
14214
14215 2007-05-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14216
14217         * MaskedTextBox.cs: Update the base text whenever the text changes. MTB
14218           now actually enters a usable state.
14219
14220 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
14221
14222         * ToolBar.cs: Check for handle created in redraw to prevent unneeded size
14223         calculations, it reduces the size cauculation from 7 to 3 on a toolbar with
14224         3 buttons.
14225
14226 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
14227
14228         * ToolBar.cs: Save default_size on create handle to use later for buttons
14229         without text, needed to mimic win32 behavior.
14230
14231 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
14232
14233         * ToolBar.cs: Fix button layour to best fit width or height according to
14234         vertical or not. Fixes #81524.
14235
14236 2007-05-10  Everaldo Canuto  <everaldo@simios.org>
14237
14238         * ToolBarButton.cs: When change style call ToolBar.Redraw to update
14239         toolbar size info because different styles theres different sizes.
14240         Fixes #81522.
14241
14242 2007-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14243
14244         * ThemeWinClassic.cs: For .Net 2.0 don't draw any image
14245         if we are using checkboxes, checked is true, and we have less
14246         than two images in StateImageList; for the 1.1 in the same scenario
14247         draw the first image if we have at least one image in StateImageList.
14248         Fixes part of #81191.
14249
14250 2007-05-10  Jonathan Pobst  <monkey@jpobst.com>
14251
14252         * ToolStrip.cs, ToolStripManager.cs: We need to remove items from
14253         the owner's Items collection on merge.
14254
14255 2007-05-10  Jonathan Pobst  <monkey@jpobst.com>
14256
14257         * ToolStrip.cs: Use new internal ToolStripItemCollection constructor.
14258         * ToolStripItemCollection.cs: Lots of fixes to when events get called
14259         and parent/owner gets changed based on gert's unit tests.
14260
14261 2007-05-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14262
14263         * MaskedTextBox.cs: Started implementing parts of it.
14264
14265 2007-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14266
14267         * ListView.cs: When clicking the checkbox on the items
14268         take into account the double clicks even if we have only
14269         one image in StateImageList (only for 1.0/1.1). Also 
14270         generate an extra change of checked state when we receive
14271         the second click on checkbox (match .Net behaviour). 
14272         Fixes part of #81191.
14273
14274 2007-05-10  Everaldo Canuto  <everaldo@simios.org>
14275
14276         * ThemeWin32Classic.cs: Fix text rectangles in Tooltips.
14277
14278 2007-05-10  Jonathan Pobst  <monkey@jpobst.com>
14279
14280         * Form.cs: Move some of OnLoad to OnLoadInternal so it gets called
14281         even if OnLoad is overriden and base.OnLoad is not called.
14282         [Fixes bug #81582]
14283
14284 2007-05-10  Andreia Gaita  <avidigal@novell.com>
14285
14286         * TableLayoutSettings.cs: A big doh! fix and bowing down of head in 
14287         shame. (I blame my ever-persisting and annoying cold)
14288
14289 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
14290
14291         * ListView.cs: Don't eat navigation keys.  Let them flow through to
14292         KeyDown/KeyPress routines.  [Fixes bug #81569]
14293
14294 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
14295
14296         * ListView.cs: When handling keys for selecting the item based off
14297         keyboard input, do not consider keys pressed with Alt or Control.  Also,
14298         correctly handle keys when the Shift key is down. [Fixes bug #81578]
14299
14300 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
14301
14302         * Control.cs: When using UseWaitCursor, we have to store the requested
14303         Cursor to use when UseWaitCursor is turned off.
14304
14305 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
14306
14307         * Control.cs: Implement PreProcessControlMessage.  Default IsInputChar
14308         to false.
14309         * Application.cs: Use PreProcessControlMessage instead of
14310         PreProcessMessage.
14311         * PreProcessControlMessage.cs: Make internal for 1.1.
14312
14313 2007-05-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14314
14315         * Control.cs: Add InternalContains focus property, which hast the same
14316         functionality of ContainsFocus, but also including implicit controls.
14317         * ListViewItem.cs: Use InternalContainsFocus instead of ContainsFocus,
14318         since we need to know if the focus is contained in our implicit
14319         ItemControl when calculating Layout. Fixes part of #80888.
14320
14321 2007-05-08  Everaldo Canuto  <everaldo@simios.org>
14322
14323         * ToolTip.cs: Remove center form string alignment as it must be align to
14324         left.
14325
14326 2007-05-08  Jonathan Pobst  <monkey@jpobst.com>
14327
14328         * ToolStripItemCollection.cs: Set the new item's parent and owner
14329         in Insert like we do in Add.  [Fixes bug #81568]
14330
14331 2007-05-08  Jackson Harper  <jackson@ximian.com>
14332
14333         * TreeView.cs: GotFocus differences between 1.1 and 2.0.
14334         - Off by one error in SetTop
14335         - Disable DoubeBuffering
14336         
14337 2007-05-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14338
14339         * ScrollableControl.cs: ScrollIControlntoView: we now only move the
14340           control as much as necessary in order to make it entirely visible,
14341           instead of centering the control in the container (matches MS
14342           behaviour). CalculateCanvasSize: we need to take the current scroll
14343           position into account when calculating the maximum canvas,
14344           otherwise the following scenario will fail: resize so that the
14345           scrollbars appear, use the scrollbars to scroll, resize again
14346           smaller, and now the canvas size is too small. Recalculate: when
14347           showing scrollbars make sure they start off at 0, and try to scroll
14348           the active control into view. Fixes #79540. HandleScrollBar: don't
14349           scroll anywhere if the scrollbar isn't visible.
14350
14351 2007-05-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14352
14353         * ListView.cs: When focus changed, call Layout/Invalidate
14354         in the focused item to update the selected state (should show
14355         entire label when ListView is focused, and a part of it if is not).
14356         * ListViewItem.cs: When doing layout for LargeIcon, take into account
14357         for displaying the entire label not only the Focused state of the
14358         item, but also the Focused state of the ListView (match .Net
14359         behaviour).
14360
14361 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
14362
14363         * Control.cs: Stub CanRaiseEvents, IsMirrored, and NotifyClients.
14364         Implement UseWaitCursor. 
14365
14366 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
14367         Applying contributed patch from Sergey Volk.
14368
14369         * Clipboard.cs: Implement SetDataObject retry logic and new overload
14370         of SetDataObject.
14371         * XplatUIWin32.cs: Throw an ExternalException if the clipboard set fails.
14372
14373 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
14374
14375         * Control.cs: Implement DrawToBitmap.
14376
14377 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
14378         Applying contributed patch from Stefan Noack.
14379         
14380         * Control.cs: Add [Get|Set]AutoSizeMode.
14381
14382 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
14383
14384         * MdiClient.cs: Unmerge menus when the last child is closed.
14385
14386 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
14387
14388         * ToolStrip.cs: Do not call BeginMerge on DropDowns.
14389         * ToolStripManager.cs: Call Merge on DropDowns.
14390         [Fixes bug #81477]
14391
14392 2007-05-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14393
14394         * XplatUIWin32.cs: Changed Win32CreateWindow to take enums instead of
14395           uints.
14396         * Form.cs: CreateParams: don't set WS_VISIBLE if we're changing
14397           visibility. We can't create forms visible, since we have to set the
14398           owner before making the form visible (otherwise Win32 will do
14399           strange things with task bar icons). The problem is that we set the
14400           internal is_visible to true before creating the control, so
14401           is_changing_visible_state is the only way of determining if we're
14402           in the process of creating the form due to setting Visible=true -
14403           this works because SetVisibleCore explicitly makes the form
14404           visibile afterwards anyways. Fixes #80775.
14405
14406 2007-05-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14407
14408         * ThemeWin32Classic.cs: When drawing ListViewItems,
14409         use StringTrimming.EllipsisCharacter if the view is Tile, Details,
14410         or LargeIcon _and_ item is not focused (match .Net behaviour).
14411
14412 2007-05-04  Jonathan Pobst  <monkey@jpobst.com>
14413
14414         * Control.cs, Form.cs: Fix some obsolete method warnings.
14415
14416 2007-05-04  Jonathan Pobst  <monkey@jpobst.com>
14417
14418         * Control.cs: Implement GetChildAtPoint and OnParentCursorChanged.
14419         * GetChildAtPointSkip.cs: Make internal for 1.1 profile.
14420
14421 2007-05-04  Andreia Gaita  <avidigal@novell.com>
14422
14423         * ContainerControl.cs: Fix active_control attribution when going
14424         up the parent chain so that the first parent container gets the control
14425         and the rest of the parent containers get the child containers (skips
14426         non-containers). Fixes #80729
14427
14428 2007-05-04  Randolph Chung  <tausq@debian.org>
14429
14430         * FileDialog.cs: Implement the SupportMultiDottedExtensions property.
14431         [Fixes bug #81499]
14432
14433 2007-05-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14434
14435         * XplatUIX11.cs: Add a TranslateWindowSizeToXWindowSize overload that
14436           takes a size parameter, since the CreateParam's size isn't true for
14437           minimized forms. Fixes #81518,
14438
14439 2007-05-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14440
14441         * Form.cs: Add OnDeactivateInternal.
14442         * MdiClient.cs: Raise Deactivate event. Fixes #81409.
14443
14444 2007-05-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14445
14446         * DateTimePicker.cs: CalculateDropDownLocation: do a null check before
14447           accessing the parent. Fixes #81508.
14448
14449 2007-05-03  Chris Toshok  <toshok@ximian.com>
14450
14451         * CurrencyManager.cs (CurrencyManager.ListChangeHandler): in the
14452         2.0 block, pass listposition + 1 to ChangeRecordState when a row
14453         was added before the current listposition.  Fixes the
14454         TestInsertRowBeforeCurrent unit test.
14455
14456 2007-05-03  Jonathan Pobst  <monkey@jpobst.com>
14457
14458         * Application.cs: Add RaiseIdle.
14459         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
14460         XplatUIX11.cs: Implement RaiseIdle.
14461
14462 2007-05-02  Jonathan Pobst  <monkey@jpobst.com>
14463         corcompare work: N - Z
14464         * NotifyIcon.cs
14465         * ProgressBar.cs
14466         * RadionButton.cs
14467         * ScrollableControl.cs
14468         * SplitContainer.cs
14469         * SplitterPanel.cs
14470         * StatusBar.cs
14471         * SystemInformation.cs
14472         * TabControl.cs
14473         * TableLayoutControlCollection.cs
14474         * TableLayoutPanel.cs
14475         * TabPage.cs
14476         * ToolBar.cs
14477         * ToolBarButton.cs
14478         * ToolStrip.cs
14479         * ToolStripComboBox.cs
14480         * ToolStripContainer.cs
14481         * ToolStripContentPanel.cs
14482         * ToolStripDropDown.cs
14483         * ToolStripDropDownItem.cs
14484         * ToolStripDropDownMenu.cs
14485         * ToolStripItem.cs
14486         * ToolStripItemCollection.cs
14487         * ToolStripMenuItem.cs
14488         * ToolStripPanel.cs
14489         * ToolStripSplitButton.cs
14490         * ToolTip.cs
14491         * TreeNode.cs
14492         * TreeNodeCollection.cs
14493         * TreeNodeMouseHoverEventArgs.cs
14494         * TreeView.cs
14495
14496 2007-05-01  Everaldo Canuto  <everaldo@simios.org>
14497
14498         * ContextMenu.cs: Add public method Show with alignment property to 2.0
14499         stuff. Thanks aatdark for the patch. 
14500
14501 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
14502
14503         * GridItem.cs: Implement 2.0 Tag property.
14504
14505 2007-05-01  Frederik Carlier <frederik.carlier@carlier-online.be> 
14506
14507         * TreeNodeCollection.cs: Fix ContainsKey and IndexOfKey methods to use
14508         count instead of Nodes.Length.  [Fixes bug #81448]
14509
14510 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
14511
14512         * ComboBox.cs: Fix paramName sent to ArgumentOutOfRangeException's.
14513         [Fixes bug #81506]
14514
14515 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
14516         corcompare work: A - M
14517         * BindingNavigator.cs
14518         * Button.cs
14519         * ButtonBase.cs
14520         * CheckBox.cs
14521         * Control.cs
14522         * FlowLayoutPanel.cs
14523         * Form.cs
14524         * Label.cs
14525         * LinkLabel.cs
14526         * ListView.cs
14527
14528 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
14529
14530         * Application.cs: Give toolstrips a chance to process mnemonics.
14531         * ToolStrip.cs, ToolStripDropDownButton.cs, ToolStripItem.cs,
14532         ToolStripItemTextRenderEventArgs.cs, ToolStripLabel.cs,
14533         ToolStripMenuItem.cs, ToolStripSplitButton.cs: Implement keyboard mnemonics.
14534
14535 2007-05-01  Jackson Harper  <jackson@ximian.com>
14536
14537         * TextBoxBase.cs: Better preferred height, FixedSingle gets the
14538         wider area too.
14539         - Don't set the BoundsSpecified
14540
14541 2007-04-30  Jonathan Pobst  <monkey@jpobst.com>
14542
14543         * Application.cs: When using the toolstrip shortcut mechanism, allow the
14544         message to pass through to a regular control if it hosted by a toolstrip.
14545         * ToolStrip.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
14546         ToolStripManager.cs: Enable keyboard navigation for ToolStrips.
14547
14548 2007-04-30  Jonathan Pobst  <monkey@jpobst.com>
14549
14550         * TextRenderer.cs: Use the flags argument when using the MeasureString
14551         fallback algorithm.
14552
14553 2007-04-30  Jonathan Pobst  <monkey@jpobst.com>
14554
14555         * MenuStrip.cs: Don't let multiple ToolStripSeparators get added to
14556         the MDI menu item.  [Fixes bug #81483]
14557
14558 2007-04-30  Gert Driesen  <drieseng@users.sourceforge.net>
14559
14560         * DataGridViewColumn.cs: Initialize value of headercell to zero-length
14561         string. When setting Name to null, use zero-length string instead.
14562
14563 2007-04-29  Andreia Gaita  <avidigal@novell.com>
14564
14565         * TabControl.cs: Implement missing 2.0 methods (SelectTab, 
14566         DeselectTab). Implement missing 2.0 TabPageCollection methods
14567         (Add, ContainsKey, RemoveByKey, IndexOfKey)
14568
14569 2007-04-29  Pedro Martínez Juliá  <pedromj@gmail.com>
14570
14571         * DataGridViewColumn.cs: Make HeaderText take preference over Name.
14572
14573 2007-04-29  Gert Driesen  <drieseng@users.sourceforge.net>
14574
14575         * RichTextBox.cs: In LoadFile, use StreamReader to read plain text.
14576         Fixes bug #81479. Include details of exception when LoadFile fails.
14577
14578 2007-04-28  Alan McGovern <alan.mcgovern@gmail.com>
14579
14580         * DrawListViewSubItemEventArgs.cs: Added missing setter
14581
14582 2007-04-27  Andreia Gaita  <avidigal@novell.com>
14583
14584         * ToolTip.cs: Add missing 2.0 properties. Implement 2.0 Show and 
14585         Hide methods (not complete). Implement missing 2.0 OnPopup event.
14586
14587 2007-04-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14588
14589         * ListView.cs: In ItemControl.OnMouseDown restore a pair of braces I
14590         removed in ly last commit (it was breaking the Label edit feature).
14591
14592         * ThemeWin32Classic.cs: When drawing a ListViewItem use
14593         StringAlignment.Near for LineAlignment (match .Net).
14594
14595 2007-04-27  Andreia Gaita  <avidigal@novell.com>
14596
14597         * TabControl.cs: Change SetTab so it adds the tabpage to the list
14598         of controls if it isn't already there - was blowing up when doing
14599         tabcontrol.TabPages[i]=new TabPage(). 
14600         SetTab now does a replace by removing the page at the index. 
14601         Add a new InsertTab method that inserts a page in a given index 
14602         instead of replacing. 
14603         Implements TabPageCollection.Insert(int, TabPage).
14604
14605 2007-04-27  Chris Toshok  <toshok@ximian.com>
14606
14607         * BindingManagerBase.cs: fill in CurrentItemChanged (and have an
14608         internal handler that can be invoked from our subclasses.)  Also,
14609         add a comment to PushData about how we need to fix it.
14610
14611         * CurrencyManager.cs: tons of changes here.  trying to get things
14612         matching the behavior of .net wrt event orders (ItemChanged,
14613         CurrentChanged, PositionChanged.)  I've implemented a private .net
14614         symbol (ChangeRecordState) that appears in stack traces because
14615         it's actually easier to do this than to effective inline all its
14616         various behaviors at every call site.
14617
14618         * RelatedPropertyManager.cs: guard against an exception here by
14619         not using parent.Current if the position is set to -1 (if the
14620         parent datasource is cleared, for instance).
14621
14622         * Binding.cs: don't parse data in PushData (this might be wrong,
14623         but it jives with MS's behavior.)  Also, don't call PushData when
14624         we get a CurrentChanged event.
14625
14626 2007-04-27  Andreia Gaita  <avidigal@novell.com>
14627
14628         * WebBrowser.cs,
14629           WebBrowserBase.cs,
14630           WebBrowserSiteBase.cs,
14631           HtmlDocument.cs: Added stubbed out classes, no real implementations 
14632           yet.
14633
14634 2007-04-27  Everaldo Canuto  <everaldo@simios.org>
14635
14636         * MainMenu.cs: In draw method without parameters call draw method with 
14637         PaintEvent, another one (just rect) adjust rectangle and we dont need it
14638         as Rect property is already adjusted. Fixes #80694.
14639
14640 2007-04-27  Jonathan Pobst  <monkey@jpobst.com>
14641
14642         * Application.cs: Need to handle keyboard menu deselection here.
14643         * Control.cs: Use WM_SYSKEYUP instead of WM_SYSCOMMAND to start menu keyboard
14644         navigation, allowing keyboard to work on X11.
14645         * ToolStrip.cs: Don't worry about handling the Menu key here anymore.
14646
14647 2007-04-27  Everaldo Canuto  <everaldo@simios.org>
14648
14649         * MenuAPI.cs: When deactivate menu verify if hotkey (_) is active and redraw
14650         menu bar. It fixes some drawing issues in menu bar.
14651
14652 2007-04-27  Everaldo Canuto  <everaldo@simios.org>
14653
14654         * MenuAPI.cs: Remove unneeded "keynav_state = KeyNavState.Idle" before 
14655         Deactivate calls, Deactivate method already do it. Also ser ActiveTracker
14656         when <alt> key is pressed.
14657
14658 2007-04-26  Everaldo Canuto  <everaldo@simios.org>
14659
14660         * XplatUIX11.cs: Simplify SystrayRemove to be like other libraries,     Gtk as 
14661         example just set visible to false and make this prevent from other problems.
14662         In SystrayAdd always remove pending expose. Fixes #81072.
14663
14664 2007-04-26  Marek Safar  <marek.safar@gmail.com>
14665
14666         * TextBoxBase.cs (CaretMoved): Consider scroll maximum when scroll
14667         value is set.
14668
14669 2007-04-26  Alan McGovern <alan.mcgovern@gmail.com>
14670
14671         * ListView.cs: Added three missing 2.0 events and corresponding
14672         EventHandlers. Added the OwnerDraw property.
14673         * DrawListViewColumnHeaderEventHandler.cs: fixed typo
14674
14675 2007-04-26  Alan McGovern <alan.mcgovern@gmail.com>
14676
14677         * DrawListViewItemEventArgs.cs
14678         * DrawListViewSubItemEventArgs.cs: Brought classes up to 2.0 status.
14679
14680 2007-04-26  Alan McGovern <alan.mcgovern@gmail.com>
14681
14682         * TextControl.cs: Fixed typo in constructor
14683
14684 2007-04-26  Jonathan Pobst  <monkey@jpobst.com>
14685
14686         * Application.cs: Create a shortcut path so that currently selected
14687         MenuStrips can intercept keyboard events without having focus.
14688         * Control.cs: Handle WM_SYSCOMMAND message to activate MenuStrips.
14689         * MenuStrip.cs, ToolStrip.cs, ToolStripDropDown.cs, ToolStripDropDownItem.cs,
14690         ToolStripItem.cs, ToolStripManager.cs, ToolStripMenuItem.cs: Support
14691         keyboard navigation (arrows, tab, enter, esc) on Windows.  Still need to
14692         generate WM_SYSCOMMAND message in X11 for other platforms.
14693         * ToolStripProfessionalRenderer.cs: ToolStripMenuItems need to be painted
14694         in OnRenderMenuItemBackground instead of OnRenderButtonBackground.
14695         * ToolStripSplitButton.cs: Add DefaultItem property.
14696         
14697 2007-04-26  Everaldo Canuto  <everaldo@simios.org>
14698
14699         * MainMenu.cs: In OnMenuChanged pass PaintEventArgs to Draw method, it
14700         fixes some menu draw problem on Windows with border diferent from default
14701         it also fixes #81403.
14702
14703 2007-04-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14704
14705         * Form.cs: Refactor WndProc into separate methods, just like Control is
14706           doing it.
14707
14708 2007-04-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14709
14710         * Control.cs: set_Text: move the call to the driver into a seperate
14711           virtual method so that Form can override it.
14712         * MaskedTextBox.cs: Corcompare fixes.
14713         * Form.cs: Override UpdateWindowText and only update the styles if the
14714           form has been shown (fixes #81405).
14715
14716 2007-04-25  Jonathan Pobst  <monkey@jpobst.com>
14717
14718         * Control.cs, Form.cs: Use the better supported WM_?BUTTONDOWN and
14719         WM_ACTIVATE messages instead of WM_MOUSEACTIVATE and
14720         WM_ACTIVATEAPP.  This fixes menus not disappearing on X11 when
14721         the form lost focus or another control was clicked.
14722
14723 2007-04-25  Gert Driesen  <drieseng@users.sourceforge.net>
14724
14725         * DataGrid.cs: Uncomment MakeTransparent calls since bug #80151 is
14726         fixed.
14727
14728 2007-04-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14729
14730         * DrawListViewColumnHeaderEventHandler.cs, DrawToolTipEventArgs.cs,
14731           DrawListViewItemEventHandler.cs,
14732           DrawListViewSubItemEventHandler.cs, DrawToolTipEventHandler.cs:
14733           Added.
14734         * X11Structs.cs: More ToString implementation.
14735
14736 2007-04-25  Jonathan Pobst  <monkey@jpobst.com>
14737
14738         * ToolStripDropDownItem.cs: Don't lazy create a DropDown in Dispose.
14739         * ToolStripOverflowButton.cs: Don't lazy create a DropDown in HasDropDownItems.
14740
14741 2007-04-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14742
14743         * Control.cs: Only raise OnVisibleChanged if we're not recreating the
14744           handle.
14745         * FormCollection.cs: Don't add a form if it's already in the
14746           collection.
14747         * Form.cs: Change ShowDialog () to call ShowDialog (owner) with a null
14748           according to behaviour and MSDN. The ownerWin32 is the active
14749           window at the moment when we call ShowDialog, not the context's
14750           main form (the context's main form may open another form that opens
14751           a form with ShowDialog, the win32 owner is the second form). Add
14752           and remove forms to the Application.OpenForms in other places to
14753           better match MS behaviour. Add an IsActive property that raises
14754           On(de)Activated only if the active state has changed (we were
14755           raising OnDeactivated before OnActivated while creating forms).
14756         * Application.cs: Refactor Enabling/Disabling of windows for modal
14757           dialog loops out to separate methods, and restore the thread
14758           context when we quit the method. Fixes #81407.
14759
14760 2007-04-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14761
14762         * ListView.cs: In ItemControl.HandleClicks, also fire 
14763         2.0 MouseClick or MouseDoubleClick events on the parent,
14764         not only the Click/DoubleClick events.
14765
14766 2007-04-24  Andreia Gaita  <avidigal@novell.com>
14767
14768         * TableLayoutSettings.cs: 
14769         - Added a GetControls method and a support structure to help the 
14770         TypeConverter to enumerate the controls for     serialization. 
14771         - Added a new serialization constructor. 
14772         - Added a isSerialized flag initialized to true on the 
14773         serialization constructor so that the TableLayoutPanel.LayoutSettings 
14774         setter does not throw the designed NotSupportedOperation exception
14775         when the object is built through deserialization.
14776         - Implemented GetObjectData
14777         
14778         * TableLayoutPanel.cs: Added check on LayoutSettings.
14779
14780 2007-04-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14781
14782         * ListView.cs: Report Click and DoubleClick events to the parent
14783         from ItemsMouseUp, instead of ItemsMouseDown. This prevents us
14784         from breaking the click count state when using dialog forms (Control
14785         reports the clicks in a similar fashion). In the previous behaviour
14786         the last WM_LBUTTONUP message in a  double click was sent to the
14787         ListView's form, instead of the ListView, which was breaking the click
14788         count for it. Fixes #80387.
14789
14790 2007-04-24  Alan McGovern <alan.mcgovern@gmail.com>
14791
14792         * BindingNavigator.cs : fixed bugs revealed by new nunit tests
14793
14794 2007-04-24  Jonathan Pobst  <monkey@jpobst.com>
14795
14796         * ToolStripDropDownItem.cs: Lazy initialize the DropDown.  This prevents
14797         us from created dropdowns for menu items that do not have subitems.
14798         * ToolStripItem.cs, ToolStripProfessionalRenderer.cs, ToolStripSplitButton.cs:
14799         Check HasDropDownItems before calling DropDown so a dropdown will not be
14800         created if it isn't needed.
14801
14802 2007-04-24  Jackson Harper  <jackson@ximian.com>
14803
14804         * TreeView.cs: Set the first node to the selected node when we get
14805         focus if there is no selected node.
14806
14807 2007-04-24  Andreia Gaita  <avidigal@novell.com>
14808
14809         * MimeIcon.cs: remove using blocks so that image streams are
14810         not disposed of. Fixes #80151
14811
14812 2007-04-24  Jackson Harper  <jackson@ximian.com>
14813
14814         * TextBoxBase.cs: Fixup the height of textboxes when the control
14815         is created.
14816
14817 2007-04-24  Jonathan Pobst  <monkey@jpobst.com>
14818
14819         * ToolStrip.cs: Fully implement GetNextItem.  Call OnParentRightToLeftChanged
14820         for each ToolStripItem when the parent's RightToLeftChanged is called.
14821
14822 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14823
14824         * ComboBox.cs: Forward ContextMenu to the underlying textbox, if any.
14825           Fixes #80163.
14826         * Control.cs: Replace GetContextMenuInternal() with ContextMenuInternal
14827           property, so that the setter can be overriden too.
14828         * TextBox.cs: Change GetContextMenuInternal() to use
14829           ContextMenuInternal.
14830
14831 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14832
14833         * ThemeWin32Classic.cs: Use a black pen to draw checkboxes, fixes
14834           #81406.
14835
14836 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14837
14838         * ThemeWin32Classic.cs: Use a black pen to draw checkboxes, fixes
14839           #81406.
14840
14841 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14842
14843         * MaskedTextBox.cs: Commit this so nobody else starts working on it and
14844           avoid duplicate work. Mostily skeleton code, it's not working at
14845           all yet.
14846
14847 2007-04-20  Leszek Ciesielski <skolima@gmail.com>
14848
14849         * NotifyIcon.cs : stub for MouseClick event
14850         * Application.cs: stub for SetUnhandledExceptionMode
14851
14852 2007-04-24  Alan McGovern <alan.mcgovern@gmail.com>
14853
14854         * BindingNavigator.cs : Initial (partial) implementation
14855
14856 2007-04-23  Jackson Harper  <jackson@ximian.com>
14857
14858         * TreeView.cs: Do not create the treeview's handle when setting
14859         the scroll position.
14860         - ExpandAll needs to compute the scrollbars so it knows which
14861         position to set the bar too.
14862         * TreeNode.cs: 
14863         * TreeNodeCollection.cs: Pass new flag to UpdateScrollBars
14864
14865 2007-04-23  Jackson Harper  <jackson@ximian.com>
14866
14867         * TextBoxBase.cs: Non multiline textboxes shouldn't take the enter
14868         key. Fixes #81408.
14869
14870 2007-04-23  Jonathan Pobst  <monkey@jpobst.com>
14871
14872         * ToolStripItem.cs: Make GetImageSize internal.
14873         * ToolStripMenuItem.cs: Use GetImageSize to determine the size we
14874         need to draw an item.  Fixes a reported issue where images on menus
14875         that were not 16x16 were drawing incorrectly.
14876
14877 2007-04-21  Miguel de Icaza  <miguel@novell.com>
14878
14879         * Padding.cs: Use the converter, fixes the resgen2 issue with
14880         XMLNotePad. 
14881
14882 2007-04-21  Jackson Harper  <jackson@ximian.com>
14883
14884         * TreeView.cs: Dont try to unhighlight the selected node if there
14885         isn't a selected node.
14886
14887 2007-04-21  Jackson Harper  <jackson@ximian.com>
14888
14889         * UpDownBase.cs:
14890         * TextBoxBase.cs:
14891         * ListView.cs:
14892         * ListBox.cs:
14893         * TreeView.cs: Use the InternalBorderStyle property to set the
14894         initial border style, this forces the client rectangle to be sized
14895         correctly.
14896
14897 2007-04-20  Jackson Harper  <jackson@ximian.com>
14898
14899         * TreeView.cs: Simplify scrolling to the last node after expanding
14900         all.
14901         - Fix some off by ones with setting the bottom.
14902
14903 2007-04-20  Jonathan Pobst  <monkey@jpobst.com>
14904
14905         * Control.cs: Use DefaultSize for Size, calculate ClientSize from
14906         that.  We were incorrectly doing it the other way around.  Also,
14907         update ClientSize if we change the BorderStyle before the control
14908         is created.
14909
14910 2007-04-20  Gert Driesen  <drieseng@users.sourceforge.net>
14911
14912         * XplatUI.cs: Added Border3DSize, BorderSize, CaptionButtonSize,
14913         DoubleClickSize, DoubleClickTime and FixedFrameBorderSize. Renamed
14914         XplatUIDriver.Caption to CaptionHeight. Spaces to tabs.
14915         * XplatUIDriver.cs: Added Border3DSize, BorderSize, CaptionButtonSize,
14916         DoubleClickSize, DoubleClickTime and FixedFrameBorderSize. Renamed
14917         Caption to CaptionHeight.
14918         * XplatUIX11.cs: Renamed Caption to CaptionHeight.
14919         * Theme.cs: Modified Border3DSize, BorderSize, CaptionButtonSize
14920         and FixedFrameBorderSize to return value from current XplatUI driver.
14921         * XplatUIWin32.cs: Implemented Border3DSize, BorderSize,
14922         CaptionButtonSize, DragFullWindows, DoubleClickSize, DoubleClickTime
14923         and FixedFrameBorderSize using win32 API. Renamed Caption to
14924         CaptionHeight.
14925         * XplatUIOSX.cs: Renamed Caption to CaptionHeight.
14926         * SystemInformation.cs: Fixed typo in BorderSize.
14927
14928 2007-04-20  Gert Driesen  <drieseng@users.sourceforge.net>
14929
14930         * XplatUI.cs: Added MenuAccessKeysUnderlined.
14931         * XplatUIDriver.cs: Added MenuAccessKeysUnderlined.
14932         * XplatUIX11.cs: Implemented MenuAccessKeysUnderlined by always
14933         returning false.
14934         * Theme.cs: Modified MenuAccessKeysUnderlined to return corresponding
14935         value from XplatUI driver.
14936         * XplatUIWin32.cs: Implemented MenuAccessKeysUnderlined using
14937         SystemParametersInfo.
14938         * ThemeWin32Classic.cs: Remove obsolete MenuAccessKeysUnderlined
14939         override.
14940         * XplatUIOSX.cs: Implemented MenuAccessKeysUnderlind by always
14941         returning false.
14942
14943 2007-04-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14944
14945         * XplatUIX11.cs, Hwnd.cs: Remove warnings.
14946
14947 2007-04-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14948
14949         * MessageBox.cs, XplatUIX11.cs, Hwnd.cs: Remove warnings.
14950
14951 2007-04-20  Jonathan Pobst  <monkey@jpobst.com>
14952
14953         * ToolStripManager.cs: Fix a reported InvalidCastException when unmerging
14954         MenuStrips that contain ToolStripSeparators.
14955
14956 2007-04-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14957
14958         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Add
14959           DefineStdCursorBitmap.
14960         * Cursor.cs: Add an internal constructor so that the Cursor knows if it
14961           has been created off a standard cursor. This is used to get a
14962           bitmap of the standard cursor when Draw or DrawStretched is called
14963           in order to draw the cursor.
14964         * X11Structs.cs: Added XcursorImage and XcursorImages.
14965         * XplatUIX11.cs, XplatUIWin32.cs: Add and implement
14966           DefineStdCursorBitmap.
14967         * Cursors.cs: Update all relevant creations of Cursor to use the new
14968           internal constructor.
14969
14970 2007-04-19  Jackson Harper  <jackson@ximian.com>
14971
14972         * TextBox.cs: Move the has_been_focused into the base control, so
14973         some of the text adding methods can manipulate it (probably time
14974         for a better name for this flag too).
14975         - Call a new version of selectall that doesn't scroll
14976         * TextBoxBase.cs: When we append text, if the document is empty,
14977         don't scroll.  If the document has text already, we scroll to the
14978         end of the appended text.
14979         - When the text is changed, we reset the has_been_focused, so the
14980         next time the control gets focused, all the text is selected.
14981
14982 2007-04-19  Jackson Harper  <jackson@ximian.com>
14983
14984         * TextControl.cs: Move the margins to the document, add a method
14985         so the margin sizes can be updated.
14986         * TextBoxBase.cs: When the border style is changed, update the
14987         border sizes.
14988
14989 2007-04-19  Jonathan Pobst  <monkey@jpobst.com>
14990
14991         * Control.cs: Respect DefaultPadding.
14992         * GroupBox.cs: Implement DefaultPadding, DisplayRectangle takes
14993         padding into account.
14994         * ToolStrip.cs: Remove setting padding to DefaultPadding in constructor.        
14995
14996 2007-04-19  Jackson Harper  <jackson@ximian.com>
14997
14998         * TextControl.cs: Oops, we need to use the ClientRect not the
14999         bounds here.
15000
15001 2007-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15002
15003         * ListView.cs: In ItemControl.ItemsMouseDown, take into
15004         account the double clicks when CheckBoxes are used and
15005         the pointer is inside the checkbox. Fixes part of #81191.
15006
15007 2007-04-18  Jackson Harper  <jackson@ximian.com>
15008
15009         * TextControl.cs: Pressing the end key shouldn't move the caret
15010         past the line ending.
15011         * TextBoxBase.cs: We can still delete if we are in the line
15012         ending and the combine will just kill the existing line ending.
15013
15014 2007-04-18  Jackson Harper  <jackson@ximian.com>
15015
15016         * TextControl.cs: We can't move lines, then invalidate their
15017         bounds, we need to get the old bounds and combine that with the
15018         new bounds.
15019         * TextBoxBase.cs: Before combining two lines for a delete, we need
15020         to invalidate the area of the old line, since that will be moved
15021         in the combine operation.
15022
15023 2007-04-18  Everaldo Canuto  <everaldo@simios.org>
15024
15025         * LinkLabel.cs: In OnPaint invoke draw background to fix problems
15026         with transparent background. Fixes #80482.
15027
15028 2007-04-18  Jonathan Pobst  <monkey@jpobst.com>
15029
15030         * PictureBox.cs: Refresh on resize when SizeMode = Zoom.
15031         * ThemeWin32Classic.cs: Implement PictureBox.SizeMode = Zoom.
15032         [Fixes bug #81391]
15033
15034 2007-04-18  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15035
15036         * CreateParams.cs: Add a couple of helper methods and do a less string
15037           concatenation in ToString.
15038         * XplatUIX11.cs: Add an TranslateClientRectangleToXClientRectangle
15039           overload that takes a Control parameter, since this method may be
15040           called before a control is assigned to the hwnd (from
15041           CreateWindow), and update CreateWindow to use the new overload. In
15042           GetMenuOrigin subtract the title bar from the y position if the
15043           form has a window manager (since we're painting it and not X).
15044         * XplatUIWin32.cs: If we can get a form in GetMenuOrigin use the form's
15045           CreateParams to calculate the origin (since border sizes may vary).
15046           In ScreenToMenu only subtract the title height if we actually have
15047           a title.
15048         * MdiWindowManager.cs: Override MenuHeight to always return 0, since
15049           mdi children never have menus of themselves.
15050         * InternalWindowManager.cs: Implement menu handling like form does.
15051           Added GetMenuOrigin to calculate the menu origin, can't use the
15052           CreateParams from the form like normally since it's lying.
15053         * Hwnd.cs: Implement GetBorderSize better (in the sense more
15054           windows-like) and add Inflate and comparison operators to the
15055           Borders type. When calculating MenuOrigin and it's a form with a
15056           window manager, use the window manager to calculate it.
15057
15058 2007-04-17  Chris Toshok  <toshok@ximian.com>
15059
15060         * Control.cs (CreateControl): turns out in 2.0 we don't need this
15061         OnBindingContextChanged thing here.  It's only generated from
15062         ContainerControl.OnCreateControl.  Fixes a newly written unit test
15063         - BindingTest.BindingContextChangedTest4.
15064         
15065 2007-04-17  Jackson Harper  <jackson@ximian.com>
15066
15067         * ScrollBar.cs: When setting values, make sure the current
15068         position stays within the new values range.
15069
15070 2007-04-17  Chris Toshok  <toshok@ximian.com>
15071
15072         * Control.cs (CreateControl): talk about a bizarre corner case.
15073         Don't emit OnBindingContextChanged here if we're a parentless
15074         control (i.e. if we're a form.).  Fixes
15075         BindingTest.BindingContextChangedTest2.
15076
15077 2007-04-17  Everaldo Canuto  <everaldo@simios.org>
15078
15079         * ButtonBase.cs: Remove TextFormatFlags.WordBreak to mimic same behavior 
15080         from win32. Fixes #81255.
15081
15082 2007-04-17  Everaldo Canuto  <everaldo@simios.org>
15083
15084         * ThemeWin32Classic.cs: Remove text offset from DrawButtonText as it is
15085         already present in CalculateButtonTextAndImageLayout.
15086
15087 2007-04-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15088
15089         * XplatUIX11.cs: When setting min/max size for a window we need to
15090           translate the coordinates to x coordinates. Create an overload of
15091           SetWindowMinMax that takes a CreateParams handling this, and change
15092           SetWMStyles to call this function (can't use Control.FromHandle in
15093           the SetWindowMinMax to get the control/CreateParams from the handle
15094           because the handle might not have been assigned to the control
15095           yet). Fixes #81371.
15096
15097 2007-04-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15098
15099         * ListView.cs: In ItemControl.ItemMouseDown, don't change check state
15100         if StateImageList is non-null and it has less than two items (match MS
15101         behaviour). Also, in HandleNavKeys handle the Space key, calling
15102         the new ToggleItemsCheckState method, which tries to change the
15103         checked state of the selected items. Fixes part of #81191.
15104
15105 2007-04-16  Jackson Harper  <jackson@ximian.com>
15106
15107         * RichTextBox.cs: namespace cleanup.
15108
15109 2007-04-16  Everaldo Canuto  <everaldo@simios.org>
15110
15111         * XplatUIWin32.cs: Back last parameter to true in SetClipRegion.
15112
15113 2007-04-16  Everaldo Canuto  <everaldo@simios.org>
15114
15115         [Fixes #79447]
15116         * Control.cs: Call invalidate in set_Region.
15117
15118         * XplatUIX11.cs, XplatUIWin32.cs: Remove invalidate from SetClipRegion as
15119         it dont works here.
15120
15121 2007-04-16  Jackson Harper  <jackson@ximian.com>
15122
15123         * TextBoxBase.cs: When enter is pressed, we need to update all
15124         lines below the current.
15125
15126 2007-04-16  Jonathan Pobst  <jpobst@monkey.com>
15127
15128         * MdiClient.cs: Implement implicit menu merging for MDI
15129         children.  When a child form is active, if it has a menustrip
15130         and the parent form has a MainMenuStrip, automatically merge
15131         the menus.
15132
15133 2007-04-15  Andreia Gaita  <avidigal@novell.com>
15134
15135         * TabControl.cs: Refactored sizing methods to not repeat
15136         code all over the place. Tab bounds are now calculated
15137         as if alignment is top and single line, and only when 
15138         setting the bounds are the positions adjusted according
15139         to alignment. Replaced hardcoded positions, spacings and
15140         paddings by getting the values the ThemeEngine. 
15141         Fixes #79619.
15142         
15143         * Theme.cs: Change TabControl properties and methods so
15144         that all start with TabControl*. Added more properties
15145         to help remove hardcoded values on tabcontrol.
15146         Add CPDrawBorder3D declaration so the Theming classes
15147         can access it.
15148         
15149         * ThemeClearlooks.cs, ThemeNice.cs: Method signature changes from Theme.
15150
15151         * ThemeWin32Classic.cs: Rector TabControl out to the TabControlPainter
15152         on the Theming namespace, and call the appropriate methods here.
15153         Change CPDrawBorder3D to public.
15154
15155 2007-04-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15156
15157         * Control.cs: In WmRButtonUp, send the WM_CONTEXTMENU message to
15158         the control after firing the OnMouseUp event, instead of sending
15159         the message before the mentioned event. This is so we can match the
15160         MS behaviour. Fixes part of #80385.
15161
15162 2007-04-13  Jonathan Pobst  <monkey@jpobst.com>
15163
15164         * ToolStripItem.cs: Call the RightToLeftChanged event when setting the
15165         RightToLeft property.
15166
15167 2007-04-13  Jonathan Pobst  <monkey@jpobst.com>
15168
15169         * ToolStrip.cs: Add properties and internal methods to support merging.
15170         * ToolStripItem.cs: Add MergeAction and MergeIndex.
15171         * ToolStripItemCollection.cs: Add Insert and Remove methods that do
15172         not trigger reparenting or layouts.
15173         * ToolStripManager.cs: Add Merge and RevertMerge methods.
15174         * ToolStripOverflow.cs: Add a convenience method to find the ToolStrip that
15175         is hosting the overflow menu.
15176
15177 2007-04-13  Jackson Harper  <jackson@ximian.com>
15178
15179         * TextControl.cs: Set the line ending correctly for the first
15180         inserted line.
15181
15182 2007-04-13  Sebastien Pouliot  <sebastien@ximian.com>
15183
15184         * Theme.cs: Update GetMethod to get the new definition for 
15185         KnownColors.Update (and fix theme color updates).
15186
15187 2007-04-12  Everaldo Canuto  <everaldo@simios.org>
15188
15189         * MessageBox.cs: Fix some test and button position.
15190
15191 2007-04-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15192
15193         * Form.cs: Consider the implicit controls in
15194         GetRealChildAtPoint. We need it since this method
15195         is called on Form when handling the some messages in
15196         WndProc, and need to consider those implicit ones too.
15197         Fixes #80385.
15198
15199 2007-04-12  Jonathan Pobst  <monkey@jpobst.com>
15200
15201         * ToolStripMenuItem.cs: Display the ShortcutKeyDisplayString even
15202         if there are no ShortcutKeys set.
15203         * ToolStripProfessionalRenderer.cs: If an item has had its BackColor
15204         set, use it when painting.
15205
15206 2007-04-12  Jackson Harper  <jackson@ximian.com>
15207
15208         * TextControl.cs: Fix some off-by-one issues in line duplication
15209         and insertion in the undo manager. Also, overwrite the first tag
15210         of a line on insert, if it is just a zero lengthed tag. This
15211         prevents us from getting an extra stranded tag at the beginning of
15212         the first line.
15213
15214 2007-04-11  Everaldo Canuto  <everaldo@simios.org>
15215
15216         * Label.cs: Remove check for handle created in CalcAutoSize, we need 
15217         to calculated proper size including when handle was not created yet.
15218
15219 2007-04-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15220
15221         * MdiWindowManager.cs: When moving a form, allow the form to be moved
15222           when the mouse is outside of it's parent's client rectangle. Fixes
15223           #79982 (take 3, part 2).
15224
15225 2007-04-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15226
15227         * X11Structs.cs: Add a few ToString() overrides.
15228         * XplatUIX11.cs: Added GetTopLevelWindowLocation to try to calculate
15229           the window location in a window-manager independent way. Reworked
15230           FrameExtents, it now actually works. Reworked AddConfigureNotify
15231           and ReparentNotify handling to use GetTopLevelWindowLocation
15232           instead of the earlier, more hacky solution. Reworked SetWMStyles,
15233           hopefully for the better: we now set _NET_WM_WINDOW_TYPE* for all
15234           windows, DIALOG for modal windows, UTILITY for toolboxes and NORMAL
15235           for all other windows (fixes #81281 part 1), a toolwindow is hidden
15236           from the taskbar if it has a parent (fixes #81281 part 2 for kwin),
15237           and generally refactored to do as few calculations as possible
15238           inside the lock.
15239
15240 2007-04-09  Sebastien Pouliot  <sebastien@ximian.com>
15241
15242         * Theme.cs: Change "reflective-contract" between MWF and SD to 
15243         minimize # of calls, avoid Color serialization and avoid updating 
15244         every "known colors" each time a single one is updated.
15245
15246 2007-04-09  Gert Driesen  <drieseng@users.sourceforge.net>
15247
15248         * DataGridTextBoxColumn.cs: Only set IsInEditOrNavigateMode to false
15249         when not readonly and the text is explicitly set. Code style updates.
15250         * DataGridTableStyle.cs: Removed extra line.
15251         * DataGrid.cs: Code style updates. Removed extra whitespace.
15252         * DataGridColumnStyle.cs: Code style updates. Removed extra 
15253         whitespace.
15254
15255 2007-04-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15256
15257         * XplatUIX11.cs: Added comment that "fixes" #80021.
15258
15259 2007-04-09  Jackson Harper  <jackson@ximian.com>
15260
15261         * TextControl.cs: We don't need this -1 on the line count anymore.
15262
15263 2007-04-09  Gert Driesen  <drieseng@users.sourceforge.net>
15264
15265         * DataGridTextBoxColumn.cs: In Commit, use TypeConverter to convert
15266         entered value to underlying type, and convert it back to a string to
15267         apply formatting. Modified GetFormattedValue to use TypeConverter
15268         if available.
15269
15270 2007-04-08  Gert Driesen  <drieseng@users.sourceforge.net>
15271
15272         * ListViewItem.cs: Added null checks. Avoid duplicating code in ctors.
15273         Use SubItems property when we want to ensure there's at least one
15274         subitem. Modified SubItems property to ensure there's always at least
15275         one subitem. Avoid using ListViewSubItemCollection.AddRange to match
15276         the NRE's reported by MS.
15277
15278 2007-04-07  Gert Driesen  <drieseng@users.sourceforge.net>
15279
15280         * ProgressBar.cs: On 2.0 profile, default forecolor is Highlight. Added
15281         ResetForeColor override on 2.0. Fixed a few API compatibility issues.
15282         Spaces to tabs. Removed extra tabs.
15283
15284 2007-04-06  Jonathan Pobst  <monkey@jpobst.com>
15285
15286         * ToolStripSplitStackLayout.cs: If we run out of things to hide, don't
15287         infinite loop.  (Forgot to copy to the horizontal toolstrip case.)
15288
15289 2007-04-06  Jackson Harper  <jackson@ximian.com>
15290
15291         * TextBoxBase.cs: When a delete removes a line, recalculate all
15292         lines below that line (they need to get offsets setup correctly)
15293         and invalidate.
15294
15295 2007-04-05  Jackson Harper  <jackson@ximian.com>
15296
15297         * TextControl.cs: We need to invalidate across the width of the
15298         document when we are invalidating multiple lines.
15299         * TextBoxBase.cs: Don't delete into the line ending.
15300
15301 2007-04-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15302
15303         * ListView.cs: Restore the check for the MouseHover event
15304         in ListView. It looks like the ListView fires more than one MouseHover
15305         event when HoverSelection is true  _only_ in weird-corner scenarios, but
15306         in most of the cases it only fires one. Also, add the 2.0 ItemMouseHover
15307         event.
15308
15309 2007-04-05  Mike Kestner  <mkestner@novell.com>
15310
15311         * ListView.cs : raise MouseDown before updating selection.
15312         [Fixes #80373 tab 1&3]
15313
15314 2007-04-05  Jonathan Pobst  <monkey@jpobst.com>
15315
15316         * ToolStripRenderer.cs: Add static method to mirror image.
15317         * ToolStripProfessionalRenderer.cs: Support ImageTransparentColor
15318         and RightToLeftAutoMirrorImage.
15319         * ToolStripItem.cs: Remove MonoTODO from ImageTransparentColor.
15320
15321 2007-04-05  Jonathan Pobst  <monkey@jpobst.com>
15322
15323         * ToolStripSplitStackLayout.cs: Support Alignment property.
15324         * ToolStripItem.cs: Remove MonoTODO from the Alignment property.
15325
15326 2007-04-05  Jackson Harper  <jackson@ximian.com>
15327
15328         * TextControl.cs: Move around the line endings when crossing line
15329         boundaries.
15330         - When combining lines, strip the ending text off the first line.
15331
15332 2007-04-05  Jackson Harper  <jackson@ximian.com>
15333
15334         * TextControl.cs:
15335         * TextBoxBase.cs: Try to never move the cursor into the line
15336         ending.
15337         
15338 2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
15339
15340         * ToolStripItem.cs: Make sure we aren't firing mouse events when
15341         the item is disabled.  Also add a few missing methods.
15342
15343 2007-04-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15344
15345         * ListView.cs: We don't need the MouseEnter/MouseLeave check
15346         to fire just one MouseHover event when HoverSelection is true, since
15347         .Net does fire more than one MouseHover event in that scenario. Also,
15348         fix the selection in HoverSelection, by invoking UpdateMultiSelect
15349         if MultiSelect is true, instead of only setting ListViewItem.Selected.
15350         Finally, we need to reset the Hover logic in MouseMove, even when we
15351         don't have a selected item.
15352
15353 2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
15354
15355         * ToolStrip.cs: Add several missing methods, properties, and events.
15356
15357 2007-04-04  Chris Toshok  <toshok@ximian.com>
15358
15359         * DataGridTextBoxColumn.cs: set the bounds of the text box to
15360         (0,0,0,0) in Commit, as MS does.
15361
15362         * DataGrid.cs: call EndEdit() from Select() as microsoft does, and
15363         make sure we set CurrentRow on a row header click *before* calling
15364         Select.  This moves the current cell (and the textbox) to the new
15365         row.  The call to Select then hides the textbox, giving us the
15366         correct behavior.  Fixes #80362.
15367
15368         * CurrencyManager.cs (UpdateIsBinding): raise ItemChanged (-1).
15369         (ListChangedHandler): reorder the position/current changed events,
15370         and call UpdateIsBinding in the ItemAdded case.
15371
15372         * GridColumnStylesCollection.cs: add some columns events, one of
15373         which raises the CollectionChanged event.
15374
15375 2007-04-04  Jackson Harper  <jackson@ximian.com>
15376
15377         * TextControl.cs: When we delete multiple selection lines
15378         invalidate the selection area, don't need to do that for single
15379         lines because the final update view will handle it.
15380
15381 2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
15382
15383         * Control.cs: When we CreateControl, we need to also create all of the
15384         control's children.  The child's OnLoad must also fire before the parent's
15385         OnLoad.  Fixes the toolbox size in PDN.
15386
15387 2007-04-04  Jackson Harper  <jackson@ximian.com>
15388
15389         * TextBoxBase.cs: When the user presses enter, insert a line
15390         ending into the text. (Maybe this would be a good spot for
15391         Environment.NewLine).
15392         * TextControl.cs: Remove undo manager hack, line endings get
15393         inserted properly now.
15394         
15395 2007-04-04  Everaldo Canuto  <everaldo@simios.org>
15396
15397         * MenuAPI.cs: 
15398         - Remove unneeded parameters in UpdateCursor.
15399         - Fix UpdateCursor to check if menu is active.
15400         - Call UpdateCursor when menu deactivate my click.
15401         [Fixes remaining issues from #80410]
15402
15403 2007-04-04  Everaldo Canuto  <everaldo@simios.org>
15404
15405         * Control.cs: GetRealChildAtPoint method added, it make an
15406         recursive child control search for the point. 
15407
15408         * Form.cs: Makes use of GetRealChildAtPoint in mouse event after closes
15409         menu.
15410
15411         * MenuAPI.cs: Makes use of GetRealChildAtPoint in UpdateCursor.
15412
15413 2007-04-03  Everaldo Canuto  <everaldo@simios.org>
15414
15415         * Form.cs: Fix mouse position when send back mouse event after closes
15416         menu.
15417
15418 2007-04-03  Everaldo Canuto  <everaldo@simios.org>
15419
15420         * Form.cs: Simplify the BUTTONDOWN for active tracker.
15421
15422 2007-04-03  Jonathan Pobst  <monkey@jpobst.com>
15423
15424         * Control.cs: Fix an issue where if a user resized a control inside
15425         a sizing method like OnResize, we would overwrite their explicit
15426         value.  Also, only call DefaultSize once in the constructor instead
15427         of 4 times.  Also, do not call SetBoundsCore from SetBounds if 
15428         nothing actually changed.
15429
15430 2007-04-03  Jackson Harper  <jackson@ximian.com>
15431
15432         * TextControl.cs: Don't attempt to copy text for lines with no
15433         text in them (technically this shouldn't happen, but we aren't
15434         always inserting line endings when we should be).
15435
15436 2007-04-03  Jackson Harper  <jackson@ximian.com>
15437
15438         * TextBoxBase.cs: Calculate the scrollbars before calculating the
15439         document, because this sets some of the document size properties
15440         that are needed.
15441
15442 2007-04-03  Jackson Harper  <jackson@ximian.com>
15443
15444         * TextBoxBase.cs: We need to calculate maximums even if this is
15445         not a multiline control, because the maxs are used for scrolling.
15446         - Display the caret after doing a page up/down, we need to
15447         manually display it because a proper CaretMoved event isn't
15448         triggered (this is because of the way the math is done to
15449         determine how far to scroll).
15450
15451 2007-04-03  Jonathan Pobst  <monkey@jpobst.com>
15452
15453         * ToolBar.cs: Fix some breakage caused by the SetBoundsCore change.
15454         (ToolBar was relying on SetBoundsCore to default the values sent 
15455         base off of BoundsSpecified.)
15456
15457 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15458
15459         * DateTimePicker.cs: Change Text so that when a null value or empty
15460           string is assigned to the test we always raise ValueChanged and
15461           TextChanged (earlier implementation would only raise ValueChanged
15462           if the current date value was different from DateTime.Now).
15463
15464 2007-04-03  Andreia Gaita <avidigal@novell.com> 
15465
15466         * ButtonBase: Call update after invalidation, fixes #80194
15467
15468 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15469
15470         * ThemeWin32Classic.cs: Draw StatusBar using double buffering. Fixes
15471           #79335.
15472
15473 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15474
15475         * XplatUIX11.cs: SetWMStyles: If the control is a form with
15476           FormBorderStyle = None, don't give the window any decorations.
15477           Fixes #81276.
15478
15479 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15480
15481         * XplatUI.cs, XplatUIDriver.cs: Updated CalculateWindowRect parameters.
15482         * CreateParams.cs: Fix IsSet, wasn't working correctly when the style
15483           to check for is a mix of several styles (such as WS_CAPTION for
15484           instance).
15485         * Control.cs: Don't paint an area bigger than the client area when
15486           painting the background colour. Add an internal GetCreateParams.
15487           Update calls to XplatUI.CalculateWindowRect due to API change.
15488         * XplatUIX11.cs: In PerformNCCalc set the initial size to the whole
15489           window's size, and handle WM_NCCALCSIZE in DefWndProc to calculate
15490           the size if it hasn't been handled by any windows. When creating
15491           and moving windows, X wants the location of the entire window, but
15492           the size of the client window, so add
15493           TranslateClientRectangleToXClientRectangle,
15494           TranslateWindowSizeToXWindowSIze and
15495           TranslatedXWindowSizeToWindowSize to cope with this, and call them
15496           before every window creation and move. Update CalculateWIndowRect
15497           to use Hwnd.GetWindowRect (one step towards removing DeriveStyles).
15498           In AddConfigureNotify don't do anything if the hwnd is a zombie
15499           (fixes the BadWindow we were getting while running the tests),
15500           always calculate the offsets when it's a parentless window, not
15501           only when reparented, and translate the window size, since we're
15502           getting the client size of the whole window, excluding entire
15503           window.
15504         * Theme.cs: Added BorderSizableSize.
15505         * XplatUIWin32.cs: Fix RECT Height and Width. Don't fake styles here
15506           anymore. Update calls to XplatUI.CalculateWindowRect due to API
15507           chang
15508         * Form.cs: Update calls to XplatUI.CalculateWindowRect due to API
15509           change. Fake the window styles here instead of in XplatUIWin32 so
15510           that all back-ends get the same window styles (and it's Form that's
15511           deciding when to use wm, not the Win32 backend anyways)
15512         * Hwnd.cs: Completely reworked GetWindowRectangle and
15513           GetClientRectangle - they are now passed a CreateParams and they
15514           only use Style and ExStyle to determine the rectangles (they should
15515           now work just like Win32AdjustWindowRectEx - though quite a few
15516           special cases are probably missing). They should also be 100%
15517           complimentary (i.e. GetWindowRectangle (GetClientRectangle (rect))
15518           == rect), and all numbers (borders, menu sizes) are taken from the
15519           current theme. Added a GetBorders helper function that will return
15520           the borders for any given CreateParams (including captions and
15521           menus), and GetBorderSize that returns the given border size only.
15522         * XplatUIOSX.cs: Update calls to CalculateWindowRect and
15523           Hwnd.GetClientRectangle.
15524
15525 2007-04-02  Chris Toshok  <toshok@ximian.com>
15526
15527         * DataGridBoolColumn.cs: rewrite things a bit, and fix up the
15528         logic between the values we present to the user and the values
15529         which are stored in the column's property.  Also, don't call
15530         GetPreferredSize - it's virtual. Along the way, fix bug #80965.
15531
15532 2007-04-02  Jackson Harper  <jackson@ximian.com>
15533
15534         * TextBoxBase.cs: Scroll faster!
15535
15536 2007-04-02  Jonathan Pobst  <monkey@jpobst.com>
15537
15538         * StatusStrip.cs: Layout fixes for PDN.
15539         * ToolStrip.cs: Set item's available to true, and placement to main when
15540         added.
15541         * ToolStripItem.cs: Fix an Available issue, check that Parent is really
15542         changing in setter before doing any work, add InternalVisible.
15543         * ToolStripPanel.cs: Remove unused variable to fix compiler warning.
15544         * ToolStripSplitStackLayout.cs: If we run out of things to hide, don't
15545         infinite loop.
15546
15547 2007-04-02  Jackson Harper  <jackson@ximian.com>
15548
15549         * TextBox.cs: LBUTTON does not make the textbox select all of it's
15550         text on focus.
15551
15552 2007-04-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15553
15554         * XplatUIWin32.cs: Use the previous change in SetParent for forms only.
15555           Makes ToolStripComboBoxes show up again.
15556
15557 2007-04-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15558
15559         * ListView.cs: Add a hover_pending field in ListView
15560         to fire just one OnMouseHover event for each MouseEnter/MouseLeave
15561         cycle (we are resetting the MouseHover logic in XplatUI
15562         to handle HoverSelection). Fixes #80429.
15563
15564 2007-04-02  Jackson Harper  <jackson@ximian.com>
15565
15566         * TextControl.cs: Make sure the attributes get set on the last
15567         tag.
15568         - Still have to do the end tag if we have stepped all the ways to
15569         the end.
15570
15571 2007-04-02  Sebastien Pouliot  <sebastien@ximian.com>
15572
15573         * XplatUIOSX.cs, XplatUIX11.cs, XplatUIX11GTK.cs: Remove dependency
15574         on an internal libgdiplus call when the information is already 
15575         available via the public API.
15576
15577 2007-04-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15578
15579         * Control.cs: Call ContainerControl.ChildControlRemoved whenever a
15580           control is removed from a control collecftion.
15581         * XplatUIX11.cs: The first location for toplevel form is (22, 22).
15582           Fixes FormPropertyTest (failed on rare occasions).
15583         * XplatUIWin32.cs: Add a workaround in SetParent for strange behaviour
15584           of Win32SetParent (when changing from no parent to a parent it
15585           might add the new parent's location in screen coordinates to this
15586           window's location).
15587         * Form.cs: Rework ChangingParent once again, now the handle is
15588           recreated whenever a FormWindowManager is added or removed (that is
15589           whenever a normal form is parented or abandoned). Also change
15590           CreateParams so that all non-toplevel windows always get the
15591           specified sice (StartupPosition is never considered for
15592           non-TopLevel forms).
15593         * ContainerControl.cs: Add ChildControlRemoved, the container control
15594           needs to be notified when a control is removed from it's
15595           collection, in the case the removed control is the active control.
15596
15597 2007-04-02  Jackson Harper  <jackson@ximian.com>
15598
15599         * RichTextBox.cs: Use the new methods for setting the font and
15600         color, these methods set the specified attribute without
15601         overriding the other attributes.
15602
15603 2007-04-02  Jonathan Pobst  <monkey@jpobst.com>
15604
15605         * ToolStripPanel.cs: Fixes for better layouts in PDN.
15606
15607 2007-03-31  Gert Driesen  <drieseng@users.sourceforge.net>
15608
15609         * TextBox.cs: Added internal ChangeBackColor method to special-case
15610         Color.Empty. Added check for invalid ScrollBars value.
15611         * TextBoxBase.cs: Added internal ChangeBackColor method.
15612         * RichTextBox.cs: Only set backcolor_set on 2.0 profile. Added
15613         internal ChangeBackColor method to special-case Color.Empty. Added
15614         check for invalid ScrollBars value.
15615
15616 2007-03-30  Everaldo Canuto  <everaldo@simios.org>
15617
15618         * MenuItem.cs: On invalidate prevent form to create handle. [Fixes #81272]
15619
15620 2007-03-30  Jonathan Pobst  <monkey@jpobst.com>
15621
15622         * ScollableControl.cs: Add HorizontalScroll and VerticalScroll properties.
15623         * ScrollProperties.cs, HScrollProperties.cs, VScrollProperties.cs: Added.
15624         [Based on submitted patch from Olivier Duff.]
15625
15626 2007-03-30  Jackson Harper  <jackson@ximian.com>
15627
15628         * TextBox.cs: Only select all on initial focus if the user has not
15629         specified a selection area.
15630
15631 2007-03-30  Jonathan Pobst  <monkey@jpobst.com>
15632
15633         * UserControl.cs: Override CreateParams.
15634
15635 2007-03-30  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15636
15637         [ Fixes #80995 ]
15638
15639         * XplatUI.cs, XplatUIDriver.cs: Updated CalculateWindowRect parameters.
15640         * CreateParams.cs: Fix IsSet, wasn't working correctly when the style to
15641           check for is a mix of several styles (such as WS_CAPTION for instance).
15642         * Control.cs: Don't paint an area bigger than the client area when painting
15643           the background colour. Add an internal GetCreateParams. Update calls to
15644           XplatUI.CalculateWindowRect due to API change.
15645         * XplatUIX11.cs: In PerformNCCalc set the initial size to the whole window's
15646           size, and handle WM_NCCALCSIZE in DefWndProc to calculate the size if it
15647           hasn't been handled by any windows. When creating and moving windows, X
15648           wants the location of the entire window, but the size of the client
15649           window, so add TranslateClientRectangleToXClientRectangle,
15650           TranslateWindowSizeToXWindowSIze and TranslatedXWindowSizeToWindowSize
15651           to cope with this, and call them before every window creation and move.
15652           Update CalculateWIndowRect to use Hwnd.GetWindowRect (one step towards
15653           removing DeriveStyles). In AddConfigureNotify don't do anything if the
15654           hwnd is a zombie (fixes the BadWindow we were getting while running the
15655           tests), always calculate the offsets when it's a parentless window, not
15656           only when reparented, and translate the window size, since we're getting
15657           the client size of the whole window, excluding entire window.
15658         * Theme.cs: Added BorderSizableSize.
15659         * XplatUIWin32.cs: Fix RECT Height and Width. Don't fake styles here
15660           anymore. Update calls to XplatUI.CalculateWindowRect due to API change.
15661         * Form.cs: Update calls to XplatUI.CalculateWindowRect due to API change.
15662           Fake the window styles here instead of in XplatUIWin32 so that all
15663           back-ends get the same window styles (and it's Form that's deciding when
15664           to use wm, not the Win32 backend anyways)
15665         * Hwnd.cs: Completely reworked GetWindowRectangle and GetClientRectangle -
15666           they are now passed a CreateParams and they only use Style and ExStyle
15667           to determine the rectangles (they should now work just like
15668           Win32AdjustWindowRectEx - though quite a few special cases are probably
15669           missing). They should also be 100% complimentary (i.e. GetWindowRectangle
15670           (GetClientRectangle (rect)) == rect), and all numbers (borders, menu
15671           sizes) are taken from the current theme. Added a GetBorders helper
15672           function that will return the borders for any given CreateParams
15673           (including captions and menus), and GetBorderSize that returns the given
15674           border size only.
15675         * XplatUIOSX.cs: Update calls to CalculateWindowRect and
15676           Hwnd.GetClientRectangle.
15677
15678 2007-03-30  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15679
15680         * Form.cs: Don't layout mdi children on MdiParent creation, the initial
15681           layout of the mdi children is handled by CreateParams. Fixes
15682           #79964,
15683
15684 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
15685
15686         * MenuAPI.cs: Make OnMouseDown returns a boolean to identify if event is
15687         processed.
15688
15689         * Form.cs: When active tracker mouse down is not processed, send event 
15690         back to control inside mouse position. [Fixes #81227]
15691
15692 2007-03-29  Jonathan Pobst  <monkey@jpobst.com>
15693
15694         * ComboBox.cs: Override the ComboListBox's ActivateOnShow property and
15695         remove WS_VISIBLE from CreateParams to prevent combobox dropdowns from
15696         stealing focus from the active form on Windows.  (Control will be made
15697         visible in ShowWindow.)
15698
15699 2007-03-29  Mike Kestner  <mkestner@novell.com>
15700
15701         * ImageList.cs : add internal Changed event.
15702         * ListView.cs : hook up to StateImageList.Changed to perform
15703         invalidations when the the state icon list changes. [Fixes #81191]
15704
15705 2007-03-29  Jonathan Pobst  <monkey@jpobst.com>
15706
15707         * ToolTip.cs: Override the ToolTipWindow's ActivateOnShow property
15708         to prevent tooltips from stealing focus from the active form on Windows.
15709
15710 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
15711
15712         * ThemeWin32Classic.cs: Small stetic fixes in notifyicon balloon. 
15713
15714         * ThemeClearlooks.cs: Implement notifyicon balloon for clearlooks theme.
15715
15716 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
15717
15718         * NotifyIcon.cs, ThemeWin32Classic.cs: Icon support added to notifyicon
15719         balloons.
15720
15721 2007-03-29  Jackson Harper  <jackson@ximian.com>
15722
15723         * TextControl.cs: When deleting text from non multiline textboxes,
15724         we need to update the entire document, because line offsets will
15725         be shifting.
15726
15727 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
15728
15729         * XplatUIX11.cs, ThemeWin32Classic.cs, Theme.cs: ShowBalloonWindow method
15730         added to theme, now we can create themes that uses diferent notify engines
15731         like notification-daemon from galago project or growl for Mac OS.
15732
15733 2007-03-28  Everaldo Canuto  <everaldo@simios.org>
15734
15735         * NotifyIcon.cs: Prevent Balloon to show in task bar.
15736
15737 2007-03-28  Everaldo Canuto  <everaldo@simios.org>
15738
15739         * XplatUIX11.cs: Prevent system to open more than one balloon.
15740
15741         * NotifyIcon.cs: Prevent system to open more than one balloon and remove
15742         some compiler warning messages.
15743
15744 2007-03-28  Everaldo Canuto  <everaldo@simios.org>
15745
15746         [Fixes #79149]
15747
15748         * XplatUIX11.cs: Implement SystrayBalloon for X11 systems.
15749
15750         * ThemeWin32Classic.cs, Theme.cs: DrawBalloonWindow and BalloonWindowRect 
15751         implemented, this methods is used by NotifyIcon.BalloonWindow class.
15752
15753         * NotifyIcon.cs: BalloonWindow class added to support Balloon in X11 
15754         systems.
15755
15756 2007-03-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15757
15758         * ListViewItem.cs: Forgot to make Invalidate internal.
15759
15760 2007-03-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15761
15762         * ListView.cs: Add a InvalidateSelection method to
15763         invalidate methods which are currently selected, and call
15764         it when setting FullRowSelect and HideSelection, instead of
15765         calling Redraw.
15766
15767 2007-03-28  Chris Toshok  <toshok@ximian.com>
15768
15769         * XplatUIX11.cs (UnmapWindow): reindent this block.
15770
15771         * DataGrid.cs (UpdateSelectionAfterCursorMove): we need to update
15772         the selection_start if we're moving the selection (that is, not
15773         extending it). Fixes bug #80461.
15774
15775 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
15776
15777         * ProgressBar.cs: Make the default MarqueeAnimationSpeed = 100.
15778         * ToolStripPanel.cs: Fix RowMargin, Renderer, RenderMode, and
15779         create private ControlCollection.
15780
15781 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
15782
15783         * Control.cs: We need to call OnVisibleChanged for our implicit
15784         children as well as our normal children.  Fixes scrollbars in
15785         comboboxes not showing up.
15786
15787 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
15788
15789         * Control.cs, Form.cs: Anywhere we call CreateHandle, we need to do
15790         the check for IsHandleCreated first.  The check in CreateHandle is not
15791         good enough because CreateHandle can be overriden, and the override 
15792         should not be called if the handle is already created.
15793
15794 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
15795
15796         * ToolStrip.cs: Remove MonoTODO for tooltips.
15797         * ToolStripComboBox.cs: Fix MonoTODO for DropDownHeight and events.
15798         * ToolStripContainer.cs: Add custom ControlCollection class.
15799         * ToolStripContentPanel.cs: Fix Renderer setting to match MS behavior.
15800         * ToolStripDropDown.cs: Add some missing properties/methods.
15801         * ToolStripDropDownMenu.cs: Override OnLayout and SetDisplayedItems.
15802         * ToolStripItem.cs: Remove MonoTODO for tooltips.
15803         * ToolStripManager.cs: Add IsShortcutDefined.
15804         * ToolStripOverflow.cs: Override LayoutEngine.
15805         * ToolStripProgressBar.cs: Add MarqueeAnimationSpeed.
15806         * ToolStripSeparator.cs: Add ImageKey.
15807
15808 2007-03-28  Jackson Harper  <jackson@ximian.com>
15809
15810         * TextControl.cs: If a char delete removes a line ending, we need
15811         to update the ending style.
15812         - Make sure the line ending calcs get called.
15813
15814 2007-03-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15815
15816         * XplatUIX11.cs: CreateWindow: Remove old default form location code,
15817           it was making the new code not work. Fixed a typo in the new code
15818           as well. Fixes #79826.
15819
15820 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
15821
15822         * XplatUIWin32.cs:
15823         - NIF_STATE and NIF_INFO added to NotifyIconFlags.
15824         - NOTIFYICONDATA properties sizes fixed, szTip is 128, not 64.
15825         - SystrayBalloon method implemented.
15826         [Add support for notifyicon balloon on win32, #79149]
15827
15828 2007-03-27  Mike Kestner  <mkestner@novell.com>
15829
15830         * ThemeWin32Classic.cs : update StateImageList selection to mirror
15831         the ms behavior when only one image is added to the list.
15832         [Fixes #81191]
15833
15834 2007-03-27  Jackson Harper  <jackson@ximian.com>
15835
15836         * TextControl.cs: Improvements to non multiline line ending
15837         drawing/measuing.
15838
15839 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
15840
15841         * XplatUIX11.cs: Fix the time which tooltip is opened for NotifyIcon. 
15842
15843 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
15844
15845         * NotifyIcon.cs: 
15846         - Balloon message handling added.
15847         - Call XplatUI.SystrayBalloon in ShowBalloonTip. 
15848
15849         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
15850         XplatUIOSX.cs, XplatUIX11-new.cs: ShowBalloonTip method renamed 
15851         to SystrayBalloon to me like other Systray method, also a
15852         handle parameter added.
15853
15854 2007-03-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15855
15856         * ListView.cs: Show scrollbars even when items.Count == 0
15857         but the columns Width is bigger than the ListView.Width.
15858         Also, when columns.Count == 0 set layout_wd and layout_ht
15859         to the ClientRectangle values, so we don't show any scrollbar
15860         in that case.
15861
15862 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
15863
15864         * XplatUIStructs.cs: Balloon (NIN_BALLOON*) constants added.
15865
15866 2007-03-27  Jackson Harper  <jackson@ximian.com>
15867
15868         * RichTextBox.cs: The RTF library decodes the text properly for us
15869         now.
15870
15871 2007-03-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15872
15873         * ListView.cs: Display HeaderControl even when columns.Count == 0.
15874         * ThemeWin32Classic.cs: Use SystemBrushes.Control to draw the
15875         ListView header (HeaderControl), instead of Control.BackColor.
15876
15877 2007-03-27  Jonathan Pobst  <monkey@jpobst.com>
15878
15879         * Control.cs: Call OnVisibleChanged in SetVisibleCore for non-forms.
15880         Fixes tab control issues where controls would not show up because they
15881         never received their OnVisibleChanged call.
15882
15883 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
15884
15885         * NotifyIcon.cs: Balloon events added (BalloonTipClicked, BalloonTipClosed,
15886         BalloonTipShown).
15887
15888 2007-03-27  Jonathan Pobst  <monkey@jpobst.com>
15889
15890         * Control.cs: We won't get a WM_SHOWWINDOW when we create a window that
15891         is maximized or minimized, so move CreateControl to Control.OnVisibleChanged.
15892         * Form.cs: After we set the form visible, send a fake WM_SHOWWINDOW if we
15893         are max or min.  Remove WS_VISIBLE from CreateParams unless we are recreating
15894         the handle.  Fix WindowState by using the internal variable until we are 
15895         sure that we've been shown.
15896         * XplatUIX11.cs: Do not generate a WM_SHOWWINDOW message if new form is
15897         max or min.
15898         [Fixes bug #81198]
15899
15900 2007-03-27  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15901
15902         * XplatUIX11.cs: Windows without WS_CAPTION can still get decorations
15903           (at least borders). Fixes #79386 on Linux (with a small difference
15904           in behaviour: when trying to resize a caption-less window metacity
15905           shows the sysmenu. Resizing is still possible though).
15906         * XplatUIWin32.cs: When setting window styles send request an extra
15907           WM_NCCALCSIZE when it's a form without title (due to no text and no
15908           caption), since Win32 seems to calculate it wrong the first time we
15909           get the message, though the second time things work as they should.
15910         * Form.cs: Reorder a few statements in ChangingParent, otherwise the
15911           newly reparented window might show up unparented. Update
15912           CreateParams to exclude WS_DLGFRAME if ControlBox is false and
15913           there's no title text. Fixes #79386.
15914
15915 2007-03-27  Mike Kestner  <mkestner@novell.com>
15916
15917         * ListBox.cs : don't perform invalidations if the handle hasn't been
15918         created.  [Fixes #80753]
15919
15920 2007-03-27  Mike Kestner  <mkestner@novell.com>
15921
15922         * ListBox.cs : don't adjust top item when SelectedIndex is set to -1.
15923         [Fixes #80428]
15924
15925 2007-03-26  Everaldo Canuto  <everaldo@simios.org>
15926
15927         * XplatUIWin32.cs: Complete NOTIFYICONDATA structure, additional fields 
15928         needed to implement Balloon.
15929
15930 2007-03-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15931
15932         * ListViewItem.cs: In the constructors that take
15933         an array of strings, don't use ListViewSubItemCollection.AddRange
15934         method to add items, since we need to have a different behaviour (in
15935         the constructors we add an item for each null string, opposed to
15936         the behaviour of AddRange, which adds nothing).
15937
15938 2007-03-26  Andreia Gaita  <avidigal@novell.com>
15939
15940         * NumericUpDown.cs: Fix broken 1.1 api for ParseEditText
15941
15942 2007-03-26  Jackson Harper  <jackson@ximian.com>
15943
15944         * TextControl.cs: Draw and measure line endings when in non
15945         multiline mode.
15946         - When searching the text, count the end of the last line as a
15947         word boundary.
15948
15949 2007-03-26  Jackson Harper  <jackson@ximian.com>
15950
15951         * RichTextBox.cs: The selection_start and selection_end don't
15952         really track the correct tags for the selection. So we'll manually
15953         compute the correct tag here.
15954
15955 2007-03-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15956
15957         * ProgressBar.cs, ThemeWin32Classic.cs: Implemented drawing of Marquee
15958           and Continuous styles. Fixes #79469.
15959
15960 2007-03-26  Jonathan Pobst  <monkey@jpobst.com>
15961
15962         * ToolStrip.cs: Implement Tooltips.
15963         * ToolStripItem.cs: Create internal method for determining tooltip.
15964
15965 2007-03-26  Jonathan Pobst  <monkey@jpobst.com>
15966
15967         * PropertyGrid.cs: Hide a EditorBrowsable attribute from 1.1 API.
15968
15969 2007-03-26  Everaldo Canuto  <everaldo@simios.org>
15970
15971         * NotifyIcon.cs: On disposing verify if icon is visible and hide it,
15972         it prevents a problem thak keeps icon visible after application 
15973         closes on win32.
15974
15975 2007-03-26  Everaldo Canuto  <everaldo@simios.org>
15976
15977         * NotifyIcon.cs: Balloon properties and methods created.
15978
15979         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
15980         XplatUIOSX.cs, XplatUIX11-new.cs: Implement ShowBalloonTip method.
15981
15982 2007-03-25  Jonathan Pobst  <monkey@jpobst.com>
15983
15984         * ToolStripComboBox.cs: Default the ComboBox's FlatStyle to Popup.
15985
15986 2007-03-24  Jonathan Pobst  <monkey@jpobst.com>
15987
15988         * Control.cs: Make SetBoundsCore match MS better.  The BoundsSpecified
15989         parameter indicates which aspects were explicit/user-set.
15990         * ComboBox.cs, ListBox.cs: Call SetBoundsCore correctly. (no 0 parameters).
15991
15992 2007-03-24  Jonathan Pobst  <monkey@jpobst.com>
15993
15994         * ProgressBar.cs: Throw AOORE instead of AE for property Value (2.0).
15995         * ScrollBar.cs: Throw AOORE instead of AE for properties LargeChange,
15996         SmallChange, and Value (2.0).
15997         * Timer.cs: Throw AOORE instead of AE for property Interval (2.0).
15998
15999 2007-03-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16000
16001         * ListView.cs: Always set item_control.Width in LayoutDetails
16002         if View is Details. Setting it later in CalculateScrollBars
16003         in a not-so-corner scenario (the sum of columns width is
16004         not bigger than the ListView width when handle is created, and then
16005         that sum gets bigger by increasing the width of the columns)
16006         causes a very weird recursion path (which shouldn't be happening,
16007         since header_control sets it in CalculateScrollBars too). This bug
16008         appeared after Chris' fixes for handle created issues, so probably
16009         it's related to some handle-creation time.
16010
16011 2007-03-23  Chris Toshok  <toshok@ximian.com>
16012
16013         * DataGrid.cs (GetVisibleRowCount): increase the row count in the
16014         case where there's an add row, just so we don't end up in a case
16015         where it's not displayed (this happens when the row is partially
16016         obscured).  Fixes bug #79574.
16017
16018 2007-03-23  Jackson Harper  <jackson@ximian.com>
16019
16020         * TextControl.cs:
16021         * TextBoxBase.cs:
16022         * RichTextBox.cs: Preserve line endings in the lines text buffer,
16023         also added an enum that represents the line ending type. 
16024
16025 2007-03-23  Andreia Gaita  <avidigal@novell.com>
16026
16027         * NumericUpDown.cs: Fix logic so Text and Value properties are not
16028         messed with in every method call, but only from DownButton, 
16029         UpButton, UpdateEditText() and ValidateText. Fixes #80346
16030
16031 2007-03-23  Chris Toshok  <toshok@ximian.com>
16032
16033         * DataGridTextBoxColumn.cs (GetFormattedValue): don't try to
16034         format objects if the format spec is "".  Fixes bug #80889.
16035
16036 2007-03-22  Miguel de Icaza  <miguel@novell.com>
16037
16038         * ToolStripPanel.cs (Join): added stubs to build PDN3
16039
16040         * Control.cs (AutoScrollOffset): Add.
16041
16042         * SystemInformation.cs (MouseWheelScrollDelta): Expose this
16043         property, its only implemented for Win32, on X11 it defaults to
16044         some hardcoded value.
16045
16046         * ToolStripItem.cs (AllowDrop): Add property
16047
16048 2007-03-22  Mike Kestner  <mkestner@novell.com>
16049
16050         * ListView.cs : in FullRowSelect Details mode, only enable box
16051         selection if the user clicks over the "item" column outside of the
16052         text area.  Mmmmm, compatibility.  [Fixes #80374 subpart 7]
16053
16054 2007-03-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
16055
16056         * Control.cs: ChangeParent: Call Form's ChangingParent even if the
16057           handle is not created yet.
16058         * Form.cs: Select: Don't call CreateHandle if the handle is already
16059           created, avoids a stack overflow on Windows when we are recreating
16060           controls.
16061         * ScrollableControl.cs: Set the correct z-order for the scrollbars when
16062           they are made visible, and override AfterTopMostControl to keep
16063           them on top when other controls are brought to front.
16064           CalculateCanvas: Scrollbars are only visible if auto_scroll is true
16065           or force_*scroll_visible is true (old implementation always shows
16066           scrollbars when needed, no matter what auto_scroll was set to).
16067         * InternalWindowManager.cs: UpdateWindowDecorations: Add a
16068           IsHandleCreated check.
16069
16070 2007-03-22  Andreia Gaita  <avidigal@novell.com>
16071
16072         * DataGrid.cs: Implement Column and Row auto sizing when double-clicking on
16073         row or col separator.
16074         * DataGridTextBoxColumn.cs: Implement GetPreferredHeight and GetPreferredSize
16075
16076 2007-03-22  Everaldo Canuto  <everaldo@simios.org>
16077
16078         * MenuAPI.cs: Remove unneeded check for grab_control in UpdateCursor.
16079
16080 2007-03-22  Everaldo Canuto  <everaldo@simios.org>
16081
16082         * MenuAPI.cs: UpdateCursor method added, it is calling in OnMotion to update
16083         cursor for child controls. In ShowWindow and HideWindow now call SetCursor 
16084         every time. Fixes #80410.
16085
16086 2007-03-22  Chris Toshok  <toshok@ximian.com>
16087
16088         * BindingSource.cs (AddNew): partially implement.
16089
16090         remove a couple of NotImplementedException's
16091         to get bug #81148 closed.
16092
16093 2007-03-22  Everaldo Canuto  <everaldo@simios.org>
16094
16095         [Fixes #80380]
16096         
16097         * Control.cs:
16098         - UpdateCursor method added to update the screen cursor.
16099         - GetAvailableCursor method added to return cursor for enabled tree,
16100         it searches for cursor on control and it's parent's for enabled control.
16101         - Call UpdateCursor method on setter of Cursor property.
16102         - On setter of Enabled call UpdateCursor when it is false, we need to
16103         change cursor to normal (or to this parent cursor) because cursor 
16104         setting theres no effect to disabled controls.
16105         - Some minor source changes to follow the coding style guidelines.
16106
16107         * XplatUIX11.cs: In MotionNotify only dispatch SET_CURSOR event for enabled 
16108         controls.
16109
16110 2007-03-22  Chris Toshok  <toshok@ximian.com>
16111
16112         * XplatUIX11.cs: ignore the BadPicture errors cairo+render
16113         generates.
16114
16115 2007-03-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
16116
16117         * XplatUIX11.cs: Implement default locations for forms.
16118         * Form.cs: Completely rework startup location for forms. Fixes #79964.
16119         * Hwnd.cs: Add previous_child_startup_location (to track the current
16120           startup location for any child forms of the current form) and
16121           previous_main_startup_location (to track the startup location for
16122           the current toplevel form).
16123
16124 2007-03-21  Jonathan Pobst  <monkey@jpobst.com>
16125
16126         * Control.cs: Don't trigger a layout if an implicit control is added
16127         that isn't visible.  Also, don't notify the owner when an implicit control
16128         is added.  (Owners shouldn't even know about their implicit controls.)
16129
16130 2007-03-21  Jonathan Pobst  <monkey@jpobst.com>
16131
16132         * ScrollableControl.cs: Add implicit controls with AddRangeImplicit
16133         to save some re-layouts.
16134
16135 2007-03-21  Everaldo Canuto  <everaldo@simios.org>
16136
16137         * MenuAPI.cs: In ProcessKeys returns false when key is not processed.
16138         [Fixes #81203]
16139
16140 2007-03-21  Jonathan Pobst  <monkey@jpobst.com>
16141
16142         * FlowLayoutSettings.cs, ToolStrip.cs, ToolStripPanel.cs,
16143         ToolStripPanelRow.cs: Lazy instantiate the LayoutEngine.
16144
16145 2007-03-21  Mike Kestner  <mkestner@novell.com>
16146
16147         * ListView.cs : disable selection update for non-left button clicks
16148         with mods and over selected items.  [Fixes #80524]
16149
16150 2007-03-20  Jackson Harper  <jackson@ximian.com>
16151
16152         * TextControl.cs:
16153         * TextBoxBase.cs: Allow different types of line endings. \r, \r\n,
16154         \r\r\n, \n.
16155
16156 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
16157
16158         * ComboBox.cs: PreferredHeight seems to be ItemHeight + 6, but there is
16159           very probably a more complicated calculation there. Update the
16160           textbox' ForeColor and BackColor when the ComboBox' colors are
16161           changed. Change the border change in LayoutComboBox to only affect
16162           the textbox, not all the calculations there. Seems to fix most of
16163           #79436.
16164
16165 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
16166
16167         * ComboBox.cs: Handle Home and End keys as well as all combinations of
16168           modifiers + navigation keys as input keys, enables advanced text
16169           selection in the combobox (like Shift+Left Arrow for instance).
16170           ComboTextBox now overrides Focused and returns whatever
16171           ComboBox.Focused returns, since it really should be focused
16172           whenever the ComboBox is. Fixes #80795. Also make the border around
16173           the text box one pixel bigger, as mentioned in #79436.
16174
16175 2007-03-20  Jackson Harper  <jackson@ximian.com>
16176
16177         * TreeView.cs: Don't offset the images, this was causing some
16178         artifacts when expanding/collapsing with images that were the
16179         exact height of the treenode.
16180
16181 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
16182
16183         * TrackBar.cs: Query the theme for the correct value when the mouse
16184           moves and the thumb is pressed. 
16185         * Theme.cs: Added TrackBarValueFromMousePosition
16186         * ThemeWin32Classic.cs: Reworked TrackBar drawing. Earlier
16187           implementation was updating the trackbar value when drawing, now
16188           the drawing methods only draw. Fixes #80900. Refactored the
16189           calculations out to TrackBarValueFromMousePosition and
16190           GetTrackBarDrawingInfo, so that TrackBar can get the correct value
16191           according to the mouse position whenever it wants to. Changed the
16192           light coloured pen when drawing the thumb from ControlLight to
16193           ControlLightLight, because the ControlLight is the same colour as
16194           the background so the 3D effect is lost. 
16195
16196 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
16197
16198         * Form.cs: In ShowDialog uses MainForm as transient form when no form is
16199         defined. Fixes #80784.
16200
16201 2007-03-20  Marek Habersack  <mhabersack@novell.com>
16202
16203         * ContextMenuStrip.cs: align with the change introduced in
16204         revision 74664.
16205
16206 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
16207
16208         * XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs, 
16209         XplatUI.cs, Form.cs, ToolTip.cs: Remove unneeded parameter owner 
16210         in SetTopmost.
16211
16212 2007-03-19  Chris Toshok  <toshok@ximian.com>
16213
16214         * Control.cs (WmPaint): don't make use of the Handle property
16215         after an event is emitted, as the user could have closed the
16216         form/destroyed the control.  Store the Handle in a local variable
16217         and make use of that.  Fixes bug #80768.
16218
16219 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
16220
16221         * XplatUIX11.cs: Set _NET_WM_STATE_ABOVE on SetTopmost, it fixes Topmost
16222         behavior in X11 environments.
16223
16224 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
16225
16226         * Form.cs: Call SetTopmost in CreateHandle when window is topmost, its
16227         because on setter of topmost we dont call SetTopmost when handle is not
16228         created.
16229
16230 2007-03-20  Jackson Harper  <jackson@ximian.com>
16231
16232         * TextControl.cs: Need to use SelectionLength () not
16233         selection_length, since that var is reset to -1.
16234         - Draw the caret when we don't have focus.
16235         * TextBox.cs: The selectall actually doesn't occur until the first
16236         focus.
16237         * TextBoxBase.cs: Need to update the caret position after a
16238         selectall.
16239         
16240 2007-03-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16241
16242         * ListView.cs: Enable scrolling when using Tile view.
16243
16244 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
16245
16246         [Fixes #80902]
16247
16248         * XplatUIDriver.cs: Abstract SetOwner method created.
16249
16250         * XplatUIOSX.cs: Override SetOwner to prevent compilation errors method 
16251         must be implemented and was masked as todo.
16252
16253         * XplatUIWin32.cs: SetOwner implemented using SetWindowLong with 
16254         GWL_HWNDPARENT.
16255
16256         * XplatUIX11.cs: SetOwner implemented using same code from SetTopmost but 
16257         cheking for null owner to remove transient. The SetTopmost will be change
16258         on a decond step.
16259
16260         * Form.cs: In set_Owner and CreateHandle uses new SetOwner instead of
16261         SetTopmost. Now owned forms will work properly in win32 and X11.
16262
16263 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
16264
16265         * MdiWindowManager.cs: Update function name.
16266         * Form.cs: After closing a form MdiParent is always null.
16267         * MdiClient.cs: Rename CloseChildForm to ChildFormClosed to explain
16268           better what it should do: necessary book-keeping when the form is
16269           closed, it should not close the form itself.
16270
16271 2007-03-19  Andreia Gaita  <avidigal@novell.com>
16272
16273         * ListViewItem.cs: Fix back and fore color. The subitems only
16274         use their own colors if they are set, otherwise use the listview's
16275         colors. Don't set default colors on constructor for subitem.
16276         Fixes #79315.
16277
16278 2007-03-19  Mike Kestner  <mkestner@novell.com>
16279
16280         * ListView.cs : make box selection for Details views with 
16281         FullRowSelect conform to MS behavior when clicking in the "item" 
16282         column and clicking outside the defined columns.
16283         [Fixes case 5-6 of #80374]
16284
16285 2007-03-19  Chris Toshok  <toshok@ximian.com>
16286
16287         * ScrollableControl.cs: create the controls from within the ctor,
16288         but don't actually add them until our handle is created.  this
16289         fixes a NRE possibility jpobst found (if you override OnLayout in
16290         a subclass, it's called before your ctor).  Also, add a
16291         IsHandleCreated guard to UpdateSizeGripVisibility as well.
16292
16293 2007-03-19  Jackson Harper  <jackson@ximian.com>
16294
16295         * TextBox.cs: Reduce the amount of invalidation we do.
16296         * TextBoxBase.cs: Make shortcuts enabled true by default, at least
16297         some of them are true by default on MS.
16298         - Add some functions to reduce the amount of invalidates we do.
16299         * TextControl.cs: Less invalidation.
16300
16301 2007-03-19  Chris Toshok  <toshok@ximian.com>
16302
16303         [ Fixes #81773, and *seems* to fix #81553 as well ]
16304
16305         * XplatUIX11.cs: remove the assignment of hwnd.zombie = true from
16306         AccumulateDestroyedHandles.  We need to do it *after* we send
16307         WM_DESTROY, as the user's code can access Control.Handle in
16308         OnHandleDestroyed, and this shouldn't cause a recreation.  Also,
16309         move the WM_DESTROY/zombie handling to before the call to
16310         XDestroyWindow.  For some reason without this ordering
16311         FormTest.RecreateHandle hangs.  This ordering is semantically
16312         equivalent, however, as XDestroyWindow is async anyway.
16313
16314 2007-03-19  Gert Driesen  <drieseng@users.sourceforge.net>
16315
16316         * RichTextBox.cs: Reset backcolor_set after setting default.
16317
16318 2007-03-19  Chris Toshok  <toshok@ximian.com>
16319
16320         * ScrollableControl.cs: the scroll position should not effect the
16321         canvas size.  commit patch from georgegiolfan@yahoo.com, which
16322         fixes some really bizarre behavior on resizing.  Fixes bug #80778.
16323         
16324 2007-03-19  Chris Toshok  <toshok@ximian.com>
16325
16326         * ScrollableControl.cs: clean this up a bit.  create the
16327         scrollbars in the ctor and just show/hide them as needed.  Also,
16328         make hscroll_visible/vscroll_visible internal to Recalculate, and
16329         just use hscrollbar.VisibleInternal/vscrollbar.VisibleInternal
16330         everywhere else.  This seems to fix the scrollbars appearing
16331         beneath the content for me (i have *no* idea why that is,
16332         however.)
16333
16334 2007-03-19  Jonathan Pobst  <monkey@jpobst.com>
16335
16336         * ToolStrip.cs: Don't call DoAutoSize when we change Dock.  Also, remove
16337         some redundacy for stuff in Anchor and Dock that base will take care of.
16338         [Fixes #80762]
16339
16340 2007-03-19  Mike Kestner  <mkestner@novell.com>
16341
16342         * ListView.cs : make box selection for Details views without 
16343         FullRowSelect dependent on the text bounds, not item bounds.
16344         * ListViewItem.cs : add an internal property to obtain the TextBounds
16345         in Details view.  [Fixes case 1-4 of #80374]
16346
16347 2007-03-19  Andreia Gaita  <avidigal@novell.com>
16348
16349         * PaintEventArgs.cs (Dispose): Only dispose of graphics object if
16350         we're < 2.0. #78448 && #80316
16351
16352 2007-03-19  Jonathan Pobst  <monkey@jpobst.com>
16353
16354         * FontDialog.cs: Don't crash when we switch to a new font that doesn't
16355         have the same style available as the previously selected one.  Also,
16356         support FixedPitchOnly property.  [Fixes bugs #80918, #80947]
16357
16358 2007-03-19  Jackson Harper  <jackson@ximian.com>
16359
16360         * TextControl.cs: Add an alignment property that all new lines
16361         will be given.
16362         - Make sure to use the align shift when calculating the line's X
16363         position.
16364         * TextBox.cs: Set the alignment on the document as well as on all
16365         the document lines.
16366
16367 2007-03-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
16368
16369         * Control.cs: ControlCollection.Add: Remove a couple of duplicated casts and
16370           throw if setting the parent of an mdichild that already has an
16371           mdiparent. Update signature for 2.0 profile. ProductName: If there's no
16372           AssemblyProductAttribute in the assembly, use the type's namespace (as
16373           MS seems to do). CreateControl: don't create the handle if the control
16374           is not visible (according to MS behaviour and spec).  SetTopLevel: Only
16375           create handle if the control is not a form. Change FocusInternal to
16376           virtual so that it can be overriden by Form.
16377         * TextBox.cs: Update call to FocusInternal.
16378         * Form.cs: Always create the handle when calling Focus on a MdiChild. The
16379           form is not a toplevel form when it's a mdi child, so update is_toplevel
16380           accordingly. ShowIcon/TransparencyKey: avoid creating the handle if it
16381           hasn't been created. Show (IWin32Window): Don't allow this overload for
16382           toplevel windows. CenterToParent/CenterToScreen/Select: create the
16383           handle as MS does. SetVisibleCore: if called on a MdiChild and the
16384           parent isn't visible yet, save the visibility and restore it when the
16385           parent is made visible.
16386         * ScrollableControl.cs: Refactor out scrollbar visibility code to separate
16387           methods, since the visibility of the scrollbars can be changed from
16388           several places, not only from AutoScroll.
16389           [Fixes #81179]
16390
16391 2007-03-19  Jackson Harper  <jackson@ximian.com>
16392
16393         * RichTextBox.cs: Enable shortcuts by default.
16394         * TextBoxBase.cs: Add conditional shortcuts.  
16395
16396 2007-03-19  Everaldo Canuto  <everaldo@simios.org>
16397
16398         * MenuItem.cs: Dont call OnDrawItem when OwnerDraw is false (#81182).  
16399
16400 2007-03-19  Chris Toshok  <toshok@ximian.com>
16401
16402         [ Fixes bug #80604]
16403         
16404         * XplatUIX11.cs (WaitForHwndMessage): change this to actually
16405         swallow the message we're waiting on, instead of delivering it, as
16406         this is only used for the WM_SHOWWINDOW raised from
16407         MapWindow/UnmapWindow, and the message needs to be generated
16408         (MapWindow, UnmapWindow): generate the WM_SHOWWINDOW message
16409         before doing the Map/Unmap.  Also make sure that the Hwnd is still
16410         alive after the message has been handled.
16411
16412         *before* the window is shown.
16413
16414         * Control.cs (CreateControl): guard a few more things inside the
16415         if (!is_created) block, as we might end up being called again -
16416         yay .net.
16417         (WmShowWindow): call CreateControl if we're showing the control.
16418
16419 2007-03-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
16420
16421         * Control.cs: Fix 2.0 signature for Invoke. Support invoking on
16422           controls without a handle if they have any parent with a handle. In
16423           Dispose add a check whether the handle is created or not before
16424           calling BeginInvoke, this removes the need of the extra disposing
16425           parameter (which was bogus anyway since it didn't prevent the
16426           invoke from happening, it only skipped the check for an existing
16427           handle, meaning that the invoke would call on an inexistent
16428           handle).
16429
16430 2007-03-19  Everaldo Canuto  <everaldo@simios.org>
16431
16432         * MessageBox.cs: Remove WS_POPUP from CreateParams style, with it form
16433         appears in taskbar.
16434
16435 2007-03-18  Everaldo Canuto  <everaldo@simios.org>
16436
16437         * MessageBox.cs:
16438         - Fixed a problem that dont show help button for messages with 3 buttons.
16439         - Refactory button size and position calculations, now dont use fixed 
16440         values, also fixed button sizes (#80043) and form's border space.
16441         - AddButton method created, now all other AddButton methods call this one.
16442         - Some other source code cosmetic changes.
16443
16444 2007-03-18  Jackson Harper  <jackson@ximian.com>
16445
16446         * RichTextBox.cs: Don't do this all fonts must match check if
16447         there is only one char selected.
16448
16449 2007-03-18  Jackson Harper  <jackson@ximian.com>
16450
16451         * TreeView.cs: ScrollWindow works properly now, so we don't need
16452         to screw around with the scroll area.  This fixes some artifacts
16453         when expanding and collapsing.
16454
16455 2007-03-18  Jackson Harper  <jackson@ximian.com>
16456
16457         * TextBoxBase.cs: Allow updating the selection position when the
16458         cursor is outside the textarea, but we have a capture.
16459         * TextControl.cs: A special case for when the cursor is outside
16460         the bounds of the TB.
16461         
16462 2007-03-18  Jackson Harper  <jackson@ximian.com>
16463
16464         * TextBoxBase.cs: Remove image pasting code for now.  There is no
16465         way to get an image on the clipboard right now anyways.
16466         * TextControl.cs:
16467         * RichTextBox.cs: Use the new RTF Picture class for pictures.
16468
16469 2007-03-18  Everaldo Canuto  <everaldo@simios.org>
16470
16471         * MessageBox.cs:
16472         - Set window properties in constructor intead of on CreateParams.
16473         - Remove topmost from Window ExStyle.
16474         - Set ShowInTaskbar to false.
16475         - Set form border to FixedDialog.
16476         - Some cosmetic changes and remove unneeded comments.
16477         - It fixes itens 2,3 and 4 of bug #80043.
16478
16479 2007-03-18  Gert Driesen  <drieseng@users.sourceforge.net>
16480
16481         * TextBoxBase.cs: In setter for ReadOnly, only chance BackColor if
16482         none was explicitly set. Fixes part of bug #79949.
16483
16484 2007-03-16  George Giolfan  <georgegiolfan@yahoo.com>
16485
16486         * ToolStripComboBox.cs: Add AutoComplete*.
16487
16488 2007-03-16  George Giolfan  <georgegiolfan@yahoo.com>
16489
16490         * ToolStripComboBox.cs: Add FlatStyle.
16491
16492 2007-03-16  Jonathan Pobst  <monkey@jpobst.com>
16493
16494         * ToolStrip.cs, ToolStripProfessionalRenderer.cs,
16495         ToolStripSplitStackLayout.cs: Implement some basic vertical toolbar support.
16496
16497 2007-03-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
16498
16499         * ButtonBase.cs, ToolStrip.cs, SendKeys.cs, TextRenderer.cs,
16500           CheckBox.cs, RadioButton.cs, BindingSource.cs,
16501           DataGridColumnStyle.cs: Remove warnings.
16502
16503 2007-03-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
16504
16505         * Menu.cs: MergeMenu: Check menu argument for null before looping over
16506           it.
16507         * MdiWindowManager.cs: Add IsVisiblePending to track the pending
16508           visibility of mdi child forms. FormSizeChangedHandler: update the
16509           maximized size if size has changed while maximized.
16510         * MdiClient.cs: SizeScrollbars/ArrangeWindows/ActivateChild: Avoid
16511           creating the handle.
16512         * InternalWindowManager.cs: UpdateBorderStyle/FormSizeChangedHandler:
16513           avoid creating the handle if not created.
16514         * XplatUI.cs: Update debug output.
16515         * XplatUIStructs.cs: Added ToString's for a couple of structs.
16516
16517 2007-03-16  Jonathan Pobst <monkey@jpobst.com>
16518
16519         * ContainerControl.cs: Give ToolStripManager the opportunity to handle
16520         ProcessCmdKey().
16521         * ToolStripDownItem.cs, ToolStripItem.cs, ToolStripItemCollection.cs, 
16522         ToolStripItemEventType.cs, ToolStripManager.cs, ToolStripMenuItem.cs:
16523         Implement keyboard shortcuts.
16524
16525 2007-03-15  Everaldo Canuto  <everaldo@simios.org>
16526
16527         * CommonDialog.cs: Set StartPosition to CenterScreen on form's constructor.
16528         Fixes #79560 and #80200, it also fix problem in FileDialog, SaveDialog, 
16529         ColorDialog and all derived classes.
16530
16531 2007-03-15  Everaldo Canuto  <everaldo@simios.org>
16532
16533         [ Fixes bug #79828 ]
16534
16535         * ToolBar.cs:
16536         - Rename ToolBarButtonInfor to ToolBarItem.
16537         - Add all layout and calculation stuff gtom ToolBarButton to ToolBarItem.
16538         - Maintain an array of ToolBarItem, used instead of ToolBarButton
16539         collection to be able add same button more than one time on a toolbar.
16540         - Refactory all properties and methods to use ToolBarItem. 
16541
16542         * ToolBarButton.cs: 
16543         - Remove all propeties and methods that is now in ToolBarItem.
16544         - Rectangle propery now gets the rectangle from first ToolBarItem to
16545         mimic win32 behavior.
16546         - Size calculation and layout methods also removed.
16547
16548         * ThemeWin32Classic.cs: Change all ToolBar drawing methods to receive
16549         ToolBarItem instead of ToolBarButton to right drawing buttons when
16550         same button/separator was added more than one time to ToolBar.
16551
16552         * ThemeNice.cs: Same as above. 
16553
16554 2007-03-15  Andreia Gaita  <avidigal@novell.com>
16555
16556         * XplatUIX11.cs: Fire extra MouseMove events right after
16557         MouseDown and MouseUp, emulating win32's <censored> behaviour
16558         for apps that rely on it.
16559
16560 2007-03-15  Jackson Harper  <jackson@ximian.com>
16561
16562         * TextControl.cs:
16563         * TextBoxBase.cs: On MS, a fixed single border is not in NC area,
16564         it is drawn on the controls client window and there is no NC
16565         area.
16566         - Set the background color to gray on 2.0 when we are readonly.
16567
16568 2007-03-15  Chris Toshok  <toshok@ximian.com>
16569
16570         [ Fixes bug #81144 ]
16571         
16572         * XplatUIX11.cs: implement VirtualScreen independently of
16573         WorkingArea, by querying the _NET_DESKTOP_GEOMETRY root window
16574         property.
16575
16576 2007-03-15  Chris Toshok  <toshok@ximian.com>
16577
16578         * Hwnd.cs: add an internal field for the cached_window_state.
16579
16580         * XplatUIX11.cs: cache the window state, invalidating the cache
16581         (and thus re-querying the X server) only when we see an update to
16582         the _NET_WM_STATE property.
16583
16584 2007-03-15  Chris Toshok  <toshok@ximian.com>
16585
16586         * BindingSource.cs: get a lot of the unit tests working.
16587
16588 2007-03-15  Jonathan Pobst  <monkey@jpobst.com>
16589
16590         * Control.cs: Modify UpdateStyles to store distances when bounds >=
16591         0 instead of just bounds > 0.  [Fixes bug #80912]
16592
16593 2007-03-15  Jonathan Pobst  <monkey@jpobst.com>
16594
16595         * ToolStrip.cs, ToolStripItem.cs: Implement several new properties
16596         and methods.
16597
16598 2007-03-15  Ivan N. Zlatev <contact@i-nz.net>
16599         
16600         * ComboBox.cs, Control.cs, XplatUIStructs.cs, XplatUIX11GTK.cs,
16601         XplatUIX11.cs, XplatUIWin32.cs, InternalWindowManager.cs,
16602         XplatUIOSX.cs, TextControl.cs: Replaces all uses of the custom
16603         WM_MOUSE_LEAVE with the system WM_MOUSELEAVE message.
16604
16605 2007-03-15  Chris Toshok  <toshok@ximian.com>
16606
16607         [ Fixes #81101 ]
16608         
16609         * Control.cs: add Ivan's fix for 81101, with a slight modification
16610         - you can set control.Target to null.
16611
16612 2007-03-14  Jonathan Pobst  <monkey@jpobst.com>
16613
16614         * ToolStripItem.cs: If our OwnerItem is null, we can't use 
16615         HideDropDown, use Hide instead to prevent an NRE.
16616         [Fixes bug #81147]
16617
16618 2007-03-14  Jackson Harper  <jackson@ximian.com>
16619
16620         * TextBoxBase.cs: Mess with the creation stuff a little. We need
16621         to calculate the document before the handle is created, in some
16622         cases. (Actually just one case).
16623
16624 2007-03-14  Jackson Harper  <jackson@ximian.com>
16625
16626         * TextBoxBase.cs: Need to display the caret after letting the base
16627         wndproc handle the focus methods, because the caret display
16628         methods check the focus state.
16629         - Try to display the caret after updating it's position with SelectWord.
16630         - Don't need to do an immediate update on this recalc, since there
16631         will be an invalidate anyways.
16632
16633 2007-03-14  Jackson Harper  <jackson@ximian.com>
16634
16635         * TreeView.cs: Some workarounds so that we can match event order a
16636         little better.
16637
16638 2007-03-14  Gert Driesen  <drieseng@users.sourceforge.net>
16639
16640         * ErrorProvider.cs: Invoke default ctor from 2.0-only ctor. Fixes bug
16641         #80803. Avoid NullReferenceException when Control does not have
16642         parent. Fixed different blinkstyle issues. Only subscribe to Tick
16643         event a single time. Only draw error icon when control is created and
16644         visible. Fixes failing unit tests.
16645
16646 2007-03-14  Andreia Gaita  <avidigal@novell.com>
16647
16648         * TabControl.cs: Add support for 2.0 Deselecting, Deselected and
16649         Selecting events. Fire Leave and Enter events when changing tabs.
16650
16651 2007-03-14  George Giolfan  <georgegiolfan@yahoo.com>
16652
16653         * TreeView.cs: Add TreeViewNodeSorter.
16654         * TreeNodeCollection.cs: Add sorter parameter to Sort method.
16655
16656 2007-03-14  Chris Toshok  <toshok@ximian.com>
16657
16658         * Form.cs: go ahead and remove the RecreateHandles that jpobst
16659         removed earlier and I had him add back it.  It turns out metacity
16660         *does* in fact handle the MOTIF_WM_HINTS property changing, it
16661         just doesn't redraw the window titlebar until you resize the
16662         window.  This also means we aren't recreating the entire window
16663         hierarchy on X when you change this property.  And it looks better
16664         on windows, too.
16665
16666 2007-03-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16667
16668         * ListViewItem.cs:
16669         * ListView.cs: Collecting selection information
16670         is now done in SelectedIndexCollection rather than in
16671         SelectedListViewItemCollection. This is done so we can
16672         have the selection information code in one single place
16673         (virtual mode selection information entirely depends on
16674         SelectedIndexCollection).
16675
16676 2007-03-13  Miguel de Icaza  <miguel@novell.com>
16677
16678         * ErrorProvider.cs: Add stubs for ISupportInitialize
16679
16680 2007-03-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16681
16682         * ListViewItem.cs: Trigger the ItemCheck and ItemChecked events
16683         in the right order with the right values, from the Checked property, 
16684         just as MS does (instead of triggering them from ListView).
16685
16686         * ListView.cs: Make OnItemCheck and OnItemChecked internal.
16687
16688 2007-03-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16689
16690         * ListView.cs: Implement ItemChecked 2.0 event. Also cast to 
16691         the correct handler in OnItemCheck method (ItemCheckEventHandler 
16692         instead of EventHandler). This used to throw an InvalidCastException.
16693
16694 2007-03-13  Jackson Harper  <jackson@ximian.com>
16695
16696         * TextBoxBase.cs: Calculate the document before the handle is
16697         created, so there isn't an extra invalidate called.
16698
16699 2007-03-13  Jonathan Pobst  <monkey@jpobst.com>
16700
16701         * Form.cs: Don't set owner in ShowDialog until we are sure
16702         that we aren't going to throw an exception.  [Fixes bug #80773]
16703
16704 2007-03-12  George Giolfan  <georgegiolfan@yahoo.com>
16705
16706         * TreeView.cs: Make it compile.
16707
16708 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
16709
16710         * Control.cs: Another place we don't call SizeFromClientSize.
16711         * Form.cs: Another place we don't call SizeFromClientSize.
16712         [Fixes bug #81125]
16713
16714 2007-03-12  Jackson Harper  <jackson@ximian.com>
16715
16716         * TreeView.cs: Basically emulating some strangness here with
16717         exanding nodes and setting node positions when windows aren't
16718         created.
16719         - Also attempting to walk the node tree less than previously, and
16720         just use visible order calculations for determining offsets.
16721         - oops made scrolling backwards.
16722         * TreeNode.cs: We need to start nodes with a zero visible order,
16723         because the order calcs are based on the first nodes order.
16724
16725 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
16726
16727         * Form.cs: Don't exit the program if RecreateHandle is called on
16728         the main form.
16729
16730 2007-03-12  Chris Toshok  <toshok@ximian.com>
16731
16732         * XEventQueue.cs: remove the use of PostQuitState.
16733
16734         * XplatUIX11.cs: remove the use of PostQuitState.  If we get a
16735         WM_QUIT message in GetMessage, return false (and if we're in the
16736         nested WaitForHwndMessage, repost the WM_QUIT message).
16737
16738 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
16739
16740         * Form.cs: Don't call RecreateHandle when we change the MinimizeBox
16741         or the MaximizeBox properties.  [Part of bug #80640]
16742
16743 2007-03-12  Everaldo Canuto  <everaldo@simios.org>
16744
16745         * LinkLabel.cs: When calculate pieces make LinkArea empty if theres
16746         no links.
16747
16748 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
16749
16750         * ToolStripItem.cs: Fix some tests I broke by checking Visible
16751         instead of visible.
16752
16753 2007-03-12  Gert Driesen  <drieseng@users.sourceforge.net>
16754
16755         * FileDialog.cs: Use text of File name combobox to determine what
16756         files the user selected. Added tokenizer to parse the file names.
16757         Fixes bug #81123.
16758
16759 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
16760
16761         * Control.cs: We can't call SizeFromClientSize in the constructor,
16762         but we still need to do the same work, so make an internal version.
16763         [Fixes bug #80621]
16764
16765 2007-03-12  Jackson Harper  <jackson@ximian.com>
16766
16767         * TreeView.cs:
16768         * TreeNode.cs:
16769         * OpenTreeNodeEnumerator: Match MS better for IsVisible and
16770         IsExpanded.
16771
16772 2007-03-12  Jackson Harper  <jackson@ximian.com>
16773
16774         * TextBoxBase.cs: Now that the handles are being created a little
16775         later, we need to make sure that the document is recalculated when
16776         the handle is created.
16777
16778 2007-03-11  Everaldo Canuto  <everaldo@simios.org>
16779
16780         * Theme.cs: GetLinkFont abstract method added.
16781         
16782         * LinkLabel.cs: 
16783         - Remove CalcTrimRectangle, no longer needed.
16784         - Factor also remove, position issues must be fixed in libgdiplus.
16785         - Move GetPieceColor to ThemeWin32Classic.cs as it is theme related.
16786         - GetPieceFont, CreateLinkFont and link_font removed, theme must be 
16787         care about font used to draw links.
16788         - Set TabStop to true when control is "Selectable", control is selectable
16789         when have one or more links. Fixes #80501 (test case is also added).
16790         - Set the LinkArea values after links change, LinkArea values must be
16791         based in first link position and size, a test case was created.
16792         - Fix ControlStyles.Selectable value, now is based on LinkArea value, 
16793         the attribute must be true LinkArea.Length > 0. The same was applied to
16794         TabStop.
16795         
16796         * ThemeWin32Classic.cs: 
16797         - LinkLabelGetPieceColor and LinkLabelGetPieceFont created and used 
16798         in draw method.
16799         - Use CPDrawStringDisabled to draw disabled text instead of hard code 
16800         color change.
16801         - Draw focus rectangle for every parts focused, including parts that 
16802         is on another line, its because regions returns various rectangles
16803         and not only one. Needed to mimic W32 look.
16804         - Uses Graphics.Clip to delimite region painted, it mean that now 
16805         complete text is passed to DrawString, with this we solve layout
16806         issues without create another text renderer.
16807         - Uses Region.Intersect to fix some flickers problems, now only needed
16808         parts will redrawed.
16809         - This changes fixes #79614 and some other unreported issues, on Linux 
16810         some layout problems still remain, the problem is under 
16811         MeasureCharacterRanges but it is an libgdiplus bug.
16812
16813 2007-03-10  Gert Driesen  <drieseng@users.sourceforge.net>
16814
16815         * TextBox.cs: Set for foreground color.
16816         * TextBoxBase.cs: Remove Invalidate when setting BackColor, since
16817         this is already done in Control.
16818
16819 2007-03-10  Jackson Harper  <jackson@ximian.com>
16820
16821         * TextBox.cs: Set the background color, but reset the
16822         backcolor_set flag which is just for the user setting the
16823         background color.
16824
16825 2007-03-09  Chris Toshok  <toshok@ximian.com>
16826
16827         * Control.cs: really remove the call to XplatUI.SetVisible from
16828         CreateHandle(), like I said I did when I merged the branch.
16829
16830         * BindingSource.cs: implement some more of this stuff.
16831
16832 2007-03-09  Jackson Harper  <jackson@ximian.com>
16833
16834         * TextBox.cs: Don't explicitly set our background colors.
16835         * TextControl.cs:
16836         * TextBoxBase.cs: Draw readonly text.
16837         - Need to invalidate when backcolor or readonly are changed.
16838         
16839 2007-03-09  Jackson Harper  <jackson@ximian.com>
16840
16841         * TextBoxBase.cs: Don't set the forecolor until the handle is
16842         created.
16843         - Do not raise OnPaint, and removed some old debug code.
16844
16845 2007-03-09  George Giolfan  <georgegiolfan@yahoo.com>
16846
16847         * ScrollableControl.cs: Fix mouse wheel scrolling.
16848
16849 2007-03-09  Jonathan Pobst  <monkey@jpobst.com>
16850
16851         * Control.cs: Wire up MouseDoubleClick event.
16852
16853 2007-03-09  Jonathan Pobst  <monkey@jpobst.com>
16854
16855         * ToolStrip.cs: Rework AutoSize to adjust height when docked to the
16856         top or bottom.
16857         * ToolStripItem.cs: Make Image drawing take ImageScaling into account.
16858         * ToolStripItemCollection.cs: Don't call owner.PerformLayout when a new
16859         item is added.  This logic was moved to ToolStrip.OnItemAdded.
16860         [Fixes bug #81090]
16861
16862 2007-03-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16863
16864         * ListVieItem.cs: SetIndex is only valid for 2.0 profile by now.
16865
16866 2007-03-08  Jackson Harper  <jackson@ximian.com>
16867
16868         * TreeView.cs: Show the correct image for selected node (this used
16869         to work, not sure how the code got deleted). Also implemented 2.0 feature
16870         SelectedImageKey.
16871
16872 2007-03-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16873
16874         * ListView.cs:
16875         * ListViewItem.cs: Cache index in items when retrieving them
16876         in VirtualMode.
16877
16878 2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
16879
16880         * ToolStripItem.cs: Don't return the explicit_size if we are using 
16881         AutoSize.  Fixes invalidation issue when user has explicitly set a
16882         size and has AutoSize = true.
16883
16884 2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
16885
16886         * XplatUIX11.cs: Hardcode FrameBorderSize value temporarily to fix MWF.
16887
16888 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
16889
16890         * DataGridView.cs: Remove event handler from DataView when a
16891         DataTable is used as DataSource.
16892
16893 2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
16894
16895         * Control.cs: Create internal setter for client_size to allow it to be
16896         set without triggering resizing code.
16897         * Form.cs: Calculate client_size in constructor, only change client_size
16898         in FormBorderStyle property if Handle has been created.
16899         [Fixes #80574, #80791]
16900
16901 2007-03-08  George Giolfan  <georgegiolfan@yahoo.com>
16902
16903         * SystemInformation.cs: Add TerminalServerSession.
16904
16905 2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
16906
16907         * TreeViewDrawMode.cs: Make internal for 1.1 to allow for consolidated
16908         TreeView code.
16909
16910 2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
16911
16912         * XplatUIWin32.cs: The no_activate stuff was forcing us to create a
16913         Handle before we were supposed to.  Now checks ActivateOnShow property
16914         in Control.
16915         * Control.cs: Add internal ActivateOnShow property.
16916         * ComboBox.cs, Form.cs, MenuAPI.cs, ToolStripDropDown.cs: Return false
16917         for ActivateOnShow.
16918         * Hwnd.cs Remove no longer needed no_activate field.
16919
16920 2007-03-07  Jackson Harper  <jackson@ximian.com>
16921
16922         * TreeView.cs: Implement owner draw tree nodes.  And a couple more
16923         2.0 properties
16924         * DrawTreeNodeEventHandler.cs: Add
16925         * DrawTreeNodeEventArgs.cs: Correct default value.
16926         
16927 2007-03-07  Chris Toshok  <toshok@ximian.com>
16928
16929         * XplatUIWin32.cs: create InternalWndProc so that we're guaranteed
16930         to be called before NativeWindow.WndProc.  Put the HwndCreating
16931         magic there to hook up our Hwnd's to handles.
16932
16933 2007-03-07  Gert Driesen  <drieseng@users.sourceforge.net>
16934
16935         * DataGridView.cs: Comment out debug code.
16936
16937 2007-03-07  Chris Toshok  <toshok@ximian.com>
16938
16939         [merge -r72718:73765 from mwf-handle-branch, and include 2 changes
16940         to make the rest of the world happy]
16941
16942         * Control.cs (CreateHandle): there's no need to call
16943         XplatUI.SetVisible here, it's effectively done by
16944         XplatUI.CreateWindow on X now, and always was on windows.
16945
16946         * XplatUIX11.cs (WaitForHwndMessage): only use the PostQuitState
16947         shortcircuit out of the loop if we have a message loop running on
16948         this thread.
16949
16950         [Changelog from merge]
16951
16952         2007-03-05  Chris Toshok  <toshok@ximian.com>
16953
16954                 * Control.cs (AccessibilityNotifyClients): turns out in 1.1 this
16955                 causes handle creation.
16956
16957         2007-02-28  Chris Toshok  <toshok@ximian.com>
16958
16959                 * ApplicationContext.cs: Add a flag to make sure we only raise the
16960                 ThreadExit event once (ExitThreadCore can be indirectly called
16961                 from a few places.)  I don't like the additional flag, but it
16962                 makes the event ordering/count correct.
16963
16964                 * Application.cs (MWFThread.LoopCount): don't use an enumerator
16965                 without locking the collection.  An enumerator doesn't give us any
16966                 protection from modification anyway.  Lock the thread hash and
16967                 replace the complicated enumerator loop with a foreach.
16968                 (Application.CloseForms): make internal so it can be called from
16969                 ApplicationContext.  This should probably be moved to MWFThread.
16970                 (Application.ExitThread): don't call MWFThread.Current.Exit()
16971                 here.  just call XplatUI.PostQuitMessage.  We'll exit the thread
16972                 when the runloop exits (in response to WM_QUIT.)
16973                 (Application.RunLoop): add a comment (and check) for
16974                 context.MainForm being null after setting context.MainForm.Visible
16975                 = true.  This is because you're perfectly free to dispose of a
16976                 form in VisibilityChanged.  Chalk this up to another case where we
16977                 need to synchronously generate WM_ACTIVATE from Control.Show.
16978                 Also, add handling for WM_QUIT here so we'll exit the loop.
16979                 
16980                 * XplatUIX11.cs: clean up MapWindow and UnmapWindow a bit.  The
16981                 fact that we don't wait if we're only unmapping the whole_window
16982                 makes me a bit nervous, but it doesn't seem to cause any problems
16983                 yet.
16984
16985                 also, add a comment about the stupid, broken and wrong resetting
16986                 of PostQuitState to false in GetMessage().
16987
16988                 In PostQuitMessage, we need to add a WM_QUIT message to the
16989                 thread's queue.  We use the FosterParent to get the right
16990                 handle/hwnd/queue.
16991
16992                 Lastly, in SetVisible, we need to unmap both windows, since the
16993                 waiting only happens when we're unmapping the client window.  So
16994                 now, the *only* time we unmap just the whole_window is in the hack
16995                 for resizing a control to 0,0.
16996                 
16997         2007-02-21  Chris Toshok  <toshok@ximian.com>
16998
16999                 * Application.cs (CloseForms): rewrite this so that we don't
17000                 modify the list while we're traversing it.
17001
17002         2007-02-20  Chris Toshok  <toshok@ximian.com>
17003
17004                 * ListBox.cs (.ctor): move the Control.AddImplicits here instead
17005                 of OnHandleCreated.
17006                 (HorizontalScrollEvent): only call XplatUI.ScrollWindow if the
17007                 handle is created.  otherwise we'll create it here.
17008                 (VerticalScrollEvent): same here.
17009
17010                 * Application.cs (CloseForms): call Form.Dispose, don't post
17011                 WM_CLOSE_INTERNAL.
17012
17013                 * Form.cs (WndProc): we don't need to use CLOSE_INTERNAL
17014                 here. Application should Dispose() of the Form's.
17015
17016                 * XplatUIX11.cs (WaitForHwndMessage): break out of the loop on
17017                 WM_DESTROY as well.
17018                 (MapWindow,UnmapWindow): only actually do the waiting for
17019                 SHOWWINDOW if the control we're dealing with is a Form.
17020                 (CreateWindow): if the control isn't a form, SendMessage
17021                 WM_SHOWWINDOW here (if the WS_VISIBLE style is set).
17022
17023                 * Control.cs (SetVisibleCore): always use is_visible here, not
17024                 value.  If we use value, we can end up re-setting something
17025                 visible if, for instance, you do Control.Hide() in a delegate
17026                 attached to VisibleChanged as we do in FormTest.ShowDialogTest.
17027
17028         2007-02-20  Chris Toshok  <toshok@ximian.com>
17029
17030                 * XplatUIX11.cs (WaitForHwndMessage): we need to loop until we get
17031                 the message we need.  PeekMessage returning false should not be a
17032                 condition under which we exit the loop.
17033
17034         2007-02-15  Chris Toshok  <toshok@ximian.com>
17035
17036                 * Control.cs (Refresh): only refresh if we've got a handle and are
17037                 visible.
17038                 (CreateAccessibilityInstance): CreateControl() here.
17039                 (UpdateChildrenZOrder): complicate the code loop even more by
17040                 taking into account controls that haven't had their handle
17041                 created, and those that aren't visible.  But on the flip side,
17042                 simplify the code by splitting it into two loops.  one which
17043                 builds up the list of child controls we're interested in, and the
17044                 other that sets the z order of those children.
17045
17046         2007-02-14  Chris Toshok  <toshok@ximian.com>
17047
17048                 * Control.cs: Control.AccessibilityObject causes the control to be
17049                 created, not just the handle.
17050
17051         2007-02-14  Chris Toshok  <toshok@ximian.com>
17052
17053                 * Control.cs: rework UpdateChildrenZOrder to correctly handle the
17054                 problem on X where a window might have its handle created (and be
17055                 visible) while the window is unmapped.  calling XConfigureWindow
17056                 on an unmapped window is bad, and generates X errors.
17057
17058         2007-02-13  Chris Toshok  <toshok@ximian.com>
17059
17060                 * Control.cs (CreateHandle): don't loop over our children setting
17061                 their parent here.  do it when in WndProc when we're shown.
17062                 (UpdateChildrenZOrder): make this internal so we can call it from
17063                 ScrollableControl.
17064                 (WndProc): for WM_SHOWWINDOW, reparent the child control after
17065                 creating its handle.  Also, remove the calls to PerformLayout from
17066                 here.  they're done in ScrollableControl.OnVisibleChanged.  Also,
17067                 OnVisibleChanged only seems to be called directly here for the
17068                 toplevel control.  It's propagated down the window hierarchy by
17069                 calls to child.OnParentVisibleChanged.
17070                 (OnVisibleChanged): don't do layout here - it's done (oddly
17071                 enough, according to a glance at stack traces on ms.net..) in
17072                 ScrollableControl.
17073                 
17074                 * ScrollableControl.cs (OnVisibleChanged): make sure we update the
17075                 z order of our children before calling PerformLayout.
17076
17077         2007-02-12  Chris Toshok  <toshok@ximian.com>
17078
17079                 [big change, fixes #80020]
17080                 
17081                 * AccessibleObject.cs: we need to make owner internal again to fix
17082                 some of ControlAccessibleObject.
17083
17084                 * Control.cs: lots of changes here.  add support for WM_CREATE,
17085                 for which we generate OnHandleCreated.  Remove the OnHandleCreated
17086                 call from CreateHandle.  Also add support for WM_SHOWWINDOW where
17087                 we create child controls.  leave the MonoTODO's for the
17088                 accessibility calls, but fix the exceptions so the tests pass.
17089
17090                 Add the InvalidOperationExceptions to Invoke methods, and remove a
17091                 couple of InvokeInternal methods we aren't using.
17092                 
17093                 Also, add a couple of CreateHandle calls in places where we know
17094                 the handles are being created but our code doesn't reference
17095                 .Handle.
17096
17097                 Make SetVisibleCore call OnVisibleChange if the handle isn't
17098                 created.  If the handle is created, we rely on XplatUI.SetVisible
17099                 generating the event synchronously.
17100                 
17101                 Lastly, make sure we don't use this.Handle inside CreateHandle,
17102                 because we can call back into client (and that code can dispose of
17103                 the control).
17104
17105                 * XplatUIStructs.cs: misc/cleanup.
17106
17107                 * XplatUIX11.cs: Map/Unmap X events correspond to WM_SHOWWINDOW,
17108                 although we don't populate the wParam properly.
17109                 (CreateWindow): generate WM_CREATE.
17110                 (MapWindow,UnmapWindow): make these calls synchronous, at great
17111                 performance expense (particularly in the unmap case), to match
17112                 win32 behavior.
17113
17114                 * Form.cs (.ctor): remove the call to UpdateBounds. we don't need
17115                 to call it.
17116                 (set_MdiParent): don't recreate the handle unless it's been
17117                 created already.
17118                 
17119                 * MdiClient.cs (OnResize): don't InvalidateNC Parent.Handle unless
17120                 it's created.
17121
17122                 * NativeWindow.cs: this is probably the weirdest part of the
17123                 patch.  We need a way to link up the window being created to the
17124                 WM_CREATE message.  Since we can only be creating one window at a
17125                 time on a given thread, we keep track of a per-thread reference so
17126                 we can dispatch it properly.  We also need to keep track of the
17127                 Hwnd currently being created so that the win32 backend doesn't
17128                 have problems.
17129                 
17130                 * XplatUIWin32.cs: a similar change to the one we made in
17131                 NativeWindow.cs.
17132
17133 2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
17134
17135         * ToolStripItem.cs: Make CalculatePreferredSize virtual.
17136         * ToolStripMenuItem.cs: Modify CalculatePreferredSize and OnPaint
17137         to draw the menu shortcut string.
17138
17139 2007-03-07  Jackson Harper  <jackson@ximian.com>
17140
17141         * TreeNode.cs: Add the 2.0 collapse method.
17142
17143 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
17144
17145         * DataGridViewColumn.cs: Fix HeaderText behaviour (Bug #80746).
17146
17147 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
17148
17149         * DataGridView.cs: Change DataSource will clear column and row
17150         lists. Call Invalidate() to reflect DataSource change.
17151
17152 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
17153
17154         * DataGridView.cs: Add rows when DataSource is System.Data.DataView
17155         and a new row is added to it.
17156
17157 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
17158
17159         * DataGridView.cs: Add columns when DataSource is en empty list but
17160         is a System.Data.DataView (from a System.Data.DataTable).
17161
17162 2007-03-06  Andreia Gaita  <avidigal@novell.com>
17163
17164         * Label.cs: Implement AutoEllipsis (2.0)
17165
17166 2007-03-06  Jackson Harper  <jackson@ximian.com>
17167
17168         * TreeView.cs: Implement 2.0 TopNode setter property.
17169         - Use a local var instead of the skipped_nodes field for computing
17170         how many nodes to skip.  Otherwise we won't scroll because the
17171         valuechanged handler checks if skipped_nodes is equal to the new
17172         value.
17173         - Implement 2.0 Sort method.
17174         - Add useless 2.0 DoubleBuffer property
17175         - Implement 2.0 LineColors property.  Lets you change the color of
17176         the lines in the tree. Terribly useful for creating non cohesive
17177         desktops.
17178         - Implement 2.0 image key feature.
17179
17180 2007-03-06  Jackson Harper  <jackson@ximian.com>
17181
17182         * TreeView.cs: We can't get the bounds of the nodes before raising
17183         the AfterSelect event, because that event could change the node's
17184         bounds (scrolling, font change, etc).
17185
17186 2007-03-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17187
17188         * XplatUIWin32.cs: When faking styles don't remove the WS_VISIBLE flag.
17189         * Form.cs: Don't recreate handle when creating FormWindowManager, just
17190           update window styles. In CreateParams us VisibleInternal instead of
17191           VIsible to get the actual visible flag set for this form.
17192         * FormWindowManager.cs: Activate the form whenever the mouse clicks on
17193           the nc area. Fixes #81042. Also fix HandleTitleBarDoubleClick to
17194           handle the case when the form is already maximized, in which case
17195           it should be restored. Fixes #81043.
17196
17197 2007-03-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17198
17199         * XplatUIX11.cs: Tool windows still get wm styles. Fixes toolwindows showing up with double decorations.
17200
17201 2007-03-05  Jackson Harper  <jackson@ximian.com>
17202
17203         * TreeViewHitTestInfo.cs: implement.
17204
17205 2007-03-05  Jackson Harper  <jackson@ximian.com>
17206
17207         * InternalWindowManager.cs: class status fix.
17208
17209 2007-03-05  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17210
17211         * InternalWindowManager.cs: All windows that have a parent
17212         are confined to their parent when they're being moved.
17213         Fixes #80822.
17214
17215 2007-03-04  Gert Driesen  <drieseng@users.sourceforge.net>
17216
17217         * SystemInformation.cs: Marked KeyboardDelay and KeyboardSpeed public
17218         on 2.0 profile. Fixes bug #81018. Small code formatting fixes.
17219
17220 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17221
17222         * ThemeWin32Classic.cs: ManagedWindowSetButtonLocations: Make all
17223           buttons invisible before deciding which ones should be visible
17224           (fixes minimize/maximize buttons showing up in toolwindows). Remove
17225           an unused variable.
17226         * InternalWindowManager.cs: Remove warning.
17227
17228 2007-03-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17229
17230         * ListView.cs: Add a check in ListViewItemCollection.RemoveAt
17231         to throw an InvalidOperationException is virtual mode is being used.
17232
17233 2007-03-02  Jonathan Pobst  <monkey@jpobst.com>
17234
17235         * SplitContainer.cs, SplitterPanel.cs, StatusStrip.cs, TableLayoutPanel.cs,
17236         ToolStrip.cs, ToolStripContainer.cs, ToolStripContentPanel.cs,
17237         ToolStripControlHost.cs, ToolStripDropDownItems.cs, ToolStripItem.cs,
17238         ToolStripMenuItem.cs, ToolStripOverflowButton.cs, ToolStripPanel.cs,
17239         ToolStripPanelRow.cs, ToolStripProfessionalRenderer.cs, ToolStripSplitButton.cs,
17240         ToolStripStatusLabel.cs, ToolStripTextBox.cs: Corcompare work.
17241
17242 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17243
17244         * XplatUI.cs: Fixed returning driver.KeyboardSpeed instead of
17245           driver.KeyboardDelay from XplatUI.KeyboardDelay 
17246         * XplatUIW      in32.cs: Implemented KeyboardSpeed/KeyboardDelay properties
17247           (patch by Sergey Volk)
17248
17249 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17250
17251         * ToolWindowManager.cs: Added, contains logic for
17252           tool windows.
17253         * CreateParams.cs: Add a few helper methods and an
17254           internal variable to know which control the CreateParams belongs
17255           to.
17256         * Control.cs: Call Form.ChangingParent when the
17257           parent is about to be changed.
17258         * XplatUIX11.cs: DeriveStyles (): Set
17259           caption_height for all windows that have captions and are children.
17260           Update to use ToolWindowManager instead of InternalWindowManager
17261           for ToolWindows.
17262         * XplatUIWin32.cs: Set fake window styles for all
17263           windows that have window managers.
17264         * MdiWindowManager.cs: Added MaximizedTitleButtons (buttons are
17265           now duplicated for mdi windows when they are
17266           maximized, first for the buttons the window itself has, then for
17267           the buttons that appear in the menu bar. Makes things a little
17268           easier). Updated UpdateWindowDecorations, SetWindowState and the
17269           mouse eventhandlers accordingly.
17270         * Form.cs: Add ChangingParent (), contains the
17271           logic of what should happen when the parent changes. In MdiParent
17272           don't set things that ChangingParent () is doing. When handling
17273           WM_CLOSE, we can close the form if there are any other modal forms
17274           and the current form is a descendent of the modal form.
17275         * InternalWindowManager.cs: A lot of refactoring,
17276           the title buttons are now extracted to a separate container class
17277           that takes care of all button code (clicks, tooltips, etc). Moved
17278           Iconic|Maximized|Normal Bounds properties to this class from
17279           MdiWindowManager, so that the window state logic can succeed for
17280           other than mdi wm's. Implemented general window state change logic.
17281           Moved CreateButtons to ThemeWin32Classic, since the theme might
17282           override which buttons are available when as well as the exact
17283           location.
17284         * FormWindowManager.cs: Added, contains logic for
17285           normal forms.
17286         * ThemeWin32Classic.cs: ManagedWindowSetButtonLocations now decides
17287           which buttons go where (and if they are at all visible). 
17288           Removed special handling of maximized windows, since they aren't special. 
17289           In DrawManagedWindowDecorations don't try to draw the text if it is
17290           empty.
17291         * MdiClient.cs: ArrangeIconicWindows: Don't  calculate any sizes, 
17292           use whatever the wm gives us.
17293
17294 2007-03-02  Jonathan Pobst  <monkey@jpobst.com>
17295
17296         * ButtonBase.cs: Add 2.0 properties.
17297         * Button.cs: Override Draw for 2.0.
17298         * Control.cs: Add Entered and Selected properties.
17299         * FlatButtonAppearance.cs, TextFormatFlags.cs, TextImageRelation.cs,
17300         TextRenderer.cs: Make internal for 1.1 to unify drawing code.
17301         * Theme.cs: New abstract functions for drawing Standard, Flat, Popup
17302         buttons.
17303         * ThemeWin32Classic.cs: Implement layout calculations for 2.0 buttons.
17304
17305 2007-03-01  Jonathan Pobst  <monkey@jpobst.com>
17306
17307         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code.  :/
17308
17309 2007-03-01  Jonathan Pobst  <monkey@jpobst.com>
17310
17311         * XplatUIWin32.cs: Register a new class with Windows each time we get
17312         a new ClassStyle.  [Fixes bugs #79432, #80817]
17313         * Controls.cs: Set the correct ClassStyle in CreateParams.
17314         * ToolStripDropDown.cs: Don't request an invalid ClassStyle.
17315
17316 2007-03-01  Gert Driesen  <drieseng@users.sourceforge.net>
17317
17318         * ListView.cs: Add fireEvent argument to ReorderColumn since the
17319         ColumnReordered event must not be signaled when modifying DisplayIndex
17320         of a ColumnHeader. Added internal ReorderColumns method which takes
17321         care of drawing, and updating the internal DisplayIndex of the
17322         ColumnHeader. Added AddColumn method which is invoked from
17323         ColumnHeaderCollection when adding or inserting columns, and which
17324         ensures that reorder_columns_indices is kept in sync. Avoid redrawing
17325         after adding each ColumnHeader in ColumnHeaderCollection.AddRange.
17326         Recalculated dispay indices after removing a ColumnHeader.
17327         * ColumnHeader.cs: Save DisplayIndex separately from ListView to
17328         match MS. Allows last display index to be returned after ListView
17329         is disposed. Update actual location of ColumnHeader when DisplayIndex
17330         is modified.
17331
17332 2007-03-01  Everaldo Canuto  <everaldo@simios.org>
17333
17334         * LinkLabel.cs: Improve CalcTrimRectangle.
17335         
17336         * ThemeWin32Classic.cs: Fix some compilation problem under VS 2003.
17337
17338 2007-02-28  Everaldo Canuto  <everaldo@simios.org>
17339
17340         * LinkLabel.cs: Rename CalcMeasurementFactor as CalcTrimRectangle and
17341         get rectangle as a result value.
17342
17343 2007-02-28  Everaldo Canuto  <everaldo@simios.org>
17344
17345         * LinkLabel.cs: Theres some diferences between rectangle return from 
17346         MeasureCharacterRanges and the area used for DrawString to fix this 
17347         CalcMeasurementFactor method was created, it calcules the diferences
17348         to be use later to adjust rectangle in draw operations. Fixes #80473.
17349         
17350         * ThemeWin32Classic.cs: Use factor calculated by CalcMeasurementFactor
17351         to adjust draw rectangle.
17352
17353 2007-02-27  Everaldo Canuto  <everaldo@simios.org>
17354
17355         * ThemeWin32Classic.cs: In DrawLinkLabel draw focus rectangle before draw
17356         text and some other changes to reduce and optimize source code.
17357
17358 2007-02-27  Jonathan Pobst  <monkey@jpobst.com>
17359
17360         * RadioButton.cs: Implement 2.0 event.
17361         * RelatedImageListAttribute.cs: Implement new class.
17362
17363 2007-02-27  Everaldo Canuto  <everaldo@simios.org>
17364
17365         * MenuAPI.cs: Change keynav_state before call SelectItem. Fixes #80901.
17366
17367 2007-02-27  Jonathan Pobst  <monkey@jpobst.com>
17368
17369         * CheckBox.cs: Implement 2.0 functionality.
17370
17371 2007-02-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17372
17373         * ListView.cs: Refactor Add and AddRange methods of
17374         ListViewItemCollection, to not update the ListView
17375         everytime an item is added in AddRange. Also move the update
17376         code to a new CollectionChanged method, and call it
17377         from other methods that need it as well (this should also fix some
17378         bugs when Sorting is used).
17379
17380 2007-02-27  Jackson Harper  <jackson@ximian.com>
17381
17382         * TextControl.cs: Try to never let the caret stay in a non-text
17383         tag.
17384         * TextBoxBase.cs: Update the caret.
17385
17386 2007-02-26  Jonathan Pobst  <monkey@jpobst.com>
17387
17388         * XplatUIStructs.cs: Add some convenience methods for POINT structure.
17389         * XplatUIWin32.cs: Add some convenience methods for RECT structure,
17390         delete POINT structure, duplicate of one in XplatUIStructs.
17391         * TextRenderer.cs: Use XplatUIWin32.RECT instead of UXTheme.RECT.
17392
17393 2007-02-26  Gert Driesen  <drieseng@users.sourceforge.net>
17394
17395         * ListView.cs: Initialize LabelEditEventArgs after setting Text of
17396         edit box since otherwise the Label would immediately be set (even if
17397         the user did not modify the label). In OnKeyDown set Handled to true
17398         if Return or Escape was pressed. In ColumnHeaderCollection unlink
17399         columns that are to be removed. In ListViewItemCollection unlink items
17400         that are to be removed.
17401
17402 2007-02-24  Jonathan Pobst  <monkey@jpobst.com>
17403
17404         * TextRenderer.cs: If we set a GDI clip region, we need to clear
17405         it when we are done.  [Fixes bug #80949]
17406
17407 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
17408
17409         * Form.cs: Wrap checking ShowWithoutActivation in a NET_2_0 block.
17410
17411 2007-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17412
17413         * ListView.cs: I forgot to commit the changes for ListView 
17414         in my previous patch.
17415
17416 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
17417
17418         * Clipboard.cs: Partially implement an overload of SetDataObject.
17419         * Form.cs: Implement ShowWithoutActivation.
17420         * XPlatUIWin32.cs: Fix for WM_SHOWNOACTIVATE for forms.
17421
17422 2007-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17423
17424         This is a first set of changes to make the Virtual mode works,
17425         by avoiding the retrieval of ListViewItem instances until
17426         draw time.
17427
17428         * ListView.cs: Store item position in the ListView instead of the
17429         ListViewItem, this way we don't request the Bounds property of
17430         ListViewItem inside the ListView calculations, as well as cache the item
17431         size in item_size field. Store indexes instead of ListViewItem
17432         instances in the matrix used by icon view. Add a ItemMatrixLocation
17433         struct to hold the row and col info of the matrix info.
17434
17435         * ListViewItem.cs: Don't store the location anymore, and only cache
17436         the rectangles for GetBounds. Use the ListView.GetItemLocation
17437         method to retrieve the actual location.
17438
17439 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
17440
17441         * TextRenderer.cs: Add clipping support, thanks to George.
17442         [Fixes bug #80949]
17443
17444 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
17445
17446         * ListViewItem.cs: Cancel label edit when item is removed from 
17447         ListView.
17448         * ListView.cs: Move setting of focus to EndEdit. Fire BeforeLabelEdit
17449         event before the edit textbox is displayed.  Added CancelEdit method
17450         which is used end to editing while ignoring the value set by the
17451         user. In EndEdit, set focus to ListView to avoid losing focus to
17452         other controls. In ListViewItemCollection.Clear, cancel editing of
17453         any of the items.  In Remove, cancel editing of item being removed.
17454         Avoid udplicate code by modifing RemoveAt to invoke Remove.
17455
17456 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
17457
17458         * FileDialog.cs: Update FSEntry when move is successful. Fixes
17459         bug #80948.  
17460
17461 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
17462
17463         * MainMenu.cs: Change Draw method to take care about MenuOrigin to be 
17464         compatible with non X11 systems. Fixes #80901.
17465
17466 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
17467
17468         * ListView.cs: Added bool argument to UpdateMultiSelection to specify
17469         whether the item should be unselected and reselect. We do no want this
17470         when we're starting to edit the label. Do not fire the 
17471         SelectedIndexChanged event from ListView when its already been fired
17472         by modifying ListViewItem.Selected. Fixes bug #80943.
17473
17474 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
17475
17476         * TextRenderer.cs: Previos commit logic was backwards.
17477
17478 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
17479
17480         * TextRenderer.cs: Don't add padding on MeasureText if we were
17481         sent the NoPadding flag.
17482
17483 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
17484
17485         * ThemeWin32Classic.cs: Invert order of drawing operation with DrawImage
17486         after DrawButton. To prevent image overlaps button borders SetClip and 
17487         ResetClip added before and after draw image. Fixes #79129.
17488
17489 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
17490
17491         * FolderBrowserDialog.cs: Use ClientSize instead of Size to specify 
17492         window size, it fix problem when you run under win32 that theres
17493         Size diferent than ClientSize. Also fix controls size and positions
17494         to mimic Win32. Fixes #80837.
17495
17496 2007-02-22  Everaldo Canuto  <everaldo@simios.org>
17497
17498         * Form.cs: Handle WM_NCHITTEST and return HTMENU when point is on 
17499         menu area to fix some problems for non X11 systems. Fixes #80613.
17500
17501 2007-02-22  Jackson Harper  <jackson@ximian.com>
17502
17503         * TreeNode.cs: When a node is expanded, set its is_expanded flag
17504         even if it doesn't have any children.
17505
17506 2007-02-22  Jackson Harper  <jackson@ximian.com>
17507
17508         * TreeView.cs: Calculate the top node 'on the fly', this
17509         eliminates issues where you need to click on the tree before
17510         scrolling it to get the top node computed correctly.
17511         * TreeNodeCollection.cs: We don't need to mess with the top node
17512         anymore.
17513
17514 2007-02-22  Jackson Harper  <jackson@ximian.com>
17515
17516         * DataGridViewRow.cs: Fix typo so height can actually be set.
17517         Patch by Peter Grimm.
17518
17519 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
17520
17521         * FileDialog.cs: Fixed support for renaming files and directories.
17522         * ListView.cs: Do not lose focus when edit is canceled. Process
17523         Escape as regular key (to prevent closing of dialogs).
17524
17525 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
17526
17527         * ListView.cs: Removed TODO for LabelEdit. Removed extra tabs and
17528         spaces. Changed spaces to tabs. Removed unnecessary init of bools.
17529
17530 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
17531
17532         * FileDialog.cs: LabelEditEventArgs.Label now returns null when user
17533         did not modify label.
17534         * ListView.cs: Only set LabelEditEventArgs.Label if user actually
17535         modified the text. Reset Label when user presses Escape in edit mode.
17536         Move focus to ListView after having cancelled or finished editing the
17537         label.
17538
17539 2007-02-21  Gert Driesen  <drieseng@users.sourceforge.net>
17540
17541         * ComboBox.cs: Removed unnecessary initializations. Marked items field
17542         private. Clear textbox when Text is set to null and SelectedIndex is
17543         already -1.
17544         * FileDialog.cs: Removed unnecessary initializations. Removed 
17545         workarounds for ComboBox bugs that are now fixed. Modified
17546         DefaultExt, InitialDirectory and Title property to change null to
17547         zero-length string in getters. Avoid directly accessing fields.
17548
17549 2007-02-20  Jackson Harper  <jackson@ximian.com>
17550
17551         * TextControl.cs: Remove RecalAlignments call, that was some
17552         debugging leftovers.
17553         - Don't use the line indent when we shouldn't.
17554         * RichTextBox.cs: Add support for paragraph left indents.
17555
17556 2007-02-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
17557
17558         * Control.cs: Fix BeginInvoke signature for 2.0 profile.
17559         Seems like the class status pages doesn't catch params differences.
17560
17561 2007-02-19  Gert Driesen  <drieseng@users.sourceforge.net>
17562
17563         * ComboBox.cs: Removed extra tabs. Changes spaces to tabs.
17564
17565 2007-02-19  Gert Driesen  <drieseng@users.sourceforge.net>
17566
17567         * ComboBox.cs: Setting Text should have no effect if item text of
17568         selected item exactly matches value. First lookup text using
17569         case-sensitive comparison, and fallback to case-insensitive comparison.
17570         FindString(Exact) returns -1 if search string is null. On 2.0 profile, 
17571         allow startIndex to be last index. Changed ArgumentOutOfRangeException
17572         paramname to match MS. Restart from first item if string is not found
17573         after startIndex. Fixed paramname of ArgumentNullException that is
17574         thrown for null value in ObjectCollection.Contains.
17575
17576 2007-02-19  Everaldo Canuto  <everaldo@simios.org>
17577
17578         * XplatUIStructs.cs: WM_XXX UISTATE elements uncommented.
17579
17580 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17581
17582         * ListControl.cs: In SelectedValue use value.Equals to compare for
17583         equality instead of ==, otherwise it will fail for strings.
17584         Fixes #80794.
17585
17586 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17587         
17588         * ComboBox.cs: Switch the order to ShowSelection and ActivateCaret,
17589         since the caret won't show up unless ShowSelection is true. 
17590         Fixes #80795.
17591
17592 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17593
17594         * Application.cs: When disabling all forms but the main form, do not
17595           disable any descendants of the main form (such as mdi children or
17596           other parented forms). Fixes #80822 on Windows.
17597         * Form.cs: If we have a parent, set the WS_CHILD style.
17598         * Control.cs: Update the window styles if the control whose parent has
17599           changed is a form (the WS_CHILD style has to be switched).
17600
17601 2007-02-19  Everaldo Canuto  <everaldo@simios.org>
17602
17603         * XplatUIStructs.cs: MsgUIState structure added.
17604
17605 2007-02-18  Gert Driesen  <drieseng@users.sourceforge.net>
17606
17607         * FileDialog.cs: Removed need for separate fileName field. On 2.0
17608         profile, do not check filename(s) for illegal character if filename(s)
17609         were set non-interactively but always check on 1.0 profile. Fixed NRE
17610          in DefaultExt and only strip off first leading dot. Improve exception
17611         message when invalid Filter is set. Do not ignore InitialDirectory if
17612         it does no exist. Store specified Title, and if empty use default
17613         title (depending on type of dialog). Added an internal DialogTitle 
17614         property for retrieving dialog title. Fixed logic of displayed dir to
17615         more closely match MS. Avoid setting ComboBox.Text to a zero-length 
17616         string as its buggy.
17617         * OpenFileDialog.cs: In OpenFile, throw ArgumentNullException if
17618         FileName is a zero-length string (it can never be null). Override 
17619         DialogTitle property to set default title of dialog box.
17620         * SaveFileDialog.cs: Override DialogTitle property to set default
17621         title of dialog box.
17622
17623 2007-02-18  Gert Driesen  <drieseng@users.sourceforge.net>
17624
17625         * FileDialog.cs: Modify default text of filename and filetype labels
17626         to match that of MS. Reset do_not_call_OnSelectedIndexChanged...
17627         after we've updated the SelectedIndex. Fixes part of bug #80887.
17628         * SaveFileDialog.cs: Set text of filetype label.
17629
17630 2007-02-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17631
17632         * LabelEditEventArgs.cs: New internal SetLabel method, to set the
17633         label field. Needed by latest Jackson's fixes for ListView.
17634
17635 2007-02-16  Andreia Gaita  <avidigal@novell.com>
17636
17637         * PrintPreviewControl/PrintPreviewDialog: Properly dispose of 
17638         print preview images.
17639
17640 2007-02-16  Jackson Harper  <jackson@ximian.com>
17641
17642         * ListView.cs: Make AfterLabelEdit work correctly.
17643         * FileDialog.cs: After changing the name of the folder, we have to
17644         make sure that it is created, or that we pop up an error because
17645         it already exists.
17646
17647 2007-02-16  Jackson Harper  <jackson@ximian.com>
17648
17649         * X11Dnd.cs: Implement aliases on mime handlers, so things like
17650         System.String are mapped to text.
17651         - Handle dataobjects, getting all the possible formats out of them
17652         - We dont need the drag event args before we give feedback. This
17653         allows feedback cursors to be immediate before selections have
17654         been converted.
17655
17656 2007-02-16  Jackson Harper  <jackson@ximian.com>
17657
17658         * TextBoxBase.cs: Modified the method for inserting images to
17659         taking a line and position instead of tag and position.
17660         * RichTextBox.cs: Handle PngBlip data by inserting the png image
17661         into the RTF file.
17662         * TextControl.cs: Allow images to be inserted as the first tag of
17663         a line.
17664         - Fix some off by one issues when we assume the first tag is a
17665         text tag, not an image tag.
17666
17667 2007-02-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17668
17669         * ListView.cs: Set focus to ListView when ItemControl gets a
17670         WM_RBUTTONDOWN message, to mimic .Net behaviour. 
17671         Fixes part of #80467.
17672
17673 2007-02-15  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17674
17675         * DateTimePicker.cs: Call RecreateHandle if the Format changes and
17676           validate Text input (if null or empty string reset Value to default
17677           value). Fixes #80830.
17678
17679 2007-02-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17680
17681         * ListView.cs: Set owner as null for columns and items when
17682         Dispose is invoked. Fixes #80607.
17683
17684 2007-02-14  Jonathan Pobst  <monkey@jpobst.com>
17685
17686         * ToolStrip.cs: Allow LayoutStyle.Flow, make sure to call OnOpening when
17687         showing DropDowns, don't show a Grip when doing Flow layout.
17688         [This fixes the toolbox in PDN 2.72.]
17689         * ToolStripItem.cs: Add Anchor property and some internal properties to
17690         reduces needed changes to FlowLayout.
17691         * ToolStripOverflow.cs: Remove unused variable.
17692         * ToolStripSplitStackLayout.cs: If a ToolStripItem isn't visible, don't
17693         use it in the layout calculations.
17694
17695 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
17696
17697         * ToolTip.cs: Add HotkeyPrefix.Hide to MeasureString format, it fix an issue
17698         reported in #79640.
17699         
17700         * ThemeWin32Classic.cs: Uses format for MeasureString in ToolTipSize to fiz
17701         size calculation.
17702
17703 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
17704
17705         * ToolBar.cs, ToolBarButton.cs: Revert and remove HotkeyPrefix from 
17706         MeasureString format, it can make button very large in some cases, it is
17707         strange but is what win32 do.
17708
17709 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
17710
17711         * ToolBar.cs, ToolBarButton.cs: Uses format in MeasureString to fix string 
17712         size calculation.
17713
17714         * ThemeWin32Classic.cs: Set HotkeyPrefix in toolbar text format to fix text
17715         rendering, the value is based on MenuAccessKeysUnderlined.
17716
17717 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
17718
17719         * Theme.cs: Change MenuAccessKeysUnderlined to "true" that is value used
17720         for most themes.
17721         
17722         * ThemeWin32Classic.cs: Override MenuAccessKeysUnderlined as false.
17723         
17724         * ThemeNice.cs, ThemeGtk.cs, ThemeClearlooks.cs: Remove always_draw_hotkeys
17725         and use MenuAccessKeysUnderlined instead.
17726
17727 2007-02-13  Andreia Gaita  <avidigal@novell.com>
17728
17729         * ContainerControl.cs: Focus fix for nunit treeview selection bug.
17730         A selected control would not get a Focus call if:
17731                 - the default active control of the container is the same as
17732                   the one that was selected
17733                 - we are switching from one container to another
17734         Under these conditions, the container being selected already has
17735         an active_control, which is the same as the one being activated, 
17736         so set_ActiveControl would always return and not send the Focus
17737         call. Fix to check if the currently active control of the container
17738         is actually focused.
17739
17740 2007-02-13  Jonathan Pobst  <monkey@jpobst.com>
17741
17742         * StatusStrip.cs: Implement the spring layout.
17743         * ToolStripControlHost.cs: Make sure the hosted control's visibility
17744         always matches the host.
17745         * ToolStripItem.cs: Write a more accurate layout for TextBeforeImage
17746         and TextAfterImage.
17747
17748 2007-02-13  Andreia Gaita  <avidigal@novell.com>
17749
17750         * Control.cs: Code reorganization only.
17751           - Reorganize the WndProc cases so that each case has it's own handling method, 
17752           to help with the no-line-numbering stack traces.
17753           - Formatting changes (it's vstudio's fault, really :p)
17754
17755 2007-02-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17756
17757         * MonthCalendar.cs: Switch to using Thread.CurrentCulture instead of
17758           Thread.CurrentUICulture to match DateTimePicker's (and MS)
17759           behaviour.
17760
17761 2007-02-12  Jackson Harper  <jackson@ximian.com>
17762
17763         * RichTextBox.cs:
17764         * TextBox.cs: By default we have a non multiline document
17765         - use the multiline property instead of the internal variable
17766         * TextBoxBase.cs: Treat multiline and non multiline the same in
17767         most places.
17768         - Use the documents multiline flag instead of tracking it ourself
17769         * TextControl.cs: Attempt at getting multiline to match MS
17770         behavior.  Lines now track an offset, which is either their X or Y
17771         offset depending on whether or not we are in multiline mode.
17772         - Update all the methods to understand that lines have an X value.
17773         - Fix crash in Undo::Duplicate when empty lines are deleted.
17774
17775 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
17776
17777         * Label.cs: CalcPreferredHeight and CalcPreferredWidth methods removed and 
17778         code moved to properties PreferredHeight and PreferredWidth. It solve the
17779         all problems when preferred sizes must be recalculated. Fixes #80801.
17780
17781 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
17782
17783         * Label.cs: Fix CalcPreferredHeight for 2.0 that must return only
17784         font height when compatible_text_rendering is false. Partially fix #80801.
17785
17786 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
17787
17788         * Form.cs: Fixed typo in exception message. Fixes bug #80779.
17789
17790 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
17791
17792         * Form.cs: Improved exception messages in ShowDialog.
17793
17794 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
17795
17796         * PrintDialog.cs: On 1.0 profile, throw ArgumentException in RunDialog if
17797         PrinterSettins has not been set. On 2.0 profile, initialize PrinterSettings
17798         if not set. Fixes bug #80764. Avoid accessing current_settings field
17799         directly.
17800
17801 2007-02-08  Everaldo Canuto  <everaldo@simios.org>
17802
17803         * Theme.cs: An new property MenuAccessKeysUnderlined added with default value
17804         false.
17805
17806         * SystemInformation.cs: An new property MenuAccessKeysUnderlined added, it is
17807         public in 2.0 and for easy maintenance and dont break compatibility it is 
17808         internal in 1.1.
17809         
17810 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
17811
17812         * ToolStripItem.cs: Implement using images from ImageList.
17813
17814 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17815
17816         * DateTimePicker.cs: Change default date-formatting culture from
17817           CurrentThread.CurrentUICulture to CurrentThread.CurrentCulture,
17818           seems to be the way MS does it.
17819
17820 2007-02-08  Andreia Gaita  <avidigal@novell.com>
17821
17822         * PrintPreviewControl.cs: rewrite toolbar code to fix #80725. Correct 6-up image 
17823         (the 6 was cut off on the right side)
17824
17825 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
17826
17827         * Form.cs: Tell MenuStrips to close when the form is clicked.
17828         * MenuStrip.cs, ToolStrip.cs, ToolStripControlHost.cs, 
17829         ToolStripDropDown.cs, ToolStripDropDownItem.cs, ToolStripItem.cs,
17830         ToolStripItemCollection.cs, ToolStripMenuItem.cs, ToolStripProfessionalRenderer.cs,
17831         ToolStripSplitButton.cs, ToolStripSplitStackLayout.cs: Add 
17832         support for Overflow, where items that do not fit are automatically
17833         reparented to a drop down menu.
17834         * ToolStripOverflow.cs, ToolStripOverflowButton.cs: Added.
17835         Also: fixes bug #80747.
17836
17837 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17838
17839         * ComboBox.cs: Remove warning (unused code).
17840         * ScrollableControl.cs: Remove warning for 1.1 profile.
17841
17842 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17843
17844         * Form.cs: Remove a warning.
17845
17846 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17847
17848         * DateTimePicker.cs: Fixed a NRE if CustomFormat was null. Handles the
17849           'g' specifier, not documented anywhere, but seems to always show up
17850           as a single space (might have something to do with the DateTime 'g'
17851           specifier, which is the era format, but since DateTimePicker can't
17852           go earlier than 1753 it wouldn't matter) . Fixed quote handling,
17853           won't crash if the format has an unmatched quote. Now shows
17854           single-character formats correctly. Fixes #80744.
17855
17856 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
17857
17858         * StatusStrip.cs: Stretch property needs to call base.Stretch,
17859         not this.Stretch to fix stack overflow. [Fixes bug #80760]
17860
17861 2007-02-07  Chris Toshok  <toshok@ximian.com>
17862
17863         * ThemeWin32Classic.cs (DrawButtonBase): don't clear to the
17864         background color.  it overwrites the background image we've
17865         already painted.  Fixes #80599.
17866
17867 2007-02-07  Chris Toshok  <toshok@ximian.com>
17868
17869         * DataGrid.cs: return immediately from Edit() when there are no
17870         columns.  Fixes #80662.
17871
17872 2007-02-07  Chris Toshok  <toshok@ximian.com>
17873
17874         * MessageBox.cs: fix #80625.  don't always show the Help button in
17875         2.0.  use the displayHelpButton parameter to determine if we
17876         should show it. Also, make the internal show_help field private.
17877
17878 2007-02-07  Chris Toshok  <toshok@ximian.com>
17879
17880         * Control.cs (SetVisibleCore): check in the proposed patch for
17881         80604, and set is_visible before calling CreateControl.
17882
17883 2007-02-07  Jonathan Pobst  <monkey@jpobst.com>
17884
17885         * ListView.cs: UseCompatibleStateImageBehavior setter changed from NIEX to 
17886         MonoInternalNote.  This is added automagically by VS2005, so let's not crash
17887         on it.
17888
17889 2007-02-06  Everaldo Canuto  <everaldo@simios.org>
17890
17891         * MenuAPI.cs: hotkey_active internal field added, it is required because
17892         we need to know when hotkeys must be draw, before this change a keystate
17893         Navigating was used but we can have menu in navigating state without
17894         hotkeys. Fixes #80694.
17895         
17896         * ThemeWin32Classic.cs: Only draw hot keys when hotkey_active is true.
17897
17898 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17899
17900         * Control.cs: Handle WM_CAPTURECHANGED in 1.1 code as well, and change
17901           corresponding events and methods to be internal for 1.1 profile and
17902           public for 2.0 profile (required by SizeGrip).
17903         * Form.cs: Use SizeGrip as a virtual SizeGrip (and don't add it to the
17904           implicit control list). Don't set the size nor the location of the
17905           SizeGrip anymore as it's not needed.
17906         * SizeGrip.cs: Rewrote large parts, it now supports a virtual mode to
17907           draw directly on the captured control (fixes #80656). Removed
17908           ShowGrip (it wasn't used anywhere), redraw (always true), added
17909           GetDefaultSize and GetDefaultRectangle to calculate defaults.
17910         * ScrollableControl.cs: Make UpdateSIzeGripVisible internal so it can
17911           be called from SizeGrip.
17912
17913 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17914
17915         * Timer.cs: Throw ArgumentException if Interval <= 0.
17916
17917 2007-02-05  Jackson Harper  <jackson@ximian.com>
17918
17919         * TreeView.cs: We need to check scrollbar visibility when window
17920         visibility is updated, because non visible trees don't ever add
17921         scrollbars.
17922         * Cursor.cs: We want the override cursor to be reset to NULL when
17923         we set current cursor to the default cursor.
17924
17925 2007-02-05  Jackson Harper  <jackson@ximian.com>
17926
17927         * TextControl.cs: Don't have crlfs when we are non multiline.
17928         - Consolidate the line position.
17929
17930 2007-02-05  Jackson Harper  <jackson@ximian.com>
17931
17932         * X11Keyboard.cs: BACK+CTRL gets a special char code.
17933
17934 2007-02-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17935
17936         * XplatUIX11.cs: Implemented WM_CAPTURECHANGED support, we're now
17937           handling LeaveNotify->NotifyUngrab in order to send
17938           WM_CAPTURECHANGED. However sometimes the NotifyUngrab arrives late
17939           after calling XUngrabPointer, so we call WindowUngrabbed directly
17940           from UngrabWindow in order to send WM_CAPTURECHANGED immediately.
17941         * Control.cs: Handle WM_CAPTURECHANGED in order to raise
17942           MouseCaptureChanged correctly. Also create handles if changing
17943           Capture (matches MS behaviour).
17944
17945 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17946
17947         * SizeGrip.cs: Make the last change 2.0 only.
17948
17949 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17950
17951         * SizeGrip.cs: If resizing and the capture is lost, revert any size
17952           changes to initial size (fixes #80597).
17953
17954 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17955
17956         * SizeGrip.cs: Use the normal icon for SizeGrip if it is disabled.
17957
17958 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17959
17960         * SizeGrip.cs: Only draw sizegrip if enabled (but always draw
17961           background) and only allow dragging if enabled. This way the
17962           sizegrip can be used to fill the open square that otherwise would
17963           have been shown in the bottom right corner of ScrollableControl
17964           when ScrollableControl is not suppose to support sizing.
17965         * ScrollableControl.cs: Create UpdateSizeGripVisible to decide when the
17966           sizegrip is shown and enabled, and hook up with necessary events.
17967
17968 2007-02-01  Chris Toshok  <toshok@ximian.com>
17969
17970         * DataGridTextBoxColumn.cs: clean up the
17971         GetFormattedString/GetColumnValueAtRow combination of functions.
17972         Also fix UpdateUI, and the initial state of
17973         IsInEditOrNavigateMode.
17974
17975         * DataGridTextBox.cs: don't chain up to base.OnMouseWheel - we
17976         aren't supposed to scroll the textbox here, we're supposed to
17977         scroll the datagrid.
17978
17979 2007-02-01  Chris Toshok  <toshok@ximian.com>
17980
17981         * ComboBox.cs: use vscrollbar_ctrl.Dock instead of explicitly
17982         setting the position.
17983
17984 2007-02-01  Chris Toshok  <toshok@ximian.com>
17985
17986         * DataGrid.cs (OnLeave): we can now do the CancelCurrentEdit thing
17987         here, since the most recent focus fixes keep us from generating
17988         the Leave event when our textbox gets focus.
17989         (Edit): we should be passing null for the column style's
17990         instantText parameter.
17991         
17992 2007-02-01  Jonathan Pobst  <monkey@jpobst.com>
17993
17994         * ToolStripDropDownItem.cs: Make sure DropDownOpening event is 
17995         raised.  Fixes menu text/icons not showing up in PDN.
17996
17997 2007-02-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
17998
17999         * Control.cs: Remove code in constructor that makes every
18000         control with WS_CHILD set have initial location -1, -1.
18001
18002 2007-01-31  Jackson Harper  <jackson@ximian.com>
18003
18004         * X11Dnd.cs: Take the keyboard on init to reduce coupling with
18005         XplatUIX11.
18006         * XplatUIX11.cs: Give teh keyboard to teh dnd.
18007
18008 2007-01-31  Jackson Harper  <jackson@ximian.com>
18009
18010         * X11Dnd.cs: Use IDataObject instead of the DataObject class.
18011         - Remove some debug code.
18012
18013 2007-01-31  Jackson Harper  <jackson@ximian.com>
18014
18015         * XplatUIX11.cs: If you set the override cursor during a grab, it
18016         should actually override the grab cursor.  This comes into play
18017         when you are setting custom cursors in a DND feedback method.
18018
18019 2007-01-31  Jackson Harper  <jackson@ximian.com>
18020
18021         * X11Dnd.cs: Add support for handling the QueryContinue and
18022         GiveFeedback events.
18023         - Cancel drag and drop actions when the escape key is clicked.
18024         * XplatUIX11.cs: Let the dnd subsystem get key events, so that it
18025         can handle the ESCAPE key.
18026         - Allow dnd to swallow BUTTONUP messages if it needs to.  This is
18027         done when dnd events are continued after the button is released.
18028         - Add a new helper method so that dnd can translate key events.
18029
18030 2007-01-31  Alexander Olk  <alex.olk@googlemail.com>
18031
18032         * FileDialog.cs: Rewrite of Jacksons OnClickCancelButton patch to
18033         make it more obvious what is happening.
18034
18035 2007-01-30  Jackson Harper  <jackson@ximian.com>
18036
18037         * XplatUIX11.cs: Don't break when handling button release in drag
18038         and drop operations. We need that BUTTONUP message to get through
18039         so capture is released.
18040         * X11Dnd.cs: We don't need to manually grab the pointer anymore,
18041         this is handled automatically when the mouse is down.
18042
18043 2007-01-30  Jackson Harper  <jackson@ximian.com>
18044
18045         * FileDialog.cs: OnClickCancelButton gets called whenever the dialog
18046         is closed, so we need to make sure that we aren't changing the
18047         dialog result when the OK (Open or Save) button has been clicked
18048         and we are closing the window ourselves.  Note we don't need to
18049         worry about the cache being written in this case, because it was
18050         already done in the previous FilOk call.
18051
18052 2007-01-30  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18053         
18054         * DateTimePicker.cs: Remove a warning.
18055         * ComboBox.cs: Remove a couple of warnings.
18056
18057 2007-01-29  Chris Toshok  <toshok@ximian.com>
18058
18059         * XplatUIX11.cs: don't crash, and remove the icon if the user has
18060         set one, if SetIcon is passed a null icon.
18061
18062 2007-01-29  Andreia Gaita  <avidigal@novell.com>
18063
18064         * TextBox.cs: Redraw when the password characters changes
18065         * TextControl.cs: Check if textbox has a password char and draw 
18066         a line of password chars instead of the text in the line. LineTag gets 
18067         an extra Draw() method which allows document.Draw to override the text 
18068         that will be drawn. Removes 1024 char limitation on length of passworded 
18069         lines.
18070
18071 2007-01-29  Jackson Harper  <jackson@ximian.com>
18072
18073         * TextBoxBase.cs: Deleting sections of text is undoable.  Deleting
18074         single chars is not.
18075
18076 2007-01-28  Jonathan Pobst  <monkey@jpobst.com>
18077
18078         * TextRenderer.cs: Fix cutting off the bottom of letters like "j" by
18079         one pixel.  Fix a StackOverflowException caused by an overload wrongly
18080         calling itself.
18081
18082 2007-01-26  Everaldo Canuto  <everaldo@simios.org>
18083
18084         * MenuAPI.cs: Fixed kerboard grab problem when "enter"key is pressed,
18085         also remove ProcessArrowKey and put the code inside ProcessKeys.
18086
18087 2007-01-26  Jonathan Pobst  <monkey@jpobst.com>
18088
18089         * PaddingConverter.cs: Added.
18090
18091 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18092         
18093         * ThemeWin32Classic.cs: Only draw the text of a StatusBar if
18094         ShowPanels is false (fixes #80600). Only draw up to 127 characters
18095         of text (fixes #80601). For panels clip the text to draw to the
18096         panel (fixes #80603).
18097
18098 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18099
18100         * ComboBox.cs: Fixed implementation of ResetText.
18101
18102 2007-01-25  Jackson Harper  <jackson@ximian.com>
18103
18104         * TextControl.cs: For the last char of a line we need to use the
18105         line size, not that chars width, since it won't actually be
18106         computed since the right side of a char is based on the start of
18107         the left side of the next char, and the next char does not exist.
18108
18109 2007-01-25  Chris Toshok  <toshok@ximian.com>
18110
18111         * Splitter.cs: fix the new unit tests, and reindent some switch
18112         statements.
18113
18114 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18115
18116         * ComboBox.cs: Implemented 2.0 methods and events.
18117         * TextBoxBase.cs: Added OnTextUpdate, so that
18118         ComboBox.ComboTextBox can inform ComboBox of it.
18119
18120 2007-01-25  Jackson Harper  <jackson@ximian.com>
18121
18122         * TextControl.cs: Respect ShowSelection when deciding whether or
18123         not to display the caret, this allows comboboxes to have carets
18124         when the combotextbox does not have focus.
18125
18126 2007-01-25  Jackson Harper  <jackson@ximian.com>
18127
18128         * TextControl.cs: Add a Suspend/Resume for updating, basically the
18129         same as the Suspend/Resume for recalc, except this will do actual
18130         Invalidates.
18131         - New Undo manager, works much like the MS version.
18132         - Implemented Redo
18133         * TextBoxBase.cs: The Cut operation is undoable.
18134
18135 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18136         
18137         * TextBoxBase.cs: Don't antialias text. Makes it look way better
18138         on Windows (no difference on Linux).    
18139
18140 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18141
18142         * XplatUIWin32.cs: Set SWP_NOACTIVATE in RequestNCRecalc as well,
18143         we don't want to activate any windows. Fixes #79433.
18144
18145 2007-01-25  Jonathan Pobst  <monkey@jpobst.com>
18146
18147         - ButtonBase.cs: Fix capitalization of parameter: disposing.
18148         [Fixes bug #80609]
18149
18150 2007-01-25  Alexander Olk  <alex.olk@googlemail.com>
18151
18152         * FileDialog.cs:
18153         - Move to using System.ComponentModel.EventHandlerList
18154         - Replace Refresh with Invalidate
18155         - Clear the mime filecache on closing
18156         - Some other memory reducing work. After beeing closed FD now uses
18157           only about 300 KB for the fdo mime stuff plus the memory of the
18158           cached icons.
18159         * Mime.cs: Changed coding style and removed unnecessary commented
18160         code. Some more memory memory reducing work.
18161
18162 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18163
18164         * ComboBox.cs: Implemented FlatStyle and DropDownHeight, and added
18165         a few other missing 2.0 properties.
18166         * Theme.cs: Added DrawFlatStyleComboBox.
18167         * ThemeWin32Classic.cs: Implemented DrawFlatStyleComboBox.
18168
18169 2007-01-24  Chris Toshok  <toshok@ximian.com>
18170
18171         * XplatUIX11.cs: fix the wake_waiting logic - we always clear the
18172         wake_waiting flag, not just when there's data to be read.  if we
18173         don't, then future wakeup's won't reach us and we'll be doomed to
18174         wait for the entire 1 second timeout forever (unless there are X
18175         events to be had).
18176
18177 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
18178
18179         * ComboBox.cs: FindStringExactMaxException doesn't throw AOORE on 2.0
18180         until you pass Items.Count, not Items.Count - 1 like 1.1.
18181
18182 2007-01-24  Gert Driesen  <drieseng@users.sourceforge.net>
18183
18184         * ColumnHeader.cs: Fixed ParamName in ArgumentOutOfRangeException.
18185
18186 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
18187
18188         * ToolStripContainer.cs: The recent Dock fix exposed that I was
18189         adding the panels in the wrong order.
18190
18191 2007-01-24  Jackson Harper  <jackson@ximian.com>
18192
18193         * TextBoxBase.cs: When we move the caret we also need to move the
18194         selection, this fixes some random crashing after doing select
18195         text, unselect, delete a char, paste.
18196
18197 2007-01-24  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18198
18199         * Form.cs: Update SizeGrip's location even if it's not visible (fixes #80592).
18200
18201 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
18202
18203         * Control.cs: In OnParentBackgroundImageChanged remove conditions to call
18204         OnBackgroundImageChanged, it mimics win32 behavior. Fixes #80553. 
18205         * ToolBar.cs: Force redraw in BackgroundImageChanged.
18206
18207 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
18208
18209         * ToolBar.cs:
18210         - Implement support for vertical toolbars. Fixes #80539;
18211         - Call LayoutToolBar when resize, it fix some other problems in layout.
18212         - Rename requested_height to requested_size, as we can have width on it
18213         when toolbar is vertical.
18214         - Create a private property "Vertical" that uses Dock to verify when 
18215         toolbar is vertical or not.
18216         - Set ControlStyles when change Dock property.
18217         - Refactory in LayoutToolBar to have better variables names and to support
18218         vertical toolbars.
18219         - Fixes default value for ButtonSize when button count is equal zero, size
18220         must be (39, 36) test case writed.
18221
18222 2007-01-23  Chris Toshok  <toshok@ximian.com>
18223
18224         * Control.cs: fix the checks so that they work correctly for mdi
18225         parents/children.
18226
18227 2007-01-23  Chris Toshok  <toshok@ximian.com>
18228
18229         * Control.cs: ControlCollection seems to have super-secret
18230         abstraction breaking knowledge of Mdi containers.  allow MdiClient
18231         to add toplevel controls.
18232
18233 2007-01-23  Chris Toshok  <toshok@ximian.com>
18234
18235         * Control.cs: throw an ArgumentException if a toplevel control is
18236         added to our control collection from ControlCollection.Add, as
18237         well as from ControlCollection.IList.Add.  This fixes the
18238         ControlSetTopLevelTest.TestTopLevelAdd unit test.
18239
18240         Also, in ControlCollection.IList.Add, don't through an
18241         ArgumentNullException, throw an ArgumentException, when value ==
18242         null.  This matches MS.
18243
18244 2007-01-23  Chris Toshok  <toshok@ximian.com>
18245
18246         * BindingSource.cs: initial, incomplete, implementation of
18247         BindingSource.
18248
18249 2007-01-23  Jackson Harper  <jackson@ximian.com>
18250
18251         * TextControl.cs:
18252         * TextBoxBase.cs: Checking in some pieces of the undo stuff so
18253         that I can fix a broken unit test (TextBoxTest::ClearUndo)
18254         
18255 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
18256
18257         * ToolBar.cs: Add status fields to ToolBarButtonInfo.
18258
18259 2007-01-23  Andreia Gaita  <avidigal@novell.com>
18260
18261         * TreeNode.cs: Add new 2.0 ImageKey and SelectedImageKey properties.
18262         * TreeNodeCollection.cs: New Add() methods, ContainsKey and
18263         IndexOfKey() for 2.0
18264
18265 2007-01-23  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18266
18267         * XplatWin32.cs: In RequestNCRecalc call SetWindowPos with SWP_NOZORDER
18268         to prevent it from changing z-order.
18269         * MdiWindowManager.cs: Refactor part of SetWindowState to MdiClient, only
18270         leave UI updates in MdiWindowManager.
18271         * InternalWindowManager.cs: Check for 0 sized nc areas and make them
18272         1 sized (NC handling goes weird on Linux otherwise).
18273         * MdiClient.cs: Add missing ExStyle (WS_EX_CLIENTEDGE), so it's no longer
18274         necessary to handle WM_NCCALCSIZE anymore. This also made it possible to
18275         remove a few NCRequestRecalcs. Changed calculations in IconicBounds
18276         to use ClientSize of MdiClient instead of entire size. Refactored ActivateChild
18277         and SetWindowState(s) to allow for changing the size of an activated child
18278         before activating it (reduces a lot of flicker).
18279
18280 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
18281
18282         * Form.cs: Changing FormBorderStyle has different semantics based
18283         on whether the Form is visible or not.  If not visible, don't change
18284         the Size.  But InvalidateNC needs to be called to force the window
18285         to pick up the changes and redraw itself.  [Fixes bug #80574]
18286
18287 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
18288
18289         [Moma work]
18290         * ContainerControl.cs: ProcessCmdKey.
18291         * ErrorProvider.cs: new constructor.
18292         * Form.cs: fix AutoValidateEvent compiler warning.
18293         * Label.cs: fix OnAutoSizeChanged compiler warning.
18294         * MenuStrip.cs: fix CanOverflow compiler warning.
18295         * TabControl.cs: SelectTab, OnSelected methods, Selected event.
18296         * TextBox.cs: Dispose.
18297         * ToolStrip.cs: CanOverflow, re-enable double buffering.
18298         * ToolStripControlHost.cs: fix CausesValidation compiler warning.
18299         * ToolStripDropDown.cs: fix ContextStripMenu compiler warning.
18300         * ToolStripItem.cs: Overflow, RightToLeft properties.
18301
18302 2007-01-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18303
18304         * Form.cs: Move the layout of the main form to MdiWindowManager.
18305         * MdiWindowManager.cs: If WindowState changes from or to Maximized,
18306         do a layout of the main window to update MdiClient's client area to
18307         the right area. Fixes #80533. Remove the calculation of nc size, 
18308         it was just wrong and the correct one is the same as for 
18309         InternalWindowManager. 
18310
18311 2007-01-20  Jonathan Pobst  <monkey@jpobst.com>
18312
18313         * Control.cs: Setting Anchor or Dock needs to reset the other
18314         to its default.  [Fixes bug #80556]
18315
18316 2007-01-20  Chris Toshok  <toshok@ximian.com>
18317
18318         * CheckedListBox.cs: class status changes.
18319
18320         * ScrollableControl.cs: same.
18321
18322         * RichTextBox.cs: same.
18323
18324         * ContainerControl.cs: same.
18325
18326         * ListView.cs: same.
18327
18328         * NotifyIcon.cs: same.
18329
18330         * MenuStrip.cs: same.
18331
18332         * RadioButton.cs: same.
18333
18334         * CheckBox.cs: same.
18335
18336         * PrintPreviewDialog.cs: same.
18337
18338         * Form.cs: same.
18339
18340 2007-01-19  Jonathan Pobst  <monkey@jpobst.com>
18341
18342         * TreeNode.cs: Apply Alan's patch for Name property.
18343
18344 2007-01-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18345         
18346         * Form.cs: Implemented SizeGripStyle.
18347         * SizeGrip.cs: Check for minimum and maximum size for the
18348         control being resized and only resize if size has actually
18349         changed.
18350
18351 2007-01-19  Chris Toshok  <toshok@ximian.com>
18352
18353         * DataGridColumnStyle.cs: stop setting _readonly in the
18354         PropertyDescriptor setter.  fixes a unit test failure.
18355
18356         also, rename ParentReadOnly to TableStyleReadOnly, and have it
18357         just consult our table style (if we have one).  We don't need to
18358         consult the datagrid readonly attribute because that's passed in
18359         as the _ro arg to Edit.  this simplifies things a little.
18360         
18361         * DataGrid.cs: use CurrentColumn instead of
18362         current_cell.ColumnNumber just to simplify some of the code.
18363
18364         switch the order of some things in the CurrentCell setter to keep
18365         the previous cell from getting a textbox again -
18366         EnsureCellVisibility causes scrolling to happen, which calls Edit.
18367         So we need to set the new cell before calling it.
18368         
18369         call Edit in OnEnter, as does Microsoft.
18370         
18371         also, make sure the current table style isn't the one we create
18372         initially when checking to see if it's different than the one
18373         we're setting it to in BindColumns (this fixes #80421).
18374
18375         * GridTableStylesCollection.cs: table styles can have "" for a
18376         mapping name.  part of the fix for #80421.
18377
18378         * DataGridTextBoxColumn.cs: simplify the readonly calculation in
18379         Edit significantly.
18380
18381 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
18382
18383         * TextRenderer.cs: Rewrote to be complete-er, more MS-matching-er,
18384         and less GDI object leaky-er.
18385
18386 2007-01-18  Andreia Gaita  <avidigal@novell.com>
18387
18388         * LinkLabel.cs: Add opaque control style
18389
18390 2007-01-18  Jackson Harper  <jackson@ximian.com>
18391
18392         * TextControl.cs: Calculate width properly.
18393         - Don't store the tag's X offset, this can be figured out very
18394         easily.
18395         - When getting the caret tag make sure to get the last empty tag.
18396
18397 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
18398
18399         * Form.cs: Recalculate our size after setting a new FormBorderStyle.
18400         [Fixes bug #79959]
18401
18402         * Control.cs: Color.Empty shouldn't count for previous transparent
18403         redraw changes.
18404
18405 2007-01-18  Jackson Harper  <jackson@ximian.com>
18406
18407         * TextBox.cs:
18408         * RichTextBox.cs:
18409         * TextControl.cs: Starting to merge in some pieces of my older
18410         undo work.  Basically just some slight cleanup of the undo API.
18411
18412 2007-01-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18413
18414         * TrackBar.cs: Fix signature of RightToLeftLayout.
18415         * StatusBar.cs: Implemented missing 2.0 methods and attributes.
18416         * StatusBarPanel.cs: Implemented missing 2.0 methods and attributes.
18417         * Application.cs: Implemented UseWaitCursor.
18418
18419 2007-01-18  Jackson Harper  <jackson@ximian.com>
18420
18421         * TextControl.cs: We can't skip tags if any part of the tag is
18422         visible.
18423
18424 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
18425
18426         * ContainerControl.cs: Override OnLayout.
18427
18428 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
18429
18430         * NotifyIcon.cs: Add ContextMenuStrip and Tag properties.
18431
18432         * ContextMenuStrip.cs: Make sure context menu is shown on top of 
18433         everything else.
18434
18435 2007-01-18  Chris Toshok  <toshok@ximian.com>
18436
18437         * ContainerControl.cs: remove the partial handling of LBUTTONDOWN
18438         (leftover from the container_selected days, I'd wager).  fixes bug
18439         #80546.
18440
18441 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
18442
18443         * Control.cs: Apply patch from George to fix the new testcase on
18444         bug #80451.  We can't just check for Color.Transparent, we need 
18445         to check if the back color's alpha channel is < 255.
18446
18447 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
18448
18449         * Form.cs: Move setting show_icon = true to before the constructor
18450         so that the base constructor has that information when it calculates
18451         the form's size.  Was causing forms to be (6, 6) bigger than they
18452         were supposed to be.  Thanks for catching this Rolf!
18453
18454 2007-01-18  Jackson Harper  <jackson@ximian.com>
18455
18456         * TextControl.cs: When replacing a selection we need to invalidate
18457         from the initial selection start, because selection start is moved
18458         to the end of the replacement.
18459
18460 2007-01-18  Andreia Gaita  <avidigal@novell.com>
18461
18462         * LinkLabel.cs: Missing ControlStyles. Fixes #80482
18463
18464 2007-01-18  Chris Toshok  <toshok@ximian.com>
18465
18466         * DataGridTextBoxColumn.cs: fix most of the NotWorking unit tests
18467         I just added.
18468
18469 2007-01-17  Everaldo Canuto  <everaldo@simios.org>
18470
18471         * ToolBar.cs: Add layout methods to ToolBarButtonInfo class, every 
18472         layout methods and properties from ToolBarButton must be available
18473         into ToolBarButtonInfo.
18474
18475 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
18476
18477         * Control.cs: If the control has a transparent background, we
18478         need to refresh it when it moves and when it's parent's background
18479         image changes.  [Fixes bug #80451]
18480
18481 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
18482
18483         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code!  Doh!
18484
18485 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
18486
18487         * XplatUIWin32.cs: Implement proper double buffering for Windows.
18488         [Fixes bug #80447, and probably speeds up things as well]
18489
18490 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18491
18492         * XplatUIX11.cs: Caption height for MDI children is 19, not 26.
18493         * XplatUIWin32.cs: We need to recalculate NC size after changing 
18494         window style to toolwindow (otherwise the client rectangle will be
18495         3 pixels to small for some reason).
18496         * MdiWindowManager.cs: Revert NC size calculations to match how
18497         they are calculated only based on window styles (to match
18498         Win32AdjustWindowRectEx, since otherwise when setting size or 
18499         location, Control will call Win32AdjustWindowRectEx to update client 
18500         size, which would provoke a paint, then we'd get a NCCALCSIZE and 
18501         calculate a different value of client size causing another paint 
18502         (and flickering))
18503         * InternalWindowManager.cs: When moving or resizing a window only
18504         update size or location if they actually changed.
18505         * ThemeWin32Classic.cs: ManagedWindowsBorderWidth is now 4 instead of 3
18506         (seems to match Windows behaviour better). Cleaned up 
18507         ManagedWindowDecorations to draw what's needed and nothing else
18508         (was drawing borders and lines where they shouldn't be)
18509         * Hwnd.cs: GetWindowRectangle now knows about MDI border sizes
18510         (style = 0xFFFF) and takes into account caption height when 
18511         calculating window rectangle.   
18512
18513 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
18514
18515         * ToolBar.cs: Internal ToolBarButtonInfo class added, Because same button 
18516         can be added to toolbar multiple times, we need to maintain a list of 
18517         button information for each positions.
18518
18519 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
18520
18521         * ToolBar.cs: Some small stetic changes.
18522
18523 2007-01-16  Jackson Harper  <jackson@ximian.com>
18524
18525         * TextBoxBase.cs: Use the new SuspendRecalc/ResumeRecalc methods
18526         that allow us to have nested recalc = false blocks.
18527         - Add paste support for images in the RichTextBox
18528         * RichTextBox.cs: flush the text after the color is changed, so
18529         the change takes effect.
18530         - Use SuspendRecalc
18531         - Some extra debugging info
18532         * TextControl.cs: Tags no longer track their length, it is just
18533         computed from the next tags length, this makes things a little
18534         simpler and reduces places that we have to track length changes.
18535         - Refactored the linetag class a little so we could make it
18536         a base class for different kinds of tags
18537         - Created a image tag, a tag that can have a single image inserted
18538         into it
18539         - Replace the norecalc flag with a Suspend/Resume Recalc pair, so
18540         that we can call suspend multiple times.
18541         - Add some debugging methods
18542
18543 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18544
18545         * MdiClient.cs: Add ActivatePreviousChild for 
18546         mdi child window navigation.
18547         * Form.cs: Use MdiClient.ActivateNextChild/
18548         ActivatePreviousChild instead of Form.SelectNextControl
18549         to select the next/previous child since 
18550         SelectNextControl doesn't do it in the same order
18551         as mdi children should do it.
18552
18553 2007-01-16  Chris Toshok  <toshok@ximian.com>
18554
18555         * Control.cs: remove container_selected field.
18556
18557 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18558
18559         * MdiClient.cs: Update main form's ActiveChild when
18560         updating keyboard focus for the mdi child.
18561
18562 2007-01-16  Jonathan Pobst  <jpobst@novell.com>
18563
18564         * Control.cs: PreferredSize fix.
18565
18566         * Form.cs: Add several 2.0 events, properties, and methods.
18567
18568 2007-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
18569
18570         * Form.cs: Provide meaningful message when MdiParent is assigned a
18571         Form that is not an MdiContainer.
18572
18573 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18574
18575         * MdiClient.cs: Update main form's ActiveChild when
18576         activating a mdi child.
18577
18578 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18579
18580         * MdiWindowManager.cs: Fix NRE when merging menus and main form
18581         doesn't have a menu.
18582
18583         * Form.cs: Request NCRecalc after creating a mdi child window.
18584         Implement mdi key handling (Ctrl+F4, Ctrl+Shift+F4, Ctrl+Tab, 
18585         Ctrl+Shift+Tab, Ctrl+F6 and Ctrl+Shift+F6).
18586         
18587         * MdiClient.cs: Add new method SendFocusToActiveChild that either
18588         sends keyboard focus to the active child, or to the MdiClient
18589         if there are no child forms.
18590         
18591 2007-01-15  Chris Toshok  <toshok@ximian.com>
18592
18593         * ListView.cs: drop the *Internal overrides, just do our work in
18594         ItemControl's WndProc instead.
18595
18596         * UpDownBase.cs: a few large changes.  Fix up the Selectable state
18597         of the various controls, and forward the events properly (in the
18598         same manner as MS) from the textbox to the UpDown.  Also the
18599         ActiveControl of the UpDownBase gets set properly now.  Finally,
18600         we don't call UpdateEditText from the ctor.  Fixes bug #79957.
18601
18602         * NumericUpDown.cs: set Text in the ctor.
18603
18604         * DomainUpDown.cs: call UpdateEditText in the ctor.
18605         
18606         * TextBox.cs: on ms.net, WM_LBUTTONDOWN sets focus on the textbox,
18607         so even a Selectable = false textbox can be focused if you click
18608         in it.  Go figure.
18609
18610         * Control.cs: remove On{Got,Lost}FocusInternal.  Subclasses can
18611         just add their handling in their respective WndProc's.  Also add
18612         an explicit FocusInternal method that doesn't consult CanFocus
18613         before calling Select(this).
18614
18615         * TextBoxBase.cs: deal with removal of the FocusInternal calls -
18616         do our work in WndProc instead.
18617
18618         * TabControl.cs: same.
18619
18620         * ComboBox.cs: same.
18621
18622 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
18623
18624         * Menu.cs: implement MergeItems and Replace for MenuMerge method.
18625         Fixes #80006.
18626
18627 2007-01-15 Carlos Alberto Cortez <calberto.cortez@gmail.com>
18628
18629         * ListViewItem.cs:
18630         * ThemeWin32Classic.cs: Don't draw the item text outside
18631         item bounds in Details view, as well as use trimming.
18632         Fixes bug #80376.
18633
18634 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
18635
18636         * Form.cs: Implement Form.ShowIcon.
18637         
18638         * XplatUIWin32.cs: Allow the SetIcon win32 call to set the icon to
18639         null, which when combined with the DlgModalFrame window style removes
18640         the icon from the title bar.
18641
18642 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
18643
18644         * Control.cs: Call OnMouseClick after OnClick. (2.0)
18645
18646 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
18647
18648         * MdiWindowManager.cs: In CreateMaximizedMenu fix a position of icon
18649         menu when mdi child windows theres a menu, uses insert to get icon
18650         at first position. Partially fix #80006.
18651
18652 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
18653
18654         * Clipboard.cs: Implement 2.0 methods.
18655
18656 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
18657
18658         * Menu.cs: Implement Insert method of MenuItemCollection class
18659         to fix MenuMerge.
18660
18661 2007-01-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
18662
18663         * ListView.cs: Implement 2.0 FindItemWithText method.
18664
18665 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
18666
18667         * Form.cs: When process WM_NCCALCSIZE message use ClienSize.Width
18668         to calculate menu bar size. Fixes #80290.
18669
18670 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
18671
18672         * ThemeWin32Classic.cs: Fix position of menuitem check mark.
18673
18674 2007-01-11  Chris Toshok  <toshok@ximian.com>
18675
18676         * XplatUIX11.cs: don't send duplicate WM_ACTIVATE messages to the
18677         initial form.
18678
18679 2007-01-11  Chris Toshok  <toshok@ximian.com>
18680
18681         * LinkLabel.cs: make sure to call base.Select in our Select method
18682         if it turns out we're going to be selected (i.e. if we have a link
18683         that is going to receive focus).  That way our container's
18684         ActiveControl is updated properly.
18685
18686 2007-01-11  Chris Toshok  <toshok@ximian.com>
18687
18688         * LinkLabel.cs: turns out that LinkLabels are only Selectable if
18689         they have 1 or more links.  this fixes the crash gert reported.
18690
18691 2007-01-11  Andreia Gaita  <avidigal@novell.com>
18692
18693         * ContainerControl.cs: Remove ContainerSelected flag, not needed
18694         anymore.
18695
18696         * Control.cs (Controls.Add): Check if control to be added to the collection
18697         is a top level control, and throw an ArgumentException if it is.
18698         Remove ContainerSelectedFlag, not needed anymore.
18699
18700         * XplaUIWin32.cs (SetTopMost): Add flag SWP_NOACTIVATE so that setting the
18701         top most control doesn't activate the form. This fixes a problem in the
18702         MessageBox, where the default button wouldn't get focus because the form
18703         was activated before being Loaded - when the Owner is set, SetTopMost is
18704         called, and it would activate it.
18705
18706 2007-01-11  Jonathan Pobst  <jpobst@novell.com>
18707
18708         * Button.cs: When clicked and setting the parent form's DialogResult,
18709         use FindForm instead of Parent, since parent could be a container
18710         control and not the Form.  Fixes bug #80495.
18711
18712 2007-01-10  Chris Toshok  <toshok@ximian.com>
18713
18714         * Form.cs: move the call to SendControlFocus into the same
18715         is_loaded check.
18716
18717 2007-01-10  Chris Toshok  <toshok@ximian.com>
18718
18719         * UpDownBase.cs (.ctor): remove the ActiveControl assignment here.
18720         It breaks in the face of the new ActiveControl stuff, and should
18721         be unnecessary.
18722
18723         * Form.cs (WndProc): in the WM_ACTIVATE case, we need to set the
18724         activecontrol's focus if it's not already set, after we set
18725         ActiveControl, but before we call OnActivated.  Re-fixes #79667
18726         after the previous focus/active control fixes regressed it.
18727
18728         * Control.cs: reindent some code.
18729         
18730 2007-01-10  Chris Toshok  <toshok@ximian.com>
18731
18732         * Splitter.cs: clearing some outstanding changes from my tree.
18733         Replace all accesses (not writes) to the internal dock_style field
18734         with the Dock property.
18735
18736 2007-01-10  Chris Toshok  <toshok@ximian.com>
18737
18738         * Control.cs: make FireEnter, FireLeave, FireValidating, and
18739         FireValidated virtual.
18740
18741         * Form.cs: override and don't chain up calls to FireEnter and
18742         FireLeave.
18743
18744 2007-01-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
18745
18746         * ListView.cs: Add more text padding space when using
18747         auto resize for columns (the previous value didn't work fine).
18748
18749         * ThemeWin32Classic.cs: Update text position inside columns,
18750         to match the appeareance of .Net.
18751
18752         * ColumnHeader.cs: When using auto resize, only the Width should
18753         depend on the sub items, not the Height. Also, set width after
18754         auto resizing (the value of Width should never remain as -1 or -2).
18755
18756 2007-01-10  Chris Toshok  <toshok@ximian.com>
18757
18758         * Application.cs: fix compilation errors when debug is enabled.
18759
18760 2007-01-10  Chris Toshok  <toshok@ximian.com>
18761
18762         * ContainerControl.cs (set_ActiveControl): rework this a bit (and
18763         add some nice ascii art pictures and explanation of the process).
18764         (GetMostDeeplyNestedActiveControl): new utility function we need
18765         because our ActiveControl can refer to a child container with its
18766         own ActiveControl.
18767
18768         * Form.cs (OnActivated): remove the call to SelectActiveControl
18769         from here, since you can override this method and not chain up,
18770         and winforms still sets the active control.
18771         (OnCreateControl): also remove the unnecessary SelectActiveControl
18772         call from here.
18773         (WndProc): it's actually called from the WM_ACTIVATE block, just
18774         before calling OnActivated.
18775
18776         * Control.cs (Select (Control)): move the call to XplatUI.SetFocus
18777         inside the else.  the ActiveControl setter will end up setting
18778         focus on @control.  This keeps us from setting it again (and
18779         generating an extra LostFocus/GotFocus pair).
18780         (Select (bool, bool)): reindent.
18781
18782 2007-01-10  Jonathan Pobst  <jpobst@novell.com>
18783
18784         * FlowLayoutPanel.cs, MenuStrip.cs, SplitContainer.cs, SplitterPanel.cs,
18785         StatusStrip.cs, TableLayoutPanel.cs, TableLayoutStyleCollection.cs,
18786         ToolStrip.cs, ToolStripComboBox.cs, ToolStripContainer.cs,
18787         ToolStripContentPanel.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
18788         ToolStripDropDownButton.cs, ToolStripDropDownItem.cs, ToolStripDropDownMenu.cs,
18789         ToolStripItem.cs, ToolStripMenuItem.cs, ToolStripPanel.cs, ToolStripPanelRow.cs,
18790         ToolStripSeparator.cs, ToolStripSplitButton.cs, ToolStripStatusLabel.cs
18791         ToolStripTextBox.cs: Another wave of corcompare work.
18792
18793 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
18794
18795         * ColumnHeader.cs: Implement 2.0 AutoResize method using
18796         the Width property.
18797
18798         * ListView.cs: Implement 2.0 AutoResizeColumn and AutoResizeColumns
18799         methods by callling Column.AutoResize method on columns.
18800
18801 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
18802
18803         * Control.cs: Provide proper implementations of PreferredSize
18804         and GetPreferredSize (2.0).
18805
18806 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
18807
18808         * Form.cs: Remove one character (!) to make my previous OnClosing
18809         stuff work for modal windows like MessageBox.
18810
18811 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
18812
18813         * ListView.cs:
18814         * ThemeWin32Classic.cs: Use ListView.GetReorderedColumn instead of
18815         ListView.Columns to get the last displayed column. Fixes #80452.
18816
18817 2007-01-09  Everaldo Canuto  <everaldo@simios.org>
18818
18819         * Label.cs, LinkLabel.cs: Source code identation fixes.
18820
18821 2007-01-08  Everaldo Canuto  <everaldo@simios.org>
18822
18823         * ToolBarButton.cs: Remove InvalidateBorder and use Invalidate instead,
18824         we dont need to invalidate only borders because when we invalidate four
18825         border lines the invalidate's generates a complete redraw of button, 
18826         because it now invalidate a complete rect some other redraws operations
18827         are fixed. Fixes #80196.
18828         
18829         * Theme.cs, ThemeNice.cs, ThemeClearLooks.cs, ThemeWin32Classic.cs:
18830         Remove ToolBarInvalidateEntireButton as it is not used.
18831
18832 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
18833         
18834         * Form.cs: Make sure that both OnClosing and OnFormClosing are
18835         called for 2.0 profile.
18836         * CloseReason.cs: Make class internal for 1.1.
18837
18838 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
18839
18840         * ToolStripManager.cs: Implement FindToolStrip functionality.
18841         * ToolStrip.cs: Register and unregister with ToolStripManager.
18842
18843 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
18844
18845         * Control.cs: This was messy.  2.0 moves much of ControlCollection
18846         to ArrangedElementCollection.  Implemented this with as few #if's as 
18847         possible (which is still too many).
18848
18849 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
18850
18851         * Control.cs: Implement SizeFromClientSize() [2.0].
18852
18853 2007-01-07  Everaldo Canuto  <everaldo@simios.org>
18854
18855         * Hwnd.cs: On GetClientRectangle add a new parameter border_static,
18856         use Theme.BorderSize to calculate area instead of static value 1, 
18857         by the way use new BorderStaticSize instead     Border3DSize when 
18858         border_static is true. Fixes #79537.
18859         
18860         * XplatUIOSX.cs: Fix call to GetClientRectangle. 
18861         
18862         * ThemeWin32Classic.cs: On CPDrawBorder3D dont draw inner border when
18863         it is not needed.
18864
18865 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
18866
18867         * Hwnd.cs: Gives more code legibility to GetWindowRectangle.
18868
18869 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
18870
18871         * Label.cs: Override CreateParams to use WS_EX_STATICEDGE instead of
18872         WS_EX_CLIENTEDGE in ExStyles when BorderStyle is Fixed3D, it is
18873         
18874         * Hwnd.cs: 
18875         - border_static field added, it will used to define when a control 
18876         theres 3D border but it must be static (thin).
18877         - In GetWindowRectangle use Theme.BorderSize to calculate area 
18878         instead of static value 1, by the way use new BorderStaticSize instead
18879         Border3DSize when border_static is true.
18880
18881         * XplatUIX11.cs, XplatUIOSX.cs: 
18882         - When WS_EX_STATICEDGE ExStyle is set define border_static as true.
18883         
18884         * Theme.cs: BorderStaticSize field added.
18885
18886 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
18887
18888         * XplatUIX11.cs: Removed unused hwnd var in SetBorderStyle.
18889
18890 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
18891
18892         * Control.cs: Under InternalBorderStyle call RecreateHangle to 
18893         mimic same behavior than win32 that set border only in CreateParams,
18894         it fix problems under CreateParams overrides. Fix #79442 and partial
18895         fix #79537.
18896         
18897         * XplatUIX11.cs: Dont set hwnd.border_style in SetBorderStyle instead
18898         of thi control you must call recreate handle. 
18899         
18900         * XplatUIWin32.cs: Remove all SetBorderStyle code, for win32 we dont
18901         need to do anything as RecreateHangle will take care about borders.
18902
18903 2007-01-05  Mike Kestner  <mkestner@novell.com>
18904
18905         * ListView.cs: hack to eliminate Lost/Got focus notifications on
18906         cycles between the ItemControl and parent.  Fixes #80388.
18907
18908 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
18909
18910         * Control.cs: Lazy init layout engine. Do not directly use 
18911         layout_engine since LayoutEngine may be overridden (on 2.0 profile).
18912
18913 2007-01-05  Chris Toshok  <toshok@ximian.com>
18914
18915         * DataGrid.cs: don't forceably rebind columns in SetDataSource
18916         unless our list manager has changed (i.e. unless we have reason to
18917         believe our columns have changed).  Fixes #80422.
18918         
18919         also, disable the call do BindColumns in
18920         OnListManagerMetaDataChanged.  this breaks this test in 2.0 (in
18921         1.1 the event isn't raised in response to a column addition on a
18922         table.)
18923
18924 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
18925
18926         * Control.cs: Move LayoutEngine.Layout to the OnLayout method, so
18927         that inheritors can not call it if they choose.  Fixes bug #80456.
18928
18929 2007-01-05  Andreia Gaita  <avidigal@novell.com>
18930
18931         * XplatUIWin32.cs: Initialize MSG.refobject at 0 so it 
18932         doesn't blow up with a null exception on marshalling.
18933         
18934 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
18935
18936         * Control.cs: Implement several 2.0 protected properties and methods.
18937         Ensure that all necessary events are being called when properties
18938         are set.
18939
18940 2007-01-05  Mike Kestner  <mkestner@novell.com>
18941
18942         * ListView.cs: implement PgUp/PgDn for Details view.  Also
18943         fixes First/LastVisibleIndex to use the item_control.ClientRect 
18944         instead of the parent control.  Fixes #80378.
18945
18946 2006-01-05  Atsushi Enomoto  <atsushi@ximian.com>
18947
18948         * PageSetupDialog.cs : cosmetic refactoring; use RegionInfo to
18949           determine whether to use yard-pound or not (bug #78399).
18950
18951 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
18952
18953         * FileDialog.cs: Sebastien fixed the libgdiplus png alpha
18954         problems. So it is time to bring back the old popupbutton colors.
18955
18956 2006-01-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
18957
18958         * ColumnHeader.cs:
18959         * ListView.cs: Implement 2.0 ColumnHeader.DisplayIndex
18960         property by using the internal information of the
18961         columns order in ListView.
18962
18963 2007-01-04  Jonathan Pobst  <monkey@jpobst.com>
18964
18965         * CommonDialog.cs, Cursor.cs, ErrorProvider.cs, HelpProvider.cs:
18966         Add 2.0 Tag properties.
18967
18968         * LinkArea.cs: Add 2.0 ToString method.
18969
18970 2007-01-03  Chris Toshok  <toshok@ximian.com>
18971
18972         * DataGrid.cs: the Alt+0 handling was wrong, it should have been
18973         Ctrl+0.  Fixes bug #80367.  Also, don't eat the Delete keypress
18974         when we're editing, which fixes #80047.
18975
18976 2007-01-03  Chris Toshok  <toshok@ximian.com>
18977
18978         * Form.cs: apply patch contributed by Dominik Seichter.  fixes
18979         #80404.
18980
18981 2007-01-03  Jonathan Pobst  <monkey@jpobst.com>
18982
18983         * MenuStrip.cs, ToolStripMenuItem.cs: Add MdiWindowListItem
18984         property and implementation.
18985
18986         * Form.cs, MdiClient.cs, MdiWindowManager.cs: Add needed hooks
18987         for MdiWindowListItem property.
18988
18989         * ToolStripDropDown.cs: Don't consider hidden menu items while
18990         laying out the menu.
18991
18992 2007-01-03  Andreia Gaita  <avidigal@novell.com>
18993
18994         * SendKeys.cs: window handle is not needed in win32, so just
18995         get the active window for X after parsing keys and don't use
18996         it when building the message; it is passed by parameter to the 
18997         Xplat method and used there to build the message instead. Also,
18998         wait for events to be processed on SendWait, as opposed to Send,
18999         which doesn't wait :) Playing with threads and Send() completely 
19000         hangs on ms.net, only SendWait() works.
19001         
19002         XplatUIX11.cs
19003         X11Display.cs: Check for valid window handle.
19004
19005 2007-01-03  Jackson Harper  <jackson@ximian.com>
19006
19007         * TextControl.cs: Need to prevent wrap calculations when replacing
19008         text (this was there before i removed it accidently).
19009         - Don't update the cursor during the positioning, just set it to
19010         selection_start at the end of the operaion.
19011
19012 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19013
19014         * Control.cs:
19015         * NotifyIcon.cs: corcompare work, no more X's in 1.1 class status.
19016         
19017 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19018
19019         * MonthCalendar.cs: Added Click and DoubleClick events again,
19020         but this time they only hide Control's Click and DoubleClick.
19021         
19022 2007-01-03  Gert Driesen  <drieseng@users.sourceforge.net>
19023
19024         * Theme.cs: Re-enabled DefaultFont change. Use const to refer to
19025         System.Drawing assembly. Spaces to tabs. Removed extra tabs.
19026
19027 2007-01-02  Jackson Harper  <jackson@ximian.com>
19028
19029         * TextBoxBase.cs: We move the caret with the split now, so we
19030         don't need to explicitly move the caret after splitting.  This
19031         fixes the caret bumping down an extra line on Enter.
19032
19033 2007-01-02  Miguel de Icaza  <miguel@novell.com>
19034
19035         * ContainerControl.cs: Add AutoValidateChanged event (for PDN
19036         2.72). 
19037
19038         * ScrollableControl.cs: Add Scroll event.
19039
19040 2007-01-02  Mike Kestner  <mkestner@novell.com>
19041
19042         * ListView.cs: one more try with help from georgegiolfan@yahoo.com 
19043         to fix all hdr height padding codepaths.  Fixes #80207.
19044
19045 2007-01-02  Chris Toshok  <toshok@ximian.com>
19046
19047         * StatusBar.cs (.ctor): remove the Anchor setting, as it's just
19048         setting it to the Control defaults anyway, and it being after the
19049         Dock set was screwing up layout.
19050         (set_Dock): don't short circuit out of setting base.Dock.  Also,
19051         no need to call UpdateStatusBar here, as it'll be re-layed out if
19052         it needs to be.
19053
19054 2007-01-02  Mike Kestner  <mkestner@novell.com>
19055
19056         * ListView.cs: patch from georgegiolfan@yahoo.com to add padding
19057         to header height for width == -1. Fixes the rest of #80207.
19058
19059 2007-01-02  Mike Kestner  <mkestner@novell.com>
19060
19061         * ListView.cs: rework the mouse event forwarding everaldo added
19062         to translate the coordinates to the parent control not
19063         raise the parent events until after we've done our work. Hover
19064         needs more work, in the case where HoverSelection is on, because
19065         the item control receives more than one MouseHover per Enter
19066         event, so we need to ensure only the "first" hover gets forwarded.
19067         Opening a minor bug for that.
19068
19069 2007-01-02  Gert Driesen  <drieseng@users.sourceforge.net>
19070
19071         * CheckedListBox.cs: Fixed SelectionMode to match MS.
19072         * ListControl.cs: Implemented AllowSelection property. Removed extra
19073         tabs.
19074         * ListBox.cs: Implemented AllowSelection property.
19075
19076 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
19077
19078         * MenuItem.cs: In MdiWindowClickHandler uses sender instead of
19079         SelectedItem, it prevent for errors when you must disable item
19080         before perform click. Fixes #80409.
19081
19082 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
19083
19084         * MenuAPI.cs: Prevent second level and beyond submenus to close
19085         until first level when move out side of popup.
19086         
19087 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
19088
19089         * MenuAPI.cs:
19090         - Down submenu positin in three pixels.
19091         - Closes sub menu when mouse leaves from menu. Fixes #80402.
19092
19093 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
19094
19095         * ThemeWin32Classic.cs:
19096         - Fix popup menu size adding one pixel on the top.
19097         - Down menu item border from two to one to mimic Win32.
19098         - Some source identation fixes. 
19099
19100 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
19101
19102         * ThemeWin32Classic.cs: Use float numbers to calculate size and
19103         position of menu arrows, it fix wrong arrow size.
19104
19105 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
19106
19107         * ThemeWin32Classic.cs: Uses CPDrawBorder3D to draw menu borders
19108         instead of line, it simplify draw operation and fix it using 3D
19109         borders to mimic Win32.
19110
19111 2007-01-01  Jonathan Pobst  <monkey@jpobst.com>
19112
19113         * StatusStrip.cs: Add implementation of the sizing grip.
19114
19115         * ToolStripRenderer.cs, ToolStripProfessionalRenderer.cs: Add
19116         StatusStrip rendering.
19117
19118 2006-12-31  Chris Toshok  <toshok@ximian.com>
19119
19120         * ToolBar.cs: don't assign to dock_style in the .ctor.  it doesn't
19121         override the layout style (anchor/dock) of the control.  assign to
19122         Dock instead.  Fixes bug #80416.
19123
19124         * ToolStrip.cs: same.
19125
19126 2006-12-31  Andreia Gaita  <avidigal@novell.com>
19127
19128         * ContainerControl.cs: Use ContainerSelected flag to check if 
19129         a Container is directly selected, or if Select is called on a 
19130         non-container. If a container is directly selected, focus events 
19131         should not be raised.
19132         Apply #80411 patch to throw exception on set_ActiveControl if 
19133         control is the same as the current one.
19134         
19135         * Control.cs: Use ContainerSelected flag (see above).
19136         Add invalidation check to raise event but not invalidate if 
19137         dimensions are 0.       
19138         Apply #80411 patch.
19139         
19140
19141 2006-12-31  Everaldo Canuto  <everaldo@simios.org>
19142
19143         * MenuAPI.cs: After click, dont close popup menu when menu is
19144         ContextMenu. Fixes #80399.
19145
19146 2006-12-30  Chris Toshok  <toshok@ximian.com>
19147
19148         * ContainerControl.cs: make sure we throw the exception if the
19149         container control doesn't contain the control we're setting
19150         ActiveControl to.
19151
19152 2006-12-30  Chris Toshok  <toshok@ximian.com>
19153
19154         * Control.cs (SetTopLevel): fix the exception raised by
19155         SetTopLevel for child controls.
19156         (set_Anchor): call UpdateDistances when setting the anchor type.
19157         This fixes bug #80336.
19158
19159 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
19160
19161         * Theme.cs: For now, revert back to 8pt font.
19162
19163 2006-12-29  Everaldo Canuto  <everaldo@simios.org>
19164
19165         * MenuAPI.cs: Set popup as active when open a ContextMenu. 
19166         Fixes #80395.
19167
19168 2006-12-29  Chris Toshok  <toshok@ximian.com>
19169
19170         * Control.cs: reorder the code in OnResize to give the same event
19171         ordering as MS.
19172
19173 2006-12-29  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19174
19175         * MdiClient.cs: Implemented MdiLayout for ArrangeIcons,
19176         TileHorizontally and TileVertically.
19177         
19178 2006-12-29  Alexander Olk  <alex.olk@googlemail.com>
19179
19180         * ColorDialog.cs, FileDialog.cs, FolderBrowserDialog.cs,
19181         FontDialog.cs, Mime.cs, MimeIcon.cs, OpenFileDialog.cs,
19182         SaveFileDialog.cs, ThemeClearlooks.cs, ThemeNics.cs:
19183         Corrected copyright and email adress.
19184
19185 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
19186
19187         * TreeNode.cs: On 2.0 profile, throw InvalidOperationException instead
19188         of Exception in FullPath property if no TreeView is associated with
19189         the TreeNode.
19190
19191 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
19192
19193         * Theme.cs: Marked default_font as private, and initialize it in ctor
19194         with MS Sans Sarif 8.25 on 1.0 profile, and SystemFonts.DefaultFont
19195         on 2.0 profile.
19196         * ThemeGtk.cs: Removed default_font intialization.
19197         * ThemeWin32Classic.cs: Removed default_font initialization.
19198
19199 2006-12-28  Chris Toshok  <toshok@ximian.com>
19200
19201         * Control.cs: fix a couple of place where we were creating handles
19202         more aggressively than we should be.  Fixes ControlRefresh unit
19203         tests.
19204
19205 2006-12-28  Chris Toshok  <toshok@ximian.com>
19206
19207         * Control.cs: contrary to what the comment said, Control.Dock does
19208         not supercede Control.Anchor - the last one you assign to decides
19209         the layout behavior.  so we need to keep track of which was the
19210         last set.  Also, fix some of the affected property arguments in
19211         PerformLayout calls, and remove an redundant parent.PerformLayout
19212         call in OnResized.
19213
19214         Add a VisibleInternal property, which returns is_visible.  We
19215         can/should get rid of all the usage of this field elsewhere.
19216
19217 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19218         
19219         * Control.cs: DoubleBuffered property reflects the OptimizedDoubleBuffer
19220         control style, not DoubleBuffer. Added UseDoubleBuffering property
19221         that indicates whether doublebuffering is enabled and supported.
19222         (comment from and code based on Gert Driesen's patch in #80324).
19223         Fixes #80324.
19224
19225 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19226         
19227         * Control.cs: Fixed a NRE.
19228
19229 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19230
19231         * TrackBar.cs: Fix SmallChange and LargeChange exceptions
19232         for 2.0.
19233
19234 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19235
19236         * Control.cs: Rewrote double buffering, now a seperate
19237         class handles all the buffering, no Graphics is disposed of
19238         until the painting is finished (earlier implementation 
19239         would crash if the control was resized in the OnPaint, 
19240         since it would cause the double buffer to be recreated
19241         and the old one disposed), a separate Graphics is 
19242         created for every paint (MS behaviour and anyways the state
19243         of the Graphics would have to be saved and restored otherwise)
19244         
19245         * XplatUIDriver.cs: 
19246         * XplatUIX11.cs:
19247         * XplatUI.cs: Added and implemented GetOffscreenGraphics 
19248         so that we can get the graphics for the back buffer without
19249         having to create a new one and remove the offscreen_dc parameter
19250         from CreateOffscreenDrawable and DestroyOffscreenDrawable.
19251         
19252 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
19253
19254         * ListView.cs: Add key-related 2.0 methods for CheckedItemCollection.
19255         Also make virtual all the key-related methods.
19256
19257         * ListViewItem.cs: Make virtual the key related methods for
19258         ListViewSubItemCollection.
19259
19260 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
19261
19262         * ListView.cs:
19263         * ListViewItem.cs:
19264         * ThemeWin32Classic.cs:
19265         * Theme.cs: Initial support for Tile view in ListView,
19266         as well as the implementation of the required bits for it (Item
19267         and Subitem).
19268
19269 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
19270
19271         * MonthCalendar.cs: On 2.0, throw ArgumentOutOfRangeException instead
19272         of ArgumentException in MaxSelectionCount, MaxDate and MinDate.
19273         Provide useful exception messages.
19274
19275 2006-12-27  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19276
19277         * TrackBar.cs: Remove a warning.
19278         * MonthCalendar.cs: Moved back to using Capture to hide the calendar
19279         when used by DateTimePicker, fixes #80287. This also requires that 
19280         MonthCalendar implements it's own drawing for the yearly updown control,
19281         otherwise the Capture tracking would be too complicated. Removed the Click 
19282         and DoubleClick events (according to comments they were hiding the base class
19283         event to prevent them from beeing fired - MSDN only says MonthCalendar doesn't
19284         raise these events, not that they cannot be raised. It is possible to raise 
19285         them by calling OnClick and OnDoubleClick). Added two internal fields in 
19286         HitTestInfo in order to track give more tracking info needed by MonthCalendar.
19287         * ThemeWin32Classic.cs: Implement drawing of MonthCalendar's updown part.
19288         * DateTimePicker.cs: Removed handling of MonthCalendar's LostFocus
19289         event, no longer needed.
19290         
19291 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
19292
19293         * ScrollableControl.cs: In AutoScrollMinSize, only set AutoScroll to
19294         true if new value differs from current value.
19295
19296 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
19297
19298         * Control.cs: ControlCollection.Count must be public. Fixed build of
19299         unit tests.
19300
19301 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
19302
19303         * ListView.cs: Redraw when FullRowSelect is changed. Fixes bug #80379.
19304
19305 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
19306
19307         * ComboBox.cs: Mergable=>MergableProperty. Fixes build.
19308
19309 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
19310
19311         * Control.cs: Invalidates control including when Width and Height is 
19312         equal zero or is not visible, only Paint event must be care about 
19313         this. Fixes #79913.
19314
19315 2006-12-26  Chris Toshok  <toshok@ximian.com>
19316
19317         * CurrencyManager.cs, PropertyManager.cs, BindingManagerBase.cs:
19318         more corcompare work.
19319
19320         * DataGridView.cs: fix compiler warning.
19321
19322         * ColumnHeader.cs: some corcompare work, and also take the
19323         opportunity to make the internal fields private.
19324
19325         * ListView.cs: fix the fallout from the above field change.
19326
19327 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
19328
19329         * ToolStripButton.cs, ToolStripComboBox.cs, ToolStripControlHost.cs,
19330         ToolStripItem.cs, ToolStripProgressBar.cs, ToolStripSplitButton.cs,
19331         ToolStripTextBox.cs: Fixes to events and corcompare.
19332
19333 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
19334
19335         * ListView.cs: Call owner.OnMousexx event to propagate events from
19336         item to ListView. Fixes #80367.
19337
19338 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
19339
19340         * ComboBox.cs: On 2.0, DropDownWidth throws ArgumentOutOfRangeException
19341         if value is less than one. ItemHeight should not be set to a value
19342         less than 1, and throw ArgumentOutOfRangeException on 2.0 profile. 
19343         Removed extra tabs.
19344
19345 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
19346
19347         * ToolStripMenuItem.cs: Add ShortcutDisplayString for Moma.
19348         * ToolStripStatusLabel.cs: Add Spring for Moma.
19349
19350 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
19351
19352         * DataGridView.cs: Fixed several NullReferenceException in On* methods.
19353         Fixed code formatting. Removed debug code.
19354         * DataGridViewTextBoxEditingControl.cs: Removed debug code.
19355
19356 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
19357
19358         * DataGridView.cs: Fixed GridColor, DefaultSize, DefaultCellStyle,
19359         RowHeadersDefaultStyle, RowHeadersWidth to match MS. Throw
19360         ArgumentOutOfRangeException if ColumnCount is negative. In 
19361         ColumnHeadersHeight, throw ArgumentOutOfRangeException if height is
19362         less than 4 or higher than 32768.
19363         * DataGridViewCellStyle.cs: Fixed default value for NullValue.
19364         Fixed FormatProvider to return CurrentCulture unless explicitly set.
19365         Fixed IsFormatProviderDefault to return true if FormatProvider has
19366         not been explicitly set.
19367
19368 2006-12-25  Chris Toshok  <toshok@ximian.com>
19369
19370         * Application.cs: add a couple of 2.0 events.
19371
19372 2006-12-25  Chris Toshok  <toshok@ximian.com>
19373
19374         * Control.cs: fix compiler warning.
19375
19376         * AxHost.cs: corcompare fixes.
19377
19378         * ApplicationContext.cs: corcompare fixes.
19379
19380 2006-12-25  Chris Toshok  <toshok@ximian.com>
19381
19382         * Control.cs: only update dist_right/dist_bottom if the
19383         width/height is > 0.  this fixes anchored controls being resized
19384         smaller until they disappear and then resized larger again.
19385
19386 2006-12-25  Chris Toshok  <toshok@ximian.com>
19387
19388         * Control.cs: a couple of changes.  Remove dist_left and dist_top,
19389         since they're nothing more than X/Left and Y/Top, respectively.
19390
19391         Also, move back to a per-control Bitmap/Graphics for
19392         DeviceContext, since using the static Hwnd.bmp/bmp_g is bad in the
19393         MT case.  Go with a tiny bitmap though, 1x1, instead of Width x
19394         Height.
19395
19396 2006-12-25  Miguel de Icaza  <miguel@novell.com>
19397
19398         * MessageBox.cs: Implemented overload that takes a new "bool
19399         displayHelpButton" by adding a new internal field "show_help".
19400         When clicked this will raise the HelpRequested on the owner or the
19401         main form. 
19402
19403         From: 007dbe3ff0ca4729a4f5fcd1d8ab2a2e.txt
19404         From: c935e12b95fe4dc1ae670e7f4dc5fd68.txt
19405
19406         * ListView.cs: Add support ColumnWidthChanged and
19407         ColumnWidthChanging. 
19408
19409         Add support for ColumnReordered event.
19410         (ReorderColumn): Add NET_2_0 specific support for cancelling the
19411         reorder.
19412
19413         Very nice codebase!
19414
19415         * TextBoxBase.cs (GetLineFromCharIndex): Implement this method.
19416
19417         This is used by report f4ae0a88a0a244558aaadf017c9b9efe.
19418
19419 2006-12-24  Chris Toshok  <toshok@ximian.com>
19420
19421         * GridTablesFactory.cs: 2.0 corcompare work.
19422
19423         * ToolStripContainer.cs: add "override" to
19424         ContextMenuStripChanged, and remove the local event object.
19425
19426         * ToolStripDropDown.cs: same with a couple properties.
19427
19428         * ToolStripPanel.cs: same with AutoSizeChanged event.
19429
19430         * TextBoxBase.cs: add "override" to AutoSizeChanged.
19431
19432         * Form.cs: add the remaining 2.0 events, and do some corcompare
19433         attribute work.
19434
19435         * DateTimePicker.cs: add "new" to padding.
19436
19437         * ButtonBase.cs: use Control's use_compatible_text_rendering.
19438
19439         * ToolStripContentPanel.cs: use base.AutoSizeChanged.
19440
19441         * DataGridView.cs: PaddingChanged is overridden.
19442
19443 2006-12-24  Chris Toshok  <toshok@ximian.com>
19444
19445         * Control.cs: corecompare work here too.
19446
19447         * DataGridViewElement.cs, DataGridView.cs,
19448         DataGridViewButtonCell.cs, DataGridViewRowCollection.cs,
19449         DataGridViewImageColumn.cs, DataGridViewComboBoxColumn.cs,
19450         DataGridViewImageCell.cs, DataGridViewCheckBoxCell.cs,
19451         DataGridViewHeaderCell.cs, DataGridViewCell.cs: more corcompare
19452         work.
19453
19454 2006-12-24  Miguel de Icaza  <miguel@novell.com>
19455
19456         * Control.cs: Switched the error message on the console for a
19457         todo.  A review of the code will have to cope with this anyways
19458         (since its a large feature, it is in our radar) and it was
19459         producing too much output when running PDN.
19460
19461         * ToolStripComboBox.cs: Set the text when the SelectedIndex
19462         changes.  Applications depend on this (PDN 2.72)
19463
19464 2006-12-23  Chris Toshok  <toshok@ximian.com>
19465
19466         * TableLayoutSettings.cs: finish up the corcompare work for this
19467         class.
19468
19469 2006-12-23  Chris Toshok  <toshok@ximian.com>
19470
19471         * Control.cs: make SetImplicitBounds internal, do some futzing
19472         with LayoutEngine so that it's available in 1.1, and remove the
19473         entire duplicated code mess from PerformLayout.  Use
19474         System.Windows.Forms.Layout.DefaultLayout instead.
19475
19476         * LayoutEngine.cs: make this class internal in 1.1, public in 2.0.
19477
19478 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
19479
19480         * Form.cs: Add MainMenuStrip property.
19481
19482 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
19483
19484         * Control.cs: Add ContextMenuStrip property and implementation.
19485         Fix ContextMenu implementation to show menu centered on control when
19486         activated using the keyboard instead of showing at screen (0,0).
19487
19488         * ToolStripDropDown.cs: Fix needed overload of Show ().
19489
19490 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
19491
19492         * Menu.cs: Name property added for 2.0 profile.
19493         
19494 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
19495
19496         * Menu.cs: Update information about FindMenuItem, method to be
19497         implemented soon.
19498
19499 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
19500
19501         * MenuAPI.cs: When deselect items deselect also selected subitems.
19502         
19503 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
19504
19505         * MenuAPI.cs: When hides menu set Wnd to null, it prevents
19506         FindSubItemByCoord to found itens that is not active, also an
19507         cheking added to FindSubItemByCoord to search for items only 
19508         in visible popup windows. Fixes #80274.
19509
19510 2006-12-22  Everaldo Canuto  <everaldo@simios.org>
19511
19512         * UserControl.cs: Remove MonoTodo and use InternalBorderStyle,
19513         internal property, it be care about change ExStyle. 
19514
19515 2006-12-22  Andreia Gaita  <avidigal@novell.com>
19516
19517         * ContainerControl.cs: set activeControl for parent forms up the 
19518         tree when the new activecontrol is a container.
19519         When validating the active control, if it is a container, also
19520         raise up the validation for it's active control. Fixes #80280
19521         
19522         * Control.cs: Add internal property flag and check to prevent
19523         Focus events from getting raised when Select() is called for
19524         a ContainerControl. There are still too many focus events being
19525         raised at the moment though.
19526         Cleaned up the code a bit.
19527
19528 2006-12-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19529
19530         * Control.cs: Added all missing 2.0 events.and
19531         fixed a couple of corcompare issues.
19532         * TrackBar.cs: Implemented missing 2.0 bits.
19533         * MonthCalendar.cs, 
19534         * DateTimePicker.cs, 
19535         * MdiClient.cs: Fixed some corcompare issues.
19536
19537 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
19538
19539         * ContextMenuStrip.cs, FlowLayoutPanel.cs, SplitContainer.cs,
19540         SplitterPanel.cs: corecompare work.
19541
19542 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
19543
19544         * ToolStripContainer.cs, ToolStripDropDown.cs, StatusStrip.cs:
19545         Clean up warnings for BackgroundImageChanged and PaddingChanged
19546         events now that they are implemented in Control.cs.
19547
19548 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
19549
19550         * Control.cs: Make sure layout_engine isn't null before using it (2.0).
19551         
19552         * TableLayoutControlCollection.cs, TableLayoutPanel.cs, TableLayoutCellPosition.cs,
19553         TableLayoutSettings.cs, TableLayoutStyleCollection.cs: Initial implementation
19554         of TableLayoutPanel and supporting cast.
19555
19556 2006-12-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19557
19558         * XplatUIWin32.cs: 
19559         - GrabWindow now confines the mouse pointer to the confine window.
19560         - Added Win32ClipCursor and Win32GetClipCursor.
19561
19562         * Control.cs: 
19563         - Added CaptureWithConfine to be able to capture and confine 
19564         mouse pointer.
19565         
19566         * InternalWindowManager.cs: 
19567         - Call CaptureWithConfine instead of Capture if we're an
19568         MdiChild (fixes #79982).
19569
19570 2006-12-21  Chris Toshok  <toshok@ximian.com>
19571
19572         * DataGrid.cs: guard against the initial state of selection, where
19573         selection_start == -1.  make sure we only select from index >= 0.
19574         Fixes bug #80291.
19575
19576 2006-12-21  Chris Toshok  <toshok@ximian.com>
19577
19578         * Control.cs: we don't need to be so draconian with
19579         UpdateDistances, and we thusly don't need to call it before
19580         calling PerformLayout in ResumeLayout.  Fixes bug #80289.
19581
19582 2006-12-21  Daniel Nauck  <dna@mono-project.de>
19583
19584         * ComboBox.cs,
19585         TextBox.cs: Implemented AutoComplete properties.
19586
19587 2006-12-20  Chris Toshok  <toshok@ximian.com>
19588
19589         * DataGridView*.cs: some corecompare work.
19590
19591 2006-12-20  Jackson Harper  <jackson@ximian.com>
19592
19593         * XplatUIX11.cs: We need to hide the caret when deleting it,
19594         otherwise you get carets left lying around everywhere.
19595         * TextBoxBase.cs: Kill then redraw the caret when scrolling.  This
19596         prevents getting some weird half drawn caret tracers when
19597         scrolling.
19598         * TextControl.cs: Attempt to reduce the number of times we need to
19599         recreate the caret.
19600
19601 2006-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
19602
19603         * MonthCalendar.cs: Fixed previous month button. Removed extra tabs.
19604
19605 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19606
19607         * DateTimePicker.cs:
19608         - Implemented missing 2.0 bits.
19609         - Changed some default values to match MS.
19610         
19611 2006-12-20  Jackson Harper  <jackson@ximian.com>
19612
19613         * TextBoxBase.cs: When changing the font across the document we
19614         can't recalculate after changing each line, since that will cahnge
19615         the line count.
19616         - PreferredHeight is a little different than i thought.
19617         - When backspacing, move the caret before we do the actual char
19618         delete, because when that delete crosses a wrap boundary the
19619         positional information will change.
19620
19621 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19622
19623         * Control.cs: Added some missing 2.0 bits: 
19624         BackgroundImageLayout, BackgroundImageLayoutChanged, 
19625         OnPaddingChanged, MouseClick, MouseDoubleClick, PaddingChanged and 
19626         add IBindableComponent and IDropTarget implementation.
19627         
19628         * MonthCalendar.cs: 
19629         - Added all missing 2.0 features:
19630         BackgroundImageLayout, RightToLeftLayout, 
19631         OnHandleDestroyed, RightToLeftLayoutChanged, 
19632         BackgroundImageLayoutChanged, MouseClick, MouseDoubleClick,
19633         PaddingChanged.
19634         - Rewrote all the BoldDate code, it was completely broken.
19635         - Fixed all the tests (the tests can now be re-enabled, the
19636         problems were not with the tests, but with the control, it was
19637         mostly broken).
19638         
19639         * DateTimePicker.cs: Changed the location where the 
19640         MonthCalendar is shown.
19641         
19642 2006-12-19  Chris Toshok  <toshok@ximian.com>
19643
19644         * DataGridView.cs: add IDropTarget implementation.
19645
19646         * ToolStripPanel.cs: add IDropTarget implementation.
19647
19648 2006-12-19  Jackson Harper  <jackson@ximian.com>
19649
19650         * TextControl.cs: soft now means something different than what it
19651         used to mean, we want to move the caret regardless of whether or
19652         not this break was soft (would we really have wanted the caret
19653         to not move with the break in the old context?)
19654         * TreeView.cs: Make sure we factor in the vert scrollbar when
19655         calculating the horizontal scrollbar's maximum.
19656
19657 2006-12-19  Andreia Gaita  <avidigal@novell.org>
19658
19659         * SendKeys.cs: Fix Send() behaviour, clear keys after sending,
19660         check for keywords in alternate casing, close bug #80049.
19661
19662 2006-12-19  Chris Toshok  <toshok@ximian.com>
19663
19664         * ToolStripItem.cs: add the implementation of the 4 IDropTarget
19665         methods (which all do nothing).
19666
19667         * IDropTarget.cs: add the 4 missing methods.
19668
19669 2006-12-19  Chris Toshok  <toshok@ximian.com>
19670
19671         * TableLayoutRowStyleCollection.cs: corcompare work.
19672         
19673         * TableLayoutSettings.cs: same.
19674
19675         * TableLayoutStyle.cs: same.
19676
19677         * TableLayoutColumnStyleCollection.cs: same.
19678
19679 2006-12-19  Jonathan Pobst  <monkey@jpobst.com>
19680
19681         * ColumnStyle.cs, RowStyle.cs, TableLayoutStyle.cs: Plumbing for
19682         TableLayoutPanel I've had in my local tree for way too long.
19683
19684 2006-12-19  Miguel de Icaza  <miguel@novell.com>
19685
19686         * TableLayoutSettings.cs: Finish the public API (still needs all
19687         the logic to update on changes). 
19688
19689         * TableLayoutPanelCellPosition.cs: new file.
19690         
19691         * TableLayoutRowStyleCollection.cs,
19692         TableLayoutColumnStyleCollection, TableLayoutStyle.cs,
19693         TableLayoutSettings.cs: Track the final 2.0 table api.
19694
19695 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
19696
19697         * ColumnHeader.cs: Add Tag, Name, ImageKey, ImageIndex,
19698         and Image List 2.0 members for ColummnHeader.
19699         * ListView.cs: Add key-related 2.0 methods for
19700         ColumnHeaderCollection.
19701
19702 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
19703
19704         * ListViewItem.cs: Changed AddRange overloads to match MS: throw
19705         ArgumentNullException if items argument is null. Ignore null item in
19706         arrays. Removed extra tabs.
19707
19708 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
19709
19710         * MonthCalendar.cs: Fixed InvalidCastException.
19711
19712 2006-12-19  Jackson Harper  <jackson@ximian.com>
19713
19714         * TextControl.cs: Don't increment the position here.
19715         - When calculating char positions only add in the line break size
19716         for hard line breaks.
19717
19718 2006-12-19  Andreia Gaita  <avidigal@novell.org>
19719
19720         * SendKeys.cs: Changed some things to match ms.net behaviour
19721         when parsing shifted capital letters.
19722         
19723         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32, XplatUIOSX: 
19724         Add window handle as parameter to SendInput. X11 needs the 
19725         window handle, and the handle being passed      to it in the keys 
19726         queue is the active control handle (which windows needs), not 
19727         the window handle.
19728         
19729         XplatUIX11.cs, XplaUIX11-new.cs, X11Display: Implement SendInput 
19730         to support SendKeys on X.       
19731         
19732         * X11Keyboard: Implement helper method to lookup a linux keycode
19733         given the virtual keycode. Added table of keycode-2-virtualkey
19734         values to support this.
19735
19736 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
19737
19738         * ListView.cs: Add support for SelectedIndexCollection
19739         and SelectedItemCollection 2.0 methods. Implement support
19740         for ImageKey too.
19741         * ListViewItem.cs: Add support for ListViewSubItemCollection
19742         2.0 methods. Also, fix an incorrect behavior of AddRange method
19743         (it shouldn't call Clear).
19744         * ThemeWin32Classic.cs: Support for ListView.ImageKey 2.0 property.
19745
19746 2006-12-19  Jackson Harper  <jackson@ximian.com>
19747
19748         * RichTextBox.cs: 
19749         * TextBoxBase.cs: New args for FormatText
19750         * TextControl.cs: Rewrote the main drawing method, this version
19751         feels a little easier to understand and debug to me.  Hopefully it
19752         does to others also
19753         - Fix FormatText to OR in the new formating values.  Added
19754         FormatSpecified param, basically this works in the same way as
19755         BoundsSpecified in Control.
19756         - Set the caret properties when the caret is positioned.
19757         - When wrapping text make sure that we calculate the width of the
19758         last character
19759         - when calculating alignments we might have wrapped down to the
19760         next line, so don't search for an individual tag, search for the
19761         end of the line
19762         - We need to invalidate the selection area when we replace the
19763         selection.
19764         
19765 2006-12-19  Daniel Nauck  <dna@mono-project.de>
19766
19767         * Application.cs: add Restart () 2.0 support
19768
19769 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
19770
19771         * MenuItem.cs: Invalidate menu item rectangle after change Enable
19772         property. Fixes #80268.
19773         
19774 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
19775
19776         * MenuAPI.cs: Dont trigger select event when closes top menu
19777         item. Fixes #80270.
19778
19779 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
19780
19781         * MenuAPI.cs: When you click on menuitem only trigger onselect
19782         event for top menu itens. Fixes #80271.
19783         
19784 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19785
19786         * MdiWindowManager.cs: Make IconicBounds depend on
19787         the bottom of MdiClient, not the top (fixes #80267)
19788         
19789 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19790
19791         * MdiClient.cs: Added missing 2.0 attribute
19792
19793 2006-12-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
19794
19795         * ListViewItem.cs: Add Name and Tag 2.0 properties, as well
19796         as IndexOfKey, ContainsKey, RemoveByKey and indexer 2.0.
19797
19798 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
19799
19800         * MenuAPI.cs: Fix click when menuitem is not popup,
19801         this regression was caused by last commit (#80272).
19802
19803 2006-12-17  Everaldo Canuto  <everaldo@simios.org>
19804
19805         * MenuAPI.cs: When a non-toplevel menuitem is clicked dont
19806         fire click event or close menu. Fixes #80272.
19807
19808 2006-12-17  Daniel Nauck  <dna@mono-project.de>
19809
19810         * ListViewHitTestInfo.cs: add
19811
19812 2006-12-17  Daniel Nauck  <dna@mono-project.de>
19813
19814         * ButtonBase.cs: Added FlatButtonAppearance 2.0 support.
19815         * FlatButtonAppearance.cs: add
19816         * DockingAttribute.cs: add
19817
19818 2006-12-17  Chris Toshok  <toshok@ximian.com>
19819
19820         * DataGrid.cs: hook up MetaDataChanged event on the list manager,
19821         and rebind our columns when it does - this way, if you make
19822         changes to the DataTable (or set the Table attribute on a DataView
19823         after setting it as the DataGrid's DataSource, the changes are
19824         made visible.)  Fixes bug #80107.
19825
19826 2006-12-17  Daniel Nauck  <dna@mono-project.de>
19827
19828         * ListViewGroup.cs: add internal Location property for layouting.
19829         * Theme.cs: add abstract ListViewGroupHeight function.
19830         * ThemeWin32Classic.cs: implement ListViewGroupHeight function.
19831
19832 2006-12-16  Andreia Gaita  <avidigal@novell.com>
19833
19834         * TabControl.cs: Fixed checks for NET_2_0-specific exceptions.
19835         Added reset of selected index to 0 when adding first tab page.
19836         Fixes #80264
19837         
19838         * NumericUpDown.cs: Fix NET_2_0 check
19839
19840 2006-12-16  Daniel Nauck  <dna@mono-project.de>
19841
19842         * ListViewGroup.cs: fixed DefaultValueAttribute value
19843
19844 2006-12-16  Daniel Nauck  <dna@mono-project.de>
19845
19846         * AutoCompleteStringCollection.cs: add new AutoCompleteStringCollection 2.0 class
19847
19848 2006-12-15  Miguel de Icaza  <miguel@novell.com>
19849
19850         * Button.cs, ComboBox.cs, ScrollBar.cs, UserControl.cs,
19851         TextBoxBase.cs, ListView.cs, ContainerControl.cs,
19852         ScrollableControl.cs: Add a handful of methods that are
19853         overwritten in 2.0 
19854
19855 2006-12-15  Chris Toshok  <toshok@ximian.com>
19856
19857         * XplatUIWin32.cs: initial implementation of the Reversible
19858         drawing functions.  there are some problems.  DrawReversibleFrame
19859         doesn't seem to work at all for Dashed FrameStyle, and in the
19860         Thick case there are drawing errors at the corners (we probably
19861         need to bind Rectangle instead of doing moveto/lineto's.)
19862
19863 2006-12-16  Andreia Gaita  <avidigal@novell.com>
19864         
19865         * SendKeys.cs: Implemented. SendKeys uses a new method in XPlatUI, SendInput, 
19866         to send blocks of key messages. Send accumulates keys to send with Flush, 
19867         while SendWait sends all keys immediately.
19868                 
19869         * XplaUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, 
19870         XplatUIX11.cs,  XplatUIX11-new.cs:
19871         - Define SendInput and stubs for OSX and X11, implements Win32 with a call
19872         to Win32 SendInput.
19873         - Added INPUT support structures to XplatUIWin32 for Win32SendInput
19874         
19875         Tests:  It seems ms.net is hooking the keyboard to implement this, so doing unit
19876         testing for ms.net on this class is very tricky, as the tests run too fast 
19877         to allow the hook to release, essentially freezing the keyboard and the 
19878         test. So, barring a win32 miracle, they'll be commited in the ms-notworking     
19879         category :p
19880
19881 2006-12-16  Daniel Nauck  <dna@mono-project.de>
19882
19883         * Padding.cs: fixed serialization compability to MS ("_var" field names),
19884                         added missing attributes.
19885  
19886 2006-12-15  Daniel Nauck  <dna@mono-project.de>
19887
19888         * ListViewGroup.cs: Added missing attributes.
19889         * ListViewGroupCollection.cs: Added missing attributes.
19890
19891 2006-12-15  Daniel Nauck  <dna@mono-project.de>
19892
19893         * ListViewItem.cs: fixed ListViewSubItem text property.
19894
19895 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19896         
19897         * Control.cs: Added missing 2.0 attributes
19898         
19899 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19900         
19901         * MdiClient.cs: Added missing 2.0 attribute.
19902         * MonthCalendar.cs: Added some missing 2.0 attributes 
19903         and properties.
19904         
19905 2006-12-15  Daniel Nauck  <dna@mono-project.de>
19906
19907         * ListView.cs: implemented ListViewItemCollection Add 2.0 support.
19908
19909 2006-12-15  Jonathan Pobst  <monkey@jpobst.com>
19910
19911         * MainMenu.cs: Add the new 2.0 constructor to help out people
19912         using the MainMenu in VS2005.
19913
19914 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19915         
19916         * MdiChildContext.cs: Removed it, no longer used.
19917         * MdiClient.cs: Added missing 2.0 attributes.
19918         
19919 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19920         
19921         * InternalWindowManager.cs: Fix a NullRef with previous 
19922         changes for toolwindows.
19923         
19924 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19925
19926         * Control.cs: 
19927         - Added AfterTopMostControl to allow for certain controls 
19928         to always stay on top when normal controls are brought to 
19929         front.
19930         
19931         * XplatUIWin32.cs: 
19932         - (DrawInversibleRectangle): Get window rectangle from Win32 
19933         in stead of from control, since Win32 doesn't calculate
19934         screen coords correctly from control's Location if it 
19935         have docked siblings.
19936         
19937         * MdiWindowManager.cs:
19938         - Correct the control menu popup location when clicked on
19939         the maximized form icon. (fixes #80223.1)
19940         - Don't show moving rectangle if mouse hasn't moved from
19941         the original clicked point.
19942         - Removed FormGotFocus handler (not used).
19943         - Calculate the control buttons location from the main
19944         window's size and not client size (fixes #79770).
19945         - Form is now closed when the form icon is double-clicked
19946         (fixes #79775). 
19947         - Correct NCCalcSize numbers a little bit (fixes #80223.2)
19948         
19949         * InternalWindowManager.cs:
19950         - Moved some MDI-only methods to MdiWindowManager.
19951         - Removed unused properties and methods.
19952         - Unified method naming for methods handling wm messages.
19953         - Moved all message handling to seperate methods for
19954         each message.
19955         
19956         * ThemeWin32Classic.cs:
19957         - DrawManagedWindowDecorations now draws the title bar 
19958         with a gradient brush.
19959         - Add a CPDrawButtonInternal that allows us to specify
19960         light, normal and dark colors for the buttons (control 
19961         buttons for MDI children were drawn with the same light
19962         color as the background, therefore loosing the 3D effect).
19963         
19964         * SizeGrip.cs:
19965         - Add a CapturedControl property that is used to 
19966         determine the control to resize (defaults to parent). 
19967         Needed for MdiClient, since its SizeGrip's parent is
19968         MdiClient, but the control to resize is the main form.
19969         
19970         * MdiClient.cs:
19971         - Set SizeGrip's CapturedControl to the main form in order
19972         to resize the main form and not the MdiClient.
19973         - Override AfterTopMostControl to leave the scrollbars 
19974         always on top.
19975
19976 2006-12-15  Daniel Nauck  <dna@mono-project.de>
19977
19978         * ListView.cs: fixed ListViewItemCollection AddRange and
19979                         implemented ListViewItemCollection AddRange 2.0 support.
19980
19981 2006-12-15  Daniel Nauck  <dna@mono-project.de>
19982
19983         * ListViewGroup.cs: Add.
19984         * ListViewGroupCollection.cs: Add
19985         * ListView.cs: Add ListViewGroup (Group) and ShowGroups 2.0 support.
19986         * ListViewItem.cs: Add ListViewgroup (Group), ListViewGroups constructors and
19987                                 stub for ImageKey 2.0 support.
19988
19989 2006-12-14  Mike Kestner  <mkestner@novell.com>
19990
19991         * ListView.cs: add text padding to the autocalculation for columns
19992         of width -2.  Fixes #80207.
19993  
19994 2006-12-14  Mike Kestner  <mkestner@novell.com>
19995
19996         * ListView.cs: add some index guarding for partial row navigation 
19997         logic.  Fixes #80250.
19998
19999 2006-12-14  Mike Kestner  <mkestner@novell.com>
20000
20001         * ListView.cs: throw ArgumentExceptions when parented ListViewItems
20002         are added or inserted to the collection.  Fixes #81099.
20003
20004 2006-12-13  Everaldo Canuto  <everaldo@simios.org>
20005
20006         * MenuAPI.cs: Closes menu when right click out side of popup
20007         it fix problem in ContextMenu and MainMenu. Fixes #80252.
20008
20009 2006-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
20010
20011         * ListViewItem.cs: Fix dumb error.
20012
20013         * ListView.cs: Add Find and ContainsKey methods in 
20014         ListViewItemCollection, and also return true for IsReadOnly
20015         and IsFixedSize (changes for 2.0). 
20016
20017 2006-12-13  Gert Driesen  <drieseng@users.sourceforge.net>
20018
20019         * Control.cs: Allow Region to be set to null.
20020
20021 2006-12-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
20022
20023         * MdiWindowManager.cs: Remove unused (commented out) code.
20024         * Form.cs: When the MdiChild is maximized, the form needs 
20025         WM_NCMOUSELEAVE, so request it.
20026         * InternalWindowManager.cs: 
20027         - Added tooltips to control buttons.
20028         - Removed duplicated control button handling code.
20029         - Removed unused (commented out) code.
20030         
20031 2006-12-12  Everaldo Canuto  <everaldo@simios.org>
20032
20033         * MenuAPI.cs: Set cursor to default in popup menus, a XplatUI.SetCursor 
20034         was used because we must set cursor without trigger ChangeCursor event
20035         and without change Cursor control property. Fixes #79963.
20036
20037 2006-12-12  Andreia Gaita  <avidigal@novell.com>
20038         
20039         * Control.cs: Check if Region setter value is null, and ignore
20040
20041 2006-12-12  Jackson Harper  <jackson@ximian.com>
20042
20043         * TextControl.cs: We were almost always drawing one more line then
20044         needed, since the GetLineByPixel will return the last line found
20045         at that pixel. In most cases though, we were invalidating up to
20046         the junction between two lines.
20047         - Improve debug code.
20048
20049 2006-12-12  Chris Toshok  <toshok@ximian.com>
20050
20051         * XplatUI.cs: add static DrawReversibleFrame, DrawReversibleLine,
20052         and FillReversibleRectangle.
20053
20054         * XplatUIDriver.cs: add abstract DrawReversibleFrame, DrawReversibleLine,
20055         and FillReversibleRectangle.
20056
20057         * XplatUIWin32.cs: add stubs which do nothing for
20058         DrawReversibleFrame, DrawReversibleLine, and
20059         FillReversibleRectangle.
20060
20061         * XplatUIOSX.cs: add stubs which raise NIE for
20062         DrawReversibleFrame, DrawReversibleLine, and
20063         FillReversibleRectangle.
20064
20065         * XplatUIX11.cs: add working implementation for
20066         DrawReversibleFrame, DrawReversibleLine, and
20067         FillReversibleRectangle.
20068         
20069         * ControlPaint.cs: implement DrawReversibleFrame,
20070         DrawReversibleLine, and FillReversibleRectangle, by calling into
20071         the appropriate XplatUI method.
20072
20073 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
20074
20075         * Form.cs: Make MdiClient have the focus even if it's
20076         not selectable, since it should receive WM_KEY* and WM_MOUSE 
20077         messages. Fixes #79907.
20078         
20079 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
20080
20081         * Hwnd.cs: Save the CreateParams.ExStyle so that it can be
20082         queried after the window is created.
20083         
20084         * XplatUIX11.cs: Added SendParentNotify to implement 
20085         WM_PARENTNOTIFY logic. Fixes #79965.
20086         
20087         * Control.cs: Added MakeParam.
20088         
20089 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
20090
20091         * MdiClient.cs: Resume Layout before setting window
20092         states (fixes #80201).
20093
20094 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
20095
20096         * MenuAPI.cs: Deselect a menu item after performing
20097         the click (fixes #80197).
20098
20099 2006-12-11  Jackson Harper  <jackson@ximian.com>
20100
20101         * TextBoxBase.cs: We need to cap this value, since Maximum -
20102         ViewPortHeight can be less than zero.
20103         - Only do selection with the left mouse button.
20104         * TextBox.cs: Don't tell the world that we have a context menu.
20105         * Control.cs: New method so that we can control whether or not the
20106         context menu is visible outside MWF.
20107
20108 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
20109
20110         * ToolBarButton.cs: Fix text positon. 
20111
20112 2006-12-11  Miguel de Icaza  <miguel@novell.com>
20113
20114         * ProgressBar.cs (MarqueeAnimationSpeed): Add stub.
20115
20116         * Control.cs (DoubleBuffered): Add implementation.
20117
20118         * Application.cs (OpenForms): Add.
20119
20120 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
20121
20122         * Form.cs: Use opacity instead of Opactiy to determine if we need
20123         to set the WS_EX_LAYERED bit.  [Fixes bug #80185]
20124
20125 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
20126
20127         * Control.cs: Fix NRE if Control.Site was set to null.
20128
20129 2006-12-11  Chris Toshok  <toshok@ximian.com>
20130
20131         * Control.cs: ControlCollection.Remove should return if the arg is
20132         null, and ControlCollection.SetChildIndex should raise a ANE.
20133
20134 2006-12-11  Gert Driesen  <drieseng@users.sourceforge.net>
20135
20136         * Control.cs: Verify value set for Dock property. Code formatting
20137         updates.
20138
20139 2006-12-11  Jackson Harper  <jackson@ximian.com>
20140
20141         * TextControl.cs: Draw the caret and the selection when a flag is
20142         set on the owner.
20143         * TextBoxBase.cs: We want to draw the caret and the selection for
20144         TextBox but not for TextBoxBase.
20145         - If the window is resized and scrolling is no longer needed (the
20146         whole doc is visible) set the scroll position to zero.
20147         - The default SelectWord (the one TextBox uses) should move the
20148         caret to the end of the word.
20149         - SelectAll moves the caret to the end of the selection.
20150         * TextBox.cs: We don't selectall on focus, we just do it when the
20151         control is created.
20152         
20153 2006-12-11  Mike Kestner  <mkestner@novell.com>
20154
20155         * ComboBox.cs: stub in a 2.0 override for ProcessKeyEventArgs.
20156
20157 2006-12-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
20158
20159         * ListView.cs: Add Insert, IndexOfKey, RemoveByKey and indexer 
20160         2.0 support.
20161         * ListViewItem.cs: Add Name 2.0 property.
20162
20163 2006-12-11  Andreia Gaita  <avidigal@novell.com>
20164
20165         * TabControl.cs: Set visibility on selected or default tab 
20166         when tabcontrol handle is created, so that it's contents
20167         actually show up (duh). Fixes #80193
20168         Don't redraw the control if there is no handle created, as
20169         the selected index might be completely invalid. Added some tests
20170         to check for this.
20171
20172 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
20173
20174         * ToolBar.cs: Uses maximun width and height of all buttons as 
20175         button rectangle when ButtonSize specified, it looks strange but
20176         is what happens in Win32. Fixes #80189.
20177
20178 2006-12-11  Jackson Harper  <jackson@ximian.com>
20179
20180         * TextControl.cs: Need to track undo levels ourself, since
20181         compound actions will mess them up.
20182
20183 2006-12-10  Andreia Gaita  <avidigal@novell.com>
20184
20185         * TabControl.cs: Raise SelectedIndexChanged for 1.1 if the
20186         SelectedIndex value is changed (even if it's not valid).
20187         Reset SelectedIndex to 0 when the handle is created and if
20188         the current index is invalid.
20189         Fixes SelectdeIndex unit tests and #80128
20190
20191 2006-12-08  Chris Toshok  <toshok@ximian.com>
20192
20193         * DataGrid.cs (set_CurrentCell): because EnsureCellVisibility
20194         calls EndEdit, it needs to be called before we set current_cell to
20195         its new value.  Otherwise, we end up committing the value in the
20196         textbox to the new cell as well.  Fixes bug #80160.
20197
20198 2006-12-08  Chris Toshok  <toshok@ximian.com>
20199
20200         * Form.cs (set_CancelButton): if the button's DialogResult is
20201         None, set it to Cancel.  Fixes bug 80180.
20202
20203 2006-12-08  Jackson Harper  <jackson@ximian.com>
20204
20205         * TextBoxBase.cs: Ugh, ClientSize can be 0,0 sometimes, so we need
20206         to watch ourselves when setting the canvas size and setting the
20207         scrollbar values.
20208
20209 2006-12-08  Chris Toshok  <toshok@ximian.com>
20210
20211         * DataGrid.cs: comment out the two MakeTransparent calls for the
20212         time being so people using trunk (and not 1.2.2) on windows can
20213         actually use the datagrid.  This deals with bug #80151.
20214
20215 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
20216
20217         * ThemeWin32Classic.cs: Change ButtonBase_DrawImage to use the
20218         Graphics.DrawImage (image, int, int, int, int) overload instead
20219         of Graphics.DrawImage (image, int, int).  GDI+ can't figure out
20220         the dpi difference and was blurring images it drew.
20221         [Fixes bug #79960]
20222
20223 2006-12-08  Chris Toshok  <toshok@ximian.com>
20224
20225         * ThemeWin32Classic.cs (DataGridPaintRows): handle case where
20226         rowcnt is 0 (such as with an empty datasource), and make sure we
20227         initialize not_usedarea.Y to cells.Y, so we don't draw over the
20228         other areas (caption, parent row, etc, etc).  Fixes bug #80095.
20229
20230 2006-12-08  Chris Toshok  <toshok@ximian.com>
20231
20232         * DataGridColumnStyle.cs (SetDataGrid): don't try to access a null
20233         grid.
20234
20235 2006-12-08  Chris Toshok  <toshok@ximian.com>
20236
20237         [ Fixes bug #80167 ]
20238         
20239         * ThemeWin32Classic.cs: don't draw the image if the button's flat
20240         style is FlatStyle.System.
20241
20242         * ButtonBase, ThemeClearlooks.cs, ThemeGtk.cs, ThemeNice.cs: make
20243         ButtonBase.flat_style private, and switch uses of it to the public
20244         property.
20245         
20246 2006-12-08  Chris Toshok  <toshok@ximian.com>
20247
20248         [ Fixes bug #80121 ]
20249         
20250         * ThemeWin32Classic.cs: center the caption text in the datagrid
20251         when we draw it.
20252
20253         * DataGrid.cs: lessen the amount we add to the caption height from
20254         6 to 2.  6 was making it huge.
20255
20256 2006-12-08  Andreia Gaita  <avidigal@novell.com>
20257
20258         * UpDownBase: Handle MouseWheel call directly instead of capturing
20259         the inner textbox's OnMouseWheel. Fixes #80166
20260
20261 2006-12-08  Jackson Harper  <jackson@ximian.com>
20262
20263         * TextControl.cs: We need to invalidate the textbox when we empty
20264         it (how had this not been discovered before?)
20265
20266 2006-12-08  Jackson Harper  <jackson@ximian.com>
20267
20268         * TextBoxBase.cs: Reworked the mouse down code so I could get it
20269         to behave like MS, we now ignore the eventargs.Click and just
20270         track state ourself, which we were already doing anyways.
20271         - Constrain the double click handler to the double click size.
20272         
20273 2006-12-08  Chris Toshok  <toshok@ximian.com>
20274
20275         * DataGrid.cs: the mousewheel code shouldn't try to scroll in a
20276         direction if that scrollbar isn't shown.  fixes bug #80158.
20277
20278 2006-12-08  Andreia Gaita  <avidigal@novell.com>
20279
20280         * NumericUpDown.cs: Update value on getter. Fixes #79950
20281
20282 2006-12-08  Chris Toshok  <toshok@ximian.com>
20283
20284         * MenuItem.cs: add back in the event cloning code.  I didn't know
20285         how to do it in the face of the EventHandlerList work i'd done
20286         last week.  Fixes bug #80183.
20287
20288 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
20289
20290         * Control.cs: Add an invalidate to the BackgroundImage setter.
20291         [Fixes 80184]
20292
20293 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
20294
20295         * ToolStrip*: Add some small properties reported by MoMA, fix event
20296         firing and default properties based off of unit tests, and add some
20297         attributes based off of the class status page.
20298
20299 2006-12-07  Jackson Harper  <jackson@ximian.com>
20300
20301         * TextBoxBase.cs: Take HideSelection into account when determining
20302         whether or not to show the selection.
20303         * RichTextBox.cs: After inserting the RTF into the document move
20304         the cursor to the beginning of the document.
20305
20306 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
20307
20308         * Control.cs: Remove static ArrayList "controls" which maintained
20309         a reference to every control created.
20310         * Application.cs: Create a static FormCollection to maintain a reference
20311         to every form created.  Use it in places that formerly enumerated through
20312         the controls one looking for forms.
20313         * Form.cs: Add and remove self from above FormCollection.
20314
20315 2006-12-07  Alexander Olk  <alex.olk@googlemail.com>
20316
20317         * MimeIcon.cs: gdk_pixbuf_save_to_buffer is part of libgdk-pixbuf,
20318           not libgdk (though it makes me wonder why I didn't have any
20319           problems)
20320
20321 2006-12-07  Chris Toshok  <toshok@ximian.com>
20322
20323         [ you had to know this was coming after that last commit...]
20324         
20325         * XplatUIX11.cs: implement the 3 Offscreen functions in terms of
20326         XPixmaps (CreateOffscreenDrawable maps to XCreatePixmap,
20327         DestroyOffscreenDrawable to FreePixmap, and BlitFromOffscreen to
20328         XCopyArea).
20329
20330 2006-12-07  Chris Toshok  <toshok@ximian.com>
20331
20332         * XplatUI.cs: add 3 calls (CreateOffscreenDrawable,
20333         DestroyOffscreenDrawable, and BlitFromOffscreen) that encompass
20334         all the behavior we need for double buffering.
20335
20336         * XplatUIDriver.cs: implement the 3 double buffer methods using a
20337         client side Bitmap, just like the old Control-based double buffer
20338         code did.  The methods are virtual, so each XplatUI driver
20339         subclass can replace the implementation to use a faster, platform
20340         specific approach.
20341
20342         * Control.cs: make use of the 3 Offscreen XplatUI calls in the
20343         double buffer code, and clean things up a bit in the process.
20344
20345 2006-12-06  Chris Toshok  <toshok@ximian.com>
20346
20347         * Control.cs: reindent WndProc.
20348
20349 2006-12-06  Chris Toshok  <toshok@ximian.com>
20350
20351         [ I wanna be like BenM when I grow up ]
20352         
20353         * Hwnd.cs: create a single static Graphics object on the static
20354         Bitmap we create.  use this for our text measurements.
20355
20356         * Control.cs (DeviceContext): stop using the backbuffer's dc_mem.
20357         This was causing us to allocate a backbuffer for every control,
20358         even when it wasn't flagged as double buffered.  Instead use the
20359         single graphics instance.  This might have implications for
20360         multithreaded applications.  If we run into problems we can switch
20361         to creating 1 Graphics per control, on the static Hwnd bitmap.
20362
20363         this change nets us a 7M savings in private dirty mappings when
20364         running FormsTest.exe.
20365
20366 2006-12-06  Chris Toshok  <toshok@ximian.com>
20367
20368         * ListView.cs: the BackgroundImage override is just to set
20369         attributes.  chain up to base.BackgroundImage.
20370
20371         * RichTextBox.cs: same.
20372
20373         * ToolBar.cs: same, but we need to also redraw the toolbar when it
20374         changes, so instead a handler for BackgroundImageChanged.
20375         
20376         * Control.cs: make background_image private.
20377
20378 2006-12-06  Chris Toshok  <toshok@ximian.com>
20379
20380         * ScrollBar.cs: change the assignment of cursor to Cursor.  not
20381         sure we even need this assignment, but roll with it for now.
20382
20383         * Control.cs: make the cursor field private.
20384
20385 2006-12-06  Chris Toshok  <toshok@ximian.com>
20386
20387         * Form.cs: we don't need to explicitly set ImeMode to
20388         ImeMode.NoControl - that's a natural fallout of Control.ImeMode's
20389         behavior in the face of ImeMode.Inherit.
20390
20391         * ButtonBase.cs: change DefaultImeMode to ImeMode.Disable, and
20392         change the ctor's assignment to use ImeMode instead of ime_mode.
20393
20394         * Control.cs (get_ImeMode): don't assume DefaultImeMode ==
20395         ImeModeInherit.  Only check for the parent's imemode (and return
20396         NoControl if there is no parent) if ime_Mode == ImeMode.Inherit.
20397         This fixes the button unit test, which sets both ImeMode and
20398         DefaultImeMode to ImeMode.Disable.
20399
20400         also make the ime_mode field private.
20401
20402 2006-12-06  Chris Toshok  <toshok@ximian.com>
20403
20404         * Control.cs: make control_style private.
20405
20406         * TextBoxBase.cs: fix the HandleClick override.  it was explicitly
20407         setting the styles to true, then setting them to false instead of
20408         reverting to their previous values.
20409
20410         also, call SetStyle on the scrollbars instead of using
20411         control_style directly.
20412
20413 2006-12-06  Jonathan Pobst  <monkey@jpobst.com>
20414
20415         * FormCollection.cs: Implement. [2.0]
20416
20417 2006-12-06  Chris Toshok  <toshok@ximian.com>
20418
20419         * Control.cs: make tab_stop private.
20420
20421         * Label.cs: set TabStop, not tab_stop.  reformat some event
20422         add/remove methods to make them more compact.
20423
20424 2006-12-06  Chris Toshok  <toshok@ximian.com>
20425
20426         * RadioButton.cs: fix TabStop handling.
20427
20428 2006-12-06  Chris Toshok  <toshok@ximian.com>
20429
20430         * TextBox.cs: remove the explicit assignments to has_focus.
20431         Control does that.
20432
20433         * ButtonBase.cs: remove the assignment to has_focus.  Control will
20434         manage that.
20435         
20436 2006-12-06  Chris Toshok  <toshok@ximian.com>
20437
20438         * ButtonBase.cs: remove all uses of is_enabled from this code.
20439         it's always true when any of the code containing the checks is
20440         executed.
20441
20442 2006-12-06  Chris Toshok  <toshok@ximian.com>
20443
20444         * ImageList.cs: reinstate the ShouldSerialize*/Reset* methods,
20445         with different semantics (some are present in both 1.1 and 2.0
20446         profiles) so that we match MS's behavior in our unit tests.
20447
20448 2006-12-06  Jackson Harper  <jackson@ximian.com>
20449
20450         * TextControl.cs: Make this operation undoable.
20451         * TextBoxBase.cs: Factor the border width into the preferred
20452         height.
20453         - implement Modified as per the spec.
20454
20455 2006-12-06  Chris Toshok  <toshok@ximian.com>
20456
20457         * Timer.cs, Control.cs, Menu.cs: make control_tag private.
20458
20459 2006-12-06  Chris Toshok  <toshok@ximian.com>
20460
20461         * Control.cs: make right_to_left and context_menu fields private.
20462
20463 2006-12-06  Chris Toshok  <toshok@ximian.com>
20464
20465         * AccessibleObject.cs, Control.cs, XplatUIX11GTK.cs,
20466         XplatUIX11.cs, Form.cs, RadioButton.cs, ScrollableControl.cs: make
20467         Control.child_controls private.  switch all uses over to
20468         Control.Controls.
20469
20470 2006-12-06  Chris Toshok  <toshok@ximian.com>
20471
20472         * System.Windows.Forms/GroupBox.cs,
20473         System.Windows.Forms/AccessibleObject.cs,
20474         System.Windows.Forms/ErrorProvider.cs,
20475         System.Windows.Forms/Control.cs,
20476         System.Windows.Forms/UpDownBase.cs,
20477         System.Windows.Forms/ScrollBar.cs,
20478         System.Windows.Forms/DateTimePicker.cs,
20479         System.Windows.Forms/Form.cs, System.Windows.Forms/Label.cs,
20480         System.Windows.Forms/ToolTip.cs,
20481         System.Windows.Forms/RadioButton.cs,
20482         System.Windows.Forms/LinkLabel.cs,
20483         System.Windows.Forms/Splitter.cs,
20484         System.Windows.Forms/TextBoxBase.cs,
20485         System.Windows.Forms/ToolStripTextBox.cs,
20486         System.Windows.Forms/ContainerControl.cs,
20487         System.Windows.Forms/ThemeWin32Classic.cs,
20488         System.Windows.Forms/SizeGrip.cs,
20489         System.Windows.Forms/ToolStripDropDown.cs,
20490         System.Windows.Forms/ScrollableControl.cs: Make Control.parent
20491         private.  switch all uses over to Control.Parent.
20492
20493 2006-12-06  Chris Toshok  <toshok@ximian.com>
20494
20495         * RichTextBox.cs: don't assign to has_focus in GotFocus/LostFocus.
20496         Control does this before calling emitting these events.
20497
20498         * TabControl.cs: same.
20499
20500         * ThemeWin32Classic.cs: use Control.ClientRectangle instead of
20501         Control.client_rect.
20502
20503         * ButtonBase.cs: use the ClientSize property instead of the
20504         client_size field.
20505
20506         * ScrollableControl.cs: same.
20507
20508         * Control.cs: another pass at making properties private.  also,
20509         move the initialization of tab_stop to the ctor.
20510
20511 2006-12-05  Andreia Gaita <avidigal@novell.com>
20512
20513         * TabControl.cs: Let the selected index be set freely if the 
20514         control handle is not yet created.
20515
20516 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
20517
20518         * Control.cs: Revert dist_top, dist_right, and dist_bottom to 
20519         internal until I can rewrite DefaultLayout.
20520         * ToolStrip.cs: Fix build error and some general cleaning.
20521         * ToolStripControlHost.cs, SplitterPanel.cs, DataGridView.cs:
20522         Fix build errors caused by making some of Control's fields private.
20523
20524 2006-12-05  Jackson Harper  <jackson@ximian.com>
20525
20526         * TextControl.cs: Redo Insert a little so that it use IndexOf
20527         instead of Split, this prevents it from messing up on things like
20528         \n\n\n. Also more effecient since the split array doesn't need to
20529         be created.
20530         * TextBoxBase.cs: AppendText doesnt handle multiline and non
20531         multiline text differently, this is the first of many fixes that
20532         will make multiline/non-multiline the same thing as far as the
20533         TextBoxBase is concerned.
20534         - Don't split the text and insert lines, this can lose some line
20535         endings (like is the last line a soft or hard break). Instead use
20536         the new Insert.
20537         - Fix an off by one when combining all the lines in the Text
20538         getter.
20539         - Remove separate multiline handling from the Text getter/setter.
20540
20541 2006-12-05  Chris Toshok  <toshok@ximian.com>
20542
20543         * ButtonBase.cs: a few changes:
20544
20545         - don't reinitialize internal Control fields in the ctor when they
20546         have the same values as Control sets them.
20547
20548         - don't set has_focus in OnGotFocus/OnLostFocus.  Control does
20549         this before calling those methods.
20550
20551         - we don't need to call Refresh for anything.  use Invalidate
20552         instead.
20553
20554         - OnEnabledChanged doesn't need to redraw at all - Control.cs
20555         calls Refresh in its OnEnabledChanged.
20556         
20557         - several of the events we were registered for in the ctor to
20558         redraw ourselves already include calls to Invalidate in the
20559         property setters that raise the events.  remove the extra
20560         invalidation.
20561
20562         - reformat a switch statement that was 83274658 columns wide.
20563         
20564 2006-12-05  Mike Kestner  <mkestner@novell.com>
20565
20566         * ComboBox.cs: fix a unit test regression from a TextBox
20567         SelectionLength return of -1 when there's no selection.  
20568
20569 2006-12-05  Chris Toshok  <toshok@ximian.com>
20570
20571         * Control.cs, Button.cs, ThemeGtk.cs, Form.cs, ListView.cs,
20572         ThemeWin32Classic.cs, SizeGrip.cs, ToolBar.cs: first pass at
20573         cleaning up some of the internal Control fields being used by
20574         subclasses.
20575
20576 2006-12-05  Mike Kestner  <mkestner@novell.com>
20577
20578         * ComboBox.cs: fix some Simple mode regressions.  Set Visible on the
20579         listbox after AddImplicit calls since it defaults to hidden. Add a 
20580         hack to preserve requested heights across DropDownStyle changes.
20581
20582 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
20583
20584         * PropertyGrid.cs: Hide FindFirstItem method from public API.
20585
20586 2006-12-05  Chris Toshok  <toshok@ximian.com>
20587
20588         * DataGridView.cs: fix compiler warnings.
20589
20590         * PrintControllerWithStatusDialog.cs: same.
20591
20592         * ToolBar.cs: same.
20593
20594         * FolderBrowserDialog.cs: same.
20595
20596         * Splitter.cs: same.
20597
20598         * DataGridViewComboBoxCell.cs: same.
20599
20600         * XplatUIWin32.cs: same.
20601
20602         * PictureBox.cs: same.
20603
20604         * Win32DnD.cs: same.
20605
20606         * PageSetupDialog.cs: same.
20607
20608         * FileDialog.cs: same.
20609
20610         * PrintDialog.cs: same.
20611
20612         * DataGridTextBoxColumn.cs: same.
20613
20614         * DrawTreeNodeEventArgs.cs: same (and fix corcompare)
20615
20616 2006-12-05  Chris Toshok  <toshok@ximian.com>
20617
20618         * TextBox.cs, CheckedListBox.cs, MonthCalendar.cs, Menu.cs,
20619         MainMenu.cs, ListView.cs, LabelEditTextBox.cs, ToolBar.cs: more
20620         System.ComponentModel.EventHandlerList work.
20621
20622 2006-12-05  Jonathan Chambers  <joncham@gmail.com>
20623
20624         * DrawTreeNodeEventArgs.cs: Added.
20625
20626 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
20627         
20628         * InternalWindowManager.cs: Remove an unused field.
20629         
20630 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
20631
20632         * InternalWindowManager.cs:
20633         - Save the point where the title bar is clicked.
20634         
20635         * MdiWindowManager.cs:
20636         - Only allow moving of the window as long as the 
20637         clicked point on the title bar does not get out of
20638         MdiClient's rectangle. Fixes #79982.
20639         
20640         * MdiClient.cs:
20641         - Added Horizontal/VerticalScrollbarVisible.
20642         - Simplified the scrollbar sizing algorithm.
20643         - Cache the difference in scrolled value in
20644         H/VBarValueChanged and move the calculation out
20645         of the for loop.
20646
20647 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
20648
20649         * Control.cs: Make the Console.WriteLine in WndProc 
20650         write more info.
20651
20652 2006-12-05  Chris Toshok  <toshok@ximian.com>
20653
20654         * ToolStripManager.cs, ToolStripButton.cs,
20655         ToolStripContentPanel.cs, ToolStripComboBox.cs, ToolStrip.cs,
20656         ToolStripMenuItem.cs, ToolStripItem.cs, ToolStripControlHost.cs,
20657         ToolStripSplitButton.cs, ToolStripSeparator.cs,
20658         ToolStripRenderer.cs, ToolStripDropDownItem.cs,
20659         ToolStripProgressBar.cs, ToolStripContainer.cs,
20660         ToolStripTextBox.cs, ToolStripPanel.cs, ToolStripDropDown.cs: move
20661         to using System.ComponentModel.EventHandlerList.
20662
20663 2006-12-04  Chris Toshok  <toshok@ximian.com>
20664
20665         * LinkLabel.cs: fix up compiler warnings.
20666
20667         * TableLayoutSettings.cs: same.
20668
20669         * TreeView.cs: same.
20670
20671         * ToolBar.cs: same.
20672
20673         * TabControl.cs: same.
20674
20675         * RichTextBox.cs: same.
20676
20677         * ListViewItem.cs: same.
20678
20679         * PropertyGrid.cs: same.
20680
20681         * DataGridViewRowPostPaintEventArgs.cs: corcompare fix.
20682
20683         * ToolTip.cs same.
20684
20685         * TextRenderer.cs: fix up compiler warnings.
20686
20687         * Label.cs: same.
20688
20689         * Form.cs: corcompare fixes.
20690
20691         * PictureBox.cs: fix up compiler warnings.
20692
20693         * ImageListStreamer.cs: same.
20694
20695         * TrackBar.cs: corcompare fix.
20696
20697         * Control.cs: fix up compiler warnings.
20698
20699         * SplitterPanel.cs: same.
20700
20701         * NumericTextBox.cs: same.
20702
20703         * ImageList.cs: same.
20704
20705         * StatusStrip.cs: same.
20706
20707         * ProgressBar.cs: corcompare fix.
20708
20709         * ToolStripButton.cs: fix up compiler warnings.
20710
20711         * ToolStripStatusLabel.cs: same.
20712
20713         * ToolStripSplitButton.cs: same.
20714
20715         * ToolStripSeparator.cs: same.
20716
20717         * ToolStripProgressBar.cs: same.
20718
20719         * ToolStripDropDownMenu.cs: same
20720
20721         * ToolStripDropDown.cs: same.
20722
20723         * ToolStripDropDownButton.cs: same.
20724
20725         * ToolStrip.cs: same.
20726
20727         * ToolStripControlHost.cs: same.
20728
20729         * ToolStripContentPanel.cs: same.
20730
20731         * ToolStripDropDown.cs: same.
20732
20733         * ToolStripContainer.cs: same.
20734
20735         * ToolStripPanel.cs: same, and add "new" where we need it to work
20736         with the new ArrangedElementCollection.
20737
20738         * ToolStripItemCollection.cs: add "new" where we need it to work
20739         with the new ArrangedElementCollection.
20740
20741 2006-12-04  Andreia Gaita <avidigal@novell.com>
20742
20743         * TabControl.cs: Fix default tab selection to after TabControl
20744         gets focus and not before. Fixes #80128
20745
20746 2006-12-04  Chris Toshok  <toshok@ximian.com>
20747
20748         * DataGridTableStyle.cs: remove the gross calling of
20749         datagrid.Refresh from here.  It's a broken idea and it doesn't
20750         work anyway.
20751
20752         * DataGrid.cs: instead, just register/unregister from the
20753         DataGridTableStyle events in CurrentTableStyle.  we play it
20754         conservatively and EndEdit + CalcAreasAndInvalidate on any event,
20755         even though some would most likely not require it.  Fixes bug
20756         #80115 (and one portion of #80117 as a side effect).
20757
20758 2006-12-04  Chris Toshok  <toshok@ximian.com>
20759
20760         * DataGrid.cs (set_CaptionVisible): EndEdit before doing the work
20761         so the textbox (if any) goes away.  Fixes bug #80117.
20762
20763 2006-12-04  Chris Toshok  <toshok@ximian.com>
20764
20765         * DataGridColumnStyle.cs: set the column's readonly property
20766         initially based on the property descriptor's IsReadOnly.  Fixes
20767         bug #80044.
20768
20769 2006-12-04  Chris Toshok  <toshok@ximian.com>
20770
20771         * ComboBox.cs: wrap the dropdown style changing work in
20772         SuspendLayout/ResumeLayout.  Fixes bug #79968.
20773
20774 2006-12-04  Jackson Harper  <jackson@ximian.com>
20775
20776         * TextBoxBase.cs: Fix off by one, since these are one-based.
20777         * TextBox.cs: Select all the text when we get focus.  The TextBox
20778         does this but the RTB does not.
20779
20780 2006-12-04  Chris Toshok  <toshok@ximian.com>
20781
20782         * DataGridTextBoxColumn.cs: remove some spew.
20783
20784         * DataGridColumnStyle.cs (SetColumnValueAtRow): this seems right
20785         but some part of me is saying "it shouldn't be here.."  At any
20786         rate, it fixes bug #80046.  Call IEditableObject.EndEdit after
20787         setting the value.
20788
20789 2006-12-04  Chris Toshok  <toshok@ximian.com>
20790
20791         * DataGridColumnStyle.cs (SetDataGrid): call CheckValidDataSource
20792         to reassign the propertydescriptor.
20793
20794 2006-12-04  Jackson Harper  <jackson@ximian.com>
20795
20796         * TextBoxBase.cs:
20797         * TextControl.cs: Remove some unused variables.  Maybe this will
20798         patch things up between mike and I.
20799         - don't split lines less then one char wide, if the viewport is
20800         that small text won't be visible anyways.
20801         
20802 2006-12-04  Jackson Harper  <jackson@ximian.com>
20803
20804         * TextBoxBase.cs: Default selection length is -1, need to do some
20805         more testing on windows to see when this is used for the property.
20806         - Redid the Lines [] property to that we properly remove soft line
20807         breaks
20808         - added support for preserving carriage returns
20809         -  CanUndo is not a variable like 'is undo enabled' it just returns
20810         true if there is undo operations available.
20811         - AppendText doesn't need to grab the last tag itself anymore,
20812         this happens automatically when we move the cursor.
20813         * TextControl.cs: Add CompoundActions to the undo class. This
20814         allows combining the other operations into one big option.  ie a
20815         paste will combine { delete old, insert new, move cursor }
20816         - Add InsertString undo operation
20817         - New method for deleting multiline text
20818         - Add carriage returns to lines. So we can preserve carriage
20819         returns when text is 'roundtripped'
20820
20821 2006-12-04  Chris Toshok  <toshok@ximian.com>
20822
20823         * DataGrid.cs (CalcCellsArea): cells_area.Width/Height are at a
20824         minimum 0.  Fixes the scrollbar exception in bug #80136.
20825
20826 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
20827
20828         * MdiClient.cs: 
20829         * MdiWindowManager: Removed unused fields and methods.
20830         
20831 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
20832         
20833         * StatusBar.cs: Update all panels when a AutoSize=Contents
20834         panel needs updating.
20835         
20836         * StatusBarPanel.cs: Remove twidth and only use initialize.
20837         Fixes #80031.
20838                 
20839 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
20840
20841         * Form.cs: When a form's MdiParent is set add it directly
20842         on top of the z-order in stead of relying on MdiClient's
20843         ActivateChild to do it. Fixes #80135.
20844         
20845         * MdiClient.cs: 
20846         - Remove original_order, mdi_child_list is already doing
20847         the same thing.
20848         - Create mdi_child_list on construction in
20849         stead of first use (avoids a few null checks).
20850
20851         * MenuItem.cs: Use an already existing list of mdi children
20852         to get the correct order of children and remove the other
20853         redundant list.
20854
20855 2006-12-04  Chris Toshok  <toshok@ximian.com>
20856
20857         * PropertyGridView.cs: cached_splitter_location is only used in
20858         !DOUBLEBUFFER code.
20859
20860         * PropertyGrid.cs: implement the ComComponentNameChanged event
20861         using Events, hoping that would fix the warning.  Looks like a
20862         compiler bug instead (#80144).
20863
20864         * PropertyManager.cs: remove unused method.
20865
20866 2006-11-04  Everaldo Canuto  <everaldo@simios.org>
20867
20868         * ThemeWin32Classic.cs: Dont draw arrow when menuitem on menubar, 
20869         include parentesis to fix expression evaluation. Fixes #79634.
20870
20871 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
20872         
20873         * MenuAPI.cs:
20874         - Changes to fix behavior in Menu control, some reported in #80097
20875         and other detected during behavior refactory like a select event
20876         problems.
20877         - Remove unneded "if's" conditions.
20878         - Created an internal to flag when popup is active in control, we need 
20879         it because in .NET you can have menu active but without popup active
20880         when you active menu using popup without visible items.
20881         - Mimic win32 behavior for Select and Popup events.  
20882         - Dont open popup menu when you dont have visible subitems.
20883         - Do nothing when click on disabled menu item.
20884         - Some small changes to follow the coding style guidelines.
20885         - Unselect menu only when another control gives focus. Fixes #80097.
20886         - Remove unused code.
20887         
20888         * MenuItem.cs: internal VisibleItems method to check if menu
20889         theres visible subitems, it will be usefull to fix some 
20890         behavior in Menu control.
20891         
20892 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
20893         
20894         * Timer.cs: Tag property for 2.0 profile.
20895         
20896 2006-12-01  Chris Toshok  <toshok@ximian.com>
20897
20898         [ after removing all warning suppressions, this cleans up over 100 warnings. ]
20899         
20900         * Win32DnD.cs: comment out some unused fields.
20901
20902         * XplatUIWin32.cs: comment out some unused pinvokes, and remove
20903         some unused properties/methods.
20904
20905         * XplatUIX11.cs: fix MousePosition so we override the base class's
20906         property instead of conflicting with it.
20907
20908         * PictureBox.cs: comment out some unused fields
20909
20910         * OSXStructs.cs: make some struct fields public.
20911
20912         * XplatUIOSX.cs: comment out some unused pinvokes, and fix
20913         MousePosition so we override the base class's property instead of
20914         conflicting with it.
20915
20916         * X11Dnd.cs: comment out some unused fields
20917
20918         * X11DesktopColors.cs: fix some struct field visibility to quiet
20919         the compiler.
20920
20921         * X11Dnd.cs: remove some debug code.
20922
20923         * ThemeClearlooks.cs: comment out unused field.
20924
20925         * ThemeNice.cs: mark some methods as overriding ThemeWin32Classic as needed.
20926
20927         * ThemeGtk.cs: comment out some unused pinvokes.
20928
20929         * Timer.cs: remove some unused fields.
20930
20931         * ThemeClearlooks.cs: comment out unused field.
20932
20933         * UpDownBase.cs: comment out unused field.
20934
20935         * DataObject.cs: comment out unused field.
20936
20937         * DataGridBoolColumn.cs: reomve unused field.
20938
20939         * DataGrid.cs: remove unused field.
20940
20941         * Cursor.cs: remove old ToBitmap code.
20942
20943         * ControlPaint.cs: remove unused method.
20944
20945         * ScrollBar.cs: remove unused fields.
20946
20947         * ComboBox.cs: remove unused field, and chain up to
20948         AccessibleObject ctor.
20949
20950         * ListBox.cs: remove unused field.
20951
20952         * ButtonBase.cs: wrap a couple fields in NET_2_0.
20953
20954         * GridEntry.cs: remove unused fields.
20955
20956         * Binding.cs: remove unused fields.
20957
20958         * AxHost.cs: remove unused method.
20959
20960         * ContainerControl.cs: remove unused field.
20961
20962         * ScrollableControl.cs: remove unused fields.
20963
20964 2006-12-01  Chris Toshok  <toshok@ximian.com>
20965
20966         * XplatUI.cs, XplatUIWin32.cs, XplatUIGTK.cs: nuke
20967         the Where/WhereString stuff.  it's easy enough to CWL
20968         Environment.StackTrace.
20969
20970         * XplatUIX11.cs: same, but also fix up a lot of mcs warnings about
20971         unused private fields.
20972
20973 2006-12-01  Jackson Harper  <jackson@ximian.com>
20974
20975         * TextControl.cs: Do not update the view while inserting multiline
20976         text. If we update the view we might wrap lines, before entering
20977         the new lines, which causes the new line insertion calculations to
20978         be totally fubared.
20979         - Remove an old TODO
20980         - Make debug output a little nicer
20981         
20982 2006-12-01  Chris Toshok  <toshok@ximian.com>
20983
20984         * ToolBar.cs: revert the ImeMode fix here and add an XXX comment.
20985
20986 2006-12-01  Chris Toshok  <toshok@ximian.com>
20987
20988         [ fix the majority of the CS0108 warnings we've been suppressing ]
20989         
20990         * TreeView.cs: mark BackgroundImageChanged as 'new'.
20991
20992         * ToolBar.cs: ImeMode just passes stuff to Control.  Rename Layout
20993         to "LayoutToolBar" to quiet mcs.
20994         
20995         * TabControl.cs: mark our ControlCollection class as 'new'.
20996
20997         * TextBoxBase.cs: mark some events as 'new'.
20998
20999         * Splitter.cs: TabStop is 'new'.
21000
21001         * ControlBindingsCollection.cs: mark a few methods as new since
21002         they change the visibility from protected to public.
21003
21004         * RadioButton.cs: DoubleClick -> base class, and remove unused
21005         HaveDoubleClick.
21006
21007         * MonthCalendar.cs: ImeMode property -> base class, and mark many
21008         events as new.
21009
21010         * NumericUpDown.cs: TextChanged -> base class.
21011
21012         * CheckedListBox.cs: mark our ObjectCollection class as new to
21013         quiet mcs.
21014
21015         * FolderBrowserDialog.cs: make HelpRequest event new and have it
21016         muck with the base class.
21017
21018         * StatusBar.cs: fix some mcs warnings about Update being the same
21019         name as a base class method.
21020
21021         * RichTextBox.cs: mark some events as new, and make them do things
21022         to the base class impl.
21023
21024         * UserControl.cs: mark TextChanged as new, and have it manipulate
21025         base.TextChanged.
21026
21027         * UpDownBase.cs: mark some things new.
21028
21029         * CheckBox.cs: mark DoubleClick "new", and add some text about
21030         what we need to look at.
21031
21032         * Panel.cs: make the events "new", and manipulate the base
21033         version.  these are just here for attributes.
21034
21035         * AccessibleObject.cs: make owner private.
21036
21037         * Control.cs: deal with AccessibleObject.owner being private.
21038         cache our own copy if we need it.
21039
21040         * Button.cs: add "new" to the DoubleClickEvent.
21041
21042         * ListBox.cs: no need to track our own has_focus here.  let
21043         Control.has_focus do it for us.  Also some other work to clear up
21044         warnings about not overriding base class methods of the same name.
21045         
21046         * ComboBox.cs: clear up some warnings about not override base
21047         class methods of the same name.
21048
21049 2006-12-01  Chris Toshok  <toshok@ximian.com>
21050
21051         * Form.cs: flag a few things as "new" to quiet some of the mcs
21052         warnings.
21053
21054         * AxHost.cs: same.
21055
21056         * PrintPreviewDialog.cs: same.
21057
21058         * DataGridView.cs: fix a ton of corcompare warnings.  not all, but
21059         now DGV isn't so horrible on the class status page.  also, move
21060         all events to using System.ComponentModel.EventHandlerList.  my
21061         wrists hurt.
21062
21063 2006-12-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
21064
21065         * MdiWindowManager.cs:
21066         - Set form to active mdi child if shown,
21067         and update the active mdi child to the next 
21068         remaining child in the z-order if the form is hidden.
21069
21070         * Form.cs: 
21071         - Track if the form has been visible and if its 
21072         visibility is beeing changed, so that the MdiClient
21073         can properly decide the ActiveMdiChild. The MdiClient 
21074         cannot track this since the form can change visibility 
21075         before MdiClient is created.
21076
21077         * MdiClient.cs:
21078         - Don't activate anything of the parent form is changing
21079         its visibility.
21080         - Rework ActiveMdiChild to only return visible mdi 
21081         children and take into account several other corner 
21082         cases.
21083
21084 2006-12-01  Chris Toshok  <toshok@ximian.com>
21085
21086         * IBindableComponent.cs: new 2.0 interface.
21087
21088 2006-12-01  Gert Driesen  <drieseng@users.sourceforge.net>
21089
21090         * DataGrid.cs: Font for caption area is bold by default.
21091
21092 2006-12-01  Everaldo Canuto  <everaldo@simios.org>
21093
21094         * Menu.cs: Tag property for 2.0.
21095         
21096 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
21097
21098         * ThemeWin32Classic.cs: Adjust menu separator drawing. 
21099         
21100 2006-12-01  Chris Toshok  <toshok@ximian.com>
21101
21102         * TreeView.cs: doh, the Begin* events should be
21103         TreeViewCancelEventHandler.
21104
21105 2006-12-01  Chris Toshok  <toshok@ximian.com>
21106
21107         * Form.cs: Form.ControlCollection already stores off the
21108         form_owner field.  don't access the base class's internal "owner"
21109         field.
21110
21111         * Control.cs: make all the fields in Control.ControlCollection
21112         private.  there's no need for any internal fields here.
21113
21114 2006-12-01  Chris Toshok  <toshok@ximian.com>
21115
21116         * DataGrid.cs: call SetDataSource instead of CalcGridAreas in
21117         OnHandleCreated.  Fixes bug #80109.
21118
21119 2006-12-01  Chris Toshok  <toshok@ximian.com>
21120
21121         * Button.cs, PropertyGridTextBox.cs, ComboBox.cs,
21122         SplitContainer.cs, Control.cs, StatusStrip.cs,
21123         DataGridTableStyle.cs, MenuItem.cs, DomainUpDown.cs, ImageList.cs,
21124         NumericTextBox.cs, NumericUpDown.cs, Panel.cs, CommonDialog.cs,
21125         DataGrid.cs, ScrollBar.cs, TrackBar.cs, PictureBox.cs,
21126         DateTimePicker.cs, StatusBar.cs, Form.cs, PrintPreviewDialog.cs,
21127         Label.cs, UserControl.cs, CheckBox.cs, RadioButton.cs,
21128         LinkLabel.cs, ListControl.cs, PropertyGrid.cs, Splitter.cs,
21129         MenuStrip.cs, FolderBrowserDialog.cs, NotifyIcon.cs,
21130         TextBoxBase.cs, ListView.cs, DataGridBoolColumn.cs,
21131         PrintPreviewControl.cs, RichTextBox.cs, ListBox.cs, TabControl.cs,
21132         DataGridColumnStyle.cs, ContextMenu.cs, TreeView.cs:
21133
21134         do most of the work to convert our code over to use
21135         System.ComponentModel.Component.Events for
21136         adding/removing/dispatching events.
21137
21138
21139 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
21140
21141         * DataGridView.cs: Fix an ArgumentNullException reported 
21142         twice today in IRC.
21143
21144 2006-11-30  Mike Kestner  <mkestner@novell.com>
21145
21146         * ComboBox.cs: fix the scrollbar mouse event forwarding in the 
21147         grabbed listbox.  Fixes #80036 and #80101.
21148
21149 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
21150
21151         * Message.cs: Changed ToString() to match MS.
21152         
21153 2006-11-30  Jackson Harper  <jackson@ximian.com>
21154
21155         * TextBoxBase.cs: You can still change the selected text on a read
21156         only textbox.
21157         * TextControl.cs: Lower magic number for wrap calculations. This
21158         lets text get closer to the right (far) edge.
21159
21160 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
21161
21162         * Control.cs: Tweak 2.0 layout properties.
21163         * Form.cs: Switch ToolStripMenuTracker hooks to ToolStripManager.
21164         * TextRenderer.cs: Add a new overload.
21165         * ToolStrip*: Huge amount of changes and new features.
21166
21167 2006-11-30  Mike Kestner  <mkestner@novell.com>
21168
21169         * ComboBox.cs: fixes for LargeChange and Maximum to get the 
21170         scroll range correct.  Fixes #79994.
21171
21172 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
21173
21174         * MdiWindowManager.cs: Update main form's text when
21175         a form is closed. (fixes #80038)
21176         
21177 2006-11-30  Everaldo Canuto  <everaldo@simios.org>
21178
21179         * ToolBar.cs:
21180         - Fix an regression in ButtonSize.
21181         - Get ImeMode default value change to "Disable".
21182         - Get ShowTooltips default value change to true, default value is 
21183         "false" but after make a test in .NET we get "true" result as default.
21184         
21185 2006-11-29  Jonathan Pobst  <monkey@jpobst.com>
21186
21187         * ToolStripDropDown.cs: Fix for SupportsTransparency change.
21188
21189 2006-11-29  Chris Toshok  <toshok@ximian.com>
21190
21191         * XplatUIWin32.cs (GetWindowTransparency): check return value of
21192         GetLayeredWindowAttributes.  if it's 0, return 1.0, as
21193         SetWindowTransparency hasn't been called.
21194
21195 2006-11-29  Chris Toshok  <toshok@ximian.com>
21196
21197         * Form.cs (set_TransparencyKey): only call SetWindowTransparency
21198         if it's supported.
21199         (set_AllowTransparency): reorder things a little so that the
21200         WS_EX_LAYERED style is removed properly.
21201
21202 2006-11-29  Chris Toshok  <toshok@ximian.com>
21203
21204         [ totally cosmetic eye-candy feature, fixes bug #80089 ]
21205         
21206         * Form.cs: only call the XplatUI transparency method (get/set) if
21207         SupportsTransparency says it's supported. Otherwise fallback to
21208         doing nothing (in the set case) or returning the instance field we
21209         cache (in the get case).
21210
21211         * XplatUIStructs.cs: add TransparencySupport flag enum.
21212         
21213         * XplatUIDriver.cs: add abstract GetWindowTransparency, and track
21214         change to SupportsTransparency.
21215
21216         * XplatUIOSX.cs: stub out GetWindowTransparency, and return
21217         TransparencySupport.None from SupportsTransparency.
21218
21219         * XplatUIX11.cs: Stub out GetWindowTransparency, and return
21220         TransparencySupport.Set from SupportsTransparency.
21221
21222         * XplatUIWin32.cs: implement GetWindowTransparency calling
21223         GetLayeredWindowAttributes, and implement SupportsTransparency by
21224         checking whether or not both
21225         GetWindowTransparency/SetWindowTransparency are available
21226         entrypoints.  We need to do this since SetWindowTransparency is
21227         available as of win2k, but GetWindowTransparency requires winxp.
21228         yay win32 api.
21229
21230         * XplatUI.cs: Add GetWindowTransparency, and change
21231         SupportsTransparency to allow for either/both Get/Set.
21232
21233 2006-11-29  Chris Toshok  <toshok@ximian.com>
21234
21235         * DataGrid.cs: keep from going into an infinite loop redrawing a
21236         datagrid that has no datasource.  Fixes bug #80033.
21237
21238 2006-11-29  Chris Toshok  <toshok@ximian.com>
21239
21240         * MenuItem.cs: fix the NRE when we assign text (and therefore call
21241         Invalidate) before the mainmenu has been assigned to a control.
21242
21243 2006-11-29  Chris Toshok  <toshok@ximian.com>
21244
21245         * DataGrid.cs: detect when we should be double the double click
21246         row/column autosize stuff, although that codepath has yet to be
21247         written.  part of the work for bug #79891.
21248
21249 2006-11-29  Chris Toshok  <toshok@ximian.com>
21250
21251         * Binding.cs (SetControl): fix unit test.
21252
21253 2006-11-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
21254
21255         * PageSetupDialog.cs: Validate the margins and set them in
21256         PageSettings. 
21257         * NumericTextBox.cs: New class to mimic the behavior of the
21258         textboxes used in the printing dialogs.
21259
21260 2006-11-29  Andreia Gaita  <avidigal@novell.com>
21261         
21262         * Form.cs: Revert previous change (remove call UpdateBounds
21263         from form constructor), because it messes with the handle creation
21264         order, and that one needs lots and lots of love.
21265         * PrintPreviewDialog.cs: Revert change to CreateHandle (add check
21266         for valid printer and throw InvalidPrinterException if document
21267         is set but printer not valid), adding a MonoTODO. Once 
21268         handle creation is done properly, we can put this back in.
21269
21270 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
21271
21272         * MenuItem.cs: Create a invalidate method for menu item, to be
21273         calling from set text, it make text changes to imadiate update
21274         on screen. Fixes #80013. 
21275         
21276 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
21277
21278         * ToolBar.cs: Fixes and simplify toolbar button layout, it 
21279         fixes bug #80070 and some other problem on toolbar buttons
21280         layout.
21281
21282 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
21283
21284         * ThemeWin32Classic.cs: Paint toolbar toggle button background 
21285         with dotted brush.      Fixes #79564
21286         
21287 2006-11-28  Andreia Gaita  <avidigal@novell.com>
21288
21289         * Form.cs: Removed call to UpdateBounds on Form
21290         constructor, it was causing a call to CreateHandle
21291         before it was supposed to.
21292         * PrintControllerWithStatusDialog: Applied patch
21293         by Chris Toshok to hide controller when there are
21294         no printers available.
21295         PrintDialog.cs: initialize printer settings to 
21296         null - correct DefaultValues test #5
21297         * PrintPreviewControl.cs: Move PrintController
21298         initialization to GeneratePreview
21299         * PrintPreviewDialog.cs: 
21300         - Remove Preview generation     from Document_set(). It is 
21301         called on OnPaint
21302         - Throw InvalidPrinterException on CreateHandle if
21303         a Document is set but there are no printers or 
21304         printer is not valid.
21305         * ThemeWin32Classic: don't paint PrintPreviewControl
21306         if there is nothing to paint    
21307
21308 2006-11-28  Miguel de Icaza  <miguel@novell.com>
21309
21310         * Form.cs: Add another popular method.
21311
21312         * TabPage.cs: ditto.
21313
21314 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
21315
21316         * MenuItem.cs: Fixed a warning.
21317         * InternalWindowManager: Fixed a warning.
21318
21319 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
21320
21321         * MenuItem.cs:
21322         - When cloning a menu also clone MdiList and clone the 
21323           window menu items properly (as the forms and menuitems
21324           are kept in an internal hashtable, these need updating 
21325           as well)
21326         - Rewrote the window menu code, menu items are added in the
21327           order the forms were added to their parent, and they are
21328           updated every time the window menu is shown (before the
21329           list was only generated once, in the current order of the
21330           forms, and would never be updated). A checkmark is shown
21331           next to the item corresponding to the active mdi child.
21332
21333 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
21334
21335         * XplatUIStructs.cs: 
21336         - Added WM_NCMOUSEHOVER and WM_NCMOUSELEAVE.
21337         
21338         * XplatUIWin32.cs: 
21339         - Added TME_NONCLIENT to TMEFlags.
21340         - Handles WM_NCMOUSEMOVE in GetMessage to 
21341           generate WM_NCMOUSEHOVER and WM_NCMOUSELEAVE messages.
21342
21343         * MdiWindowManager:
21344         - Now merges mdi child menu to parent menu when maximized.
21345         - Recalculate NC areas of both mdi child and mdi parent. 
21346           Fixes #79757 (4).
21347           on window state and size changes.Fixes #79844 (3).
21348         - Handle WM_NCCALCSIZE to properly calculate borders.
21349
21350         * Form.cs:
21351         - Add/remove to the mdi containers list of mdi children 
21352           in the order they are added.
21353         - Pass on WM_NCLBUTTONUP, WM_NCMOUSEMOVE and WM_NCMOUSELEAVE 
21354           to the maximized mdi child.
21355         
21356         * InternalWindowManager.cs:
21357         - Only execute a click on the control buttons on the mouse up,
21358           not on the mouse down. Show the state of the button 
21359           (was only showing Normal state, never Pressed state). The
21360           pressed button now follows the mouse (if you click the Close 
21361           button and move the mouse over the Maximize button, the 
21362           Maximize button will be shown as pressed). Since Win32 does
21363           not generate WM_NCLBUTTONUP if you release the button outside
21364           of the nc area, we need to handle WM_NCMOUSELEAVE and treat
21365           it as a mouse up.
21366         
21367         * ThemeWin32Classic.cs:
21368         - Draw a missing border around mdi child forms. Fixes #79844 (2).
21369
21370         * MdiClient.cs:
21371         - Added a list of forms which contains the order the forms are
21372           added to the mdi parent.
21373         - Handle WM_NCPAINT to properly draw a 3D border. Fixes #79844 (2).
21374         - Handle WM_NCCALCSIZE to properly calculate the 3D border.
21375         - If the active form changes set the scrollbars to the top
21376           of the Z order, otherwise the form could hide them.
21377         - Scrollbars are now sized according to ClientSize, not 
21378           to Size, and they take into account the other scrollbar
21379           to determine maximum.
21380         
21381 2006-11-28  Rolf Bjarne Kvinge <RKvinge@novell.com>
21382         
21383         * XplatUI.cs:
21384         * XplatUIDriver.cs:
21385         * XplatUIX11.cs:
21386         * XplatUIWin32.cs:
21387         * XplatUIOSX.cs:
21388         - Added RequestAdditionalWM_NCMessages for windows to 
21389           opt in for WM_NCMOUSELEAVE and WM_NCMOUSEHOVER.
21390           Currently only implemented in XplatUIWin32.
21391
21392 2006-11-27  Chris Toshok  <toshok@ximian.com>
21393
21394         * Hwnd.cs: only add the hwnd to the windows hash in
21395         set_WholeWindow and set_ClientWindow if whole_window/client_window
21396         are not IntPtr.Zero.  also, remove the unused SetObjectWindow.
21397
21398 2006-11-27  Mike Kestner  <mkestner@novell.com>
21399
21400         * ComboBox.cs: remove redundant OnDropDown call.  It is called
21401         from the ComboListBox.ShowWindow code. Fixes #79969.
21402
21403 2006-11-27  Chris Toshok  <toshok@ximian.com>
21404
21405         * Hwnd.cs: remove the setters for ExposePending and
21406         NCExposePending - noone uses them.
21407
21408 2006-11-27  Jackson Harper  <jackson@ximian.com>
21409
21410         * TextControl.cs: new param for ReplaceSelection which determines
21411         whether we select the new selection, or set the cursor to the end
21412         of the new selection.
21413         * TextBoxBase.cs: Use new param for ReplaceSelection.  When
21414         pasting, select the new text.
21415         * RichTextBox.cs: Use new param for ReplaceSelection.
21416
21417 2006-11-27  Jackson Harper  <jackson@ximian.com>
21418
21419         * TextBoxBase.cs: Set the selection to the caret after the caret
21420         is moved, otherwise they get out of sync.
21421
21422 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
21423
21424         * ToolBar.cs: Fixe size of ToolBar when AutoSize is false,
21425         it fixes #80015
21426
21427 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
21428
21429         * ThemeWin32Classic.cs: 
21430         - Fix toolbar drop down arrow position.
21431         - Fix drop down appearance when ToolBar.Appearance is normal,
21432         it fixes #80018.
21433         
21434 2006-11-26  Gert Driesen  <drieseng@users.sourceforge.net>
21435
21436         * ProgressBar.cs: GetStyle fixes for 2.0 profile.
21437         * Control.cs: Same.
21438         * UpDownBase.cs: Same.
21439         * ButtonBase.cs: Same.
21440         * ScrollBar.cs: Same.
21441         * TrackBar.cs: Same.
21442         * PictureBox.cs: Same.
21443         * UserControl.cs: Same.
21444         * Label.cs: Same.
21445         * ListControl.cs: Same.
21446         * TextBoxBase.cs: Same.
21447         * ListView.cs: Same.
21448         * RichTextBox.cs: Same.
21449         * TreeView.cs: Same.
21450
21451 2006-11-25  Jordi Mas i Hernandez <jordimash@gmail.com>
21452
21453         * PrintDialog.cs:
21454         - Text label for where 
21455         - Text label comment was not shown
21456
21457 2006-11-23  Everaldo Canuto  <everaldo@simios.org>
21458
21459         * ThemeWin32Classic.cs: Fix toolbar drop down arrow size.
21460
21461 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
21462
21463         * InternalWindowManager.cs: 
21464         - Handle WM_PARENTNOTIFY to activate the form
21465         if any child control is clicked.
21466         - The form is only sizable if not minimized.
21467
21468         * MdiWindowManager.cs:
21469         - Save the IconicBounds if the form is moved.
21470         - Rework SetWindowState, now the window bounds 
21471         are stored only if the old window state is Normal.
21472         
21473         * MdiClient.cs:
21474         - In SetWindowStates store the old window state if 
21475         the window is maximized and restore window state if
21476         the window looses focus.
21477         - Don't handle any scrollbar value changes if 
21478         initializing the scroll bars. Fixes #79771.
21479         - Reworked ArrangeIconicWindows. Current algorithm
21480         tests bounds agains all other minimized windows, if
21481         any intersections create new bounds (going left to 
21482         right, bottom to top) and then test again. When 
21483         successful the bounds are saved and never computed
21484         again. Fixes #79774.
21485
21486 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
21487
21488         * InternalWindowManager.cs: Added HandleTitleBarUp.
21489
21490 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
21491
21492         * NumericUpDown.cs: In .NET 1.1, user entered text is still
21493         hexadecimal in ParseUserEdit.
21494
21495         
21496 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
21497
21498         * MdiWindowManager.cs: 
21499         - Handle a click on the form's icon to show the 
21500         system menu (when maximized). Fixes #79775.
21501         - Change the existing click handler for the form's
21502         icon when not maximized to show on MouseUp.
21503         Fixes #79776.
21504
21505         * Form.cs: In OnResize only layout the mdi child's
21506         parent if it actually has a parent. Might not if
21507         the window is closing.
21508
21509
21510 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
21511
21512         * MdiClient.cs: Ignore active MDI client for text of parent, if
21513         child has no text set.
21514
21515 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
21516
21517         * ToolBar.cs: Fixed ToString to match MS.
21518
21519 2006-11-22  Andreia Gaita  <avidigal@novell.com>
21520
21521         * NumericUpDown: 
21522         - Fix DecimalPlaces, Hexadecimal and ThousandsSeparator to 
21523         update inner values on set. Fixes #79966.
21524         - Override OnLostFocus to update value on NET 2. Fixes #79950.
21525         - Fix hexadecimal parsing.
21526         
21527         * UpDownBase: Override OnGotFocus and OnLostFocus to notify 
21528         parent. Fixes #79957
21529
21530 2006-11-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
21531
21532         * Control.cs: After calling SetWindowsPos in SetBoundsCore 
21533         the actual size has to be queried, since if height /
21534         width is negative Win32 changes it to 0. 
21535         Fixes #79999 on Windows.
21536         
21537         * XplatUIX11.cs: Set height / width to 0 if negative
21538         in SetWindowPos. Fixes #79999 on Linux.
21539         
21540 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
21541
21542         * ThemeWin32Classic.cs: Fix text redenring when button is
21543         pressed.
21544
21545 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
21546
21547         * MenuAPI.cs: Fixes behavior when menu is opened by kerboard
21548         and later navigate by mouse. Fixes #79528.
21549
21550 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
21551
21552         * ToolBar.cs: Set default value for TabStop to false in
21553         constructor, it fixes remaining behavior of bug #79863.
21554
21555 2006-11-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
21556
21557         * MdiWindowManager.cs:
21558         * InternalWindowManager.cs:
21559         - Moved a few methods specific to Mdi from 
21560         InternalWindowManager to MdiWindowManager.
21561         Fixes #79996.
21562         
21563 2006-11-21  Chris Toshok  <toshok@ximian.com>
21564
21565         * XplatUIOSX.cs: stub out InvalidateNC.
21566
21567         * XplatUIWin32.cs: implement InvalidateNC using the call I found
21568         at http://www.dotnet247.com/247reference/msgs/58/292037.aspx.
21569
21570         * XplatUIX11.cs: rename InvalidateWholeWindow to InvalidateNC.
21571
21572         * XplatUIDriver.cs: add InvalidateNC abstract method.
21573
21574         * XplatUI.cs: add InvalidateNC.
21575
21576 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
21577
21578         * ToolBar.cs: Invalidate complete button area when pressed status 
21579         was changed.
21580         * ToolButton.cs: Fix InvalidateBorder for DropDown buttons.
21581         * ThemeWin32Classic.cs: Increase vertical and horizontal position 
21582         by 1 when button is pressed.
21583
21584 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
21585
21586         * ToolButton.cs: Invalidate middle of DropDown button when
21587         ToolBar theres DropDownArrows.
21588         * ThemeWin32Classic.cs: Change position of DropDown arrow and
21589         fix DropDown drawing operations.
21590
21591 2006-11-20  Chris Toshok  <toshok@ximian.com>
21592
21593         * NativeWindow.cs: fix the formatting of functions ('{' on the
21594         following line), and enable the thread exception dialog.
21595
21596         * Application.cs: remove the duplicate exception catching from
21597         here.
21598
21599 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
21600
21601         * Toolbar.cs: Triggers button click event when click on icon
21602         of dropdown ToolBarButton. Fixes #79912.
21603         
21604 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
21605
21606         * Theme.cs:
21607         * ThemeWin32Classic.cs:
21608         - Added a property WindowBorderFont to enable themeing
21609           of mdi child windows' Text.
21610           
21611 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
21612
21613         * InternalWindowManager.cs:
21614         * Form.cs:
21615         * MdiClient.cs:
21616         * MdiWindowManager.cs: 
21617         - If mdi child is maximized, set mdi parent's
21618           text to "Parent - [Child]". Fixes #79770.
21619         - If there is any maximized mdi child windows, only the active 
21620           window (and any new windows) is maximized, the rest are normal.
21621         - On a WindowState change only save mdi child's window bounds 
21622           if the old window state was normal. Fixes #79774.
21623         - The scroll bars are now calculated on hopefully all
21624           necessary events. Fixed #79771 / #79844->6 / #79906.
21625         - MdiClient.SizeScrollBars() now takes into account docked 
21626           controls in the parent when calculating available space.
21627         - InternalWindowManager now always repaints the entire title
21628           area. Fixes #79844->1/4/5.
21629         - Added RequestNCRecalc on mdi child windowstate changes.
21630           Fixes #79772.
21631
21632 2006-11-20  Mike Kestner  <mkestner@novell.com>
21633
21634         * ComboBox.cs: setup LargeChange on the scrollbar. Invoke FireMouseUp
21635         in the MouseUp handler of the listbox and move the return handling
21636         code to FireMouseUp to avoid scrolling on ups.  Fixes #79952.
21637
21638 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
21639
21640         * Toolbar.cs: Ignore right mouse clicks in toolbar. Fixes #79855. 
21641
21642 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
21643
21644         * MimeIcon.cs: Seems that DllImports that were fine in 1.2 are not
21645           working in 1.2.x anymore. So, updated.
21646
21647 2006-11-19  Gert Driesen  <drieseng@users.sourceforge.net>
21648
21649         * NumericUpDown.cs: Use NegativeSign, NumberDecimalSeparator and
21650         NumberGroupSeparator of current culture instead of assuming en-US.
21651         Fixed bug #79967.
21652
21653 2006-11-17  Mike Kestner  <mkestner@novell.com>
21654
21655         * Control.cs: Add the concept of implicit bounds setting so that
21656         dock/undock round trips preserve explicitly set size/locations.
21657         Fixes #79313.
21658
21659 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
21660
21661         * FileDialog.cs: Trim all filters, otherwise DirInfo.GetFiles
21662           can't handle those filters. (Fixes bug #79961)
21663
21664 2006-11-17  Chris Toshok  <toshok@ximian.com>
21665
21666         [ fixes the exit/crashes associated with #79835.  it's clearly
21667         suboptimal though, we need to figure out a better way to solve
21668         this. ]
21669         
21670         * PrintPreviewControl.cs: deal with the new invalid printer
21671         exceptions.
21672
21673         * PageSetupDialog.cs: if the printer is invalid, pop up a dialog
21674         and return false (so CommonDialog.ShowDialog doesn't actually show
21675         the form.)
21676
21677         * PrintDialog.cs: enable/disable the Ok button depending on
21678         whether or not the printer is valid.
21679
21680         * CommonDialog.cs (ShowDialog): only actually show the form if
21681         RunDialog returns true.
21682
21683 2006-11-17  Jackson Harper  <jackson@ximian.com>
21684
21685         * TextControl.cs: When soft splitting a line, mark it as a soft
21686         split line. Also carry over the current line break to the next
21687         line.
21688
21689 2006-11-17  Chris Toshok  <toshok@ximian.com>
21690
21691         * XplatUIX11.cs: when scrolling a window with an invalid area, we
21692         only want to shift the part of the invalid area that overlaps the
21693         area we're scrolling.  we also don't want to clear the invalid
21694         area unless the invalid area was entirely contained within the
21695         scrolling area.
21696
21697 2006-11-16  Chris Toshok  <toshok@ximian.com>
21698
21699         * XplatUIX11.cs: remove the handling of the TimerEvent stuff, and
21700         also make sure to free the memory returned by XGetWindowProperty
21701         in GetText().
21702
21703         * X11Structs.cs: remove the TimerEvent stuff, it's unused.
21704
21705 2006-11-16  Chris Toshok  <toshok@ximian.com>
21706
21707         * XplatUI.cs: add a new super secret way to get at the totally
21708         unsupported X11 backend.
21709
21710 2006-11-16  Gert Driesen  <drieseng@users.sourceforge.net>
21711
21712         * NumericUpDown.cs: Allow lowercase letters when in hex-mode.
21713
21714 2006-11-16  Jackson Harper  <jackson@ximian.com>
21715
21716         * TreeView.cs: Allow more explicit setting of top node position
21717         for scrollbars. Slower algo, but more accurate.
21718         - CollapseAll should maintain the current top node.
21719         * TextBoxBase.cs: When positioning the caret, use the line, pos
21720         method, since the x, y method does not grab the correct tag, and
21721         the caret height never gets set correctly. (Maybe I should just do
21722         away with the caret having its own height, and always use the
21723         carets current tag for height).
21724
21725 2006-11-16  Jonathan Pobst  <monkey@jpobst.com
21726
21727         [Fixes 79778, 79923]
21728
21729         * XplatUIWin32.cs: Don't allow a parent to be set to IntPtr.Zero.
21730         Parent to the FosterParent instead.
21731
21732 2006-11-16  Jackson Harper  <jackson@ximian.com>
21733
21734         * TreeView.cs: Need to recalc the topnode when we expand or
21735         collapse. The scrolling methods can't handle this on their own,
21736         since they use differences between the last scroll position, and
21737         those difference get completely messed up since we are expanding
21738         nodes.  This problem should probably be fixed in the scrolling
21739         methods, so they can figure out exactly where they are, but this
21740         will slow things down a little.
21741         * ThemeWin32Classic.cs: Special case for groupboxes with empty
21742         strings, makes nunit-gui look a lot nicer.
21743
21744 2006-11-16  Chris Toshok  <toshok@ximian.com>
21745
21746         * XplatUIX11.cs: nasty, nasty, nasty changes required because of
21747         the broken multithreaded event handling we have in here.  File
21748         this entry under "Why we should move to the new X11 backend".
21749
21750         Any thread can make it into UpdateMessageQueue, which gets events
21751         from the X socket - some of which could belong to hwnds being
21752         managed by a different thread.  We can also have multiple threads
21753         in UpdateMessageQueue at the same time, with each one reading from
21754         the X socket.  This leads to many problems, with the following
21755         solutions:
21756
21757         We can't use hwnd.Queue.Enqueue anywhere in here and must use
21758         EnqueueLocked.
21759
21760         The MotionNotify compression we do can't work across threads
21761         (without locking the entire queue, perhaps) since we call
21762         hwnd.Queue.Peek, so we just punt and don't compress motion events
21763         unless the owning thread is the one which got the X event.
21764
21765         ConfigureNotify is another fun one, since it modifies the hwnd's
21766         bounds and then enqueues the event.  We add a lock to Hwnd which
21767         is held when setting configure_pending to true (and enqueuing the
21768         event).
21769
21770         There is a race wrt the wake socket.  we need to make sure that
21771         only 1 thread is waiting on that socket, or else a thread could
21772         sleep waiting for data that never comes.  It's difficult (but not
21773         impossible) to make happen, because it seems to require something
21774         like the following:
21775
21776             1. Thread 1 polls on wake_receive
21777         
21778             2. poll returns saying there's data to be read on
21779                wake_receive.
21780         
21781             3. Thread 2 polls on wake_receive and immediately returns
21782                saying there's data to be read.
21783
21784             4. Thread 2 reads the wakeup byte from wake_receive
21785
21786             5. Thread 1 attempts to read the wakeup byte from
21787                wake_receive.
21788
21789             6. Thread 2 exits (due to a form closing, perhaps).
21790
21791             7. Thread 1 blocks forever.
21792         
21793         Fun, eh?
21794
21795         Fixing the Expose handling isn't done yet, and the races inherent
21796         in that piece of code are responsible for the drawing mistakes you
21797         see when generating expose events in a MT app (like NPlot).  This
21798         one is the likely to be the hardest to bandaid, and it doesn't
21799         appear to cause anything but drawing problems.  The other issues
21800         caused apps to exit or hang.
21801
21802         * XEventQueue.cs: output some spew when Dequeue/Enqueue/Peek are
21803         called from a different thread than the one that should be calling
21804         these functions.
21805
21806         * Hwnd.cs: add some locks to be used by the XplatUIX11 code.
21807
21808 2006-11-15  Chris Toshok  <toshok@ximian.com>
21809
21810         * Application.cs: null out the context's MainForm when we exit
21811         RunLoop.  Fixes a newly checked in unit test as well as the last
21812         ODE from bug #79933.
21813
21814 2006-11-15  Chris Toshok  <toshok@ximian.com>
21815
21816         * Form.cs (set_Owner): allow a null value so we can clear the
21817         form's owner.
21818         (Dispose): set all our owned_form's Owner properties to null, and
21819         clear the owned_forms collection.
21820         (WM_CLOSE): clean up this a little bit.. still not right though.
21821
21822         * ApplicationContext.cs: OnMainFormClosed should only call
21823         ExitThreadCore if the main form isn't recreating.  Fixes unit
21824         test.
21825
21826 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
21827
21828         [Fixes 78346]
21829
21830         * ComboBox.cs: Set the Hwnd.no_activate flag for the ComboListBox.
21831
21832 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
21833
21834         [Fixes 79433]
21835
21836         * Hwnd.cs: Add a flag to show a window, but not activate it, to 
21837         keep popup window types from stealing focus from the main form
21838         on Windows.
21839
21840         * XPlatUIWin32.cs: Use SW_SHOWNOACTIVATE if above field is true.
21841
21842         * MenuAPI.cs: Set above flag to true.
21843
21844 2006-11-15  Chris Toshok  <toshok@ximian.com>
21845
21846         * XplatUIX11.cs: mimic win32 behavior on BUTTONUP events, where
21847         the button being released is not in wParam.
21848
21849 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
21850
21851         * Form.cs: Add the released button to MouseEventArgs.Button
21852         for the OnMouseUp call to the MenuTracker.  Fixes menu clicking
21853         on Win32.
21854
21855 2006-11-15  Chris Toshok  <toshok@ximian.com>
21856
21857         * XplatUIX11.cs: add (untested) a _NET_WM_NAME implementation of
21858         GetText().  untested because it's unused in our implementation.
21859         Control.Text always caches the text, even if
21860         ControlStyles.CacheText is not set.
21861
21862         fixes bug #79939.
21863
21864 2006-11-15  Chris Toshok  <toshok@ximian.com>
21865
21866         [ fixes #79933 ]
21867         
21868         * Form.cs: in Close() don't do anything after we send the WM_CLOSE
21869         message.  no hiding, no disposing.
21870
21871         in the WM_CLOSE handler, hide the form if it's modal.
21872
21873 2006-11-15  Chris Toshok  <toshok@ximian.com>
21874
21875         * XplatUIX11.cs: use AddExpose instead of sending a message.
21876         fixes textbox border drawing.
21877
21878 2006-11-15  Chris Toshok  <toshok@ximian.com>
21879
21880         * PropertyGridView.cs: keep from crashing on mouse move/down when
21881         the property grid is empty.
21882
21883 2006-11-14  Jackson Harper  <jackson@ximian.com>
21884
21885         * TextControl.cs: Make PageUp and PageDown more like the MS
21886         versions.
21887         * TextBoxBase.cs: When we set the text property position the
21888         cursor at the beginning of the document.
21889
21890 2006-11-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>
21891
21892         * Form.cs: if a mdi child's WindowState has changed
21893         before it's creation, it would display wrong control
21894         buttons.
21895         
21896 2006-11-14  Alexander Olk  <alex.olk@googlemail.com>
21897
21898         * TreeView.cs: De-uglify TreeView checkbox checkmarks.
21899           (Fixes bug #79927)
21900
21901 2006-11-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
21902
21903         * XplatUIX11.cs: send a WM_NCPAINT on WM_NCCALCSIZE so that 
21904         the window gets to paint its borders even if the window is
21905         getting smaller.
21906         
21907         * Form.cs: on a WM_NCPAINT invalidate the entire menu, 
21908         otherwise the old control buttons would still be painted 
21909         if the window gets bigger.
21910         
21911         * PaintEventArgs.cs: add an internal method so that the clip 
21912         rectangle can be changed.
21913         
21914 2006-11-13  Chris Toshok  <toshok@ximian.com>
21915
21916         [ fixes bug #79745 ]
21917         
21918         * NotifyIcon.cs: lots of cleanup.
21919
21920         * X11Structs.cs: add an enum for XEMBED messages.
21921
21922         * XplatUIX11.cs: reindent one of the giant switch statements, it
21923         was taking up an additional tab stop, and this file is already way
21924         too wide for my laptop's screen.
21925
21926         Also, add handling for the XEmbed EMBEDDED_NOTIFY message.  When
21927         we get it, resize the hwnd to the WMNormalHints max_width/height.
21928
21929 2006-11-13  Jackson Harper  <jackson@ximian.com>
21930
21931         * TextBoxBase.cs: Compute the value changes for the mouse wheel
21932         teh simple way.
21933
21934 2006-11-13  Chris Toshok  <toshok@ximian.com>
21935
21936         * XplatUIX11.cs, XplatUIStructs.cs: kind of a gross fix for
21937         #79898.  force a reference to the Region to stick around so the
21938         unmanaged object isn't collected (rendering our handle in the MSG
21939         stale).
21940
21941 2006-11-13  Chris Toshok  <toshok@ximian.com>
21942
21943         * XplatUIX11.cs: fix #79917 for window managers which support
21944
21945         using XStoreName on the raw utf8, and we need to convert to
21946         COMPOUND_TEXT if it's non-latin1.
21947
21948 2006-11-13  Chris Toshok  <toshok@ximian.com>
21949
21950         * Form.cs (set_DialogResult): we need to set closing to false if
21951         we're setting our result to None.  fixes bug #79908.
21952
21953 2006-11-13  Jackson Harper  <jackson@ximian.com>
21954
21955         * TextControl.cs: When formatting text, compute the adjusted tag
21956         lengths correctly, using FindTag for the end tag instead of trying
21957         to figure it out outselves.
21958         * TreeNode.cs: Use ActualItemHeight, which is the actual height of
21959         the item, ItemHeight doesn't work, because trees with large
21960         imagelists use those for their height
21961         * TreeView.cs: ActualItemHeight factors in the image height
21962         - compute left edge of checkboxes correctly
21963         - when expanding/collapsing move the bottom down one pixel, so we
21964         aren't moving part of the node
21965
21966 2006-11-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
21967
21968         * XplatUIX11.cs: The PaintEventArgs is also added to the drawing
21969         stack in PaintEventStart so that it won't get disposed by the gc
21970         before reaching PaintEventEnd.
21971
21972 2006-11-13  Jackson Harper  <jackson@ximian.com>
21973
21974         * TextBoxBase.cs: Don't select the word if we are on a line with
21975         no text.
21976         - We don't need to position the caret on mouse up, since the mouse
21977         move handler should be doing this
21978         - When double clicking a blank line, the caret is advanced to the
21979         next line.
21980
21981 2006-11-13  Gert Driesen  <drieseng@users.sourceforge.net>
21982
21983         * TreeNodeCollection.cs: Avoid duplicating indexer code.
21984
21985 2006-11-12  Gert Driesen  <drieseng@users.sourceforge.net>
21986
21987         * ColorDialog.cs: Reset size of dialog between calls to ShowDialog.
21988         Fixes part of bug #79910.
21989
21990 2006-11-11  Alexander Olk  <alex.olk@googlemail.com>
21991
21992         * ColorDialog.cs: Fix a NRE when adding a color to custom colors
21993           (bug #79903). Some minor string updates to match ms.
21994
21995 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
21996
21997         * FileDialog.cs: Don't add an extension if the filename
21998           already ends with that extension.
21999
22000 2006-11-10  Jackson Harper  <jackson@ximian.com>
22001
22002         * TreeView.cs: Use the currently highlighted node for the
22003         BeforeSelect event.
22004         * TextBoxBase.cs: There is no need to expand selection on
22005         MouseMove.
22006         - CanUndo means 'is there any undo operations', not 'is undo
22007         allowed on this textcontrol. Fixed ClearUndo unit test.
22008
22009 2006-11-10  Andreia Gaita  <shana.ufie@gmail.com>
22010
22011         * Button.cs: only perform click when button is Selectable (so as 
22012         not to activate default buttons when they're disabled)
22013         
22014         * Control.cs: Rewrite of the SelectNextControl and related 
22015         methods. HandleClick now selects next control if the current one
22016         is being disabled.
22017         
22018         * Form.cs: OnActivated selects next active control only if Load 
22019         has already occurred. If Load hasn't run, there's no point in 
22020         selecting here, Load might change the state of controls.
22021         
22022         * FocusTest.cs: Tests marked as working again for these fixes
22023
22024 2006-11-10  Chris Toshok  <toshok@ximian.com>
22025
22026         * XplatUIX11.cs: a couple of fixes.
22027
22028         - use XInternAtoms with almost all the atoms we need to register,
22029         instead of many, many calls to XInternAtom.  should help a bit on
22030         startup time, at the expense of making the code look a little
22031         worse.
22032
22033         - fall back to setting TransientFor on TOOLWINDOW's if their hwnd
22034         isn't reparented (which seems to be a clue that we're running fon
22035         compiz) and they have an Owner form.  This fixes the tool windows
22036         in paint.net when running under compiz.
22037
22038         - when setting the opacity of a window, support both the case
22039         where the window has been reparented and also when it hasn't been.
22040         Since compiz/beryl doesn't seem to reparent windows, and these are
22041         the only window managers which support translucency, I'm not sure
22042         why we need the hwnd.reparented case at all.. but leave it in.
22043         now we get translucent windows in paint.net under compiz/beryl.
22044
22045 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
22046
22047         * FileDialog.cs: Always return the value for FilterIndex that
22048           was set. Internally convert it to values that make sense.
22049
22050 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
22051         
22052         * ThemeWin32Classic.cs: Fix drowp down arrow borders.
22053
22054 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
22055
22056         * Toolbar.cs: Change default value of DropDownArrows to true, the 
22057         signature still using false to make it compatible with MS but the 
22058         initial value is true. Fixes #79855.
22059
22060 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
22061
22062         * MimeIcon.cs: Don't throw an exception on windows. Mime stuff is
22063           only available on Linux.
22064
22065 2006-11-09  Everaldo Canuto  <everaldo@simios.org>
22066
22067         * Toolbar.cs, ToolBarButton.cs: Fix wrong separator size and
22068         reduce number of calls to redraw method during toolbar creation.
22069
22070 2006-11-09  Mike Kestner  <mkestner@novell.com>
22071
22072         * ListView.cs : raise SelectedIndexChanged when an item is selected
22073         programmatically via the Item.Selected property.  Gert's nice 
22074         ListViewSelectedIndexChanged test fixture now runs clean.
22075
22076 2006-11-09  Mike Kestner  <mkestner@novell.com>
22077
22078         * ListView.cs : raise SelectedIndexChanged when a selected item is
22079         removed from the item collection using Remove or RemoveAt.
22080
22081 2006-11-09  Mike Kestner  <mkestner@novell.com>
22082
22083         * ListView.cs : raise SelectedIndexChanged once per selected item
22084         for compat with MS.  Fixes #79849+.
22085
22086 2006-11-09  Chris Toshok  <toshok@ximian.com>
22087
22088         * TabControl.cs: initialize row_count to 0, and set it to 1 when
22089         we need to (if we have any tab pages).  Fixes unit test.
22090
22091 2006-11-09  Chris Toshok  <toshok@ximian.com>
22092
22093         * Label.cs (CalcPreferredWidth): if Text == "", our preferred
22094         width is 0, not 3.  Fixes a unit test.
22095
22096 2006-11-09  Mike Kestner  <mkestner@novell.com>
22097
22098         * ListView.cs : use Implicit scrollbars so that focus isn't 
22099         stolen from the listview when they are clicked. Fixes #79850.
22100
22101 2006-11-09  Chris Toshok  <toshok@ximian.com>
22102
22103         * PropertyGridView.cs (OnPaint): only call DrawGridItems if we
22104         have a root item.  Fixes #79879.
22105
22106 2006-11-09  Alexander Olk  <alex.olk@googlemail.com>
22107
22108         * FileDialog.cs:
22109           - Fix ToString ()
22110           - An ArgumentException is now thrown if a wrong filter
22111             is applied (matches ms). The previous filter doesn't change
22112             anymore if an exception is thrown.
22113           - Changing the FileName property also affects FileNames
22114         * ColorDialog.cs: The length of the CustomColors array is always
22115           16. It doesn't matter if we use a smaller array or null to update
22116           or change the custom colors property.
22117         * FolderBrowserDialog.cs: Throw an InvalidEnumArgumentException if
22118           for RootFolder if we get a undefined value.
22119
22120 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
22121
22122         * StatusBarPanel.cs: 
22123         - Width is set to MinWidth if Width is smaller than
22124         MinWidth. Fixes #79842.
22125         - MinWidth now always overrides Width (MSDN says MinWidth
22126         is set to Width when AutoSize = None, but they do not 
22127         behave like that).
22128         - Style has now the the correct default value.
22129         
22130 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
22131  
22132         * TrackBar.cs: 
22133         - The control is completely invalidated on 
22134         Got/LostFocus to draw the focus rectangle correctly.
22135         - When AutoSize then height is always 45 (width for 
22136         vertical controls).
22137         
22138         * ThemeWin32Classic.cs: The TrackBar thumb is now centered
22139         on the mouse when moved and it doesn't move when grabbed
22140         until the mouse moves as well. Also fixed some wrong 
22141         calculations when clicking on the thumb (control thought
22142         click was outside of thumb and didn't grab it).
22143         Fixes some of the issues in #79718.
22144
22145 2006-11-08  Everaldo Canuto  <everaldo@simios.org>
22146
22147         * Toolbar.cs: Prevent disabled button to highlight. Fixes #79868.
22148
22149 2006-11-08  Chris Toshok  <toshok@ximian.com>
22150
22151         * PropertyGridView.cs: only call ToggleValue if the item is not
22152         readonly.
22153
22154 2006-11-08  Jackson Harper  <jackson@ximian.com>
22155
22156         * TextBoxBase.cs: The RichTextBox and textbox have very different
22157         word selection methods.  Implement the textbox's simple word
22158         selection here, and let the RichTextBox override and provide it's
22159         own.
22160         - Don't do extra selection on mouseup
22161         * RichTextBox.cs: Use the documents word selection algorithm, I
22162         think ideally, this function will be pulled into the
22163         RichTextBox.cs code someday.
22164
22165 2006-11-08  Chris Toshok  <toshok@ximian.com>
22166
22167         * RootGridEntry.cs: new class to represent GridItemType.Root.
22168
22169         * CategoryGridEntry.cs: reformat, and add boilerplate.
22170         
22171         * GridEntry.cs: remove the UIParent stuff - turns out .Parent
22172         returns the UI parent anyway, and we need special handling to
22173         implement the GetTarget method in the face of it.  Also, implement
22174         Select().
22175
22176         * PropertyGrid.cs, PropertyGridView.cs: a number of fixes.  create
22177         a root grid item, and use that instead of PropertyGrid.grid_items.
22178         Also, make use of TypeConverters (and add limitted support for
22179         ICustomTypeDescriptors) when initially populating the grid.
22180         Arrays now show up more or less properly.
22181
22182 2006-11-08  Chris Toshok  <toshok@ximian.com>
22183
22184         * Application.cs: set the modal dialog to non modal after we close
22185         it.  Fixes bug #79866.
22186
22187 2006-11-08  Jackson Harper  <jackson@ximian.com>
22188
22189         * TextControl.cs: When combining lines carry over the line end
22190         style from the end line.
22191         - Invalidate the selected area when setting it, if it is visible.
22192         * TextBoxBase.cs: Only rich text box can do full line selects.
22193         - Make sure to set the cursor position when there is a click,
22194         otherwise two clicks in separate areas could cause a large chunk
22195         to be selected.
22196
22197 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
22198
22199         * Toolbar.cs: Release flat button borders when Toolbar lost focus. 
22200         Fixes #79863.
22201
22202 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
22203
22204         * Toolbar.cs: Prevent toolbar to open more than one tooltip at same
22205         time. Remove tooltips when ToolButton click events.  Fixes #79856.
22206
22207 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
22208
22209         * MenuAPI.cs: Ignore right click for menu actions and fixes
22210         menu border when clicked.  Fixes #79846.
22211
22212 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
22213
22214         * XplatUIX11.cs, XplatUIX11.cs: Fix MouseRelease to only release
22215         MouseState after create wParam for message, this fixes mouse button 
22216         equal none in mouse up events.
22217         
22218 2006-11-07  Andreia Gaita  <shana.ufie@gmail.com>
22219
22220         * Control.cs : Focus() now calls Select to set the Container's
22221         Active Control and to give it focus. To avoid infinite recursion
22222         (because ActiveControl also calls Focus at one point), a check 
22223         is made in Focus with the help of a new internal variable
22224         is_focusing.
22225
22226 2006-11-07  Mike Kestner  <mkestner@novell.com>
22227
22228         * ListView.cs : raise OnSelectedIndexChanged in CreateHandle
22229         if there's a selection.  Fixes #79849.
22230
22231 2006-11-07  Gert Driesen  <drieseng@users.sourceforge.net>
22232
22233         * PropertyGrid.cs: Avoid fixed height of help description label.
22234         Fixes part of bug #79829.
22235
22236 2006-11-07  Chris Toshok  <toshok@ximian.com>
22237
22238         * XplatUIX11.cs: fix #79790 again, by using the
22239         _NET_WM_STATE_SKIP_TASKBAR atom to implement Form.ShowInTaskbar.
22240
22241 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
22242
22243         * ToolBar.cs: Fix left click checking.
22244
22245 2006-11-07  Chris Toshok  <toshok@ximian.com>
22246
22247         * ProgressBar.cs: fix a typo in ToString().  fixes a unit test.
22248
22249 2006-11-07  Chris Toshok  <toshok@ximian.com>
22250
22251         * RelatedPropertyManager.cs: set property_name in our ctor.  fixes
22252         PropertyManager unit tests.
22253
22254         * PropertyManager.cs: make property_name internal.
22255
22256 2006-11-07  Chris Toshok  <toshok@ximian.com>
22257
22258         * ButtonBase.cs: initialize base.ime_mode to ImeMode.Disable to
22259         pass a unit test.  Also, don't set image_index to anything in
22260         response to setting the ImageList property.
22261
22262 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
22263
22264         * ToolBar.cs: Ignore click events when mouse button is not a
22265         left button, only accepts other button for dropdown menus.  
22266         Fixes #79854.
22267
22268 2006-11-07  Chris Toshok  <toshok@ximian.com>
22269
22270         * DataGrid.cs: make the back and parent row buttons a little less
22271         ugly.
22272
22273 2006-11-07  Jackson Harper  <jackson@ximian.com>
22274
22275         * TextBoxBase.cs: When converting to Text don't put line breaks in
22276         for soft line breaks.
22277         * TextControl.cs: There is an initial "fake" line in the document,
22278         this is now a soft break line, so that an extra line feed doesn't
22279         get added to the end of documents.
22280
22281 2006-11-07  Chris Toshok  <toshok@ximian.com>
22282
22283         [ fix bug #79778 ]
22284         
22285         * CurrencyManager.cs: if the list is readonly, don't bother
22286         checking if IBindingList.AllowNew is true.
22287
22288         * ThemeWin32Classic.cs (DataGridPaintParentRow): make this work
22289         for non-DataRowView datasources..  or rather, make it not crash.
22290         (DataGridPaintRelationRow): make sure we limit the row painting to
22291         the area not covered by the row header, and make our cell width at
22292         least large enough to cover the relation area.  This allows grids
22293         that have relations but no rows to render correctly.
22294         (DataGridPaintRowContents): same type of changes here.
22295         (SetDataSource): move back to always calling
22296         CalcAreasAndInvalidate.  this fixes a crash/drawing problem when
22297         navigating back through relations.
22298         (HitTest): handle the case where we have no cells but have
22299         relations.  Right now we generate a hit in cell 0 of whatever the
22300         row is, not sure if this is strictly correct, but it works for our
22301         purposes.
22302         
22303         * DataGrid.cs (EndEdit, CancelEdit): if we have no columns, don't
22304         bother doing anything.
22305
22306 2006-11-07  Jonathan Pobst  <monkey@jpobst.com>
22307
22308         * StatusStrip.cs, ToolStripStatusLabel.cs: By request, an
22309         early version of StatusStrip.  Not responsible for eaten
22310         application or firstborn children.
22311
22312 2006-11-06  Chris Toshok  <toshok@ximian.com>
22313
22314         * TabControl.cs: in OnGotFocusInternal/OnLostFocusInternal don't
22315         call GetTabRect with a -1 index.  Fixes #79847.
22316
22317 2006-11-06  Jackson Harper  <jackson@ximian.com>
22318
22319         * TreeNodeCollection.cs: Update scrollbars after clearing.
22320
22321 2006-11-06  Chris Toshok  <toshok@ximian.com>
22322
22323         * NumericUpDown.cs: fix the ToString method for some unit test
22324         love.
22325
22326 2006-11-06  Chris Toshok  <toshok@ximian.com>
22327
22328         * PropertyGrid.cs:
22329         - set the initial SelectedGridItem if we can.
22330
22331         - Exclude non-mergable properties only if we're merging > 1
22332         object.  Merging 1 object isn't really merging, obviously.
22333
22334         - Handle PropertySort.NoSort just like Alphabetical, which is
22335         wrong of course, but at least gets things on the screen.
22336         
22337         * PropertyGridView.cs:
22338         - Add method "FindFirstItem" which finds the first property grid
22339         item, so we can select it by default.
22340
22341         - make use of GridEntry.CanResetValue.
22342
22343         - Don't call RedrawBelowItemOnExpansion here anymore, the
22344         individual GridEntry's will do that.
22345
22346         - Remove the ITypeDescriptorContextImpl internal class.
22347         
22348         * GridEntry.cs:
22349         - this class needs to implement ITypeDescriptorContext, as it's
22350         what MS's PropertyDescriptorGridEntry does, which means we can
22351         remove the ITypeDescriptorContextImpl internal class from
22352         PropertyGrid.cs.  This fixes the crashing portion of bug #79829.
22353
22354         - keep a reference to our PropertyGridView, and move the call to
22355         RedrawBelowItemOnExpansion here from PGV.  This means
22356         programmaticly setting Expanded actually does something visible.
22357
22358         - add a CanResetValue() function which takes into account our
22359         possibly multiple "selected_objects" in the merged case.  Shifting
22360         PropertyGridView to use this method fixes another unreported
22361         crasher found running the test for #79829.
22362
22363         - when Top or Bounds is updated, make sure the PropertyGridTextBox
22364         is updated to reflect this.
22365
22366         * CategoryGridEntry.cs: the ctor takes the PGV now.
22367         
22368 2006-11-06  Jackson Harper  <jackson@ximian.com>
22369
22370         * TextControl.cs: These are 1 based.
22371         * TextBoxBase.cs: When setting the selected text, don't change the
22372         selected text tags, this is done by ReplaceText, just position the
22373         cursor at the end of the new text.
22374
22375 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
22376
22377         * ListView.cs: Allow label edit only when, when LabelEdit is
22378           set to true.
22379
22380 2006-11-06  Jackson Harper  <jackson@ximian.com>
22381
22382         * TextControl.cs: If a suitable wrapping position isn't found,
22383         just wrap right in the middle of a word.
22384
22385 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
22386
22387         * ListView.cs, ListViewItem.cs: Implement LabelEdit. Fixes
22388           bug #79820.
22389
22390 2006-11-06  Jackson Harper  <jackson@ximian.com>
22391
22392         * TreeView.cs: Can't use the VisibleCount property when setting
22393         scrollbar heights, because this doesn't take into account whether
22394         or not the horz scrollbar just came visible.
22395
22396 2006-11-05  Everaldo Canuto  <everaldo@simios.org>
22397
22398         * MenuAPI.cs: Deactivate menu on mouse up when menus it is already
22399         activated.  Fixes #79369, #79832.
22400
22401 2006-11-05  Alexander Olk  <alex.olk@googlemail.com>
22402
22403         * FileDialog.cs: *sigh* Because of recent runtime changes (r67043) I
22404           had to remove support for links that point to a directory. FileInfo
22405           returns no usefull information (means, the directory they point to)
22406           for such links. Replaced some empty string ("") with String.Empty.
22407
22408 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
22409
22410         * TreeNodeCollection.cs: To match MS, in 1.0 profile throw 
22411         NullReferenceException when attempting to remove node that is not in
22412         collection. Throw NullReferenceException when null is passed to 
22413         Remove. Allow first element of the collection to be removed. Fixes
22414         bug #79831.  In GetEnumerator ().Current return null if positioned 
22415         before the first element of the collection. In GetEnumerator ().Reset,
22416         position before first element of the collection.
22417
22418 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
22419
22420         * PropertyGrid.cs: To match MS, remove default title and description
22421         for panel. Fixed tooltips for Categorized and Alphabetic toolbar
22422         buttons.
22423
22424 2006-11-04  Chris Toshok  <toshok@ximian.com>
22425
22426         * Theme.cs: add a Clamp method, just for kicks.
22427
22428         * ThemeWin32Classic.cs: clamp all color components to [0..255].
22429
22430 2006-11-04  Chris Toshok  <toshok@ximian.com>
22431
22432         * Form.cs: if the form isn't visible, Close() does nothing.
22433
22434 2006-11-03  Chris Toshok  <toshok@ximian.com>
22435
22436         * Form.cs (Close): if the form is modal, don't Dispose of it, only
22437         Hide it.
22438         (WndProc): don't Dispose after handling the WM_CLOSE message.
22439
22440         * Application.cs (RunLoop): toplevels is a list of Forms, so treat
22441         them as such, instead of using casts from Control to Form.  Also,
22442         don't Dispose of the modal dialog when we fall out of the loop -
22443         Close() it instead.
22444
22445         fixes bug #79813.
22446
22447 2006-11-03  Chris Toshok  <toshok@ximian.com>
22448
22449         * Control.cs (Dispose): only go through the dispose thing if we're
22450         @disposing, and we haven't already been disposed.  Fixes bug
22451         #79814.
22452
22453         * Form.cs: no reason to call "base.Dispose()" here instead of
22454         "Dispose()".
22455
22456 2006-11-03  Mike Kestner  <mkestner@novell.com>
22457
22458         * ComboBox.cs : use ToString instead of casts in AddItem for
22459         sorting functionality.  Fixes #79812.
22460
22461 2006-11-03  Chris Toshok  <toshok@ximian.com>
22462
22463         * Application.cs: pave the way for actually using the thread
22464         exception dialog.  it's ifdefed out at the moment.
22465
22466 2006-11-03  Chris Toshok  <toshok@ximian.com>
22467
22468         * ThreadExceptionDialog.cs: until we get a better layout, actually
22469         hide the details textbox and label when we shouldn't see them.
22470
22471 2006-11-03  Jackson Harper  <jackson@ximian.com>
22472
22473         * TextBoxBase.cs: Don't bail from the scrollbar calcs for non
22474         multiline textboxes anymore.  This method also determines the
22475         width/height of a textboxes canvas area.
22476         - Sorta a revert of the last patch.  For multiline just position
22477         the controls, then bail.  This way the scrollbar width won't be
22478         altered.
22479
22480 2006-11-03  Everaldo Canuto  <everaldo@simios.org>
22481
22482         * ThemeWin32Classic.cs: Dont paint inner lines of 3D border when
22483         it dont need.  Fixes #79537.
22484
22485 2006-11-02  Jackson Harper  <jackson@ximian.com>
22486
22487         * X11Dnd.cs: We always allow copy, since XDND implies Copy.  Also
22488         send the status after firing the DndOver event.
22489
22490 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
22491
22492         * TrackBar.cs: Now orientation only switches height / width if
22493         the control's handle is created (Win32 does it like this). Also 
22494         fixed a typo in ToString() for a test to pass, changed the 
22495         exception thrown in set_LargeChange and set_SmallChange to 
22496         match Win32 behaviour, and added TrackBar tests to the unit 
22497         tests.
22498
22499 2006-11-02  Chris Toshok  <toshok@ximian.com>
22500
22501         * XplatUIX11.cs: the atom we want is _NET_WM_STATE_SKIP_TASKBAR,
22502         not _NET_WM_STATE_NO_TASKBAR.
22503
22504 2006-11-02  Jackson Harper  <jackson@ximian.com>
22505
22506         * TextControl.cs: Increment count by one, since in the update view
22507         count - 1 is used.
22508
22509 2006-11-02  Jackson Harper  <jackson@ximian.com>
22510
22511         * TextBoxBase.cs: Use client rectangle not bounds for checking if
22512         the mouse is in the client rectangle (duh).
22513
22514 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
22515         
22516         * TrackBar.cs: Fixed trackbar jumping around when clicking
22517         on it - the trackbar was not detecting correctly at which
22518         side of the thumb the click was done. (fixes #79718)
22519
22520 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
22521
22522         * ListBox.cs: scroll visible area when change SelectedIndex to
22523         a non visible area.  Fixes #79481.
22524
22525 2006-11-01  Jackson Harper  <jackson@ximian.com>
22526
22527         * TextControl.cs: When replacing the selection move the selection
22528         start/end/anchor to the end of the new text.
22529
22530 2006-11-01  Jackson Harper  <jackson@ximian.com>
22531
22532         * XplatUIWin32.cs: When setting the parent change the controls
22533         visibility to it's visibility flag, not to it's old parents
22534         visibility (.Visible walks the parent chain).
22535
22536 2006-11-01  Chris Toshok  <toshok@ximian.com>
22537
22538         * XplatUIX11.cs: revert the #79790 fix, as the simple.
22539         XSetTransientForHint fix breaks paint .net's tool windows.  more
22540         work needed for that one.
22541
22542 2006-11-01  Chris Toshok  <toshok@ximian.com>
22543
22544         * ScrollBar.cs: throw ArgumentException instead of Exception in
22545         LargeChange/SmallChange setters.  fixes unit tests.
22546
22547 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
22548
22549         * ContainerControl.cs: reverted rev.67183 (which was itself
22550         a reversion of rev.66853... eh).
22551         
22552         * Control.cs: Fixes Reflector hang by changing Focus() call
22553         to what it was before rev.66643 (calling Select() here sets 
22554         ActiveControl, which in some situations calls back Focus and 
22555         eventually does a stack overflow). Temp fix.    
22556         Changes to GetNextControl() to not look for children to select when
22557         parent cannot be selectable (so it looks for siblings instead)  
22558         
22559 2006-10-31  Mike Kestner  <mkestner@novell.com>
22560
22561         * CheckedListBox.cs : off by one error in returned index from
22562         ObjectCollection.Add.  Fixes #79758.
22563
22564 2006-10-31  Chris Toshok  <toshok@ximian.com>
22565
22566         * UpDownBase.cs: remove the OnGotFocusInternal/OnLostFocusInternal
22567         calls for the textbox/spinner, to keep from recursing to the point
22568         where we crash.  Fixes #79760.
22569
22570 2006-10-31  Chris Toshok  <toshok@ximian.com>
22571
22572         * ListControl.cs (set_SelectedValue): don't throw exceptions on
22573         null/"" value, just return.  matches ms's behavior and fixes some
22574         failing tests.
22575
22576 2006-10-31  Chris Toshok  <toshok@ximian.com>
22577
22578         * Control.cs (set_Capture): make a logic a little easier to
22579         follow.
22580
22581         * XplatUIX11.cs (CleanupCachedWindows): zero out the Grab window
22582         if it's being destroyed.  A necessary fix surely, but a bandaid
22583         also, to fix the stuck capture problem in bug #78413.
22584
22585 2006-10-31  Chris Toshok  <toshok@ximian.com>
22586
22587         * XplatUIX11.cs: fix a couple of compiler warnings, and follow the
22588         convention of clearing hwnd.ClientRect when we set the
22589         width/height (so it'll be recalculated by Hwnd).
22590
22591 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
22592
22593         * ContainerControl.cs: reversed Contains check from
22594         ActiveControl due to hanging problems. This fix
22595         partly regresses #79667 (button does not have
22596         initial focus), so this might be a symptom for 
22597         a larger parenting problem (set_ActiveControl
22598         is being called but the child control does
22599         not have the parent set yet?)   
22600         
22601 2006-10-31  Mike Kestner  <mkestner@novell.com>
22602
22603         * MenuAPI.cs : fix keynav when menu is click activated.
22604
22605 2006-10-31  Jonathan Pobst  <monkey@jpobst.com>
22606
22607         * ToolStrip*: Version 0.2.
22608
22609         * MenuStrip.cs: Version 0.1.
22610
22611         * Form.cs: Add a 2.0 MenuStrip tracker like the 1.1 Menu one.
22612
22613 2006-10-30  Chris Toshok  <toshok@ximian.com>
22614
22615         [ fixes the oversized notify icon issue in bug #79745 ]
22616         
22617         * NotifyIcon.cs: scale the icon down to the size we're given by
22618         the XplatUI layer (this would be faster if we did it once instead
22619         of whenever we paint..)  Also, remove the WM_NCPAINT handling,
22620         since it's never invoked.
22621
22622         * XplatUIX11.cs: the gnome and kde systrays use icons that are 24
22623         pixels high by default, so let's hardcode our systray icon to that
22624         size.  The SYSTEM_TRAY protocol should really have a way for
22625         client apps to query for the correct icon size.. but oh well.  A
22626         couple of patches to deal with the screwy client_window ==
22627         whole_window notifyicon stuff (we don't want to PerformNCCalc, for
22628         instance, and also make sure we don't XSelectInput twice).
22629
22630 2006-10-30  Chris Toshok  <toshok@ximian.com>
22631
22632         * Control.cs: ugh, the unit test fix (CH11, yesterday) breaks when
22633         recreating forms.  Control recreation is the bane of my existence.
22634         Fix it in a way that keeps everyone happy.
22635
22636 2006-10-30  Chris Toshok  <toshok@ximian.com>
22637
22638         * XplatUIX11.cs: use StructureNotifyMask on all whole_windows, not
22639         just non-CHILD ones.  otherwise sometimes scrollbars end up with
22640         client_windows not being resized to the proper size (ReportBuilder
22641         shows this extremely well).
22642
22643 2006-10-30  Chris Toshok  <toshok@ximian.com>
22644
22645         * XplatUIX11.cs (SetWMStyles): reinstate the XSetTransientForHint
22646         for non-WS_EX_APPWINDOW windows.  This is what keeps them from
22647         showing up in the gnome taskbar.  Fixes bug #79790.
22648
22649 2006-10-30  Chris Toshok  <toshok@ximian.com>
22650
22651         * ApplicationContext.cs: guard against a NRE.
22652
22653         * Application.cs: null out the old MainForm for the context, so we
22654         don't try to use it again once it's disposed.  Fixes bug #79783.
22655
22656 2006-10-30  Chris Toshok  <toshok@ximian.com>
22657
22658         * DataGrid.cs (set_DataSource, set_DataMember): if we have a
22659         BindingContext, set the data source directly, otherwise do the
22660         lazy approach - the actual ListManager will be created when we get
22661         a BindingContext. Fixes bug #79700.
22662
22663 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
22664
22665         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
22666           XplatUIX11.cs: Remove old 2 parameter SetVisible.
22667
22668         * Control.cs: Use the new 3 parameter SetVisible with activate = true.
22669
22670 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
22671
22672         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Add an overload
22673         of SetVisible that allows a window to be shown, but not activated.
22674         This is needed on Windows for MenuStrip, and can probably be used
22675         with MainMenu and ComboBox to fix the focus stealing issues on
22676         Windows.
22677
22678         * XplatUIOSX.cs, XplatUIX11.cs: Not needed, call existing SetVisible.
22679
22680 2006-10-30  Alexander Olk  <alex.olk@googlemail.com>
22681
22682         * PictureBox.cs: Fix the output of the ToString method.
22683
22684 2006-10-29  Chris Toshok  <toshok@ximian.com>
22685
22686         * Control.cs (get_TopLevelControl): fix bug #79781.
22687
22688 2006-10-29  Chris Toshok  <toshok@ximian.com>
22689
22690         * ListControl.cs (set_DataSource): throw Exception here, not
22691         ArgumentException, to match MS behavior.
22692
22693 2006-10-29  Chris Toshok  <toshok@ximian.com>
22694
22695         * Form.cs: remove the try-catch's around calls to GetWindowState.
22696         We can just check the return value.
22697
22698         * XplatUIX11.cs: don't throw exceptions from GetWindowState.
22699         Instead return -1.
22700
22701         * XplatUI.cs: Add note about additional return value for
22702         GetWindowState.
22703
22704 2006-10-29  Chris Toshok  <toshok@ximian.com>
22705
22706         * Control.cs (CreateHandle): when we create our handle, we also
22707         create the handles of our child controls.  Fixes one of the
22708         Control unit tests (CH11).
22709
22710 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
22711
22712         * MimeIcon.cs: If a gnome icon doesn't exist add a default icon.
22713
22714 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
22715
22716         * ThemeClearlooks.cs: A little speedup.
22717
22718 2006-10-27  Chris Toshok  <toshok@ximian.com>
22719
22720         * Control.cs: implement Control.FromChildHandle in a way that
22721         matches the docs (and fixes the failed test.)
22722
22723 2006-10-27  Chris Toshok  <toshok@ximian.com>
22724
22725         * DataGridTableStyle.cs: reproduce buggy MS behavior (with
22726         comments).
22727
22728         * DataGrid.cs: implement ResetForeColor such that the tests
22729         succeed.
22730         
22731 2006-10-27  Chris Toshok  <toshok@ximian.com>
22732
22733         * ToolBarButton.cs: setting text/tooltiptext to null results in it
22734         being set to "".  Fixes bug #79759.
22735
22736 2006-10-27  Jackson Harper  <jackson@ximian.com>
22737
22738         * TextControl.cs: We need to clear the entire selection area when
22739         setting the start, otherwise multiline selections are still
22740         visible.
22741
22742 2006-10-26  Chris Toshok  <toshok@ximian.com>
22743
22744         * PropertyGridView.cs: 
22745
22746         - ifdef all the code specific to the double
22747         buffer case, and provide some alternatives in the non-doublebuffer
22748         code, which makes heavy use of XplatUI.ScrollWindow to move things
22749         around without having to invalidate (and cause flicker).  There
22750         are still some drawing problems in the non-doublebuffered case, so
22751         DOUBLEBUFFER is defined by default.
22752
22753         - Fix the way dropdowns are handled.  now we explicitly watch for
22754         the events which might cause the dropdown to close, and break out
22755         of the nested event loop there.  This gets rid of all Capture
22756         code, at the expense of the Msg special casing.  Seems to work,
22757         though, and fixes bug #79743.
22758
22759 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
22760         * Control.cs: SetIsRecreating now recreates implicitly added
22761         child controls as well. Finally fixes #79629. The flag passed to 
22762         SetIsRecreating has also been removed since it wasn't used.
22763         
22764 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
22765
22766         * PageSetupDialog.cs: Clean some code, fix some bits, 
22767         add some checks, and add a printer sub-dialog.
22768
22769 2006-10-26  Chris Toshok  <toshok@ximian.com>
22770
22771         * PropertyGrid.cs: make set_SelectedObject call
22772         set_SelectedObjects, and move the duplicate logic to the
22773         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
22774
22775         * PropertyGridView.cs: hide the textbox when we get a
22776         SelectedObjectsChanged event.
22777
22778         Fixes bug #79748.
22779
22780 2006-10-26  Chris Toshok  <toshok@ximian.com>
22781
22782         * PropertyGridView.cs: deal with the type converter not supporting
22783         GetStandardValues() or GetStandardValues() returning null, which
22784         is does in the default case.  Fixes #79742.
22785
22786 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
22787
22788         * CheckedListBox.cs: nunit no longer crashes when selecting 
22789         Project/Edit menu option
22790         
22791 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
22792
22793         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
22794         is no menu selected. fixes #79739
22795
22796 2006-10-25  Chris Toshok  <toshok@ximian.com>
22797
22798         * PropertyGridView.cs: factor out the splitter invalidation code
22799         into the SplitterPercent setter, and for kicks implement the
22800         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
22801         amount in either direction.
22802
22803 2006-10-25  Chris Toshok  <toshok@ximian.com>
22804
22805         * PropertyGridView.cs: do some cleanup of the brush used to draw
22806         text - read only fields should be grayed out.  not sure how to do
22807         this with the textbox, though.  but the textbox's should also be
22808         readonly now at least.  Also, hide/show the textbox when resizing
22809         the control.
22810         
22811         * CursorConverter.cs: use System.Reflection when getting the
22812         properties of Cursors, as TypeDescriptor.GetProperties isn't
22813         returning static properties.
22814
22815 2006-10-25  Chris Toshok  <toshok@ximian.com>
22816
22817         * PropertyGridView.cs: factor out the up/down handling, and reuse
22818         it for page up/down.  also add End/Home support.
22819
22820 2006-10-25  Chris Toshok  <toshok@ximian.com>
22821
22822         * PropertyGridView.cs:
22823
22824         - ensure the selected grid item is visible in the scrolled area,
22825         fixes bug #79572.
22826
22827         - fix Keys.Down handling when you're on the last item in the
22828         propertygrid.
22829
22830 2006-10-25  Mike Kestner  <mkestner@novell.com>
22831
22832         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
22833         clicks too.  Fixes #79725.
22834
22835 2006-10-24  Chris Toshok  <toshok@ximian.com>
22836
22837         * PropertyGrid.cs: use property.Converter instead of
22838         TypeDescriptor.GetConverter(property.PropertyType), so we catch
22839         TypeConverters declared on the property as well as on the
22840         PropertyType.  Fixes bug #79678.
22841
22842 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
22843
22844         * MimeIcon.cs, Mime.cs:
22845           Fallback to the default platform handler if no shared mime info
22846           stuff exists (fixes #79693).
22847
22848 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
22849         * ContainerControl.cs: Incorrect contains check in ActiveControl 
22850         from previous fix (duh).
22851
22852 2006-10-20  Chris Toshok  <toshok@ximian.com>
22853
22854         * PropertyGridView.cs: the dropdown should be MIN(number of items
22855         in list, 15).  Fixes #79551.
22856
22857 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
22858         Fixes #79384, #79394, #79652, #79667
22859         * Application.cs: 
22860         
22861         - Modal windows are now destroyed in the proper order for windows
22862         
22863         * ContainerControl.cs:
22864         
22865         - ActiveControl setter has more conditions on when to return:
22866                 - if we're reselecting the active control, but it actually
22867                 didn't have focus (window hidden or some such), it runs
22868                 - if the active control being selected doesn't actually 
22869                 exist in the container, it returns
22870         
22871         * Form.cs
22872         
22873         - The ShowDialog now gets the current form as the owner when
22874         invoking without parameters, and correctly activates the owner 
22875         when returning
22876         
22877         * MessageBox.cs
22878         
22879         - MessageBox now catches the Escape key to exit
22880
22881 2006-10-20  Chris Toshok  <toshok@ximian.com>
22882
22883         * PropertyGridView.cs: fix a number of issues (bug #78565, and
22884         most of bug #79676):
22885
22886         - you can navigate around the property grid with the arrow keys.
22887
22888         - the dropdown is sized properly when the pg has a vertical
22889         scrollbar.
22890
22891         - fix the indentation for subentries, and properly select the
22892         entire label rect.
22893
22894         - fix the gray bar's drawing (only draw it to the last element,
22895         not for the height of the control.  Also make sure we draw that
22896         last horizontal grid line.
22897
22898         - use the same mechanism the datagrid uses wrt the editing textbox
22899         when scrolling/resizing/etc.  Namely, we hide it first, do the
22900         operation, then show it again (if it's still visible).
22901         
22902         - aggressively remove a lot of unnecessary refreshes (and also
22903         calls to Invalidate(). call more limited variants, and only redraw
22904         what we need.)
22905         
22906         * PropertyGrid.cs:
22907
22908         - when we're populating the merged collection, fill in the UI
22909         parent with either the passed in item, or the category item we
22910         create.
22911
22912         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
22913
22914         * GridItem.cs: drop some fully qualified names.
22915         
22916         * GridEntry.cs: add a "UIParent", which is basically the parent
22917         treenode.
22918
22919         * GridItemCollection.cs: add an IndexOf method.
22920
22921 2006-10-20  Mike Kestner  <mkestner@novell.com>
22922
22923         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
22924         a working win32 NC invalidation mechanism, we can't invalidate
22925         menus.  [Fixes #79705]
22926
22927 2006-10-20  Mike Kestner  <mkestner@novell.com>
22928
22929         * ListBox.cs : don't update the VScrollbar if the list is empty,
22930         just hide it.  [Fixes #79692]
22931
22932 2006-10-20  Jackson Harper  <jackson@ximian.com>
22933
22934         * RichTextBox.cs: Handle some special chars better, and don't skip
22935         the entire group when we encounter a special char that we don't
22936         handle correctly.
22937
22938 2006-10-18  Chris Toshok  <toshok@ximian.com>
22939
22940         * PropertyGridView.cs: address a number of issues from bug #79676,
22941         mostly of the cosmetic variety.
22942
22943         - The highlight rectangle for indented items not extends all the
22944         way to the left.
22945
22946         - Indented items aren't indented so much.
22947
22948         - the dropdown is properly sized width-wise if the pg has a
22949         vertical scrollbar.
22950
22951 2006-10-18  Chris Toshok  <toshok@ximian.com>
22952
22953         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
22954         systray stuff is rather convoluted to begin with.
22955
22956         systray icons are a single window for some reason (that I haven't
22957         figured out yet), and for them, client_window == whole_window.
22958         Given the way the tests are structured elsewhere to determine
22959         which paints are pending (client vs. nc), that situation will
22960         always yield PAINT, not NCPAINT.  So, if we have a pending
22961         nc_expose and no pending expose, remove the hwnd from the paint
22962         queue, and also set nc_expose_pending to false, to keep us from
22963         blocking further expose's adding the hwnd to the paint queue.
22964
22965         phew.  like i said, a rather convoluted change.  Fixes the
22966         notifyicon repaint issues in bug #79645.
22967
22968 2006-10-18  Chris Toshok  <toshok@ximian.com>
22969
22970         * Form.cs: when getting the backcolor of the form, don't get
22971         base.BackColor, as this allows parents to influence the background
22972         color.  This breaks mdi forms.  Instead, if the background_color
22973         is empty, return the default.
22974
22975 2006-10-18  Chris Toshok  <toshok@ximian.com>
22976
22977         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
22978         to being private instead of internal static.
22979
22980         * Control.cs: remove all the stupid ParentWaitingOnRecreation
22981         crap, it wasn't working for more deeply nested controls anyway,
22982         and we already have the is_recreating flag - use that instead.
22983         Before calling DestroyHandle in RecreateHandle, recurse through
22984         the control tree setting it to true.  this returns the recreate
22985         code to much of its original simplicity, while now guaranteeing we
22986         actually recreate everything we're supposed to.  This change gets
22987         fyireporting actually showing mdi children.
22988
22989 2006-10-17  Chris Toshok  <toshok@ximian.com>
22990
22991         * Form.cs: remove some debug spew, and collapse some duplicate
22992         code at the end of SetClientSizeCore.
22993
22994         * XplatUIX11.cs: 
22995         - add some more debug spew here too wrt Destroy handling.
22996         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
22997         in Control's handling of WM_DESTROY.
22998         - Remove the handling of zombie window DestroyNotifies from the
22999         event loop - we don't need it.  Now the only DestroyNotifies we
23000         actually handle are ones generated by X.
23001         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
23002         match gtk's (functioning) handling of this. This keep metacity
23003         from leaving droppings in the form of wm borders with no window
23004         contents all over the place.
23005
23006         * Control.cs:
23007         - add a bunch of debug spew wrt control recreation.
23008         - fix a bug where we weren't tracking Visible properly on
23009         recreated hwnds.
23010         - fixed the WM_PAINT double buffer handling to support re-entrant
23011         calls (yes, i know it's gross, but it's happening to us).
23012
23013 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
23014         * ThemeWin32Classic.cs: changed drawing of selected days
23015         to make them look better.
23016
23017 2006-10-16  Chris Toshok  <toshok@ximian.com>
23018
23019         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
23020         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
23021
23022         * XplatUIX11.cs: move away from using hwnd.client_dc and
23023         hwnd.non_client_dc and on to a stack of dc's (and in window's
23024         case, PAINTSTRUCT's), so we can deal with nested Paint calls
23025         without puking or not disposing of Graphics objects.
23026
23027         * XplatUIOSX.cs: same.
23028
23029         * XplatUIWin32.cs: same.
23030
23031 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
23032
23033         * FileDialog.cs: Don't call on_directory_changed inside
23034           OnSelectedIndexChanged (it changes the SelectedIndex too).
23035           Instead move it to OnSelectionChangeCommitted.
23036
23037 2006-10-13  Chris Toshok  <toshok@ximian.com>
23038
23039         * XplatUIX11.cs: more Destroy work.  the current code does the
23040         following things, in order:
23041
23042         1. Enumerates all handles of all controls at or below the one
23043         being destroyed, in pre-order.  As it is doing this, it marks the
23044         handles as zombie and clears all references to them.
23045         
23046         2. calls XDestroyWindow on the window passed in.
23047
23048         3. SendMessage's WM_DESTROY to all he handles in the accumulated
23049         list.
23050
23051 2006-10-13  Chris Toshok  <toshok@ximian.com>
23052
23053         * XplatUIX11.cs: set hwnd.zombie to true before calling
23054         SendMessage (WM_DESTROY).  this keeps us from marking the new
23055         window a zombie, and also keeps us from calling sendmessage at
23056         all.
23057
23058 2006-10-13  Jackson Harper  <jackson@ximian.com>
23059
23060         * TextControl.cs: Do not show the caret and selection at the same
23061         time.  Reduces ugliness by 35%.
23062
23063 2006-10-13  Chris Toshok  <toshok@ximian.com>
23064
23065         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
23066         zombie after we do the recursive call, so we actually do call
23067         SendMessage on the children controls.
23068         (GetMessage): if we find a pending paint event for a zombie hwnd,
23069         remove the hwnd from the paint queue, or else it will always be
23070         there (and we'll effectively loop infinitely)
23071
23072 2006-10-13  Mike Kestner  <mkestner@novell.com>
23073
23074         * MenuItem.cs : add Selected format under keynav too.
23075         Fixes #79528.
23076
23077 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
23078
23079         * PropertyGrid.cs: Fixed some NRE's and small difference between our
23080         implementation and that of MS.
23081
23082 2006-10-13  Chris Toshok  <toshok@ximian.com>
23083
23084         * Control.cs (OnInvalidated) only futz with the invalid_region if
23085         the control is double buffered.  this fixes the apparent hang in
23086         the ListView unit tests.  Someone needs to make the
23087         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
23088
23089 2006-10-13  Chris Toshok  <toshok@ximian.com>
23090
23091         * PropertyGridView.cs:
23092
23093         - do a little refactoring so that only one place calls
23094         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
23095         else call that.  Also make it Refresh, since there are redraw bugs
23096         otherwise (we should take a look at that...)
23097
23098         - do a little more refactoring work to share the body of code
23099         involved with the drop down.  it was duplicated in the code
23100         dealing with the listbox handling and in the code dealing with the
23101         UITypeEditors.
23102
23103         - add a Capture to the dropdown form's control once it's
23104         displayed, and add a MouseDown handler that checks to make sure
23105         the position is inside the control.  If it's not, close the
23106         dropdown.  This fixes #78190.
23107
23108         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
23109         if the value is different than the initial value.
23110         
23111 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
23112
23113         * Control.cs: see #78650
23114         - Fixed GetNextControl for several cases:
23115                 - Changed FindFlatForward to return 
23116                 correct sibling control when more than one
23117                 control has same TabIndex as the currently 
23118                 focused one.
23119                 - Changed FindFlatBackward to loop children
23120                 from last to first and apply same logic as in
23121                 FindFlatForward
23122                 - Changed FindControlForward to search for
23123                 children when control is not a container
23124                 but has children, or search for siblings if
23125                 control is a container...
23126                 - Changed FindControlBackward   to continue
23127                 searching for child controls when hitting 
23128                 Panel-like parents
23129                 
23130         - Fixed Focus method to update ActiveControl
23131         (FocusTest.FocusSetsActive failure)
23132         
23133         * TabControl.cs:
23134         - Focus rectangle now refreshes when gaining
23135         or losing focus
23136         - Removed grab for Tab key on IsInputKey that 
23137         was keeping tab navigation from working (#78650)
23138
23139 2006-10-13  Chris Toshok  <toshok@ximian.com>
23140
23141         * PropertyGridView.cs:
23142         - Rewrite SetPropertyValue to loop over SelectedGridItem's
23143         SelectedObjects.
23144
23145         - Deal with GridItem.Value == null a few places.
23146
23147         * PropertyGrid.cs: 
23148         - replace the PopulateGridItemCollection with a pair of methods
23149         which compute the intersection of all the properties in the
23150         SelectedObjects array.  Fixes #79615.
23151
23152         - Throw ArgumentException from set_SelectedObjects if there's a
23153         null in the array.
23154
23155         - Add GetTarget method which can be used to traverse up the
23156         GridItem.Parent chain.  It depends on the assumption that
23157         selected_objects for different GridEntries are always in the same
23158         order (a safe assumption).  Use this method and loop over all the
23159         selected objects in the entry when calling RemoveValueChanged and
23160         AddValueChanged.
23161         
23162         * GridEntry.cs: Make this handle multiple selected objects.
23163         .Value returns null if not all the selected objects share the same
23164         value.
23165
23166 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
23167         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
23168           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
23169           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
23170           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
23171           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
23172         add additional functionality.
23173
23174 2006-10-12  Mike Kestner  <mkestner@novell.com>
23175
23176         * ErrorProvider.cs : new ToolTipWindow ctor sig.
23177         * HelpProvider.cs : new ToolTipWindow ctor sig.
23178         * ToolTip.cs : remove ToolTip param from Window sig since it is
23179         not used.
23180         * ToolBar.cs : add tooltip support.  Fixes #79565.
23181
23182 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
23183
23184         * ComboBox.cs: move the events in set_SelectedIndex to 
23185         after the call to HighlightIndex in order to avoid 
23186         possible recursion and subsequent problems with the call
23187         to HighlightIndex and include a range check in 
23188         set_HighlightIndex. Fixes #79588
23189         
23190 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
23191
23192         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
23193         to ui thread's settings instead of sunday. 
23194         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
23195
23196 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
23197
23198         * DateTimePicker.cs
23199         * MonthCalendar.cs
23200         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
23201         and implement missing functionality (selecting different parts 
23202         of the date and edit them individually with the keyboard).
23203         
23204 2006-10-11  Chris Toshok  <toshok@ximian.com>
23205
23206         * Control.cs (OnInvalidated): fix NRE relating to last change.
23207
23208 2006-10-11  Chris Toshok  <toshok@ximian.com>
23209
23210         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
23211         atoms in _NET_WM_STATE here if the window is maximized.  We need
23212         to do this because we're *replacing* the existing _NET_WM_STATE
23213         property, so those atoms will be lost otherwise, and any further
23214         call to GetWindowState will return Normal for a window which is
23215         actually maximized.  Fixes #79338.
23216
23217 2006-10-11  Jackson Harper  <jackson@ximian.com>
23218
23219         * TextControl.cs: Special case for setting selection end to
23220         selection start, we basically kill the anchor.
23221         - some todo comments.
23222
23223 2006-10-11  Chris Toshok  <toshok@ximian.com>
23224
23225         * Control.cs: switch to using an "invalid_region" to track which
23226         parts of the image buffer need updating.  This is more code than
23227         the simple fix from r66532.  That version just attempted to always
23228         fill the entire buffer on redraw, which turns out to be
23229         inefficient when invalidating small rectangles.  This version
23230         simply adds the invalid rectangle to the invalid region.  When we
23231         get any WM_PAINT message we see if it can be filled using the
23232         image buffer, and if it can't (if the paint event's clip rectangle
23233         is visible in the invalid region) we first fill the image buffer.
23234         So, the image buffer is still a cache, we just fill it lazily.
23235
23236         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
23237         need it any longer.
23238
23239 2006-10-11  Chris Toshok  <toshok@ximian.com>
23240
23241         * XplatUIX11.cs (SetWindowPos): we need to update both position as
23242         well as size after calling XMoveResizeWindow.  This keeps us from
23243         ignoring future SetWindowPos calls.  Fixes the disappearing
23244         DateTimePicker in the ToolBarDockExample from bug #72499.
23245
23246 2006-10-11  Chris Toshok  <toshok@ximian.com>
23247
23248         * TextBoxBase.cs: reorder things a bit when it comes to
23249         resizing-causing-recalculation.  we were recalculating the
23250         document when our position was changed, which shouldn't happen.
23251         We only care about size changes.  Clear up some more redundant
23252         recalculation calls while I'm at it.  This makes the toolbar dock
23253         example snappy when you're just dragging toolbars around (since it
23254         causes a relayout whenever you move one.)
23255
23256 2006-10-11  Chris Toshok  <toshok@ximian.com>
23257
23258         * ToolBarButton.cs (get_Rectangle): this only returns
23259         Rectangle.Empty if Visible == false, or Parent == null.
23260         Parent.Visible doesn't matter.
23261
23262 2006-10-10  Chris Toshok  <toshok@ximian.com>
23263
23264         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
23265         by .net 1.1, so switch to an internal method instead.
23266
23267 2006-10-10  Chris Toshok  <toshok@ximian.com>
23268
23269         * Control.cs (WM_PAINT): when a control is double buffered we draw
23270         initially to the ImageBuffer and then copy from there.  But when a
23271         parent control which has child controls is double buffered, the
23272         initial drawing doesn't encompass the entire ClientRectangle of
23273         the parent control, so we end up with uninitialized bits (this is
23274         easily seen by dragging the top toolbar in
23275         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
23276         manually set the ClipRectangle of the paint_event (only the one we
23277         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
23278         of the nastiness in bug #72499.
23279
23280         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
23281         which we use in Control.cs's WM_PAINT handling.
23282
23283 2006-10-10  Jackson Harper  <jackson@ximian.com>
23284
23285         * TextBoxBase.cs: Finish off the autoscrolling stuff.
23286
23287 2006-10-10  Chris Toshok  <toshok@ximian.com>
23288
23289         * Cursor.cs: Apply a slightly different patch to the one suggested
23290         in #79609.
23291
23292 2006-10-10  Jackson Harper  <jackson@ximian.com>
23293
23294         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
23295         not the parent form.
23296         * TextControl.cs: use difference in old line count vs new count to
23297         calculate how many lines were added, this takes into account soft
23298         line breaks properly.
23299
23300 2006-10-10  Chris Toshok  <toshok@ximian.com>
23301
23302         * LinkLabel.cs: don't call MeasureCharacterRanges against a
23303         rectangle located at 0,0 and the size of the text.  Use
23304         ClientRectangle instead.  This fixes rendering of non-left aligned
23305         link labels.
23306
23307 2006-10-10  Jackson Harper  <jackson@ximian.com>
23308
23309         * TextBoxBase.cs: When we set the selection start position the
23310         caret.
23311         * TextControl.cs: Need to update the caret when we decrement it to
23312         zero.
23313         - Make sure that the selection_visible flag gets reset to false if
23314         the selection isn't visible.  Before this you could get it set to
23315         visible by changing the selection start, then changing the end to
23316         equal the start.
23317
23318 2006-10-09  Jackson Harper  <jackson@ximian.com>
23319
23320         * TreeView.cs: Don't update scrollbars when we aren't visible.
23321         * TreeNodeCollection.cs: Only need to update scrollbars if being
23322         added to an expanded visible node or the root node.
23323
23324 2006-10-09  Chris Toshok  <toshok@ximian.com>
23325
23326         * XplatUIX11.cs (SendMessage): fix NRE.
23327
23328 2006-10-09  Jackson Harper  <jackson@ximian.com>
23329
23330         * TextBoxBase.cs: Implement horizontal autoscrolling.
23331         * TextControl.cs: Add a movement types that allows moving forward
23332         and backwards without wrapping.
23333
23334 2006-10-09  Mike Kestner  <mkestner@novell.com>
23335
23336         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
23337         with focus "expansion" of labels.  Fixes #79532 and then some.
23338         * ThemeWin32Classic.cs : add LineLimit to ListView label format
23339         when wrapping.
23340
23341 2006-10-09  Jackson Harper  <jackson@ximian.com>
23342
23343         * TextBoxBase.cs: Set the default max values to MaxValue since
23344         we use the scrollbar for autoscrolling and the default value is
23345         100.  If we don't do this the caret won't keep up with typing
23346         after about 18 characters.
23347         * TextControl.cs: Make sure the selection is offset by the
23348         viewport x.  This fixes selection when using auto scrolling.
23349
23350 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
23351         
23352         * Form.cs: The active control should be selected after the 
23353         OnLoad so that any child control initialization that affects
23354         the selection is done. Fixes #79406
23355
23356 2006-10-06  Chris Toshok  <toshok@ximian.com>
23357
23358         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
23359         to have no evil effects.
23360
23361         - Stop selecting StructureNotifyMask on non-toplevel windows.
23362
23363           The only way children should be resized is by using the SWF api,
23364           and we already send WM_WINDOWPOSCHANGED messages in those cases.
23365           Toplevel windows can be interacted with via the window manager,
23366           and so we keep the input mask there.
23367
23368           The other event StructureNotifyMask gives us (that we care
23369           about) is DestroyNotify.  The code is already structured such
23370           that it assumes we won't be getting a DestroyNotify event for
23371           the window we pass to XDestroyWindow (which is what
23372           StructureNotifyMask is supposed to guarantee.)  So, that code
23373           shouldn't be affected by this either.
23374
23375         - Stop selecting VisibilityChangeMask altogether.
23376
23377           We weren't doing anything with the resulting events anyway.
23378         
23379         This vastly reduces the number of X requests and events we see
23380         when resizing/laying out a large ui.
23381
23382 2006-10-06  Chris Toshok  <toshok@ximian.com>
23383
23384         * ScrollableControl.cs (DisplayRectangle): we need to take into
23385         account the DockPadding regardless of whether or not auto_scroll
23386         == true.  rework this slightly to this effect, and fix bug #79606,
23387         and part of #72499 (you can now see the drag handles and drag
23388         toolbars around).
23389
23390 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
23391
23392         * ListViewItem.cs: Collections of selected and checked items are now
23393         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
23394         we mark the collection "dirty".
23395         * ListView.cs: Marked collections readonly. Modified UpdateSelection
23396         to only clear SelectedItems when a new item is selected and MultiSelect
23397         is enabled. CheckedItems and SelectedItems now subscribe to Changed
23398         event of ListViewItemCollection, and mark its list dirty whenever
23399         that event is fire. This allows us to return selected/checked items 
23400         in the same order as they are in the Items collection. This matches
23401         the MS behavior.
23402
23403 2006-10-06  Chris Toshok  <toshok@ximian.com>
23404
23405         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
23406         right mouse clicks.  Fixes bug #79593.
23407
23408 2006-10-06  Chris Toshok  <toshok@ximian.com>
23409
23410         * Splitter.cs: doh, fix splitters that don't want to cancel the
23411         movement when you drag them.  Also, impose the limits on the
23412         values we send to the SplitterMovingEvent.  Fixes #79598.
23413
23414 2006-10-06  Jackson Harper  <jackson@ximian.com>
23415
23416         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
23417         since we use this for auto scrolling also.
23418
23419 2006-10-05  Chris Toshok  <toshok@ximian.com>
23420
23421         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
23422         beginning to think that most datagrid column types don't need this
23423         method.  Fixes bug #79392.
23424
23425 2006-10-05  Chris Toshok  <toshok@ximian.com>
23426
23427         * DataGrid.cs: move back to a more lazy scheme for creating the
23428         CurrencyManager, so we aren't updating it every time you set
23429         either DataSource or DataMember.  Also, don't call
23430         RecreateDataGridRows if the currency manager hasn't changed.
23431
23432 2006-10-05  Chris Toshok  <toshok@ximian.com>
23433
23434         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
23435         emitted, SelectedIndex should already be updated.  Fixes bug
23436         #78929.
23437
23438 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
23439
23440         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
23441           ToolStripTextBox.cs: Initial commit.
23442         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
23443
23444 2006-10-05  Jackson Harper  <jackson@ximian.com>
23445
23446         * TabControl.cs: We need to invalidate the tab control area when
23447         new ones are added (duh).
23448
23449 2006-10-03  Chris Toshok  <toshok@ximian.com>
23450
23451         * Form.cs (ProcessDialogKey): if the focused control is in this
23452         form and is a button, call its PerformClick method here.  Fixes
23453         #79534.
23454
23455 2006-10-04  Jackson Harper  <jackson@ximian.com>
23456
23457         * TabPage.cs: Ignore setting of Visible, and add an internal
23458         method for setting the controls visibility.  TabPage's Visible
23459         property is a little strange on MS, this seems to make us
23460         compatible, and fixes cases where people set all the tab pages to
23461         visible.
23462         * TabControl.cs: Use the new internal setting on tab pages
23463         visibility.
23464
23465 2006-10-03  Mike Kestner  <mkestner@novell.com>
23466
23467         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
23468
23469 2006-10-03  Mike Kestner  <mkestner@novell.com>
23470
23471         * ListView.cs : use is_visible instead of Visible to check if 
23472         scrollbars should be placed/sized.  Also some max_wrap_width
23473         love for LargeIcon view.  [Fixes #79533]
23474
23475 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
23476
23477         * TextControl.cs :
23478           Make set_TextAlign() do actually update the align. Fixed #78403.
23479
23480 2006-10-03  Chris Toshok  <toshok@ximian.com>
23481
23482         * DataGrid.cs: fix a crash when switching datasources if the
23483         vertical scrollbar is at someplace other than Value = 0.  Also,
23484         reduce the number of recalculation passes we do in SetDataSource
23485         from 2 to 1.
23486
23487 2006-10-03  Jackson Harper  <jackson@ximian.com>
23488
23489         * TextBoxBase.cs: Move the if value the same bail check up, we
23490         don't want to empty the document if it is already empty, this
23491         seems to severly mess up the caret.  TODO: I should probably fix
23492         the empty statement to update teh caret somehow.
23493
23494 2006-10-03  Chris Toshok  <toshok@ximian.com>
23495
23496         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
23497         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
23498         reflection, an internal row type, properties on said type, etc.)
23499         will work with our datagrid.  Fixes #79531.
23500
23501 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
23502
23503         * FileDialog.cs: Don't crash if a path is not accessible
23504           (System.UnauthorizedAccessException). Fixes #79569.
23505         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
23506           a ':' too. Return unknown icon for those paths/files.
23507
23508 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
23509
23510         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
23511         GetContainerControl returns null.
23512
23513 2006-10-02  Chris Toshok  <toshok@ximian.com>
23514
23515         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
23516         call to XGetWindowAttributes instead of "handle".  fixes an X
23517         error using notifyicon after the NotifyIconWindow to Form base
23518         class switch.
23519
23520 2006-10-02  Chris Toshok  <toshok@ximian.com>
23521
23522         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
23523         server grab and looping we need to do to get down to the most
23524         deeply nested child window.
23525         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
23526         QueryPointer again after the WarpPointer so we can generate a
23527         proper (fake) MotionNotify event to be enqueued in the destination
23528         window's queue.
23529         (GetCursorPos): call QueryPointer.
23530
23531         Fixes #79556.
23532
23533 2006-10-02  Jackson Harper  <jackson@ximian.com>
23534
23535         * NotifyIcon.cs: Derive the notify icon from a form, so things
23536         like FindForm work on it.
23537         - Swallow the WM_CONTEXTMENU message, since that is generated on
23538         mouse down, and context menu is a mouse up kinda guy.  I believe
23539         the correct fix here is probably to make the notify icon entirely
23540         NC area, but this seems to work fine for anyone not manipulating
23541         WndProc.
23542
23543 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
23544
23545         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
23546           ToolStripItemCollection.cs, ToolStripLabel.cs,
23547           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
23548           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
23549           Initial implementation.
23550         * TextRenderer.cs: Provide padding to MeasureText.
23551
23552 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
23553
23554         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
23555         of ButtonBaseAccessibleObject. Fix bug #79552.
23556
23557 2006-10-02  Jackson Harper  <jackson@ximian.com>
23558
23559         * MdiWindowManager.cs: When maximizing use the containers client
23560         rect, not it's bounds, so nc area is accounted correctly.
23561         - Use the parent form's size for the menu position, since the
23562         client isn't always the full form size.
23563
23564 2006-10-01  Chris Toshok  <toshok@ximian.com>
23565
23566         * ScrollableControl.cs: make sure neither right_edge or
23567         bottom_edge are < 0, since they're used as LargeChange for the
23568         horiz/vert scrollbars respectively.  Fixes #79539.
23569
23570 2006-10-01  Chris Toshok  <toshok@ximian.com>
23571
23572         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
23573         the xplatuix11 code can cause us to destroy/recreate our handle.
23574
23575         * XplatUIX11.cs
23576         (SystrayAdd):
23577         - this code can be invoked many times for the same Hwnd.  Make
23578           sure we only destroy the client window once (the first time this
23579           method is called).  This fixes bug #79544.
23580         - Remove the call to the improperly bound XSync.  why we had two
23581           bindings to this, I will never know, but this call resulted in
23582           events being discarded from the queue(!).
23583         - correct a misunderstanding of _XEMBED_INFO - the second atom is
23584           not our current state but the state we wish to be in.  So, 0 if
23585           we don't want to be mapped.  Change it to 1.
23586         (SystrayRemove): The XEMBED spec makes mention of the fact that
23587         gtk doesn't support the reparent of client windows away from the
23588         embedder.  Looking at gtksocket-x11.c seems to agree with this.
23589         The only avenue we have for removing systray icons is to destroy
23590         them.  We don't want the handle to go away for good, though, so
23591         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
23592         #79545.
23593         
23594 2006-10-01  Chris Toshok  <toshok@ximian.com>
23595
23596         * Form.cs (WndProc): inline the native_enabled variable usage into
23597         the cases in which it's used.  Fixes #79536.
23598
23599 2006-09-29  Mike Kestner  <mkestner@novell.com>
23600
23601         * ListView.cs : toggle the selection state for ctrl clicks in 
23602         multiselect mode. [Fixes #79417]
23603
23604 2006-09-29  Mike Kestner  <mkestner@novell.com>
23605
23606         * ListView.cs : kill CanMultiSelect and refactor the selection
23607         code to support multiselection in the absence of mod keys. Steal
23608         arrow/home/end keys by overriding InternalPreProcessMessage to
23609         restore regressed keynav behavior.
23610         [Fixes #79416]
23611
23612 2006-09-29  Jackson Harper  <jackson@ximian.com>
23613
23614         * MdiClient.cs: Repaint the titlebars when the active window is
23615         changed.
23616
23617 2006-09-29  Chris Toshok  <toshok@ximian.com>
23618
23619         * Application.cs: when entering a runloop with a modal, make sure
23620         the hwnd is enabled.  Fixes #79480.
23621
23622 2006-09-29  Chris Toshok  <toshok@ximian.com>
23623
23624         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
23625         when ListManager.CanAddRows == false, bump us back one.
23626
23627         * DataGridColumnStyle.cs (ParentReadOnly): remove the
23628         listmanager.CanAddRows check.  This makes ArrayLists uneditable
23629         using a datagrid, which is not right.
23630         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
23631         is an IEditable, but call property_descriptor.SetValue regardless.
23632         fixes #79435.
23633
23634 2006-09-29  Chris Toshok  <toshok@ximian.com>
23635
23636         * DataGridBoolColumn.cs: we need to test equality in the face of
23637         possible null values (as is the case with the default NullValue).
23638         This patch keeps us from crashing in that case.
23639
23640 2006-09-29  Jackson Harper  <jackson@ximian.com>
23641
23642         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
23643         here, since it will get called for every node collection in the
23644         tree. This is now done in the treeview once the sorting is
23645         finished.
23646         * TreeView.cs: Recalculate the visible order, and update the
23647         scrollbars after sorting, set the top nope to the root so that the
23648         recalc actually works.
23649
23650 2006-09-29  Chris Toshok  <toshok@ximian.com>
23651
23652         * LinkLabel.cs: more handling of the default link collection in
23653         the face of LinkArea manipulation.  The default link collection
23654         contains 1 element (start=0,length=-1).  If the user sets LinkArea
23655         to anything and the links collection is the default, clear it.
23656         Then only add the link if its nonempty.  Fixes #79518.
23657
23658 2006-09-29  Chris Toshok  <toshok@ximian.com>
23659
23660         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
23661         piece correctly when we hit a '\n'.  Fixes #79517.
23662
23663 2006-09-29  Chris Toshok  <toshok@ximian.com>
23664
23665         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
23666         change the binding of gdk_init_check to take two IntPtr's, and
23667         pass IntPtr.Zero for both of them.  Fixes #79520.
23668
23669 2006-09-29  Mike Kestner  <mkestner@novell.com>
23670
23671         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
23672         [Fixes #78779]
23673
23674 2006-09-28  Jackson Harper  <jackson@ximian.com>
23675
23676         * XplatUIX11.cs: When translating NC messages make sure we go from
23677         whole window to screen, not client window to screen.
23678         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
23679         method doesn't exist
23680         - Skip over controls that aren't forms when arranging.
23681
23682 2006-09-28  Jackson Harper  <jackson@ximian.com>
23683
23684         * XplatUIWin32.cs: Clip the rect to the parent window.
23685         * XplatUIStructs.cs: Add clipping modes struct.
23686         * InternalWindowManager.cs: New private method that factors title
23687         bar heights in when calculating the pos of an NC mouse message.
23688         - Use SendMessage to force a paint when the form's size is changed
23689         instead of painting the decorations immediately.
23690         - Don't let the NC button click messages get to DefWndProc,
23691         because they will attempt to handle windowing themself, and this
23692         messes up z-order (it will put them in front of the scrollbars).
23693         * XplatUIX11.cs: Make sure that we don't reset window managers if
23694         we already have one (ie the window is an MDI window).
23695
23696 2006-09-28  Chris Toshok  <toshok@ximian.com>
23697
23698         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
23699         menu code really needs going over.
23700
23701 2006-09-27  Chris Toshok  <toshok@ximian.com>
23702
23703         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
23704         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
23705         window is maximizable.  So, we need to make sure that even if we
23706         clear the border/wm frame of those functions, they're still
23707         available (basically, we remove the decoration without removing
23708         the function).  Half the fix for #79338.
23709
23710 2006-09-27  Chris Toshok  <toshok@ximian.com>
23711
23712         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
23713         Fixes bug #79515.
23714
23715 2006-09-27  Chris Toshok  <toshok@ximian.com>
23716
23717         * Splitter.cs: reorder things a bit so that we don't actually
23718         draw/move the splitter until after calling OnSplitterMoving.  This
23719         lets users cancel/disallow the movement by explicitly setting
23720         event.SplitX/SplitY.  Fixes #79372.
23721
23722 2006-09-27  Jackson Harper  <jackson@ximian.com>
23723
23724         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
23725         because it is most likely on a window being destroyed, and that
23726         will give us an X11 error.
23727
23728 2006-09-27  Chris Toshok  <toshok@ximian.com>
23729
23730         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
23731         the dropdown button now toggles between showing and hiding the
23732         dropdown.  Also, get rid of dropdown_form_showing and just use
23733         dropdown_form.Visible.  We still don't do a grab, but I'll leave
23734         that part to someone who has handled Capture-fu before.
23735
23736 2006-09-27  Chris Toshok  <toshok@ximian.com>
23737
23738         * DataGrid.cs: return false if alt isn't pressed when '0' is
23739         pressed.  this keeps the '0' key from being swallowed, and fixes
23740         bug #79350.
23741
23742 2006-09-27  Chris Toshok  <toshok@ximian.com>
23743
23744         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
23745         Calling Refresh (in response to a scrollbar event) screws up the
23746         scrollbar painting.  Fixes bug #78923.
23747
23748 2006-09-27  Chris Toshok  <toshok@ximian.com>
23749
23750         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
23751         then insert into hashtable" blocks threadsafe.
23752
23753 2006-09-27  Chris Toshok  <toshok@ximian.com>
23754
23755         * MessageBox.cs (CreateParams): the styles should be |'ed with our
23756         baseclass's, since otherwise the
23757         ControlBox/MinimizeBox/MaximizeBox assignments above have no
23758         effect.  This gets the close button back in messageboxes.
23759
23760 2006-09-27  Chris Toshok  <toshok@ximian.com>
23761
23762         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
23763         flag, not just != 0.  this makes flags that are actually multiple
23764         bits (like WS_CAPTION) work.  fixes bug #79508.
23765
23766 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
23767
23768         * PageSetupDialog.cs: add support for getting and settings the 
23769         paper size, source and orientation.
23770
23771 2006-09-26  Chris Toshok  <toshok@ximian.com>
23772
23773         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
23774         and caption == "", we need to remove the resize handles as well as
23775         the title bar.
23776
23777         * Control.cs (set_Text): turns out that setting Text on a form
23778         should change the WM styles on the window, since if ControlBox ==
23779         false, the only way to get a window border is to have a non-""
23780         Text property.  check winforms/forms/text.cs for an example.  so,
23781         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
23782         update both window styles and title.  This fixes a lot of dialogs
23783         (including the preferences dialog in MonoCalendar.)
23784
23785 2006-09-26  Chris Toshok  <toshok@ximian.com>
23786
23787         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
23788         control isn't a Form), call Win32ShowWindow to hide the window,
23789         but don't update the control Visible property.  When we reparent
23790         back to a parent control, call SetVisible in order for the
23791         window's visibility to be reinstated.
23792
23793         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
23794         the FosterParent.
23795
23796         * Control.cs (ControlCollection.Remove): remove that value.Hide()
23797         call for good, since it breaks MonoCalendar (and other things I'm
23798         sure.) Also, set all_controls to null *after* the owner calls,
23799         which end up regenerating it.
23800         (ChangeParent): allow new_parent to be == null, passing
23801         IntPtr.Zero down to XplatUI.
23802
23803         this fixes #79294 the right way.
23804
23805 2006-09-26  Mike Kestner  <mkestner@novell.com>
23806
23807         * GridEntry.cs : internal SetParent method.
23808         * PropertyGrid.cs : attach to property changed on the proper
23809         target if we have a hierarchical grid with subobjects. Setup
23810         GridItem.Parent for hierarchical items.
23811         * PropertyGridView.cs : Set value on the correct target for
23812         hierarchical grids. [Fixes #78903]
23813
23814 2006-09-26  Chris Toshok  <toshok@ximian.com>
23815
23816         * Control.cs (ChildNeedsRecreating): this should return true if
23817         either we're being recreated and the child is in our list, or our
23818         parent is waiting for our recreation.
23819
23820 2006-09-26  Chris Toshok  <toshok@ximian.com>
23821
23822         * Control.cs (ControlCollection.Remove): reinstate the
23823         value.Hide() call as suggested in bug #79294.
23824
23825 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
23826
23827         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
23828         coordinates (versus a relative move).
23829
23830 2006-09-26  Chris Toshok  <toshok@ximian.com>
23831
23832         * Control.cs: rework child recreation a little bit.  It turns out
23833         that we race between the DestroyNotify the WM_DESTROY message.  If
23834         the parent gets its DestroyNotify before the child gets the
23835         WM_DESTROY message, the child ends up not recreating (since the
23836         parent finishes its recreation on DestroyNotify, and the child
23837         checks ParentIsRecreating.)
23838
23839         So, instead we store off a list of all the child controls which
23840         need to be recreated when the parent control starts to recreate
23841         itself.  Then, when child controls get their WM_DESTROY message we
23842         check to see if they're in the parent's pending recreation list,
23843         and if so, we recreate.  This removes all dependency on ordering
23844         from the code and fixes the initial MonoCalendar upgrade dialog.
23845         
23846 2006-09-26  Jackson Harper  <jackson@ximian.com>
23847
23848         * TextControl.cs: Use the Line to get the length of the line,
23849         since soft line breaks can change the end line.
23850
23851 2006-09-26  Chris Toshok  <toshok@ximian.com>
23852
23853         * Control.cs (ControlCollection.AddImplicit): don't add the
23854         control again if it's already in one of our lists.  This keeps us
23855         from adding controls over and over again for comboboxes when their
23856         handle gets recreated (as the combobox adds implicit controls in
23857         OnHandleCreated).  Fixes the X11 errors in bug #79480.
23858
23859 2006-09-26  Jackson Harper  <jackson@ximian.com>
23860
23861         * TextControl.cs: When deleting characters make sure that any
23862         orphaned zero lengthed tags get deleted.
23863         - Fix ToString for zero lengthed tags.
23864
23865 2006-09-25  Jackson Harper  <jackson@ximian.com>
23866
23867         * TextControl.cs: When getting a tag at the location there can be
23868         multiple tags at the same spot, these are 0-lengthed tags that
23869         appear when extra formatting has been stuck in a location.  We
23870         need to pull out the last of these 0 lengthed tags.
23871
23872 2006-09-25  Jackson Harper  <jackson@ximian.com>
23873
23874         * TextControl.cs: Fix print out in debug method.
23875         * TextBoxBase.cs: When text is set bail if we are setting to the
23876         previous value.
23877         
23878 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
23879
23880         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
23881           It is now possible to change the selected index in a FontXXXListBox
23882           with the up and down arrow keys from the FontXXXTextBoxes.
23883           Also, send the FontXXXTextBox mouse wheel event to the corresponding
23884           FontXXXListBoxes to match ms.
23885
23886 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
23887
23888         * SystemInformation.cs: Return a clone of the theme's MenuFont because
23889         anyone can dispose it, anytime. All other properties returns enums, 
23890         structs or basic types so they don't need such tricks.
23891
23892 2006-09-22  Jackson Harper  <jackson@ximian.com>
23893
23894         * XplatUI.cs:
23895         * XplatUIWin32.cs:
23896         * Clipboard.cs:
23897         * DataFormats.cs:
23898         * XplatUIOSX.cs:
23899         * XplatUIDriver.cs: Update interface to add a primary selection
23900         flag, so the driver can use the primary selection buffer if
23901         needed.
23902         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
23903
23904         * RichTextBox.cs: We need to supply the data object to paste now
23905         (so we can choose to supply CLIPBOARD or PRIMARY).
23906         * TextBoxBase.cs: Supply data object to paste (see above).
23907         - Middle click uses the primary selection data object.
23908         
23909 2006-09-21  Chris Toshok  <toshok@ximian.com>
23910
23911         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
23912         of SetWMStyles.  It's still a rat's nest and is largely
23913         order-dependent which I dislike immensely.  This also fixes the X
23914         button disappearing from toplevel forms.
23915
23916 2006-09-21  Mike Kestner <mkestner@novell.com>
23917
23918         * ListBox.cs: move Jordi's click/dblclick raising code to the
23919         mouse up handler.
23920
23921 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
23922
23923         * ListBox.cs: Fixes 79450
23924
23925 2006-09-21  Mike Kestner <mkestner@novell.com>
23926
23927         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
23928         to deal with people updating the TreeNodeCollection after the tree
23929         is disposed.  "Fixes" 79330.
23930
23931 2006-09-20  Jackson Harper <jackson@ximian.com>
23932
23933         * TextControl.cs: Push the cursor record onto the undo stack
23934         before the delete action. This fixes 78651.
23935
23936 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
23937
23938         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
23939         CreateParams. Fixes 79329.
23940
23941 2006-09-19  Chris Toshok  <toshok@ximian.com>
23942
23943         * XplatUIX11.cs: a couple of blanket code massage passes to clean
23944         things up a bit.  First, get rid of the NetAtoms array (and the NA
23945         enum), and just embed the atoms as static fields.  Also, add a
23946         couple of functions (StyleSet and ExStyleSet) to clean up all the
23947         bitmask testing of styles.
23948
23949         * X11Structs.cs: remove the NA enum, not needed anymore.
23950         
23951 2006-09-19  Chris Toshok  <toshok@ximian.com>
23952
23953         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
23954         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
23955         added cleanup to get MessageBox titles appearing again, which were
23956         broken by my earlier fix for caption-less/ControlBox-less windows.
23957
23958 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
23959
23960         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
23961           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
23962           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
23963           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
23964           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
23965           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
23966           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
23967           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
23968           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
23969           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
23970           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
23971             Inital import.
23972         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
23973           ToolStripButton.cs: Stubs needed for above.
23974         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
23975
23976 2006-09-15  Chris Toshok  <toshok@ximian.com>
23977
23978         * XplatUIX11.cs:
23979         - make the MessageQueues hashtable Synchronized.
23980         
23981         - SendMessage: if the Hwnd is owned by a different thread, use the
23982         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
23983         thread.  Fixes bug #79201.
23984
23985 2006-09-15  Chris Toshok  <toshok@ximian.com>
23986
23987         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
23988         ControlBox == false, we disallow maximize/minimize/close.  If the
23989         form Caption is "" we also disallow move (and get rid of the Title
23990         decoration).  Unfortunately, regardless of how things are set,
23991         we're stuck with the Title and WM menu.
23992
23993 2006-09-15  Chris Toshok  <toshok@ximian.com>
23994
23995         * Application.cs: add locking around the static message_filters
23996         ArrayList, part of #79196.
23997
23998 2006-09-15  Chris Toshok  <toshok@ximian.com>
23999
24000         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
24001         Form.ControlBox == false, the window has no titlebar nor resize
24002         handles.  fixes bug #79368.
24003
24004 2006-09-15  Chris Toshok  <toshok@ximian.com>
24005
24006         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
24007         >= 0.  Fixes bug #79370.
24008
24009 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
24010         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
24011         * Control.cs:
24012             Add properties: LayoutEngine, Margin, DefaultMargin.
24013             Add method: GetPreferredSize.
24014             Move layout logic from PerformLayout to layout engines. 
24015
24016 2006-09-13  Chris Toshok  <toshok@ximian.com>
24017
24018         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
24019         fix for #79326 broke #78718, so this change addresses that.
24020
24021         - in SendWMDestroyMessages remove the call to
24022         CleanupCachedWindows, since we might be recreating the control and
24023         need to maintain the references to right Hwnd handles.  Also, set
24024         the zombie flag to true for each of the children in the hierarchy
24025         instead of calling hwnd.Dispose.  This will cause GetMessage to
24026         ignore all events for the window except for DestroyNotify.
24027
24028         - In GetMessage, ignore messages except for DestroyNotify for
24029         zombie hwnds.
24030         
24031         * Control.cs: revert the is_recreating fix from the last
24032         ChangeLog.  It's definitely "right", but it breaks switching from
24033         an MDI form to a non-MDI form.  Will need to revisit that.
24034
24035         * Hwnd.cs: add a zombie flag, which means "the
24036         client_window/whole_window handles are invalid, but we're waiting
24037         for the DestroyNotify event to come in for them".  Set the flag to
24038         false explicitly if setting WholeWindow/ClientWindow, and also
24039         when Disposing.
24040         
24041 2006-09-13  Chris Toshok  <toshok@ximian.com>
24042
24043         * XplatUIX11.cs: rework window destruction slightly.
24044
24045         - when destroying the windows associated with a control, we don't
24046         need 2 separate XDestroyWindow calls.  Just the one for the
24047         whole_window (or for client_window if whole_window is somehow
24048         IntPtr.Zero -- can this happen?) is enough.
24049
24050         - reworked SendWMDestroyMessages slightly, so we always dispose
24051         the child control hwnd's after sending the messages.
24052         
24053         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
24054         the two places it was used (one was even using hwnd.Handle and the
24055         other hwnd.client_window.  ugh), adding another call in
24056         SendWMDestroyMessages.  We need this new call because now the
24057         DestroyNotify events in the queue will be ignored for the child
24058         controls (as their hwnd's were disposed, and the window id's
24059         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
24060
24061         - this fixes bug #79326.
24062
24063 2006-09-13  Chris Toshok  <toshok@ximian.com>
24064
24065         * Control.cs: don't always set is_recreating to false at the end
24066         of RecreateHandle, since sometimes we're not done (and won't be
24067         until WndProc handles the WM_DESTROY message).  Also, set
24068         is_recreating to false in the WM_DESTROY handling code.  Part of
24069         the fix for bug #79326.
24070
24071 2006-09-13  Miguel de Icaza  <miguel@novell.com>
24072
24073         * X11DesktopColors.cs: Start the droppage of debugging messages.
24074
24075         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
24076
24077 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
24078
24079         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
24080
24081 2006-09-12  Chris Toshok  <toshok@ximian.com>
24082
24083         * DataGrid.cs (get_ListManager): if the list_manager is null, try
24084         to create it using SetDataSource.  Fixes bug #79151.
24085
24086 2006-09-11  Chris Toshok  <toshok@ximian.com>
24087
24088         * XEventQueue.cs: add a DispatchIdle property.
24089
24090         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
24091         either the queue is null, or the queue has DispatchIdle set to
24092         true.
24093         (DoEvents): set queue.DispatchIdle to false around the
24094         peek/translate/dispatch message loop in this method.  This keeps
24095         Application.Doevents from emitting idle events.  Part of the fix
24096         for #78823.
24097
24098 2006-09-11  Chris Toshok  <toshok@ximian.com>
24099
24100         * DataGrid.cs (set_DataSource): make this work for both the
24101         winforms/datagrid test and ReportBuilder.  It seems as though when
24102         we've created a ListManager (or maybe it's if we have a
24103         BindingContext?), when we set the DataSource it clears the
24104         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
24105         #79333.
24106
24107 2006-09-11  Chris Toshok  <toshok@ximian.com>
24108
24109         * XplatUIX11.cs: deal with queue being null, which happens in all
24110         the Clipboard functions.  Fixes one of the two problems mentioned
24111         in #78612.
24112
24113 2006-09-11  Chris Toshok  <toshok@ximian.com>
24114
24115         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
24116         button on various spots (including outside the menu) works closer
24117         to MS, and doesn't crash.  Fixes #79343.
24118
24119 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
24120
24121         * ListView.cs: Do not initialize item_sorter in init. To match MS,
24122         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
24123         and the internal comparer is set. When a new ListViewItemSorter is set,
24124         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
24125         was specified. No further processing is necessary if SortOrder is set
24126         to it's current value. If Sorting is modified to None, and View is
24127         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
24128         (either custom or our internal ItemComparer) to null, on 1.0 profile
24129         only set item_sorter to null if its our internal IComparer. If Sorting
24130         is modified to Ascending or Descending, then use our internal IComparer
24131         if none is set, and if the current IComparer is our internal one then:
24132         on 2.0 profile always replace it with one for new Sorting, and on 1.0
24133         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
24134         Enum.IsDefined to verify whether a valid View value is specified in
24135         its setter. Automatically sort listview items when listview is
24136         created. In Sort, do nothing if ListView is not yet created, or if
24137         no item_sorter is set (no Sorting was set, Sorting was explicitly set
24138         to None or ListViewItemSorter was set to null). Added Sort overload
24139         taking a bool to indicate whether the ListView should be redrawn when
24140         items are sorted (we use this in ListViewItemCollection to avoid double
24141         redraws). Modified our internal IComparer to take the sort order into
24142         account. In Add and AddRange methods of ListViewItemCollection, also
24143         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
24144         view), but use overload with noredraw option to avoid double redraw.
24145         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
24146         true when View is Tile, and do the same when attempting to set View to
24147         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
24148         for selected/checked indices, as it involves overhead when sorting is
24149         done while these collections are not used all that often. Instead
24150         we'll build the indices on demand. Modified IList implementation of
24151         CheckedIndexCollection to use public methods if object is int.
24152         Modified CheckedListViewItemCollection to hide checked items if
24153         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
24154         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
24155         IList implementation in SelectedIndexCollection to use public methods
24156         if object is int. Modified SelectedListViewItemCollection to hide
24157         selected items if listview is not yet created.
24158         * ListViewItem.cs: CheckedIndices list no longer needs to be
24159         maintained separately (see ListView changes). Also clone font, fixes
24160         test failure.
24161
24162 2006-09-11  Mike Kestner  <mkestner@novell.com>
24163
24164         * ComboBox.cs: if we are updating the contents of the currently
24165         selected index, refresh the control or the textbox selection.
24166         [Fixes #79066]
24167
24168 2006-09-11  Mike Kestner  <mkestner@novell.com>
24169
24170         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
24171         the 'specified' logic has been moved there.  This seems like a bug 
24172         in Control.cs, since our current SetBoundsCore completely ignores 
24173         the specified parameter.  Peter's commit seems to indicate that is 
24174         the way the MS control implementation works.  [Fixes #79325]
24175
24176 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
24177
24178         * XplatUI.cs: Set default_class_name to be composed
24179         of current domain id. This allows MWF to be loaded in multiple
24180         domains on Win32.
24181
24182 2006-09-09  Miguel de Icaza  <miguel@novell.com>
24183
24184         * X11Keyboard.cs: If we are unable to obtain the input method, do
24185         not call CreateXic to create the input context.   Should fix
24186         #78944/79276.
24187
24188 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
24189
24190         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
24191           Simplified gnome support by adding more pinvokes to get the
24192           icon for a file or mime type.
24193
24194 2006-09-08  Jackson Harper  <jackson@ximian.com>
24195
24196         * MenuAPI.cs: Deslect popup context menu items before closing the
24197         window, so that you don't see the previously selected item
24198         selected when you reopen the menu.
24199         * TextControl.cs: Update the cursor position even if we don't have
24200         focus.  This fixes typing in things like the ComboBox.  I'm not
24201         totally sure we should always set the visibility if we don't have
24202         focus, but couldn't find any corner cases where the cursor showed
24203         up when it shouldn't.
24204
24205 2006-09-08  Chris Toshok  <toshok@ximian.com>
24206
24207         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
24208         our arrays are length 256.  & 0xff before indexing.  Fixes the
24209         crash in bug #78077.
24210         
24211 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
24212
24213         * ThemeWin32Classic.cs: 
24214         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
24215         is true. Handle that check box too.
24216
24217 2006-09-07  Chris Toshok  <toshok@ximian.com>
24218
24219         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
24220         79244.
24221
24222 2006-09-07  Chris Toshok  <toshok@ximian.com>
24223
24224         * Control.cs: in set_BackColor only do the work if
24225         background_color != value.
24226
24227         * XplatUIX11.cs: move the clearing of invalid areas (both client
24228         and nc) to the same block of code where we set (nc_)expose_pending
24229         to false.  That is, move it from PaintEventEnd to PaintEventStart,
24230         so things that cause invalidates from within OnPaint will trigger
24231         another call to OnPaint.  Fixes bug #79262.
24232
24233 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
24234
24235         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
24236         * FileDialog.cs: Fix typo
24237
24238 2006-09-07  Jackson Harper  <jackson@ximian.com>
24239
24240         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
24241         for tab pages if they have any.
24242
24243 2006-09-06  Mike Kestner  <mkestner@novell.com>
24244
24245         * Splitter.cs: use the "current" rect when finishing drag handle
24246         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
24247
24248 2006-09-06  Mike Kestner  <mkestner@novell.com>
24249
24250         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
24251         support offset splitters. [Fixes #79298]
24252
24253 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
24254
24255         * Mime.cs: Fixed a bug that could override the global mime type
24256           result.
24257
24258 2006-09-05  Jackson Harper  <jackson@ximian.com>
24259
24260         * TabControl.cs: Better calculation method for setting the slider
24261         pos. Prevents crashes on really wide tabs.
24262         - Draw Image on tab pages if an image list is used.
24263
24264 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
24265
24266         * MonthCalendar.cs: When Font changes, the Size should be
24267         updated to fit the new font's space requirements.
24268
24269 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
24270
24271         * ListBox.cs: If the items are cleared with Items.Clear set
24272           top_index to 0.
24273
24274 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
24275
24276         * MonthCalendar.cs: Handle arrow keys as input keys. Also
24277         fire DateChanged event instead of DateSelected event when
24278         the date was changed by keyboard interaction.
24279
24280 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
24281
24282         * DateTimePicker.cs: Handle DateChanged for the associated
24283         month_calendar control, and set month_calendar.Font from 
24284         OnFontChanged method, as well as resize the height of the
24285         control when needed. Make PreferredHeight proportional.
24286
24287 2006-09-01  Chris Toshok  <toshok@ximian.com>
24288
24289         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
24290         properties.
24291
24292         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
24293
24294 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
24295
24296         * FileDialog.cs: Set ClientSize instead of window size, to allow space
24297           for decorations (Fixes #79219)
24298
24299 2006-09-01  Mike Kestner  <mkestner@novell.com>
24300
24301         * ComboBox.cs: first stab at sorting plus some selection handling
24302         fixes to bring us more in line with MS behavior.  Also switches back
24303         to index based selection.  Alternative patches for index-based 
24304         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
24305         and latency@gmx.de on bug 78848.  I assume they were similar to this
24306         code I've had simmering in my tree forever.
24307         [Fixes #78848]
24308
24309 2006-09-01  Chris Toshok  <toshok@ximian.com>
24310
24311         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
24312         when setting list position guard against ending up with a -1 index
24313         (the other part of the fix for #78812).  Should probably make sure
24314         we don't need the analogous fix in the ItemDeleted case.
24315
24316         * DataGrid.cs:
24317         - in SetDataSource, work around the fact that the way
24318         OnBindingContextChanged is invoked will cause us to re-enter this
24319         method.  I'll remove the hack once I investigate
24320         OnBindingContextChanged.
24321
24322         - fix the logic in set_DataSource and set_DataMember (basically
24323         what to do if the other of the two is null.)
24324         
24325         - in OnListManagerItemChanged, we need to take into account the
24326         edit row when deciding whether or not to call RecreateDataGridRows
24327         (part of the fix for #78812).
24328
24329 2006-09-01  Jackson Harper  <jackson@ximian.com>
24330
24331         * Splitter.cs: Don't do anything if there is no control to affect
24332         (prevents us from crashing in weird tet cases).
24333         * TreeView.cs: Bounding box for the mouse movement reverting
24334         focus/selection back to previously selected node.  This matches
24335         MS, and makes the tree a lot more useable.
24336         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
24337         use clipping so they are not drawn.  This fixes when the control
24338         is set to have a transparent background, or if it was over an
24339         image.
24340
24341 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
24342
24343         * MimeIcon.cs: Improved handling for reading default icons when
24344           using gnome (2.16 made it necessary). Check and read svg icons
24345           first, then 48x48 and then 32x32 icons.
24346
24347 2006-08-31  Chris Toshok  <toshok@ximian.com>
24348
24349         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
24350         visible.
24351
24352         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
24353         ProcessKeyPreview.  Fixes part of #77806.
24354
24355         * DataGrid.cs: big patch.
24356
24357         - revert the queueing up of DataSource/DataMember if inside
24358         BeginInit/EndInit calls.  That's not the way the datagrid achieves
24359         its delayed databinding.  Instead, call SetDataSource in
24360         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
24361         #78811.
24362
24363         - Also, it wasn't mentioned in #78811, but the test case exhibits
24364         behavior that was lacking in our datagrid implementation - Columns
24365         that have mapping names that don't exist in the datasource's
24366         properties aren't shown.  Yuck.  To fix this I added the bound
24367         field to the column style, and basically any calculation to figure
24368         out anything about columns uses a loop to find the bound columns.
24369         still need to investigate if I can cache an array of the bound
24370         columns or if the indices must be the same.
24371
24372         - When setting CurrentCell, we no longer abort if the cell being
24373         edited was in the add row.  This fixes the other part of #77806.
24374
24375         - The new code also fixes #78807.
24376         
24377         * ThemeWin32Classic.cs: perpetrate the same disgusting
24378         column.bound field hack, and only render bound fields.
24379
24380 2006-08-31  Chris Toshok  <toshok@ximian.com>
24381
24382         * DataGridColumnStyle.cs: add bound field.  this field is true if
24383         the datasource has a property corresponding to the mapping name.
24384
24385         * DataGridTableStyle.cs: set the bound field on the column styles
24386         depending on whether or not we have a column for that property.
24387
24388 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
24389
24390         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
24391           splitter control (fixes #79228)
24392
24393 2006-08-31  Chris Toshok  <toshok@ximian.com>
24394
24395         * DataGridColumnStyle.cs: we need to delay the assignment of
24396         property descriptor until the last possible moment due to the lazy
24397         databinding stuff in the datagrid.  Also, fix the exceptions
24398         thrown by CheckValidDataSource to match MS.
24399
24400 2006-08-31  Jackson Harper  <jackson@ximian.com>
24401
24402         * Form.cs: When activated select the active control, if there is
24403         no active control, we select the first control.
24404         * XplatUIX11.cs: If there is no focus control when we get a
24405         FocusIn event, find the toplevel form and activate it.  This
24406         occurs when you popup a window, it becomes the focus window, then
24407         you close that window, giving focus back to the main window.
24408
24409 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
24410
24411         * MonthCalendar.cs: 
24412         * ThemeWin32Classic.cs: Cache Font in bold style, as well
24413         as StringFormat with Center alignments in MonthCalendar,
24414         instead of creating new ones when drawing the control. 
24415         Also, draw the month name in bold style.
24416
24417 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
24418
24419         * Control.cs:
24420           - PerformLayout(): It would seem MS performs the fill even if the 
24421             control is not visible (part of #79218 fix)
24422           - ResetBackColor(): Use the setter to reset the color, to allow
24423             overriders to catch the change.
24424         * Form.cs:
24425           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
24426           - CreateHandle(): dito (part of $79218 fix)
24427           - Don't set an icon if we have a dialog
24428         * ScrollableControl.cs:
24429           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
24430           - ScrollIntoView(): No need to scroll if control is already visible
24431             (resolves fixme and fixes #79218)
24432
24433 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
24434
24435         * MonthCalendar.cs: Change proportions in SingleMonthSize
24436         to match the aspect of the original control.
24437
24438 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
24439
24440         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
24441           get updated when they get maximized.
24442
24443 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
24444
24445         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
24446
24447 2006-08-29  Chris Toshok  <toshok@ximian.com>
24448
24449         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
24450
24451 2006-08-29  Jackson Harper  <jackson@ximian.com>
24452
24453         * TreeView.cs: Need to track selected node and highlighted node,
24454         they aren't always the same thing, when the mouse is down on a
24455         node it is hilighted, but not selected yet.
24456         - Do the HideSelection stuff right
24457         - Need to focus on rbutton mouse down. And redraw selection when
24458         right click is mouse upped.
24459
24460 2006-08-29  Mike Kestner  <mkestner@novell.com>
24461
24462         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
24463         when SubItems.Count < Columns.Count.  [Fixes #79167]
24464
24465 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
24466
24467         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
24468
24469 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
24470
24471         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
24472           from X. Only send based on ConfigureNotify if we don't have the
24473           correct location in hwnd (if the window manager moved us)
24474
24475 2006-08-28  Mike Kestner  <mkestner@novell.com>
24476
24477         * ListView.cs: remove a TODO. 
24478         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
24479         [Fixes ListView part of #79166]
24480
24481 2006-08-28  Mike Kestner  <mkestner@novell.com>
24482
24483         * ListView.cs: move wheel handler to parent since it is focused
24484         instead of the item_control now.  [Fixes #79177]
24485
24486 2006-08-28  Mike Kestner  <mkestner@novell.com>
24487
24488         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
24489         when the control is focused. [Fixes #79171]
24490
24491 2006-08-28  Mike Kestner  <mkestner@novell.com>
24492
24493         * ListView.cs: size the item and header controls for empty and
24494         unscrollable views.
24495         * ThemeWin32Classic.cs: draw disabled backgrounds.
24496         [Fixes #79187]
24497
24498 2006-08-28  Chris Toshok  <toshok@ximian.com>
24499
24500         * Form.cs: remove unused "active_form" static field.
24501
24502         * Hwnd.cs: lock around accesses to static windows collection.
24503
24504         * Application.cs: lock threads in Exit ().
24505
24506 2006-08-28  Chris Toshok  <toshok@ximian.com>
24507
24508         * NativeWindow.cs: lock around accesses to window_collection.
24509         
24510 2006-08-28  Chris Toshok  <toshok@ximian.com>
24511
24512         * Control.cs: err, fix this the right way, by locking on controls
24513         when using it.  not by making it synchronized.
24514
24515 2006-08-28  Chris Toshok  <toshok@ximian.com>
24516
24517         * Control.cs: make the static "controls" field synchronized, as it
24518         gets updated from multiple threads.
24519
24520 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
24521
24522         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
24523           Prevent other threads from exiting when calling thread sets quit state.
24524         * XEventQueue.cs: Added PostQuitState property
24525
24526 2006-08-27  Chris Toshok  <toshok@ximian.com>
24527
24528         * AsyncMethodData.cs: add a slot for the window handle.
24529
24530         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
24531         window (the destination control's window, not the foster window).
24532
24533         * Control.cs (BeginInvokeInternal): store the window's handle in
24534         the AsyncMethodData.
24535         
24536
24537 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
24538
24539         * XplatUIX11.cs:
24540           - PostQuitMessage: Removed resetting S.D display handle, we might have
24541             another loop started after calling PostQuitMessage (Fixes #79119)
24542           - Created destructor to reset S.D handle
24543
24544 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
24545
24546         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
24547
24548 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
24549
24550         * TextControl.cs (Insert): Update the caret position even if we don't
24551           have a handle yet, just don't call the driver in that case.
24552         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
24553           to the end of the new selection text (Fixes #79184)
24554
24555 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
24556
24557         * Form.cs (Activate): Only activate if the handle is created)
24558         * Control.c:
24559           - Mark window as invisible when it's disposed
24560           - Check if window handle is created when setting window visible, 
24561             instead of relying just on the is_created variable
24562           - Check if object is disposed when creating the control (Fixes #79155)
24563
24564 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
24565
24566         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
24567           when allowing layout again. Otherwise we re-generate the anchoring 
24568           distance to the border again and actually alter what the user wanted
24569           This is ugly, it'd be better if we used DisplayRectangle instead of
24570           ClientRectangle for Control.UpdateDistances, but that causes us to
24571           have other problems (initial anchoring positons would be wrong)
24572           (Fixes #78835)
24573
24574 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
24575
24576         * Control.cs:
24577           - The size and location setters shouldn't go directly to 
24578             SetBoundsCore, but to SetBounds, which triggers layout on the
24579             parent, then calls SetBoundsCore. (Related to fix for #78835)
24580           - SetBounds: Moved actual location update code into this function
24581             from SetBoundsCore, to match MS. Added call to PerformLayout if
24582             we have a parent (to trigger resizing of anchored parents if the 
24583             child size has changed (see testcase for #78835) 
24584         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
24585           new control code
24586         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
24587
24588 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
24589
24590         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
24591           System.Drawing when a toplevel window gets closed; there might
24592           be other toplevel windows belonging to the same app (Fixes #78052)
24593
24594 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
24595
24596         * FileDialog.cs: After reading FileDialog settings from mwf_config
24597           use Desktop prefix only if a real folder doesn't exist anymore.
24598         * FontDialog.cs: Added char sets.
24599           It is now possible to select the font, size or style with the
24600           textboxes.
24601
24602 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
24603
24604         * PrintPreviewDialog.cs: Use assembly name constants.
24605
24606 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
24607
24608         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
24609           scrollbar from whacking it's buttons)
24610
24611 2006-08-24  Chris Toshok  <toshok@ximian.com>
24612
24613         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
24614         in this patch (aggregating setting Left/Top/Width/Height to
24615         setting Bounds on the scrollbars), but the crux of the fix is in
24616         Recalculate, where we scroll by the remaining scroll_position if
24617         we're hiding a scrollbar.  The 2*$5 reward in the comment is
24618         serious.
24619
24620 2006-08-24  Jackson Harper  <jackson@ximian.com>
24621
24622         * MdiClient.cs:
24623         * MdiWindowManager.cs: If the form is made a non-mdi window we
24624         need to remove the form closed event so that closing forms works
24625         correctly.
24626
24627 2006-08-24  Jackson Harper  <jackson@ximian.com>
24628
24629         * Control.cs: Make IsRecreating internal so that the driver can
24630         check it
24631         - Temporarily remove the Hide when controls are removed, its
24632         making a whole bunch of things not work because visibility isn't
24633         getting reset elsewhere correctly
24634         * Form.cs: Need to do a full handle recreation when the mdi parent
24635         is set.
24636         * XplatUIX11.cs: If we are recreating handles don't dispose the
24637         HWNDs.  What was happening is the handles were being recreated in
24638         SendWMDestroyMessages, but then flow continued on in that method
24639         and destroyed the new handles.
24640
24641 2006-08-23  Jackson Harper  <jackson@ximian.com>
24642
24643         * Form.cs: MdiClient is always at the back of the bus
24644         * Control.cs: When the order of items in the collection is changed
24645         we need to reset the all_controls array
24646         - do the same sorta setup thats done when adding a control when a
24647         control is set on the collection.
24648
24649 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
24650
24651         * TextBoxBase.cs (get_Text): Return an empty array if our document
24652           is empty (fixes #79052)
24653
24654 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
24655
24656         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
24657           on WM_SYSCHAR messages (fixes #79053)
24658
24659 2006-08-23  Chris Toshok  <toshok@ximian.com>
24660
24661         * DataGrid.cs: fix flickering when scrolling vertically.
24662
24663 2006-08-23  Chris Toshok  <toshok@ximian.com>
24664
24665         * DataGrid.cs (EndEdit): only invalidate the row header when we
24666         need to.
24667
24668 2006-08-23  Chris Toshok  <toshok@ximian.com>
24669
24670         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
24671         methods.  fixes the flicker when scrolling around.
24672
24673 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
24674
24675         * FileDialog.cs: Making sure the control is created before we get a 
24676           chance to use it with BeginInvoke (Fixes #79096)
24677
24678 2006-08-23  Chris Toshok  <toshok@ximian.com>
24679
24680         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
24681         width to use when painting the rows.
24682
24683 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
24684
24685         * TextBoxBase.cs:
24686           - Throw ArgumentException if a negative value is passed to SelectionLength
24687           - Update the selection end if start is moved. end needs to be always
24688             after start. (Fixes #79095)
24689           - Track selection length; MS keeps the selection length even if start
24690             is changed; reset on all other operations affection selection
24691
24692 2006-08-22  Jackson Harper  <jackson@ximian.com>
24693
24694         * TreeView.cs: Make sure both scrollbars get displayed and sized
24695         correctly when the other bar is visible.
24696         - Use the original clip rectangle for checking if the area between
24697         the two scrollbars is visible, not the viewport adjusted clipping
24698         rectangle.
24699
24700 2006-08-22  Jackson Harper  <jackson@ximian.com>
24701
24702         * Binding.cs: We don't use IsBinding because it requires the
24703         control to be created, which really shouldn't be necessary just to
24704         set a property on the control.
24705
24706 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
24707
24708         * ComboBox.cs: Some CB.ObjectCollection methods must throw
24709         ArgumentNullReferenceException when the argument is null.
24710
24711 2006-08-21  Jackson Harper  <jackson@ximian.com>
24712
24713         * Timer.cs: Track the thread that the timer is started in (NOT
24714         CREATED), this way messages for it will only be triggered on its
24715         queue.
24716         * XEventQueue.cs: Track the timers here, this makes timers per
24717         thread, like MS.
24718         * XplatUIX11.cs: The timers are moved to the XEventQueue.
24719
24720 2006-08-19  Chris Toshok  <toshok@ximian.com>
24721
24722         * XplatUIX11.cs: after further communication with pdb, we get the
24723         best of both worlds.  SetZOrder working for un-Mapped windows, and
24724         no X errors for un-mapped windows.
24725
24726 2006-08-19  Chris Toshok  <toshok@ximian.com>
24727
24728         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
24729         as it was causing pdn toolbars to not have the correct stacking.
24730
24731 2006-08-18  Mike Kestner  <mkestner@novell.com> 
24732
24733         * ListView.cs : guard against negative ClientArea.Width in scrollbar
24734         calculation.  Not sure why control should ever be setting a negative
24735         width though.  Fixes #78931.
24736
24737 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
24738
24739         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
24740         null items in ObjectCollection class.
24741         * ListBox.cs.: Likewise.
24742
24743 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
24744
24745         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
24746           as the base method in ThemeWin32Classic should work fine.
24747           Fixed bug #78607.
24748
24749 2006-08-18  Jackson Harper  <jackson@ximian.com>
24750
24751         * Binding.cs: When validating if the value entered doesn't convert
24752         properly reset to the old value.
24753         * RadioButton.cs: Don't fire click when we get focus.
24754
24755 2006-08-18  Jackson Harper  <jackson@ximian.com>
24756
24757         * FileDialog.cs: Paint the selection on the directory combobox the
24758         same way as on MS. 
24759
24760 2006-08-17  Jackson Harper  <jackson@ximian.com>
24761
24762         * ErrorProvider.cs: Don't allow the error control to be selected.
24763         * Control.cs: Don't send the SetFocus messages, the control
24764         activation will do this, and if we do it blindly here validation
24765         does not work.
24766
24767 2006-08-17  Jackson Harper  <jackson@ximian.com>
24768
24769         * Control.cs:
24770         * ContainerControl.cs: Make validation events fire in the correct
24771         order.  TODO: For some reason the first validation event is not
24772         getting fired.
24773
24774 2006-08-17  Mike Kestner  <mkestner@novell.com> 
24775
24776         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
24777
24778 2006-08-17  Mike Kestner  <mkestner@novell.com> 
24779
24780         * ComboBox.cs : implement scroll wheel support for popped-down
24781         state. Fixes #78945. 
24782
24783 2006-08-17  Jackson Harper  <jackson@ximian.com>
24784
24785         * TreeView.cs: Specify treeview actions (old patch that didn't get
24786         committed for some reason).
24787         - Don't let the mouse wheel scroll us too far.  Just want to make
24788         the bottom node visible, not scroll it all the ways to the top.
24789
24790 2006-08-17  Jackson Harper  <jackson@ximian.com>
24791
24792         * XplatUIX11.cs: Mouse wheel events go to the focused window.
24793
24794 2006-08-17  Mike Kestner  <mkestner@novell.com> 
24795
24796         * ComboBox.cs : don't do mouseover selection in simple mode.
24797
24798 2006-08-16  Jackson Harper  <jackson@ximian.com>
24799
24800         * Form.cs: Fire the closing events for all the mdi child windows
24801         when a window is closed.  If the cancel args are set to true, the
24802         main window still gets the event fired, but it doesn't not close.
24803         * MdiWindowManager.cs: Do this closing cleanup in a Closed
24804         handler, instead of when the button is clicked, so cancelling the
24805         close works correctly.
24806         * ComboBox.cs: Send the mouse down to the scrollbar.
24807
24808 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
24809
24810         * ListBox.cs: When passing 'null' to SelectedItem,
24811         set SelectedIndex to -1, to unselect items. This is the
24812         observed behaviour in .Net.
24813
24814 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
24815
24816         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
24817           MS flags saying there won't be any. (fixes #78800)
24818         * Control.cs (HandleClick): Made virtual
24819
24820 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
24821
24822         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
24823           cultures. Fixed bug #78399.
24824
24825 2006-08-16  Jackson Harper  <jackson@ximian.com>
24826
24827         * Form.cs: Use the MdiClients MdiChildren property to access
24828         MdiChildren instead of creating the array from the child controls.
24829         * MdiClient.cs: Maintain a separate array of the mdi children, so
24830         that insertion order is maintained when the Z-order is changed.
24831
24832 2006-08-16  Mike Kestner  <mkestner@novell.com> 
24833
24834         * ListView.cs : add an ItemComparer and default to it for sorting.
24835         Fixes #79076, but sorting needs a complete overhaul to be compat with
24836         MS.
24837
24838 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
24839
24840         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
24841
24842 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
24843
24844         * Hwnd.cs (Mapped): Properly traverse the tree
24845
24846 2006-08-15  Chris Toshok  <toshok@ximian.com>
24847
24848         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
24849         pass manager.Current.GetType() to ParseData.  It has to be the
24850         property type.  So, hold off doing the ParseData until we're in
24851         SetPropertyValue where we know the type.  This fixes the crash in
24852         #78821 but the textbox is still empty.
24853
24854 2006-08-15  Chris Toshok  <toshok@ximian.com>
24855
24856         * DataGrid.cs:
24857         - when we're scrolling, only call Edit() again if the
24858         current cell is still unobscured. Fixes bug #78927.
24859         - when handling mousedown on a cell, ensure the cell is visible
24860         before calling Edit.
24861         - remove the properties from DataGridRow, and remove the
24862         DataGridParentRow class altogether.
24863         
24864
24865 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
24866
24867         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
24868           fire OnTextChanged by ourselves. There's no point calling base,
24869           we don't set the base value anywhere else. Fixes #78773.
24870
24871 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
24872
24873         * ListBox.cs: Call CollectionChanged when modifying
24874         an item from Items indexer, to update the actual items
24875         in the list box.
24876
24877 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
24878
24879         * PrintDialog.cs: Small fixes for focus and a pair of checks,
24880         to match .Net behaviour.
24881
24882 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
24883
24884         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
24885
24886 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
24887
24888         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
24889
24890 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
24891
24892         * MessageBox.cs: Prevent potential NRE exception.
24893         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
24894
24895 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
24896
24897         * MessageBox.cs: Calculate the owner of a messagebox, also make
24898           it topmost. Fixes #78753
24899
24900 2006-08-14  Chris Toshok  <toshok@ximian.com>
24901
24902         * XplatUIX11.cs: A couple of fixes so that metacity will let us
24903         programmatically move windows.  first, set the PPosition hint as
24904         well as the USPosition hint.  Second include some code from pdb
24905         that sets the window type to NORMAL when we set the transient for
24906         hint.  This is because, in the absence of a window type, metacity
24907         thinks any window with TransientFor set is a dialog, and refuses
24908         to let us move it programmatically.  fascists.
24909
24910 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
24911
24912         * XplatUIX11.cs: When setting normal hints, take into consideration
24913           an different hints previously set so we don't delete them (fixes #78866)
24914
24915 2006-08-12  Chris Toshok  <toshok@ximian.com>
24916
24917         * ToolBarButton.cs: make Layout return a boolean, if something to
24918         do with the button's layout changed.
24919
24920         * ToolBar.cs:
24921         - add another parameter to Redraw, @force, which all existing
24922           calls set to true.
24923         - make the Layout function return a boolean which is true if the
24924           layout has actually changed.  Redraw now uses this (and @force)
24925           to determine when to invalidate.  At present the only place
24926           where @force can be false is the call from OnResize, when
24927           background_image == null.  So, resizing a toolbar when the
24928           layout doesn't change results in no drawing.
24929
24930 2006-08-12  Chris Toshok  <toshok@ximian.com>
24931
24932         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
24933         the VScrollBar and HScrollbar reversed.  oops.
24934
24935         * DataGrid.cs: fix the logic that assigns sizes to the implicit
24936         scrollbars.  we were assigning them twice (once in
24937         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
24938         therefore causing two scrollbar resizes (and redraws?) to happen
24939         per grid resize.
24940
24941 2006-08-12  Chris Toshok  <toshok@ximian.com>
24942
24943         * ToolBarButton.cs: redraw the entire button if the theme tells us
24944         to.
24945
24946         * Theme.cs: add ToolBarInvalidateEntireButton.
24947
24948         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
24949         buttons, just the border.
24950
24951         * ThemeNice.cs: redraw the entire toolbar button since we need to
24952         draw the highlight image.
24953
24954         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
24955         we need to redraw the entire button (not just the border).
24956
24957 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
24958
24959         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
24960           for vertical bars. Fixes the mismatches shown by #78513
24961
24962 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
24963
24964         * FileDialog.cs: If a saved/remembered path doesn't exist
24965           anymore, fall back to "Desktop".
24966
24967 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
24968
24969         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
24970           parent. It's apparently legal to not have one
24971         * XplatUIX11.cs:
24972           - SetZOrder: Don't try to set Z-Order on an unmapped window
24973           - CreateWindow: 0,0 are legal coordinates for a window. don't move
24974             it unless the coordinates are negative
24975
24976 2006-08-10  Mike Kestner  <mkestner@novell.com>
24977
24978         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
24979         when setting to null per msdn docs.  Fixes #78854.
24980
24981 2006-08-10  Chris Toshok  <toshok@ximian.com>
24982
24983         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
24984         flickering by setting a clip rectangle on the Graphics when we
24985         need to redraw just a particular menuitem.  Also, rename "OnClick"
24986         to "OnMouseDown" to reflect what it actually is.
24987         
24988         * Form.cs: track the OnMouseDown change.
24989
24990 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
24991
24992         * CommonDialog.cs: Properly inherit the CreateParams from the form
24993           and only change what we need. Fixes #78865
24994
24995 2006-08-10  Chris Toshok  <toshok@ximian.com>
24996
24997         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
24998         flickering in flat mode (and most of the flickering in general) by
24999         only invalidating the button border (and not the entire rectangle)
25000         when the state changes.  A couple of cases still flicker:
25001         ToggleButtons, and the dropdown arrow case when the user mouse
25002         ups.
25003
25004 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
25005
25006         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
25007           for german keyboards. Numlock state shouldn't affect the behaviour
25008           of the Del key. Fixes bug #78291.
25009
25010 2006-08-10  Chris Toshok  <toshok@ximian.com>
25011
25012         * ListControl.cs: remove the items.Clear line from BindDataItems,
25013         as this is the first thing done by both subclasses in their
25014         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
25015         passed -1, refresh the list.  This gets databinding working when
25016         the datasource is set on the list before the datasource is
25017         populated (as in wf-apps/ReportBuilder.)
25018
25019         * ComboBox.cs: remove the argument to BindDataItems.  This call
25020         should really go away, and be initiated by the ListControl code.
25021
25022         * ListBox.cs: same.
25023
25024 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
25025
25026         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
25027           if no data is in the document when the control is displayed
25028
25029 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
25030
25031         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
25032           yes (fixes #78806)
25033         * TextControl.cs: 
25034           - PositionCaret: Allow positioning of caret but don't call methods 
25035             requiring a handle if the window isn't created yet
25036           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
25037           - owner_HandleCreated: Don't position the caret, just update it's 
25038             location. User might have already set a different position
25039
25040 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
25041
25042         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
25043           windows. Screws up the returned coordinates for child windows. 
25044           Fixes #78825. I'm hoping this doesn't break something, since the
25045           code was explicitly put in 8 months ago, but no bug was attached.
25046           Menus still seem to work properly.
25047
25048 2006-08-08  Chris Toshok  <toshok@ximian.com>
25049
25050         * DataGrid.cs: make BeginInit/EndInit actually do what they're
25051         supposed to do - delay data binding until the EndInit call.  Also,
25052         make the table style collection's CollectionChangeAction.Refresh
25053         work properly.
25054
25055         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
25056         (with action = Refresh) when a consituent table's MappingName is
25057         changed.
25058
25059 2006-08-08  Chris Toshok  <toshok@ximian.com>
25060
25061         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
25062         Invalidate, since changing the text can change the size of the all
25063         toolbar buttons.
25064
25065 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
25066
25067         * Form.cs (AddOwnedForm): Still need to add the form to our listif
25068           we don't have it yet
25069
25070 2006-08-08  Chris Toshok  <toshok@ximian.com>
25071
25072         * PrintControllerWithStatusDialog.cs: don't .Close() the status
25073         dialog, as this causes X errors later on, since we actually
25074         destroy the window.  Instead, .Hide() it.
25075
25076 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
25077
25078         * ComboBox.cs: Added focus reflection for popup window
25079         * XplatUIX11.cs: 
25080           - Removed transient setting for non-app windows for now, not sure it
25081             was needed
25082           - Fixed logic checking if we have captions when deciding 
25083             override_redirect, WS_CAPTION is two bits and a 0 check was not
25084             sufficient
25085           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
25086             complicated
25087         * Form.cs: 
25088           - AddOwnedForm: Don't just add the form to the list, call the property
25089             to ensure the driver is informed about the ownership as well
25090           - CreateHandle: Set the TopMost status in the driver if we have an owner
25091         * XplatUI.cs: Fixed debug statement
25092
25093 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
25094         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
25095           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
25096           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
25097           TrackBarRenderer.cs: Make constructor private.
25098         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
25099         * ProfessionalColorTable.cs: Make properties virtual.
25100
25101 2006-08-06  Duncan Mak  <duncan@novell.com>
25102
25103         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
25104         is not changing.
25105
25106 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
25107         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
25108           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
25109           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
25110           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
25111           Initial import of new 2.0 classes.
25112
25113 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
25114         * Application.cs: Add 2.0 VisualStyles properties.
25115
25116 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
25117         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
25118           XplatUIX11.cs: Create property to allow access to existing private
25119           variable "themes_enabled"
25120
25121 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
25122
25123         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
25124         file size, as otherwise our class libraries fail using windows. Fixes
25125         bug #78759.
25126
25127 2006-08-04  Jackson Harper  <jackson@ximian.com>
25128
25129         * Form.cs:
25130         * XplatUIX11.cs: Move the toolwindow window manager creation into
25131         the X11 driver, this way on win32 we can let windows create/handle
25132         the toolwindows.
25133
25134 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
25135
25136         * PrintDialog.cs: Remove some redundant checks, add some others,
25137         clean some code, and move the focus to the text boxes when the
25138         values are incorrect.
25139
25140 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
25141
25142         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
25143
25144 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
25145
25146         * NumericUpDown.cs: Setting the Minimum and Maximum is now
25147           handled correctly. Fixes bug #79001.
25148
25149 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
25150
25151         * PrintDialog.cs: The "Copies" numeric up down must have
25152         set the Minimum property to 1; only if the value is bigger
25153         than 1, activate "Collate" check box. This is the behaviour of .Net.
25154         Also modify the Document elements only if it is not null.
25155
25156 2006-08-03  Jackson Harper  <jackson@ximian.com>
25157
25158         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
25159         length. (We have a larger array then actual node count).
25160                 
25161 2006-08-03  Jackson Harper  <jackson@ximian.com>
25162
25163         * ComboBox.cs: Don't show selection by default.
25164         - The SelectAll isn't needed here, since the focus code should do
25165         that
25166         - DDL style lists to manual selection drawing, so when they
25167         get/lose focus they have to invalidate.
25168
25169 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
25170
25171         * TextBoxBase.cs: Don't always show all selections by default.
25172
25173 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
25174         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
25175           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
25176           Fixed various typos.
25177
25178 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
25179
25180         * Control.cs: Removing the controls in a ControlCollection with
25181           Clear now hides the controls as expected. Fixes bug #78804. 
25182
25183 2006-08-03  Jackson Harper  <jackson@ximian.com>
25184
25185         * Control.cs: Revert previous focus patch, it breaks reflector.
25186
25187 2006-08-03  Jackson Harper  <jackson@ximian.com>
25188
25189         * ComboBox.cs: Cleanup selection and focus with the combobox.
25190         This also eliminates some duplicated keyboard code, since now
25191         everything is handled by the main class.
25192         - Make list selection work on mouse up instead of down, to match
25193         MS.
25194
25195 2006-08-02  Jackson Harper  <jackson@ximian.com>
25196
25197         * Control.cs: Setting focus needs to go through the whole
25198         selection mechanism.
25199
25200 2006-08-02  Chris Toshok  <toshok@ximian.com>
25201
25202         * PrintPreviewDialog.cs: change MinimumSize to use
25203         base.MinimumSize so it works.
25204
25205 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
25206
25207         * TextControl.cs:
25208           - UpdateCaret: Added sanity check in case caret isn't defined yet
25209           - Line.Delete: Now updating selection and caret markers if we're
25210             transfering a node (Properly fixes #78323)
25211           - SetSelectionEnd: Added sanity check
25212         * TextBoxBase.cs: Removed broken attempt to fix #78323
25213
25214 2006-08-01  Chris Toshok  <toshok@ximian.com>
25215
25216         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
25217         Close() call is handled in Form, not here.
25218
25219 2006-08-01  Chris Toshok  <toshok@ximian.com>
25220
25221         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
25222         layout/rendering.
25223
25224         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
25225         for sizes < 100% zoom.  The code now aggressively attempts to keep
25226         from calling document.Print (), and tries not to use the scaling
25227         g.DrawImage whenever possible (it still does if you scale to >
25228         100%, since usually that involves huge images).
25229
25230         * PrintPreviewControl.cs: hook up the close button.
25231
25232 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
25233         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
25234           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
25235           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
25236           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
25237           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
25238           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
25239           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
25240           Removed [Serializable] for 2.0 Event Handlers.
25241
25242 2006-07-31  Jackson Harper  <jackson@ximian.com>
25243
25244         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
25245         * TextControl.cs: Uncomment out the body of this method.
25246
25247 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
25248
25249         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
25250           standard cursors.
25251
25252 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
25253
25254         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
25255           that embed TextBox and need selections visible even if textbox is not
25256           focused to enforce that behaviour.
25257         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
25258           selection drawing
25259
25260 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
25261
25262         * TextControl.cs:
25263           - Added new SetSelectionStart/SetSelectionEnd overloads
25264           - Fixed viewport width assignment to be accurate
25265           - Adjusted alignment line shift calculations to allow cursor on right
25266             aligned lines to be always visible at the right border (like MS)
25267         * TextBoxBase.cs:
25268           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
25269           - TextBoxBase_SizeChanged: recalculating canvas on size changes
25270           - CalculateScrollBars: Use ViewPort size instead of window size, to
25271             properly consider space occupied by the border and scrollbars 
25272             (Fixes #78661)
25273           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
25274             calculations; no longer leaves artifacts
25275           - CaretMoved: Adjusted window scrolling to match MS and fixed several
25276             calculation bugs (Still missing right/center align calculations)
25277
25278 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
25279
25280         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
25281           use of both scroll rect and clip rect, as they do the same.
25282
25283 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
25284
25285         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
25286           in the event handler (fixes #78912)
25287
25288 2006-07-31  Chris Toshok  <toshok@ximian.com>
25289
25290         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
25291         grid.ListManager.Count, since grid.ListManager might be null.
25292         This of course begs the question "why are we drawing rows for a
25293         grid with no list manager (and therefor no rows)?"  Fixes the
25294         crash in bug #78929.
25295
25296 2006-07-31  Chris Toshok  <toshok@ximian.com>
25297
25298         * RelatedPropertyManager.cs: Don't always chain up to the parent
25299         ctor.  instead, call SetDataSource if the parent's position is !=
25300         -1.  Fixes the crash in #78822.
25301
25302 2006-07-31  Chris Toshok  <toshok@ximian.com>
25303
25304         * DataGrid.cs (get_ListManager): use field instead of property
25305         accessors for datasource and datamember.
25306         (RowsCount): make internal again.
25307         (OnMouseDown): end edits before resizing columns/rows.
25308         (OnMouseUp): restart edits after resizing columns/rows.
25309
25310 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
25311
25312         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
25313           This fixes the situation where the last set cursor is displayed
25314           whenever the mouse is over scrollbars.
25315
25316 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
25317
25318         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
25319         Document properties, as well as initial values.
25320
25321 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
25322
25323         * XplatUIWin32.cs (SetBorderStyle): Setting both border
25324           and ClientEdge results in a 3-pixel border, which is
25325           wrong.
25326
25327 2006-07-28  Jackson Harper  <jackson@ximian.com>
25328
25329         * TreeNodeCollection.cs: Fix the clear method.
25330         - Fix the Shrink also
25331
25332 2006-07-27  Jackson Harper  <jackson@ximian.com>
25333
25334         * TreeView.cs: Make sure the visible order is computed when we
25335         attempt to size the scrollbars (for trees that mess with the
25336         scrolling when they shouldn't.
25337         - Make sure to give the scrollbars valid values.
25338
25339 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
25340
25341         * XplatUIX11.cs: Move motion compression code to where it
25342           has less performance impact
25343
25344 2006-07-26  Jackson Harper  <jackson@ximian.com>
25345
25346         * UpDownBase.cs: When the control is selected make the child
25347         controls non selectable, so that a click on them won't do a
25348         focus/unfocus cycle.
25349         - Don't give focus to the text box when the spinner is selected.
25350         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
25351
25352 2006-07-26  Chris Toshok  <toshok@ximian.com>
25353
25354         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
25355         satisfied with this solution.  If the bitmaps are small, we should
25356         just cache them in the PrintPreviewDialog and draw them here.
25357         Also, the layout is broken for the 2-up and 3-up cases.
25358
25359         * Theme.cs: add PrintPReviewControlPaint.
25360
25361         * PrintPreviewDialog.cs: first pass implementation.
25362
25363         * PrintPreviewControl.cs: first pass implementation.  No
25364         scrollbars yet.
25365
25366         * PrintDialog.cs: only validate fields if that particular portion
25367         of the UI is enabled.  Also, set the document's controller to a
25368         PrintControllerWithStatusDialog wrapping the document's print
25369         controller.
25370
25371         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
25372         bring up a SaveFileDialog (i hope we don't want to match the
25373         behavior of the crappy windows file entry) and set the
25374         PrinterSettings.PrintFileName accordingly.
25375
25376 2006-07-26  Jackson Harper  <jackson@ximian.com>
25377
25378         * ContainerControl.cs: Add a field that disables auto selecting
25379         the next control in a container when the container is activated.
25380         * UpDownBase.cs: Don't select the text box when the up down is
25381         selected.
25382
25383 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
25384
25385         * XEventQueue.cs: Added methods for peeking (used for compression
25386           of successive events)
25387         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
25388           mouse move events (fixes #78732)
25389
25390 2006-07-25  Jackson Harper  <jackson@ximian.com>
25391
25392         * UpDownBase.cs: Use an internal class for the textbox so that we
25393         can control focus.  the updown control should always have focus,
25394         if either the text area or the buttons are clicked.
25395         - Send the key messages to the textbox, since it never actually
25396         has focus
25397         - Activate and decativate the textbox caret.
25398
25399 2006-07-24  Jackson Harper  <jackson@ximian.com>
25400
25401         * Control.cs: Use the directed select when selecting a control,
25402         this way the container controls override will get called and the
25403         whole ActiveControl chain will get triggered.  TODO: probably need
25404         to make sure this gets done everywhere instead of the old
25405         Select(Control).
25406         * ContainerControl.cs: Implement the directed Select method to
25407         find and activate the correct child control.    
25408         
25409 2006-07-22  Mike Kestner  <mkestner@novell.com>
25410
25411         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
25412         menu handling code so that clicks without a grab work too.
25413         [Fixes #78914]
25414
25415 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
25416
25417         * FileDialog.cs: Enable the BackButton when dirstack has one element.
25418           Added some small optimizations.
25419
25420 2006-07-21  Matt Hargett  <matt@use.net>
25421
25422         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
25423
25424 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
25425
25426         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
25427           tests pass and match MS in some strange border cases.
25428
25429 2006-07-21  Chris Toshok  <toshok@ximian.com>
25430
25431         * ThemeWin32Classic.cs: handle drawing of the relation links and
25432         parent row buttons.
25433
25434         * Theme.cs: change args to DataGridPaintParentRow.
25435
25436         * DataGrid.cs: Don't use controls for the relation links and
25437         parent buttons, so we have to handle all their interactions in
25438         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
25439         when we're navigating through child tables, so we can reinstate
25440         selection, expanded state, current cell, etc.
25441
25442 2006-07-20  Chris Toshok  <toshok@ximian.com>
25443
25444         * ToolBar.cs: When we redraw a button, for whatever reason,
25445         there's no reason to redraw the entire toolbar.  Also, don't call
25446         Control.Refresh from within Redraw, as it's much heavier than
25447         Invalidate (which is really what we want).
25448
25449 2006-07-20  Chris Toshok  <toshok@ximian.com>
25450
25451         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
25452         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
25453         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
25454         traces from within a debug IBindingList datasource
25455         (in mono/winforms/datagrid) for *days*, I've finally gotten things
25456         to work in a similar fashion.
25457
25458 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
25459
25460         * ListBox.cs: Don't call Sort () when setting 
25461         the Sorted property to false (avoid an unnecessary sort).
25462
25463 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
25464
25465         * ListControl.cs: DataSource should throw an ArgumentException
25466         instead of a normal exception when the argument is not of the 
25467         correct type.
25468
25469 2006-07-20  Mike Kestner  <mkestner@novell.com>
25470
25471         * Control.cs: add InternalPreProcessMessage to allow us to steal
25472         key events before MWF gets its paws on them.  Adapted from a
25473         suggestion by eno.
25474         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
25475         up/down/left/right navigation. Override the new internal control
25476         method to steal the events since they never make it to WndProc.
25477         * ToolBarButton.cs: don't worry about pushed when setting hilight
25478         since the drawing code prefers pushed to hilight. Invalidate on 
25479         Hilight changes. Fixes #78547 and #78525.
25480
25481 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
25482
25483         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
25484           the canvas size. Fixes #78868
25485
25486 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
25487
25488         * Splitter.cs: Track requested split position until first layout
25489           is performed. Fixes #78871
25490
25491 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
25492
25493         * Application.cs: Removed code that forces 1.x for the version
25494           number if the version started with 0. Not sure why that code was
25495           there and I couldn't find any bugs that indicated we needed it.
25496           Fixes #78869
25497
25498 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
25499
25500         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
25501           ResetDefaults(), just write some output to the console until it's
25502           implemented. Fixes bug #78907 for now. Eliminated two warnings.
25503
25504 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
25505
25506         * PropertyGridView.cs: set StartPosition of drop down forms
25507         so they appear in correct initial spot.  Fixes #78190.
25508
25509 2006-07-19  Mike Kestner  <mkestner@novell.com>
25510
25511         * ThemeWin32Classic.cs: use parent background color when drawing
25512         flat toolbars.  Restructure the conditionals to make sure non-flat
25513         non-Divider toolbars are filled too.  Fixes #78837.
25514
25515 2006-07-19  Mike Kestner  <mkestner@novell.com>
25516
25517         * ListBox.cs: Sort on collection changes even if the handle
25518         isn't created yet.  Fixes #78813.
25519
25520 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
25521
25522         * ListControl.cs: DisplayMember should never be null,
25523         and now we assign String.Empty when null is passed to it (this
25524         is the .Net way).
25525
25526 2006-07-17  Mike Kestner  <mkestner@novell.com>
25527
25528         * ListViewItem.cs: restructure Font and subitem Font handling 
25529         to hold a specific font and refer back to owner on null.
25530         Fixes #78761.
25531
25532 2006-07-17  Mike Kestner  <mkestner@novell.com>
25533
25534         * ToolBar.cs: bandaid for side-effect of previous patch which was
25535         discarding explicit heights for non-AutoSize toolbars.  Need to
25536         extend my format tester to deal with AutoSize=false. Fixes #78864.
25537
25538 2006-07-15  Jackson Harper  <jackson@ximian.com>
25539
25540         * LabelEditTextBox.cs:
25541         * TreeView.cs: Use a new LabelEdit class for node editing, this
25542         class automatically 'closes' itself when it gets the enter key or
25543         loses focus.
25544         - Use the client rectangle when setting the trees scrollbars, so
25545         border style is taken into account.
25546         
25547 2006-07-14  Jackson Harper  <jackson@ximian.com>
25548
25549         * TreeNode.cs:
25550         * TreeView.cs: Make the editing work similar to MSs, firing the
25551         events correctly and ending edits correctly.
25552
25553 2006-07-14  Mike Kestner  <mkestner@novell.com>
25554
25555         * ToolBarButton.cs:
25556         * ToolBar.cs: layout restructuring and redraw enhancements to support
25557         formatting changes gracefully, like setting TextAlign, ImageList, 
25558         ButtonSize, and Appearance.  Handles explicit button sizing quirks
25559         of the MS controls.  Things like flat toolbars ignoring button size
25560         but becoming constant sized at the largest button's size.  Normal
25561         toolbars with an image set cannot be shrunk smaller than the image,
25562         but text can be clipped/ignored.
25563         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
25564         is zero.  Seems like DrawString should be smart enough to not put
25565         anything on screen though. Also trim labels and ellipsize at the char
25566         boundary, not word.
25567         Fixes #78711 and #78483.
25568
25569 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
25570
25571         * FolderBrowserDialog.cs: Disable "New Folder" button and
25572           "New Folder" contextmenu menuitem if a folder like "My Computer"
25573           is selected.
25574
25575 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
25576
25577         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
25578         * FolderBrowserDialog.cs:
25579           - Use MWFConfig to store and read size and position settings
25580           - Added code to create a new folder (button or context menu).
25581             Use TreeView labeledit to change the name of the new folder.
25582
25583 2006-07-14  Jackson Harper  <jackson@ximian.com>
25584
25585         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
25586         when the tree is scrolled we end editing.
25587
25588 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
25589
25590         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
25591           Down arrows
25592
25593 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
25594
25595         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
25596         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
25597         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
25598         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
25599         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
25600         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
25601         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
25602         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
25603         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
25604         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
25605         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
25606         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
25607         ListViewItemSelectionChangedEventHandler.cs,
25608         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
25609         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
25610         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
25611         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
25612         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
25613         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
25614         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
25615         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
25616         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
25617         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
25618         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
25619         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
25620         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
25621         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
25622         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
25623         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
25624         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
25625         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
25626         WebBrowserNavigatingEventHandler.cs, 
25627         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
25628
25629 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
25630
25631         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
25632         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
25633         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
25634         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
25635         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
25636         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
25637         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
25638         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
25639         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
25640         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
25641         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
25642         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
25643         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
25644         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
25645         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
25646         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
25647         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
25648         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
25649         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
25650         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
25651         ListViewItemStates.cs, MaskFormat.cs: Added
25652
25653 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
25654
25655         * PropertyGridView.cs: Fix keyboard navigation of drop down.
25656         Patch from eno for bug 78558.
25657         
25658 2006-07-13  Jackson Harper  <jackson@ximian.com>
25659
25660         * TreeView.cs: When an edit is finished make sure that the
25661         selected node is visible.
25662         - When setting the top/bottom use the scrollbars is_visible, so
25663         everything will be set correctly even if the tree isn't visible
25664         yet.
25665
25666 2006-07-13  Jackson Harper  <jackson@ximian.com>
25667
25668         * ComboBox.cs: Revert the item->index part of my previous patch.
25669         * TreeView.cs: Use LostFocus instead of Leave for detecting when
25670         the edit box has lost focus (duh).
25671         - Just make the edit box not visible when we get return, that will
25672         take the focus, which will call EndEdit
25673         * TreeNode.cs When we start editing, notify the treeview.
25674
25675 2006-07-12  Jackson Harper  <jackson@ximian.com>
25676
25677         * ComboBox.cs: Clear out old items before setting the item list.
25678         This prevents databound controls from having their items added
25679         twice.
25680         - Switch the combobox to use indices whereever possible instead of
25681         using Item's.  This allows usto navigate through lists that have
25682         more then one item with the same string value (ie a, b, b, a).
25683         - Scroll the listboxes scrollbar when a non visible item is
25684         highlighted
25685         - Allow keypress to cycle through all the possible values. For
25686         example if you have b1, b2, b3 and hold down the B key all the
25687         values will be cycled through.
25688         
25689 2006-07-12  Jackson Harper  <jackson@ximian.com>
25690
25691         * TextBoxBase.cs:
25692         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
25693         this using the internal methods.
25694         * Control.cs: Add OnGotFocusInternal.  A new method that allows
25695         controls to "override" OnGotFocus and change focus behavior if
25696         needed.
25697         - Same thing for LostFocus
25698         * ComboBox.cs: Pass off focus to the text control properly.
25699
25700 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
25701
25702         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
25703         * FolderBrowserDialog.cs: Almost a complete rewrite.
25704           - Better support for Environment.Specialfolders
25705           - Added support for MWFVFS
25706           - Made setting SelectedPath work
25707
25708 2006-07-12  Jackson Harper  <jackson@ximian.com>
25709
25710         * Control.cs: Optimze getting all the controls.
25711
25712 2006-07-11  Jackson Harper  <jackson@ximian.com>
25713
25714         * ContainerControl.cs: Override SETFOCUS in the container control,
25715         so that it is not selected on mouse click.
25716
25717 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
25718
25719         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
25720           Hopefully we will have a better way once all of focus is complete.
25721
25722 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
25723
25724         * ThemeWin32Classic.cs: Commented out some debug code and fixed
25725           a compile error with csc.
25726
25727 2006-07-11  Jackson Harper  <jackson@ximian.com>
25728
25729         * Control.cs: When hiding a control only select the next control
25730         if the current control was focused.
25731         - Don't handle enter/leave when setting/killing focus, this is
25732         done by the container control.
25733         - Remove is_selected, it's not needed anymore.
25734         - Add utility methods for selecting a child control, and for
25735         firing the Enter/Leave events.
25736         * ContainerControl.cs: When a control is activated fire the
25737         enter/leave events.
25738         - Don't wrap when processing the tab key, so that focus can be
25739         moved outside of the container.
25740         - Use the correct active control
25741
25742 2006-07-11  Jackson Harper  <jackson@ximian.com>
25743
25744         * ComboBox.cs: Remove some debug code that was blinding me.
25745         * UpDownBase.cs: These controls actually aren't implicit, they are
25746         visible to the user.
25747
25748 2006-07-10  Chris Toshok  <toshok@ximian.com>
25749
25750         * DataGrid.cs: move back to the is_adding boolean field.  god i
25751         hate this is_editing/is_adding/is_changing stuff.
25752
25753 2006-07-10  Chris Toshok  <toshok@ximian.com>
25754
25755         * DataGridTableStyle.cs: just check if the property type is bool.
25756         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
25757         Don't use CanRenderType.
25758
25759         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
25760         if our text == NullText.  Remove CanRenderType.
25761
25762         * DataGridBoolColumn.cs: nuke CanRenderType.
25763
25764         * DataGrid.cs: reenable some code to end the current edit inside
25765         of set_CurrentCell.  This fixes the other 1.1.16 regression.
25766         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
25767         Also, remove the visible_row_count arg from CalcRowHeaders, since
25768         we don't need to worry about the actual height of the area.
25769
25770 2006-07-10  Chris Toshok  <toshok@ximian.com>
25771
25772         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
25773         mode, just return.
25774
25775         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
25776         the real sense of the IsInEditOrNavigateMode property (true =
25777         navigate, false = edit).  Also, update OnKeyPress to reflect this.
25778
25779         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
25780         column style exists, we still need to set its property descriptor
25781         to match up with our list manager.
25782
25783 2006-07-10  Chris Toshok  <toshok@ximian.com>
25784
25785         * ThemeWin32Classic.cs: implement the new row/header painting
25786         approach.  The parent row painting will likely go away and
25787         replaced with label controls, but the rest seems to work ok (and
25788         efficiently).
25789
25790         * Theme.cs: change the way we draw datagrid rows.  we don't draw
25791         the row headers as a block now.  Instead we draw them in the
25792         normal draw-row loop.  Add some calls for drawing parent rows and
25793         relation rows.
25794
25795         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
25796         a default table style.  Set the defaults from ThemeEngine.Current,
25797         not SystemColors.  Fix lots of misc issues with property setters.
25798
25799         * DataGrid.cs: move loads of style information out of this class
25800         as it's being duplicated with DataGridTableStyle.  keep track of a
25801         special DataGridTableStyle for the properties we used to mirror
25802         here.  Switch all the style properties to access this table style
25803         instead of instance fields of this class.  Also add a internal
25804         class to represent parent rows (more needs to be stored here, like
25805         the selection state from the parent table, as well as the
25806         expansion state.)  Also, for datasources with relations, do the
25807         right thing for collapse/expand, and add support for the
25808         navigation/parent row buttons.
25809
25810         Lastly, fix the crash in the 1.1.16 build.
25811
25812         * GridTableStylesCollection.cs: make the explicit interface
25813         implementations call the class's methods as opposed to duplicating
25814         them.
25815
25816         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
25817         0 so the text doesn't jump around when we move the cursor.
25818
25819 2006-07-10  Jackson Harper  <jackson@ximian.com>
25820
25821         * TextBoxBase.cs:
25822         * ListBox.cs: Match MS's ToString (this makes debugging focus
25823         stuff infinitely easier).
25824
25825 2006-07-10  Jackson Harper  <jackson@ximian.com>
25826
25827         * Control.cs (SelectNextControl): When checking the control's
25828         parent use this instead of ctrl.parent so that null can be passed
25829         to SelectNextControl. (I have unit tests for this).
25830         - Remove unused var.
25831
25832 2006-07-10  Chris Toshok  <toshok@ximian.com>
25833
25834         * CurrencyManager.cs: correct one regression, the removal of the
25835         finalType field.  Also, add a MonoTODO on CanAddRows, implement
25836         Refresh() correctly, and fix some event emission in
25837         ListChangedHandler.
25838
25839 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
25840
25841         * FileDialog.cs: Don't use brackets for new folders if they exist
25842           under *nix. Instead use -(number of existing folders +1).
25843
25844 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
25845
25846         * FileDialog.cs:
25847           - Fixed really nasty bug #78771
25848           - Don't block the whole GUI when reading directories with a lot of
25849             entries. Use an other thread instead and call BeginInvoke to
25850             update the ListView in MWFFileView
25851
25852 2006-07-07  Chris Toshok  <toshok@ximian.com>
25853
25854         * Control.cs (Dispose): release any Capture when disposing.
25855
25856 2006-07-07  Chris Toshok  <toshok@ximian.com>
25857
25858         * LinkLabel.cs (Select): if we chain up to the parent, set
25859         focused_index to -1 so we'll search for the first available link
25860         the next time the user tabs into us.  Also, if the direction is
25861         backward and focused_index == -1, start the search from the last
25862         element.
25863
25864 2006-07-07  Chris Toshok  <toshok@ximian.com>
25865
25866         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
25867         is beyond the end of the text, don't do anything.
25868         (CreateLinkPieces): set our ControlStyles.Selectable based on
25869         whether or not we have any links.
25870         (Link.Invalidate): use a loop instead of foreach.
25871         (Link.set_Start): null out owner.sorted_links so it'll be
25872         recreated by CreateLinkPieces.
25873
25874 2006-07-06  Chris Toshok  <toshok@ximian.com>
25875
25876         * LinkLabel.cs: revert the SetStyle change.
25877
25878 2006-07-06  Chris Toshok  <toshok@ximian.com>
25879
25880         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
25881         (OnEnableChanged): s/Refresh/Invalidate
25882         (OnGotFocus): if we have a focused index already, refocus it (so
25883         if we mouse out/in to the window it'll focus the right link).
25884         (OnKeyDown): move the tab handling out of here.
25885         (OnLostFocus): don't set focused_index to -1, so we can refocus it
25886         when we lose focus.
25887         (OnMouseDown): don't Capture here - Control handles it.  Also,
25888         focus the active link.
25889         (OnMouseUp): don't deal with Capture.
25890         (OnPaintBackgroundInternal): remove.
25891         (OnTextAlignChanged): CreateLinkPieces before calling the
25892         superclass's method.
25893         (OnTextChanged): call CreateLinkPieces before calling superclass's
25894         method.
25895         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
25896         move around.
25897         (Select): implement this, moving the selection between different
25898         links, and call parent.SelectNextControl if we don't have another
25899         link to focus in the given direction.
25900         (CreateLinkPieces): call Invalidate instead of Refresh.
25901         
25902 2006-07-06  Chris Toshok  <toshok@ximian.com>
25903
25904         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
25905         new LinkLabel internals.
25906
25907         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
25908         over pieces looking for active/focused/etc links.  also, deal with
25909         runs of text (and links) with embedded \n's in them, and use
25910         MeasureCharacterRanges instead of MeasureString to figure out the
25911         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
25912         two-step.
25913
25914 2006-07-04  Jackson Harper  <jackson@ximian.com>
25915
25916         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
25917         XKB or key auto repeat, do it manually.  Without key auto repeat,
25918         when a key is held down we get key press, key release, key press,
25919         key release, ... with auto repeat we get key press, key press, key
25920         press ..., and then a release when the key is actually released.
25921
25922 2006-07-03  Jackson Harper  <jackson@ximian.com>
25923
25924         * TabControl.cs:
25925         * ThemeWin32Classic.cs: Tabs do not obey normal background color
25926         rules, they are always control color regardless of the background
25927         color.
25928
25929 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
25930
25931         * FileDialog.cs: Added internal class MWFConfig.
25932           Removed Registry support and replaced it with support for the new
25933           MWFConfig class. See MWFConfig comments for more information.
25934
25935 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
25936
25937         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
25938           rectangle. Added some patches from eno from bug #78490 and fixed
25939           the arrow position for small up and down CPDrawScrollButtons.
25940
25941 2006-06-30  Jackson Harper  <jackson@ximian.com>
25942
25943         * InternalWindowManager.cs: Remove some debug code.
25944         * Form.cs: When an MdiParent is set to null, the window is
25945         "detatched" and becomes a normal window.
25946         * MdiClient.cs: Don't bring the new child form to the front until
25947         it is activated (setting it as active does this), this makes the
25948         previously active forms titlebar get redrawn as inactive.
25949
25950 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
25951
25952         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
25953           with later controls
25954
25955 2006-06-29  Mike Kestner  <mkestner@novell.com>
25956
25957         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
25958         arrow in keynav state.  Fixes #78682.
25959
25960 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
25961
25962         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
25963           order (fixes #78393)
25964
25965 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
25966
25967         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
25968           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
25969           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
25970           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
25971           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
25972           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
25973           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
25974           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
25975           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
25976           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
25977           enumerations (FlagsAttribute, SerializableAttribute, added/removed
25978           values)
25979
25980 2006-06-28  Mike Kestner  <mkestner@novell.com>
25981
25982         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
25983
25984 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
25985
25986         * PropertyGrid.cs,
25987           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
25988           item lines from other area (It also makes BackColor consistent and
25989           compatible with .NET). Fixed bug #78564.
25990
25991 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
25992
25993         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
25994         Patch from Eno for #78555.
25995
25996 2006-06-27  Chris Toshok  <toshok@ximian.com>
25997
25998         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
25999
26000         * DataGridColumnStyle.cs: same.
26001
26002         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
26003         
26004         * DataGridDrawingLogic.cs: nuke.
26005
26006 2006-06-27  Chris Toshok  <toshok@ximian.com>
26007
26008         * DataGridTableStyle.cs: clean up the constructors, and build the
26009         list of child relations for this table.  I have no idea if this is
26010         where we should be doing it (it probably isn't), but since we're
26011         already iterating over the properties..
26012
26013         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
26014         struct and array for keeping track of row information, similar to
26015         what's shown in a hack on
26016         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
26017
26018         * Theme.cs: be consistent about the naming of DataGrid methods,
26019         prefering ColumnWidths and RowHeights over columnsWidths and
26020         RowsHeights.
26021
26022         * ThemeWin32Classic.cs: same, and also add support for variable
26023         sized rows (and the +/- expansion icons for related rows).
26024
26025 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
26026
26027         * TextBoxBase.cs: Applied Eno's patch from #78660
26028
26029 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
26030
26031         * Form.cs (ScaleCore): We don't want to scale our form if it's
26032           state is minimized or maximized, but we still need to scale our
26033           child windows. Also, added try/finally block to ensure layout
26034           gets reset (Fixes #78697)
26035
26036 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
26037
26038         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
26039
26040 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
26041
26042         * Form.cs: Fixed c+p error and added check to resize form if minimum
26043           size is bigger than current size (Fixes #78709)
26044
26045 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
26046
26047         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
26048
26049 2006-06-26  Mike Kestner  <mkestner@novell.com>
26050
26051         * ComboBox.cs: only do Keypress handling in the combo when there  
26052         are items in the collection. Fixes #78710.
26053
26054 2006-06-26  Chris Toshok  <toshok@ximian.com>
26055
26056         * Binding.cs: make this work bi-directionally.  also, clear up
26057         other mixups between Push/Pull Data (e.g. we're supposed to pull
26058         data when validating).
26059
26060         * BindingManagerBase.cs: trim some fully qualified collection
26061         types.
26062
26063         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
26064
26065 2006-06-23  Chris Toshok  <toshok@ximian.com>
26066
26067         * PropertyManager.cs: It appears (according to the unit tests)
26068         that PropertyManager doesn't use
26069         PropertyDescriptor.AddValueChanged to track propery value changes
26070         in its datasource, but uses the same scheme as Binding, where it
26071         looks for a <Property>Changed event and binds to it.
26072
26073         Also, according to the docs, IsSuspended always returns false for
26074         a property manager with a non-null datasource.
26075
26076 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
26077
26078         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
26079           need to update the actual DialogResult. (Fixes #78613)
26080
26081 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
26082
26083         * Form.cs (ShowDialog): Release any captures before running the
26084           new message pump (fixes #78680)
26085
26086 2006-06-22  Mike Kestner  <mkestner@novell.com>
26087
26088         * ListView.cs: Layout column widths properly in details mode even 
26089         if HeaderStyle.None is set.  Fixes #78691.
26090
26091 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
26092
26093         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
26094
26095 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
26096
26097         * Control.cs (ContainsFocus): Using new driver method to get focused
26098           window, instead of trying to use internal tracking var, which can
26099           recursion issues (Fixes #78685)
26100         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
26101           XplatUIWin32.cs: Added GetFocus method to return focused window
26102
26103 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26104
26105         * ColorDialog.cs: when the mouse button is pressed inside the color
26106         matrix, don't let the cursor move out of it until the button is
26107         released, which is the behavior on windows. Changed 'colours' by
26108         'colors' to use the same word consistently.
26109
26110 2006-06-21  Chris Toshok  <toshok@ximian.com>
26111
26112         * DataGrid.cs: add in some basic navigation stuff (navigating to a
26113         child relation and back, using a stack).  Also, remove
26114         GetDataSource and the code that calls it - it's not needed.  Also,
26115         track CurrencyManager.ListName's removal.
26116
26117 2006-06-21  Chris Toshok  <toshok@ximian.com>
26118
26119         * CurrencyManager.cs: push some of the original type checking from
26120         BindingContext.CreateBindingManager to here, and remove some of
26121         the finalType stuff.  Need more tests to make sure I've got the
26122         ListName part right, and we might need more in SetDataSource.
26123
26124         * PropertyManager.cs: add a ctor that takes just the datasource,
26125         and no property name.  Make SetDataSource work with a null
26126         property_name, and make Current return the data_source if the
26127         property descriptor is null.  this makes 'string foo = "hi";
26128         BindingContext[foo].Current' return "hi" as it should.
26129
26130         * RelatedCurrencyManager.cs: make this code more generic - there's
26131         no reason the parent manager has to be CurrencyManager, and
26132         there's no reason to pass the DataRelation.  It suffices to use a
26133         BindingManagerBase and PropetyDescriptor.
26134
26135         * RelatedPropertyManager.cs: make a similar change here.
26136         
26137         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
26138         flower I knew it could be.
26139
26140 2006-06-20  Chris Toshok  <toshok@ximian.com>
26141
26142         * PropertyManager.cs: the PropertyChangedHandler is invoked when
26143         data in the source has changed and we need to update the control,
26144         so s/PullData/PushData.
26145
26146         * CurrencyManager.cs: Refresh is meant to update the control from
26147         data in the datasource.  So, s/PullData/PushData.
26148
26149         * BindingContext.cs: add more ugliness (we weren't handling the
26150         case where data_source = DataTable and data_member = column_name).
26151
26152         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
26153         from the perspective of the datasource.  PullData pulls from the
26154         control, PushData pushes to the control.
26155
26156 2006-06-20  Chris Toshok  <toshok@ximian.com>
26157
26158         * BindingContext.cs: rewrite the CreateBindingManager code to
26159         handle navigation paths more or less properly.  This could
26160         definitely stand some more work, in particular to push the
26161         recursion up to the toplevel.  But that relies on fixes in other
26162         places (System.Data comes to mind).
26163
26164         Also, move to a flat hashtable (and encode the twolevel nature of
26165         the dictionary into the hash key).  This lets us implement the
26166         IEnumerable.GetEnumerator method.
26167
26168         * RelatedCurrencyManager.cs: new class.  Update our view based on
26169         our relation and our parent CurrencyManager's position.
26170
26171         * CurrencyManager.cs: split out some logic from the ctor into
26172         SetView, so it can be called from the new RelatedCurrencyManager
26173         subclass.
26174
26175         * RelatedPropertyManager.cs: new class.  Update our datasource
26176         based on the position of our parent CurrencyManager.
26177
26178         * PropertyManager.cs: split out some logic from the ctor into
26179         SetDataSource, so it can be called from the new RelatedDataSource
26180         subclass.  Also, make the Current getter return the value
26181         of the PropertyDescriptor, not the data_source.
26182
26183         * Binding.cs: no need to duplicate the string splitting code here.
26184
26185 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
26186
26187         * Control.cs:
26188           - set_Enabled: OnEnabledChanged is not called if the inherited state 
26189             of the control is not altered, even though  we might be changing the
26190             internal state of the control (#78458)
26191           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
26192             OnEnabledChanged, to allow easy altering of any child window state
26193           - OnEnabledChanged: Added code to enable/disable driver window state
26194           - OnParentEnabledChanged: Instead of firing the event, call 
26195             OnEnabledChanged, which will fire the event and also a) set driver
26196             window state and pass the enabled state to any grandchildren (#78458)
26197
26198 2006-06-19  Jackson Harper  <jackson@ximian.com>
26199
26200         * InternalWindowManager.cs: We don't set the cursor explicitly
26201         thats done via the response to NCHITTESTs.
26202         - Don't need to adjust for titlebar heights anymore, the
26203         coordinates are coming in the correct coordinates now (see peters
26204         last patch).
26205
26206
26207 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
26208
26209         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
26210           being translated relative to whole window, instead of client window.
26211           That caused broken offsets on mouseclick (and caused gas for our
26212           InternalWindowManager)
26213
26214 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
26215
26216         * TextControl.cs:
26217           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
26218           - Undo(): Added replay of cursor move on DeleteChars action; added
26219             calling Undo() again if a recorded cursor move is invalid (to
26220             ensure that some action is performed on Undo)
26221         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
26222
26223 2006-06-16  Jackson Harper  <jackson@ximian.com>
26224
26225         * MdiClient.cs: Instead of just sizing maximized windows when
26226         there is a resize we also have to adjust the Y of minimized
26227         windows, so they stay pinned to the bottom of the mdi container.
26228         - Eliminate separate tracking of the active control, we can just
26229         get this from the controls collection.
26230         - Paint the decorations for the newly activated titlebar so we get
26231         a pretty blue bar.
26232         * InternalWindowManager.cs:
26233         * ThemeWin32Classic.cs: Minimized windows get all three buttons
26234         even if they are a tool window.
26235         
26236 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
26237
26238         * TextControl.cs (Undo): Handle non-existent cursor locations in the
26239           undo buffer, these can happen when text was deleted and the cursor
26240           was recorded first. Since we will also have a recorded cursor
26241           after the delete this is not an issue. (Fixes #78651)
26242
26243 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
26244
26245         * AccessibleObject.cs: Remove dependence on Control.is_selected;
26246           instead properly track control states internally (allows us to
26247           remove is_selected from Control)
26248
26249 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26250
26251         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
26252         whose width is not a multiple of 8.
26253
26254 2006-06-13  Jackson Harper  <jackson@ximian.com>
26255
26256         * MdiClient.cs:  Only maximize the next child if the current one
26257         is maximized.
26258
26259 2006-06-13  Chris Toshok  <toshok@ximian.com>
26260
26261         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
26262         modified.  Also, guard against grid or grid_drawing being null in
26263         Invalidate.
26264
26265         * DataGrid.cs: Reformat tons of getters/setters.  In the
26266         DataMember setter, just call SetNewDataSource instead of
26267         duplicating some of its functionality.  In SetNewDataSource, don't
26268         check ListManager for null, since the property getter creates the
26269         object if needed.
26270
26271         * DataGridTableStyle.cs: don't set TableStyle or call
26272         SetDataGridInternal on the column here, it's done in
26273         GridColumnStylesCollection.Add.
26274
26275         * GridColumnStylesCollection.cs: fix all the explicit interface
26276         implementations to just call our methods.  Nuke AddInternal() and
26277         move the body of it to Add().  Also, add a call to
26278         column.SetDataGridInternal to Add().
26279
26280         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
26281         base()+duplicate code.  Also, use the Format property instead of
26282         format to generate an Invalidate ala MS.  Lastly, create the
26283         textbox here, unconditionally.
26284         (set_Format): call Invalidate.
26285         (get_TextBox): no need to call EnsureTextBox.
26286         (Commit): remove the message box.
26287         (Edit) remove the call to EnsureTextBox.
26288         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
26289         (EnterNullValue): no need to check textbox for null.
26290         (HideEditBox): no need to check textbox for null.
26291         (SetDataGridInColumn): add the textbox to the grid's controls.
26292         (EnsureTextBox): nuke.
26293         
26294 2006-06-13  Jackson Harper  <jackson@ximian.com>
26295
26296         * MdiWindowManager.cs: Hook up to the maximized menus paint event
26297         and redraw the buttons when needed. Unhook when the window is
26298         unmaximized.
26299         * MainMenu.cs: Add an internal Paint event, the mdi window manager
26300         needs this so that it can redraw its buttons when the menu is
26301         repainted.
26302         * InternalWindowManager.cs:
26303         * Form.cs: The method order has changed for DrawMaximizedButtons,
26304         so that it can be a PaintEventHandler.
26305         
26306 2006-06-13  Jackson Harper  <jackson@ximian.com>
26307
26308         * MdiClient.cs: When we close a maximized mdi window, the next mdi
26309         window is activated and maximized, even if it wasn't before.
26310         - When  a new window is activated repaint the decorations of the
26311         old one, so that it no longer has the Active "look" (the blue
26312         titlebar).
26313         * InternalWindowManager.cs: Open up CreateButtons to base classes
26314         so they can recreate the buttons on state changes.
26315         - If a window is maximized give it all three buttons
26316         * MdiWindowManager.cs: Create the titlebar buttons when the state
26317         is changed, this is needed because a toolwindow will not have all
26318         three buttons until it is maximized.
26319
26320 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
26321
26322         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
26323           Fixed bug #78609.
26324
26325 2006-06-12  Jackson Harper  <jackson@ximian.com>
26326
26327         * KeysConverter.cs: Make sure we handle the Ctrl special case
26328         if its the only key.
26329         
26330 2006-06-12  Jackson Harper  <jackson@ximian.com>
26331
26332         * Theme.cs: Add a method to get the size of a managed window
26333         toolbar button.
26334         * InternalWindowManager.cs: Remove the ButtonSize property, this
26335         should be retrieved from the theme.
26336         * MdiWindowManager.cs: Get the button size from the theme
26337         * ThemeWin32Classic.cs: Make the method to get the managed window
26338         titlebar button size public.
26339         - Handle the different button sizes of maximized toolwindows
26340         (should match any maximized window).
26341         - Get the titlebar height from the theme, not the WM (which gets
26342         it from the theme).
26343
26344 2006-06-12  Jackson Harper  <jackson@ximian.com>
26345
26346         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
26347         event down to the mdi window manager.
26348         - Expose some extra stuff to base classes
26349         - Make sure to end the Capture on an NC Mouse up, so that we can
26350         get double clicks properly, and the sizing doens't stick.
26351         - When doing PointToClient contain it in the workable desktop
26352         area, this prevents windows from changing size when the cursor is
26353         pulled outside of the working area while sizing.
26354         * MdiWindowManager.cs: When we get a double click maximize the
26355         window.
26356         - Reset the cursor after handling mode changes.
26357
26358 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
26359
26360         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
26361           current desktop, instead of just assuming a 0, 0 origin. This
26362           is needed for our internal window manager, to know the top
26363           margin of the desktop
26364
26365 2006-06-12  Chris Toshok  <toshok@ximian.com>
26366
26367         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
26368         we need this to get rid of the selected background in the bool
26369         column.
26370         (CancelEditing): move the ConcedeFocus call to above the Abort
26371         call.  Also, set is_changing to false and invalidate the row
26372         header if we were changing before.
26373         (ProcessKeyPreviewInternal): remove, since noone outside this
26374         class calls it anymore.  Roll the code into ProcessKeyPreview.
26375         (EndEdit): remove the internal version.
26376         (InvalidateCurrentRowHeader): make private.
26377
26378         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
26379         Keys.Escape handling (and with it the last call to
26380         DataGrid.EndEdit from outside the class.)
26381
26382
26383 2006-06-12  Chris Toshok  <toshok@ximian.com>
26384
26385         * DataGridTextBox.cs (.ctor): isedit defaults to false.
26386         (OnKeyPress): set isedit to true.
26387         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
26388         already handled by the grid.
26389
26390         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
26391         right.  ugh.
26392         (set_DataSource): SetDataSource always returns true, so stop
26393         putting it in an if statement.
26394         (EndEdit): get rid of some {}'s
26395         (ProcessGridKey): return true in case Keys.Escape.
26396         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
26397         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
26398         PositionChanged, stopped connecting to CurrentChanged.
26399         (GetDataSource): simplify this a bunch.
26400         (SetDataSource): change return type from bool to void.
26401         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
26402         to this, and make sure we don't set ListManager.Position inside
26403         set_CurrentCell.
26404         (OnListManagerItemChanged): if we're passed an actual index,
26405         redraw that row.
26406
26407         * CurrencyManager.cs (set_Position): don't call PullData here.
26408
26409 2006-06-09  Jackson Harper  <jackson@ximian.com>
26410
26411         * TreeNode.cs:  Recalculate the visible order before doing the
26412         Expand/Collapse Below calls, because those calls generate an
26413         expose.
26414         - Reduce calls to the TreeView property, which is mildly expensive
26415         by using a local var.
26416         * Form.cs: Layout the MDI child windows when creating the parent
26417         form.
26418         - Don't use the internal constructor anymore
26419         * MdiClient.cs: use the parent form width/height (if available)
26420         when laying out the child windows, we do this because the
26421         mdiclient isn't docked yet when the initial layout is done.
26422         - Don't need an internal constructor anymore.
26423
26424 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26425
26426         * FileDialog.cs: handle access errors when trying to create a folder
26427         or changing to a directory. No need to initialize out parameters.
26428
26429 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
26430
26431         * FileDialog.cs: Append a number when creating a new folder if the
26432           folder already exists (use parenthesis instead of square brackets)
26433
26434 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
26435
26436         * FileDialog.cs:
26437           - Disabled registry support for windows and added better registry
26438             error checking for other systems (need to investigate why it
26439             works perfectly on my system)
26440           - If a folder already exist show an error MessageBox instead of
26441             trying to create an indexed name.
26442           - Fixed a non intentional typo.
26443
26444 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26445
26446         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
26447
26448 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
26449
26450         * FileDialog.cs: When creating a new folder don't crash if the
26451           folder already exists.
26452
26453 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
26454
26455         * FileDialog.cs: Allmost a complete rewrite.
26456           - added a "virtual" file system that handles the differences
26457             between unix and windows file systems (especially the directory
26458             structure). Moved most of the directory and file handling code
26459             into the vfs.
26460             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
26461             UnixFileSystem and FSEntry.
26462           - Recently used folder/directory, size, location and used file names
26463             (file name ComboBox) are now stored in the registry and get read
26464             before the dialog shows up (fixes part 6 of bug #78446).
26465           - Creation of new folders/directories is now possible (context menu
26466             or ToolBar). Added TextEntryDialog for this that fills in the gap
26467             until ListView.LabelEdit works.
26468           - Fixed cursor handling (bug #78527) and focus handling for
26469             PopupButtonPanel
26470           - Various "Search in" ComboBox enhancements. The content of the
26471             dropdown listbox now almost matches ms.
26472           - Changed the behaviour when the user switches to SpecialFolder
26473             Recent to show the ListView in View.Details.
26474           - Beside using the ToolBar to change the View property of the
26475             file ListView it is now possible to use the context menu too.
26476
26477 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
26478
26479         * ComboBox.cs: Don't create a new ObjectCollection when an item
26480           gets inserted. Just insert the item in the existing object_items
26481           ArrayList.
26482
26483 2006-06-08  Jackson Harper  <jackson@ximian.com>
26484
26485         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
26486         that the treeview and root node checks are done also, this fixes a
26487         regression i caused in the unit tests.
26488
26489 2006-06-07  Wade Berrier <wberrier@novell.com> 
26490
26491         * RichTextBox.cs: More ISO8859-1 -> unicode
26492
26493 2006-06-07  Mike Kestner  <mkestner@novell.com>
26494
26495         * ComboBox.cs : use items to hold highlight/selection so that
26496         collection insertions don't require synchronization.
26497
26498 2006-06-07  Jackson Harper  <jackson@ximian.com>
26499
26500         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
26501         routine.  We now always keep the sized edge at the cursor instead
26502         of computing movement and adjusting rects.  There is one buglet
26503         with this method though when the cursor is moved over area that
26504         the window can not expand too (such as the toolbars on the desktop).
26505
26506 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26507
26508         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
26509         here. Fixes crash on startup in AlbumSurfer.
26510
26511 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
26512
26513         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
26514           values
26515
26516 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26517
26518         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
26519         statement to avoid calling XNextEvent which will block if another thread
26520         took the event that we were expecting. Fixes bug #78605.
26521
26522 2006-06-07  Mike Kestner  <mkestner@novell.com>
26523
26524         * ListView.cs : isolated checkbox clicking from the selection logic.
26525         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
26526
26527 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
26528
26529         * Form.cs: Check that the value passed to Form.DialogResult
26530         is a valid enum value.
26531
26532 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26533
26534         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
26535         Computer'. Clicking it in the network view goes to 'My Computer'.
26536         Added CIFS filesystem type. Display the mount point of filesystems.
26537         Avoid duplicate mount points (happens for me with CIFS);
26538
26539 2006-06-06  Jackson Harper  <jackson@ximian.com>
26540
26541         * InternalWindowManager.cs: Draw the maximized windows buttons
26542         when resizing.
26543
26544 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26545
26546         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
26547         all other dialogs. Fixes bug #78585.
26548
26549 2006-06-06  Mike Kestner  <mkestner@novell.com>
26550
26551         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
26552         Only invalidate checkbox on checkstate changes to avoid flicker.
26553         * ListBox.cs : avoid unselect/select when clicking selected item.
26554         avoid reselection flicker for already multiselected items.
26555         Fixes #78382.
26556
26557 2006-06-06  Jackson Harper  <jackson@ximian.com>
26558
26559         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
26560         the parent form so that the menu is removed if needed.
26561
26562 2006-06-06  Mike Kestner  <mkestner@novell.com>
26563
26564         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
26565         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
26566
26567 2006-06-06  Mike Kestner  <mkestner@novell.com>
26568
26569         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
26570
26571
26572 2006-06-06  Jackson Harper  <jackson@ximian.com>
26573
26574         * Control.cs: Use the property (instead of the field) to get the
26575         default cursor so it is instantiated correctly.
26576         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
26577         resizes so we need to manually repaint the window decorations here.
26578         - Set the titlebar button locations as soon as they are created,
26579         otherwise they are not set correctly on win32.
26580         
26581 2006-06-06  Chris Toshok  <toshok@ximian.com>
26582
26583         * CurrencyManager.cs (set_Position): call PullData before
26584         OnCurrentChanged.
26585         (AddNew): after calling IBindingList.AddNew, update our
26586         listposition, and call OnCurrentChanged/OnPositionChanged (without
26587         calling PullData).
26588         (OnCurrentChanged): remove the call to PullData from here.
26589         (OnItemChanged): remove the call to PushData from here.
26590         (OnPositionChanged): change the test from == null to != null to
26591         match the other methods.
26592         (ListChangedHandler): the grossest part of the patch.  Implement
26593         this such that it passes the unit tests in CurrencyManagerTest and
26594         the output more or less matches that of MS's implementation.
26595  
26596 2006-06-06  Mike Kestner  <mkestner@novell.com>
26597
26598         * ListView.cs : only update check state on single click.
26599         * ThemeWin32Classic.cs : fix focus drawing for details view without
26600         fullrowselect.  Fixes #78454.
26601         * XplatUIX11.cs : fix for double click emission.
26602
26603 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
26604
26605         * PropertyGridView.cs : Applied Atsushi's patch to fix
26606         font dialog bug  (#78197).
26607
26608 2006-06-05  Jackson Harper  <jackson@ximian.com>
26609
26610         * TreeNode.cs: Compute the next node for expanding/collapsing
26611         correctly. We now factor in nodes without a NextNode
26612         correctly. (Fixes somes cases in nunit-gui).
26613         * InternalWindowManager.cs: Set the bounds when updating the
26614         virtual position of a tool window.
26615         
26616 2006-06-05  Chris Toshok  <toshok@ximian.com>
26617
26618         * DataGrid.cs: rename cached_currencymgr to list_manager.
26619         (set_CurrentCell): move SetCurrentCell code here, and clean it up
26620         some.
26621         (CurrentRow, CurrentColumn): single accessors so we can make the
26622         cursor movement code a lot easier to understand.
26623         (CurrentRowIndex): implement this in terms of CurrentRow.
26624         (BeginEdit): clean this up a bit.
26625         (CancelEditing): sort out the is_editing/is_changing/is_adding
26626         stuff a little.
26627         (EndEdit): minor changes.
26628         (OnKeyDown): add a comment about a (most likely) unnecessary
26629         check.
26630         (OnMouseDown): cancel editing when we click on a row header.  And
26631         use the CurrentRow setter, not CurrentCell.
26632         (ProcessDialogKey): directly call ProcessGridKey.
26633         (UpdateSelectionAfterCursorMove): factor out this common block of
26634         code (it's used everywhere that we move the cursor by updating row
26635         or column).
26636         (ProcessGridKey): pretty substantial overhaul.  Use the
26637         CurrentRow/CurrentColumn properties to make the code a lot more
26638         readable.  Only use the CurrentCell property when we have to
26639         modify both row and column at once.  Tab behavior is still broken,
26640         and Delete is untested.
26641         (Select): if we have no selected rows, set selection_start to
26642         @row.
26643         (EditCurrentCell): rename EditCell this.  It was only ever invoked
26644         with CurrentCell as the arg, so drop the arg and rename it.
26645
26646         * DataGridColumnStyle.cs: clean up the constructors a little, and
26647         drop CommonConstructor().
26648
26649         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
26650         actually get notified when the user hits it.
26651         (ProcessKeyMessage): *substantially* simplify this method.
26652         There's no reason (that I can see) for the textbox to be making
26653         calls into the datagrid at all.  Remove all of them but the ones
26654         for Enter handling.  those will take some more work.
26655
26656         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
26657         calling HideEditBox.
26658         (HideEditBox): if we have an active textbox, render it invisible
26659         without causing a re-layout of the datagrid.
26660
26661 2006-06-05  Mike Kestner  <mkestner@novell.com>
26662
26663         * ListView.cs : fix NRE crasher when focuseditem is cleared by
26664         collection changes by resetting it to Items[0].  Fixes #78587.
26665
26666 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26667
26668         * MessageBox.cs: if the height of the text is larger than the icon_size,
26669         use that. Fixes bug #78575.
26670
26671 2006-06-05  Jackson Harper  <jackson@ximian.com>
26672
26673         * TreeView.cs: Fix line drawing when scrolling.  To do this each
26674         node is basically responsible for drawing its entire horizontal
26675         area.  When drawing a node it draws its parent node lines if
26676         needed.
26677         - Adjust the clip area to the viewport rectangle
26678         - Fix Left/Right key handling to match MS. (It expand/collapses
26679         and moves to parents/first child but does not move selection to
26680         sibling nodes).
26681         - Fix SetTop to work with new bound calculation code
26682         - When scrollbars are no longer needed we need to reset scrolling
26683         vars and recalculate the visible order so the redraw is correct
26684         * TreeNode.cs: We can't expand/collapse nodes with no children.
26685
26686 2006-06-03  John Luke  <john.luke@gmail.com> 
26687
26688         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
26689         so the colors work without dev packages
26690         
26691 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
26692
26693         * Control.cs 
26694           - Select: Implemented to just use activate. Seems to match MS 
26695             behaviour closest. Documented to only do actual control walking 
26696             based on it's parameters if in a container control so I moved 
26697             the code there.
26698           - Removed selection check logic from our internal Select() method
26699         * ContainerControl.cs:
26700           - Select: Moved selection logic from Control here, since MS documents
26701             that containers obey the bool arguments. No longer calling base
26702
26703 2006-06-02  Jackson Harper  <jackson@ximian.com>
26704
26705         * TreeView.cs: If the selected node isn't changed when we get
26706         focus update the previously selected node so that we see the
26707         selection box.
26708
26709 2006-06-02  Mike Kestner  <mkestner@novell.com>
26710
26711         * ComboBox.cs: restructure grab and general mouse event handling.
26712         Make the composite control raise mouse events like it was a single
26713         control for leaves/enters/motion/up/down events.  fix dropdown list
26714         coordinate mangling and refactor it into the scrollbar subclass to
26715         reduce code duplication.  Fixes #78282 #78361 and #78457.
26716
26717 2006-06-02  Mike Kestner  <mkestner@novell.com>
26718
26719         * ScrollBar.cs: remove Capture setting/clearing, as it happens
26720         automatically in the Control.WndProc.
26721
26722 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26723
26724         * FileDialog.cs: fix crash when running SharpChess, which sets the
26725         FilterIndex to 2 with only one Filter.
26726
26727 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26728
26729         * ToolBar.cs: add SizeSpecified property.
26730         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
26731         try to figure out our real size, otherwise fallback to what the
26732         container says.
26733
26734 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
26735
26736         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
26737         * Control.cs (WndProc): MS always calls the DefWndProc to pass
26738           up the event
26739
26740 2006-06-01  Mike Kestner  <mkestner@novell.com>
26741
26742         * ListView.cs: revamp the focus management in ListView.  It still
26743         causes churn of LostFocus/GotFocus emissions on clicks, but it's
26744         better than not handling focus at all.  Will revisit when pdb feels
26745         the general focus handling is solid.  Fixes #78526.
26746
26747 2006-06-01  Jackson Harper  <jackson@ximian.com>
26748
26749         * TreeView.cs: Set the default border style in the constructor.
26750         - Move painting to use OnPaintInternal instead of capturing
26751         WM_PAINT, this is the correct way of doing things
26752         - UpdateBelow shouldn't invalidate the scrollbar area
26753         - Cap the top on update below in case the node was above the top
26754         of the viewport rectangle.
26755         - ExpandBelow and Collapse below need to obey Begin/End Update.
26756         * TreeNode.cs: Make is_expanded internal so the treenode
26757         collection can change it without firing the whole event chain.
26758         * TreeNodeCollection.cs: When clearing all the child nodes make
26759         sure to recalc the visible order.
26760         - Improve algo for remove the top node
26761
26762 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
26763
26764         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
26765           SendMessage directly calling window procedures, which in turn might
26766           call SetFocus()
26767
26768 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
26769
26770         * Control.cs: Don't handle WM_SETFOCUS if the same window already
26771           has focus (works around X11 sending a FocusIn after our SetFocus)
26772         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
26773
26774 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
26775
26776         * Mime.cs: Fix for the NET_2_0 build.
26777           NameValueCollection needs StringComparer now.
26778
26779 2006-05-31  Chris Toshok  <toshok@ximian.com>
26780
26781         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
26782         return (via an out parameter) the starting X of the column.
26783         (UpdateVisibleColumn): track change to FromPixelToColumn.
26784         (HitTest): add a ColumnResize case here.
26785         (DrawResizeLine): new function, probably poorly named.
26786
26787         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
26788         only need to keep one reference.
26789         (set_ListManager): same.
26790         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
26791         Also, add support for HitTestType.ColumnResize.
26792         (OnMouseMove): add column resize behavior here, and change the
26793         cursor to the correct one as we move around the datagrid.
26794         (OnMouseUp): terminate the column resize if we're resizing.
26795         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
26796         for the current cell.
26797         (ConnectListManagerEvents): use cached_currencymgr.
26798         (DisconnectListManagerEvents): fill this in, using
26799         cached_currencymgr.
26800         (SetCurrentCell): remove cached_currencymgr_events handling.
26801         (SetDataMember): only call DisconnectListManagerEvents if
26802         cached_currencymgr is != null.
26803         (SetDataSource): same.
26804         (OnListManagerCurrentChanged): cached_currencymgr_events ->
26805         cached_currencymgr.
26806
26807 2006-05-31  Jackson Harper  <jackson@ximian.com>
26808
26809         * BindingManagerBase.cs: Remove somedebug code that creeped into
26810         SVN.
26811         * TreeNode.cs: We get the indent level dynamically right now, so
26812         don't track it as a member.
26813         * TreeNodeCollection.cs: Make sure all nodes added to the list
26814         have parents, treeviews/topnodes setup properly.
26815         - Don't attempt to track indent level.
26816
26817 2006-05-30  Jackson Harper  <jackson@ximian.com>
26818
26819         * BindingContext.cs: Create the currency manager tables here.
26820         This allows us to more easily create null tables (when bad data
26821         members are used), and more easily create related currency
26822         managers.
26823         * CurrencyManager.cs: All the table creation stuff is done by the
26824         binding context now.
26825         - Current should throw an exception if listposition is -1.
26826         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
26827         been bound yet.
26828
26829 2006-05-30  Mike Kestner  <mkestner@novell.com>
26830
26831         * ListView.cs: allow reexpansion of zero-width column headers.
26832         Fixes #78528.
26833
26834 2006-05-28  Chris Toshok  <toshok@ximian.com>
26835
26836         * CurrencyManager.cs (get_Current): after the late binding
26837         listposition = -1 fix, we need to guard against it here and return
26838         null, otherwise we raise an exception (which is swallowed
26839         elsewhere, and breaks datagrid databinding.)
26840
26841 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
26842
26843         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
26844           than WM_SYSKEY, don't throw if get something unexpected (#78507)
26845
26846 2006-05-26  Jackson Harper  <jackson@ximian.com>
26847
26848         * ControlPaint.cs:
26849         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
26850         values, it's faster and it's all we care about (we don't care if
26851         the names aren't equal).
26852         * KeyboardLayouts.cs: Eliminate some dead code.
26853         - Lazy init things
26854         * X11Keyboard.cs: Lazy init keyboard detection.
26855         - Cleanup access modifiers a little.
26856
26857 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
26858
26859         * XplatUIX11.cs: Once again, attempting to get layout just right.
26860
26861 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
26862
26863         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
26864           the sizes of each link section, that will result in sizes that
26865           match DrawString's layout (Fixes #78391)
26866
26867 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
26868
26869         * FileDialog.cs: If AddExtension property is true autocomplete the
26870           extensions in SaveFileDialog correctly. Fixes bug #78453.
26871           Set MyNetwork and MyComputer to "C:\" for windows. This should
26872           fix part 8 of bug #78446 for now.
26873
26874 2006-05-26  Chris Toshok  <toshok@ximian.com>
26875
26876         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
26877         invalidate the current row header if we need to, but presumably
26878         we'll invalidate the row corrsponding to the bounds or
26879         editingControl.
26880         (GridHScrolled): switch back to this method, as it's part of the
26881         public api.  *sigh*.
26882         (GridVScrolled): same.
26883         (OnMouseWheel): hack up something that more or less works.  Call
26884         GridHScrolled/GridVScrolled directly, instead of duplicating much
26885         of their code here.
26886         (EnsureCellVisibility): reinstate a bunch of this code, since we
26887         can't just set the scrollbar Value and expect to do all the work
26888         in the ValueChanged handler.  Also, Call Update() after scrolling
26889         in one direction so the other XplatX11.ScrollWindow call has the
26890         proper stuff in the proper places.
26891         (EditCell): set is_editing to true before calling .Edit.
26892
26893         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
26894         don't bother comparing first.
26895         (OnKeyPress): call grid.ColumnStartedEditing before calling
26896         base.OnKeyPress.  this will set is_changing and invalidate the row
26897         header if necessary.
26898         (ProcessKeyMessage): for WM_CHAR messages, call
26899         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
26900         and WM_KEYDOWN.
26901         
26902         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
26903         it's done in the DataGrid.
26904         (NextState): call grid.ColumnStartedEditing, which takes care of
26905         invalidating the row header (and setting is_changing).
26906
26907         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
26908         here.  it's done in the DataGrid.
26909
26910 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26911
26912         * Control.cs: allow changing the cursor when the mouse position is
26913         out of bounds but Capture is set.
26914         * LinkLabel.cs: handle the case when the mouse button is pressed on the
26915         linklabel but released somewhere else.
26916
26917 2006-05-25  Jackson Harper  <jackson@ximian.com>
26918
26919         * TreeView.cs: When we get focus if there is no selected node make
26920         it the top node
26921         - Remove some uneeded setup code from Draw.
26922         * TreeNodeCollection.cs: If the tree doesn't have a top node when
26923         a new node is inserted make the new node the top.
26924         * XplatUIX11.cs:
26925         * Timer.cs: Use Utc time so that no local time zone stuff needs to
26926         be used (should be faster).
26927         
26928 2006-05-25  Chris Toshok  <toshok@ximian.com>
26929
26930         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
26931         problem with the last commit.
26932
26933 2006-05-25  Chris Toshok  <toshok@ximian.com>
26934
26935         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
26936         need the invalidate call here, while scrolling right-to-left via
26937         the left arrow key (i.e. moving the editing cell while scrolling).
26938
26939         * DataGrid.cs (.ctor): remove the initialization of
26940         ctrl_pressed/shift_pressed.  We no longer track them using key
26941         up/down handlers, but by using Control.ModifierKeys.  Also, switch
26942         to using ValueChanged handlers on the scrollbars instead of
26943         Scrolled event handlers.  This simplifies a bunch of the scrolling
26944         code.
26945         (GridHValueChanged): rename from GridHScrolled, and change it to
26946         work with the new event args.
26947         (GridVValueChanged): same.
26948         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
26949         (OnMouseWheel): actually scroll the datagrid.  Don't change the
26950         selected cell.
26951         (ProcessGridKey): correct all the keyboard navigation stuff I
26952         could find.  Ctrl up/down/left/right/home/end work now.
26953         (EnsureCellVisibility): correct method name spelling.  Also,
26954         simplify this a touch by not explicitly calling the
26955         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
26956         scrollbar value.
26957         (OnKeyUpDG): no need for this method now.
26958         
26959 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26960
26961         * LinkLabel.cs: display the OverrideCursor when hovering the label.
26962         Fixes bug #78392.
26963
26964 2006-05-25  Chris Toshok  <toshok@ximian.com>
26965
26966         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
26967         r61019.
26968
26969 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
26970
26971         * Application.cs: Moved setting of is_modal and closing to before
26972           we create the control, to allow the event handlers called as a
26973           result of creation affect closing. Also removed Gonzalo's previous
26974           change to setting DialogResult, the behaviour has been moved to 
26975           Form.ShowDialog()
26976         * Form.cs: 
26977           - ShowDialog(): Removed explicit creation of the form, let RunLoop
26978             handle it instead
26979           - ShowDialog(): If no dialog result is set, we need to return Cancel
26980           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
26981             the close is cancelled
26982
26983 2006-05-25  Jackson Harper  <jackson@ximian.com>
26984
26985         * StatusBar.cs: We only need to update the sizes of the other
26986         panels when we have auto size contents.  Also we are only updating
26987         the contents of the panel, not the borders, so compensate for the
26988         border width (TODO: get this width from the theme somehow).
26989         * TreeView.cs: Scrollable is true by default
26990         - Use invalidate instead of refresh where needed
26991         - Factor the scrollable value into scrollbar updating
26992         - Update the scrollbars if the Scrollable property is altered
26993         - Update the selected node if its ImageIndex is changed
26994         - Handle null nodes in UpdateNode (mainly so we don't have to
26995         check if selected is null when updating it
26996         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
26997         are factored into the visible count
26998         - Use VisibleCount for clarity in the code
26999         - When the font is changed we need to recurse through all the
27000         nodes and invalidate their sizes
27001         
27002 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27003
27004         * Application.cs: set the DialogResult to fixed when the main form is
27005         hidden or destroyed while being modal.
27006
27007 2006-05-25  Miguel de Icaza  <miguel@novell.com>
27008
27009         * Theme.cs: Use Tangoified messagebox icons. 
27010
27011         (GetSizedResourceImage): Also cope with width = 0 and do not
27012         trigger a warning in that case (0 means "give me your icon from
27013         the resouce, no special size needed).
27014
27015 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
27016
27017         * Application.cs: Leave runloop if the the main modal form is 
27018           hidden (fixes #78484)
27019
27020 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
27021
27022         * BindingContext.cs : reject null datasource in Contains() and
27023           Item[].
27024         * CurrencyManager.cs : check data_member validity when data_source
27025           is dataset. When it is late binding, the initial position is -1.
27026
27027 2006-05-24  Jackson Harper  <jackson@ximian.com>
27028
27029         * TreeNodeCollection.cs: Dont't recalculate the visible order on
27030         inserted nodes that aren't visible.  This changes the
27031         max_visible_order which confuses scrollbar settings.
27032         - Use the enumerator to get the prev node instead of duplicating
27033         code.
27034         * TreeView.cs: Use new method for setting scrollbar values
27035         - Don't set the bounds every time the scrollbar is updated
27036         - When updating below the root node use an invalidate instead of a
27037         refresh to prevent the child controls (scrollbars) from being
27038         refreshed. (UpdateBelow still needs to be reworked anyways).
27039         - Reenable SetBottom now that visible orders are set correctly,
27040         added some debug code incase we ever get bad values there again.
27041         - Set the scrollbar max to 2 less then the max value, this
27042         compensates for the max value being one above the node count, and
27043         for scrollbars adding one extra "notch".
27044         - When drawing image nodes if there is an imagelist we draw the
27045         first image in the list if the supplied image index is out of the
27046         image list's bounds.
27047         
27048 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
27049
27050         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
27051           we receive a size change from the WM (Fixes #78503)
27052
27053 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
27054
27055         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
27056           rectangle (Fixes #78501)
27057
27058 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
27059
27060         * ButtonBase.cs: 
27061           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
27062             as a bitfield.
27063           - Fixed MouseMove to no longer switch pressed state unless the left
27064             mouse button is pressed. Atsushi provided the original patch (#78485)
27065           
27066 2006-05-24  Jackson Harper  <jackson@ximian.com>
27067
27068         * ScrollBar.cs: New internal methods that allow us to change a
27069         couple values on the scrollbar (the most common case is maximum
27070         and large change) without getting multiple invalidates.
27071
27072 2006-05-24  Chris Toshok  <toshok@ximian.com>
27073
27074         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
27075         (Edit): save off the original state in oldState, and set
27076         grid.is_editing to true.
27077         (OnKeyDown): abort editing if escape is pressed.  also, call
27078         NextState if space is pressed.
27079         (OnMouseDown): call NextState.
27080         (NextState): factor out shared code from OnKeyDown and OnMouseDown
27081         here.  Also, only invalidate the row header once (on the initial
27082         is_changing switch) to save on redraws.
27083
27084 2006-05-24  Chris Toshok  <toshok@ximian.com>
27085
27086         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
27087         if the value in the cell is different than it was before.  This
27088         keeps us from triggering a layout when we move around a datarid
27089         with a highlighted cell.
27090         (Edit): suspend layout when creating/positining the text box, and
27091         resume passing false so we don't ever actually re-layout.
27092         (ReleaseHostedControl): same.
27093         (EnsureTextBox): reformat slightly, and set WordWrap to false.
27094
27095         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
27096         control-key sequences should go to the datagrid - remove that
27097         lock.  Also, modify the conditions under which we move between
27098         cells when moving the cursor within a cell, and remove the "this"
27099         and "base" from field accesses.  We weren't even consistent, given
27100         they all were in the base class.
27101
27102 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
27103
27104         * Binding.cs : (.ctor)
27105           An obvious NRE fix for BindingTest.CtorNullTest().
27106
27107 2006-05-23  Chris Toshok  <toshok@ximian.com>
27108
27109         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
27110         them between lines.  This fixes some quirks editing cells in the
27111         datagrid.
27112
27113 2006-05-23  Jackson Harper  <jackson@ximian.com>
27114
27115         * TreeView.cs: Use begin/end update when doing expand/collapse all
27116         so that we don't get flicker on the scrollbar.
27117
27118 2006-05-23  Jackson Harper  <jackson@ximian.com>
27119
27120         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
27121         treenode calculations to be independant of the painting code. To
27122         do this nodes track a visible order which is calculated by the
27123         treeview.
27124         - Call new methods for expanding/collapsing nodes.  These methods
27125         use scrollwindow so we don't have to update everything below the
27126         node.
27127         * TreeView.cs: Refactored drawing and scrolling code.  We don't
27128         need to update nodes when drawing anymore or calculate scrollbar
27129         stuff.
27130         - Added new methods for expanding/collapsing nodes. These methods
27131         use ScrollWindow so as to not have to redraw all the nodes below.
27132         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
27133         we add/remove nodes or sort.
27134         - Handle removing the selected and the top node properly.
27135
27136 2006-05-23  Chris Toshok  <toshok@ximian.com>
27137
27138         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
27139         maybe this should actually happen in the datagrid code?
27140         (EndEdit): no need to invalidate anything, given that
27141         ReleaseHostedControl causes the datagrid to relayout, which
27142         invalidates everything anyway.
27143
27144         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
27145         in SetCurrentCell).
27146         (set_SelectionBackColor): call InvalidateSelection instead of
27147         Refresh.
27148         (set_SelectionForeColor): same.
27149         (BeginEdit): Flesh this out a bit.
27150         (CancelEditing): only do any of this if we're editing/adding.
27151         (EndEdit): same.
27152         (OnMouseDown): there's no need to cancel editing here, it's done
27153         in SetCurrentCell.
27154         (SetCurrentCell): only invalidate the current row header if it's a
27155         different row than the new one.
27156         (ShiftSelection): fix this to work like MS does.
27157         (ResetSelection): factor out the invalidation of selected_rows to
27158         InvalidateSelection.
27159         (SetDataSource): cancel any editing that's going on.
27160
27161         * DataGridColumnStyle.cs
27162         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
27163         call the non-interface version.
27164
27165         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
27166         header rectangle with the clip rectangle so we don't redraw the
27167         entire header for just a small area.  Gets rid of the last flicker
27168         when horizontally scrolling.
27169         (DataGridPaintRow): same.
27170
27171 2006-05-23  Mike Kestner  <mkestner@novell.com>
27172
27173         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
27174         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
27175         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
27176         Critical bug report.
27177
27178 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
27179
27180         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
27181           and this fixes #78493
27182
27183 2006-05-23  Miguel de Icaza  <miguel@novell.com>
27184
27185         * Theme.cs (GetSizedResourceImage): Scale images if the proper
27186         size is not found.  
27187         
27188         * FileDialog.cs: Do not change the background for the side bar as
27189         it wont work nicely with the theme, and also reduces the artifacts
27190         in rendering the icons (which I want to fix too).
27191
27192         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
27193         resources, not resgen resources. 
27194
27195         (PlatformDefaultHandler): Pull images using the new API.
27196
27197 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
27198
27199         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
27200           a reference to the hwnd and will not remove it unless there are
27201           no pending exposures (fixes #78341)
27202         * XplatUI.cs: Improved debug
27203
27204 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
27205
27206         * MenuAPI.cs : don't handle OnClick event when it was not the left
27207           button. Fixed bug #78487.
27208
27209 2006-05-23  Mike Kestner  <mkestner@novell.com>
27210
27211         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
27212         prefer submenus to the top menu for item lookup, to avoid popping down
27213         top-row items.
27214
27215 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
27216
27217         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
27218           Graphics.FillRectangle as the visual results are really bad (even
27219           on win). We now draw perfect arrows (and perfect shadows when the
27220           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
27221           Pen.DashPattern to draw the dots of each line.
27222
27223 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
27224
27225         * FileDialog.cs: Update the filename combobox when navigating through
27226           the ListView with the cursor keys. Fixes part 7 of bug #78446.
27227
27228 2006-05-22  Mike Kestner  <mkestner@novell.com>
27229
27230         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
27231         Fixes #78463.
27232
27233 2006-05-22  Mike Kestner  <mkestner@novell.com>
27234
27235         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
27236         requests. Fix a misspelled parameter and a copy paste exception error
27237         in Select.
27238
27239 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
27240
27241         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
27242           to get the same width/height (5/13) on X11 as the default font has on
27243           win32. This means that our DefaultFont emSize is smaller than the 
27244           the MS SWF equivalent (even thought the width/height stays the same)
27245
27246 2006-05-20  Jackson Harper  <jackson@ximian.com>
27247
27248         * MdiClient.cs:
27249         * MdiWindowManager.cs:
27250         * InternalWindowManager.cs: Make sure to use the border width from
27251         the theme.
27252
27253 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
27254
27255         * PrintDialog.cs: Implements printer details
27256
27257 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
27258
27259         * FileDialog.cs: Added focus handling for PopupButtonPanel.
27260           Fixes part 1 and 2 of bug #78446
27261
27262 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
27263
27264         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
27265           instead of sticking to the first ever calculated value
27266
27267 2006-05-19  Mike Kestner  <mkestner@novell.com>
27268
27269         * ComboBox.cs: fix mouse motion selection to use MousePosition and
27270         PointToClient, since Capture is set. Fixes #78344.
27271
27272 2006-05-19  Mike Kestner  <mkestner@novell.com>
27273
27274         * ListView.cs: match MS behavior in Details view where items are not
27275         drawn if Columns.Count == 0. 
27276         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
27277         Use a separate pen to draw the check, since changing the width affects
27278         the box as well.  Fixes #78454.
27279
27280 2006-05-18  Miguel de Icaza  <miguel@novell.com>
27281
27282         * ListView.cs: ArgumentOutOfRangeException, single versions of the
27283         exception should throw the name of the invalid argument.
27284
27285         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
27286         there are no files listed. 
27287
27288 2006-05-18  Jackson Harper  <jackson@ximian.com>
27289
27290         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
27291         up.
27292
27293 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
27294
27295         * Control.cs: Brought back our old UpdateZOrder method as a private
27296           function and switched our calls from UpdateZOrder to the new one.
27297           This fixes the Paint.Net canvas disappearing bug.
27298
27299 2006-05-18  Jackson Harper  <jackson@ximian.com>
27300
27301         * Theme.cs:
27302         * ThemeWin32Classic.cs:
27303         * InternalWindowManager.cs: Move the drawing into the theme,
27304         expose everything the theme should need from the window manager.
27305
27306 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
27307
27308         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
27309           from the call to NativeWindow to avoid walking up the parent chain
27310           further than needed (speeds up setting cursors and avoids setting
27311           the wrong cursor if a parent has another cursor defined)
27312         * Cursor.cs: When loading an icon as cursor, MS uses the center of
27313           the icon as hotspot, not what's contained as hotspot in the icon
27314           file. This fixes the perceived drawing offset seen with Paint.Net
27315         
27316 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
27317
27318         * XplatUIX11.cs: 
27319           - Store the calculated rectangle in Hwnd object and use it when 
27320             setting the client size
27321           - Force Toolwindows to always be type Dock, to ensure they're on top
27322
27323 2006-05-18  Mike Kestner  <mkestner@novell.com>
27324
27325         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
27326         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
27327         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
27328         Substantial refactoring to remove confusing nested classes. Coding
27329         standard and Get+Set->property refactorings.  Shift to index based
27330         highlighting in ComboListBox instead of constantly using IndexOf and
27331         Items[]. Add invalidations on resize for DropDownList to fix ugliness
27332         in FileDialog growth.  Draw borders manually since Simple mode needs
27333         to look like two independent controls.  Make listbox border
27334         conditional to DropDownStyle.  Improved OwnerDraw support.
27335
27336 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
27337
27338         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
27339         Don't set the disposed graphics to null, so we can throw the "right"
27340         exception if the graphics is reused later (added a flag to avoid 
27341         double disposing). Some behaviours are different under 2.0 and are
27342         filled under bug #78448.
27343
27344 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
27345
27346         * Control.cs: When double-buffering is enabled, we need to reset
27347           our graphics context between paint calls. Otherwise, any 
27348           transformations and other alterations on the context will 
27349           become cumulative (#77734)
27350
27351 2006-05-18  Mike Kestner  <mkestner@novell.com>
27352
27353         * ListView.cs: do focused item selection like MS on clicks. 
27354         Rework focus handling for ItemControl so LostFocus invalidates as
27355         well.
27356         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
27357         the ListView ItemControl has focus.
27358
27359 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
27360
27361         * XplatUIX11.cs: If client_window ends up being width or height zero
27362           due to border settings, move it off window inside whole_window (#78433)
27363
27364 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
27365
27366         * Mime.cs: Shrink the mime file cache correctly.
27367
27368 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
27369
27370         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
27371
27372 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
27373
27374         * XplatUIX11.cs (AddExpose): More sanity checks
27375
27376 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
27377
27378         * XplatUIX11.cs:
27379           - AddExpose: Don't add expose ranges outside the size of our
27380             window
27381           - Cast opacity values to Int32 to avoid crashes with certain
27382             values
27383           - Added disabled code paths that protect against illegal cross-
27384             thread painting (Developers.exe)
27385
27386 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
27387
27388         * ProgressBar.cs: Invalidate the control when it's resized
27389           since block size is based on control size. (#78388)
27390
27391 2006-05-16  Miguel de Icaza  <miguel@novell.com>
27392
27393         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
27394         of setting the incoming argument to the "reset" value, we set the
27395         this.datamember to string.empty (before we were invalidating the
27396         incoming data).   
27397
27398         Fixes 78420
27399
27400 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
27401
27402         * Form.cs: Only apply transparency settings after the form
27403           is created. (Fixes #77800)
27404
27405 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
27406
27407         * ApplicationContext.cs: Grab the HandleDestroyed event so
27408           we know when to fire OnMainFormClosed 
27409
27410 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
27411
27412         * Application.cs: Introduced sub-class to allow tracking of
27413           threads and centralized triggering of the event mess for
27414           ThreadExit, AppExit, etc..  (#76156)
27415
27416 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
27417
27418         * MimeIcon.cs:
27419           - Do not return a null icon index value for a mime subclass.
27420             Instead try the main mime type class too.
27421           - Seems that some newer distributions don't have a link to some
27422             gnome default icons anymore. So check the default gnome dir too.
27423           
27424
27425 2006-05-16  Jackson Harper  <jackson@ximian.com>
27426
27427         * MdiClient.cs: Don't paint the parent background image if we have
27428         our own background image.
27429
27430 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
27431
27432         * Control.cs:
27433           - PerformLayout: Do not shrink space filled by DockStyle.Fill
27434             controls, all filled controls are supposed to overlap (#78080)
27435           - UpdateZOrder is supposed to update the control's z-order in the
27436             parent's z-order chain. Fixed to behave like that
27437           - BringToFront: Removed obsolete code
27438           - SendToBack: Simplyfied
27439           - SetChildIndex: Trigger layout calculations when Z-order changes
27440             since layout is done by z-order
27441
27442 2006-05-16  Chris Toshok  <toshok@ximian.com>
27443
27444         [ fixes bug #78410 ]
27445         * DataGrid.cs (set_AlternatingBackColor): use
27446         grid_drawing.InvalidateCells instead of Refresh().
27447         (set_BackColor): call grid_drawing.InvalidateCells.
27448         (set_BackgroundColor): use Invalidate instead of Refresh.
27449
27450         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
27451         invalidate the cell area.
27452
27453 2006-05-15  Chris Toshok  <toshok@ximian.com>
27454
27455         [ fixes bug #78011 ]
27456         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
27457         on to DataGridPaintRow.
27458         (DataGridPaintRow): take a clip argument, and only draw the cells
27459         which intersect it.  same with the not_usedarea.
27460
27461         * Theme.cs (DataGridPaintRow) add @clip parameter.
27462
27463         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
27464         XplatUI.ScrollWindow.
27465         (ScrollToRow): same.
27466
27467         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
27468         with last column which was causing a gray swath to appear with the
27469         XplatUI.ScrollWindow code.
27470
27471 2006-05-15  Chris Toshok  <toshok@ximian.com>
27472
27473         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
27474         use XplatUI.ScrollWindow.
27475         (VerticalScrollEvent): use XplatUI.ScrollWindow.
27476
27477 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
27478
27479         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
27480
27481 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
27482
27483         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
27484           file since there are no equivalent X11 cursors
27485
27486 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
27487
27488         * MonthCalendar.cs : DateTimePicker should reflect selected date
27489           on mouse*up*, not mouse*down*. Fixed originally reported part of
27490           bug #76474.
27491
27492 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
27493
27494         * TabControl.cs : When argument index is equal or more than tab
27495           count, just ignore. Fixed bug #78395.
27496
27497 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
27498
27499         * Control.cs: Dispose all child controls when control is diposed (#78394)
27500
27501 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
27502
27503         * ColorDialog.cs: Finally it is possible to select the color with
27504           the text boxes
27505
27506 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
27507
27508         * PrintDialog.cs: Fix typo
27509
27510 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
27511
27512         * PrintDialog.cs: PrintDialog is not resizable
27513         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
27514           color. Made some ToolBar drawing methods protected virtual.
27515
27516 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
27517
27518         * PrintDialog.cs: Implementation of the PrintDialog
27519
27520 2006-05-12  Chris Toshok  <toshok@ximian.com>
27521
27522         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
27523         thumb, instead use MoveThumb.  This has the side effect of making
27524         most of the other thumb moving machinery use MoveThumb as well.
27525         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
27526         need to actually invalidate the rectangle where the new thumb will
27527         go.
27528         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
27529         We force an Update() after, so it's not as fast as it could be,
27530         but at least there's zero flicker and no droppings.
27531         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
27532         (UpdateThumbPos): add another argument (dirty), which says whether
27533         or not to calculate/add dirty regions which we later invalidate.
27534         For cases where we know we're going to use MoveThumb, we pass
27535         false for this.  Otherwise, pass true.
27536
27537 2006-05-12  Jackson Harper  <jackson@ximian.com>
27538
27539         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
27540         the status bar.
27541         
27542 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
27543
27544         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
27545           and GetClipRegion methods and UserClipWontExposeParent property.
27546         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
27547           overriding UserClipWontExposeParent property, setting to false, since
27548           Win32 handles the required expose messages to draw our clipped parent
27549           areas internally
27550         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
27551           PaintEventStart to set the user clip region if set.
27552         * Control.cs: 
27553           - Now internally tracking the Region for the control since we need to
27554             store it if the handle is not yet created and only set it when it
27555             becomes created. Before setting the region forced handle creation
27556           - Added code to draw the parents underneath a user-clipped region
27557         * Hwnd.cs: Added UserClip property
27558
27559 2006-05-12  Chris Toshok  <toshok@ximian.com>
27560
27561         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
27562         (set_Maximum): same.
27563         (set_Minimum): same.
27564         (set_SmallChange): same.
27565         (OnMouseUpSB): remove the call to refresh when releasing the
27566         thumb.  We shouldn't need it.
27567         
27568 2006-05-12  Miguel de Icaza  <miguel@novell.com>
27569
27570         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
27571         AutoSize set to None, we do not need to relayout everything, we
27572         just need to invalidate the current region.
27573
27574         (Draw): Do not draw the entire ClientArea, just redraw the
27575         clip area being passed.
27576
27577         * MdiClient.cs: Make MdiClient constructor with the Form argument
27578         internal. 
27579
27580 2006-05-12  Jackson Harper  <jackson@ximian.com>
27581
27582         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
27583         parents background image,  but strangely not their own.
27584         - (DrawStatusBarPanel): Take into account horizontal alignment
27585         when drawing the strings and icons.
27586
27587 2006-05-12  Mike Kestner  <mkestner@novell.com>
27588
27589         * ListBox.cs: avoid invalidations for focus when the collection is
27590         empty. 
27591
27592 2006-05-12  Chris Toshok  <toshok@ximian.com>
27593
27594         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
27595         invalidate the entire thumb area.  Call InvalidateDirty which
27596         limits the redraw to the thumb itself and surrounding pixels.
27597
27598         * XplatUIX11.cs (ScrollWindow): optimize copying.
27599         
27600 2006-05-12  Chris Toshok  <toshok@ximian.com>
27601
27602         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
27603         Figure out the positioning/layout in a single pass instead of
27604         multiple recursive invocations.  Speeds up the initial display of
27605         the data grid.  Also, make many things private that were
27606         originally public but unused outside this class.
27607
27608 2006-05-11  Jackson Harper  <jackson@ximian.com>
27609
27610         * MdiClient.cs: Improved layout code.
27611
27612 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
27613
27614         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
27615           not SelectedObject.
27616
27617 2006-05-11  Chris Toshok  <toshok@ximian.com>
27618
27619         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
27620         union of that will always be {0,0,width,height}.
27621
27622 2006-05-11  Jackson Harper  <jackson@ximian.com>
27623
27624         * Form.cs: Match MS's DefaultSize for forms (they must have
27625         changed the size in sp2).
27626
27627 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
27628
27629         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
27630
27631 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
27632
27633         * TextControl.cs : Fixed bug #78109. This incorrect position
27634           comparison caused crash on automatic line split.
27635         * TextBoxBase.cs : reduce duplicate code.
27636
27637 2006-05-10  Jackson Harper  <jackson@ximian.com>
27638
27639         * MdiClient.cs: Active form is only sent to the back when using
27640         the Next form functionality, when a form is clicked the current
27641         active shouldn't be sent to the back.
27642         - Layout the mdi windows when the container is first made visible.
27643         * Form.cs: Give the MdiClient a ref to the containing form when we
27644         create it.
27645         
27646 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
27647
27648         * LinkLabel.cs : link_font could be uninitialized, so populate one
27649           before actual use. Fixed bug #78340.
27650
27651 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
27652
27653         * XplatUIX11.cs : clipboard format native value is IntPtr.
27654           Fixed bug #78283.
27655
27656 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
27657
27658         * Control.cs: 
27659           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
27660             which is passed up the parent chain by DefWndProc
27661           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
27662             to DefWndProc (#77956)
27663         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
27664
27665 2006-05-10  Jackson Harper  <jackson@ximian.com>
27666
27667         * MdiClient.cs: We need to remove the controls from the mdi
27668         collection, when we close the window.
27669         * MdiWindowManager.cs: Special handling of closing mdi windows.
27670         * InternalWindowManager.cs: Make the close method virtual so the
27671         mdi window manager can handle it specially.
27672
27673 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
27674
27675         * DataGrid.cs:
27676           - Recalculate grid when the data source has changed
27677           - Matches styles provided by user from all data sources types
27678         * DataGridTableStyle.cs: For columns that provided by the user set the
27679         with the preferred value is there was unassigned.
27680         * CurrencyManager.cs: throw OnItemChanged event
27681
27682 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
27683
27684         * PictureBox.cs: Don't animate until handle is created. Start animation
27685           when handle is created.
27686
27687 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
27688
27689         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
27690           current codebase.
27691         * XEventQueue.cs: We don't need to provide the extra info
27692
27693 2006-05-10  Jackson Harper  <jackson@ximian.com>
27694
27695         * MdiClient.cs: If the mdi clients parent form has a background
27696         image set, we draw that background image for the mdi area's
27697         background.
27698
27699 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
27700
27701         * TextBoxBase.cs: Set IBeam cursor (#78347)
27702
27703 2006-05-10  Mike Kestner  <mkestner@novell.com>
27704
27705         * ToolBar.cs: fix some text padding issues with ButtonSize
27706         calculation. Update the default size to match MS documentation.
27707         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
27708         button size. Fixes #78296.
27709
27710 2006-05-10  Mike Kestner  <mkestner@novell.com>
27711
27712         * ListBox.cs: use is_visible for scrollbar positioning in case the
27713         control isn't on screen yet.  Fix off by one with Right vs Width
27714         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
27715         
27716 2006-05-10  Jackson Harper  <jackson@ximian.com>
27717
27718         * X11Dnd.cs: Drop to a control with another control on top of it.
27719         * ToolBar.cs: Work on a copy of the buttons list, so that it can
27720         be modified in click handlers. TODO: Look for similar problems in
27721         other controls.
27722
27723 2006-05-09  Jackson Harper  <jackson@ximian.com>
27724
27725         * Form.cs: Window managers need the old window state when setting
27726         window state now.
27727         * InternalWindowManager.cs: Allow the base mdi window manager to
27728         handle more of the MDI only stuff (like maximize buttons).
27729         * MdiWindowManager.cs: Fix some snafus in changing the window
27730         state.  Add all the menu functionality, for both popup and
27731         maximized menus.
27732         * MdiClient.cs: When a new form is selected the currently
27733         activated form is sent to the back, this matches MS.
27734         - Implement a new method to activate the next mdi child window.
27735
27736 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
27737
27738         * Control.cs: 
27739           - Added new InternalCapture method to allow controls to prevent
27740             the capture behaviour on the click handlers
27741           - Switched to use InternalCapture
27742         * ComboBox.cs:
27743           - Using InternalCapture to prevent mouse captures from being released
27744             on mouse button release (Fixes #78100)
27745         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
27746           returns Form borders if a caption is present. (Fixes #78310)
27747
27748 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
27749
27750         * TreeNode.cs: Changed serialization .ctor to not require every field
27751           to be present. (#78265)
27752         * OwnerDrawPropertyBag.cs: Added serialization .ctor
27753
27754 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
27755
27756         * MimeIcon.cs: for is faster than foreach for strings.
27757
27758 2006-05-05  Mike Kestner  <mkestner@novell.com>
27759
27760         * CheckedListBox.cs: update check handling code to not use selected.
27761         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
27762         behavior for visual feedback, motion response, shift/ctrl handling,
27763         and properly deal with all 4 selection modes. Updates to bounds
27764         handling logic.  Add scroll wheel support. [Fixes #77842]
27765
27766 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
27767
27768         * ListView.cs:
27769           - Moved adding of Implicit controls into .ctor. That way, subsequent
27770             creation of the controls will not cause them to think they are 
27771             toplevel windows (fixes #78200 header problem)
27772           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
27773           - Switched visibility setting of header control to use internal field
27774             to avoid triggering handle creation
27775           - Now checking if handle is created before causing a refresh when items
27776             are added (This makes us now match handle creation time with MS)
27777         * Splitter.cs: Removed loading of private splitter cursor, switched to
27778           Cursors version now that that is loading the right ones
27779         * Cursors.cs: Load proper splitter cursors from resources
27780         * Cursor.cs: Added second method of loading resource cursors for the 
27781           VS.Net users amongst us
27782
27783 2006-05-05  Mike Kestner  <mkestner@novell.com>
27784
27785         * ListView.cs: give header_control a minimum size based on the
27786         ListView size.
27787
27788 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
27789
27790         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
27791           window seems to do that with metacity, so set that type. (#78120)
27792
27793 2006-05-05  Mike Kestner  <mkestner@novell.com>
27794
27795         * ListViewItem.cs: fix Details mode checkbox layout bug.
27796         * ThemeWin32Classic.cs: draw a ListView column header for unused space
27797         at the end of the header, if it exists. [Fixes for #78200]
27798
27799 2006-05-04  Jackson Harper  <jackson@ximian.com>
27800
27801         * MdiClient.cs: Add a helper property to get the container form.
27802         * MdiWindowManager.cs: We have to make sure to use the menu origin
27803         when drawing the icons and buttons, this fixes maximized window
27804         icons/buttons on win32.
27805         * InternalWindowManager.cs: Reset the restore captions when a
27806         window goes from Maximized to Minimized and vice versa. Move the
27807         DrawMaximizedButtons into the MdiWindowManager source, tool
27808         windows can't be maximized. NOTE: This could use a little
27809         refactoring if time ever permits.
27810         
27811 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
27812
27813         * TextBox.cs: Add MWFCategoryAttributes
27814         * TextBoxBase.cs: Add MWFCategoryAttributes
27815         * Form.cs: Add MWFCategoryAttributes
27816
27817 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
27818
27819         * Control.cs: Add MWFCategoryAttributes
27820         * ScrollableControl.cs: Add MWFCategoryAttributes
27821
27822 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
27823
27824         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
27825           Divider is true. Fix a little glitch in PropertyToolBar
27826           drawing code
27827
27828 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
27829
27830         * Control.cs:
27831           - Dispose: Call base.Dispose, this causes the disposed event
27832             to be fired (and probably other, more important stuff)
27833           - SetVisibleCore: Set is_visible to true after creating the
27834             window so that the window still gets created invisible (if
27835             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
27836             to generate a WM_ACTIVE message
27837         * Form.cs: Call Dispose when we want to destroy the window, instead of
27838           just destroying the handle (Dispose will do that for us)
27839         * XplatUIX11.cs:
27840           - RootWindow also needs a queue, so we can properly process the
27841             property change events from RootWindow (like Activate)
27842           - Generatic synthetic WM_ACTIVE message when the active window is
27843             being destroyed
27844
27845 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
27846
27847         * LinkLabel.cs: Trigger a recalc of our label dimensions when
27848           bounds are changed
27849
27850 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
27851
27852         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
27853           for determining width and height (image might not be assigned if
27854           we're drawing an imagelist)
27855
27856 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
27857
27858         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
27859         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
27860           height from system
27861         * Theme.cs: No longer returns hardcoded menu height, instead calls
27862           new driver method
27863         * Form.cs (OnLoad): Scaling happens before triggering Load events 
27864           on MS (# 78257)
27865
27866 2006-05-01  Mike Kestner  <mkestner@novell.com>
27867
27868         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
27869
27870 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
27871
27872         * TextBoxBase.cs: Removed Fixme
27873         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
27874
27875 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
27876
27877         * XplatUIX11.cs:
27878           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
27879             the rectangle relative to the parent, considering borders. We
27880             don't really want that.
27881           - ScrollWindow: Fixed warning to be more understandable
27882         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
27883           scrollbars and scroll only the visible area
27884         * RichTextBox.cs: Removed debug output
27885
27886 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
27887
27888         * NumericUpDown.cs (Text): Just use base
27889         * UpDownBase.cs: Ensure txtView is created before using it
27890
27891 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
27892
27893         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
27894           casting to IntPtr to avoid 64bit overflow errors
27895
27896 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
27897
27898         * Control.cs:
27899           - AllowDrop: Don't force handle creation.
27900           - CreateHandle: Added call to tell driver if we're allowed to drop
27901
27902 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
27903
27904         * FileDialog.cs: Remember the last directory not only for the
27905           current instance but also for new FileDialog instances.
27906
27907 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
27908         
27909         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
27910           broke sending async messages
27911
27912 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
27913
27914         * XplatUIX11.cs:
27915           - ScrollWindow: Fixed method. We finally generate expose events again
27916             for scrolled areas. This was causing 'garbage' when scrolling
27917             textbox and other controls that used ScrollWindow
27918           - Switched from using the regular queue for paint events to the MS 
27919             model of 'generating' paint events when the queue is empty.
27920             We use the new XQueueEvent.Paint subclass to store which windows
27921             need painting.
27922           - AddExpose now takes the x/y/width/height of the exposed area
27923             and inserts the window into the paint queue if not already there
27924           - InvalidateWholeWindow: Switched to use new AddExpose method
27925           - UpdateMessageQueue: Added which queue to monitor for paint events
27926           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
27927             the unlikely case nothing above handles it. We reset the expose
27928             pending states to get them off the queue.
27929           - GetMessage: Now pulls a paint event if no other events are in the
27930             queue
27931           - Invalidate: Switched to new AddExpose method
27932           - PeekMessage: Updated to understand pending paint events
27933           - UpdateWindow: Fixed logic bug. We were only updating if the window
27934             didn't need updating. Also switched to sending WM_PAINT directly,
27935             like MS does.
27936         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
27937           and random access Remove(). The random access is needed to handle
27938           UpdateWindow() where a WM_PAINT is sent directly without accessing
27939           the queue.
27940         * ScrollBar.cs: Added Update() calls to cause immediate updates to
27941           allow for better feedback when scrolling. Scrollbars are small and
27942           the immediate update should make it 'feel' more responsive without
27943           slowing things down. ScrollBar still needs it's invaliate logic
27944           updated to not always invalidate the whole bar on certain changes.
27945
27946 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27947
27948         * Control.cs:
27949         (BackColor): if the control does not support a transparent background,
27950         return the default backcolor when the parent backcolor is transparent.
27951
27952 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
27953
27954         * Application.cs: Updated to new StartLoop/GetMessage API
27955         * RichTextBox.cs: Provide some output on RTF parsing errors
27956         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
27957           new queue_id argument to GetMessage and PeekMessage to allow faster
27958           handling of per-thread queues in drivers.
27959         * Hwnd.cs: Added Queue tracking and property
27960         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
27961         * XEventQueue.cs: Added thread trackingA
27962         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
27963         * XplatUIX11.cs:
27964           - Implemented new per-thread queue
27965           - GetMessage: Fixed return/break behaviour on several cases. We were
27966             returning stale messages in some cases, instead of just processing
27967             the next message
27968
27969 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
27970
27971         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
27972
27973 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
27974
27975         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
27976           fixed off-by-one comparisons between Width/Height and Right/Bottom.
27977
27978 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
27979
27980         * PropertyGridView.cs: Fix drop down width.
27981
27982 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
27983
27984         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
27985           a mess in DrawToolBar, so I removed one of them.
27986
27987 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
27988
27989         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
27990           needed (clip). Otherwise we get artifacts.
27991
27992 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
27993
27994         * FixedSizeTextBox.cs: Added constructor to allow specifying which
27995           dimension is fixed
27996         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
27997           and switched FixedSizeTextBox to only be fixed vertical (#78116)
27998         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
27999           if it matches the scale base font (avoids unneeded scaling)
28000
28001 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
28002
28003         * X11DesktopColors.cs: One gtk_init_check should be enough
28004
28005 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
28006
28007         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
28008           match MS behaviour
28009
28010 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
28011
28012         * TextBoxBase.cs: 
28013           - Generate OnTextChanged for Backspace even if we're only deleting
28014             the current selection
28015           - When setting the Text property, only select all text if the
28016             control does not have focus when it is being set. Otherwise
28017             just place the cursor at the beginning of the control
28018
28019 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
28020
28021         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
28022           Added a little helper to draw PropertyGrid ToolBar with a different
28023           border and a different BackColor.
28024         * PropertyGrid.cs: Some background parts didn't get painted with the
28025           correct background color. Added a class that helps us to draw the
28026           correct border for PropertyGridView and a class that helps us to
28027           draw ToolBars with a different backcolor
28028         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
28029
28030 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
28031
28032         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
28033         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
28034
28035 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
28036
28037         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
28038           into the palette entries. Also, since we're working on a copy
28039           we needed to copy the palette back onto the bitmap.
28040         * Cursor.cs: Same fix as XplatUIWin32.cs.
28041
28042 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
28043
28044         * ImageListStreamer.cs: Need to read the var (or we're off)
28045
28046 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
28047
28048         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
28049           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
28050           TextBoxBase.cs: Unused var fixes
28051         * AxHost.cs: Small 2.0 fix
28052         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
28053           as it seems that is what at least Metacity expects. This will make
28054           icons show up on 64bit platforms. We still have some 64bit size
28055           issues, though, since the startup app window size still won't match.
28056
28057 2006-04-25  Mike Kestner  <mkestner@novell.com>
28058
28059         * *.cs: cleanup newly reported exception var unused warnings.
28060
28061 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
28062
28063         * ThemeWin32Classic.cs: Button image alignment now matches exactly
28064           ms
28065
28066 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
28067
28068         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
28069           image. The image position is always the same, no matter if the
28070           button is pressed or not.
28071
28072 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
28073
28074         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
28075           selection and set the correct filename for SaveFileDialog.
28076           Patch by Emery Conrad.
28077
28078 2006-04-24  Mike Kestner  <mkestner@novell.com>
28079
28080         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
28081         check for item.X outside the ClientRect instead of item.Y. Fixes
28082         #78151.
28083
28084 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
28085
28086         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
28087         trust that value blindly and do some sanity check. Fixes bug #77814.
28088
28089 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
28090
28091         * ImageListStreamer.cs: save the mask as a 1bpp image.
28092
28093 2006-04-21  Mike Kestner  <mkestner@novell.com>
28094
28095         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
28096         pass Checked and Indeterminate to the Theme Engine. Improve
28097         encapsulation with ListBox.
28098         * ListBox.cs: Keep a StringFormat instead of calculating it every item
28099         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
28100         nested types.  Move all CheckState functionality to CheckedListBox.
28101         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
28102         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
28103         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
28104         single base list. Fix scrollbar sizing and placement to mirror MS.
28105         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
28106         used.
28107         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
28108         for CheckedListBox by using new DrawItemState info.  Center the
28109         checkboxes on the items. Use new StringFormat property.
28110
28111 2006-04-18  Jackson Harper  <jackson@ximian.com>
28112
28113         * Form.cs: MdiChildren don't do default locations the same way as
28114         regular forms.  This prevents a crash when trying to position the
28115         mdi windows.
28116
28117 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
28118
28119         * PropertyGridTextBox.cs: Formatting, copyright
28120         * PropertiesTab.cs: Formatting
28121         * PropertyGrid.cs: Formatting
28122         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
28123           click toggling of values
28124           
28125 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
28126
28127         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
28128         * Control.cs (.ctor): verify_thread_handle is static, don't reset
28129           every time a control is created
28130         * Application.cs: Removed obsolete EnableRTLMirroring method
28131
28132 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
28133
28134         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
28135         SelectedIndex to -1. Fixes bug #78121.
28136
28137 2006-04-17  Jackson Harper  <jackson@ximian.com>
28138
28139         * Binding.cs: Handle null values for Current and BindingContext.
28140         This occurs when binding is a little delayed.
28141         * CurrencyManager.cs: return null for Current when there are no
28142         items in the list.
28143         - Hookup to the listchanged event on the DataView and update
28144         bindings when the list is changed.  This fixes late binding of
28145         controls.
28146
28147 2006-04-17  Jackson Harper  <jackson@ximian.com>
28148
28149         * X11Dnd.cs:
28150         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
28151         Ringenbach.
28152
28153 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
28154
28155         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
28156           place
28157         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
28158           with the correct ButtonState
28159
28160 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
28161
28162         * XplatUIX11.cs: Improved distinguishing between window types to
28163           tell the WM a type closer to what the app wants (Fixes #78107)
28164
28165 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
28166
28167         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
28168           GrabHandle
28169
28170 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
28171
28172         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
28173           drawing code to reflect the size grip changes
28174
28175 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
28176
28177         * ImageListStreamer.cs: fix handling of the mask that follows the main
28178         bitmap when deserializing and serialize it properly. The generated mask
28179         should better be a 1bpp image, but I'll do that later.
28180
28181 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
28182
28183         * FileDialog.cs: Show something in the DirComboBox on *nix if the
28184           path doesn't fit into some of our Current.Places
28185
28186 2006-04-13  Jackson Harper  <jackson@ximian.com>
28187
28188         * ComboBox.cs: Use borders instead of drawing our own decorations,
28189         try to obey correct rules for heights.
28190         * Theme.cs:
28191         * ThemeNice.cs:
28192         * ThemeClearLooks.cs:
28193         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
28194         this is now handled by borders.
28195         - Remove unused DrawListBoxDecorationSize method.
28196         
28197 2006-04-13  Mike Kestner  <mkestner@novell.com>
28198
28199         * MenuAPI.cs: null guarding for the disbled click check fixes crash
28200         reported by Alex.
28201
28202 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
28203
28204         * ThemeWin32Classic.cs: 
28205           - Fixed CPDrawStringDisabled
28206           - Corrected drawing of disabled menu items
28207           - Fixed drawing of disabled radio buttons (bug #78095)
28208           - Draw check in a disabled CheckBox with color ControlDark 
28209
28210 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
28211
28212         * Form.cs: Use the provided width when calculating the menu size;
28213           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
28214           and ClientSize.Width won't be updated yet
28215         * Application.cs: Use Visible instead of Show() to make form visible,
28216           this way we create the handle later and menusize is considered
28217
28218 2006-04-12  Mike Kestner  <mkestner@novell.com>
28219
28220         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
28221         reporting.
28222
28223 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
28224
28225         * TextBox.cs: Implemented context menu
28226
28227 2006-04-12  Mike Kestner  <mkestner@novell.com>
28228
28229         * ListView.cs: implement box selection. fixes #77838.
28230         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
28231
28232 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
28233
28234         * XplatUIX11.cs: Added setting of window type when transient window
28235           is created (metacity would move it otherwise)
28236         * X11Structs.cs: Added WINDOW_TYPE atoms
28237         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
28238           background (the control is Opaque but still wants transparent
28239           backgrounds)
28240
28241 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
28242
28243         * Control.cs: Added OnPaintBackgroundInternal to allow controls
28244           that set Opaque but don't mean it (like all ButtonBase-derived
28245           controls) to still draw their background
28246         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
28247           the background
28248
28249 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
28250
28251         * Control.cs (PaintControlBackground): Set the graphics object
28252           on our PaintEvent to null to prevent it from being disposed
28253           when the PaintEvent gets disposed
28254
28255 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
28256
28257         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
28258         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
28259
28260 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
28261
28262         * Control.cs: 
28263           - Added transparency check to BackColor property. Transparent
28264             backgrounds are only allowed if the control styles permit it
28265           - Added recursive painting of parent control background and
28266             foreground if a control with a transparent backcolor is drawn
28267             (Thanks to Tim Ringenback for providing his 'hack' as a base
28268              for this patch) Fixes #77985 and #78026.
28269           - Added Opaque style check before calling OnPaintBackground, no
28270             need to draw the background if the control is opaque
28271           - Removed ControlAccessibleObject owner variable (inherited from
28272             base, no need to define again)
28273           - Added some documentation links explaining the drawing events
28274             and styles
28275
28276 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
28277
28278         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
28279           that the affected control is the located at the left border of our
28280           parent (Fixes #77936)
28281
28282 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
28283
28284         * TextBoxBase.cs: When rendering disabled or readonly controls,
28285           draw the background with 'Control' instead of 'Window' color as
28286           long as the user hasn't specifically set a color
28287
28288 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
28289
28290         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
28291           since that won't be updated if the user types text (only if it's
28292           programatically set)
28293
28294 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
28295
28296         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
28297           layout changes do to app-triggered resizes will have the proper
28298           display rectangle for layout
28299
28300 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
28301
28302         * ThemeWin32Classic.cs:
28303           - Make use of the SystemBrushes and SystemPens wherever possible
28304           - Corrected some highlight colors
28305           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
28306             drawing
28307         * Theme.cs: Added Empty field to CPColor struct
28308
28309 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
28310
28311         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
28312           is displayed when calculating the display rectangle. Thanks to Mike
28313           for teaching me the err of my ways.
28314
28315 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
28316
28317         * ScrollableControl.cs:
28318           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
28319             (instead of 0,0) and we now return the real width/height instead of
28320             just the clientrectangle, adjusted for padding. The rectangle is
28321             now cached and created by the new CalculateDisplayRectangle method.
28322           - Created new CalculateDisplayRectange method, which basically does
28323             what get_DisplayRectangle() did originally, but now using the 
28324             right edge instead of DisplayRectangle to determine the size of
28325             our scrollbars
28326           - get_Canvas(): Fixed it to properly calculate canvas for 
28327             right/bottom controls which seem to be placed to the right/bottom
28328             of any controls that have a fixed location
28329           - Removed TODO that's taken care of
28330           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
28331             and SetDisplayRectLocation according to new MSDN2 docs
28332           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
28333             event when that is called, this is added for compatibility
28334           - ScrollControlIntoView(): Implemented.
28335           - Switched scrollbars to be implicit, they shouldn't be selectable
28336         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
28337           call it when the active control is set/changed
28338         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
28339         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
28340           implicit_control variable (used for native Win32 message generation)
28341         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
28342           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
28343         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
28344         * XplatUIStructs.cs: Added ScrollBarCommands enum
28345
28346 2006-04-10  Jackson Harper  <jackson@ximian.com>
28347
28348         * ButtonBase.cs:
28349         * CheckedListBox.cs:
28350         * ComboBox.cs:
28351         * DataGrid.cs:
28352         * DataGridView.cs:
28353         * Form.cs:
28354         * GroupBox.cs:
28355         * ListBox.cs:
28356         * PrintPreviewControl.cs:
28357         * ProgressBar.cs:
28358         * PropertyGrid.cs:
28359         * Splitter.cs:
28360         * StatusBar.cs:
28361         * TrackBar.cs:
28362         * UpDownBase.cs: Fixup base event overrides.
28363         
28364 2006-04-06  Mike Kestner  <mkestner@novell.com>
28365
28366         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
28367         all user-initiated value changes to min <= value <= max-thumbsz+1.
28368         (set_Value): check for vert/horiz when calculating new thumb position.
28369         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
28370         like MS does.
28371         (OnMouseMoveSB): refactor the thumb dragging code and refine
28372         invalidation logic to reduce flicker.
28373         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
28374         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
28375         (UpdateThumbPosition): small code readability cleanup
28376
28377 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
28378
28379         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
28380           different
28381
28382 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
28383
28384         * ThemeNice.cs: Use a better graphics effect when a button is pressed
28385
28386 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
28387
28388         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
28389         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
28390           This dramatically reduces the number of Pen.Dispose calls. 
28391           Where possible call ResPool methods only once instead of calling it
28392           over and over again (for example for the same color).
28393
28394 2006-04-06  Mike Kestner  <mkestner@novell.com>
28395
28396         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
28397         Also remove an unused private field on the collection. Fixes #77972.
28398
28399 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
28400
28401         * ThemeNice.cs: Added ToolBar drawing code
28402
28403 2006-04-06  Mike Kestner  <mkestner@novell.com>
28404
28405         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
28406         I'm assuming that means we need to look up the toplevel for the
28407         provided control. Fixes the crash trace in #77911 but exposes another
28408         crash in some strange reflection usage in NDocGui.
28409
28410 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
28411
28412         * ThemeNice.cs: Gave it a little silver touch and added Images
28413           method
28414         * FontDialog.cs: FontDialog is not resizable
28415         * FileDialg.cs: Added SizeGripStyle.Show
28416
28417 2006-04-05  Jackson Harper  <jackson@ximian.com>
28418
28419         * KeyboardLayouts.cs: Remove warning.
28420
28421 2006-04-05  Jackson Harper  <jackson@ximian.com>
28422
28423         * Control.cs: Enable OnPaintInternal so we can use it for drawing
28424         all of our controls instead of Paint +=.
28425         * ListBox.cs:
28426         * ListView.cs:
28427         * MenuAPI.cs:
28428         * MessageBox.cs:
28429         * NotifyIcon.cs:
28430         * ProgressBar.cs:
28431         * ScrollBar.cs:
28432         * Splitter.cs:
28433         * StatusBar.cs:
28434         * TabControl.cs:
28435         * TextBoxBase.cs:
28436         * ToolBar.cs:
28437         * TrackBar.cs:
28438         * UpDownBase.cs:
28439         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
28440         use OnPaintInternal. Remove Width/Height and Visible checks in
28441         paint handler, this is done at a higher level now.
28442         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
28443         * PaintEventArgs.cs: Add a handled flag so controls that don't
28444         want anymore painting after OnPaintInternal can make sure OnPaint
28445         isn't called.
28446
28447 2006-04-05  Mike Kestner  <mkestner@novell.com>
28448
28449         * Form.cs: fix the menu WndProc hacks to respect the native enabled
28450         state of the form, so that we don't process events when Modal dialogs
28451         are up. Fixes #77922.
28452
28453 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
28454
28455         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
28456           checking is done.
28457
28458 2006-04-05  Mike Kestner  <mkestner@novell.com>
28459
28460         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
28461
28462 2006-04-05  Mike Kestner  <mkestner@novell.com>
28463
28464         * ListView.cs (HeaderMouseMove): null guarding for the over column
28465         when setting up the drag_to_index.  Fixes #78015.
28466
28467 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
28468
28469         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
28470           in the taskbar. Transient windows seem to accomplish that.
28471
28472 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
28473
28474         * Form.cs:
28475           - Re-enabled CreateParams.X/Y code for FormStartPosition
28476           - Added code for manual placement when creating the Control
28477           - Incomplete patch to treat MDI forms differently when
28478             setting the ClientSizeCore. (Still need to figure out handling
28479             x/y coords there)
28480         * XplatUIX11.cs:
28481           - When we're explicitly setting the X/Y position of a non-Child
28482             window, let the WM know. Metacity really wants this.
28483
28484 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
28485
28486         * ThemeNice.cs: Added CPDrawButton
28487
28488 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
28489
28490         * ThemeNice.cs: Changed the color for focused buttons and activated
28491           the arrows for small scroll buttons.
28492
28493 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
28494
28495         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
28496           anymore. Changed some method modifiers to protected (virtual)
28497         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
28498           changes
28499         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
28500           Updated drawing of menus, buttons and progressbars; added
28501           CPDrawBorder3D 
28502
28503 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
28504
28505         * ImageListStreamer.cs: implemented serialization/deserialization
28506         of the images.
28507
28508 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
28509
28510         * ThemeWin32Classic.cs:
28511           - Removed all the DrawFrameControl stuff; CPDrawButton,
28512             CPDrawCheckBox and CPDrawRadioButton are now handled directly
28513             inside the methods
28514           - Updated and corrected the drawing code of CPDrawButton,
28515             CPDrawCheckBox and CPDrawRadioButton to better match ms
28516           - Updated theme checkbox and radiobutton code to use the CP*
28517             methods
28518
28519 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
28520
28521         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
28522           bug is fixed
28523
28524 2006-03-31  Jackson Harper  <jackson@ximian.com>
28525
28526         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
28527         sometimes.
28528         * UpDownBase.cs: Don't CreateGraphics manually, use a
28529         Refresh. Ideally we would invalidate the correct areas here.
28530
28531 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
28532
28533         * XplatUIX11.cs: 
28534           - We now track the mapping state of windows. If a window (or 
28535             one of it's parents) is not mapped we no longer permit
28536             WM_PAINT messages to be generated since we'd otherwise get 
28537             lots of BadMatch X errors. Jackson did all the work figuring
28538             out the problem.
28539           - Destroying the caret if the window it's contained in is 
28540             destroyed. Can't use regular DestroyCaret method since it
28541             might fall into a drawing function (trying to remove the
28542             caret) and with that generate new BadMatch errors. Again,
28543             Jackson tracked this down.
28544           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
28545             make sure we send the messages to all windows. (The old code
28546             would send the WM_DESTROY to the window, and then all child
28547             windows would be 'gone' because the WM_DESTROY handle lookup
28548             would no longer find the destroyed window)
28549         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
28550         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
28551
28552 2006-03-31  Jackson Harper  <jackson@ximian.com>
28553
28554         * ScrollableControl.cs: Dont recalc if we are not visible.
28555
28556 2006-03-31  Mike Kestner  <mkestner@novell.com>
28557
28558         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
28559         the visibility branch.
28560
28561 2006-03-31  Jackson Harper  <jackson@ximian.com>
28562
28563         * ScrollBar.cs: Cap values when incrementing/decrementing.
28564
28565 2006-03-31  Mike Kestner  <mkestner@novell.com>
28566
28567         * MenuAPI.cs: setup menu.tracker for popup/context menus.
28568         * ToolTip.cs: guard against timer expirations with no active control.
28569         Not sure why it happened.
28570
28571 2006-03-31  Mike Kestner  <mkestner@novell.com>
28572
28573         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
28574         text.
28575         * ToolTip.cs: Position the tooltip based on where the cursor is at
28576         popup time, not at MouseEnter time.  Add a Down state so that we don't
28577         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
28578         positioning offset. Lookup DisplaySize at positioning time, since it
28579         can theoretically change during invocation.
28580         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
28581         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
28582
28583 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
28584
28585         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
28586           Fixes behaviour when the Text property of the box is String.Empty
28587
28588 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
28589
28590         * XplatUIX11.cs: Only send mouseleave for our client windows, not
28591           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
28592           a window)
28593
28594 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
28595
28596         * FileDialog.cs: Visual enhancement for the popup buttons in 
28597           PopupButtonPanel
28598
28599 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
28600
28601         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
28602           code
28603
28604 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
28605
28606         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
28607           highlighted menu items to match ms
28608
28609 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
28610
28611         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
28612
28613 2006-03-30  Mike Kestner  <mkestner@novell.com>
28614
28615         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
28616         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
28617         go active to account for HotLight to Selected transition.
28618         * MenuItem.cs: add internal Selected prop. Fill out the Status
28619         property by calculating it from item info. Add HotLight,
28620         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
28621
28622 2006-03-30  Mike Kestner  <mkestner@novell.com>
28623
28624         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
28625
28626 2006-03-29  Jackson Harper  <jackson@ximian.com>
28627
28628         * Form.cs: Implement TODO.
28629
28630 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
28631
28632         * PrintPreviewDialog.cs: Implemented missing methods and events; still
28633           missing proper dialog setup in the constructor
28634
28635 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
28636
28637         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
28638         * Control.cs:
28639           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
28640           - Fixed ResetBindings and removed TODO
28641           - Added check for cross-thread calls to get_Handle()
28642           - Added Marshaller attribute for set_Font to satisfy class status
28643         * FontDialog.cs: Removed TODOs that seemed implemented
28644         * UpDownBase.cs: Removed unneeded TODO and Fixme
28645         * MessageBox.cs: Implemented support for Default button and removed TODO
28646         * FileDialog.cs: Removed obsolete TODO
28647         * DomainUpDown.cs: Removed obsolete TODO
28648         * ButtonBase.cs: Removed obsolete TODO
28649         * XplatUIWin32.cs: Removed obsolete TODO
28650         * Form.cs:
28651           - Removed obsolete TODO
28652           - Calling CheckAcceptButton when the acceptbutton is changed to allow
28653             internal status updates
28654           - Making sure the active control is selected when the control is created
28655         * CurrencyManager.cs: Removed obsolete TODO
28656
28657 2006-03-29  Mike Kestner  <mkestner@novell.com>
28658
28659         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
28660         of PrintPreviewDialog and RichTextBox.
28661
28662 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
28663
28664         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
28665           DarkDark, Light and LightLight colors for a specific color
28666         * ThemeWin32Classic.cs:
28667           - Use Button drawing code to draw RadioButtons and CheckBoxes with
28668             Appearance = Button 
28669           - Make use of the new ResPool helper CPColor
28670           - Draw ProgressBar and StatusBar with correct 3D borders
28671
28672 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
28673
28674         * ColorDialog.cs: Return selected color. Fixes bug #77940.
28675
28676 2006-03-28  Mike Kestner  <mkestner@novell.com>
28677
28678         * ListView.cs: fix Icon layout to plan for scrollbar widths when
28679         calculating col/row counts.
28680
28681 2006-03-28  Mike Kestner  <mkestner@novell.com>
28682
28683         * ColumnHeader.cs:
28684         * ListView.cs:
28685         * ListViewItem.cs:
28686         * Menu.cs: 
28687         switch to explicit interface method implementation for some methods
28688         corcompare identifies as inconsistent with MS.
28689
28690 2006-03-28  Mike Kestner  <mkestner@novell.com>
28691
28692         * MainMenu.cs: 
28693         * Menu.cs:
28694         add a few missing methods from the class status output.
28695
28696 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
28697
28698         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
28699           correct.
28700
28701 2006-03-28  Mike Kestner  <mkestner@novell.com>
28702
28703         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
28704
28705 2006-03-27  Mike Kestner  <mkestner@novell.com>
28706
28707         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
28708         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
28709
28710 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
28711
28712         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
28713
28714 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
28715
28716         * ThemeWin32Classic.cs:
28717           - GroupBox: Inserted a little gap between the text and the lines
28718             on the right side
28719           - Made the code in CPDrawBorder3D more readable
28720           - Corrected the drawing location of the up and down arrows in 
28721             CPDrawScrollButton
28722
28723 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
28724
28725         * ControlPaint.cs: Corrected line widths in DrawBorder for
28726           ButtonBorderStyle Inset and Outset
28727
28728 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
28729
28730         * ThemeWin32Classic.cs:
28731           - Rewrote the totally broken CPDrawBorder3D method. That was
28732             one of the main problems for the terrific ThemeWin32Classic
28733             look
28734           - Updated and corrected Button drawing
28735           - Correct the dimensions of the SizeGrip to match ms ones
28736           - Removed a small drawing glitch in DrawComboBoxEditDecorations
28737         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
28738           Border3DStyle.Sunken to match ms.
28739
28740 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
28741
28742         * ThemeWin32Classic.cs: First small part of the "de-uglify
28743           ThemeWin32Classic" effort, SizeGrip
28744
28745 2006-03-24  Jackson Harper  <jackson@ximian.com>
28746
28747         * XplatUIX11.cs: Give a max idle time of one second, this matches
28748         MS and forces an Idle event every second when there are no other
28749         events in the queue.
28750
28751 2006-03-24  Mike Kestner  <mkestner@novell.com>
28752
28753         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
28754         * ListView.Item.cs: fix layout issues with null image lists and images
28755         smaller than checkbox size.
28756         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
28757         mode like MS does.  It's weird, but consistent.  ;-)
28758         Fixes #77890.
28759
28760 2006-03-24  Mike Kestner  <mkestner@novell.com>
28761
28762         * ListView.cs: Scroll wheel support for the item control.  Fixes
28763         #77839.
28764
28765 2006-03-23  Jackson Harper  <jackson@ximian.com>
28766
28767         * ScrollableControl.cs: Special case negative sized areas, not
28768         zero.
28769         * MonthCalendar.cs: Save the rect of the clicked date so we can
28770         use it for invalidation.
28771         - Try to cut down on the number of invalidates
28772         - Invalidate the rect the mouse is over and was over when moving
28773         the mouse, so we get the focus box following the cursor.
28774
28775 2006-03-23  Mike Kestner  <mkestner@novell.com>
28776
28777         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
28778         focus rectangle drawing. Fixes #77835.
28779
28780 2006-03-23  Mike Kestner  <mkestner@novell.com>
28781
28782         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
28783         the if and else if and reverting back to the original == check on the
28784         None conditional.
28785
28786 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
28787
28788         * FontDialog.cs: Update the example panel if the selected index of
28789           the fontListBox changes.
28790
28791 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
28792
28793         * FileDialog.cs: Make FileDialog remember which directory it was in
28794           last in the same execution.
28795
28796 2006-03-22  Mike Kestner  <mkestner@novell.com>
28797
28798         * FileDialog.cs: make the DropDownMenu on the toolbar display
28799         RadioChecks since they are mutually exclusive and that's what MS does.
28800
28801 2006-03-22  Mike Kestner  <mkestner@novell.com>
28802
28803         * Theme.cs: add Color param to CPDrawMenuGlyph.
28804         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
28805         checks and radio marks and arrows are visible on highlighted items.
28806         * ControlPaint.cs: update to use new Theme signature.
28807
28808 2006-03-22  Mike Kestner  <mkestner@novell.com>
28809
28810         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
28811         is active. Fixes #77870.
28812
28813 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
28814
28815         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
28816           to be focused/selected after startup
28817
28818 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
28819
28820         * ColorDialog.cs: 
28821           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
28822             CustomColors and ShowHelp properties
28823           - Some internal rewrites to get better results when using the
28824             ColorMatrix
28825
28826 2006-03-22  Mike Kestner  <mkestner@novell.com>
28827
28828         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
28829         HoverSelection.  Fixes #77836.
28830
28831 2006-03-22  Mike Kestner  <mkestner@novell.com>
28832
28833         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
28834         ToggleButtons.  (De)Sensitize the Back button around a stack count of
28835         1, not 0.  Update ButtonSize based on a pixel count of the win32
28836         control.  Adjust the toolbar size/location for new button size.
28837
28838 2006-03-22  Jackson Harper  <jackson@ximian.com>
28839
28840         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
28841         true.
28842         * ScrollBar.cs: When doing increments and decrements we need to
28843         set the Value property so that ValueChanged gets raised. A
28844         possible optimization here would be to make an internal SetValue
28845         that doesn't invalidate immediately.
28846         * ToolTip.cs: Tooltips get added to their container (when
28847         supplied) so they get disposed when the container is disposed.
28848         - Don't create tooltips for String.Empty. This prevents all these
28849         little 2-3 pixel windows from showing up when running nunit-gui
28850         and driving me mad.
28851         * Form.cs: Don't set topmost when setting the owner if the handles
28852         haven't been created yet.  The topmost set will happen when the
28853         handles are created.
28854
28855 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
28856
28857         * XplatUIX11.cs:
28858           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
28859           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
28860             visible (to allow them to recalculate their sizes)
28861
28862 2006-03-21  Mike Kestner  <mkestner@novell.com>
28863
28864         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
28865         methods. Removed a ton of redundant code.  Still not really happy with
28866         the border rendering, but I think that's mainly because of the
28867         ControlDarkDark being black instead of a dark grey. Depending on how 
28868         close we want to be, we might want to revisit those color choices.
28869         Among the new features added during the refactor were DropDownArrow
28870         pressed rendering, Disabled image rendering.  Proper flat appearance
28871         boundary rendering.  Removed the Divider and Wrapping dividers since I
28872         can't figure out any combination of themes and conditions to make the
28873         MS control draw a horizontal line on a toolbar despite what the
28874         Divider property docs indicate.
28875         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
28876         conditions and incorrect layout.  Updated to coding standard.
28877         * ToolBarButton.cs: refactored layout and positioning code from
28878         ToolBar to here.  Invalidate wherever possible instead of forcing
28879         redraws of the whole toolbar. 
28880         (Known remaining issues: explicit ButtonSize smaller than provided
28881         images.)
28882
28883 2006-03-21  Mike Kestner  <mkestner@novell.com>
28884
28885         * ContextMenu.cs (Show): use the position parameter instead of just
28886         showing at the MousePosition.
28887
28888 2006-03-21  Jackson Harper  <jackson@ximian.com>
28889
28890         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
28891         control handle this.
28892         * TreeNodeCollection.cs: If we are clearing the root node we need
28893         to reset top_node so calcs can still happen.
28894         * ThemeWin32Classic.cs: This is a Flags so we need to check
28895         properly.
28896         
28897 2006-03-21  Jackson Harper  <jackson@ximian.com>
28898
28899         * DataGrid.cs: Create columns when the binding context has been
28900         changed.
28901         * X11Structs.cs: Keysyms are uints.
28902         - Add size to fix build.
28903
28904 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
28905
28906         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
28907           XplatUIOSX.cs: 
28908           - Added ResetMouseHover method to allow controls to retrigger
28909             hovering if they need it more than once
28910           - Implemented MouseHoverTime and MouseHoverSize properties
28911         * Timer.cs: Start() must reset the interval
28912         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
28913           properties
28914
28915 2006-03-21  Jackson Harper  <jackson@ximian.com>
28916
28917         * X11Keyboard.cs: improved layout detection. Move the nonchar
28918         tables into this file.
28919         * KeyboardLayouts.cs: Move the tables into resource files.
28920
28921 2006-03-21  Mike Kestner  <mkestner@novell.com>
28922
28923         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
28924
28925 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
28926
28927         * Mime.cs: Various speed optimizations. Looking up mime types
28928           is now 2 times faster than before
28929
28930 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
28931
28932         * CreateParams.cs: Added internal menu field
28933         * Control.cs: 
28934           - Switched call order for UpdateBounds; now we always call
28935             the one that also takes ClientSize, and we're calculating the 
28936             client size via driver method in the others. The previous
28937             method of tracking client size by difference wasn't working
28938             for forms where even the starting client size wouldn't match
28939             the overall form size (due to borders) (Part of fix for #77729)
28940           - CreateParams(): Do not use parent.Handle unless the handle is
28941             already created. Causes havoc with Nexxia and throws off our
28942             creation of controls
28943         * XplatUIX11.cs:
28944           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
28945           - Switched handling of ConfigureNotify over to new PerformNCCalc 
28946             method (consolidates code)
28947           - Changed RequestNCRecalc to use new PerformNCCalc method
28948           - Added calls to RequestNCRecalc when menus and borders are changed
28949             to allow app to set NC size. (Part of fix for #77729) This matches
28950             when MS send a WM_NCRECALC on Win32 windows.
28951           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
28952             (Part of fix for #77729). This matches what MS does, they also
28953             send that message when the form is made visible.
28954           - XException.GetMessage: Improved usability of X errors by including
28955             a translation of the window into Hwnd and Control class
28956           - Improved debug info for window creation, reparenting and destruction
28957           - Created helper method WindowIsMapped() [Currently not used]
28958         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
28959         * Form.cs:
28960           - CreateParams: Now setting our menu on the new internal menu field
28961           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
28962             avoid calculating the same property twice
28963         * Hwnd.cs:
28964           - Improved usability of ToString() for debugging purposes
28965           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
28966             determine the height of the menu, instead of just the font. This
28967             required to also create a graphics context and to keep a bmp 
28968             around (for performance reasons)
28969
28970 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
28971
28972         * MenuAPI.cs: Added OnMouseUp method
28973         * Form.cs:
28974           - Now remembering the requested client size, avoids size errors
28975           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
28976             instead of base if the menu is active. This is required due to
28977             control now capturing and releasing on down/up and it would
28978             prematurely release our menu capture
28979
28980 2006-03-17  Jackson Harper  <jackson@ximian.com>
28981
28982         * KeyboardLayouts.cs: Add the czech layouts.
28983
28984 2006-03-16  Jackson Harper  <jackson@ximian.com>
28985
28986         * Control.cs: Use the viewport space when sizing not the controls
28987         client size, so things like ScrollableControl that effect the
28988         viewport size (when scrollbars are added) are computed correctly.
28989         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
28990         of ManagerEntrys.
28991         - Handle creating BindingManagers for null data sources.
28992         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
28993         source, otherwise when rows are added they are added to the 'fake'
28994         datasource and we will crash when trying to set the position in
28995         those rows.
28996         - Use Implicit scrollbars on the datagrid so they arent
28997         selectable.
28998         
28999 2006-03-16  Jackson Harper  <jackson@ximian.com>
29000
29001         * Binding.cs:
29002         * InternalWindowManager.cs:
29003         * MdiWindowManager.cs:
29004         * X11Keyboard.cs: I really want Mike to love me again (fix
29005         compiler warnings).
29006
29007 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
29008
29009         * DataGrid.cs:
29010           - OnMouseDown: Switch to editing mode when clicking on the cell
29011                          even if we're clicking on the cell that's currently 
29012                          selected
29013           - ProcessGridKey: Left/Right now wrap like MS.Net does
29014           - ProcessGridKey: Tab now knows to add a new row when tab is
29015                             pressed in the cell of the last column of the 
29016                             last row
29017           - ProcessGridKey: Enter now adds another row  if pressed in the last
29018                             row and selectes the new row, same column cell
29019           - ProcessGridKey: Home/End navigate columns, not rows, like 
29020                             originally implemented
29021           - Broke ProcessKeyPreview code out into an extra Internal method
29022             so it can be called from the edit code
29023         * DataGridTextBox.cs (ProcessKeyMessage):
29024           - Switched to accept Tab keypresses
29025           - Added F2 handling to allow jumping to the end of the edited cell
29026           - Added logic to allow moving caret left/right inside edited cell
29027             and making the edited cell jump when the caret hits cell borders
29028           - Tab and Enter are now passed to the datagrid after being handled
29029         * TextBoxBase.cs:
29030           - Removed capture code now that Control handles it
29031           - set_SelectionStart now ensures caret is visible
29032
29033 2006-03-16  Jackson Harper  <jackson@ximian.com>
29034
29035         * TrackBar.cs: Debackwards the increment/decrement for handling
29036         mouse clicks on the bar with vertical trackbars.
29037         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
29038         bottom to match MS.
29039
29040 2006-03-16  Mike Kestner  <mkestner@novell.com>
29041
29042         * ListView.cs: make shift/ctrl keyboard and mouse selection 
29043         consistent with the MS control. Fix a bug in
29044         SelectedListViewItemCollection.Clear that was pissing me off for the
29045         better part of a day because the collection was being altered
29046         underneath us as we walked the list.
29047
29048 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
29049
29050         * Control.cs: Not sure how we could miss this so long, but it seems
29051           that MS.Net has Capture set all the way from before calling 
29052           OnMouseDown through sending the mouse events until after
29053           OnMouseUp. This will fix DataGrid's selection being set to end
29054           at the location of the MouseUp.
29055
29056 2006-03-15  Jackson Harper  <jackson@ximian.com>
29057
29058         * BindingContext.cs: Check the binding after its added so that it
29059           can initialize the binding managers and hookup to events.
29060         * Binding.cs: Data members seem to sometimes include rows/cols in
29061           the format Row.Column we now take this into account.
29062           - Hookup to the position changed event so we can update the
29063           control when the position has changed in the data set.
29064         * CurrencyManager.cs: Take into account the row/col naming
29065           convention when creating dataset tables.
29066         * BindingContext.cs: Using a newer better way of storing
29067           datasource/datamember pairs.  Hopefully this better matches MS for
29068           looking up binding managers.
29069
29070
29071 2006-03-15  Jackson Harper  <jackson@ximian.com>
29072
29073         * BindingContext.cs: The currency manager needs the data member
29074         name, if the member is a data set we use the name to find the
29075         correct table.
29076         * CurrencyManager.cs: When creating the list prefer an IList over
29077         an IListSource.
29078         - Attempt to create a DataTable from a DataSet (TODO: might need
29079         some better error checking here, although MS doesn't seem to have much)
29080         - If we have a DataTable create a view and use it as our list.
29081
29082 2006-03-15  Mike Kestner  <mkestner@novell.com>
29083
29084         * ListView.cs: keep a matrix of the icon mode layout to facilitate
29085         keyboard navigation. Support Up/Down/Left/Right selection correctly
29086         for all 4 View modes.
29087         * ListViewItem.cs: add internal row/col fields for icon layouts.
29088
29089 2006-03-15  Jackson Harper  <jackson@ximian.com>
29090
29091         * TabControl.cs: Redraw the tabs when we resize so their newly
29092         calculated sizes are drawn on screen.
29093         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
29094         composite characters.
29095         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
29096         - filter events so that composite characters can be created
29097         patches by peter
29098         * X11Structs.cs: Add XIMProperties enum.
29099
29100 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
29101
29102         * Control.cs (BringToFront, SendToBack): Don't use window or handle
29103           unless it's created
29104
29105 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
29106
29107         * Control.cs (PerformLayout): We don't need to consider visiblity
29108           for anchoring, only for docking. This fixes 'whacky' alignment
29109           in listbox and other controls that use implicit scrollbars after
29110           the previous PerformLayout patch
29111         * ListBox.cs: Switched to use implicit scrollbars
29112           
29113 2006-03-14  Mike Kestner  <mkestner@novell.com>
29114
29115         * ToolBar.cs: 
29116         * VScrollBar.cs:
29117         - chain up the "new event" overrides to base and use
29118         OnEvent to raise them.  Part of fix for bug #76509.
29119
29120 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
29121
29122         * FileDialog.cs: Do not select an item in the parent directory
29123           on backspace
29124
29125 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
29126
29127         * Control.cs (PerformLayout): It would seem that we considered
29128           invisible windows for our layout. Not quite the right thing
29129           to do. Now we don't any longer, thereby fixing bug #76889.
29130
29131 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
29132
29133         * Control.cs (CanFocus): I goofed. A control can have focus 
29134           even though it's not selectable. Made it match MS docs.
29135
29136 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
29137
29138         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
29139           center by default (fixes #76895)
29140         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
29141           all uses of Border3DSides.All with the explicit ORd together
29142           Left|Right|Top|Bottom because I assume that nobody was aware 
29143           that All also implies a center fill. Most places I checked had
29144           a fill right above.
29145         * ProgressBarStyle.cs: Added
29146
29147 2006-03-13  Mike Kestner  <mkestner@novell.com>
29148
29149         * ListView.cs: fix breakage in drag shadow header positioning 
29150         from Peter's csc compilation fix.
29151
29152 2006-03-13  Mike Kestner  <mkestner@novell.com>
29153
29154         * ListView.cs: fix NRE produced by backspacing twice in a focused
29155         FileDialog.
29156
29157 2006-03-13  Mike Kestner  <mkestner@novell.com>
29158
29159         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
29160
29161 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
29162
29163         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
29164           be changed
29165         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
29166           the allowed size before making programmatic size changes
29167
29168 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
29169
29170         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
29171           set, metacity is broken and will still use the emty sizes in 
29172           the struct. (Fix for #77089)
29173
29174 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
29175
29176         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
29177           WindowExStyles and marked both enums as Flags
29178         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
29179           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
29180           to match WindowStyles split
29181         * XplatUIX11.cs:
29182           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
29183           - Updated to match WindowStyles split
29184         * XplatUIWin32.cs:
29185           - Fixed FosterParent creation, was using ExStyle on the Style field
29186             (This should help with Popup focus issues)
29187           - Updated to match WindowStyles split
29188
29189 2006-03-13  Jackson Harper  <jackson@ximian.com>
29190
29191         * MdiWindowManager.cs: Use the system menu height. Fixes some
29192         strange sizing issues.
29193
29194 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
29195
29196         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
29197         * TextBoxBase.cs:
29198           - Scroll to caret after inserting text (#77672)
29199           - Make scroll range one pixel higher, fixes off-by-one error (and
29200             makes underlines visible on the last line)
29201
29202 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
29203
29204         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
29205           the keyboard state from being stuck with keys in 'pressed' state when
29206           focus is switched away via keyboard
29207         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
29208           reset the keyboard if no X11 KeyUp events are expected to come
29209         * X11Structs.cs: Switched type of Visible to bool to match driver
29210
29211 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
29212
29213         * TextControl.cs:
29214           - Switched caret to be just 1 pixel wide, matches MS and looks less
29215             clunky
29216           - Moved caret display 1 pixel down from the top of the control
29217             to improve view
29218           - InsertCharAtCharet: Update the selection start if moving the caret
29219             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
29220           - No longer always creating the caret when the caret methods are
29221             called. Only the actual ShowCaret/HideCaret will do that now
29222           - Only setting caret visible if the owner control has focus
29223           - UpdateView: Added invalidation-shortcut logic for center and right 
29224             aligned text. Previously we'd update all according to the left
29225             logic which caused drawing errors. Also fixed height of invalidated
29226             areas, now properly invalidating the whole area (was off-by-one)
29227           - owner_HandleCreated: Always generate the document when the
29228             handle is created; this ensures that 
29229         * TextBoxBase.cs:
29230           - Fixed situation where caret would disappear under the right
29231             window border, also improved scrolling behaviour on left-
29232             aligned textboxes
29233           - Fixed right-aligned textboxes to have a border to the
29234             right instead of the caret being under the right border
29235         * XplatUIX11.cs:
29236           - Switched from 'nested' to simple visible/not visible tracking 
29237             for caret (part of fix for #77671)
29238           - No longer passing through translated FocusIn/FocusOut messages
29239             since we were notifying too often and the wrong windows. Instead
29240             we just notify our focussed window of receiving or loosing focus
29241         * XplatUIWin32.cs: Switched from 'nested' show/hide 
29242           counting for caret to simple visible yes/no behaviour (part of 
29243           fix for #77671)
29244
29245 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
29246
29247         * Mime.cs: Remove debug code...
29248
29249 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
29250
29251         * MimeGenerated.cs: Removed
29252         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
29253           and subclasses) from /usr/(local/)share/mime and
29254           $HOME/.local/share/mime.
29255
29256 2006-03-10  Jackson Harper  <jackson@ximian.com>
29257
29258         * MdiWindowManager.cs: Recalc the NC area when a window is
29259         maximized/restored so that the menu area is drawn on forms that
29260         don't have a menu.
29261
29262 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
29263
29264         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
29265           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
29266           us to force a WM_NCCALCRESIZE message being sent. This is needed
29267           for MDI maximizing.
29268
29269 2006-03-10  Jackson Harper  <jackson@ximian.com>
29270
29271         * Form.cs: We need to use the ActiveMenu when calculating menu
29272         height.
29273         - Fix nullref when the window manager hasn't been created yet.
29274         * Control.cs: Fix nullref when we try to bring a control to the
29275         front that has no parent.
29276         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
29277         height.
29278         - Add a dummy item to the maximized menu so it always has the
29279         correct height. Otherwise when there are no menus we don't get our
29280         icon and buttons.
29281         
29282
29283 2006-03-10  Jackson Harper  <jackson@ximian.com>
29284
29285         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
29286         stuff.
29287         * Form.cs: Make the window_state internal so the window managers
29288         can track it.
29289         - When an MDI child is maximized let its window manager create the
29290         main menu (so it can add its icon).
29291         - Notify the window managers of state changes
29292         - Let the window manager paint its buttons and handle button
29293         clicks on the menu when it is maximized.
29294         * InternalWindowManager.cs: Move the prev_bounds into the mdi
29295         window manager, since tool windows don't use it, only mdi windows.
29296         - Tell the main form that we don't want it to handle NCPAINT
29297         itself to avoid extra painting.
29298         - Handle clicks on a maximized windows menu.
29299         - Handle window state changes
29300         - Handle minimize/maximize clicks correctly by setting the window state.
29301         * MdiWindowManager.cs: Add an icon menu that (the menu you get
29302         when clicking on the forms icon).
29303         - New method to create a forms maximized menu. This is its normal
29304         menu + an icon.
29305         - Handle window state changes.
29306         - Handle sizing of maximized windows.  Maximized windows are just
29307         drawn bigger then the parent visible area. All controls are still
29308         there, they are just outside the visible area (this matches windows).
29309         * MdiClient.cs: No scrollbars when a child window is maximized.
29310         - Let the children windows figure out how big they should be when
29311         sizing maximized windows.
29312         - Implement a version of ArrangeIconicWindows somewhat similar to
29313         Windows version.  There are some little differences, but I don't
29314         think any app will rely on the layout of minimized mdi windows.
29315
29316 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
29317
29318         * Padding.cs: Several fixes to allow compiling with csc 2.0
29319
29320 2006-03-09  Jackson Harper  <jackson@ximian.com>
29321
29322         * Menu.cs:
29323         * MenuItem.cs: Cheap hack so we can add items to the list without
29324         the events being raised.  This allows adding mdi items during
29325         drawing. TODO: Should probably find a better time to add the items.
29326
29327 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
29328
29329         * ThemeWin32Classic.cs:
29330           - CheckBox_DrawText: Added logic to not wrap if not enough space
29331             is available (Fix for bug #77727)
29332           - RadioButton_DrawText: Added logic not to wrap if not enough
29333             space is available (Fix for bug #77727). Also removed some
29334             duplicate code, DrawString always drawing the regular text
29335             before hitting the if statement.
29336
29337 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
29338
29339         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
29340
29341 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
29342
29343         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
29344         * ContainerControl.cs: Partial implementation of some 2.0 scaling
29345           methods. Moved the new 2.0 properties into alphabetical order with
29346           other properties and added MonoTODO tags
29347
29348 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
29349
29350         * AutoScaleMode.cs: Added. Fix build.
29351
29352 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
29353
29354         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
29355           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
29356           and was requiring premature handle creation for calls from above
29357         * Form.cs, Control.cs: Removed handle arguments from calls to
29358           CalculateClientRect()
29359
29360 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
29361
29362         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
29363           drag_column.column_rect is MarshalByRef and can't be used that way
29364
29365 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
29366
29367         * AxHost.cs: Added deserialization constructor for 
29368           AxHost+State (fixes 77743)
29369
29370 2006-03-09  Mike Kestner  <mkestner@novell.com>
29371
29372         * ListView.cs: 
29373         - Added column drag reordering for details view.
29374         - fixed behavior when mouse is dragged off column and
29375         AllowColumnReorder is false.
29376         * ColumnHeader.cs: clone the format too in Clone.
29377         * Theme.cs: add DrawListViewHeaderDragDetails method.
29378         * ThemeWin32Classic.cs:
29379         - impl new method for drawing drag column shadows and targets.
29380         - support column offset for details mode in DrawListViewItem.
29381
29382 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
29383
29384         * TextControl.cs: Reset the char_count when the document is cleared
29385           (Fixes bug reported on mono-winforms mailing list)
29386
29387 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
29388
29389         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
29390           of calling base we simply process the key ourselves, since both
29391           DefWindowProc and the handled method would set m.Result. 
29392           (Fixes #77732)
29393
29394 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
29395
29396         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
29397           method also moves the window; instead implemented a copy of
29398           Control.ScaleCore (Part of fix for #77456)
29399         * TextBoxBase.cs: 
29400           - Created new CreateGraphicsInternal method to allow providing
29401             a graphics context when no handle is created without triggering
29402             handle creation. (Part of fix for #77456)
29403           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
29404         * TextControl.cs: 
29405           - Switched Constructor to require TextBoxBase instead of Control (to
29406             allow uncast access to CreateGraphicsInternal)
29407           - Safeguarded use of owner.Handle property. No longer accessing it
29408             unless the handle is already created.
29409           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
29410           - Now triggering a recalc when owning control becomes visible
29411         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
29412           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
29413           premature handle creation (Part of fix for #77456)
29414         * Control.cs:
29415           - We now only destroy our double-buffering buffers when the
29416             control is resized or disposed, but not when visibility
29417             changes. (The code even re-created them twice every time)
29418           - Now requiring a redraw of the buffer on visibility changes
29419             (fixes bug 77654 part 2)
29420           - Not passing OnParentVisibleChanged up unless the control
29421             is visible
29422           - CanFocus: Fixed to match MS documentation
29423           - Focus: Fixed to return actual focus state and to check if
29424             setting focus is legal before setting it
29425
29426 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
29427
29428         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
29429           when to draw focus rectangle by looking at parent focus and
29430           selected state instead. This fixes TabPages on Linux sometimes
29431           having none or multiple focus rectangles.
29432         * XplatUIX11.cs (SetFocus): 
29433           - Don't set the focus if the same window already has focus
29434           - Use SendMessage instead of PostMessage (like it's Win32
29435             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
29436             to match MS behaviour
29437         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
29438           are not selectable.
29439
29440 2006-03-07  Jackson Harper  <jackson@ximian.com>
29441
29442         * PictureBox.cs: Revert line I accidently committed last week.
29443
29444 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
29445
29446         * Control.cs: 
29447           - Added new IsRecreating and ParentIsRecreating properties to
29448             allow testing if RecreateHandle has been called on ourselves
29449             or one of our parents
29450           - WndProc(WM_DESTROY): If our control handle is being recreated
29451             we immediately need to create the handle when receiving the
29452             destroy, that way our child windows find a valid parent handle
29453             when they themselves are being recreated upon WM_DESTROY receipt
29454             (fix for bug #77654 part 1)
29455         * XplatUIX11.cs:
29456           - DestroyWindow: WM_DESTROY must be sent to our own window before
29457             notifying any child windows. MS documents that child windows
29458             are still valid when WM_DESTROY is received. (Control now relies on
29459             this behaviour)
29460           - Added some fine-grain debug options
29461
29462 2006-03-06  Jackson Harper  <jackson@ximian.com>
29463
29464         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
29465         box and base calculations off this.
29466         * MdiChildContext.cs:
29467         * MdiWindowManager.cs: Don't need to ensure scrollbars here
29468         anymore.
29469         
29470 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
29471
29472         * Splitter.cs: In situations where the affected control is added
29473           to the parent's control list after the splitter, we would not
29474           populate affected. Now we try populating it on mousedown, if
29475           it's not already set, and force it to be re-set whenever our
29476           parent changes.
29477
29478 2006-03-03  Matt Hargett  <matt@use.net>
29479
29480         * Control.cs: implement Control.Padding
29481         * Padding.cs: -Padding.All returns -1 when constructing with the
29482         implicit default ctor
29483         -Padding.ToString() matches MS.NET
29484         * ContainerControl.cs: implement
29485         ContainerControl.AutoScaleDimensions
29486         * ListControl.cs: implement ListControl.FormattingEnabled
29487         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
29488         * ButtonBase.cs:
29489         * TabPage.cs: Implement UseVisualStyleBackColor.
29490         * PictureBox.cs: Implement PictureBox.InitialImage.
29491
29492 2006-03-03  Mike Kestner  <mkestner@novell.com>
29493
29494         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
29495         event declarations to proxy to base event.
29496         * ListViewItem.cs: update to use ItemControl.
29497         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
29498         * ThemeWin32Classic.cs: update to new ListView theme API and fix
29499         column header label rendering for 0 width columns.
29500
29501 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
29502
29503         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
29504           that causes the control to be created. Fixes #77476.
29505
29506 2006-03-02  Jackson Harper  <jackson@ximian.com>
29507
29508         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
29509         expose_pending.
29510
29511 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
29512
29513         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
29514           passed in for the EventArgs (fixes #77690)
29515
29516 2006-03-01  Jackson Harper  <jackson@ximian.com>
29517
29518         * ScrollBar.cs: Refresh afterbeing resized.
29519
29520 2006-02-28  Mike Kestner  <mkestner@novell.com>
29521
29522         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
29523         Clean up a tracker compile warning.
29524         * MenuItem.cs: add internal PerformPopup method.
29525         [Fixes #77457]
29526
29527 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
29528
29529         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
29530           implicit expose) when the text is set to null
29531
29532 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
29533
29534         * RichTextBox.cs (FlushText): When newline is true, we always
29535           need to split the line, even if no text is on it and we may
29536           never eat newlines. (Fixes #77669)
29537
29538 2006-02-28  Mike Kestner  <mkestner@novell.com>
29539
29540         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
29541         and set Selected instead.
29542         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
29543         collections.
29544
29545 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
29546
29547         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
29548
29549 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
29550
29551         * FontDialog.cs:
29552           - Got rid of the panel. All controls are now directly added to
29553             the dialog form
29554           - It is now possible to set a font with the Font property
29555           - MinSize and MaxSize property do now what they should
29556           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
29557           - Searching and selecting a font with the font textbox works now,
29558             the same applies to the style and size textbox
29559           - Draw the correct 3D border in the example panel
29560           - Fixed a little mem leak (unused fonts didn't get disposed)
29561           - Many other internal updates/rewrites...
29562           - Fix typo
29563
29564 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
29565
29566         * TextControl.cs: 
29567           - InsertRTFFromStream: Added 'number of characters inserted' argument
29568           - set_SelectedRTF: Now using the number of characters to calculate
29569             the new location for the selection and cursor (x/y cannot be used
29570             due to potentially already wrapped text)
29571
29572 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
29573
29574         * TextControl.cs: Added property and implemented means to allow 
29575           disabling recalculation of a document (can be used to speed up
29576           multiple inserts and is needed to make RTF inserts predictable, see
29577           bug #77659)
29578         * RichTextBox.cs: Using the new NoRecalc property of Document to
29579           keep x/y insert locations predictable. Also makes it faster inserting
29580           large chunks of RTF
29581
29582 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
29583
29584         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
29585           it's easier for a child control to handle the other messages without
29586           having to duplicate the special functionality
29587         * TextBoxBase.cs
29588           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
29589             code to handle processing the key ourselves, in order to get 
29590             access to the result of KeyEventArgs.Handled. We now only call 
29591             ProcessKey if they key hasn't been handled already. Fixes #77526.
29592           - set_Text: If null or empty string is given, just clear the 
29593             document. Fixes part of #77526
29594
29595 2006-02-27  Jackson Harper  <jackson@ximian.com>
29596
29597         * SizeGrip.cs: Paint the background color before painting the grip
29598         so things look right.
29599         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
29600
29601 2006-02-27  Mike Kestner  <mkestner@novell.com>
29602
29603         * ListView.cs:
29604           - Restructure layout and invalidation model to remove a ton of
29605           flicker from the control and speed up performance in general.
29606           - Add manual column resize, flickers like crazy, but I already have
29607           some ideas on how I'll fix that. (#76822)
29608           - Merge the three Icon-based views into a single layout method.
29609           - Move item selection interaction logic from the item since 
29610           interaction with the collections is more appropriate to the view.
29611           - Deselection on non-item clicks.
29612         * ListViewItem.cs:
29613           - Encapsulate most of the layout. Add some internal props to trigger
29614           layout.  Move to a model where Items invalidate themselves instead
29615           of just invalidating the whole control every time something changes.
29616           - Invalidate on Text/Caption changes.
29617           - switch to an offset based layout model to avoid having to absolute
29618           position every element on item moves.
29619           - correct checkbox layout to conform to MS layout.
29620         * ThemeWin32Classic.cs:
29621           - refactor some column header drawing code.
29622           - fix string justification for column headers (#76821)
29623           - make SmallIcon labels top justified for compat with MS impl.
29624         * ThemeClearlooks.cs:
29625           - adjust to new ListViewItem internal checkbox bounds api.
29626
29627 2006-02-27  Jackson Harper  <jackson@ximian.com>
29628
29629         * Control.cs:  Change where implicit controls fall in the zorder.
29630         They are now on top of all children.
29631         - Synced AddImplicit code with Add
29632         - Removed unused enumerator.
29633         * SizeGrip.cs: Remove the TODO as its been TODONE.
29634
29635 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
29636
29637         * TextControl.cs(Insert): Combine the last lines unless the insertion
29638           string ends with \n\n, otherwise we leave one line too many (Fixes
29639           something I noticed with the testapp for #77526; the bug itself was
29640           already fixed in the previous checkin)
29641
29642 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
29643
29644         * RichTextBox.cs:
29645           - SelectionColor and SelectionFont methods no longer set absolute
29646             styles. Instead, the keep font or color respectively (This 
29647             resolves a long-standing FIXME in the code)
29648           - When flushing RTF text, the insert code now considers text trailing
29649             behind the insertion point (Fixes the bug where when replacing
29650             the selected text via SelectedRTF the remainder of the line behind 
29651             the selection would stay on the first insertion line)
29652         * TextBoxBase.cs:
29653           - AppendText now updates the selection points after inserting text
29654           - AppendText now ensures that the last tag (sometimes 0-length) of
29655             the document is used for the style information (Fixes part of 
29656             bug #77220)
29657         * TextControl.cs:
29658           - Created new FontDefiniton class to allow describing partial style
29659             changes
29660           - StreamLine() now takes a lines argument, to allow it to decide
29661             whether an encountered zero-length tag is the last in the document
29662             (which must be kept to not loose the font/color contained in it,
29663             for later appends)
29664           - Created Combine() and Split() methods for Marker structs, to 
29665             support marker updates due to reformatted documents (soft line
29666             wraps)
29667           - Implemented Document.CaretTag setter
29668           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
29669             of the last line (Not the cause, but also exposed by bug #77220)
29670           - Added LineTag argument to InsertString method, to allow callers
29671             to force a certain tag to be used (required to force use of the
29672             trailing zero-length tag of a document)
29673           - Now updating markers in Combine(), to avoid stale tag markers
29674           - Added some method descriptions to aid maintenance
29675           - Implemented new FormatText concept, allowing additive/subtractive
29676             formatting by only specifying the components that are to be 
29677             changed. This was needed for resolving the RTB.SelectedColor/
29678             RTB.SelectedFont fixmes
29679           - Added Break() support method to allow breaking up linetags (used
29680             for partial formatting)
29681           - Added GenerateTextFormat() method. It is used for partial 
29682             formatting and allows to generate a full font/color from given
29683             attributes and an existing tag.
29684
29685 2006-02-26  Jackson Harper  <jackson@ximian.com>
29686
29687         * XplatUIX11.cs:  Use the correct caption height.
29688         - Translate hittest coordinates to screen coords to match MS.
29689         * XplatUIWin32.cs: When we create MDI windows we need to reset
29690         some of the style flags, so we get a nice blank window, and can
29691         draw all the decorations ourselves.
29692         - Set a clipping rectangle on the non client paint event, the
29693         window manager drawing code needs one.
29694         * Form.cs: The window manager needs to know when the window state
29695         has been updated.
29696         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
29697         don't need to factor in border and title sizes in these
29698         methods. TODO: Remove the args and fix the call points.
29699         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
29700         properly.
29701         - Let the driver set the cursors.
29702         - Improve active window handling
29703         - Correct sizes for title bars and buttons.
29704         - Match MS drawing better
29705         * MdiWindowManager.cs: We don't need to handle border style
29706         updates specially anymore.
29707         - Check for scrollbars when windows are done moving
29708         - Handle Active properly.
29709         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
29710         correctly. I am spewing the exception though, so we don't hide the
29711         bugs.
29712         
29713 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
29714
29715         * DataGridViewRowPostPaintEventArgs.cs,
29716           DataGridViewCellPaintingEventArgs.cs,
29717           DataGridViewRowCollection.cs,
29718           DataGridViewRowPrePaintEventArgs.cs,
29719           DataGridViewCell.cs: Clear a few warnings and implement a few
29720           exceptions that should be thrown.
29721
29722 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
29723
29724         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
29725           'inheriting' our parent's (non-default) cursor. (Part of
29726            the fix for #77479)
29727
29728 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
29729
29730         * XplatUIX11.cs: Fixed cast to make csc happy
29731
29732 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
29733
29734         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
29735           it's for the client area (part of fix for #77479 and needed
29736           for MDI window cursor handling)
29737         * XplatUIX11.cs
29738           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
29739             the appropriate default cursors and also passing the message
29740             up the parent chain 
29741           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
29742             for non-client areas
29743
29744 2006-02-15  Jackson Harper  <jackson@ximian.com>
29745
29746         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
29747         is a real MDI window
29748
29749 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
29750
29751         * X11DesktopColors.cs: Instead of checking the desktop session
29752           string for "KDE" check if it starts with "KDE"
29753
29754 2006-02-10  Jackson Harper  <jackson@ximian.com>
29755
29756         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
29757         systems).
29758
29759 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
29760
29761         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
29762           errors
29763         * ColorDialog.cs:
29764           - Got rid of the panel. All controls are now directly added to
29765             the dialog form
29766           - Changed to mono coding style
29767
29768 2006-02-10  Jackson Harper  <jackson@ximian.com>
29769
29770         * InternalWindowManager.cs: We don't need the set visibility to
29771         false hack anymore now that peter has written beautiful shutdown
29772         code.
29773
29774 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
29775
29776         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
29777           where already explicitly destroyed
29778
29779 2006-02-10  Jackson Harper  <jackson@ximian.com>
29780
29781         * MdiClient.cs: Handle the case where windows are too high or to
29782         the left and we need scrollbars.
29783
29784 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
29785
29786         * MimeIcon.cs: Added some icons
29787         * FileDialog.cs:
29788           - Fixed bug #77477
29789           - Got rid of the panel. All controls are now directly added to
29790             the dialog form
29791           - Changed to mono coding style
29792           - On Linux "My Computer" and "My Network" will now show some
29793             more usefull information. A new class, MasterMount, gathers
29794             this information from /proc/mount. Updated MWFFileView to make
29795             use of this information
29796           - Fixed a bug that caused FileDialog to crash when
29797             ".recently_used" file had a zero size
29798           - FilterIndex does now what it should
29799           - Some Refactoring
29800         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
29801             FileDialog changes
29802
29803 2006-02-09  Jackson Harper  <jackson@ximian.com>
29804
29805         * ComboBox.cs: Don't touch if null.
29806
29807 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
29808
29809         * Cursor.cs: 64bit safeness fix
29810         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
29811
29812 2006-02-09  Jackson Harper  <jackson@ximian.com>
29813
29814         * Form.cs: If a form is made into an MDI form update the styles so
29815         all the props can get set correctly.
29816         - Kill the mdi_container when we dont need it anymore.
29817         * InternalWindowManager.cs: Add missing NOT
29818
29819 2006-02-08  Jackson Harper  <jackson@ximian.com>
29820
29821         * InternalWindowManager.cs: Respek clipping when drawing MDi
29822         decorations.
29823
29824 2006-02-08  Jackson Harper  <jackson@ximian.com>
29825
29826         * Hwnd.cs: Add bits to track non client expose events.
29827         * XplatUIX11.cs: Track non client expose events on the hwnd. This
29828         gives us a proper invalid rect and will allow for some nice
29829         optimizations with NC client drawing
29830         - MDI windows are children windows, so move their style handling
29831         into the child window block.
29832         * InternalWindowManager.cs: Remove a state reset that was
29833         getting invoked at the wrong time. Fixes managed windows getting
29834         into a 'stuck' captured state.
29835
29836 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
29837
29838         * TextControl.cs (Document.ctor): Now initializing 
29839           selection_anchor. Fixes #77493
29840
29841 2006-02-07  Jackson Harper  <jackson@ximian.com>
29842
29843         * TrackBar.cs: The increment/decrements were backwards.
29844
29845 2006-02-07  Mike Kestner  <mkestner@novell.com>
29846
29847         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
29848         to the instance itself.
29849
29850 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
29851
29852         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
29853           on ulongs and pointers, the size differs between 32bit and 64bit
29854           systems. 
29855
29856 2006-02-07  Mike Kestner  <mkestner@novell.com>
29857
29858         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
29859         for 64 bit platforms to work around a metacity bug. 
29860
29861 2006-02-07  Jackson Harper  <jackson@ximian.com>
29862
29863         * TrackBar.cs: Process the input keys we need, and hookup to
29864         KeyDown instead of using WndProc, so we get key messages.
29865
29866 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
29867
29868         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
29869           machine we're on. 
29870         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
29871           we need to translate the XdndVersion atoms array before sending it
29872
29873 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
29874
29875         * XplatUIX11.cs: 
29876           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
29877             number of bits for the property, not the number of bytes. The
29878             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
29879             but would not crash since it specified 8 bits instead of 4 bits)
29880           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
29881             defined as XID -> long in the C headers)
29882           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
29883             references since those are now IntPtr to begin with
29884           - Switched all Atom.XXX 'int' casts to IntPtr casts
29885           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
29886           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
29887           - Added XChangeActivePointerGrab DllImport (for X11DnD)
29888         * X11Structs.cs:
29889           - Changed 'int' type for Atoms in XEvent structures to IntPtr
29890           - Changed atom in HoverStruct to be IntPtr
29891         * X11DnD.cs:
29892           - Removed local DllImports, switched code to use those from XplatUIX11
29893           - Removed/fixed casts related to the switch of Atom to be a IntPtr
29894
29895 2006-02-06  Mike Kestner  <mkestner@novell.com>
29896
29897         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
29898         method signatures in the import region.  There may still be some
29899         lingering struct marshaling issues, as I didn't drill down into those.
29900         Yet.
29901
29902 2006-02-06  Jackson Harper  <jackson@ximian.com>
29903
29904         * ComboBox.cs: Dont manually set the top_item, this is computed
29905         when the scrollbar position is set.
29906
29907 2006-02-06  Mike Kestner  <mkestner@novell.com>
29908
29909         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
29910         startup crashes on amd64.  There's other fixes needed.  All pinvoke
29911         usage of Atom needs to be mapped to IntPtr for example.  And there are
29912         likely other int/long issues to be addressed.
29913
29914 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
29915
29916         * FileDialog.cs: One more...
29917
29918 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
29919
29920         * FileDialog.cs: Next try
29921
29922 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
29923
29924         * FileDialog.cs: First part of fix for #77464
29925
29926 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
29927
29928         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
29929           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
29930           AcceptButton border drawing.
29931
29932 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
29933
29934         * Form.cs: Moved positioning of form after auto scaling is applied,
29935           otherwise it would possibly use wrong form size.
29936
29937 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
29938
29939         * Control.cs (RecreateHandle): No need to re-create any child
29940           controls, the child windows will get destroyed automatically by
29941           the windowing system or driver, and re-created when the handle
29942           is being accessed the first time. Fixes #77456
29943         * Form.cs: No longer setting the form to closing if the handle is 
29944           being recreated. This seems like the right thing to do, don't
29945           have a bug or testcase for this, though.
29946
29947 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
29948
29949         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
29950           controls to avoid unwanted side effects
29951
29952 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
29953
29954         * Control.cs: 
29955           - ScaleCore needs to scale the bounds, not the ClientSize of the 
29956             control. Fixes #77416.
29957           - DefaultSize is 0,0 for control
29958         * TextBoxBase.cs: 
29959           - DefaultSize is 100, 20
29960           - SetBoundsCore: Now enforcing the height, no matter if the provided
29961             height is more or less than the preferred one, as long as AutoSize
29962             is on
29963         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
29964
29965 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
29966
29967         * Control.cs:
29968           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
29969             call unless both performLayout is true *and* we have a pending
29970             layout change
29971           - ResumeLayout: MS does not completely nest Suspend and Resume,
29972             they bottom out at 0, fixed our code to match that.
29973           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
29974             SetBoundsCore, we were updating even when we shouldn't. This fixes
29975             swf-anchors mis-anchoring when resizing the app fast and lots.
29976           - UpdateDistances: Now only setting the left and top distance if 
29977             we have a parent and are not suspended, this is based on
29978             a suggestion by Don Edvaldson in bug #77355.
29979           - OnVisibleChanged: Fixed logic when to create the control. We may
29980             not create the control if we have no parent or if it's not visible;
29981             switched to using Visible property instead of is_visible field 
29982             since the property also considers parent states. This fixes a bug
29983             when starting Paint.Net
29984
29985 2006-02-02  Jackson Harper  <jackson@ximian.com>
29986
29987         * Form.cs: If the forms handle hasn't been created yet don't call
29988         into xplatui to make it top most, just set the topmost flag on the
29989         form in CreateParams
29990         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
29991
29992 2006-02-01  Jackson Harper  <jackson@ximian.com>
29993
29994         * ScrollableControl.cs: Refactored the Recalculate method a
29995         little, this wasn't handling all the variants of bottom and right
29996         bars needed to be added and added/removed based on their
29997         counterparts being added/removed (which changes the drawable
29998         size). Also we special case client widths and heights of 0 and
29999         don't add the scrollbar for those.
30000
30001 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
30002
30003         * XplatUIX11.cs: 
30004           - Added method to get AbsoluteGeometry(); currently unused, but might
30005             be used in the future, if we try again to figure out toplevel
30006             coordinates with some more crappy window managers
30007           - Added FrameExtents() method to retrieve the WM set decoration size
30008           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
30009             to deal with at least KDE, FVWM and metacity (Fixes #77092)
30010         * Hwnd.cs: 
30011           - Added whacky_wm tracking var for metacity
30012           - Added logic to have default menu height if the actual menu height
30013             has not yet been calculated (part of fix for #77426)
30014         * Form.cs: Keep track whether client size has been set and re-set 
30015           it if a menu is added/removed afterwards (Fixes #77426)
30016
30017 2006-01-31  Jackson Harper  <jackson@ximian.com>
30018
30019         * Control.cs: When a new Site is set on the component attempt to
30020         pull the AmbientProperties from it.
30021
30022 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
30023
30024         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
30025           in the background of the owning form. Fixes #77332
30026
30027 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
30028
30029         * MimeIcon.cs: Fix for #77409
30030
30031 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
30032
30033         * XplatUIX11GTK.cs: Initial import
30034
30035 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
30036
30037         * FixedSizeTextBox: fixes class signature
30038
30039 2006-01-30  Jackson Harper  <jackson@ximian.com>
30040
30041         * FixedSizeTextBox.cs: New internal class that represents a
30042         textBox that will not be scaled.
30043         * TreeView.cs:
30044         * ComboBox.cs:
30045         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
30046         standard TextBox.
30047                 
30048 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
30049
30050         * XplatUIX11.cs: Retrieve default screen number instead of
30051           assuming 0. Attempted fix for #77318
30052
30053 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
30054
30055         * XplatUIWin32.cs: 
30056           - GetWindowPos: When a window is parented by FosterParent, use 
30057             the desktop instead of FosterParent as the base to get coordinates
30058           - CreateWindow: Don't make FosterParent the parent window for Popups
30059             if we don't want a taskbar entry, Popups automatically don't get one
30060         * Hwnd.cs: Need to call remove to actually remove the key from the
30061           hash table
30062
30063 2006-01-30  Mike Kestner  <mkestner@novell.com>
30064
30065         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
30066
30067 2006-01-30  Jackson Harper  <jackson@ximian.com>
30068
30069         * TreeView.cs:
30070         * TreeNode.cs: Raise events no matter how the treenode is
30071         checked. Patch by Don Edvalson.
30072
30073 2006-01-30  Jackson Harper  <jackson@ximian.com>
30074
30075         * TreeNode.cs: Signature fix.
30076
30077 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
30078
30079         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
30080
30081 2006-01-20  Mike Kestner  <mkestner@novell.com>
30082
30083         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
30084         event forwarding when menus are active.
30085         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
30086         Most of the patch is pdb's with a little rework.
30087
30088 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
30089
30090         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
30091           Removed GetMenuDC and ReleaseMenuDC methods; replaced
30092           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
30093         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
30094         * InternalWindowManager.cs: Added use of PaintEventStart/End to
30095           handling of WM_NCPAINT message, now passing the PaintEventArgs to
30096           the PaintWindowDecorations method
30097         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
30098         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
30099         * MenuAPI.cs: Made tracker window invisible
30100         * XplatUIWin32.cs:
30101           - Removed GetMenuDC and ReleaseMenuDC methods
30102           - Implemented the client=false path for PaintEventStart and
30103             PaintEventEnd
30104
30105 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
30106
30107         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
30108         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
30109           styles
30110         * Form.cs: 
30111           - MaximizeBox, MinimizeBox: Recreate the handle when setting
30112             the style
30113           - CreateParams: Reworked the styles to match MS look'n'feel,
30114             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
30115             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
30116
30117 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
30118
30119         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
30120           window is not mapped, since otherwise every form that's being 
30121           created is considered minimized, which is wrong.
30122         * Form.cs: Catching the exception and returning our internal value
30123           instead
30124
30125 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
30126
30127         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
30128           SetWindowMinMax() to have means to tell the driver about the minimum,
30129           maximum and maximized state window sizes. (Part of the fix for #76485)
30130         * Form.cs:
30131           - Implemented tracking of minimum and maximum window size, now calling
30132             new SetWindowMinMax() driver method to tell the driver (Part of the
30133             fix for #76485)
30134           - Finished handling of WM_GETMINMAXINFO method, now setting all values
30135             (Completes fix for #76485)
30136           - Calling new SetWindowMinMax driver method when the handle for a 
30137             form is created, to make sure the driver knows about it even if
30138             the values have been set before the window was created
30139           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
30140             to avoid messing up our anchoring calculations (partial fix
30141             for #77355)
30142         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
30143         * XplatUIX11.cs:
30144           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
30145           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
30146             (and presumably other freedesktop.org compliant WMs). Left the
30147             assumption unmapped=minimized, needed for SetVisible to work.
30148           - Now setting the window state when creating windows
30149           - Fixed SetVisible to consider/set the window state when mapping
30150             a Form. We cannot set the state before it's mapped, and we cannot
30151             use Form.WindowState once it's mapped (since it would ask the
30152             driver and get 'normal'. Therefore, we grab the state before
30153             mapping, map, and then set state.
30154           - Implmemented SetWindowMinMax method; Metacity does not seem to
30155             honor the ZoomHints, though.
30156         * XplatUIWin32.cs:
30157           - Removed MINMAXINFO (moved to XplatUIStructs)
30158           - Added SetWindowMinMax stub (on Win32 the only way to set that
30159             information is in response to the WM_GETMINMAXINFO message, which
30160             is handled in Form.cs)
30161           - Added logic to SetVisible to set the proper window state when a 
30162             form is made visible (fixes #75720)
30163
30164 2006-01-26  Jackson Harper  <jackson@ximian.com>
30165
30166         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
30167         same way we handle them with Invoke.
30168
30169 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
30170
30171         * Form.cs:
30172           - Added tracking of window state so CreateParams can return
30173             the appropriate style
30174           - Moved setting of WS_CAPTION style in CreateParams to allow
30175             styles without caption
30176         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
30177           control if the TextBox property is accessed. Fixes #77345
30178         * Control.cs:
30179           - get_Created: now uses is_disposed and is_created to determine
30180             return value (suggested by Jackson)
30181           - CreateHandle: No longer exits if the handle is being recreated
30182           - RecreateHandle: If the handle is not yet created call the 
30183             appropriate method to create either control or handle. If the
30184             control is already created CreateHandle will simply exit instead
30185             of just creating the handle
30186         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
30187           now SendMessage WM_DESTROY directly to the control when DestroyWindow
30188           is called.
30189         * XplatUIX11.cs: 
30190           - When DestroyWindow is called, instead of waiting for the 
30191             DestroyNotification from X11, we directly post it to the WndProc
30192             and immediately dispose the hwnd object.
30193             Same applies to DestroyChildWindows, and this obsoletes the
30194             expose_pending tracking. Contrary to Win32 behaviour we destroy our
30195             child windows before our own, to avoid X11 errors.
30196           - Removed the direct sending of WM_PAINT on UpdateWindow
30197         * XplatUIWin32.cs:
30198           - Reworked DoEvents and GetMessage to allow access to internal queue
30199             even when trying non-blocking access to the queue.  Fixes #77335. 
30200             Based on a patch suggestion by Don Edvalson. The new private
30201             GetMessage can now also be used as a backend for a PeekMessage
30202             frontend version.
30203         * XplatUI.cs: Improved debug output for CreateWindow
30204
30205 2006-01-25  Jackson Harper  <jackson@ximian.com>
30206
30207         * Help.cs: Allow param to be null. Patch by Don Edvalson.
30208
30209 2006-01-24  Jackson Harper  <jackson@ximian.com>
30210
30211         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
30212         when we have a MaxDropItems lower then the selected index.
30213
30214 2006-01-24  Jackson Harper  <jackson@ximian.com>
30215
30216         * Control.cs: Don't allow selection of non visible controls, allow
30217         selection of controls without parents.
30218
30219 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
30220
30221         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
30222         * DataGridDrawingLogic.cs: Add editing row only when is necessary
30223
30224 2006-01-23  Jackson Harper  <jackson@ximian.com>
30225
30226         * UpDownBase.cs: Make the textbox handle all the selection and
30227         tabbing. This fixes tabing to updown controls.
30228
30229 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
30230
30231         * TextBoxBase.cs: fixes exception thown the object was null
30232
30233 2006-01-23  Jackson Harper  <jackson@ximian.com>
30234
30235         * ButtonBase.cs: Just use the base CreateParams. They set
30236         visibility and enabled correctly.
30237         * ComboBox.cs:
30238         * TrackBar.cs:
30239         * MonthCalendar.cs: Lets let the base set as much of the
30240         createparams as possible so we don't have duplicate code all over
30241         the place.
30242
30243 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
30244
30245         * ThemeGtk.cs: Added TrackBar and some experimental code to
30246           get double buffering back
30247
30248 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
30249
30250         * DataGrid.cs: Allows row number set internally higher than the last
30251         when creating a new row. Restores the editing functionality.
30252
30253 2006-01-20  Mike Kestner  <mkestner@novell.com>
30254
30255         * MimeIcon.cs: delay Image creation until the icons are accessed
30256         instead of creating 190 scaled images on GnomeHandler startup.
30257
30258 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
30259
30260         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
30261           first call base before processing the event. Fixes #77279
30262
30263 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
30264
30265         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
30266           that the stride for the GDI bitmap would match the stride of
30267           a DIB or a Cursor.
30268
30269 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
30270
30271         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
30272
30273 2006-01-19  Jackson Harper  <jackson@ximian.com>
30274
30275         * ComboBox.cs: Hookup the text controls keydown event so we get
30276         those when the text control has the focus.
30277
30278 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
30279
30280         * Label.cs: Now using the base events instead of defining new ones;
30281           this allows us to just call the base properties without having to
30282           duplicate all base property logic 
30283
30284 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
30285
30286         * Label.cs: A label by default is not a tabstop (Fixes one of our
30287           failing nunit tests)
30288
30289 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
30290
30291         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
30292         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
30293
30294 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
30295
30296         * Cursor.cs: Reimplemented creating cursor bitmaps without using
30297           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
30298           This fixes #77218
30299         * XplatUIWin32.cs: 
30300           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
30301             constructor creates images that can't be saved. Part of the fix
30302             for #76103
30303           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
30304           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
30305             bug fix for handling window state in forms properly)
30306
30307 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
30308
30309         * ThemeGtk.cs: Simplify ScrollBar drawing
30310
30311 2006-01-18  Jackson Harper  <jackson@ximian.com>
30312
30313         * Splitter.cs: Set the default dock style for the splitter control
30314         in the constructor.
30315
30316 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
30317
30318         * ThemeGtk.cs: Corrected StateType and ShadowType for
30319           gtk_paint_box
30320
30321 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
30322
30323         * Control.cs: Make use of Theme.DoubleBufferingSupported
30324         * ThemeGtk.cs:
30325           - Added drawing for flat style buttons
30326           - Added ScrollBar drawing
30327
30328 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
30329
30330         * ThemeClearlooks.cs: Removed some unneeded code.
30331         * ThemeGtk.cs: First part of ThemeGtk enhancements.
30332
30333 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
30334
30335         * LinkLabel.cs: We need to update the hover drawing when
30336           leaving the control as well.
30337
30338 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
30339
30340         * DataGrid.cs: Clicking on non empty areas in the columns
30341            area was giving an exception
30342
30343 2006-01-17  Jackson Harper  <jackson@ximian.com>
30344
30345         * ThemeWin32Classic.cs:
30346         * ListView.cs: Do not draw/clip the headers when the header style
30347         is None.
30348
30349 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
30350
30351         * DataGrid.cs: Fixes 77260
30352         
30353 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
30354
30355         * DataGrid.cs: Clicking on a column on a empty grid was giving
30356           an exception
30357
30358 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
30359
30360         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
30361           or any keypress will crash the grid.
30362
30363 2006-01-17  Mike Kestner  <mkestner@novell.com>
30364
30365         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
30366         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
30367         invisible/previously-visible items.
30368         [Fixes #76909]
30369
30370 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
30371
30372         * ThemeClearlooks.cs:
30373         - Added CL_Draw_Button method; now other theme controls that are 
30374           not derived from button or do not have a button can draw buttons
30375           too
30376         - Updated ComboBox drawing
30377         - Beautified RadioButton drawing
30378         - Corrected drawing of bottom and left tabs
30379         - Beautified DateTimePicker and MonthCalendar
30380         - Added CPDrawButton and CPDrawRadioButton
30381
30382 2006-01-16  Jackson Harper  <jackson@ximian.com>
30383
30384         * ComboBox.cs: Set the initial value of the scrollbar to the
30385         current index. Reduce the numbers of refreshs and IndexOfs called.
30386
30387 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
30388
30389         * FileDialog.cs: When the file listview is focused hitting the
30390           backspace key moves the fileview to the parent directory
30391
30392 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
30393
30394         * Form.cs: 
30395           - Added RecreateHandle call when changing taskbar visibility to 
30396             trigger reparenting in Win32 driver (Fixes #75719)
30397           - If a window has minimize or maximize buttons, it cannot have
30398             a help button
30399         * XplatUIWin32.cs:
30400           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
30401             the toplevel form with FosterParent (A toolwindow not on the
30402             taskbar) (Fixes #75719)
30403           - Made FosterParent a toolwindow
30404
30405 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
30406
30407         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
30408
30409 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
30410
30411         * ToolTip.cs: If SetToolTip is called from a control and the mouse
30412           is currently over that control, make sure that tooltip_window.Text
30413           gets updated
30414
30415 2006-01-13  Mike Kestner  <mkestner@novell.com>
30416
30417         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
30418
30419 2006-01-13  Jackson Harper  <jackson@ximian.com>
30420
30421         * TreeView.cs: On MS GetNodeAt never actually factors in the X
30422         value passed.  Also redraw the selected node when we recieve
30423         focus, so tabbing between trees works correctly.
30424
30425 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
30426
30427         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
30428           ~/.gconf/%gconf-tree.xml, so use
30429           .gconf/desktop/gnome/interface/%gconf.xml
30430
30431 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
30432
30433         * TextControl.cs: Draw text in gray if control is disabled
30434
30435 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
30436
30437         * TreeView.cs: Draw the focus rectangle outside the highlight, to
30438           make sure it's always visible. Fixes #76680.
30439
30440 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
30441
30442         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
30443
30444 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
30445
30446         * PageSetupDialog.cs: Added.
30447         * PrintDialog.cs: Attributes.
30448         * PrintPreviewControl.cs: Updates.
30449         * PrintPreviewDialog.cs: Updates.
30450         
30451 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
30452
30453         * Control.cs: Undid my selection check fix, since it's not needed
30454         * TextBoxBase.cs:
30455           - Now considering the presence of hscroll/vscroll when sizing
30456             vscroll/hscroll respectively. Fixed bug #77077
30457           - Added Left/Up/Down/Right to IsInputKey list to prevent
30458             ContainerControl from stealing them. This fixes what I broke
30459             with my last checkin.
30460
30461 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
30462
30463         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
30464           I finally understand how the property can be set without a setter :-)
30465
30466 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
30467
30468         * Application.cs:
30469           - Switched RunLoop to use static Message.Create to create a 
30470             Message object
30471           - Added PreProcessMessage call in runloop for keyboard events; this
30472             is part of the fix for #77219, I overlooked this originally in the
30473             MSDN doc for PreProcessMessage
30474         * Control.cs:
30475           - Removed call to PreProcessMessage from handling of keyboard 
30476             messages; it's supposed to be done in the message pump
30477           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
30478             per MSDN documentation.
30479           - IsInputChar: All chars are input chars by default; removed the 
30480             parent calling chain, MS does not document that
30481           - PreProcessMessage: If IsInputChar is true, we want to return false
30482             to allow dispatching of the message
30483           - When selecting the next control, now also check that we're not
30484             selecting ourselves again and therefore return a false positive.
30485         * TextBoxBase.cs:
30486           - Tried to match return values for IsInputKey and ProcessDialogKey
30487             to what MS returns; moved processing of our special keys outside
30488             ProcessDialogKey since MS does not seem to return true on those.
30489           - Moved code that previously was in ProcessDialogKey into new private
30490             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
30491           - Reworked handling of WM_CHAR to not have to duplicate code from
30492             Control.cs anymore, instead we simply call down to base.
30493            
30494 2006-01-12  Jackson Harper  <jackson@ximian.com>
30495
30496         * ComboBox.cs: We always need to refresh the text area when
30497         EndUpdate is called. Fixes the combobox in the file dialog.
30498         * Control.cs: Don't create the creator_thread until the controls
30499         handle is created.  Also in InvokeRequired we check if the
30500         creator_thread is null. This gives the effect of InvokeRequired
30501         returning true if the controls handle is not created yet, and
30502         matches MS.
30503
30504 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
30505
30506         * XplatUI.cs:
30507           - Added StartLoop() driver method. This is used to allow drivers to
30508             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
30509             loop for a particular thread
30510           - Added EndLoop() driver method. This is called once the message
30511             pump for the thread is shut down
30512           - Added SupportsTransparency method to allow the driver to indicate
30513             opacity support for windows
30514         * Form.cs:
30515           - Removed TODO attribute, completed AllowTransparency property
30516           - Added documented logic to Opacity
30517         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
30518           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
30519           versions of CompatibleTextRendering
30520         * X11Structs.cs: Added opacity atom to our atom enumeration
30521         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
30522           of a form might be set before it's reparented by the WM, and we need
30523           the opacity value without calling up to Form)
30524         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
30525           SupportsTransparency() driver methods
30526         * Application.cs: Now calling StartLoop and EndLoop driver methods
30527         * XplatUIX11.cs:
30528           - Added opacity atom registration
30529           - Added StartLoop()/EndLoop() methods. They're empty right now but
30530             will need to get implemented when we switch to a per-thread queue
30531           - Implemented SupportsTransparency() method
30532           - Implemented SetWindowTransparency() method
30533           - Added support for setting the opacity value when a window is
30534             reparented (since the opacity needs to be set on the WM frame)
30535         * XplatUIOSX.cs, XplatUIWin32.cs:
30536           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
30537
30538 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
30539
30540         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
30541
30542 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
30543
30544         * FileDialog.cs: Added ToolTip for MWFFileView
30545         * MimeIcon.cs: Rewrote GnomeHandler.
30546           - Get currently used gnome icon theme from
30547             ($HOME)/.gconf/%gconf-tree.xml
30548           - Make use of inherited icon themes
30549           - Support SVG icon themes like Tango via librsvg
30550
30551 2006-01-12  Miguel de Icaza  <miguel@novell.com>
30552
30553         Revert's Jackson's revert which broke 2.0 builds.   Fix both
30554         builds. 
30555         
30556         * Application.cs: Move the use_compatible_text_rendering outside
30557         the NET_2_0 define.  If we ever need to use the
30558         use_compatible_text_rendering on the individual controls they will
30559         access the variable from the common shared code paths.
30560
30561 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
30562
30563         * XplatUI.cs:
30564           - Added more granular debug options
30565           - Added method to print both window text and id
30566           - Switched debug output to use new Window() debug method
30567           - Added IsEnabled() driver method
30568           - Added EnableWindow() driver method
30569         * Form.cs:
30570           - Removed end_modal; no longer needed, new loop handles termination
30571             via 'closing' variable
30572           - If form is modal, setting DialogResult will now initiate loop
30573             termination via 'closing' variable
30574           - Added support for is_enabled/WS_DISABLED to CreateParams
30575           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
30576             does all the work
30577           - Removed code that's now in RunLoop from ShowDialog()
30578           - Added various documented sanity checks to ShowDialog()
30579           - Added handling of WM_DESTROY message; we set 'closing' on getting
30580             the message to indicate the message pump to terminate
30581           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
30582             send by the Application.ExitThread method. (We send the message
30583             to destroy the window after all other events have been
30584             processed through the queue, instead of destroying the handle 
30585             directly)
30586           - Moved code from Close() method to WM_CLOSE handler; added logic
30587             to only send close-related events if the form is not displayed
30588             modal
30589         * Splitter.cs (..ctor): Fixed typo in resource name
30590         * Control.cs:
30591           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
30592             brush now
30593           - set_Cursor: Now only setting calling into XplatUI if the handle for
30594             the control is already created; this avoids implict handle creation
30595             or crashes if it's not created
30596           - set_Enabled: Now setting the enabled state via the new driver method
30597             instead of just tracking it
30598           - CreateParams: Added logic to set WS_DISABLED based on enabled state
30599           - CreateControl: Reordered event firing and method calls to more
30600             closely fire events in the order MS does. Now setting the
30601             enabled state in the driver when creating the control.
30602           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
30603             match MS order
30604         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
30605           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
30606         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
30607         * Hwnd.cs:
30608           - Added tracking of window enabled state (get_Enabled/set_Enabled)
30609           - Added EnabledHwnd property to easily allow a driver to find the
30610             handle of the first enabled window in the parent chain (this is
30611             used by drivers to pass up input events of disabled windows)
30612         * XplatUIDriver.cs: Added IsEnabled() method
30613         * Application.cs:
30614           - Removed crude and obsolete exiting tracking variable
30615           - Removed internal ModalRun(); replaced by RunLoop()
30616           - Implemented private CloseForms() method to allow closing all 
30617             windows owned by a particular (or all) threads
30618           - Exit() now properly closes all windows without forcing the message
30619             pump to quit
30620           - Removed obsolete InternalExit() method
30621           - Changed Run() methods to use new RunLoop() message pump
30622           - Implemented new RunLoop() method for both modal and non-modal forms
30623         * CommonDialog.cs:
30624           - get_CreateParams: Added setting of WS_DISABLED
30625           - Simplified ShowDialog(); now all the work is done in RunLoop(),
30626             invoked via Form.ShowDialog()
30627         * NativeWindow.cs: We don't remove the window from the collection when
30628           the handle is destroyed; there might still be messages for it in the
30629           queue (mainly the resulting WM_DESTROY); instead it will be removed
30630           when Control calls InvalidateHandle in the WM_DESTROY handler
30631         * XplatUIX11.cs:
30632           - CreateWindow: Added logic to handle the WS_DISABLED window style
30633           - EnableWindow: Implemented based on Hwnd.Enabled
30634           - GetMessage: Reset PostQuitState so the method can be called again
30635           - Implemented support for disabled windows (passing messages to the
30636             first enabled parent) in handling all input messages
30637           - Added optimizations for handling Expose events
30638           - Implemeted new driver method IsEnabled()
30639           - Now always resetting paint pending tracking vars when we start paint
30640           - Re-implemented UpdateWindow via just sending a WM_PAINT message
30641         * XplatUIOSX.cs: Added IsEnabled method stub
30642         * XplatUIWin32.cs: Implemented new IsEnabled() method
30643
30644 2006-01-11  Jackson Harper  <jackson@ximian.com>
30645
30646         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
30647         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
30648         variables a little.
30649         * ColorDialog.cs: Clear out the old form before adding the new
30650         panel.  
30651
30652 2006-01-11  Jackson Harper  <jackson@ximian.com>
30653
30654         * X11Dnd.cs: Make sure to add all the text formats when adding
30655         strings to the data object.
30656         * TreeNodeCollection.cs: When adding to a sorted tree we need to
30657         do some redrawing too.  Also change the UpdateNode to an
30658         UpdateBelow so the newly added node gets painted.
30659         
30660 2006-01-11  Miguel de Icaza  <miguel@novell.com>
30661
30662         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
30663         LinkLabel.cs, PropertyGrid.cs: Implement the
30664         UseCompatibleTextRendering property for 2.x
30665
30666         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
30667
30668 2006-01-11  Jackson Harper  <jackson@ximian.com>
30669
30670         * TreeView.cs: Use the property for setting the selected node so
30671         the correct events get raised.
30672         * TreeNode.cs: Update the tree when the fore/back colours of a
30673         node are set.
30674
30675 2006-01-10  Jackson Harper  <jackson@ximian.com>
30676
30677         * TreeView.cs: Allow setting SelectedNode to null.
30678
30679 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
30680
30681         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
30682
30683 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
30684
30685         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
30686
30687 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
30688
30689         * PrintDialog.cs: Added attributes and set default property values.
30690
30691 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
30692
30693         * PrintControllerWithStatusDialog.cs: 
30694         Added PrintControllerWithStatusDialog.
30695
30696 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
30697
30698         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
30699         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
30700
30701 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
30702
30703         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
30704
30705 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
30706
30707         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
30708         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
30709
30710 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
30711
30712         * MimeIcon.cs: Added internal class SVGUtil.
30713
30714 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
30715
30716         * FileDialog.cs: Don't crash if there are two files with the
30717           same name but different locations.
30718
30719 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
30720
30721         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
30722         dates across multiple month grids. Used to not highlight entire 
30723         month, but does now.
30724         
30725 2006-01-06  Jackson Harper  <jackson@ximian.com>
30726
30727         * MonthCalendar.cs: Removed DoEvents call to prevent a running
30728         message loop. Change timer intervals to numbers that seem more
30729         natural.
30730
30731 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
30732
30733         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
30734           object for location info since screen object is now implemented.
30735
30736 2006-01-05  Jackson Harper  <jackson@ximian.com>
30737
30738         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
30739         * AsyncMethodResult.cs: We no longer use a WeakReference for the
30740         AsyncMethodResult, this is because we ALWAYS want the
30741         ManualResetEvent to get set.
30742         * Control.cs: When disposing use an async invoke to call shutdown
30743         code, so that thigns don't block on the finalizer thread.  Also
30744         check if we even have a message loop before trying to send
30745         messages, if we don't then don't bother sending messages.
30746         - No more weak references for async methods
30747         * XplatUIDriver.cs: No more weak references for async methods.
30748
30749 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
30750
30751         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
30752           returns two FontFamily with the same name
30753
30754 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
30755
30756         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
30757           drawing disabled text. Instead using the ColorGrayText color
30758
30759 2006-01-04  Jackson Harper  <jackson@ximian.com>
30760
30761         * TreeNode.cs: redraw the node when its image index is changed.
30762
30763 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
30764
30765         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
30766           time I checked there are no others like it.
30767
30768 2006-01-04  Jackson Harper  <jackson@ximian.com>
30769
30770         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
30771         this gives the behavoir I was looking for.
30772         * Control.cs: Special case Invoking EventHandlers, this matches MS
30773         and fixes part of bug #76326.
30774
30775 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
30776
30777         * ThemeClearlooks.cs, FileDialog.cs:
30778           - Reflect the latest Theme class changes
30779           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
30780             with DateTime
30781             
30782 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
30783
30784         * Theme.cs: Cache UI resource images and resize them if needed
30785
30786 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
30787
30788         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
30789           is called. This fixes the crash in Nexxia when setting the font
30790           attributes in the chat. [However, RTF needs a look-over to make sure
30791           that all SelectionXXX methods handle the special case that selection
30792           is empty and therefore the change must be applied to all text starting
30793           at the cursor/selection start]
30794
30795 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
30796
30797         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
30798           XplatUIOSX.cs: Added SendMessage and PostMessage methods
30799         * X11Keyboard.cs: Switched to new way of calling PostMessage
30800
30801 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
30802
30803         * Theme.cs: Added theme interface for images to allow the theme to
30804           control what images are used for things like FileDialog, MessageBox
30805           icons, etc.
30806         * MessageBox.cs: Now uses the new Theme icon/image interfaces
30807
30808 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
30809
30810         * FileDialog.cs:
30811           - Removed some dead code
30812           - Opening a recently used file does work now
30813           - Small UI enhancements
30814           - Refactoring
30815
30816 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
30817
30818         * FileDialog.cs: Forgot too add __MonoCS__
30819
30820 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
30821
30822         * FileDialog.cs: We are able to read recently used files now let's
30823           go on and write them.
30824
30825 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
30826
30827         * FileDialog.cs: Breathe some life into "last open"/"recently used"
30828           button
30829         * MimeIcon.cs: Do a check for the top level media type also
30830
30831 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
30832
30833         * ThemeClearlooks.cs:
30834           - Added CPDrawStringDisabled
30835           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
30836             some chars if the text doesn't fit into text_rect
30837           - DrawListViewItem: If View = View.LargeIcon center the image;
30838             rewrote the drawing of ListViewItem.Text if View = 
30839             View.LargeIcon
30840
30841 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
30842
30843         * MimeIcon.cs: Use default KDE icon theme if there is no
30844           "48x48" directory for the current icon theme, fixes #77114
30845         * Mime.cs: Disable not working and actually not used code. 
30846         * ThemeWin32Classic.cs:
30847           - Replace "new SolidBrush" in GetControlBackBrush and
30848             GetControlForeBrush with ResPool.GetSolidBrush
30849           - Changed DrawListViewItem from private to protected virtual
30850         * FileDialog.cs:
30851           - Added form.MaximizeBox = true
30852           - Don't throw an exception if there is a broken symbolic link
30853
30854 2005-12-23  Jackson Harper  <jackson@ximian.com>
30855
30856         * TabControl.cs: Give the panels focus, keyboard navigation is
30857         fixed so this works correctly now.
30858         - We need these key events also.
30859         * ToolBar.cs: Remove some of the poor mans double buffering.
30860         
30861 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
30862
30863         * ComboBox.cs: The internal TextBox now returns the focus.
30864
30865 2005-12-23  Jackson Harper  <jackson@ximian.com>
30866
30867         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
30868
30869 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
30870
30871         * Control.cs: Removed debug code
30872         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
30873           implicit children
30874
30875 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
30876
30877         * Control.cs: When creating the control, update the Z-order after
30878           all it's children are created, too. (Fixes nexxia not showing
30879           picturebox bug)
30880
30881 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
30882
30883         * Control.cs: Do not update the anchoring distances if layout is
30884           suspended, instead do it once layout is resumed
30885
30886 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
30887
30888         * Control.cs: 
30889           - After many hours of debugging, for both Jackson and
30890             myself, it turns out that it helps to set the parent of a control
30891             if you want to actually see it onscreen. In the spirit of that
30892             discovery, we're now setting the parent of the control and
30893             it's children when the control's handle is created. This fix
30894             will make Lutz Roeder's Reflector run happily. 
30895           - now just creating the handle instead of the whole control when
30896             getting a graphics context for the control.
30897
30898 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
30899
30900         * ScrollableControl.cs: When calculating the canvas, don't consider
30901           the scrollbar widths. Instead, predict if horizontal scrollbar
30902           will affect canvas when deciding on vertical display and vice versa.
30903
30904 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
30905
30906         * RichTextBox.cs: Set default RTF font for documents that don't
30907           have a font table (Fixes #77076)
30908
30909 2005-12-22  Jackson Harper  <jackson@ximian.com>
30910
30911         * TextBoxBase.cs: It's difficult to do, but you can have an empty
30912         clipboard. This prevents a NullRef in that case.
30913         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
30914         clipboard. PRIMARY is for the currently selected text only. (We
30915         should implement PRIMARY at some point.
30916
30917 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
30918
30919         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
30920           a Unicode function with a structure that was defined in Ansi way.
30921           This fixes #76942.
30922
30923 2005-12-21  Jackson Harper  <jackson@ximian.com>
30924
30925         * StatusBar.cs: Statusbar handles its fore/back colours on it's
30926         on. Because thats how it rolls. (and this avoids it using ambient
30927         colours).
30928         * ThemeWin32Classic.cs: Use the proper back color for filling.
30929         * Menu.cs: Use the system menu bar color for drawing menu
30930         bars. Using the window back color will bring ambient colours into
30931         the picture.
30932
30933 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
30934
30935         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
30936           Bitmaps were created and not disposed.
30937
30938 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
30939
30940         * Control.cs (CreateControl): Don't do anything if the control is
30941           already created, otherwise we'd fire the OnCreated event more than
30942           once
30943
30944 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
30945
30946         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
30947           will always match. Instead return -1. Fixes #76464.
30948
30949 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
30950
30951         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
30952           neither the beginning nor the end of the line (Fixes bug #76479)
30953
30954 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
30955
30956         * Control.cs:
30957           - ControlNativeWindow.ControlFromHandle(): Now handling situation
30958             where handle is invalid
30959           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
30960             instead of slower linear search
30961         * NativeWindow.cs: Don't remove the window from the hashtable until
30962           after the driver has destroyed it (since the driver might use
30963           Control.FromHandle to lookup the control object
30964         * Hwnd.cs: Added DestroyPending property to track if a window is 
30965           already destroyed as far as the driver is concerned and only hasn't
30966           yet notified the control
30967         * XplatUIX11.cs:
30968           - Activate(): Check if the window is still valid before using the 
30969             handle
30970           - Implemented DestroyChildWindow() method to mark child windows as
30971             destroyed when a window is destroyed. This prevents situations 
30972             where we might call an X method based on queued events for a
30973             window that already has been destroyed but we haven't yet pulled
30974             the destroy method from the queue.
30975           - Added a call to the new DestroyChildWindow() method to the drivers
30976             DestroyWindow code. Also now marking the destroyed window itself
30977             as pending
30978
30979 2005-12-20  Jackson Harper  <jackson@ximian.com>
30980
30981         * StatusBar.cs:
30982         * StatusBarPanel.cs: Don't calculate panel sizes on draw
30983         anymore. Just do them when needed, also track the rects of panels
30984         so that we can optimize refreshing more in the future.
30985
30986 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
30987
30988         * ColorDialog.cs: Fixed focus drawing in small color controls
30989
30990 2005-12-19  Jackson Harper  <jackson@ximian.com>
30991
30992         * InternalWindowManager.cs:
30993         * MdiWindowManager.cs: Cleanup some coordinate system changes so
30994         moving windows works properly.
30995
30996 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
30997
30998         * Control.cs: 
30999           - Removed call to InitLayout() from SetBoundsCore(); doc says
31000             it's only called when a control is added to a container
31001           - Split InitLayout logic, moved to separate UpdateDistances() method
31002             since we need to perform those calculations more often than just
31003             when adding the control to a container. (Needed to fix #77022)
31004           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
31005           - Reduced the OnBindingContextChanged events count, don't send them
31006             unless the control is created, we still aren't totally matching
31007             MS, but I can't quite figure out some of their rules
31008
31009 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
31010
31011         * ThemeClearlooks.cs: Corrected distance between ProgressBar
31012           stripes
31013
31014 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
31015
31016         * ThemeClearlooks.cs:
31017           - Updated ProgressBar drawing
31018           - Corrected drawing of ScrollBars and scroll buttons
31019           - Some temporary fixes for minor pixel artefacts
31020
31021 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
31022
31023         * Control.cs:
31024           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
31025             cause events to be sent in the same order as MS does.
31026           - Added ChangeParent() method to trigger various OnXXXChanged events
31027             that need to be fired when a parent changes (This is a reworking
31028             of the patch from r54254, with the X11 errors fixed)
31029           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
31030             since on MS we get OnLayoutChanged events when calling Clear()
31031           - Changed Enabled property to consider parent state as well, if a
31032             parent is not enabled, the control will not be either
31033           - Changed Parent property to simply call Controls.Add() since that
31034             now does all the work required, this way we avoid code duplication
31035           - Threw in a few OnBindingsContextChanged calls to try and match
31036             when MS sends them. We seem to send a few too many, though.
31037           - Added call to CreateControl when adding the control to a parent.
31038             We were never calling CreateControl. Still needs some work, in
31039             some places we treat HandleCreated and ControlCreated as equal, 
31040             which is wrong
31041           - Removed obsolete commented out code from UpdateZOrder()
31042
31043 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
31044
31045         * ThemeClearlooks.cs: Updated TrackBar drawing.
31046
31047 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
31048
31049         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
31050
31051 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
31052
31053         * FileDialog.cs: Add the Help button and the open readonly
31054           checkbox only if needed
31055
31056 2005-12-16  Jackson Harper  <jackson@ximian.com>
31057
31058         * Control.cs: Make sure we have an active menu before trying to
31059         process commands on it. Prevents menu-less forms from crashing
31060         when Alt is pressed.
31061         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
31062         Dieter Bremes.
31063         * RichTextBox.cs: Expand statement to help out gmcs and fix the
31064         2.0 build.
31065
31066 2005-12-16  Jackson Harper  <jackson@ximian.com>
31067
31068         * InternalWindowManager.cs: Don't translate tool windows screen
31069         coordinates. This fixes windows 'bouncing' around when being moved.
31070
31071 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
31072
31073         * TextBoxBase.cs:
31074           - MaxLength now treats 2^31-1 equal to unlimited length (this is
31075             not quite MS compatible, MS uses that number only for single line
31076             and 2^32-1 for multi-line, but I figure it won't hurt keeping
31077             the limit at 2GB)
31078           - Now enforcing the MaxLength limit when entering characters
31079           - Added argument to internal Paste() method to track if it's called
31080             from programatically or via keyboard, since keyboard driven pastes
31081             need to enforce max-length
31082           - Added logic to Paste to only paste as many chars as MaxLength 
31083             allows
31084         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
31085         * TextControl.cs:
31086           - Added Length property to return number of characters in document
31087           - Added private CharCount property which only tracks actual chars
31088             in the document (no linefeeds) and fires event when CharCount
31089             changes
31090           - Added tracking of character count to all methods that alter it
31091           - Added LengthChanged event to allow applications to subscribe
31092             to any changes to the document
31093
31094 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
31095
31096         * TextBox.cs: 
31097           - Removed local password_char field (moved to TextBoxBase)
31098           - Now setting the document's password var when password is
31099             set
31100         * TextBoxBase.cs:
31101           - Added password_char field (needed here so MultiLine can
31102             access it)
31103           - Added logic to MultiLine property setter to set the document's
31104             variable when password display is allowed
31105           - Removed debug code and made some debug code conditional
31106         * TextControl.cs:
31107           - Added RecalculatePasswordLine() method to handle special password
31108             char only lines
31109           - Added PasswordChar property, also added related tracking vars
31110           - Draw() method now uses local text var for grabbing text to draw,
31111             this var is set to line.text unless we're doing password display,
31112             then it is set to the pre-generated all-password-chars line
31113           - Added calling RecalculatePasswordLine() method for password lines
31114
31115 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
31116
31117         * Hwnd.cs: 
31118           - Added Reparented property to allow tracking of Window Manager
31119             reparenting actions (which affect X/Y calculations of toplevel 
31120             windows)
31121           - Made ToString() print window handles in hex
31122         * XplatUIX11.cs:
31123           - AddConfigureNotify(): Now uses reparented state off Hwnd to
31124             determine if X/Y needs offsetting
31125           - AddConfigureNotify(): Fixed offset calculations
31126           - Now adds ReparentNotify messages into the queue
31127           - Now processes ReparentNotify messages and causes a 
31128             WM_WINDOWPOSCHANGED message to be sent upstream if a window
31129             is reparented (as most likely it's X/Y coordinates are changed
31130             due to that)
31131
31132 2005-12-14  Jackson Harper  <jackson@ximian.com>
31133
31134         * XplatUIX11.cs: Tool windows still need to respek focus.
31135
31136 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
31137
31138         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
31139           have a working release
31140
31141 2005-12-13  Jackson Harper  <jackson@ximian.com>
31142
31143         * Form.cs: Update styles after setting the border style regardless
31144         of whether or not the window is using a window manager.
31145
31146 2005-12-13  Jackson Harper  <jackson@ximian.com>
31147
31148         * Form.cs: We now hook into an internal window manager instead of just an
31149         MDI subsystem, this is so we can have properly behaving tool windows.
31150         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
31151         * InternalWindowManager.cs: New internal class that acts as a
31152         window manager for tool windows and as a base for mdi windows.
31153         * MdiWindowManager.cs: New class that acts as a window manager for
31154         mdi windows.
31155
31156 2005-12-12  Jackson Harper  <jackson@ximian.com>
31157
31158         * Control.cs: Updates so we match behavoir for for implicit
31159         controls. Fixes explosions in MDI.
31160
31161 2005-12-12  Jackson Harper  <jackson@ximian.com>
31162
31163         * Control.cs: Implement Invalidate (Region).
31164
31165 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
31166
31167         * Control.cs: 
31168           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
31169             the same events as MS does. MS fires events for each property 
31170             except, for unknown reasons, Cursor, when the control is reparented. 
31171             I can't seem to totally match add/remove since MS also fires some 
31172             VisibleChanged events, which makes no sense. Consolidated the
31173             parenting code into a separate method so it can be called from
31174             both Add and Remove. set_Parent no longer needs any special logic
31175             as it calls the parent's add method which implicitly fires
31176             all events
31177           - Removed some obsolete code and debug output
31178           - Enabled state is inherited from parents, if this is enabled
31179
31180 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
31181
31182         * Form.cs: Removed commented out code
31183
31184 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
31185
31186         * Control.cs:
31187           - Added internal version of Invoke, with additional argument 
31188             indicating if we're calling it from a Dispose() handler. That
31189             way we can avoid BeginInvoke throwing an exception if we're
31190             calling for an already destroyed window.
31191           - Added a dispose argument to BeginInvokeInternal, and made the
31192             check if a valid window handle chain exists conditional on
31193             it not being a dispose call
31194           - Removed code in DestroyHandle to destroy our children. Since we
31195             now handle the WM_DESTROY message we will catch all our children
31196             being destroyed.
31197           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
31198         * Form.cs:
31199           - Added a field to track the application context of the form.
31200           - No need to set closing variable as response to WM_CLOSE, instead
31201             we destroy the window. We also call PostQuitMessage if the form
31202             has an application context (which makes it the main app form,
31203             which, when closed terminates the app)
31204         * XplatUI.cs:
31205           - Dropped Exit() method, it's naming was confusing
31206           - Added PostQuitMessage() which causes GetMessage to return false
31207             once the message queue is empty
31208         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
31209           PostQuitMessage()
31210         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
31211           no longer a valid XplatUI method, but left it in since it's used
31212           internally. Added empty PostQuitMessage() method.
31213         * MenuAPI.cs: Replaced call to Exit() with call to
31214           PostQuitMessage, even though this is probably no longer needed.
31215         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
31216         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
31217         * Application.cs:
31218           - Replaced call to XplatUI.Exit() with PostQuitMessage()
31219           - Removed old debug code that would call XplatUI for exception
31220             display, enabled standard exception handling (Still not enabled
31221             though, until NativeWindow's ExternalExceptionHandler define
31222             is removed
31223         * NativeWindow.cs:
31224           - Added internal method to allow control to update NativeWindow
31225             after a window has been destroyed
31226           - Added handling of already destroyed windows when calling i
31227             DestroyWindow
31228           - Added removal of handle from list on ReleaseHandle
31229         * XplatUIX11.cs:
31230           - Dropped GetMessageResult var and related code
31231           - Added PostQuitState to field to track if PostQuitMessage has been
31232             called
31233           - Dropped Exit() method
31234           - Added PostQuitMessage() method
31235           - GetMessage now will return false if PostQuitState is set and no
31236             more messages are in the queue.
31237           - Expose handler will no longer generate WM_PAINT messages if we are
31238             in PostQuitState since it's very likely any windows have already
31239             been destroyed, and since Hwnd won't get updated until we have
31240             processed the DestroyNotify we'd be causing X errors.
31241         
31242 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
31243
31244         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
31245           Thanks to Mike for pointing out the err of my ways.
31246
31247 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
31248
31249         * Control.cs(PreProcessMessage): Moved menu handling back, but
31250           after all other key handling, to match MS (who handles Menu in
31251           DefWndProc)
31252         * Menu.cs (WndProc): Removed my brainfart
31253
31254 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
31255
31256         * Control.cs(PreProcessMessage): Removed special menu handling 
31257         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
31258
31259 2005-12-07  Mike Kestner  <mkestner@novell.com>
31260
31261         * Control.cs : special case SYSKEYUP so that we can adjust keynav
31262         state according in tracker.
31263         * Menu.cs : promote tracker field to base class and provide a tracker
31264         lookup capability.  Add/Remove shortcuts dynamically if the top menu
31265         has a tracker. Unparent items that are removed from the collection.
31266         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
31267         * Theme*.cs: add always_show_hotkeys field to support configurability
31268         of mnemonic display.  win32 doesn't show mnemonics until Alt is
31269         pressed.
31270
31271 2005-12-07  Jackson Harper  <jackson@ximian.com>
31272
31273         * MdiChildContext.cs: Use Control.ResetCursor.
31274         * Control.cs: ResetCursor needs to set the property so that the
31275         correct XplatUI call gets made.
31276
31277 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
31278
31279         * Control.cs: More fixes to make our key events match MS. We
31280           were not setting the modifier state on KeyData, and we were
31281           not generating any events when Alt was pressed with a key
31282           since handling of WM_SYSxxx was missing for the OnKey methods.
31283
31284 2005-12-07  Jackson Harper  <jackson@ximian.com>
31285
31286         * MdiChildContext.cs: reenable the sizing code.
31287         - When the mouse leaves a window reset its cursor.
31288
31289 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
31290
31291         * ThemeClearlooks.cs: Reflect latest Hwnd changes
31292
31293 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
31294
31295         * Hwnd.cs: Now using the theme 3d bordersize to calculate
31296           widths of Fixed3D borders
31297
31298 2005-12-07  Jackson Harper  <jackson@ximian.com>
31299
31300         * MdiClient.cs: Fix warnings. Earn Mike's love.
31301
31302 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
31303
31304         * ThemeClearlooks.cs:
31305           - Adjusted mouse over button color
31306           - Added first parts of CheckBox drawing
31307           - Added correct color for selected text background
31308           - Fixed ComboBox drawing
31309           - Added CPDrawBorder3D and CPDrawBorder
31310
31311 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
31312
31313         * XplatUIX11.cs: Added call to XBell for AudibleAlert
31314
31315 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
31316
31317         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
31318           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
31319           alert users via sound. We could add an enum arg with different
31320           types of alerts in the future
31321
31322 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
31323
31324         * Control.cs: Fix behaviour problems pointed out by Mike
31325
31326 2005-12-05  Mike Kestner  <mkestner@novell.com>
31327
31328         * StatusBarPanel.cs: add Invalidate method and hook it into all the
31329         prop setters.  Calls parent.Refresh for now, but could be maybe be
31330         optimized with an internal method on StatusBar at some point.
31331         [Fixes #76513]
31332
31333 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
31334
31335         * RichTextBox.cs: Implemented get_SelectionColor
31336
31337 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
31338
31339         * ThemeClearlooks.cs:
31340           - Removed dead code
31341           - Draw black button border only if button is Form.AcceptButton
31342           - Draw correct button color for pressed RadioButton if the mouse 
31343             has entered the button
31344           - Updated ProgressBar drawing!
31345           - Updated CPDrawSizeGrip drawing
31346           - Updated StatusBarPanel drawing
31347
31348 2005-12-05  Mike Kestner  <mkestner@novell.com>
31349
31350         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
31351         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
31352
31353 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
31354
31355         * ThemeClearlooks.cs: Initial check-in, activate with
31356           export MONO_THEME=clearlooks
31357         * ThemeEngine.cs: Added ThemeClearlooks
31358
31359 2005-12-03  Mike Kestner  <mkestner@novell.com>
31360
31361         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
31362         [Fixes #76897]
31363
31364 2005-12-02  Jackson Harper  <jackson@ximian.com>
31365
31366         * Form.cs: If the child form has no menu the default main menu is
31367         used as the active menu.
31368
31369 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
31370
31371         * ListBox.cs: Check if any items exist before trying to resolve 
31372           coordinates into items
31373
31374 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
31375
31376         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
31377           as the second color for the background hatch
31378
31379 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
31380
31381         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
31382         * RichTextBox.cs: FormatText position arguments are 1-based, now making
31383           sure that what we pass to FormatText is always 1-based. Fixes #76885
31384
31385 2005-11-29  Miguel de Icaza  <miguel@novell.com>
31386
31387         * NumericUpDown.cs (EndInit): When we are done initializing,
31388         reflect any updates on the UI.
31389
31390 2005-12-02  Jackson Harper  <jackson@ximian.com>
31391
31392         * ImplicitHScrollBar.cs:
31393         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
31394         their container controls.
31395         * TreeView.cs: Use the new implicit scrollbars.
31396
31397 2005-12-02  Jackson Harper  <jackson@ximian.com>
31398
31399         * TreeView.cs: Make top_node internal so the TreeNodeCollections
31400         can play with it.
31401         * TreeNodeCollection.cs: If we remove the topnode we need to
31402         update topnode to the next node in line.
31403         - When clearing nodes go through the same process as removing
31404         them, so they get depareneted and checked if they are top node.
31405
31406 2005-12-01  Jackson Harper  <jackson@ximian.com>
31407
31408         * TreeView.cs: When imagelists are used the image area is
31409         selectable as well as the text.
31410         - If there are no selected nodes select the first one.
31411         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
31412         so don't do it more then we need to.
31413
31414 2005-12-01  Jackson Harper  <jackson@ximian.com>
31415
31416         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
31417         that arrows can be scaled.
31418
31419 2005-12-01  Jackson Harper  <jackson@ximian.com>
31420
31421         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
31422         fail. Patch by Dieter Bremes
31423
31424 2005-11-30  Jackson Harper  <jackson@ximian.com>
31425
31426         * Form.cs: Property is 2.0 only
31427         * PrintDialog.cs: Signature fix.
31428
31429 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
31430
31431         * TextControl.cs: 
31432           - No longer artificially moves text 2 pixels down (now that we have
31433             borders this is no longer needed)
31434           - Added calcs for left, hanging and right indent
31435
31436 2005-11-23  Mike Kestner  <mkestner@novell.com>
31437
31438         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
31439
31440 2005-11-30  Jackson Harper  <jackson@ximian.com>
31441
31442         * MdiChildContext.cs: Set the cloned menus forms, as these don't
31443         get cloned as part of CloneMenu ().
31444         * Menu.cs: Make sure the parent of the items get set correctly
31445         when they are added.  And the owners are notified of the changes.
31446         * Form.cs: Create an ActiveMenu property, so that when MDI is used
31447         we can change the menu being displayed/handled by the form without
31448         changing the menu assosciated with the form.
31449         - Don't let Mdi children draw/handle menus.
31450         
31451 2005-11-30  Jackson Harper  <jackson@ximian.com>
31452
31453         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
31454         a MenuChanged event. Just to make the API a little more
31455         consistent.
31456         * MainMenu.cs:
31457         * MenuItem.cs: Use the new OnMenuChanged
31458         * MdiChildContext.cs: Handle menu merging.
31459         * Form.cs: Implement MergedMenu.
31460         
31461 2005-11-30  Jackson Harper  <jackson@ximian.com>
31462
31463         * Menu.cs: We were misusing Add. Add goes behind the specified
31464         index according to the docs, and does not replace the specified
31465         index. So I added an Insert method.
31466
31467 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
31468
31469         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
31470           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
31471           is for Jackson
31472         * RichTextBox.cs: Added calls to base for DnD events
31473
31474 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
31475
31476         * TextControl.cs:
31477           - Fixed drag-selection related crash; style fixes
31478           - Implemented undo class
31479             o Implemented method to capture document state for specified
31480               range in document tree
31481             o Implemented method to restore captured document state
31482             o Implemented cursor tracking
31483             o Implemented basic undo stack
31484           - Added undo cursor tracking to methods altering cursor location
31485           - Added undo tracking to selection deletion (still missing
31486             other text-altering hookups)
31487         * RichTextBox.cs:
31488           - Added SelectionLength property
31489           - Implemented CanPaste()
31490           - Implemented Paste()
31491           - Added missing protected methods
31492           - Fixed RTF->Document conversion; now uses font index 0 and color 
31493             index 0 as the default font for the parsed text
31494           - Fixed RTF<->Document font size translation
31495           - Fixed RTF generation, now properly handles cross-tag boundaries
31496             for single line selection
31497           - No longer always appends blank line to generated RTF
31498           - Removed TODOs
31499           - Added missing attributes
31500           - Hooked up undo-related methods
31501         * TextBoxBase.cs:
31502           - Implemented Copy()
31503           - Implemented Paste()
31504           - Implemented Cut()
31505           - Fixed caret mis-behaviour on backspace across line-boundaries
31506
31507 2005-11-29  Jackson Harper  <jackson@ximian.com>
31508
31509         * MdiClient.cs: Add a method for activating mdi children. Very
31510         basic right now. I imagine someday it might need more girth.
31511         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
31512         children windows names are added to the menu item.
31513         * ThemeWin32Classic.cs: Draw the arrow if the item is an
31514         mdilist. This happens regardless of whether or not there are any
31515         mdi windows to see in the list, and according to my tests happens
31516         before the items are even added. Also happens if there isn't even
31517         an mdi client to get windows from.
31518
31519 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
31520
31521         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
31522         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
31523
31524 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
31525
31526         * DataGridTableStyle.cs:
31527           - Create always the styles for the missing columns even if they are
31528             provided by the user (not default table style)
31529         * DataGrid.cs:
31530           - Fixes bug 76770
31531           - Fixes SetDataBinding (always re-attach source)
31532           - Fixes SetNewDataSource (only clear styles if they are not for 
31533             this source)
31534          -  Expands OnTableStylesCollectionChanged to handle style refresh 
31535             and remove properly
31536
31537 2005-11-29  Jackson Harper  <jackson@ximian.com>
31538
31539         * FileDialog.cs: Implement missing bits, remove some dead
31540         code.
31541         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
31542         creation of the panel so that the options set on the dialog are
31543         seen when the panel is created.
31544         * TreeView.cs: raise a click when items are clicked.
31545         
31546 2005-11-29  Jackson Harper  <jackson@ximian.com>
31547
31548         * MdiClient.cs: Pass some signature methods through to base.
31549
31550 2005-11-28  Jackson Harper  <jackson@ximian.com>
31551
31552         * ListView.cs: Raise the click event when items are clicked.
31553
31554 2005-11-28  Jackson Harper  <jackson@ximian.com>
31555
31556         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
31557         a nullref.
31558
31559 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
31560
31561         * ThemeNice.cs: - Removed 1 pixel bitmaps
31562           - Use SmoothingMode.AntiAlias where it makes sense
31563             (ScrollButton arrow for example)
31564           - Enhanced Button focus drawing
31565           - Fixed ComboBox drawing (no artefacts anymore, focus
31566             rectangle is back again, reduced size of ComboButton, etc.)
31567           - Fixed RadioButton focus drawing for Appearence.Button
31568           - Slight ScrollButton redesign
31569           - Some LinearGradientBrush size fixes
31570           - GroupBoxes have now rounded edges
31571           - Fixed StatusBar drawing
31572
31573 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
31574
31575         * ThemeNice.cs: - Remove dead code
31576           - use correct background colors for menus, etc.
31577           - Fake pixel drawing with 1 pixel bitmaps
31578
31579 2005-11-24  Jackson Harper  <jackson@ximian.com>
31580
31581         * MdiClient.cs: Size the scrollbars when resizing the window.
31582         - Resize the maximized windows when the client is resized
31583         * Form.cs: Make the child context available
31584         
31585 2005-11-23  Jackson Harper  <jackson@ximian.com>
31586
31587         * MdiChildContext.cs: Don't size windows if they are maximized.
31588
31589 2005-11-23  Mike Kestner  <mkestner@novell.com>
31590
31591         * ContextMenu.cs: use MenuTracker.
31592         * Control.cs: remove menu handle usage.
31593         * Form.cs: remove menu handle usage.
31594         * Hwnd.cs: remove menu handle usage.
31595         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
31596         motion and clicks to the new Tracker handlers.
31597         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
31598         and handle usage.
31599         * MenuAPI.cs: refactored to combine popup and menubar event handling.
31600         Killed the MENU and MENUITEM data types and associated collections
31601         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
31602         MenuTracker class that exposes the leftovers from the old MenuAPI
31603         static methods. Restructured Capture handling so that only one grab is
31604         done for the entire menu hierarchy instead of handing off grabs to
31605         submenus. Tracker now has an invisible control to Capture when active.
31606         * MenuItem.cs: add sizing accessors, kill Create
31607         and handle usage.
31608         * Theme.cs: remove menu handle and MENU(ITEM) usage.
31609         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
31610         MENU(ITEM). remove menu handle usage, use Menu directly.
31611         * XplatUIDriver.cs: remove menu handle usage.
31612         * XplatUIOSX.cs: remove menu handle usage.
31613         * XplatUIWin32.cs: remove menu handle usage.
31614         * XplatUIX11.cs: remove menu handle usage.
31615
31616 2005-11-22  Jackson Harper  <jackson@ximian.com>
31617
31618         * Hwnd.cs: Don't compute the menu size for
31619         DefaultClientRectangle.
31620         - Reenable menu sizes being computed for GetClienRectangle.
31621         * Form.cs: Remove comment of trechery
31622         
31623 2005-11-22  Jackson Harper  <jackson@ximian.com>
31624
31625         * Hwnd.cs: The adjustments for the menu bar are made when it is
31626         attached to the form.
31627
31628 2005-11-19  Jackson Harper  <jackson@ximian.com>
31629
31630         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
31631         (just like on windows).
31632
31633 2005-11-19  Jackson Harper  <jackson@ximian.com>
31634
31635         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
31636         use real buttons anymore because they are in non client area. The
31637         one TODO here is that I need to somehow invalidate a section of
31638         the non client area.
31639
31640 2005-11-18  Jackson Harper  <jackson@ximian.com>
31641
31642         * Control.cs: Put the enum check back in now that MDI doesnt have
31643         to use this to set border styles.
31644         * Form.cs: Only set mdi child windows borders if the handle has
31645         been created.
31646         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
31647         this directly on to the driver.
31648         - Get the move start position before adjusting for the titlebar
31649         height, this fixes the windows "skipping" when they are first
31650         moved.
31651
31652 2005-11-18  Jackson Harper  <jackson@ximian.com>
31653
31654         * XplatUIX11.cs: Just compute the mdi borders separately as they
31655         don't totally match up with normal form borders.
31656
31657 2005-11-18  Jackson Harper  <jackson@ximian.com>
31658
31659         * Control.cs: Set WS_ styles for borders, so that the driver does
31660         not have to retrieve the control instance to figure out what kind
31661         of borders it should have.
31662         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
31663         driver can know its an mdi child easily.
31664         * XplatUIX11.cs: Get the border styles and whether the window is
31665         MDI from the Styles and ExStyles params instead of having to get a
31666         control. This prevents a chicken and egg problem.       
31667
31668 2005-11-18  Jackson Harper  <jackson@ximian.com>
31669
31670         * MdiClient.cs: Fix typo so scrollbars show up correctly.
31671
31672 2005-11-18  Jackson Harper  <jackson@ximian.com>
31673
31674         * MdiClient.cs: Calculate when to add and remove scrollbars
31675         correctly.
31676         * MdiChildContext.cs: Adjust the y position to take the titlebar
31677         into account.
31678         - No height for FormBorderStyle.None
31679
31680 2005-11-18  Jackson Harper  <jackson@ximian.com>
31681
31682         * Control.cs: Allow non enum values to be used for
31683         InternalBorderStyle.  MDI does this to set a special border style.
31684         - New utility methods for converting points to/from client coords
31685         - Add the newly created control to the Controls collection before
31686         updating its style. This way UpdateStyle can walk the control
31687         heirarchy to find the control if needed.
31688         so I don't need to create a new Point object all the time.
31689         * Form.cs: Let MDI windows handle their border styles.
31690         - Set styles on MDI windows so the correct title style is derived.
31691         * MdiChildContext.cs: Move all the painting and window handling
31692         into the non client area.
31693         - Use correct sizing and put correct buttons on frames based on
31694         the FormBorderStyle.
31695         - Notify the mdi client about scrolling
31696         - Need to handle the buttons ourselves now, because they are all
31697         in non client areas and we can't add controls there.
31698         * MdiClient.cs: Halfway to scrolling, this implementation is
31699         somewhat broken though, we need to check to make sure other
31700         windows aren't causing scrolling before removing the bars. Also
31701         the bars need to be drawn on top, maybe I can switch implicit
31702         controls to be on top.
31703         * Hwnd.cs: caption_height and tool_caption_height are now
31704         properties of an hwnd, this way they can be set by the driver
31705         based on the type of window they are.  In X11 the window manager
31706         handles the decorations so caption_height is zero unless its an
31707         MDI window.
31708         - Add 3 pixel borders for MDI windows (0xFFFF).
31709         - Get rid of some code duplication, have DefaultClientRectanle
31710         just call GetClientRectangle.
31711         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
31712         Hwnd now.
31713         - Set border styles differently for mdi windows.
31714         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
31715         Hwnd now.
31716         
31717 2005-11-15  Mike Kestner  <mkestner@novell.com>
31718
31719         * Menu.cs: when adding an item to the collection, if item is already 
31720         parented, remove it from the parent.
31721
31722 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
31723
31724         * X11DesktopColors.cs: Added KDE support
31725
31726 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
31727
31728         * XplatUIWin32.cs: 
31729           - Clipboard methods now can translate Rtf format
31730           - No longer removes clipboard contents whenever a new format is added
31731             to allow placing multiple formats on the clipboard
31732         * Clipboard.cs: Clipboard now supports getting a IDataObject and
31733           will place all formats contained in it onto the clipboard. Also
31734           now cleans the clipboard before placing a new object onto it
31735         * RichTextBox.cs:
31736           - Implemented set_Rtf
31737           - Implemented set_SelectedRtf
31738           - Created InsertRTFFromStream() method to allow single code base
31739             for all properties and methods that insert RTF into document
31740           - Removed debug output
31741         * TextControl.cs:
31742           - Fixed Delete(int) to fix up line numbers
31743           - Fixed ReplaceSelection to combine start and end line
31744           - Fixed serious DeleteChars bug that would leave the document tree
31745             broken
31746           - Improved DumpTree with several logic checks to detect broken
31747             document trees
31748           - Removed debug lines
31749           - Fixed Caret.WordForward/WordBack moving code, now always also 
31750             updates caret.tag (fixes crash when word-selecting across tag
31751             boundaries via keyboard)
31752           - Added Insert() method for inserting multiline text into documents
31753           - Fixed DeleteChars() calculation errors that would cause a broken
31754             tag chain with multiple tag lines
31755           - DeleteChars() no longer crashes on multi-tag lines if not all tags
31756           - Split() no longer moves caret if split is at caret location
31757           - ReplaceSelection() now updates the cursor and re-displays it
31758           - ReplaceSelection() now uses new Insert() method to avoid code
31759             duplication
31760           - FormatText() can now handle formatting partial lines
31761         * TextBoxBase.cs:
31762           - Append now uses new TextControl.Insert() method (this avoids 
31763             duplicate code)
31764           - Implemented Ctrl-X (Cut) (
31765           - Implemented Ctrl-C (Copy)
31766           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
31767             regeneration when pasting text; roundtripping Copy&Paste within
31768             edit control still fails due to some calculation bugs in GenerateRTF)
31769           - The Delete key will now remove the current selection if it is visible
31770         * TextBox.cs: Removed debug lines
31771         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
31772           driver to be initialized and can't therefore be done via a static ctor)
31773
31774 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
31775
31776         * TextControl.cs: Added backend code for finding char arrays and strings
31777         * TextBoxBase.cs:
31778           - Added mouse wheel scroll support
31779           - Added support for VScroll and HScroll events
31780         * RichTextBox.cs:
31781           - Implemented all seven Find() variants
31782           - Implemented GetCharFromPosition()
31783           - Implemented GetCharIndexFromPosition()
31784           - Implemented GetLineFromIndex()
31785           - Implemented GetPositionFromCharIndex();
31786           - Implemented SaveFile for PlainText and UnicodeText
31787           - Fixed set_Font, now setting a new font applies that font to
31788             the whole document
31789           - Implemented generic Document to RTF converter
31790           - Implemented SaveFile for RichText format (still missing unicode
31791             conversion for non-ansi chars)
31792           - Implemented get_Rtf
31793           - Implemented get_SelectedRtf
31794
31795 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
31796
31797         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
31798           to allow any captures to be released before triggering OnClick. This
31799           way a click handler may capture the mouse without interference.
31800         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
31801           This way we send them even though X may not allow a grab (if the window
31802           isn't visible, for example)
31803
31804 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
31805
31806         * DataGridViewRowEventArgs.cs: DataGridView implementation
31807         * DataGridViewElement.cs: DataGridView implementation
31808         * DataGridViewComboBoxCell.cs: DataGridView implementation
31809         * DataGridViewDataErrorContexts.cs: DataGridView implementation
31810         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
31811         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
31812         * ImageLayout.cs: DataGridView implementation
31813         * DataGridViewComboBoxColumn.cs: DataGridView implementation
31814         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
31815         * DataGridViewSelectionMode.cs: DataGridView implementation
31816         * IDataGridViewEditingControl.cs: DataGridView implementation
31817         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
31818         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
31819         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
31820         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
31821         * DataGridViewColumnSortMode.cs: DataGridView implementation
31822         * DataGridView.cs: DataGridView implementation
31823         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
31824         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
31825         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
31826         * Padding.cs: DataGridView implementation
31827         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
31828         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
31829         * DataGridViewRowEventHandler.cs: DataGridView implementation
31830         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
31831         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
31832         * DataGridViewButtonCell.cs: DataGridView implementation
31833         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
31834         * DataGridViewEditMode.cs: DataGridView implementation
31835         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
31836         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
31837         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
31838         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
31839         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
31840         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
31841         * DataGridViewCellEventHandler.cs: DataGridView implementation
31842         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
31843         * DataGridViewCellStyleConverter.cs: DataGridView implementation
31844         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
31845         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
31846         * DataGridViewColumnEventArgs.cs: DataGridView implementation
31847         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
31848         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
31849         * QuestionEventArgs.cs: DataGridView implementation
31850         * IDataGridViewEditingCell.cs: DataGridView implementation
31851         * DataGridViewTriState.cs: DataGridView implementation
31852         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
31853         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
31854         * DataGridViewColumnCollection.cs: DataGridView implementation
31855         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
31856         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
31857         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
31858         * DataGridViewColumn.cs: DataGridView implementation
31859         * DataGridViewCellBorderStyle.cs: DataGridView implementation
31860         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
31861         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
31862         * DataGridViewRow.cs: DataGridView implementation
31863         * DataGridViewImageCellLayout.cs: DataGridView implementation
31864         * DataGridViewImageCell.cs: DataGridView implementation
31865         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
31866         * DataGridViewCheckBoxCell.cs: DataGridView implementation
31867         * DataGridViewHeaderCell.cs: DataGridView implementation
31868         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
31869         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
31870         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
31871         * DataGridViewTextBoxColumn.cs: DataGridView implementation
31872         * QuestionEventHandler.cs: DataGridView implementation
31873         * DataGridViewCellStyleScopes.cs: DataGridView implementation
31874         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
31875         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
31876         * DataGridViewCell.cs: DataGridView implementation
31877         * DataGridViewCellEventArgs.cs: DataGridView implementation
31878         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
31879         * DataGridViewCellStyle.cs: DataGridView implementation
31880         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
31881         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
31882         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
31883         * TextFormatFlags.cs: DataGridView implementation
31884         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
31885         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
31886         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
31887         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
31888         * DataGridViewButtonColumn.cs: DataGridView implementation
31889         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
31890         * HandledMouseEventArgs.cs: DataGridView implementation
31891         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
31892         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
31893         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
31894         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
31895         * DataGridViewRowCollection.cs: DataGridView implementation
31896         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
31897         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
31898         * DataGridViewHitTestType.cs: DataGridView implementation
31899         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
31900         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
31901         * DataGridViewColumnEventHandler.cs: DataGridView implementation
31902         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
31903         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
31904         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
31905         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
31906         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
31907         * DataGridViewContentAlignment.cs: DataGridView implementation
31908         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
31909         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
31910         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
31911         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
31912         * DataGridViewPaintParts.cs: DataGridView implementation
31913         * DataGridViewCellCollection.cs: DataGridView implementation
31914         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
31915         * DataGridViewImageColumn.cs: DataGridView implementation
31916         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
31917         * DataGridViewElementStates.cs: DataGridView implementation
31918         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
31919         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
31920         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
31921         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
31922         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
31923         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
31924         * DataGridViewRowHeaderCell.cs: DataGridView implementation
31925         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
31926         * DataGridViewTextBoxCell.cs: DataGridView implementation
31927         * DataGridViewBand.cs: DataGridView implementation
31928         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
31929         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
31930         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
31931         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
31932         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
31933         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
31934         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
31935         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
31936         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
31937         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
31938         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
31939
31940 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
31941
31942         * ThemeWin32Classic.cs: 
31943           - Draw the outside focus rectangle around buttons
31944           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
31945             doesn't use end caps for every dash of a line anymore. This
31946             workaround ignores the forecolor.
31947
31948 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
31949
31950         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
31951           endian safe.
31952
31953 2005-11-07  Jackson Harper  <jackson@ximian.com>
31954
31955         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
31956
31957 2005-11-07  Jackson Harper  <jackson@ximian.com>
31958
31959         * ScrollableControl.cs: Calculate the maximum and change vars
31960         (more) correctly so that scrollbars appear as a sensible size.
31961
31962 2005-11-04  Jackson Harper  <jackson@ximian.com>
31963
31964         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
31965         collection.
31966         * TreeView.cs: When the tree is sorted null out the top_node so
31967         that it is recalculated.
31968         - Use dotted lines instead of dashed lines to match MS better.
31969
31970 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
31971
31972         * ListView.cs: 
31973           - Implements key search for items. Useful when browsing files with FileDialog
31974           - When changing view mode or when clear the items reset scrollbar positions
31975
31976 2005-11-04  Jackson Harper  <jackson@ximian.com>
31977
31978         * CurrencyManager.cs: Implement the MetaDataChanged event, the
31979         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
31980         as to what the method may do as there is no real way of creating a
31981         derived CurrencyManager and calling the method. 
31982
31983 2005-11-03  Jackson Harper  <jackson@ximian.com>
31984
31985         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
31986         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
31987         method which seems to just be used internally to refresh the tabs.
31988
31989 2005-11-03  Jackson Harper  <jackson@ximian.com>
31990
31991         * TabControl.cs: Implement the remove method. Fix some broken
31992         comments.
31993
31994 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
31995
31996         * DateTimePicker.cs:
31997           - Added missing DateTimePickerAccessibleObject class
31998           - Added missing events
31999           - Added OnFontChanged method
32000         * Form.cs: Added missing attributes
32001         * TreeView.cs: Added missing attributes
32002
32003 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
32004
32005         * GridItemCollection.cs: Fix signatures
32006
32007 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
32008
32009         * XplatUI.cs: Updated build rev/date
32010         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
32011           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
32012         * Application.cs: Trigger context-specific ExitThread events
32013
32014 2005-11-03  Jackson Harper  <jackson@ximian.com>
32015
32016         * Menu.cs:
32017         * MainMenu.cs:
32018         * GridTableStylesCollection.cs:
32019         * Timer.cs:
32020         * TabPage.cs:
32021         * HelpProvider.cs:
32022         * StatusBar.cs:
32023         * MonthCalendar.cs: Signature fixes
32024
32025 2005-11-03  Jackson Harper  <jackson@ximian.com>
32026
32027         * TreeNodeCollection.cs: Remove should not be virtual.
32028         * TreeView.cs: Implement the last of the missing methods.
32029
32030 2005-11-03  Jackson Harper  <jackson@ximian.com>
32031
32032         * TreeNodeConverter.cs: Implement to get off my class-status back.
32033
32034 2005-11-03  Jackson Harper  <jackson@ximian.com>
32035
32036         * TreeView.cs: Hookup the bits for drag and drop.
32037         * TreeNode.cs: Don't cache the tree_view or index anymore, now
32038         that nodes can be moved from tree to tree easily this just causes
32039         all sorts of problems.
32040         * TreeNodeCollection: Don't need to give treenodes an index and
32041         treeview anymore when they are added, these are computed on the
32042         fly. Also make sure to remove a node before its added.
32043
32044 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
32045
32046         * TextControl.cs:
32047           - Added CaretSelection enum
32048           - Added comparison methods to Marker struct, makes selection code
32049             more readable
32050           - Added SelectionStart and SelectionEnd as 'moveable' location for
32051             the CaretDirection enum and handler
32052           - Added selection_prev variable to track optimized invalidation for
32053             word and line selection
32054           - Added SelectionVisible property (returns true if there is a valid 
32055             selection)
32056           - Switched CaretHasFocus to only display the caret if there is no
32057             visible selection
32058           - Avoiding StringBuilder.ToString to retrieve a single char, instead
32059             using the direct character index; should be much faster
32060           - Added various conditional debug statements
32061           - Fixed invalidation calculation for selection ranges
32062           - Added ExpandSelection() method to support word and line selection
32063           - Switched SetSelectionToCaret to use new Marker compare overloads
32064           - Added central IsWordSeparator() method to determine word 
32065             separators/whitespace and FindWordSeparator() to streamline common
32066             usage of IsWordSeparator()
32067         * TextBoxBase.cs:
32068           - Removed unneeded grabbed variable, it was just mirroring
32069             Control.Capture
32070           - No longer firing OnTextChanged event when Text setter is called,
32071             since the base will fire the event for us
32072           - Added handling of Ctrl-Up/Down selection
32073           - Added handling of Shift-Cursorkey selection
32074           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
32075             words
32076           - Added handling of Shift and Ctrl-Shift-Home/End selection
32077           - Removed some debug output
32078           - Added handling for single/double/tripple-click to place caret/
32079             select word/select line respectively (Fixes bug #76031)
32080           - Added support for drag expansion of word/line selection
32081         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
32082           current selection
32083
32084 2005-11-02  Jackson Harper  <jackson@ximian.com>
32085
32086         * X11Dnd.cs: If the drag is going to and from a MWF window just
32087         copy the data instead of sending it out through the X Selection
32088         mechanism.
32089
32090 2005-11-02  Jackson Harper  <jackson@ximian.com>
32091
32092         * X11Dnd.cs:
32093         * XplatUIX11.cs: When in a drag we don't want motion notify
32094         messages to get passed on to the other controls. This prevents
32095         mouse move messages from showing up in the drag source.
32096
32097 2005-11-02  Jackson Harper  <jackson@ximian.com>
32098
32099         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
32100         the correct button is release to end a drag.
32101         * XplatUIX11.cs: Make the button state internal so the drag system
32102         can access it.  Dragging needs to know about all button releases,
32103         not just left button.
32104
32105 2005-11-02  Miguel de Icaza  <miguel@novell.com>
32106
32107         * Form.cs (Icon): If the icon is null, reset the icon to the
32108         default value. 
32109
32110         * Cursor.cs: When writing the AND-mask bitmap do not include the
32111         number of colors, but hardcode those to two (black and white),
32112         fixes the loading of color cursors (Paint Dot Net).
32113
32114         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
32115         turn off autoscaling.
32116
32117         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
32118
32119 2005-11-02  Jackson Harper  <jackson@ximian.com>
32120
32121         * X11Dnd.cs: Make sure to send a status message if the pointer
32122         enters a control that can not accept a drop, otherwise the cursor
32123         isn't updated correctly. Also tried to compress the lines of code
32124         a bit.
32125
32126 2005-11-02  Jackson Harper  <jackson@ximian.com>
32127
32128         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
32129         set actions correctly.  This isn't perfect as XDND and win32 have
32130         some differences on how you allow actions. I'll clear this up by
32131         adding a path for drag from MWF to MWF windows.
32132         * XplatUIX11.cs: Hook into the dnd system.
32133
32134 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
32135
32136         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
32137         previously shown but they are no longer need it. Very obvious when 
32138         browsing files with FileDialog.
32139
32140 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
32141
32142         * Control.cs: We always need to call OnPaintBackground. We pretty much
32143           ignore AllPaintingInWmPaint and always do the painting there, whether 
32144           it's set or not, since we always ignore the WM_ERASEBKGND message 
32145           (which we don't generate on X11). This fixes #76616.
32146         * Panel.cs: Removed unneeded background painting. This happens properly
32147           in Control.cs already
32148
32149 2005-10-31  Mike Kestner  <mkestner@novell.com>
32150
32151         * Menu.cs: Add items to collection before setting their index.
32152         * MenuItem.cs : add range checking with ArgumentException like MS.
32153         [Fixes #76510]
32154
32155 2005-10-31  Jackson Harper  <jackson@ximian.com>
32156
32157         * ListBox.cs: Invalidate if the area is visible at all not just
32158         contained in the visible rect. Fixes unselection of semi visible
32159         items.
32160
32161 2005-10-31  Jackson Harper  <jackson@ximian.com>
32162
32163         * Control.cs: Consistently name the dnd methods. Make them
32164         internal so we can override them to match some MS behavoir
32165         internally.
32166         * Win32DnD.cs: Use the new consistent names.
32167
32168 2005-10-31  Jackson Harper  <jackson@ximian.com>
32169
32170         * TreeView.cs: Don't draw the selected node when we lose focus.
32171
32172 2005-10-31  Jackson Harper  <jackson@ximian.com>
32173
32174         * X11Dnd.cs: We still need to reset the state even though a full
32175         reset isn't being done, otherwise status's still get sent all over
32176         the place.
32177
32178 2005-10-31  Jackson Harper  <jackson@ximian.com>
32179
32180         * Control.cs: Make the dnd_aware flag internal so the dnd
32181         subsystem can check it. Catch exceptions thrown in dnd handlers to
32182         match MS behavoir.
32183         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
32184         * X11Dnd.cs: Handle null data in the converters. Set the XDND
32185         version when sending a XdndEnter. Use the control/hwnd dnd_aware
32186         flags to reduce the number of dnd enters/status's sent.
32187
32188 2005-10-31  Jackson Harper  <jackson@ximian.com>
32189
32190         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
32191
32192 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
32193
32194         * PictureBox.cs: Fixes 76512
32195
32196 2005-10-28  Jackson Harper  <jackson@ximian.com>
32197
32198         * X11Dnd.cs: Early implementation to support winforms being a drag
32199         source for data on X11. Also restructured the converters so they
32200         can go both ways now.
32201         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
32202         
32203 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
32204
32205         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
32206           clipboard requests
32207
32208 2005-10-27  Jackson Harper  <jackson@ximian.com>
32209
32210         * TreeNode.cs: Implement serialization so my DnD examples will work.
32211
32212 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
32213
32214         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
32215           TreeView.cs: Don't dispose objects that are not owned.
32216           
32217 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
32218
32219         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
32220           should retrieve the current cursor and report that, but XplatUI
32221           doesn't (yet) have an interface for that (and I'm not sure I even
32222           can, on X11)
32223         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
32224           until any message loop processing is done (and the WM_SETCURSOR
32225           replaces the cursor to the proper one)
32226         * XplatUIX11.cs: 
32227           - Fixed override behaviour, we can't set the cursor globally on X11, 
32228             just for our windows.
32229           - Invalidating the System.Drawing X11 display handle when we are
32230             shutting down
32231         * Control.cs: Fix to make csc happy
32232
32233 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
32234
32235         * TextBoxBase.cs: 
32236           - get_Text: Add last line (without trailing newline) to returned
32237             value (Fixes 76212)
32238           - get_TextLength: Count last line in returned length
32239           - ToString: Call Text property instead of duplicating code
32240
32241 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
32242
32243         * ImageList.cs: Dispose ImageAttributes objects.
32244
32245 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
32246
32247         * ImageList.cs: Use attribute constructors with less arguments where
32248           possible.
32249
32250 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
32251
32252         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
32253           Use typeof instead of strings when assembly is referenced. Added
32254           some more comments.
32255
32256 2005-10-21  Jackson Harper  <jackson@ximian.com>
32257
32258         * ListView.cs: Raise a double click event. Also tried to somewhat
32259         fix when the selectedindexchanged event is raised. Its still
32260         broken though.
32261
32262 2005-10-21  Jackson Harper  <jackson@ximian.com>
32263
32264         * TreeView.cs: New method to invalidate the plus minus area of a
32265         node without invalidating the whole node (maybe this can be used
32266         in some more places).
32267         * TreeNodeCollection.cs: When adding to an empty node we need to
32268         invalidate its plus minus area so the little block shows up.
32269         
32270 2005-10-21  Jackson Harper  <jackson@ximian.com>
32271
32272         * TreeView.cs: Make sure that when we invalidate a node the bounds
32273         are big enough to cover the selected box and the focus
32274         rectangle. Use a different colour for the lines connecting nodes
32275         so they show up with all themes.
32276
32277 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
32278
32279         * NativeWindow.cs: Don't call anything that could call into the driver,
32280           we might be on a different thread.
32281
32282 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
32283
32284         * Control.cs(Dispose): Since Dispose might run on a different thread,
32285           make sure that we call methods that could call into the driver via
32286           invoke, to avoid thread issues
32287
32288 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
32289
32290         * XplatUI.cs: Removed finalizer
32291         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
32292           not allowing to be called on the finalizer thread.
32293
32294 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
32295
32296         * ImageList.cs:
32297           - Reverted r51889 and r51891.
32298           - Added ImageListItem class that stores unmodified image items and image
32299             properties required to create list images until handle is created.
32300           - Added AddItem and moved image creation logic to AddItemInternal.
32301           - Added CreateHandle method that creates images based on unmodified items.
32302           - Added DestroyHandle that changes state to store unmodified items.
32303           - Add and AddStrip methods no more create handle.
32304           - ReduceColorDepth has no return value.
32305           - Dispose destroys handle.
32306           - Modified other methods to reflect the above changes.
32307           - Implemented key support.
32308           - Added profile 2.0 members and attributes.
32309           - Added private Reset and ShouldSerialize methods that provide the same
32310             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
32311             them as they are private.
32312           - Added some more comments about implementation details.
32313
32314 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
32315
32316         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
32317
32318 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
32319
32320         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
32321
32322 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
32323
32324         * DataGridDrawingLogic.cs: Fixes column hit calcultation
32325         * DataGridColumnStyle.cs: Remove debug message
32326
32327 2005-10-20  Jackson Harper  <jackson@ximian.com>
32328
32329         * TreeView.cs: We can always get input keys regardless of whether
32330         or not editing is enabled. They are used for navigation.
32331
32332 2005-10-20  Jackson Harper  <jackson@ximian.com>
32333
32334         * TreeNode.cs: Use the viewport rect for determining if a node
32335         needs to be moved for visibility. Don't use Begin/End edit. This
32336         calls a full refresh when its done.
32337         * TreeView.cs: New SetBottom works correctly.  Make the viewport
32338         rect property internal so the treenodes can see it. When clicking
32339         on a node we need to ensure that its visible because it might just
32340         be partly visible when clicked.
32341
32342 2005-10-20  Jackson Harper  <jackson@ximian.com>
32343
32344         * TreeNodeCollection.cs: Remove debug code.
32345
32346 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
32347
32348         * Datagrid.cs: Implements column sorting in Datagrid
32349         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
32350
32351 2005-10-20  Jackson Harper  <jackson@ximian.com>
32352
32353         * TreeNodeCollection.cs: Remove items properly. Update the correct
32354         area after removing them.
32355
32356 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
32357
32358         * Datagrid.cs: Should not call base.OnPaintBackground
32359
32360 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
32361
32362         * XplatUIX11.cs (GetMessage):
32363           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
32364             window instead of client window
32365           - Now properly calculates NC_xBUTTONUP message coordinates
32366           - ScreenToMenu now properly calculates it's coordinates of whole 
32367             window, since menus are in the whole window, not in the client
32368             window
32369           - Added WholeToScreen coordinate translation method
32370
32371 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
32372
32373         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
32374           want to return a message, loop back to the beginning of the function
32375           and grab the next real message to process instead.
32376
32377 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
32378
32379         * Splitter.cs: Properly set limits if no filler control is used
32380
32381 2005-10-19  Jackson Harper  <jackson@ximian.com>
32382
32383         * ColorDialog.cs: Don't show the help button if it is not enabled
32384         instead of disabling it (this is what MS does). Don't create the
32385         panel until the dialog is run, otherwise the vars (such as
32386         ShowHelp) are not set yet.
32387
32388 2005-10-19  Jackson Harper  <jackson@ximian.com>
32389
32390         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
32391         are reduced when adding nodes.
32392         * TreeNode.cs:
32393         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
32394         tree.
32395         
32396 2005-10-19  Jackson Harper  <jackson@ximian.com>
32397
32398         * FolderBrowserDialog.cs: End editing our treeview so the window
32399         actually gets refreshed.
32400
32401 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
32402
32403         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
32404           Obsoleted handling of WM_ERASEBKGND, now always draws our background
32405           inside of WM_PAINT
32406
32407 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
32408
32409         * MenuAPI.cs: Returns after Hidding window
32410         * XplatUIX11.cs: Added TODO found while debugging menu issues
32411
32412 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
32413
32414         * XplatUIX11.cs: Do not re-map the whole window when it's size
32415           becomes non-zero unless it's supposed to be actually visible
32416
32417 2005-10-18  Jackson Harper  <jackson@ximian.com>
32418
32419         * TreeView.cs: We don't need to keep a count anymore.
32420         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
32421         use the Grow method.
32422
32423 2005-10-18  Jackson Harper  <jackson@ximian.com>
32424
32425         * TreeNodeCollection.cs: Insert is not supported on arrays, so
32426         implement it manually here.
32427
32428 2005-10-18  Jackson Harper  <jackson@ximian.com>
32429
32430         * ImageList.cs: Dont kill the list when the colour depth is
32431         changed, just change the colour depth of all the images.
32432         - Same goes for setting the image size. Just resize them all
32433         instead of killing the list softly.
32434
32435 2005-10-18  Jackson Harper  <jackson@ximian.com>
32436
32437         * Control.cs: Don't invalidate empty rectangles.
32438
32439 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
32440
32441         * ListViewItem.cs:
32442           - Adds checked item to the Checked/Item lists (where empty before)
32443           - Do not add items to the Selected lists if they are already present
32444         * ListView.cs:
32445           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
32446           - When deleting items make sure that we delete them for the Selected
32447           and Checked list also.
32448
32449 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
32450
32451         * Label.cs: Dispose objects no longer used
32452         * ThemeWin32Classic.cs: Dispose objects no longer used
32453
32454 2005-10-18  Jackson Harper  <jackson@ximian.com>
32455
32456         * TabControl.cs: Don't refresh the whole control when the tabs are
32457         scrolled, we just need to refresh the tab area.
32458
32459 2005-10-17  Jackson Harper  <jackson@ximian.com>
32460
32461         * XplatUIX11.cs: Compress code a little bit. Only calculate the
32462         after handle when we need it.
32463
32464 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
32465
32466         * Control.cs: When the parent size changes, recalculate anchor 
32467           positions. Partial fix for #76462
32468
32469 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
32470
32471         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
32472           drawn. Fixes #76462
32473
32474 2005-10-17  Jackson Harper  <jackson@ximian.com>
32475
32476         * MonthCalendar.cs: Don't create the numeric up down until our
32477         handle is created. Otherwise our handle is created in the
32478         constructor and we don't know if we are a WS_CHILD or WS_POPUP
32479         yet.
32480
32481 2005-10-17  Jackson Harper  <jackson@ximian.com>
32482
32483         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
32484         correctly.
32485
32486 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
32487         * TreeNode.cs : small logical fix (was using local var instead of field)
32488         
32489 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
32490
32491         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
32492
32493 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
32494
32495         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
32496
32497 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
32498
32499         * Control.cs: 
32500           - Re-implemented anchoring code. My first version was really broken.
32501             This fixes bug #76033. Unlike the previous implementation we will
32502             no longer have round errors since all numbers are calculated from
32503             scratch every time. Removed various anchor-related obsolete vars.
32504           - InitLayout no longer causes layout event firing and layout to be 
32505             performed
32506
32507 2005-10-16  Jackson Harper  <jackson@ximian.com>
32508
32509         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
32510         which was broken).
32511
32512 2005-10-16  Jackson Harper  <jackson@ximian.com>
32513
32514         * TabControl.cs: Remove debug code.
32515
32516 2005-10-16  Jackson Harper  <jackson@ximian.com>
32517
32518         * XEventQueue.cs: Increase the default queue size (very simple
32519         apps needed to grow the queue).
32520         * Hwnd.cs: No finalizer so we don't need to suppress
32521         finalization. Compute the invalid area manually so a new rectangle
32522         does not newto be created.
32523         * ScrollableControl.cs: Don't set any params (otherwise visibility
32524         isn't set correctly).
32525         * MdiChildContext.cs: New constructor takes the mdi parent so it
32526         doesn't have to be computed and avoids a crash on windows. Draw
32527         the window icon properly, and allow the text to be seen.
32528         * Form.cs: Use new MdiChildContext constructor. Make sure the
32529         child context isn't null in wndproc.
32530         * TabControl.cs: Don't set focus, this is muddling keyboard
32531         behavoir. Expand the tab rows when a window size increase will
32532         allow extra tabs to be seen. Don't allow tabs smaller than the
32533         width of a window to be scrolled out of view.
32534         * TreeNode.cs:
32535         * TreeView.cs: Use measure string to calculate a nodes width, the
32536         width is cached and only updated when the text or the font is
32537         changed. Don't check for expand/collapse clicks on the first level
32538         nodes if root lines are disabled.
32539         
32540 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
32541
32542         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
32543
32544 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
32545
32546         * DataGridBoolColumn.cs: fixes warning
32547
32548 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
32549
32550         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
32551         to match more to match more precisely the MS Net behavior
32552
32553 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
32554
32555         * Hwnd.cs: Added field to track if window is mapped
32556         * XplatUIX11.cs: 
32557           - Unmap windows if they become 0-size, re-map when 
32558             they are >0 again; fixes #76035
32559           - Re-set our error handler after initializing X11Desktop
32560             to override any error handlers Gtk or whatever was called
32561             may have set.
32562
32563 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
32564
32565         * CheckedListBox.cs: Removed unused vars
32566         * ListView.cs: Fixed signatures
32567         * RichTextBox.cs: Removed unused vars
32568         * TextBoxBase.cs: Removed unused vars
32569         * XplatUIWin32.cs: Removed unused vars
32570         * XplatUIX11.cs: Removed unused vars
32571         * XplatUI.cs: Updated version and date to latest published
32572
32573 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
32574
32575         * Cursor.cs: Added private .ctor to work around a bug in
32576           resourceset (Thanks to Geoff Norton for the help on this)
32577         * SplitterEventArgs.cs: Made fields accessible so we don't
32578           waste boatloads of objects and can reuse the same one
32579           in Splitter
32580         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
32581           any captions and borders when generating screen coordinates
32582         * Splitter.cs: Reimplemented control, now fully complete, uses
32583           rubberband drawing, supports and obeys all properties, has
32584           proper cursors
32585
32586 2005-10-13  Miguel de Icaza  <miguel@novell.com>
32587
32588         * Form.cs (Form): Setup default values for autoscale and
32589         autoscale_base_size;  Make these instance variables, not static
32590         variables. 
32591
32592         (OnLoad): on the first load, adjust the size of the form.
32593
32594 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
32595
32596         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
32597           width argument to DrawReversibleRectangle()
32598         * XplatUIWin32.cs, XplatUIX11.cs: 
32599           - Implemented width for DrawReversibleRectangle()
32600           - Added logic to DrawReversibleRectangle that recognizes a zero
32601             width or height and only draws a line in that situation
32602         
32603 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
32604
32605         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
32606         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
32607         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
32608           method (it uses our FosterParent window to get a graphics context)
32609
32610 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
32611
32612         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
32613           and SetWindowBackground methods
32614         * Control.cs:
32615           - Setting proper ControlStyles
32616           - We no longer call XplatUI.SetWindowBackground and XplatUI.
32617             EraseWindowBackground, instead we draw the window background
32618             ourselves in PaintControlBackground. This behaviour is
32619             required to match MS, where, when OnPaintBackground is not
32620             called, the background is not drawn.
32621           - Removed unneeded Refresh() in set_Text
32622         * Hwnd.cs: Dropped the ErasePending support. No longer needed
32623         * XplatUIX11.cs:
32624           - Created DeriveStyles method to translate from CreateParams to
32625             FormBorderStyle and TitleStyle, also handles BorderStyle (which
32626             matches FormBorderStyle enum values)
32627           - Consolidated SetHwndStyles and CalculateWindowRect border/title
32628             style calculations into single DeriveStyles method
32629           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
32630             from redrawing the whole window on any resize or expose.
32631           - Fixed CreateWindow usage of SetWindowValuemask. Before not
32632             all styles were applied to our whole/client window appropriately
32633           - Removed EraseWindowBackground() and SetWindowBackground() methods
32634           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
32635             no longer clear/redraw the background through X
32636           - Removed handling of erase_pending bit, we have no use for it (or
32637             so it seems)
32638         * XplatUIOSX.cs:
32639           - Removed generation and handling of WM_ERASEBKGND message
32640           - Removed EraseWindowBackground() and SetWindowBackground() methods
32641           - Removed handling of hwnd.ErasePending flag
32642         * XplatUIWin32.cs:
32643           - Removed EraseWindowBackground() and SetWindowBackground() methods
32644           - We no longer call EraseWindowBackground on PaintEventStart, we 
32645             ignore the fErase flag, erasing is handled in Control in the
32646             background handler
32647         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
32648           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
32649           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
32650           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
32651           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
32652           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
32653           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
32654
32655 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
32656
32657         * PropertyGrids.cs: Get sub properties
32658         * PropertyGridView.cs: Fix drawing code
32659
32660 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
32661
32662         * ListBox.cs: Fixes 76383
32663
32664 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
32665
32666         * DataGridTextBoxColumn.cs: Sets location and size before attachment
32667         * ThemeWin32Classic.cs: Fixes border drawing and calculations
32668         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
32669
32670
32671 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
32672
32673         * ComboBox.cs: Fixes border drawing
32674
32675 2005-10-10  Miguel de Icaza  <miguel@novell.com>
32676
32677         * MimeIcon.cs: Ignore errors if the file can not be read.
32678
32679 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
32680
32681         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
32682          - Fixed border calculations
32683          - Fixed horizontal scrolling in single column listboxes
32684          - Fixed drawing issues
32685
32686 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
32687
32688         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
32689           FormBorderStyle enum
32690         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
32691           code to determine FormBorderStyles from CreateParams
32692         * Form.cs:
32693           - Fixed bug where we'd set the wrong window styles if we were
32694             not creating an MDI window
32695           - Added call to XplatUI.SetBorderStyle when form borders are set
32696         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
32697         * Hwnd.cs:
32698           - Removed obsolete edge style
32699           - Switched from BorderStyle to FormBorderStyle
32700         
32701 2005-10-10  Jackson Harper  <jackson@ximian.com>
32702
32703         * Form.cs: Use the property to get the window handle instead of
32704         accessing it directly. Prevents a null reference exception.
32705
32706 2005-10-10  Jackson Harper  <jackson@ximian.com>
32707
32708         * TreeView.cs: Don't adjust the rect given to DrawString now that
32709         our libgdiplus draws correctly.
32710
32711 2005-10-08  Jackson Harper  <jackson@ximian.com>
32712
32713         * TreeView.cs: Don't try to find the clicked on node if there are
32714         no nodes in the tree.
32715
32716 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
32717
32718         * RichTextBox.cs:
32719
32720           restore
32721
32722 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
32723
32724         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
32725           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
32726           ErrorProvider.cs:
32727           Use ResPool for brushes and dispose System.Drawing objects that
32728           are not used anymore.
32729
32730 2005-10-07  Jackson Harper  <jackson@ximian.com>
32731
32732         * MdiChildContext.cs: Use the new borders instead of drawing them
32733         ourselves.
32734
32735 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
32736
32737         * Calling UpdateBounds after changing the window's BorderStyle 
32738         since the style can change the ClientSize
32739
32740 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
32741
32742         * Control.cs: Made PaintControlBackground virtual
32743         * Panel.cs: Overriding PaintControlBackground instead of using paint
32744           event; paint event method was interfering with 'real' users of the
32745           event.
32746
32747 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
32748
32749         * ThemeWin32Classic.cs: remove border drawing since it is handled
32750         by the base control class now and was causing double border drawing.
32751
32752 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
32753
32754         * Panel.cs: Redraw our background on paint. Not a pretty solution,
32755           but it does seem to match MS behaviour. This fixes bug #75324
32756
32757 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
32758
32759         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
32760           somewhat hackish looking
32761
32762 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
32763
32764         * TextBoxBase.cs:
32765           - We now accept Enter even if AcceptEnter is false, if the containing
32766             form does not have an AcceptButton configured (fixes bug #76355)
32767           - Calculations are now fixed to no longer use Width/Height, but
32768             ClientSize.Width/Height, since we now support borders (this was
32769             a result of fixing borders and therefore bug #76166)
32770           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
32771             true (fixes bug #76354)
32772         
32773 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
32774
32775         * Control.cs: 
32776           - Defaulting BorderStyle and setting it in XplatUI when our window 
32777             is created
32778           - Added enum check to InternalBorderStyle setter
32779         * XplatUIX11.cs: 
32780           - Added drawing of window borders
32781           - Now properly calculates WM decorations offset for toplevel 
32782             windows (fixes bug #74763)
32783         * XplatUIWin32.cs: 
32784           - Implemented BorderStyles for windows (we're letting win32 draw 
32785             the border for us)
32786           - Fixed the signature for SetWindowLong
32787         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
32788           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
32789           setting borders
32790         * UpDownBase.cs: Remove drawing of borders, this is handled by
32791           the driver, outside the client area
32792         * ListView.cs: Removed bogus border calculations. The control should
32793           be oblivious to borders, since those are not part of the client
32794           area. 
32795         * X11DesktopColors.cs: Commented out (currently) unneeded variables
32796         * ThemeWin32Classic.cs: Removed border calculations from ListView 
32797           drawing code
32798
32799 2005-10-06  Jackson Harper  <jackson@ximian.com>
32800
32801         * MdiChildContext.cs: Clear out the old virtual position remove
32802         all the unneeded calls to CreateGraphics.
32803
32804 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
32805
32806         * TextControl.cs: Use proper color for highlighted text; fixes #76350
32807
32808 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
32809
32810         * Form.cs: 
32811           - Added loading and setting of our new default icon
32812           - Only set icon if window is already created
32813
32814 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
32815
32816         * Label.cs:
32817           - Do not explicitly set the foreground and background colors, to
32818             allow inheriting from parents (fixes #76302)
32819           - Use Control's InternalBorderStyle property to deal with borders
32820
32821 2005-10-06  Jackson Harper  <jackson@ximian.com>
32822
32823         * MdiChildContext.cs: Use the new xplatui function to draw a
32824         reversible rect.
32825
32826 2005-10-06  Jackson Harper  <jackson@ximian.com>
32827
32828         * Form.cs: Add the parent before creating the child context cause
32829         we need the parent when setting up the child.
32830
32831 2005-10-06  Jackson Harper  <jackson@ximian.com>
32832
32833         * FolderBrowserDialog.cs: redo the tree population code so a
32834         second thread isn't used. Should be a lot faster and more stable
32835         now.
32836
32837 2005-10-05  Jackson Harper  <jackson@ximian.com>
32838
32839         * TreeView.cs: There are no expand/collapse boxes if the node has
32840         no children.
32841
32842 2005-10-05  Jackson Harper  <jackson@ximian.com>
32843
32844         * X11DesktopColors.cs: Get menu colours for the gtk theme.
32845
32846 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
32847
32848         * FileDialog.cs: Fix InitialDirectory
32849
32850 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
32851
32852         * ComboBox.cs:
32853                 - Fixes changing between styles
32854                 - Fixes simple mode
32855                 - Fixes last item crashing when navigating with keyboard
32856
32857 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
32858
32859         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
32860
32861 2005-10-05  Jackson Harper  <jackson@ximian.com>
32862
32863         * TreeView.cs: If updating the root node do a full refresh.
32864         * TreeNode.cs: The root node should be expanded by default. Also
32865         added a utility prop to tell if we are the root node.
32866         * TreeNodeCollection.cs: Only refresh if the node we are being
32867         added to is expanded. Also added a comment on a potential
32868         optimization.
32869         
32870 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
32871
32872         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
32873           in dispose method. Fixes #76330
32874
32875 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
32876
32877         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
32878
32879                 - Implements vertical and horizontal scrolling using XplatUI
32880                 - Fixes keyboard navagation
32881                 - Fixes EnsureVisible
32882                 - Drawing fixes
32883                 - Handles and draws focus properly
32884
32885
32886 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
32887
32888         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
32889           Create handle. NET_2_0: Destroy handle when value is null.
32890
32891 2005-10-03  Jackson Harper  <jackson@ximian.com>
32892
32893         * ScrollBar.cs: My last scrollbar patch was broken. This is a
32894         revert and a new patch to prevent the thumb from refreshing so
32895         much.
32896
32897 2005-10-02  Jackson Harper  <jackson@ximian.com>
32898
32899         * ScrollBar.cs: Don't update position if it hasn't actually
32900         changed. This occurs when you hold down the increment/decrement
32901         buttons and the thumb gets to the max/min.
32902
32903 2005-10-01  Jackson Harper  <jackson@ximian.com>
32904
32905         * Form.cs:
32906         * MdiChildContext.cs:
32907         * MdiClient.cs: Implement ActiveMdiChild in Form.
32908
32909 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
32910
32911         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
32912
32913 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
32914
32915         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
32916           be found
32917
32918 2005-09-30  Jackson Harper  <jackson@ximian.com>
32919
32920         * ListBox.cs: Don't do a full refresh unless some data has
32921         actually changed.
32922
32923 2005-09-30  Jackson Harper  <jackson@ximian.com>
32924
32925         * TreeView.cs: Make sure that the checkboxes size is factored in
32926         even when not visible.
32927
32928 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
32929
32930         * FileDialog.cs: Fix Jordi's build break
32931
32932 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
32933
32934         * FileDialog.cs: 
32935                 - Use standard the Windows colours for the combobox as espected
32936                 - Dispose objects that use resouces when no longer need them
32937
32938 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
32939
32940         * X11DesktopColors.cs: Initial incomplete implementation
32941         * XplatUIX11.cs: Added call to initialize X11DesktopColors
32942
32943 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
32944
32945         * Theme.cs: 
32946           - Switched Theme color names to match the names defined in 
32947             System.Drawing.KnownColors. Life's hard enough, no need to make 
32948             it harder.
32949           - Added setters to all theme color properties so themes can set
32950             their color schemes. The setters also propagate the color changes
32951             to System.Drawing.KnownColors via reflection
32952         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
32953           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
32954           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
32955           use the new, more logical theme color names
32956         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
32957           post-NT colors
32958         * ThemeWin32Classic.cs:
32959           - Removed code to set the old classic Windows colors. Instead it
32960             now relies on the colors returned by System.Drawing.KnownColors
32961             which will be either modern static colors (Unix) or colors
32962             read from the user's configuration (Win32)
32963           - Updated to use the new, more logical theme color names
32964           - Switched DataGrid drawing code to use only Theme colors instead of
32965             a mix of System.Drawing.KnownColors and Theme colors
32966           - DrawFrameControl(): Removed code that fills the button area, the
32967             fill would overwrite any previous fill done by a control. This
32968             fixes bug #75338 
32969           - Added DrawReversibleRectangle() stub
32970         * ScrollableControl.cs: Set visible state to false when scrollbars
32971           are removed (pdn fix)
32972         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
32973           DrawReversibleRectangle() method to allow drawing primitive 
32974           'rubber bands'
32975         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
32976
32977 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
32978
32979         * ImageList.cs: Add(Icon): Create handle.
32980
32981 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
32982
32983         * ListView.cs:
32984         * ThemeWin32Classic.cs:
32985                 - Fixes detail mode
32986                 - Sets clippings
32987                 - Issues with drawing
32988
32989 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
32990
32991         * ImageList.cs: Moved RecreateHandle back to ImageList as event
32992           source has to be the ImageList.
32993
32994 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
32995
32996         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
32997
32998 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
32999
33000         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
33001
33002 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
33003
33004         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
33005
33006 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
33007         * GridItem.cs: Fixed TODOs
33008         * GridItemCollection.cs: Added ICollection interface
33009
33010 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
33011
33012         * ImageList.cs: Resize icons when needed.
33013
33014 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
33015
33016         * ListViewItem.cs
33017                 - Fixes GetBounds and returns on screen rects
33018         * ListView.cs:
33019                 - Fixes vertical and horzintal scrolling of items
33020         * ThemeWin32Classic.cs:
33021                 - Fixes drawing
33022                 
33023 2005-09-29  Raja R Harinath  <harinath@gmail.com>
33024
33025         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
33026
33027 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
33028
33029         * ImageList.cs: Added comments about handle creation. Moved Handle,
33030           HandleCreated and OnRecreateHandle implementations to ImageCollection.
33031           Handle is created in Add methods.
33032
33033 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
33034          
33035         * DataGridDrawingLogic.cs: 
33036                 - Takes rows into account on Colum calculations
33037                 - Returns the column when clickig
33038         * DataGrid.cs:
33039                 - Fixes default HitTestInfo values
33040                 - Fixes HitTestInfo.ToString
33041                 - Fixes ResetBackColor          
33042         
33043 2005-09-28  Jackson Harper  <jackson@ximian.com>
33044
33045         * MdiChildContext.cs: Obey rules for fixed sized windows (no
33046         sizing or cursor changes). Also added some temp code to draw the
33047         titlebars text (Makes dev a little easier).
33048
33049 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
33050
33051         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
33052
33053 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
33054          
33055         * ListBox.cs: Fixes bug 76253
33056
33057 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
33058
33059         * ImageList.cs: Added comments about the current implementation. Added
33060           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
33061           Format32bppArgb to preserve transparency and can use Graphics.FromImage
33062           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
33063           with Bitmap.LockBits for better performance. Revised the whole file to
33064           match MS.NET behaviour and provide better performance. Non-public
33065           interface members are calling public members even when they throw
33066           NotSupportedException for better maintainability. Moved ColorDepth,
33067           ImageSize, ImageStream and TransparentColor implementations to
33068           ImageCollection for better performance as these properties are not used
33069           by ImageList.
33070         * ImageListStreamer.cs: Added a new internal constructor that takes an
33071           ImageList.ImageCollection and serializes Images based on
33072           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
33073           match ImageList property name.
33074
33075 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
33076
33077         * ListBox.cs: Fixes IndexFromPoint for last item
33078
33079 2005-09-27  Jackson Harper  <jackson@ximian.com>
33080
33081         * Form.cs: Set the position of new mdi children correctly.
33082
33083 2005-09-27  Jackson Harper  <jackson@ximian.com>
33084
33085         * MdiClient.cs: New mdi children need to be added to the back of
33086         the controls collection so the zorder is set correctly. Also add a
33087         count of all the child windows that have been created.
33088
33089 2005-09-27  Jackson Harper  <jackson@ximian.com>
33090
33091         * Form.cs (CreateParams): Setup MDI forms correctly.
33092
33093 2005-09-27  Jackson Harper  <jackson@ximian.com>
33094
33095         * MdiChildContext.cs:
33096         * MonthCalendar.cs:
33097         * UpDownBase.cs:
33098         * ListBox.cs:
33099         * ListView.cs:
33100         * TextBoxBase.cs:
33101         * TreeView.cs:
33102         * ScrollableControl.cs:
33103         * ComboBox.cs: Add implicit controls using the new implict control
33104         functionality in ControlCollection. Also try to block multiple
33105         control add in a suspend/resume layout to save some cycles.
33106         
33107 2005-09-27  Jackson Harper  <jackson@ximian.com>
33108
33109         * Control.cs: Add functionality to the controls collection to add
33110         'implicit controls' these are controls that are created by the
33111         containing control but should not be exposed to the user. Such as
33112         scrollbars in the treeview.
33113         * Form.cs: The list var of the ControlsCollection is no longer
33114         available because of the potential of implicit controls getting
33115         ignored by someone accessing the list directly.
33116
33117 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
33118
33119         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
33120           loose it's parent. (Fixed bug introduced in r49103 when we added
33121           setting the child parent to null on Remove)
33122
33123 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
33124
33125         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
33126         * Splitter.cs: Added missing attributes for BorderStyle property.
33127         * TextBoxBase.cs: Marked Calculate* methods internal.
33128         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
33129         MS.NET.
33130
33131 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
33132          
33133         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
33134
33135 2005-09-25  Jackson Harper  <jackson@ximian.com>
33136
33137         * TreeView.cs: Update the node bounds correctly regardless of
33138         whether the node is visible.
33139
33140 2005-09-25  Jackson Harper  <jackson@ximian.com>
33141
33142         * ImageList.cs: Don't dispose the image after it is added to the
33143         image list. Only reformat images that need to be resized.
33144
33145 2005-09-25  Jackson Harper  <jackson@ximian.com>
33146
33147         * ImageList.cs: Don't set the format when changing the image.
33148
33149 2005-09-25  Jackson Harper  <jackson@ximian.com>
33150
33151         * TreeView.cs: We can't just assume the node has a font. Use the
33152         treeviews font if no node font is available.
33153
33154 2005-09-25  Jackson Harper  <jackson@ximian.com>
33155
33156         * TreeView.cs: Allow the scrollbars to be reset with negative
33157         values.
33158         - Don't add scrollbars to negative sized windows.
33159
33160 2005-09-23  Jackson Harper  <jackson@ximian.com>
33161
33162         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
33163         old Mono.Posix. Also remove some stray code that shouldn't have
33164         been committed.
33165
33166 2005-09-23  Jackson Harper  <jackson@ximian.com>
33167
33168         * TreeView.cs: Attempt at proper sizing of the horizontal
33169         scrollbar. Also don't resize the scrollbars unless they are
33170         visible.
33171
33172 2005-09-23  Jackson Harper  <jackson@ximian.com>
33173
33174         * TreeView.cs: We don't need to expand the invalid area when the
33175         selection changes, as this is all drawn in the node's bounding
33176         box. The area needs to be expanded (previous typo was contracting
33177         it) when the focus rect moves.
33178
33179 2005-09-23  Jackson Harper  <jackson@ximian.com>
33180
33181         * TreeView.cs: Display the selection box under the correct
33182         circumstances. We were rendering white text with no selection box
33183         before.
33184
33185 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
33186
33187         * TextControl.cs(Split): Now updates selection start/end if it points 
33188           into a line that's being split. Fixes a FIXME and bug #75258
33189
33190 2005-09-23  Jackson Harper  <jackson@ximian.com>
33191
33192         * Binding.cs:
33193         * ListControl.cs: Don't use the path when retrieving binding
33194         managers from the binding context. My bat sense tells me that the
33195         path is only used on insertion.
33196
33197 2005-09-22  Jackson Harper  <jackson@ximian.com>
33198
33199         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
33200
33201 2005-09-22  Jackson Harper  <jackson@ximian.com>
33202
33203         * Splitter.cs: There are special cursors used for splitting.
33204         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
33205
33206 2005-09-22  Jackson Harper  <jackson@ximian.com>
33207
33208         * Splitter.cs: Change the cursor appropriately when the splitter
33209         is moused over, so the user actually knows there is a splitter
33210         there.
33211
33212 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
33213
33214        * Label.cs : Fix ToString method to give same output as MS.NET
33215
33216 2005-09-22  Jackson Harper  <jackson@ximian.com>
33217
33218         * TreeView.cs: Create the scrollbars when the handle is created
33219         and add them right away, just make them invisble. Also account for
33220         the window being shrunk vertically to the point that the vert
33221         scrollbar needs to be added.
33222         - Remove some 0.5 adjustments to get around anti aliasing issues.
33223         
33224 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
33225          
33226         * MainMenu.cs: Fixes default value
33227         * MenuItem.cs: Fixes default value
33228
33229 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
33230
33231         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
33232
33233 2005-09-21  Jackson Harper  <jackson@ximian.com>
33234
33235         * Control.cs: Don't try to set the border style on the window if
33236         it hasn't been created. When the window is created the border
33237         style will be used.
33238
33239 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
33240
33241         * Control.cs (Update): Don't call XplatUI if we don't have a
33242           window handle yet
33243
33244 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
33245
33246         * ContainerControl.cs: Instead of throwing an exception, print
33247           a one-time warning about Validate not being implemented
33248         * XplatUIWin32.cs: Removed debug output
33249
33250 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
33251
33252         * Control.cs: Only set XplatUI background if we expect the windowing
33253           system to handle the background. This stops controls that draw their
33254           own background from flickering
33255
33256         * XplatUIX11.cs: Support custom visuals and colormaps for window 
33257           creation. This allows, amongst other things, using MWF X11 windows 
33258           with OpenGL.
33259
33260 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
33261
33262         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
33263           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
33264           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
33265           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
33266           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
33267           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
33268           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
33269           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
33270           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
33271           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
33272           GridColumnStylesCollection.cs, 
33273           IDataGridColumnStyleEditingNotificationService.cs,
33274           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
33275           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
33276           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
33277           TreeNodeCollection.cs, AmbientProperties.cs, 
33278           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
33279           DataObject.cs, ErrorProvider.cs, Splitter.cs,
33280           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
33281           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
33282           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
33283           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
33284           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
33285           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
33286           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
33287           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
33288           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
33289           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
33290           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
33291           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
33292           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
33293           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
33294           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
33295           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
33296           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
33297           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
33298           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
33299           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
33300           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
33301           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
33302           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
33303           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
33304           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
33305           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
33306           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
33307           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
33308           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
33309           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
33310           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
33311           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
33312           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
33313           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
33314           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
33315
33316 2005-09-21  Jackson Harper  <jackson@ximian.com>
33317
33318         * TreeNode.cs: Call Before/After Expand not Collapse when
33319         expanding.
33320
33321 2005-09-20  Jackson Harper  <jackson@ximian.com>
33322         
33323         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
33324
33325 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
33326          
33327         * ListViewItem.cs:
33328                 - Fixes bug 76120
33329                 - Fixes proper storing of subitems
33330                 - Fixes not updated items
33331
33332 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
33333
33334         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
33335           things if our window handle isn't created yet. Also disabled 
33336           debug for TextBoxBase
33337
33338 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
33339
33340         * MenuAPI.cs: Remove filtering of events to allow menu usage
33341
33342 2005-09-20  Miguel de Icaza  <miguel@novell.com>
33343
33344         * Cursor.cs: Allow null to be passed to Cursor.Current.
33345
33346 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
33347
33348         * ThemeWin32Classic.cs:
33349           - Change some private methods/fields to protected virtual so that 
33350             they can be accessed and overriden in derived classes
33351           - First refactoring of some methods. Derived themes now don't 
33352             need to duplicate the complete code from ThemeWin32Classic
33353         * ThemeNice.cs:
33354           - Added nice StatusBar
33355           - Derive from ThemeWin32Classic and not Theme
33356           - Removed duplicate ThemeWin32Classic code
33357
33358 2005-09-20  Miguel de Icaza  <miguel@novell.com>
33359
33360         * Control.cs (ControlCollection.Add): If the value null is passed
33361         the control is ignored. 
33362
33363         Optimize this loop.
33364
33365 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
33366
33367         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
33368           PostQuitMessage state.
33369         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
33370
33371 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
33372
33373         * Application.cs: Our constructor will never get called, move 
33374           initialization to fields; fixes bug #75933
33375
33376 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
33377
33378         * FileDialog.cs :
33379                 - Allow files to be selected properly using file name
33380                 combo box.
33381                 - Add ability to change diretory (absolute / relative)
33382                 using file name combo box.
33383
33384 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
33385          
33386         * ListBox.cs: 
33387                 - Fixes Multicolumn listboxes item wrong calculations
33388                 - Allows to click when only one item is in the listbox
33389                 - Fixes crash when no items using keyboard navigation
33390
33391 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
33392
33393         * ComboBox.cs: Reverted almost everything from the latest patch which
33394           broke ComboBox
33395
33396 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
33397         
33398         * ToolTip.cs:
33399                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
33400         * ComboBox.cs:
33401                 - When DropDownStyle is Simple, it does not show scrollbar 
33402                 to the last item of the list.
33403                 - When DropDownStyle is Simple, it crashed when the list was 
33404                 scrolled down with the down cursor key.
33405                 - Fixed a bug that when DropDownStyle is DropDownList, the 
33406                 selected item was not shown.
33407                 - The position of the selected item was not preserved when 
33408                 the next dropdown happened.
33409         * ThemeWin32Classic.cs:
33410                 - Items were wrapped at the right end.
33411         * CheckedListBox.cs:
33412                 - Fixed Add method
33413         * ListBox.cs:
33414                 - Items should be fully shown.
33415                 - When resizing and vertical scrollbar disappeared, the item 
33416                 of index 0 should be on the top of the list.
33417                 - GetItemRectangle should consider the size of ver. scrollbar
33418         * StatusBar.cs:
33419                 - SizingGrip area should not be allocated when it is not 
33420                 displayed.
33421                 - Now it reflects MinWidth of the containing panel and 
33422                 fixed a crash that happens when its width becomes so small.
33423
33424 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
33425
33426         * CheckedListBox.cs: Fixes bug 76028
33427         * ListBox.cs: Fixes bug 76028
33428
33429 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
33430
33431         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
33432         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
33433
33434 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
33435
33436         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
33437
33438 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
33439
33440         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
33441
33442 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
33443
33444         * IRootGridEntry.cs: Added
33445         * PropertyGridCommands.cs: Added
33446         * PropertiesTab.cs: Added missing methods and property
33447         * PropertyGridView.cs: Made class internal
33448         * PropertyGridTextBox.cs: Made class internal
33449
33450 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
33451
33452         * MimeIcon.cs: Try to check some other environment variables
33453           if "DESKTOP_SESSION" returns "default"
33454
33455 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
33456
33457         * ThemeNice.cs: Corrected background colors (e.g. menus)
33458         * ColorDialog.cs: Use correct background colors for controls
33459
33460 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
33461
33462         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
33463
33464 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
33465
33466         * RichTextBox.cs: Added initial implementation
33467         * lang.cs: Removed. Was accidentally checked in long time ago
33468         * TODO: Removed. Contents were obsolete
33469
33470 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
33471                                                                                 
33472         * PropertiesTab.cs : Added
33473
33474 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
33475                                                                                 
33476         * PropertyGrid.cs : Update
33477         * PropertyGridView.cs : Update
33478         * System.Windows.Forms.resx : Added images and strings
33479
33480 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
33481
33482         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
33483  
33484 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
33485
33486         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
33487           a busy loop right after the Ungrab the X11 display is otherwise 
33488           blocked
33489
33490 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
33491
33492         * ThemeWin32Classic.cs: Optimise the use of clipping
33493
33494 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
33495
33496         * DataGrid.cs: fixes recursion bug
33497
33498 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
33499
33500         * ThemeNice.cs: 
33501           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
33502           - Cleanup
33503
33504 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
33505
33506         * ThemeNice.cs: Draw nice ProgressBars
33507
33508 2005-09-01  Miguel de Icaza  <miguel@novell.com>
33509
33510         * VScrollBar.cs: Another buglet found by Aaron's tool. 
33511
33512         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
33513         bug finder.
33514
33515 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
33516
33517         * ThemeNice.cs:
33518           - Added nicer menu drawing
33519           - Updated DrawTab
33520           - some refactoring
33521
33522 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
33523
33524         * CreateParams.cs (ToString): Made output match MS
33525         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
33526             handle is already created (to avoid forcing window creation)
33527         * XplatUIX11.cs: Set window text to caption after creating window,
33528           in case Text was set before window was created
33529         * Form.cs: Use this.Text instead of a static string as caption
33530
33531 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
33532
33533         * NotifyIcon.cs: Don't set the window to visible; this screws
33534           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
33535           OnPaint without a bitmap)
33536         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
33537           happen very often anyway; we could add the check to the WM_PAINT 
33538           event generation code
33539
33540 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
33541
33542         * NotifyIcon.cs: Fill the icon area with a background color, to 
33543           avoid 'residue' when transparent icons are drawn
33544         * XplatUIX11.cs:
33545           - Handle whole_window == client_window when destroying windows
33546           - SystrayAdd(): Set client_window to whole_window value to
33547             get mouse and other events passed to NotifyIcon
33548
33549 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
33550
33551         * Form.cs: Set proper default for Opacity property
33552         * NotifyIcon.cs:
33553           - ShowSystray(): Don't bother creating telling the OS
33554             about the systray item if no icon is provided
33555           - Now handles WM_NCPAINT message to deal with whole/client window
33556             split
33557           - Create window as visible to not get caught by Expose optimization
33558         * Hwnd.cs: Removed debug message
33559         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
33560           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
33561             PaintEventStart/End to use new client argument
33562         * TextBoxBase.cs:
33563           - Commented out debug messages
33564           - Switched PaintEventStart/End to use new client argument
33565         * XplatUI.cs: Added client window bool to PaintEventStart()/
33566           PaintEventEnd() calls, to support drawing in non-client areas
33567         * XplatUIDriver.cs: 
33568           - Added client window bool to PaintEventStart()/PaintEventEnd() 
33569             calls, to support drawing in non-client areas
33570           - Added conditional compile to allow using MWF BeginInvoke 
33571             on MS runtime
33572         * XplatUIX11.cs:
33573           - Added some conditional debug output
33574           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
33575             whole/client window split
33576           - Implemented handling of client argument to PaintEventStart()/End()
33577         * Control.cs:
33578           - Throw exception if BeginInvoke() is called and the window handle
33579             or one of the window's parent handles is not created
33580           - Added conditional compile to allow using MWF BeginInvoke on
33581             MS runtime
33582           - get_Parent(): Only sets parent if handle is created. This avoids
33583             forcing window handle creation when parent is set.
33584           - Now fires Layout and Parent changed events in proper order
33585           - Switched to use Handle instead of window.Handle for Z-Order setting,
33586             the get_Parent() patch above causes us to possibly get null for 'window'
33587           - Implemented handling of client argument to PaintEventStart()/End()
33588           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
33589             default handling)
33590           - Now sends a Refresh() to all child windows when Refresh() is called
33591
33592 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
33593
33594         * Form.cs: Added (non-functional) Opacity property
33595         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
33596
33597 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
33598         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
33599           use export MONO_THEME=nice to activate it.
33600           Currently supported controls:
33601           - Button
33602           - ComboBox
33603           - ScrollBar
33604           - TabControl (TabAlignment.Top only, other will follow)
33605         * ThemeEngine.cs: Add theme nice
33606         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
33607           if enabled
33608
33609 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
33610
33611         * Splitter.cs: Resize docked control and its neighbor.
33612
33613 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
33614         -- Making Windows with Menus layout correctly --
33615         * Form.cs : The first leg of the fix
33616                 Menu setter - adjust Client Size as needed to make space for the menu
33617                 SetClientSizeCore - doesn't call base version to be able to pass the 
33618                         menu handle to XplatUI.CalculateWindowRect
33619         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
33620         * XplatUIX11.cs: The critical second leg of the fix
33621                 GetWindowPos needs to use a recalculated client_rect
33622                 so that resizing the window doesn't break layout of child controls. 
33623                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
33624                 Lots of \t\n killed
33625
33626 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
33627
33628         * Label.cs: Now properly recalculates width and height on Font and Text
33629           changes if AutoSize is set
33630
33631 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
33632         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
33633
33634 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
33635
33636         * ImageList.cs: Makes ToString method compatible with MS
33637
33638 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
33639
33640         * MenuAPI.cs: fixes bug 75716
33641
33642 2005-08-11 Umadevi S <sumadevi@novell.com>
33643         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
33644
33645 2005-08-11 Umadevi S <sumadevi@novell.com>
33646         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
33647
33648 2005-08-10  Umadevi S <sumadevi@novell.com>
33649         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
33650
33651 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
33652
33653         * Menu.cs: fixes bug 75700
33654         * MenuAPI.cs: fixes navigation issues
33655
33656 2005-08-09  Umadevi S <sumadevi@novell.com>
33657         * CheckedListBox.cs - simple fix for GetItemChecked.
33658
33659 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
33660
33661         * ComboBox.cs: Serveral fixes
33662         * ListBox.cs: Serveral fixes
33663
33664 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
33665
33666         * ComboBox.cs: Fixes FindString methods and GetItemHeight
33667         * ListBox.cs: Fixes FindString methods
33668
33669 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
33670
33671         * DataGrid.cs: fixes bugs exposed by new tests
33672
33673 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
33674
33675         * Mime.cs: Compile Mono assembly references only if compiling
33676           with Mono (Allows to build with VS.Net again)
33677
33678 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
33679
33680         * Control.cs (PaintControlBackground): Draw background image
33681         corrrectly.
33682         (CheckForIllegalCrossThreadCalls): Stubbed.
33683         
33684         * Form.cs (OnCreateControl): Center when should be centered.
33685         
33686         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
33687
33688 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
33689
33690         * Binding.cs: Binding to properties should be case unsensitive
33691
33692 2005-07-18 vlindos@nucleusys.com
33693
33694         * DataGrid.cs: fixes setmember order
33695
33696 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
33697
33698         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
33699         * FileDialog.cs: FileDialog is now resizable and uses the new
33700           MimeIconEngine
33701
33702 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
33703
33704         * DataGridTextBoxColumn.cs: default value
33705         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
33706         * GridTableStylesCollection.cs: fixes checking MappingName
33707         * DataGridDrawingLogic.cs: fixes drawing logic issues
33708         * DataSourceHelper.cs: rewritten to make compatible with more data sources
33709         * DataGrid.cs: fixes    
33710
33711 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
33712
33713         * MimeGenerated.cs: Use case sensitive comparer for
33714           NameValueCollections
33715
33716 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
33717
33718         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
33719         * ThemeWin32Classic.cs: bug fixes, code refactoring
33720         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
33721         * DataGrid.cs: bug fixes, code refactoring
33722         * DataGridTextBox.cs: bug fixes, code refactoring
33723         * DataGridColumnStyle.cs:  bug fixes, code refactoring
33724         * Theme.cs:  bug fixes, code refactoring
33725
33726 2005-07-01  Peter Bartok  <pbartok@novell.com> 
33727
33728         * TextControl.cs: Quick fix for the reported crash on ColorDialog
33729           and other text box usage
33730
33731 2005-07-01  Jackson Harper  <jackson@ximian.com>
33732
33733         * TabControl.cs: Make sure the bottom of the tab covers the pages
33734         border.
33735
33736 2005-06-30  Peter Bartok  <pbartok@novell.com> 
33737
33738         * Form.cs (ShowDialog): Assign owner of the dialog
33739         * TextBoxBase.cs: Always refresh caret size when deleting, caret
33740           might have been moved to a tag with different height
33741
33742 2005-06-30  Jackson Harper  <jackson@ximian.com>
33743
33744         * Form.cs: Don't create an infinite loop when setting focus
33745         * MenuItem.cs: Don't dirty the parents if we don't have any
33746
33747 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
33748
33749         * LibSupport.cs: Rename
33750
33751 2005-06-29  Peter Bartok  <pbartok@novell.com>
33752
33753         * TextBoxBase.cs: Re-align caret after deleting a character
33754         * TextControl.cs:
33755           - DeleteChars(): Ensure that tag covers the provided position
33756           - StreamLine(): Drop reference for dropped tag
33757
33758 2005-06-29  Peter Bartok  <pbartok@novell.com> 
33759
33760         * TextControl.cs: 
33761           - Selections now work properly, anchoring at the initial location
33762             and properly extending in either direction (SetSelectionToCaret(),
33763             SetSelectionStart() and SetSelectionEnd())
33764           - No longer redraws the whole control on selection change, now
33765             calculates delta between previous and new selection and only
33766             invalidates/redraws that area
33767           - Fixed FindPos() math off-by-one errors
33768           - Changed DeleteChars() to verify the provided tag covers the
33769             provided position, selections may have a tag that doesn't cover
33770             the position if the selection is at a tag border
33771           - Fixed off-by-one errors in DeleteChars()
33772           - Added missing streamlining check in DeleteChars() to remove
33773             zero-length tags
33774           - Implemented Invalidate() method, now properly calculates exposures
33775             between two given lines/positions
33776           - Implemented SetSelection()
33777           - Obsoleted and removed FixupSelection()
33778           - Improved RecalculateDocument() logic, removing code duplication
33779
33780 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
33781
33782         * LibSupport.cs: changes to match different input/output arguments.
33783
33784 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
33785
33786         * LibSupport.cs: added libsupport.so init routine.
33787
33788 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
33789         
33790         * ControlBindingsCollection.cs
33791                 - Throws an exception on null datasource when adding
33792                 - Checks for duplicated bindings when adding
33793
33794 2005-06-28  Jackson Harper  <jackson@ximian.com>
33795
33796         * TreeView.cs (OnKeyDown): Support left and right properly
33797         (navigates as well as expanding and collapsing.
33798         - Add support for Multiply, this expands all the selected nodes
33799         children.
33800         - Fix some tabbing.
33801
33802 2005-06-28  Jackson Harper  <jackson@ximian.com>
33803
33804         * TreeView.cs: Implement keyboard navigation, currently supports,
33805         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
33806         support for toggling checkboxes with the space bar.
33807
33808 2005-06-28  Jackson Harper  <jackson@ximian.com>
33809
33810         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
33811         tree.
33812
33813 2005-06-28  Jackson Harper  <jackson@ximian.com>
33814
33815         * TreeView.cs: Add missing event.
33816
33817 2005-06-27  Peter Bartok  <pbartok@novell.com> 
33818
33819         * TextControl.cs:
33820           - Made line ending size configurable (now allows for counting 
33821             lineendings as \n or \r\n)
33822           - Added margin to viewport to keep caret visible on right side
33823           - Fixed translation routines for line/pos to documentpos to consider
33824             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
33825           - Fixed some line-endings to be unix style
33826           - Fixed Document.FormatText to perform it's calculations 1-based
33827           - Added descriptions for a few methods that might otherwise get 
33828             used wrong
33829           - Added NOTE section with some basic conventions to remember at 
33830             the top of the file
33831           - Major fixup for RichTextBox selection drawing:
33832             * Fixed crashes when multiple tags on a single line were selected
33833             * fixed selection box drawing not overlaying text
33834             * fixed bogus offset calculation for tags not starting at index 1
33835             * Switched behaviour from using multiple Substrings of a 
33836               StringBuilder.ToString() to using multiple 
33837               StringBuilder.ToString(start, length) statements, hoping this is
33838               faster (kept original version commented out in the code, in case
33839               original version was faster)
33840         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
33841           alignment != Left
33842         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
33843           call it as well
33844
33845 2005-06-27  Jackson Harper  <jackson@ximian.com>
33846
33847         * TabControl.cs: Move to the left and right with the arrow
33848         keys. These keys don't cycle beyond first and last like
33849         tab. Refresh all the tabs when scrolling them to the left or
33850         right.
33851
33852 2005-06-27  Jackson Harper  <jackson@ximian.com>
33853
33854         * TabControl.cs:
33855           - ToString: Added method
33856           - CreateParams: Remove TODO and comment
33857           - OnKeyDown: Cycle through bounds properly.
33858           - SelectedIndex: Scroll to the right or left if we need to
33859           display the newly selected tab.
33860
33861 2005-06-23  Jackson Harper  <jackson@ximian.com>
33862
33863         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
33864         set.
33865
33866 2005-06-23  Jackson Harper  <jackson@ximian.com>
33867
33868         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
33869         CTRL-SHIFT-TAB, and HOME, END are there any others?
33870
33871 2005-06-23  Jackson Harper  <jackson@ximian.com>
33872
33873         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
33874
33875 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
33876         
33877         * DataGridTextBoxColumn.cs: fixes and enhancements
33878         * ThemeWin32Classic.cs: fixes and enhancements
33879         * DataGridBoolColumn.cs:  fixes and enhancements
33880         * DataGridDrawingLogic.cs:  fixes and enhancements
33881         * CurrencyManager.cs: fixes and enhancements
33882         * DataGrid.cs: fixes and enhancements
33883         * DataGridColumnStyle.cs:  fixes and enhancements
33884
33885 2005-06-22  Jackson Harper  <jackson@ximian.com>
33886
33887         * TabControl.cs: Add some missing methods that just call into the
33888         base. Make the TabPageCollection's IList interface behave in the
33889         same manner as the MS implementation.
33890
33891 2005-06-22  Peter Bartok  <pbartok@novell.com> 
33892
33893         * TextControl.cs: Added sanity check
33894         * TextBoxBase.cs: 
33895           - Fixed wrapping behaviour, don't set wrap on single line controls
33896             (this fixes the breakage of colordialog introduced in an earlier
33897              checkin)
33898           - Added rudimentary support for autoscrolling right-aligned controls
33899             (still needs fixing, also, center alignment scroll is missing)
33900
33901 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
33902         
33903         * ScrollBar.cs: Fixes thumbpos on Maximum values
33904
33905 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
33906         
33907         * PropertyGridView.cs: Pass context information to UITypeEditors 
33908
33909 2005-06-21  Peter Bartok  <pbartok@novell.com> 
33910
33911         * TextBoxBase.cs:
33912           - Now calling PositionCaret with absolute space coordinates
33913           - Enabled vertical scrolling
33914           - Better tracking of scrollbar changes, tied into WidthChange
33915             event
33916           - Improved cursor tracking
33917           - Removed debug output
33918         * TextControl.cs:
33919           - PositionCaret coordinates are now works in absolute space, not 
33920             the canvas
33921           - Improved tracking of document size
33922           - Added events for width and height changes
33923
33924 2005-06-21  Peter Bartok  <pbartok@novell.com>
33925
33926         * Form.cs: Set focus to active control when form is activated
33927         * TextControl.cs: 
33928           - Added word-wrap functionality to RecalculateLine() 
33929           - Added some short function descriptions for VS.Net to aid in
33930             writing dependent controls
33931           - Added Caret property, returning the current coords of the caret
33932           - Added ViewPortWidth and ViewPortHeight properties
33933           - Added Wrap property
33934           - Added CaretMoved event
33935           - Removed some old debug code
33936           - Split() can now create soft splits
33937           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
33938           - Added method to format existing text
33939           - Fixed size/alignment calculations to use viewport
33940           - RecalculateDocument now can handle changing line-numbers while
33941             calculating lines
33942
33943         * TextBox.cs:
33944           - Added some wrap logic, we don't wrap if alignment is not left
33945           - Added casts for scrollbar var, base class switched types to
33946             also support RichTextBoxA
33947           - Implemented handling of scrollbar visibility flags
33948
33949         * TextBoxBase.cs:
33950           - Switched scrollbars type to RichTextBoxScrollBars to support
33951             RichTextBox
33952           - Added tracking of canvas width/height
33953           - Switched scrollbars to be not selectable (to keep focus on text)
33954           - Added central CalculateDocument() method to handle all redraw
33955             requirements
33956           - Added ReadOnly support
33957           - Added WordWrap support
33958           - Fixed handling of Enter key (we now treat it as a DialogKey)
33959           - Fixed caret positioning when h or v scroll is not zero
33960           - Fixed placing/generation of vertical scrollbar
33961           - Added CalculateScrollBars() method to allow updating scrollbar
33962             limits and visibility
33963           - Fixed handling of horizontal scroll
33964           - Added handling of vertical scroll
33965           - Implemented auto-'jump' when caret moves to close to a left or
33966             right border and there is text to be scrolled into view (currently
33967             there's the potential for a stack overflow, until a bug in
33968             scrollbar is fixed)
33969
33970 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
33971         
33972         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
33973
33974 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
33975
33976         * Mime.cs:
33977         - added inodes.
33978         - return application/x-zerosize for files with size zero
33979           (if no extension pattern matches).
33980         - check matches collection for strings too.
33981         - return only the first mime type if the name value
33982           collection has more than one mime type.
33983
33984 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
33985         
33986         * PropertyGrid.cs: Cleaned up some TODOs
33987         * PropertyGridView.cs: Added support for UITypeEditors
33988
33989 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
33990         
33991         * DataGrid.cs: clears cached value
33992
33993 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
33994
33995         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
33996         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
33997         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
33998         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
33999         
34000 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
34001
34002         * ThemeWin32Classic.cs: fixes colour
34003
34004 2005-06-15  Peter Bartok  <pbartok@novell.com>
34005
34006         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
34007         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
34008         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
34009         * Control.cs: Added some MWFCategory and MWFDescription attributes
34010         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
34011
34012 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
34013
34014         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
34015         usage
34016
34017 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
34018
34019         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
34020         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
34021         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
34022         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
34023         * DataGrid.cs: default datagrid settings for Default Styles, fixes
34024         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
34025
34026 2005-06-13  Jackson Harper  <jackson@ximian.com>
34027
34028         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
34029         isn't printed when the user enables dropping. (X11 does accept
34030         drops).
34031         
34032 2005-06-13  Jackson Harper  <jackson@ximian.com>
34033
34034         * TreeView.cs: Remove some TODOS.
34035
34036 2005-06-13  Jackson Harper  <jackson@ximian.com>
34037
34038         * Form.cs: Hook into the mdi framework.
34039         * MdiClient.cs: Use the base control collections add method so
34040         parents get setup correctly. Set the default back colour and dock
34041         style.
34042         * MdiChildContext.cs: New class, this bad actor handles an
34043         instance of an MDI window. Right now there is only basic
34044         support. You can drag, close, and resize windows. Minimize and
34045         Maximize are partially implemented.
34046
34047 2005-06-13  Jackson Harper  <jackson@ximian.com>
34048
34049         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
34050         freaky when both vals are negative. NOTE: There are probably other
34051         places in XplatUIX11 that this needs to be done.
34052
34053 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
34054
34055         * DataGrid.cs: implement missing methods, move KeyboardNavigation
34056         * DataGridColumnStyle.cs: fixes signature
34057
34058 2005-06-12  Jackson Harper  <jackson@ximian.com>
34059
34060         * XplatUIX11.cs: Use sizing cursors similar to the ones on
34061         windows.
34062
34063 2005-06-11  Jackson Harper  <jackson@ximian.com>
34064
34065         * StatusBarPanel.cs: Signature cleanups. Implement
34066         BeginInit/EndInit.
34067
34068 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
34069
34070         * DataGridTextBoxColumn.cs: Honors aligment
34071         * GridColumnStylesCollection.cs: Contains is case unsensitive
34072         * GridTableStylesCollection.cs: several fixes
34073         * DataGridTableStyle.cs: default column creation
34074         * DataGridDrawingLogic.cs: fixes
34075         * CurrencyManager.cs: ListName property
34076         * DataGrid.cs: multiple styles support
34077         * DataGridColumnStyle.cs: fixes
34078         
34079
34080 2005-06-10  Peter Bartok  <pbartok@novell.com>
34081
34082         * Control.cs(Select): Moved SetFocus call to avoid potential
34083           loops if controls change the active control when getting focus
34084         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
34085           the up/down buttons
34086
34087 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
34088
34089         * ImageListConverter.cs: Implemented
34090
34091 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
34092
34093         * MonthCalendar.cs: Wired in NumericUpDown control for year
34094
34095 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
34096
34097         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
34098           DoubleClick events, since they are not meant to be fired.
34099
34100 2005-06-09  Peter Bartok  <pbartok@novell.com>
34101
34102         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
34103           Jonathan's standalone controls into MWF, implemented missing
34104           events, attributes and methods; added xxxAccessible classes
34105         * AccessibleObject.cs: Made fields internal so other classes
34106           can change them if needed
34107
34108 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
34109
34110         * UpDownBase.cs: Complete implementation
34111         * NumericUpDown.cs: Complete implementation
34112         * DomainUpDown.cs: Complete implementation
34113
34114 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
34115
34116         * DataGridTextBoxColumn.cs: drawing fixes
34117         * DataGridCell.cs: fixes ToString method to match MSNet
34118         * DataGridTableStyle.cs: fixes
34119         * DataGridBoolColumn.cs: fixes, drawing
34120         * DataGridDrawingLogic.cs: fixes, new methods
34121         * DataGridTextBox.cs: Keyboard and fixes
34122         * DataGrid.cs:
34123                 - Keyboard navigation
34124                 - Scrolling fixes
34125                 - Row selection (single, multiple, deletion, etc)
34126                 - Lots of fixes
34127         
34128 2005-06-07  Jackson Harper  <jackson@ximian.com>
34129
34130         * ThemeWin32Classic.cs: Clear the background area when drawing
34131         buttons.
34132
34133 2005-06-06  Peter Bartok  <pbartok@novell.com>
34134
34135         * ImageListStreamer.cs: Fixed signature for GetData
34136         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
34137         * ComboBox.cs:
34138           - Added missing ChildAccessibleObject class
34139           - Added missing OnXXXFocus overrides, switched to using those
34140             instead of the event handler
34141         * Control.cs:
34142           - Added Parent property for ControlAccessibleObject
34143           - Fixed signatures
34144           - Fixed attributes
34145           - Added ResetBindings()
34146         * ListBindingConverter.cs: Implemented some methods
34147         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
34148         * ImageList.cs: Implemented basic handle scheme, removed TODOs
34149         * ContainerControl.cs: Fixed signature, now subscribing to the
34150           ControlRemoved event instead of overriding the handler, LAMESPEC
34151         * CurrencyManager.cs: Added missing attribute
34152         * MonthCalendar.cs: Added missing properties
34153
34154 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
34155
34156         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
34157         
34158 2005-06-06  Gaurav Vaish and Ankit Jain
34159
34160         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
34161         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
34162         
34163 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
34164
34165         * Control.cs: fixes CreateParams Width / Height.
34166
34167 2005-06-05  Peter Bartok  <pbartok@novell.com>
34168
34169         * Win32DnD.cs: Removed compilation warnings
34170
34171 2005-06-05  Peter Bartok  <pbartok@novell.com>
34172
34173         * Control.cs (CreateParams): Since we don't know if one of the
34174           properties we use is overridden, lets make sure if we fail accessing
34175           we continue with a backup plan
34176
34177 2005-06-05  Peter Bartok  <pbartok@novell.com>
34178
34179         * Win32DnD.cs:
34180           - Removed debug output
34181           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
34182             struct
34183           - Plugged resource leak
34184         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
34185           MS size
34186
34187 2005-06-05  Peter Bartok  <pbartok@novell.com>
34188
34189         * XplatUIWin32.cs: Removed DnD code
34190         * Win32DnD.cs: Implemented drop source and drop target functionality
34191
34192 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
34193
34194         * UpDownBase.cs: remove duplicate addition of event, enable some code
34195         that was commented out.
34196         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
34197         Validate input when a key is pressed. It works fine now for every
34198         combination of Hexadecimal. Only missing some drawing love when sharing
34199         space with other controls.
34200
34201 2005-06-04  Peter Bartok  <pbartok@novell.com>
34202
34203         * Control.cs:
34204           - We need to pass a window for DragDrop, so enable callback events
34205           - Added DnD callback events when being a DragSource
34206         * XplatUI.cs (StartDrag): Added window handle argument
34207         * XplatUIDriver.cs (StartDrag): Added window handle argument
34208         * QueryContinueDragEventArgs: Made fields internally accessible so
34209           drivers can set them
34210         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
34211           can set them
34212
34213 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
34214
34215         * DataGridTextBoxColumn.cs: column text editing
34216         * DataGridTableStyle.cs: Respect columns styles created by the user
34217         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
34218         * DataGridBoolColumn.cs: bool column editing
34219         * DataGrid.cs: fixes to scrolling, properties, etc
34220         * DataGridTextBox.cs: handle keyboard
34221         * DataGridColumnStyle.cs: fixes
34222
34223 2005-06-02  Jackson Harper  <jackson@ximian.com>
34224
34225         * ImageListStreamer.cs: Somewhat broken implementation of
34226         GetObjectData. The RLE needs some work to match MS properly.
34227
34228 2005-06-02  Jackson Harper  <jackson@ximian.com>
34229
34230         * X11Dnd.cs: Attempting to keep at least one file in MWF
34231         monostyled.
34232
34233 2005-06-02  Peter Bartok  <pbartok@novell.com>
34234
34235         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
34236           that way
34237
34238 2005-06-02  Peter Bartok  <pbartok@novell.com>
34239
34240         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
34241         * XplatUI.cs: Added DoDragDrop() method
34242         * XplatUIDriver.cs: Added DoDragDrop() method
34243
34244 2005-06-02  Jackson Harper  <jackson@ximian.com>
34245
34246         * Splitter.cs: Implement BorderStyle.
34247
34248 2005-06-02  Jackson Harper  <jackson@ximian.com>
34249
34250         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
34251         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
34252         X11 using XDND.
34253
34254 2005-06-02  Peter Bartok  <pbartok@novell.com>
34255
34256         * DataObject.cs:
34257           - Added Data setter
34258           - Fixed broken insertion code for SetData, now also
34259             overwrites any existing entry of the same format name
34260         * Hwnd.cs: Added list of pointers that automatically gets
34261           freed when the window is disposed
34262         * XplatUI.cs: Call driver initialization method when loading
34263           a driver
34264         * Control.cs:
34265           - OnDragLeave takes EventArgs, not DragEventArgs
34266           - Added setting of WS_EX_ACCEPTFILES style when dropping is
34267             supported
34268           - Forces style update when drop state changes
34269         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
34270           not perfect since we cannot (yet) call the IDataObject.GetData()
34271           method, we keep getting 0x80004005 error, dunno why)
34272
34273 2005-06-02  Peter Bartok  <pbartok@novell.com>
34274
34275         * DragEventArgs.cs: Make fields internal so we can cache the
34276           object and re-set the fields from XplatUI
34277
34278 2005-06-02  Jackson Harper  <jackson@ximian.com>
34279
34280         * Control.cs: Add some internal methods so the DnD subsystem can
34281         raise DnD events. Also call into the driver when AllowDrop is set.
34282         * XplatUI.cs:
34283         * XplatUIDriver.cs: New method for setting whether or not a window
34284         is allowed to accept drag and drop messages.
34285                 
34286 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
34287         
34288         * ScrollBar.cs: Make sure that values sent in Scroll events
34289         are always between Maximum and Minimum.
34290
34291 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
34292
34293         * Menu.cs: Call MenuChanged when menuitem visibility has been
34294         changed.
34295         * MenuItem.cs: Rebuild menu when item is (not) visible.
34296         * MainMenu.cs: MainMenu has special MenuChanged.
34297         * Theme.cs: Caption and FrameBorderSize are not fixed.
34298         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
34299         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
34300         * XplatUIX11.cs,
34301         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
34302         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
34303
34304 2005-05-30  Jackson Harper  <jackson@ximian.com>
34305
34306         * DataFormat.cs: We can't statically initialize this stuff because
34307         it calls into the xplatui and could create a loop. So we lazy init
34308         it.
34309
34310 2005-05-28  Jackson Harper  <jackson@ximian.com>
34311
34312         * Control.cs: Proper implementation of Product(Name/Version).
34313
34314 2005-05-27  Jackson Harper  <jackson@ximian.com>
34315
34316         * DataObject.cs: Dont crash if no data is found.
34317
34318 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
34319         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
34320                 as per status page, guessing it should be set to true
34321
34322 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
34323
34324         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
34325         * DataGridTableStyle.cs: set proper formatting text, def header text
34326         * ThemeWin32Classic.cs: new themable paramaters
34327         * DataGridBoolColumn.cs: paint check box, get data, fixes
34328         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
34329         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
34330         * DataGridColumnStyle.cs: fixes
34331         * Theme.cs: new themable paramaters
34332                 
34333 2005-05-26  Peter Bartok  <pbartok@novell.com>
34334
34335         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
34336
34337 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
34338         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
34339
34340 2005-05-24  Peter Bartok  <pbartok@novell.com>
34341
34342         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
34343           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
34344           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
34345           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
34346           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
34347           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
34348           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
34349           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
34350           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
34351           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
34352           missing attributes, etc
34353         * DataGridPreferredColumnWidthTypeConverter.cs: Added
34354
34355 2005-05-24  Peter Bartok  <pbartok@novell.com>
34356
34357         * Help.cs: Added, implemented trivial functions, throws up MessageBox
34358           when user tries to get help
34359         * DataObject.cs, DataFormats.cs, LinkArea.cs,
34360           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
34361           to suppress warnings
34362         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
34363           avoid unreachable code warning
34364
34365 2005-05-20  Peter Bartok  <pbartok@novell.com>
34366
34367         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
34368
34369 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
34370
34371         * DataGridTextBoxColumn.cs: Basic painting methods
34372         * DataGridTableStyle.cs: Set table style in the column
34373         * ThemeWin32Classic.cs: Use Theme for colors
34374         * DataGridDrawingLogic.cs: Implement more drawing
34375         * DataGrid.cs: drawing, theming, enhacements, fixes
34376         * DataGridColumnStyle.cs: fixes, drawing
34377         * Theme.cs: theming for Datagrid
34378
34379 2005-05-20  Peter Bartok  <pbartok@novell.com>
34380
34381         * Cursor.cs: Implemented GetObjectData() method
34382
34383 2005-05-20  Peter Bartok  <pbartok@novell.com>
34384
34385         * Cursors.cs: Added setting of cursor name
34386         * Cursor.cs:
34387           - Implemented constructors
34388           - Implemented Draw and DrawStretched
34389           - Implemented Current property
34390           - Implemented == and != operators
34391           - Implemented Dispose()
34392           - Implemented ToString
34393           - Added missing attributes
34394         * XplatUIX11.cs:
34395           - Added missing reset for OverrideCursor when DoEvents is called
34396           - Fixed creation of cursor, logic was wrong
34397         * XplatUIWin32.cs:
34398           - Added missing reset for OverrideCursor when DoEvents is called
34399           - Fixed creation of cursor, bit arrays were swapped
34400         * Clipboard.cs: Removed obsolete MonoTODO attribute
34401
34402 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
34403
34404         * ComboBox.cs: fixes OnSelectedItemChanged
34405         * ControlBindingsCollection.cs: fixes item range check
34406
34407 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
34408
34409         * UpDownBase.cs:
34410                 - Calc preferred height properly
34411                 - Implement missing properties
34412                 
34413         * NumericUpDown.cs: Implement missing events
34414
34415 2005-05-19  Jackson Harper  <jackson@ximian.com>
34416
34417         * TabControl.cs: New method that resizes the tab pages before
34418         redrawing them. This as needed as the control is double buffered
34419         and sizing will not be recalculated unless ResizeTabPages is
34420         called.
34421         * TabPage.cs: Set base.Text instead of Text in the constructor so
34422         that UpdateOwner does not get called. Use the new Redraw method of
34423         TabControl instead of Refresh so the sizing is recalculated.
34424         * ThemeWin32Classic.cs: Draw the text for button tabs.
34425
34426 2005-05-19  Jackson Harper  <jackson@ximian.com>
34427
34428         * Control.cs: Paint control background images. Fix typo where
34429         PaintControlBackground was not getting called correctly.
34430
34431 2005-05-19  Peter Bartok  <pbartok@novell.com>
34432
34433         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
34434           I can investigate, apparently I broke FileDialog
34435
34436 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
34437
34438         * AxHost.cs: Some simple properties.
34439         * Control.cs: window must be accessible after ctor.
34440         * Form.cs: Added TransparencyKey property.
34441         * TextBoxBase.cs: Implemented Clear. Text property can be null.
34442         * XplatUIWin32.cs: SetBorderStyle implemented.
34443
34444 2005-05-18  Peter Bartok  <pbartok@novell.com>
34445
34446         * DataObject.cs: Entries are not global but particular to the
34447           DataObject, now it behaves that way
34448         * XplatUIWin32.cs: Implemented Clipboard methods
34449         * Clipboard.cs: Implemented
34450         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
34451         * XplatUIOSX.cs: Updated to final clipboard prototypes
34452         * XplatUIX11.cs: Implemented Clipboard methods
34453         * XplatUIDriver.cs: Updated to final clipboard prototypes
34454         * XplatUIStructs.cs:
34455           - Added BITMAPINFOHEADER struct
34456           - Added ClipboardFormats enum
34457         * X11Structs.cs:
34458           - Added ClipboardStruct
34459           - Added Atom enum items for clipboard types
34460           - Fixed atom types for Selection event structures
34461         * DataFormats.cs:
34462           - Added internal properties and methods for drivers to enumerate
34463             all known formats
34464           - Switched initialization method to allow drivers to assign their
34465             own IDs even for the MS predefined clipboard IDs
34466         * XplatUI.cs: Updated to final clipboard interface
34467
34468 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
34469         * PropertyGridView.cs: Fixed compiler warnings.
34470
34471 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
34472         * PropertyGrid.cs: Added some event calls
34473         * PropertyGridView.cs: Change drawing code to use double buffering
34474         * PropertyGridTextBox.cs: Changed Text property name
34475         * GridItem.cs: Added Bounds property.
34476         * GridEntry.cs: Added Bounds property.
34477
34478 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
34479
34480         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
34481         since GetType() may not return the correct type if the object is
34482         a remoting proxy.
34483
34484 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
34485
34486         * TreeNodeCollection.cs: fixes get/set item ranges
34487         
34488 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
34489
34490         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
34491                 
34492 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
34493
34494         * ComboBox.cs: Fix item range comparation
34495         * ListView.cs: Fix item range comparation
34496
34497 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
34498
34499         * FontDialog.cs:
34500           - Clear example panel when OnPaint is called
34501           - Better solution for displaying the example panel text
34502           - Select default indexes in the ListBoxes
34503
34504 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
34505
34506         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
34507
34508 2005-05-11  Peter Bartok  <pbartok@novell.com>
34509
34510         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
34511         * SelectionRangeConverter.cs: Implemented
34512         * PropertyGrid.cs: Fixed attribute value
34513         * Control.cs:
34514           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
34515           - Added Sebastien Pouliot's CAS Stack Propagation fixes
34516         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
34517           that's common to all drivers. First methods to go there are
34518           Sebastien Pouliot's CAS Stack Propagation helper methods
34519         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
34520           Sebastien Pouliot for CAS Stack Propagation
34521
34522 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
34523
34524         * OSXStructs.cs:
34525           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
34526
34527 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
34528
34529         * DataGridTextBoxColumn.cs: fixed some members
34530         * GridColumnStylesCollection.cs: indexed column is case insensitive
34531         * DataGridTableStyle.cs: fixes
34532         * ThemeWin32Classic.cs: add new theme parameter
34533         * Theme.cs: add new theme parameter
34534         * DataGridDrawingLogic.cs: Datagrid's drawing logic
34535         * DataGrid.cs: fixes, new internal properties, etc.
34536         * DataGridColumnStyle.cs: allows to set grid value
34537         *
34538
34539 2005-05-10  Peter Bartok  <pbartok@novell.com>
34540
34541         * AccessibleObject.cs:
34542           - Removed MonoTODO attribute on help, method is correct
34543           - Fixed Bounds property
34544         * AxHost.cs: Moved MonoTODO
34545         * ButtonBase.cs: Now setting AccessibleObject properties
34546         * RadioButton.cs: Setting proper AccessibleObject role
34547         * CheckBox.cs: Setting proper AccessibleObject role
34548         * ControlBindingsCollection.cs: Added properties, methods and attributes
34549         * DataFormats.cs: Fixed awkward internal API, and changed to enable
34550           userdefined DataFormats.Format items as well
34551         * ListControl.cs: Removed data_member from the public eye
34552         * OpenFileDialog.cs:
34553           - Made class sealed
34554           - Added missing attributes
34555         * SaveFileDialog.cs: Added missing attributes
34556         * ImageListStreamer.cs: Fixed code that caused warnings
34557         * LinkLabel.cs: Removed unreachable code
34558         * TreeView.cs: Fixed code that caused warnings
34559         * PropertyGridView.cs: Fixed code that caused warnings
34560         * GridColumnStylesCollection.cs: Added missing attributes
34561         * GridTableStylesCollection: Added missing attribute
34562         * PropertyManager: Added .ctor
34563         * SecurityIDType: Added
34564         * DataObject.cs: Implemented class
34565         * LinkArea.cs: Added missing attribute
34566
34567 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
34568
34569         * RadioButton.cs: call base method to allow to fire OnClick event
34570         * UpDownBase.cs: OnMouseUp call base method
34571         * CheckedListBox.cs: call base method before returning
34572         * TrackBar.cs: call base method before returning
34573         
34574
34575 2005-05-10  Peter Bartok  <pbartok@novell.com>
34576
34577         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
34578           for messages
34579
34580 2005-05-10  Peter Bartok  <pbartok@novell.com>
34581
34582         * DataFormats.cs: Implemented
34583         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
34584           XplatUIX11.cs: Added Clipboard APIs
34585         * XplatUIWin32.cs: Implemented Clipboard APIs
34586         * FolderBrowserDialog.cs: Added missing event, attributes
34587
34588 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
34589
34590         * CheckBox.cs: call base method to allow to fire OnClick event
34591
34592 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
34593
34594         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
34595
34596 2005-05-06  Peter Bartok  <pbartok@novell.com>
34597
34598         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
34599         * Screen.cs: Implemented
34600         * HelpNavigator.cs: Added
34601         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
34602           property
34603         * HelpProvider.cs: Implemented all we can do until we have a CHM
34604           help library (which means that "What's This" does work now)
34605
34606 2005-05-06  Jackson Harper  <jackson@ximian.com>
34607
34608         * XplatUIX11.cs: Fix waking up the main loop.
34609                 
34610 2005-05-05  Peter Bartok  <pbartok@novell.com>
34611
34612         * XplatUI.cs: Updated revision
34613         * Form.cs: Removed enless loop
34614         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
34615         * Label.cs (OnPaint): Added call to base.OnPaint()
34616         * ToolTip.cs: Made ToolTipWindow reusable for other controls
34617         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
34618         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
34619         * AxHost.cs: Added
34620         * ButtonBase.cs: Moved base.OnPaint() call to end of method
34621         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
34622           to ToolTip.ToolTipWindow for drawing and size methods; this allows
34623           reuse of ToolTipWindow by other controls
34624         * SizeGrip.cs: Moved base.OnPaint() call to end of method
34625         * XplatUIX11.cs: Now clipping drawing area (experimental)
34626         * PictureBox.cs: Moved base.OnPaint() call to end of method
34627         * Theme.cs: Fixed ToolTip abstracts to match new format
34628         * ErrorProvider.cs: Implemented
34629
34630 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
34631
34632         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
34633         * LinkLabel.cs:
34634                 - Adds cursors
34635                 - Handles focus
34636                 - Implements LinkBehavior
34637                 - Fixes many issues
34638
34639 2005-05-03  Jackson Harper  <jackson@ximian.com>
34640
34641         * ListView.cs: Calculate the scrollbar positioning on resize and
34642         paint, so they get put in the correct place.
34643
34644 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
34645
34646         * ColorDialogs.cs: The small color panels are now handled by
34647           SmallColorControl. This fixes drawing of the focus rectangle
34648           and adds a 3D border.
34649
34650 2005-05-03  Peter Bartok  <pbartok@novell.com>
34651
34652         * Control.cs: Modified version of Jonathan Chamber's fix for
34653           double-buffering
34654
34655 2005-05-03  Jackson Harper  <jackson@ximian.com>
34656
34657         * ListView.cs: Remove redraw variable. Control now handles whether
34658         or not a redraw needs to be done, and will only raise the paint
34659         event if redrawing is needed.
34660
34661 2005-05-03  Jackson Harper  <jackson@ximian.com>
34662
34663         * Splitter.cs: No decorations for the splitter form. Cache the
34664         hatch brush.
34665
34666 2005-05-03  Jackson Harper  <jackson@ximian.com>
34667
34668         * TreeView.cs: Use dashed lines to connect nodes. Use the
34669         ControlPaint method for drawing the focus rect instead of doing
34670         that in treeview.
34671
34672 2005-05-02  Peter Bartok  <pbartok@novell.com>
34673
34674         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
34675
34676 2005-04-29  Jackson Harper  <jackson@ximian.com>
34677
34678         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
34679         entire image buffer. Just clear the clipping rectangle.
34680
34681 2005-04-29  Jackson Harper  <jackson@ximian.com>
34682
34683         * ThemeWin32Classic.cs: Don't draw list view items that are
34684         outside the clipping rectangle.
34685
34686 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
34687
34688         * ListBox.cs: added horizontal item scroll
34689
34690 2005-04-29  Jackson Harper  <jackson@ximian.com>
34691
34692         * ThemeWin32Classic.cs: Remove some old debug code that was
34693         causing flicker with the new double buffering code.
34694
34695 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
34696
34697         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
34698         behave like combobox and comboboxlist (still not sure if this is
34699         correct though).
34700
34701 2005-04-28  Jackson Harper  <jackson@ximian.com>
34702
34703         * ThemeWin32Classic.cs: Don't fill the middle of progress
34704         bars. This fills areas outside of the clip bounds that don't need
34705         to be filled.
34706
34707 2005-04-28  Jackson Harper  <jackson@ximian.com>
34708
34709         * Control.cs: Don't expose functionality to touch the image buffers.
34710         * ProgressBar.cs:
34711         * ListView.cs: We do not need to (and no longer can) manipulate
34712         the image buffers directly. All of this is handled by Control.
34713
34714 2005-04-28  Peter Bartok  <pbartok@novell.com>
34715
34716         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
34717           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
34718           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
34719
34720 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
34721
34722         * Combobox:
34723                 - Adjust control's height for non-simple comboboxes (bug fix)
34724                 - Remove dead code
34725         * MenuAPI.cs: remove unused var
34726         * ScrollBar.cs: remove unsed var
34727                  
34728         * ListBox.cs: unselect items when clearing
34729
34730 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
34731
34732         * ListControl.cs: honors OnPositionChanged and default Selected Item
34733         * ListBox.cs: unselect items when clearing
34734
34735 2005-04-27  Jackson Harper  <jackson@ximian.com>
34736
34737         * X11Keyboard.cs: Initialize a default keyboard and give a warning
34738         if a "correct" keyboard is not found. This will make us not crash,
34739         but might give some users bad keyboard layouts...seems to be the
34740         same thing rewind does.
34741
34742 2005-04-27  Jackson Harper  <jackson@ximian.com>
34743
34744         * BindingManagerBase.cs: Attach the current/position changed
34745         handlers to their respective events.
34746
34747 2005-04-27  Jackson Harper  <jackson@ximian.com>
34748
34749         * Control.cs: Make sure that the first WM_PAINT does a full draw,
34750         not just a blit.
34751         * ThemeWin32Classic.cs: Don't fill the background for picture
34752         boxes. This could overright user drawing.
34753         * ComboBox.cs: Just fill the clipping rect not the entire client
34754         rect when drawing the background. This prevents pieces of the
34755         image buffer from getting overwritten and is theoretically faster.
34756
34757 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
34758
34759         * ComboBox.cs: Databinding support fixes, fire missing events
34760         * ListControl.cs: implement missing methods and properties, fixes
34761         * ThemeWin32Classic.cs: Databiding support on Drawing
34762         * CheckedListBox.cs: Databinding support fixes, fire missing events
34763         * ListBox.cs: Databinding support fixes, fire missing events
34764         
34765 2005-04-25  Peter Bartok  <pbartok@novell.com>
34766
34767         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
34768
34769 2005-04-25  Jackson Harper  <jackson@ximian.com>
34770
34771         * TreeView.cs: Use the horizontal scrollbars height not width when
34772         determining how much of the client area is available.
34773
34774 2005-04-25  Jackson Harper  <jackson@ximian.com>
34775
34776         * Control.cs: Double buffering is handled differently now. As per
34777         the spec, the extra buffer is created in the WM_PAINT message and
34778         passed down to the control's drawing code.
34779         * GroupBox.cs:
34780         * Label.cs:
34781         * CheckBox.cs:
34782         * ProgressBar.cs:
34783         * RadioButton.cs:
34784         * ColorDialog.cs:
34785         * ComboBox.cs:
34786         * PropertyGridView.cs:
34787         * UpDownBase.cs:
34788         * MessageBox.cs:
34789         * MenuAPI.cs:
34790         * ListView.cs:
34791         * ButtonBase.cs:
34792         * SizeGrip.cs:
34793         * ScrollBar.cs:
34794         * ListBox.cs:
34795         * TrackBar.cs:
34796         * ToolBar.cs:
34797         * PictureBox.cs:
34798         * DateTimePicker.cs:
34799         * StatusBar.cs:
34800         * TreeView.cs: Update to new double buffering system.
34801         * MonthCalendar.cs: Uncomment block, as Capture is now
34802         working. Update to new double buffering
34803         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
34804         * PaintEventArgs.cs: New internal method allows us to set the
34805         graphics object. This is used for double buffering.
34806         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
34807         rectangle. The internal paint_area var has been removed from
34808         StatusBar. The clipping rect should be used instead.
34809         * Theme.cs: Give the PictureBox drawing method a clipping rect.
34810         * TabPage.cs: The RefreshTabs method was removed, so just call the
34811         tab controls Refresh method now.
34812         * TabControl.cs: Update to new double buffering. Make sure the
34813         handle is created before sizing the tab pages, otherwise we will
34814         get stuck in a loop.
34815
34816 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
34817
34818         * LinkLabel.cs: Fix typo, bug #74719; patch
34819           from Borja Sanchez Zamorano
34820
34821 2005-04-22  Jackson Harper  <jackson@ximian.com>
34822
34823         * TreeNode.cs: Implement Handle stuff.
34824         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
34825
34826 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
34827
34828         * DataGridTextBoxColumn.cs: call base constructors, fixes
34829         * GridColumnStylesCollection.cs: missing events, methods, and functionality
34830         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
34831         * DataGridTableStyle.cs: implements create default column styles
34832         * DataGridBoolColumn.cs: which types can handle
34833         * DataGrid.cs: missing methods, fixes, new functionality
34834         * DataGridColumnStyle.cs: fixes
34835
34836 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
34837         * FolderBrowserDialog.cs:
34838         - Use a thread to fill the TreeView
34839         - Adjusted some sizes
34840
34841 2005-04-19  Peter Bartok  <pbartok@novell.com>
34842
34843         * LinkLabel.cs: (Re-)create the pieces when setting the Text
34844           property. Fixes #74360.
34845
34846 2005-04-19  Jackson Harper  <jackson@ximian.com>
34847
34848         * XEventQueue.cs: Lock when getting the lockqueue size.
34849         * PictureBox.cs: Call base OnPaint
34850         
34851 2005-04-19  Peter Bartok  <pbartok@novell.com>
34852
34853         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
34854           messages were no longer being processed (this broke BeginInvoke)
34855
34856           
34857 2005-04-18  Jackson Harper  <jackson@ximian.com>
34858
34859         * TreeView.cs: buglet that caused node images to get drawn
34860         regardless of whether or not they were in the clipping rectangle.
34861
34862 2005-04-18  Jackson Harper  <jackson@ximian.com>
34863
34864         * CurrencyManager.cs: There are four rules for GetItemProperties:
34865         - If the type is an array use the element type of the array
34866         - If the type is a typed list, use the type
34867         - If the list contains an Item property that is not an object, use
34868         that property
34869         - use the first element of the list if there are any elements in
34870         the list.
34871         
34872 2005-04-17  Jackson Harper  <jackson@ximian.oom>
34873
34874         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
34875         click. This handles offsets for scrolling properly and reduces
34876         memory. Also fixed GetNode to not offset now that TopNode works
34877         properly.
34878         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
34879         
34880 2005-04-17  Jackson Harper  <jackson@ximian.com>
34881
34882         * CursorConverter.cs: Initial implementation.
34883
34884 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
34885
34886         * ListControl.cs: work towards complex data binding support on ListControl
34887         * CurrencyManager.cs: work towards complex data binding support on ListControl
34888         * ListBox.cs: work towards complex data binding support on ListControl
34889
34890
34891 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
34892
34893         * GridTableStylesCollection.cs: fixes name and constructor
34894         * DataGridTableStyle.cs: fixes
34895         * DataGridBoolColumn.cs: fixes names and constructors
34896         * DataGrid.cs: define methods and properties. Some init implementations
34897         * DataGridCell.cs: define methods and properties. Some init implementations
34898         * GridTablesFactory.cs: Define methods and properties
34899
34900 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
34901
34902         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
34903         graphics port changes.  We still want the coordinates in global screen
34904         coordinates.
34905
34906 2005-04-14  Jackson Harper  <jackson@ximian.com>
34907
34908         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
34909         check plus minus or checkbox clicks unless those features are enabled.
34910
34911 2005-04-14  Jackson Harper  <jackson@ximian.com>
34912
34913         * TreeView.cs: Add methods for setting the top and bottom visible
34914         nodes. TreeNode::EnsureVisible uses these methods.
34915         * TreeNode.cs: Implement EnsureVisible
34916
34917 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
34918
34919         * Form.cs: Pospone menu assignation if the window has not been created yet
34920         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
34921         size and position
34922
34923 2005-04-12  Jackson Harper  <jackson@ximian.com>
34924
34925         * TreeView.cs: Set the TopNode properly when scrolling
34926         occurs. This has the added benifit of reducing the amount of
34927         walking that needs to be done when drawing. Also removed an old
34928         misleading TODO.
34929         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
34930         
34931 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
34932
34933         * Timer.cs: fixes interval setting when the timer is already enabled
34934         
34935 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
34936
34937         * FolderBrowserDialog.cs: First approach
34938
34939 2005-04-09  Peter Bartok  <pbartok@novell.com>
34940
34941         * FolderBrowserDialog: Added
34942
34943 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
34944
34945         * LinkLabel.cs: move drawing code into the theme
34946         * ThemeWin32Classic.cs: drawing code and painting background bugfix
34947         * Theme.cs: define DrawLinkLabel method
34948
34949 2005-04-05  Jackson Harper  <jackson@ximian.com>
34950
34951         * BindingContext.cs: Use weak references so these bad actors don't
34952         stay alive longer then they need to.
34953
34954 2005-04-05  Jackson Harper  <jackson@ximian.com>
34955
34956         * ListControl.cs: Basic implementation of complex databinding.
34957         * ComboBox.cs:
34958         * ListBox.cs: Add calls to ListControl databinding methods.
34959
34960 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
34961
34962         * FileDialog.cs:
34963           - Don't change PopupButtonState to Normal when the
34964             PopupButton gets pressed several times.
34965           - Renamed ButtonPanel to PopupButtonPanel
34966
34967 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
34968
34969         * ColorDialog.cs: Use cached objects instead of creating them
34970         * LinkLabel.cs: Use cached objects instead of creating them
34971         * Splitter.cs: Use cached objects instead of creating them
34972         * FontDialog.cs: Use cached objects instead of creating them
34973         * PropertyGridView.cs: Use cached objects instead of creating them
34974         * MessageBox.cs: Use cached objects instead of creating them
34975         * FileDialog.cs: Use cached objects instead of creating them
34976         * ThemeWin32Classic.cs: Use cached objects instead of creating them
34977         * TreeView.cs: Use cached objects instead of creating them
34978         
34979 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
34980
34981         * Control.cs: use Equals to compare the font since no == op
34982         * ScrollBar.cs: use Equals to compare the font since no == op
34983
34984 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
34985
34986         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
34987
34988 2005-04-01  Jackson Harper  <jackson@ximian.com>
34989
34990         * Binding.cs: Implement IsBinding.
34991         * BindingManagerBase.cs:
34992         * PropertyManager.cs:
34993         * CurrencyManager.cs: Add IsSuspended property.
34994
34995 2005-04-01  Jackson Harper  <jackson@ximian.com>
34996
34997         * Binding.cs: Had some IsAssignableFrom calls backwards.
34998
34999 2005-04-01  Jackson Harper  <jackson@ximian.com>
35000
35001         * Binding.cs: Handle null data members when pulling data.
35002         * PropertyManager.cs: Handle the data member being a property that
35003         does not exist.
35004
35005 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
35006
35007         * DataGridTextBoxColumn.cs: fixes signature
35008         * DataGrid.cs: calls right constructor
35009
35010 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
35011
35012         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
35013         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
35014         * GridTableStylesCollection.cs: implements GridTableStylesCollection
35015         * DataGridTableStyle.cs: implements DataGridTableStyle
35016         * DataGridBoolColumn.cs: implements DataGridBoolColumn
35017         * DataGridTextBox.cs: implements DataGridTextBox
35018         * DataGridColumnStyle.cs: implements DataGridColumnStyle
35019
35020 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
35021
35022         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
35023
35024 2005-03-29  Peter Bartok  <pbartok@novell.com>
35025
35026         * Application.cs:
35027           - Properly implemented CompanyName property
35028           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
35029             returns a path that includes CompanyName, ProductName and
35030             Version (fixes bug #70330)
35031
35032 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
35033
35034         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
35035           fixes bug #72588.
35036
35037 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
35038
35039         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
35040         
35041           - Added ReadOnly CheckBox
35042           - Further refactoring: moved some code from Open-/SaveFileDialog
35043             to FileDialog
35044
35045 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
35046
35047         * OpenFileDialog.cs: Fixed CheckFileExists
35048         * FileDialog.cs:
35049           Moved FileView and DirComboBox outside FileDialog class.
35050           They can now be used outside FileDialog
35051
35052 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
35053
35054         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
35055         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
35056
35057 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
35058
35059         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
35060           - Added missing CreatePrompt property in SaveDialog
35061           - Overall SaveDialog handling should be better now
35062           - Added non standard ShowHiddenFiles property
35063           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
35064           - Added InitialDirectory and RestoreDirectory support
35065
35066 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
35067
35068         * FileDialog.cs: Made dirComboBox usable
35069
35070 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
35071
35072         * FileDialog.cs: Added Filter support (case sensitiv)
35073
35074 2005-03-24  Jackson Harper  <jackson@ximian.com>
35075
35076         * TabControl.cs: Need a couple more pixels for the lines.
35077
35078 2005-03-23  Jackson Harper  <jackson@ximian.com>
35079
35080         * TabControl.cs: Give the tab page focus when it is selected.
35081
35082 2005-03-23  Jackson Harper  <jackson@ximian.com>
35083
35084         * TabControl.cs: Account for the drawing of tabs borders when
35085         invalidating. If the slider was clicked dont do click detection on
35086         the tabs.
35087
35088 2005-03-23  Jackson Harper  <jackson@ximian.com>
35089
35090         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
35091
35092 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
35093
35094         * CategoryGridEntry.cs: Added
35095         * GridItem.cs: Added helper properties
35096         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
35097         * GridEntry.cs: Updated code for collection
35098         * PropertyGrid.cs: Cleaned up some formatting
35099         * PropertyGridView.cs: Added drop down functionality for enums.
35100         * GridItemCollection.cs: Added enumerator logic
35101         * PropertyGridEntry.cs: Added
35102
35103 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
35104
35105         * FileDialog.cs:
35106           - Removed unnecessary commented code
35107           - Fixed handling for entering the filename manually in the combobox
35108
35109 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
35110
35111         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
35112
35113 2005-03-18  Peter Bartok  <pbartok@novell.com>
35114
35115         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
35116           them being touching the border
35117
35118 2005-03-18  Peter Bartok  <pbartok@novell.com>
35119
35120         * TextControl.cs: Quick hack to center text better
35121
35122 2005-03-18  Peter Bartok  <pbartok@novell.com>
35123
35124         * ControlPaint.cs:
35125           - Don't throw NotImplemented exceptions, just print a notice once
35126             instead (requested by Miguel). This makes running existing SWF
35127             apps a bit easier
35128         * Control.cs:
35129           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
35130           - Added context menu trigger on right click
35131         * Panel.cs: Trigger invalidate on resize
35132         * StatusBar.cs:
35133           - Removed old double-buffer drawing
35134           - Added ResizeRedraw style to force proper update of statusbar
35135         * ListView.cs:
35136           - Removed debug output
35137         * ThemeWin32Classic.cs:
35138           - Fixed drawing of status bar, now draws Text property if there
35139             are no defined panels
35140
35141 2005-03-18  Jackson Harper  <jackson@ximian.com>
35142
35143         * ImageList.cs: When the image stream is set pull all the images
35144         from it.
35145         * ImageListStreamer.cs: Implement reading image list streams.
35146
35147 2005-03-18  Peter Bartok  <pbartok@novell.com>
35148
35149         * ThemeWin32Classic.cs (DrawPictureBox):
35150           - Fixed calculations for centered drawing
35151           - Fixed drawing for normal mode, not scaling the image on normal
35152
35153 2005-03-18  Peter Bartok  <pbartok@novell.com>
35154
35155         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
35156           textbox
35157         * FileDialog.cs:
35158           - Made Open/Save button the accept button for FileDialog
35159           - Tied the cancel button to the IButtonControl cancel button
35160           - Save/Open now properly builds the pathname
35161           - Now handles user-entered text
35162           - Preventing crash on right-click if no item is selected
35163           - Fixed Text property, now uses contents of textbox
35164           - Fixed SelectedText property, now just returns the text part that
35165             is selected in the text box
35166
35167 2005-03-18  Jackson Harper  <jackson@ximian.com>
35168
35169         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
35170         rect, make sure to de-adjust the interior rect after drawing the
35171         tab text.
35172
35173 2005-03-18  Peter Bartok  <pbartok@novell.com>
35174
35175         * MenuAPI.cs: Remove menu *before* executing selected action to
35176           prevent the menu from 'hanging around'
35177           
35178 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
35179
35180         * XplatUIOSX.cs: Implemented WorkingArea property
35181
35182 2005-03-17  Peter Bartok  <pbartok@novell.com>
35183
35184         * XplatUIX11.cs: Fixed menu coord calculations
35185         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
35186           for calculating offsets
35187
35188 2005-03-17  Peter Bartok  <pbartok@novell.com>
35189
35190         * Hwnd.cs: Do not consider menu presence for default client
35191           rectangle location/size
35192         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
35193           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
35194           translation functions
35195         * FileDialog.cs: Fixed (what I presume is a) typo
35196
35197 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
35198
35199         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
35200           X access (avoids X-Async errors)
35201
35202 2005-03-16  Jackson Harper  <jackson@ximian.com>
35203
35204         * TabControl.cs: Raise the SelectedIndexChanged event.
35205
35206 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
35207
35208         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
35209           - Removed vertical ToolBar and replaced it with a custom panel
35210             (desktop and home button already work)
35211           - Added Help button (some controls get resized or relocated then)
35212           - Draw correct text depending on Open or Save.
35213           - Fixed some typos...
35214
35215 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
35216
35217         * ScrollBar.cs:
35218           - Only change Maximum and Minimum when need it (bug fix)
35219
35220 2005-03-15  Peter Bartok  <pbartok@novell.com>
35221
35222         * Form.cs: Use Handle for icon, to trigger creation if
35223           the window does not yet exist
35224         * Control.cs:
35225           - CanSelect: Slight performance improvement
35226           - Focus(): Preventing possible recursion
35227           - Invalidate(): Removed ControlStyle based clear flag setting
35228           - WM_PAINT: fixed logic for calling OnPaintBackground
35229           - WM_ERASEBKGND: Fixed logic, added call to new driver method
35230             EraseWindowBackground if the control doesn't paint background
35231         * XplatUIWin32.cs:
35232           - Moved EraseWindowBackground() method to internal methods
35233           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
35234             is sent via SendMessage on BeginPaint call on Win32
35235         * XplatUIX11.cs:
35236           - Added EraseWindowBackground() method
35237           - No longer sends WM_ERASEBKGND on .Expose, but on call to
35238             PaintEventStart, which more closely matches Win32 behaviour
35239           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
35240           - Fixed SetFocus() to properly deal with client and whole windows
35241         * Hwnd.cs: Added ErasePending property
35242         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
35243         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
35244
35245 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
35246
35247         * XplatUIOSX.cs:
35248           - Fix hard loop when timers exist.
35249           - Fix bugs with middle and right click for 3 button mice.
35250
35251 2005-03-11  Peter Bartok  <pbartok@novell.com>
35252
35253         * XplatUIX11.cs:
35254           - get_WorkingArea: Need to call X directly, GetWindowPos only
35255             returns cached data now
35256           - Added sanity check to GetWindowPos hwnd usage
35257
35258 2005-03-11  Jackson Harper  <jackson@ximian.com>
35259
35260         * BindingManagerBase.cs: This method isn't used anymore as
35261         PullData now updates the data in the control.
35262
35263 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
35264
35265         * Form.cs: fixes menu drawing on X11
35266         * MenuAPI.cs:  fixes menu drawing on X11
35267
35268 2005-03-11  Peter Bartok  <pbartok@novell.com>
35269
35270         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
35271           from Jonathan Gilbert; should fix bug #73606
35272         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
35273           in Screen coordinates. Thanks, Jordi.
35274         * Form.cs: Added missing attribute
35275
35276 2005-03-11  Peter Bartok  <pbartok@novell.com>
35277
35278         * Form.cs:
35279           - Rudimentary Mdi support
35280           - Removed outdated FormParent code
35281           - Implemented lots of missing properties and methods, still missing
35282             transparency support
35283           - Added missing attributes
35284           - Implemented support for MaximumBounds
35285           - Added firing of various events
35286         * XplatUI.cs: Added SetIcon() method
35287         * XplatUIDriver.cs: Added SetIcon() abstract
35288         * XplatUIOSX.cs: Stubbed out SetIcon() method
35289         * XplatUIX11.cs:
35290           - Implemented SetIcon() support
35291           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
35292           - Switched to unix line endings
35293         * XplatUIWin32.cs:
35294           - Made POINT internal so for can access it as part of MINMAX
35295           - Implemented SetIcon() support
35296           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
35297             native Mdi support again, might have to go managed)
35298         * Control.cs: Now fires the StyleChanged event
35299         * MdiClient.cs: Added; still mostly empty
35300
35301 2005-03-10  Peter Bartok  <pbartok@novell.com>
35302
35303         * SaveFileDialog.cs: Added emtpy file
35304
35305 2005-03-08  Peter Bartok  <pbartok@novell.com>
35306
35307         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
35308           in turn triggers OnCreateContro) when creating a handle for the
35309           first time.
35310         * TextControl.cs: Fixed endless loop in certain cases when
35311           replacing the current selection
35312
35313 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
35314
35315         * ScrollBar.cs:
35316           - Honors NewValue changes in Scroll events allowing apps to change it
35317           - Adds First and Last Scroll events
35318           - Fixes Thumb events
35319
35320 2005-03-07  Peter Bartok  <pbartok@novell.com>
35321
35322         * Hwnd.cs: Added DefaultClientRectangle property
35323         * XplatUI.cs: Now using the X11 driver Where() method, which provides
35324           more detailed debug information
35325         * XplatUIX11.cs:
35326           - Fixed size-change feedback loop, where we would pull an old size
35327             off the queue and mistakenly change our window's size to an
35328             earlier value
35329           - Now compressing ConfigureNotify events, to reduce looping and
35330             redraw issues
35331         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
35332           is called
35333
35334 2005-03-07  Jackson Harper  <jackson@ximian.com>
35335
35336         * Binding.cs: Push data pushes from data -> property. Check if the
35337         property is readonly when attempting to set it.
35338
35339 2005-03-07  Jackson Harper  <jackson@ximian.com>
35340
35341         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
35342         instead of IsSubclassOf. Pulling data now sets the value on the
35343         control.
35344         * PropertyManager.cs:
35345         * CurrencyManager.cs: Just need to pull data when updating now,
35346         because PullData will set the value on the control.
35347
35348 2005-03-04  Jackson Harper  <jackson@ximian.com>
35349
35350         * Binding.cs: Implement data type parsing and converting on pulled
35351         data. TODO: Are there more ways the data can be converted?
35352
35353 2005-03-04  Jackson Harper  <jackson@ximian.com>
35354
35355         * Binding.cs: Support <Property>IsNull checks. Also bind to the
35356         controls Validating method so we can repull the data when the
35357         control loses focus.
35358
35359 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
35360
35361         * ColumnHeader.cs:
35362           - Fixes null string format
35363           
35364         * ListView.cs:
35365           - Adds enum type checks
35366           - Fixes redrawing and recalc need after changing some properties
35367           - Fixes on focus_item set after the event
35368           - Fixes adding columns after the control has been created
35369           
35370         * ThemeWin32Classic.cs:
35371           - Fixes CheckBox focus rectangle
35372           - Fixes ColumnHeader drawing
35373
35374
35375 2005-03-03  Jackson Harper  <jackson@ximian.com>
35376
35377         * Binding.cs: Bind to <Property>Changed events so we can detect
35378         when properties are changed and update the data.
35379
35380 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
35381
35382         * ImageList.cs:
35383           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
35384           - Fixes ImageList constructor with ImageList container
35385           - Fixes image scaling (wrong parameters at DrawImage)
35386
35387 2005-02-02  Jackson Harper  <jackson@ximian.com>
35388
35389         * Binding.cs: Make property searches case-insensitive. Eliminate
35390         some duplicated code.
35391
35392 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
35393
35394         * ComboBox.cs:
35395                 - Handle focus event
35396                 - Fix scrollbar events
35397                 - Discard highlighted item if remove it
35398                 - Fixes SelectedItem with strings
35399
35400 2005-03-01  Peter Bartok  <pbartok@novell.com>
35401
35402         * Control.cs:
35403           - Fixed Visible property, now follows (once again) parent chain
35404             to return false if any control in the chain is visible=false
35405           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
35406           - Fixed several places where is_visible instead of Visible was used
35407           - Implemented FIXME related to focus selection when setting focused
35408             control to be invisible
35409
35410         * XplatUIWin32.cs: Now using proper method to find out if window is
35411           visible. Thanks to Jordi for pointing it out
35412
35413 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
35414
35415         * ComboBox.cs: show/hide scrollbar instead of creating it
35416
35417 2005-02-27  Jackson Harper  <jackson@ximian.com>
35418
35419         * CurrencyManager.cs: Add PositionChanged stuff.
35420
35421 2005-02-27  Peter Bartok  <pbartok@novell.com>
35422
35423         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
35424         * XplatUIOSX.cs: Added GetMenuOrigin() stub
35425         * XplatUIWin32.cs: Implemented GetMenuOrigin()
35426         * XplatUIX11.cs:
35427           - Implemented GetMenuDC()
35428           - Implemented GetMenuOrigin()
35429           - Implemented ReleaseMenuDC()
35430           - Implemented generation of WM_NCPAINT message
35431           - Implemented generation and handling of WM_NCCALCSIZE message
35432         * Form.cs: Added debug helper message for Jordi's menu work
35433         * Hwnd.cs:
35434           - Modified ClientRect property; added setter, fixed getter to handle
35435             setting of ClientRect
35436           - Added MenuOrigin property
35437
35438 2005-02-26  Peter Bartok  <pbartok@novell.com>
35439
35440         * XplatUIX11.cs:
35441           - Destroys the caret if a window that's being destroyed contains it
35442           - Ignores expose events coming from the X11 queue for windows that
35443             already are destroyed
35444           - Now uses the proper variable for handling DestroyNotify, before we
35445             marked the wrong window as destroyed
35446           - Improved/added some debug output
35447
35448 2005-02-26  Peter Bartok  <pbartok@novell.com>
35449
35450         * X11Keyboard.cs: Fixes to work on 64bit systems
35451
35452 2005-02-26  Peter Bartok  <pbartok@novell.com>
35453
35454         * Control.cs:
35455           - Now calling OnHandleDestroyed from DestroyHandle()
35456             instead of Dispose()
35457           - Removed bogus call to controls.Remove() from DestroyHandle()
35458
35459 2005-02-26  Peter Bartok  <pbartok@novell.com>
35460
35461         * Control.cs: Properly destroy child windows when our handle is
35462           destroyed
35463
35464 2005-02-25  Peter Bartok  <pbartok@novell.com>
35465
35466         * XplatUI.cs:
35467           - Added 'DriverDebug' define to allow tracing XplatUI API calls
35468           - Alphabetized Static Methods and Subclasses
35469
35470         * XplatUIX11.cs:
35471           - Added XException class to allow custom handling of X11 exceptions
35472           - Created custom X11 error handler, tied into XException class
35473           - Added support for MONO_XEXCEPTIONS env var to allow the user
35474             to either throw an exception on X errors or continue running
35475             after displaying the error
35476           - Added handling of DestroyNotify message
35477           - Added handler for CreateNotify message (still disabled)
35478           - Improved (tried to at least) Where method to provide file and lineno
35479         * X11Structs.cs:
35480           - Added XErrorHandler delegate
35481           - Added XRequest enumeration (to suppor translation of errors)
35482
35483 2005-02-25  Jackson Harper  <jackson@ximian.com>
35484
35485         * PropertyManager.cs: Implement editing features
35486         * CurrencyManager.cs:
35487         * Binding.cs: First attempt at UpdateIsBinding
35488         * BindingManagerBase.cs: Call UpdateIsBinding before
35489         pushing/pulling data.
35490
35491 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
35492
35493         * MenuAPI.cs: Respect disabled items
35494         * ThemeWin32Classic.cs
35495                 - Caches ImageAttributes creation for DrawImageDisabled
35496                 - Fixes vertical menu line drawing
35497                 - Draws disabled arrows in disable menu items
35498
35499 2005-02-24  Peter Bartok  <pbartok@novell.com>
35500
35501         * Hwnd.cs:
35502           - Added UserData property to allow associating arbitrary objects
35503             with the handle
35504           - Fixed leak; now removing Hwnd references from static windows array
35505         * XplatUIWin32.cs:
35506           - Fixed Graphics leak in PaintEventEnd
35507           - Removed usage of HandleData, switched over to Hwnd class
35508         * HandleData.cs: Removed, obsoleted by Hwnd.cs
35509
35510 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
35511
35512         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
35513         * ScrollBar.cs: Fixes bug
35514         * TrackBar.cs: removes death code, clipping, mimize refreshes,
35515          keyboard navigation enhancements
35516
35517 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
35518
35519         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
35520         * GroupBox.cs: Add control styles
35521         * Label.cs: Add control styles
35522         * UpDownBase.cs: Add control styles
35523         * ListBox.cs: Add control styles
35524         * XplatUIWin32.cs: Fixes wrong parameter order
35525
35526
35527 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
35528
35529         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
35530
35531 2005-02-23  Jackson Harper  <jackson@ximian.com>
35532
35533         * PropertyManager.cs: Implement property binding. This doesn't
35534         seem to work yet though as (I think) there are some bugs in
35535         System.ComponentModel.PropertyDescriptor.
35536         * BindingContext.cs: Use new PropertyManager constructor.
35537
35538 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
35539
35540         * ProgressBar.cs: use clip region in ProgressBar
35541         * ThemeWin32Classic.cs: use clip region in ProgressBar
35542
35543 2004-02-22  Jackson Harper  <jackson@ximian.com>
35544
35545         * BindingsCollection.cs: Remove some debug code.
35546
35547 2005-02-22  Jackson Harper  <jackson@ximian.com>
35548
35549         * BindingContext.cs:
35550         * ControlBindingsCollection.cs:
35551         * CurrencyManager.cs:
35552         * Binding.cs:
35553         * BindingManagerBase.cs: Initial implementation
35554         * BindingsCollection.cs: Add an internal contains method that the
35555         BindingManagerBase uses to ensure bindings aren't added twice to
35556         the collection.
35557         * PropertyManager.cs: Stubbed out.
35558         * Control.cs:
35559         * ContainerControl.cs: Hook up databinding
35560         
35561 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
35562
35563         * XplatUIOSX.cs:
35564           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
35565           Fixed Invalidate/Update chain.
35566           Fixed tons of other minor bugs (this is almost a complete rewrite).
35567
35568 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
35569
35570         * ComboBox.cs: do subcontrol creation when the control is created
35571
35572 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
35573
35574         * Label.cs: fixes image drawing (image and imagelist)
35575         * ThemeWin32Classic.cs: cache brushes
35576         
35577 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
35578
35579         * Form.cs: Move menu drawing code to Theme class
35580         * ComboBox.cs: Move ComboBox drawing code to Theme class
35581         * MenuItem.cs: Move menu drawing code to Theme class
35582         * MenuAPI.cs: Move menu drawing code to Theme class
35583         * ThemeWin32Classic.cs: New methods
35584         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
35585         * ListBox.cs: Move Listbox drawing code to Theme class
35586         * Theme.cs: New methods
35587
35588 2005-02-20  Peter Bartok  <pbartok@novell.com>
35589
35590         * Control.cs:
35591           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
35592             only process mnemonics on those)
35593           - Fixed event sequence for key handling; first calling
35594             ProcessKeyEventArgs now
35595         * TextBoxBase.cs:
35596           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
35597             for processing non-character keys
35598           - Fixed WM_CHAR to generate proper event sequence before processing
35599         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
35600           generation
35601
35602 2005-02-19  Peter Bartok  <pbartok@novell.com>
35603
35604         * UserControl.cs: Added TextChanged event; added attributes
35605         * SizeGrip.cs: Implemented resizing and optional display of grip
35606         * Form.cs: Fixed attribute
35607         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
35608           Changed meaning of ScrollWindow bool argument; instead of the
35609           clear attribute (which will be true usually anyway), it gives the
35610           option of moving child controls as well.
35611         * XplatUIX11.cs:
35612           - Changed to match new ScrollWindow argument
35613           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
35614             now handles the implicit parent window a WM puts around us
35615         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
35616           to work)
35617         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
35618         * TreeView.cs: Adjusted to new ScrollWindow arguments
35619
35620 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
35621
35622         * Form.cs: Menu integration with non-client area
35623         * MenuItem.cs: Menu integration with non-client area
35624         * MenuAPI.cs: Menu integration with non-client area
35625
35626 2005-02-18  Peter Bartok  <pbartok@novell.com>
35627
35628         * MethodInvoker.cs: Added
35629         * MdiLayout.cs: Added
35630         * SendKeys.cs: Started implementation
35631         * ErrorIconAlignment.cs: Added
35632
35633 2005-02-18  Peter Bartok  <pbartok@novell.com>
35634
35635         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
35636         * Form.cs: Added handling for Menu-related Non-client messages
35637
35638 2005-02-17  Peter Bartok  <pbartok@novell.com>
35639
35640         * UpDownBase.cs: Fixed typo, compilation errors
35641         * DomainUpDown.cs: Fixed attribute value
35642
35643 2005-02-16  Miguel de Icaza  <miguel@novell.com>
35644
35645         * UpDownBase.cs: Attach entry events.
35646         Propagate events.
35647         Add ForeColor property, Focused, InterceptArrowKeys (interception
35648         does not work yet).
35649
35650 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
35651
35652         * Form.cs:
35653                 - Redraw non client are on Setmenu
35654                 - Calc proper menu starting point
35655
35656 2005-02-17  Peter Bartok  <pbartok@novell.com>
35657
35658         * Application.cs: Fixed message_filter check
35659
35660 2005-02-17  Peter Bartok  <pbartok@novell.com>
35661
35662         * Application.cs: Now calls registered message filters
35663         * DockStyle.cs: Fixed attribute
35664         * Form.cs: Fixed attribute
35665         * Menu.cs: Fixed attribute
35666         * ToolTip.cs: Fixed attribute
35667         * TreeNode.cs: Added missing attributes and arranged in regions
35668         * PropertyGrid.cs: Fixed signatures
35669         * TreeNodeCollection.cs: Added attributes
35670         * Splitter.cs: Added missing attributes; arranged into regions
35671         * TabPage.cs: Added missing attributes; arranged into regions
35672         * TextBoxBase.cs: Added missing attributes
35673         * TextBox.cs: Added missing attributes
35674         * ArrangeDirection.cs: Added missing attributes
35675         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
35676         * ToolBarButton.cs: Fixed attributes
35677         * AnchorStyles.cs: Fixed attribute
35678         * TrackBar.cs: Fixed attributes
35679         * TabControl.cs: Added missing attributes and arranged into regions
35680         * ToolBar.cs: Fixed attribute
35681         * StatusBar.cs: Fixed signature, organized into regions and added
35682           attributes
35683         * StatusBarPanel.cs: Fixed attributes
35684         * ContentsResizedEventArgs.cs: Implemented
35685         * ContentsResizedEventHandler.cs: Implemented
35686         * DateBoldEventArgs.cs: Implemented
35687         * DateBoldEventHandler.cs: Implemented
35688         * UpDownEventArgs.cs: Implemented
35689         * UpDownEventHandler.cs: Implemented
35690         
35691 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
35692
35693         * Form.cs: first Menu NC refactoring
35694         * MenuAPI.cs: first Menu NC refactoring
35695         
35696 2005-02-16  Peter Bartok  <pbartok@novell.com>
35697
35698         * ImeMode.cs: Added missing attributes
35699         * Menu.cs: Fixed attribute
35700         * GroupBox.cs: Fixed attribute
35701         * Label.cs: Fixed attribute
35702         * ColorDialog.cs (RunDialog): Removed TODO attribute
35703         * ComboBox.cs: Fixed attributes
35704         * ListControl.cs: Added missing attributes
35705         * PropertyGrid.cs: Fixed attributes
35706         * Control.cs: Fixed attributes
35707         * ListViewItem.cs: Added TypeConverter attribute
35708         * NotifyIcon.cs: Fixed attributes
35709         * ListView.cs: Fixed attributes
35710         * ButtonBase.cs: Fixed attribute
35711         * ImageList.cs: Added missing attributes
35712         * ContainerControl.cs: Fixed signature
35713         * CheckedListBox.cs: Fixed attribute; added missing attributes
35714         * Panel.cs: Fixed attributes
35715         * PropertyTabChangedEventArgs.cs: Added missing attribute
35716         * PropertyValueChangedEventArgs.cs: Added missing attribute
35717         * Binding.cs: Fixed attribute
35718         * ListViewItemConverter: Implemented ListViewSubItemConverter class
35719         * ListBox.cs: Fixed attribute; added missing attributes;
35720         * ScrollableControl.cs: Added missing attributes
35721         * PictureBox.cs: Added missing attributes; implemented missing property
35722         * DateTimePicker.cs: Added missing attributes
35723         * Theme.cs (ToolWindowCaptionHeight): Fixed type
35724         * MonthCalendar.cs: Fixed attributes
35725         * StatusBarPanel.cs: Added missing attributes
35726         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
35727
35728 2005-02-16  Peter Bartok  <pbartok@novell.com>
35729
35730         * TextBoxBase.cs: The previous method to enforce height yet remember
35731           the requested high was less than ideal, this is an attempt to do
35732           it better.
35733         * Control.cs: Added comment about possible problem
35734         * Copyright: Updated format
35735         * GridItemType.cs: Fixed swapped values
35736
35737 2005-02-15  Jackson Harper  <jackson@ximian.com>
35738
35739         * BaseCollection.cs: Use property so we never access an
35740         uninitialized list. Also initialize the list in the property.
35741
35742 2005-02-15  Peter Bartok  <pbartok@novell.com>
35743
35744         * GroupBox.cs (ProcessMnemonic): Implemented
35745         * Label.cs (ProcessMnemonic): Implemented
35746         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
35747           hotkeys
35748
35749 2005-02-15  Peter Bartok  <pbartok@novell.com>
35750
35751         * RadioButton.cs (ProcessMnemonic): Implemented
35752         * CheckBox.cs (ProcessMnemonic): Implemented
35753         * Control.cs:
35754           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
35755             handling
35756           - Added internal method to allow calling ProcessMnemonic from other
35757             controls
35758         * ContainerControl.cs:
35759           - Started support for handling validation chain handling
35760           - Implemented ProcessMnemonic support
35761           - Added Select() call to Active, to make sure the active control
35762             receives focus
35763         * Form.cs: Setting toplevel flag for Forms (this was lost in the
35764           FormParent rewrite)
35765         * ThemeWin32Classic.cs:
35766           - DrawCheckBox(): Fixed stringformat to show hotkeys
35767           - DrawRadioButton(): Fixed stringformat to show hotkeys
35768         * CommonDialog.cs: Removed WndProc override, not needed
35769
35770 2005-02-14  Peter Bartok  <pbartok@novell.com>
35771
35772         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
35773           missed those in the rewrite
35774
35775 2005-02-14  Miguel de Icaza  <miguel@novell.com>
35776
35777         * NumericUpDown.cs (Increment, ToString): Add.
35778         (DecimalPlaces): implement.
35779         
35780         Add attributes.
35781         
35782         * UpDownBase.cs: Add the designer attributes.
35783
35784 2005-02-13  Peter Bartok  <pbartok@novell.com>
35785
35786         * Panel.cs: Removed border_style, now in Control
35787         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
35788           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
35789
35790 2005-02-13  Peter Bartok  <pbartok@novell.com>
35791
35792         * MouseButtons.cs: Added missing attributes
35793         * XplatUIStructs.cs: Added enumeration for title styles
35794         * LeftRightAlignment.cs: Added missing attributes
35795         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
35796           it compatible with Graphics.FromHwnd()
35797         * SelectedGridItemChangedEventArgs.cs: Fixed property type
35798         * Keys.cs: Added missing attributes
35799         * SelectionRange.cs: Added missing attributes
35800         * SelectionRangeConverter.cs: Added
35801         * XplatUI.cs:
35802           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
35803             ReleaseMenuDC methods
35804           - Renamed ReleaseWindow to UngrabWindow
35805           - Added proper startup notice to allow version identification
35806         * Form.cs:
35807           - Added missing attributes
35808           - Removed FormParent concept
35809         * Label.cs: Removed border_style field, now in Control
35810         * RadioButton.cs: Now properly selects RadioButton when focus is
35811           received
35812         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
35813         * Control.cs:
35814           - Added missing attributes
35815           - Added borderstyle handling
35816           - Removed FormParent concept support
35817           - Fixed calls to XplatUI to match changed APIs
35818           - Fixed bug that would case us to use disposed Graphics objects
35819           - Removed unneeded internal methods
35820           - PerformLayout(): Fixed to handle DockStyle.Fill properly
35821           - SelectNextControl(): Fixed to properly check common parents
35822         * TextBoxBase.cs: Removed border_style field (now in Control)
35823         * MessageBox.cs:
35824           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
35825             fixed calculations for form size
35826           - Added support for localized strings and icons
35827           - Improved form size calculations, added border
35828         * ListView.cs: Removed border_style field (now in Control)
35829         * X11Structs.cs: Moved several structs from X11 driver here
35830         * X11Keyboard.cs: Changed debug message
35831         * Application.cs: Removed FormParent concept support
35832         * CommonDialog.cs:
35833           - Resetting end_modal flag
35834           - Removed FormParent concept support
35835         * NativeWindow.cs: Removed FormParent concept support
35836         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
35837           Client area and Non-Client whole window to allow support for WM_NC
35838           messages
35839         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
35840           prevent using it until it supports Hwnd as per Geoff Norton's request
35841         * ToolBar.cs: Fixed drawing, was not doing proper drawing
35842         * PictureBox.cs: Removed border_style field, now in Control
35843         * XplatUIWin32.cs: Added new driver methods
35844
35845 2005-02-12  Peter Bartok  <pbartok@novell.com>
35846
35847         * OpacityConverter.cs: Implemented
35848         * Hwnd.cs: Internal class to support drivers that need to emulate
35849           client area/non-client area window behaviour
35850
35851 2005-02-11  Peter Bartok  <pbartok@novell.com>
35852
35853         * KeysConverter.cs: Implemented
35854
35855 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
35856
35857         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
35858         * LinkLabel: Added missing attributes
35859         * MainMenu.cs: fixes ToString
35860         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
35861         * ListBox.cs: fixes event position
35862         * TrackBar.cs: adds missing attributes and events
35863         
35864 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
35865
35866         * MenuItem.cs: Use SystemInformation and bug fixes
35867         * MenuAPI.cs: Use SystemInformation and bug fixes
35868
35869 2005-02-09  Jackson Harper  <jackson@ximian.com>
35870
35871         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
35872         their keystate otherwise things like VK_MENU get stuck "on".
35873
35874 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
35875
35876         * ListBox.cs: Fixes AddRange bug
35877         
35878 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
35879
35880         * ProgressBar.cs
35881                 - Add missing attributes
35882                 - Add missing method
35883                 
35884         * CheckedListBox.cs: Added missing attributes
35885                 - Add missing attributes
35886                 - Remove extra method
35887         
35888         * ComboBox.cs: Added missing attributes
35889         * VScrollBar.cs: Added missing attributes
35890         * ScrollBar.cs:  Added missing attributes
35891         * ListBox.cs: Fixes signature, add missing consts
35892         * LinkArea.cs:   Added missing attributes
35893         
35894
35895 2005-02-08  Peter Bartok  <pbartok@novell.com>
35896
35897         * Menu.cs: Added missing attributes
35898         * MainMenu.cs: Added missing attributes
35899         * GroupBox.cs: Added missing attributes
35900         * Label.cs: Added missing attributes
35901         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
35902         * ColorDialog.cs:
35903           - Added Instance and Options properties
35904           - Added missing attributes
35905         * Cursor.cs: Made Serializable
35906         * NotifyIcon: Added missing attributes
35907         * MenuItem.cs: Added missing attributes
35908         * TextBoxBase.cs: Implemented AppendText() and Select() methods
35909         * Panel.cs: Added Missing attributes
35910         * MonthCalendar.cs: Fixed CreateParams
35911
35912 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
35913         
35914         * LinkLabel.cs:
35915                 - Fixes signature
35916                 - Fixes issues with links
35917                 - Adds the class attributes
35918
35919 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
35920         
35921         * ComboBox.cs:
35922                 - Fixes button when no items available in dropdown
35923                 - Fixes repainting problems
35924                 - Adds the class attributes
35925                 
35926 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
35927
35928         * XplatUIOSX.cs: Detect the menu bar and title bar height from
35929         the current theme.  Cache these on startup.
35930
35931 2005-02-07  Jackson Harper  <jackson@ximian.com>
35932
35933         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
35934         the scrollbar buttons when they are depressed.
35935
35936 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
35937
35938         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
35939         Get the display size from the main displayid.  We currently dont
35940         support multiple display configurations.
35941
35942 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
35943
35944         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
35945
35946 2005-02-07  Miguel de Icaza  <miguel@novell.com>
35947
35948         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
35949
35950 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
35951
35952         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
35953
35954 2005-02-04  Jackson Harper  <jackson@ximian.com>
35955
35956         * ThemeWin32Classic.cs: Respect the clipping rect when
35957         drawing. Only fill the intersection of clips and rects so there
35958         isn't a lot of large fills.
35959         * ScrollBar.cs: Pass the correct clipping rect to the theme
35960         engine. Remove some debug code.
35961
35962 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
35963         
35964         * DateTimePicker.cs:
35965                 - Fixed crash on DateTime.Parse, use Constructor instead
35966
35967 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
35968         
35969         * MenuItem.cs:
35970         * MenuAPI.cs:
35971                 - Owner draw support (MeasureItem and DrawItem)
35972
35973 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
35974         
35975         *  Menu.cs:
35976                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
35977                 - Fixes MenuItems.Add range
35978         * MenuItem.cs:
35979                 - MergeMenu and Clone and CloneMenu functions
35980
35981 2005-02-03  Jackson Harper  <jackson@ximian.com>
35982
35983         * ScrollBar.cs: Make abstract
35984         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
35985         is abstract.
35986
35987 2005-02-03  Jackson Harper  <jackson@ximian.com>
35988
35989         * ScrollBar.cs: First part of my scrollbar fixups. This removes
35990         all the unneeded refreshes and uses invalidates with properly
35991         computed rects.
35992
35993 2005-02-03  Peter Bartok  <pbartok@novell.com>
35994
35995         * ComponentModel.cs: Added
35996         * IDataGridEditingService.cs: Added
35997         * Timer.cs: Added missing attributes
35998         * ToolTip.cs: Added missing attributes
35999
36000 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
36001
36002         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
36003
36004 2005-02-03  Peter Bartok  <pbartok@novell.com>
36005
36006         * ListBox.cs: Added missing attributes
36007
36008 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
36009         
36010         * ListBox.cs:
36011                 - Fixes font height after font change
36012                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
36013                 
36014 2005-02-02  Peter Bartok  <pbartok@novell.com>
36015
36016         * HandleData.cs: Introduced static methods to allow class
36017           to be more self-contained and track it's own HandleData objects
36018         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
36019           HandleData to use new static methods
36020
36021 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
36022
36023         * Combobox.cs:
36024                 - Fixes default size and PreferredHeight
36025                 - Missing events
36026                 - ObjectCollection.Insert implementation
36027                 
36028         * ListControl.cs
36029                 - Fixes signature
36030         * ListBox.cs:
36031                 - Several fixes
36032                 - ObjectCollection.Insert implementation
36033                 - No selection after clean
36034                 - Small fixes
36035
36036 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
36037
36038         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
36039
36040 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
36041
36042         * Combobox.cs:
36043                 - Caches ItemHeight calculation for OwnerDrawVariable
36044                 - Handles dropdown properly
36045                 - Fixes several minor bugs
36046
36047 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
36048
36049         * ListBox.cs:
36050                 - Fixes 71946 and 71950
36051                 - Fixes changing Multicolumn on the fly
36052                 - Fixes keyboard navigation on Multicolumn listboxes
36053
36054 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
36055         
36056         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
36057         crash reporter log.
36058
36059 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
36060
36061         * XplatUIOSX.cs: Allow applications to actually exit.
36062
36063 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
36064
36065         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
36066         their parent at creation time rather than lazily later.  Fixes a major
36067         regression we were experiencing.
36068
36069 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
36070
36071         * ThemeWin32Classic.cs: more date time picker painting fixes
36072         * DateTimePicker.cs: more monthcalendar drop down fixes
36073         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
36074
36075 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
36076
36077         * ScrollBar.cs:
36078                 - When moving the thumb going outside the control should stop the moving
36079                 - Adds the firing of missing events
36080                 - Fixes no button show if Size is not specified
36081                 - End / Home keys for keyboard navigation
36082
36083 2005-01-30  Peter Bartok  <pbartok@novell.com>
36084
36085         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
36086           sanity check to prevent theoretical loop
36087         * XplatUIWin32.cs (SetVisible): Removed debug output
36088         * XplatUIX11.cs (SystrayChange): Added sanity check
36089         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
36090         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
36091           behaviour, valid until the X11 client window rewrite is done
36092         * TextBox.cs (ctor): Setting proper default foreground and background
36093           colors
36094
36095 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
36096
36097         * Theme: Added DrawDateTimePicker to interface
36098         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
36099         * DateTimePicker.cs: Created (still needs keys and painting code)
36100         * DateTimePickerFormat.cs: added
36101         * MonthCalendar.cs: fixed CreateParams for popup window mode
36102           
36103 2005-01-29  Peter Bartok  <pbartok@novell.com>
36104
36105         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
36106           this should also the calculations for ligher/darker
36107         * Theme.cs: Fixed defaults for ScrollBar widths/heights
36108
36109 2005-01-29  Peter Bartok  <pbartok@novell.com>
36110
36111         * ArrangeDirection.cs: Added
36112         * ArrangeStartingPositon.cs: Added
36113         * SystemInformation.cs: Implemented
36114         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
36115           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
36116           used by SystemInformation class
36117         * X11Strucs.cs: Added XSizeHints structure
36118         * MenuAPI.cs:
36119           - Fixed CreateParams to make sure the menu window is always visible
36120           - TrackPopupMenu: Added check to make sure we don't draw the
36121             menu offscreen
36122
36123 2005-01-29  Peter Bartok  <pbartok@novell.com>
36124
36125         * HandleData.cs: Added method for altering invalid area
36126         * TextBoxBase.cs: Implemented TextLength
36127
36128 2005-01-28  Peter Bartok  <pbartok@novell.com>
36129
36130         * XplatUIX11.cs: Improvement over last patch, not sending
36131           the WM_PAINT directly anymore, instead we scroll any pending
36132           exposed areas and let the system pick out the WM_PAINT later
36133
36134 2005-01-28  Peter Bartok  <pbartok@novell.com>
36135
36136         * SWF.csproj: Deleted, no longer used. Instead,
36137           Managed.Windows.Forms/SWF.csproj should be used
36138         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
36139           directly, to avoid a potential race condition with the next
36140           scroll
36141
36142 2005-01-28  Peter Bartok  <pbartok@novell.com>
36143
36144         * XplatUI.cs: Made class internal
36145
36146 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
36147
36148         * CheckedListBox.cs:
36149                 - Draw focus
36150                 - Fixed Drawing
36151                 - Missing methods and events
36152
36153 2005-01-27  Peter Bartok  <pbartok@novell.com>
36154
36155         * Application.cs (Run): Don't use form if we don't have one
36156
36157 2005-01-27  Peter Bartok  <pbartok@novell.com>
36158
36159         * TextBoxBase.cs (get_Lines): Fixed index off by one error
36160
36161 2005-01-27  Peter Bartok  <pbartok@novell.com>
36162
36163         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
36164         * GridItem.cs: Added; Patch by Jonathan S. Chambers
36165         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
36166         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
36167         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
36168         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
36169         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
36170         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
36171         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
36172         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
36173         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
36174         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
36175
36176 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
36177
36178         * Combobox.cs:
36179                 - Draw focus on Simple Combobox
36180                 - Fixes drawing issues
36181                 - fixes 71834
36182
36183 2005-01-27  Peter Bartok  <pbartok@novell.com>
36184
36185         * Form.cs:
36186           - Place window in default location, instead of hardcoded 0/0
36187           - Send initial LocationChanged event
36188         * Control.cs:
36189           - UpdateBounds after creation to find out where the WM placed us
36190           - Make sure that if the ParentForm changes location the Form
36191             is notified
36192         * XplatUIX11.cs: XGetGeometry will not return the coords relative
36193             to the root, but to whatever the WM placed around us.
36194             Translate to root coordinates before returning toplevel
36195             coordinates
36196         * XplatUIWin32.cs: Removed debug output
36197         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
36198           flag to GetWindowPos, to allow translation of coordinates on X11
36199
36200 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
36201
36202         * ListBox.cs: connect LostFocus Event
36203
36204 2005-01-27  Peter Bartok  <pbartok@novell.com>
36205
36206         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
36207           XplatUIX11.cs: Extended the Systray API
36208         * Form.cs: Removed debug output
36209         * Application.cs: Fixed focus assignment, always need to call
36210           XplatUI.Activate() since Form.Activate() has rules that may
36211           prevent activation
36212         * NotifyIcon.cs: Should be complete now
36213         * ToolTip.cs: Worked around possible timer bug
36214
36215 2005-01-27  Jackson Harper  <jackson@ximian.com>
36216
36217         * TabControl.cs:
36218         - Only invalidate the effected tabs when the
36219         selected index changes. This reduces drawing and gets rid of some
36220         flicker.
36221         - Only refresh if the tabs need to be shifted, otherwise only
36222         invalidate the slider button.
36223         - On windows the tabs are not filled to right if the slider is
36224         visible.
36225         
36226 2005-01-27  Jackson Harper  <jackson@ximian.com>
36227
36228         * TabControl.cs: Only refresh on mouseup if we are showing the
36229         slider. Also only invalidate the button whose state has changed.
36230
36231 2005-01-26  Peter Bartok  <pbartok@novell.com>
36232
36233         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
36234         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
36235           and SystrayRemove() methods
36236         * XplatUIOSX.cs: Stubbed Systray methods
36237         * XplatUIX11.cs:
36238           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
36239             methods
36240           - Fixed broken XChangeProperty calls (marshalling messed up things)
36241         * X11Structs.cs: Added enums and structs required for Size hinting
36242         * NotifyIcon.cs: Added & implemented
36243
36244 2005-01-26  Jackson Harper  <jackson@ximian.com>
36245
36246         * TabControl.cs: Space vertically layed out tabs properly.
36247
36248 2005-01-26  Peter Bartok  <pbartok@novell.com>
36249
36250         * Form.cs (CreateClientParams): Always set the location to 0,0
36251           since we're a child window.
36252
36253         * Control.cs (SetVisibleCore): Always explicitly setting the location
36254           of a toplevel window, apparently X11 doesn't like to move windows
36255           while they're not mapped.
36256
36257 2005-01-26  Jackson Harper  <jackson@ximian.com>
36258
36259         * TabControl.cs: Implement FillToRight size mode with vertically
36260         rendered tabs.
36261
36262 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
36263
36264         * ControlPaint.cs, ThemeWin32Classic.cs
36265                 - Fixes DrawFocusRectangle
36266
36267 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
36268
36269         * MenuAPI.cs:
36270                 - MenuBar tracking only starts when item is first clicked
36271                 - Fixes menu hidding for multiple subitems
36272                 - Unselect item in MenuBar when item Executed
36273                 - Fixes bug 71495
36274
36275 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
36276
36277         * ListControl.cs:
36278                 - IsInputKey for ListBox
36279         * ListBox.cs:
36280                 - Focus item
36281                 - Shift and Control item selection
36282                 - Implement SelectionMode.MultiExtended
36283                 - Fixes RightToLeft
36284         * ComboBox.cs:
36285                 - IsInputKey implemented
36286                 - Do not generate OnTextChangedEdit on internal txt changes
36287                 
36288 2005-01-23  Peter Bartok  <pbartok@novell.com>
36289
36290         * AccessibleObject.cs: Partially implemented Select()
36291         * MonthCalendar.cs: Added missing attributes and events
36292         * Form.cs: Fixed CreateParams behaviour, now controls derived from
36293           form can properly override CreateParams.
36294         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
36295           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
36296           Control performs Invalidate & Update
36297         * NativeWindow (CreateHandle): Added special handling for Form
36298           and Form.FormParent classes to allow overriding of From.CreateParams
36299         * Control.cs:
36300           - ControlNativeWindow: Renamed 'control' variable to more intuitive
36301             name 'owner'
36302           - ControlNativeWindow: Added Owner property
36303           - Removed usage of Refresh() on property changes, changed into
36304             Invalidate(), we need to wait until the queue is processed for
36305             updates, direct calls might cause problems if not all vars for
36306             Paint are initialized
36307           - Added call to UpdateStyles() when creating the window, to set any
36308             styles that CreateWindow might have ignored.
36309           - Added support for Form CreateParent overrides to UpdateStyles()
36310         * MessageBox.cs: Removed no longer needed FormParent override stuff,
36311           CreateParams are now properly overridable
36312         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
36313           CreateParams are now properly overridable
36314
36315 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
36316
36317         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
36318         OnTextBoxChanged.
36319
36320         Capture LostFocus and OnTextBoxChanged.  The later introduces a
36321         recursive invocation that I have not figured out yet.
36322
36323         Reset the timer when not using (it was accumulating).
36324
36325
36326         (OnTextBoxChanged): Set UserEdit to true here to track whether the
36327         user has made changes that require validation.
36328
36329         Reset changing to avoid loops.
36330
36331 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
36332
36333         * NumericUpDown.cs: Display value at startup.
36334
36335         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
36336         ValidateEditText.
36337
36338         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
36339         filled in.  Added some basic parsing of text.
36340
36341         Still missing the OnXXX method overrides, and figuring out the
36342         events that must be emitted.
36343
36344         * UpDownBase.cs: Handle UserEdit on the Text property.
36345         
36346 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
36347
36348         * ComboBox.cs:
36349           - Fixes IntegralHeight
36350           - ToString method
36351
36352 2005-01-21  Jackson Harper  <jackson@ximian.com>
36353
36354         * TabControl.cs: Set the SelectedIndex property when SelectedTab
36355         is set so that the page visibility is updated and the tabs are
36356         sized correctly.
36357
36358 2005-01-21  Jackson Harper  <jackson@ximian.com>
36359
36360         * TabControl.cs: Use cliping rectangle for blitting. Give the
36361         theme the clipping rect so we can do clipping while
36362         drawing. Remove some debug code.
36363
36364 2005-01-21  Jackson Harper  <jackson@ximian.com>
36365
36366         * TabPage.cs: Add a new method so tab pages can force the tab
36367         control to recalculate the tab page sizes.
36368         * TabControl.cs: UpdateOwner needs to make the tab control recalc
36369         sizes.
36370
36371 2005-01-20  Jackson Harper  <jackson@ximian.com>
36372
36373         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
36374
36375 2005-01-20  Jackson Harper  <jackson@ximian.com>
36376
36377         * TreeView.cs: Set the bounds for nodes properly. They were
36378         getting screwed up when checkboxes were not enabled, but images
36379         were.
36380
36381 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
36382
36383         * ListBox.cs:
36384                 - Owner draw support
36385                 - Fixes
36386                 
36387 2005-01-20  Jackson Harper  <jackson@ximian.com>
36388
36389         * XplatUIStructs.cs: More misc keys
36390         * X11Keyboard.cs: Ignore some control keys.
36391
36392 2005-01-20  Jackson Harper  <jackson@ximian.com>
36393
36394         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
36395         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
36396
36397 2005-01-19  Peter Bartok  <pbartok@novell.com>
36398
36399         * Control.cs: Un-selecting the control when it is loosing focus
36400
36401 2005-01-19  Jackson Harper  <jackson@ximian.com>
36402
36403         * TreeView.cs: Hook up to the text controls leave event so we can
36404         end editing when the users clicks outside the text box.
36405         
36406 2005-01-19  Jackson Harper  <jackson@ximian.com>
36407
36408         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
36409         get set in the conversion array.
36410
36411 2005-01-19  Peter Bartok  <pbartok@novell.com>
36412
36413         * Application.cs (ModalRun): Added a call to CreateControl to ensure
36414           focus is properly set
36415         * Button.cs:
36416           - Added missing attributes
36417           - removed styles, those are already set in the base class
36418         * ButtonBase.cs:
36419           - Added missing attributes
36420           - Added clip window styles
36421         * CheckBox.cs: Added missing attributes
36422         * CommonDialog.cs:
36423           - FormParentWindow.CreateParams: Added required clip styles
36424         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
36425           also filters modifier keys
36426         * MessageBox.cs:
36427           - Added assignment of Accept and Cancel button to enable Enter
36428             and Esc keys in MessageBox dialogs
36429           - FormParentWindow.CreateParams: Added required clip styles
36430         * RadioButton.cs: Added missing attributes
36431         * TextControl.cs: No longer draws selection if control does not
36432           have focus
36433         * TextBoxBase.cs:
36434           - Now draws simple rectangle around test area to make it obvious
36435             there's a control. This is a hack until we properly support borders
36436           - A few simple fixes to support selections better, now erases selected
36437             text when typing, and resets selection when using movement keys
36438
36439 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
36440
36441         * UpDownBase.cs: Added some new properties.
36442
36443         * DomainUpDown.cs: Implement a lot to get my test working.
36444
36445 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
36446
36447         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
36448
36449 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
36450
36451         * OSXStructs (WindowAttributes): Fixed csc complaints
36452
36453 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
36454
36455         * XplayUIOSX.cs:
36456           OSXStructs.cs: Initial refactor to move enums and consts into
36457           OSXStructs and use them in the driver for greater readability.
36458
36459 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
36460
36461         * XplatUIOSX.cs: Initial support for Standard Cursors.
36462         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
36463
36464 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
36465
36466         * ComboBox.cs: ability to change style when the ctrl is already
36467         created, missing methods and events, bug fixes, signature fixes
36468
36469 2005-01-19  Peter Bartok  <pbartok@novell.com>
36470
36471         * Cursors.cs (ctor): Added ctor to fix signature
36472
36473 2005-01-18  Peter Bartok  <pbartok@novell.com>
36474
36475         * Button.cs: Implemented DoubleClick event
36476         * ButtonBase.cs:
36477           - Fixed keyboard handling to behave like MS, where the press of
36478             Spacebar is equivalent to a mousedown, and the key release is
36479             equivalent to mouseup. Now a spacebar push will give the same
36480             visual feedback like a mouse click.
36481           - Added missing attributes
36482           - Added ImeModeChanged event
36483           - Added support for generating DoubleClick event for derived classes
36484         * CheckBox.cs:
36485           - Implemented DoubleClick event
36486           - Added missing attributes
36487         * CommonDialog.cs: Added missing attribute
36488         * ContextMenu.cs: Added missing attributes
36489         * RadioButton.cs:
36490           - AutoChecked buttons do not allow to be unselected when clicked
36491             (otherwise we might end up with no selected buttons in a group)
36492           - Added missing attributes
36493           - Implemented DoubleClickEvent
36494         * ThreadExceptionDialog.cs: Enabled TextBox code
36495
36496 2005-01-18  Peter Bartok  <pbartok@novell.com>
36497
36498         * Form.cs: Removed debug output
36499         * Button.cs: Added support for DoubleClick method
36500
36501 2005-01-18  Peter Bartok  <pbartok@novell.com>
36502
36503         * Form.cs:
36504           - Added method to parent window that allows triggering size
36505             calculations when a menu is added/removed
36506           - set_Menu: Cleaned up mess from early days of Form and Control,
36507             now properly triggers a recalc when a menu is added/removed
36508           - Added case to select form itself as focused form if no child
36509             controls exist
36510           - Added PerformLayout call when showing dialog, to ensure properly
36511             placed controls
36512         * Control.cs:
36513           - Select(): Made internal so Form can access it
36514           - Focus(): Only call Xplat layer if required (avoids loop), and sets
36515             status
36516         * Application.cs (Run): Removed hack and calls PerformLayout instead
36517           to trigger calculation when Form becomes visible
36518
36519 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
36520
36521         * ComboBox.cs: fixes for ownerdraw
36522
36523 2005-01-18  Peter Bartok  <pbartok@novell.com>
36524
36525         * TextControl.cs:
36526           - Sentinel is no longer static, each Document gets it's own, this
36527             avoids locking or alternatively overwrite problems when more
36528             than one text control is used simultaneously.
36529           - Switched to use Hilight and HilightText brushes for text selection
36530
36531         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
36532
36533 2005-01-18  Peter Bartok  <pbartok@novell.com>
36534
36535         * Control.cs:
36536           - Hooked up the following events:
36537                 o ControlAdded
36538                 o ControlRemoved
36539                 o HandleDestroyed
36540                 o ImeModeChanged
36541                 o ParentChanged
36542                 o TabStopChanged
36543                 o Invalidated
36544                 o SystemColorsChanged
36545                 o ParentFontChanged
36546                 o Move
36547           - Removed debug output
36548           - Added a call to the current theme's ResetDefaults when a color change
36549             is detected
36550         * Form.cs: Now setting the proper ImeMode
36551         * Theme.cs: Defined a method to force recreation of cached resources
36552           and rereading of system defaults (ResetDefaults())
36553         * ThemeWin32Classic.cs: Added ResetDefaults() stub
36554
36555 2005-01-17  Peter Bartok  <pbartok@novell.com>
36556
36557         * Control.cs: Added missing attributes
36558
36559 2005-01-17  Jackson Harper  <jackson@ximian.com>
36560
36561         * TreeNode.cs: Implement editing. Add missing properties selected
36562         and visible.
36563         * TreeView.cs: Implement node editing. Also some fixes to use
36564         Invalidate (invalid area) instead of Refresh when selecting.
36565
36566 2005-01-17  Peter Bartok  <pbartok@novell.com>
36567
36568         * Control.cs:
36569           - Implemented InvokeGotFocus() method
36570           - Implemented InvokeLostFocus() method
36571           - Implemented InvokePaint() method
36572           - Implemented InvokePaintBackground() method
36573           - Implemented InvokeClick() method
36574           - Implemented FindForm() method
36575           - Implemented RectangleToClient() method
36576           - Implemented ClientToRectangle() method
36577           - Implemented ResetBackColor() method
36578           - Implemented ResetCursor() method
36579           - Implemented ResetFont() method
36580           - Implemented ResteForeColor() method
36581           - Implemented ResetImeMode() method
36582           - Implemented ResetLeftToRight() method
36583           - Implemented ResetText() method
36584           - Implemented Scale() methods
36585           - Implemented ScaleCore() method
36586           - Implemented Update() method
36587           - Removed unused variables
36588           - Stubbed AccessibilityNotifyClients and
36589             ControlAccessibleObject.NotifyClients() methods (dunno what to do
36590             with those yet)
36591           - Now setting proper default for RightToLeft property
36592           - Fixed bug in SetClientSizeCore that would cause windows to get
36593             really big
36594           - Now sending Click/DoubleClick events
36595           - Now selecting controls when left mouse button is clicked on
36596             selectable control
36597         * AccessibleEvents.cs: Added
36598         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
36599         * XplatUIOSX.cs: Stubbed UpdateWindow() method
36600         * XplatUIWin32.cs: Implemented UpdateWindow() method
36601         * XplatUIX11.cs: Implemented UpdateWindow() method
36602         * Form.cs: Removed stray semicolon causing CS0162 warning
36603         * ThemeWin32Classic.cs: Fixed unused variable warnings
36604         * ScrollableControl.cs: Now calls base method for ScaleCore
36605         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
36606           style to avoid interference with internal click handler (which is
36607           different than standard Control click handling)
36608         * RadioButton.cs:
36609           - Now unchecks all sibling radio buttons when control is
36610             selected (Fixes #68756)
36611           - Removed internal tabstop variable, using the one inherited from
36612             Control
36613
36614 2005-01-17  Jackson Harper  <jackson@ximian.com>
36615
36616         * NavigateEventArgs.cs: Fix base type.
36617         * LinkLabel.cs: Sig fix
36618         
36619 2005-01-17  Jackson Harper  <jackson@ximian.com>
36620
36621         * TreeView.cs: Only invalidate the effected nodes bounds when
36622         selecting nodes.
36623
36624 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
36625
36626         * XplatUIWin32.cs: fixes Win32 marshaling
36627         * XplatUIX11.cs: fixes method signature
36628
36629 2005-01-17  Peter Bartok  <pbartok@novell.com>
36630
36631         * XplatUIX11.cs: Clean up resources when we no longer need them
36632
36633 2005-01-17  Peter Bartok  <pbartok@novell.com>
36634
36635         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
36636           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
36637           and DestroyCursor() methods.
36638         * Cursor.cs: Partially implemented, now supports standard cursors;
36639           still contains some debug code
36640         * Cursors.cs: Implemented class
36641         * Control.cs:
36642           - WndProc(): Added handling of WM_SETCURSOR message, setting the
36643             appropriate cursor
36644           - Implemented Cursor property
36645           - Replaced break; with return; more straightforwar and possibly
36646             faster
36647           - Now properly setting the result for WM_HELP
36648         * X11Structs.cs: Added CursorFontShape enum
36649         * XplatUIStructs.cs:
36650           - Added StdCursor enum (to support DefineStdCursor() method)
36651           - Added HitTest enum (to support sending WM_SETCURSOR message)
36652         * XplatUIX11.cs:
36653           - Now sends the WM_SETCURSOR message
36654           - Implemented new cursor methods
36655         * XplatUIOSX.cs: Stubbed new cursor methods
36656         * XplatUIWin32.cs:
36657           - Implemented new cursor methods
36658           - Added GetSystemMetrics function and associated enumeration
36659
36660 2005-01-15  Peter Bartok  <pbartok@novell.com>
36661
36662         * Control.cs:
36663           - WndProc(): Now handles EnableNotifyMessage
36664           - SelectNextControl(): Fixed bug where if no child or sibling
36665             controls exist we looped endlessly
36666
36667 2005-01-14  Jackson Harper  <jackson@ximian.com>
36668
36669         * TreeView.cs: Recalculate the tab pages when a new one is added
36670         so that the proper bounding rects are created.
36671
36672 2005-01-14  Jackson Harper  <jackson@ximian.com>
36673
36674         * TreeView.cs: Draw a gray box instead of a grip in the lower
36675         right hand corner when there are both horizontal and vertical
36676         scroll bars.
36677
36678 2005-01-14  Jackson Harper  <jackson@ximian.com>
36679
36680         * Control.cs: When erasing backgrounds use FromHwnd instead of
36681         FromHdc when there is a NULL wparam. This occurs on the X driver.
36682         * XplatUIX11.cs: Set the wparam to NULL.
36683
36684 2005-01-13  Jackson Harper  <jackson@ximian.com>
36685
36686         * PictureBox.cs: Implement missing methods (except ToString, need
36687         to test that on windows) and events. When visibility is changed we
36688         need to redraw the image because the buffers are killed. When size
36689         is changed refresh if the sizemode needs it.
36690
36691 2005-01-13  Peter Bartok  <pbartok@novell.com>
36692
36693         * Control.cs (SelectNextControl): Was using wrong method to select
36694           a control
36695
36696 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
36697
36698         * ComboBox.cs: fixes dropstyle
36699
36700 2005-01-13  Peter Bartok  <pbartok@novell.com>
36701
36702         * Form.cs:
36703           - Implemented Select() override
36704           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
36705           - Now sets keyboard focus on startup
36706         * Control.cs (SelectNextControl): Now properly handles directed=true
36707         * TextBoxBase.cs:
36708           - WndProc: Now passes tab key on to base if AcceptTabChar=false
36709           - Added (really bad) focus rectangle (mostly for testing)
36710         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
36711           to enforce redraw on focus changes
36712         * ContainerControl.cs:
36713           - Fixed detection of Shift-Tab key presses
36714           - Fixed traversal with arrow keys
36715         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
36716           gonna keep this or if it's complete yet
36717         
36718 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
36719
36720         * ComboBox.cs: missing properties, fixes
36721
36722 2005-01-13  Peter Bartok  <pbartok@novell.com>
36723
36724         * Panel.cs (ctor): Setting Selectable window style to off
36725         * Splitter.cs (ctor): Setting Selectable window style to off
36726         * GroupBox.cs (ctor): Setting Selectable window style to off
36727         * Label.cs (ctor): Setting Selectable window style to off
36728
36729 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
36730
36731         * UpDownBase.cs (InitTimer): If the timer has been already
36732         created, enable it.
36733
36734         Use a TextBox instead of a Label.
36735
36736 2005-01-12  Jackson Harper  <jackson@ximian.com>
36737
36738         * TreeView.cs: Refresh the tree after sorting the nodes. Always
36739         draw the connecting node lines (when ShowLines is true).
36740         * TreeNode.cs: The nodes index can now be updated. This is used
36741         when a node collection is sorted.
36742         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
36743         insert or an existing unsorted node collection can be sorted.
36744         
36745 2005-01-12  Peter Bartok  <pbartok@novell.com>
36746
36747         * ContainerControl.cs: Implemented ProcessDialogKeys()
36748
36749 2005-01-12  Peter Bartok  <pbartok@novell.com>
36750
36751         * Control.cs:
36752           - Implemented SelectNextControl() method
36753           - Several focus related bug fixes
36754           - Fixed Docking calculations to match MS documentation and
36755             behaviour
36756
36757 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
36758
36759         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
36760         bug fixes
36761
36762 2005-01-12  Peter Bartok  <pbartok@novell.com>
36763
36764         * Control.cs:
36765           - Fixed broken Contains() method
36766           - Implemented GetNextControl() method. Finally. This is the pre-
36767             requisite for focus handling.
36768
36769 2005-01-12  Peter Bartok  <pbartok@novell.com>
36770
36771         * OSXStrucs.cs: Added
36772
36773 2005-01-12  Peter Bartok  <pbartok@novell.com>
36774
36775         * XplatUIWin32.cs:
36776           - Removed PeekMessageFlags
36777           - Implemented SetWindowStyle() method
36778         * XplatUIStructs.cs: Added PeekMessageFlags
36779         * X11Structs: Added missing border_width field to XWindowChanges struct
36780         * XplatUIX11.cs:
36781           - PeekMessage: Now throws exception if flags which are not yet
36782             supported are passed
36783           - Implemented SetWindowStyle() method
36784           - Fixed SetZOrder to handle AfterHwnd properly
36785         * XplatUI.cs: Added SetWindowStyle() method
36786         * XplatUIDriver.cs: Added SetWindowStyle() abstract
36787         * Control.cs:
36788           - Implemented UpdateStyles() method
36789           - Implemented UpdateZOrder() method
36790         * XplatUIOSX.cs: Added SetWindowStyle() stub
36791
36792 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
36793
36794         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
36795         button mouse).
36796
36797
36798 2005-01-11  Jackson Harper  <jackson@ximian.com>
36799
36800         * TreeView.cs: Still need to draw lines to siblings even if out of
36801         the current node is out of the clip.
36802
36803 2005-01-11  Jackson Harper  <jackson@ximian.com>
36804
36805         * TreeView.cs: When setting the hbar/vbar/grip position use
36806         SetBounds so that perform layout is only called once. Also suspend
36807         and resume layout so layout is only done once for all controls.
36808         - Removed some debug fluff
36809         * SizeGrip.cs: Call base implmentation in overriding methods.
36810         - When visibility is changed the drawing buffers are killed so we
36811         need to redraw.
36812
36813 2005-01-11  Jackson Harper  <jackson@ximian.com>
36814
36815         * TreeView.cs: Calculate the open node count while drawing. This
36816         saves us an entire tree traversal for every paint operation. Use
36817         a member var for the open node count so less vars are passed around.
36818
36819 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
36820
36821         * MonthCalendar.cs:
36822         - fixed selection to use mousemove, not mouse polling on timer
36823         * ThemeWin32Classic.cs
36824         - removed redundant unused variable "no_more_content"
36825         
36826 2005-01-11  Peter Bartok  <pbartok@novell.com>
36827
36828         * XplatUIX11.cs (DoEvents): Needs to return when no more events
36829           are pending, so it now calls PeekMessage instead of GetMessage;
36830           implemented a incomplete version of PeekMessage
36831         
36832 2005-01-11  Peter Bartok  <pbartok@novell.com>
36833
36834         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
36835           I18n issues
36836         * TextBoxBase.cs: Added sending of TextChanged event
36837
36838 2005-01-10  Jackson Harper  <jackson@ximian.com>
36839
36840         * TreeView.cs: Try not to draw outside the clipping rectangle on
36841         each node element.
36842
36843 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
36844
36845         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
36846
36847 2005-01-10  Jackson Harper  <jackson@ximian.com>
36848
36849         * TreeView.cs:
36850         - Implement fast scrolling. Now only the newly
36851         exposed nodes are drawn and the old image is moved using the
36852         XplatUI::ScrollWindow method.
36853         - Factor in height of nodes when calculating whether or not the
36854         node is in the clipping rect.
36855
36856 2005-01-10  Jackson Harper  <jackson@ximian.com>
36857
36858         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
36859
36860 2005-01-10  Peter Bartok  <pbartok@novell.com>
36861
36862         * Application.cs: Added temporary hack to resolve all our resize
36863           required issues on startup. This will get fixed properly at
36864           some point in the future
36865
36866 2005-01-10  Jackson Harper  <jackson@ximian.com>
36867
36868         * SizeGrip.cs: New internal class that is used as a sizing
36869         grip control...hence the name.
36870
36871 2005-01-10  Peter Bartok  <pbartok@novell.com>
36872
36873         * Control.cs: Implemented proper TabIndex handling, now assigning
36874           a tabindex when a control is added to a container
36875         * GroupBox.cs (ctor): Now sets the Container style bit, required
36876           for Control.GetNextControl()
36877
36878 2005-01-09  Jackson Harper  <jackson@ximian.com>
36879
36880         * TextBoxBase.cs: Clear window when scrolling (fixes build).
36881
36882 2005-01-09  Peter Bartok <pbartok@novell.com>
36883
36884         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
36885           XplatUIX11.cs: Added ability to control ScrollWindow expose and
36886           an overload for ScrollWindow to allow only scrolling a rectangle
36887
36888 2005-01-09  Peter Bartok <pbartok@novell.com>
36889
36890         * Form.cs:
36891           - Implemented SetDesktopBounds method
36892           - Implemented SetDesktopLocation method
36893
36894 2005-01-08  Jackson Harper  <jackson@ximian.com>
36895
36896         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
36897         the node count has changed, this removes to VScroll::Refresh calls
36898         when drawing.
36899
36900 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
36901
36902         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
36903
36904 2005-01-07  Jackson Harper  <jackson@ximian.com>
36905
36906         * TreeNode.cs: Just update the single node when it is
36907         checked. Don't refresh after toggling, the Expand/Collapse already
36908         handles this.
36909         * TreeView.cs: Respect clipping a little more when drawing. Try
36910         not to redraw things that don't need to be redrawn. Just hide the
36911         scrollbars when they are no longer needed instead of removing
36912         them, so they don't have to be created again and again.
36913         
36914 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
36915
36916         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
36917         coordinates to window space to place the caret properly, FIXED.
36918         Implement GetWindowState & SetWindowState
36919
36920 2005-01-06  Peter Bartok <pbartok@novell.com>
36921
36922         * Form.cs:
36923           - Implemented ClientSize property
36924           - Implemented DesktopBounds property
36925           - Implemented DesktopLocation property
36926           - Implemented IsRestrictedWindow property
36927           - Implemented Size property
36928           - Implemented TopLevel property
36929           - Implemented FormWindowState property
36930         * Control.cs:
36931           - Implemented GetTopLevel() method
36932           - Implemented SetTopLevel() method
36933         * X11Structs.cs (Atom):
36934           - Added AnyPropertyType definition
36935           - Added MapState definiton and updated XWindowAttribute struct
36936         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
36937         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
36938         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
36939         * XplatUIWin32.cs:
36940           - Implemented GetWindowState() and SetWindowState() methods
36941           - Fixed Win32GetWindowLong return type
36942         * XplatUIX11.cs:
36943           - Introduced central function for sending NET_WM messages
36944           - Implemented GetWindowState() and SetWindowState() methods
36945         * TextBoxBase.cs (set_Lines):
36946           - Now uses Foreground color for text added via Text property (Duh!)
36947           - Added code to remember programmatically requested size (fixes
36948             behaviour when Multiline is set after Size)
36949           - Added AutoSize logic
36950
36951 2005-01-06  Jackson Harper  <jackson@ximian.com>
36952
36953         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
36954
36955 2005-01-06  Jackson Harper  <jackson@ximian.com>
36956
36957         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
36958         set to less then 0.
36959
36960 2005-01-06  Jackson Harper  <jackson@ximian.com>
36961
36962         * ScrollableControl.cs: Lazy init the scrollbars.
36963         
36964 2005-01-06  Jackson Harper  <jackson@ximian.com>
36965
36966         * Theme.cs: Speed up getting pens and solid brushes, by using
36967         their ARGB as a hash instead of tostring and not calling Contains.
36968
36969 2005-01-06  Peter Bartok <pbartok@novell.com>
36970
36971         * Form.cs:
36972           - Implemented OnActivated and OnDeactivate event trigger
36973           - Implemented Activate() method
36974           - Fixed ShowDialog() to activate the form that was active before
36975             the dialog was shown
36976         * XplatUIX11.cs:
36977           - Added global active_window var that tracks the currently active
36978             X11 window
36979           - Now always grabs Property changes from the root window to always
36980             catch changes on the active window property
36981           - Added code to PropertyNotify handler to send Active/Inactive
36982             messages when state changes. This puts X11 and Win32 en par on
36983             WM_ACTIVATE notifications (except for double notifications when
36984             the user clicks away from our modal window to another one of our
36985             windows)
36986
36987 2005-01-05  Jackson Harper  <jackson@ximian.com>
36988
36989         * ImageList.cs: Implment ctor
36990
36991 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
36992
36993         * XplatUIOSX.cs: Implement Activate/SetTopmost
36994
36995 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
36996
36997         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
36998
36999 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
37000
37001         * XplatUIOSX.cs: Implement GetActive/SetFocus.
37002
37003 2005-01-05  Peter Bartok <pbartok@novell.com>
37004
37005         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
37006           XplatUIOSX.cs: Added GetActive method to return the currently
37007           active window for the application (or null, if none is active)
37008         * Form.cs:
37009           - Implemented ActiveForm
37010           - Commented out owner assignment for modal dialogs (causes problems
37011             on Win32, since the owner will be disabled)
37012           - Reworked some Active/Focus handling (still incomplete)
37013         * CommonDialog.cs: Commented out owner assignment for modal dialogs
37014           (causes problems on Win32, since the owner will be disabled)
37015         * IWin32Window: Added ComVisible attribute
37016
37017 2005-01-05  Peter Bartok <pbartok@novell.com>
37018
37019         * ToolTip.cs (WndProc): Enable setting focus now that we have the
37020           required XplatUI functions.
37021
37022 2005-01-05  Peter Bartok <pbartok@novell.com>
37023
37024         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
37025           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
37026           to implement focus and activation handling; still incomplete and
37027           with debug output
37028
37029 2005-01-04  Peter Bartok <pbartok@novell.com>
37030
37031         * TextBoxBase.cs: Changed access level for Document property to
37032           match switch to internal for TextControl
37033
37034 2005-01-04  Peter Bartok <pbartok@novell.com>
37035
37036         * AccessibleObject: Added ComVisible attribute
37037
37038 2005-01-04  Jackson Harper  <jackson@ximian.com>
37039
37040         * X11Keyboard.cs: Remove unneeded var.
37041
37042 2005-01-04  Jackson Harper  <jackson@ximian.com>
37043
37044         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
37045         but PAINT.
37046         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
37047         ClientMessage. This makes apps exit cleanly (more often).
37048         
37049 2005-01-04  Jackson Harper  <jackson@ximian.com>
37050
37051         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
37052         handling focus, return correct colors and fonts,
37053         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
37054         handle selection, horizontal scrolling, and mouse interaction.
37055
37056 2005-01-04  Peter Bartok <pbartok@novell.com>
37057
37058         * ICommandExecutor.cs: Added
37059         * IDataGridColumnStyleEditingNotificationService.cs: Added
37060         * IFeatureSupport.cs: Added
37061         * IFileReaderService.cs: Added
37062         * IDataObject.cs: Added ComVisible attribute
37063         * AmbientProperties.cs: Added
37064         * BaseCollection.cs: Added missing attributes
37065         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
37066         * BaseCollection.cs: Added missing attributes
37067         * Binding.cs: Added TypeConverter attribute
37068         * BindingContext.cs: Added DefaultEvent attribute
37069         * BindingsCollection.cs: Added DefaultEvent attribute
37070         * Button.cs: Added DefaultValue attribute
37071         * DragEventArgs.cs: Added ComVisible attribute
37072         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
37073         * KeyEventArgs.cs: Added ComVisible attribute
37074         * KeyPressEventArgs.cs: Added ComVisible attribute
37075         * MouseEventArgs.cs: Added ComVisible attribute
37076         * NavigateEventArgs.cs: Added
37077         * NavigateEventHandler.cs: Added
37078         * FeatureSupport.cs: Added
37079         * OSFeature.cs: Added
37080         * Theme.cs: Added abstract Version property to support OSFeature
37081         * ThemeWin32Classic.cs: Added Version property to
37082           support OSFeature.Themes
37083         * ProgressBar.cs: Removed OnPaintBackground override, not required since
37084           the proper styles to avoid background drawing are set, also doesn't
37085           match MS signature
37086         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
37087         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
37088         * ScrollEventArgs.cs: Added ComVisible attribute
37089         * SplitterEventArgs.cs: Added ComVisible attribute
37090         * AccessibleSelection.cs: Added Flags attribute
37091         * Appearance.cs: Added ComVisible attribute
37092         * Border3DSide.cs: Added ComVisible attribute
37093         * Border3DStyle.cs: Added ComVisible attribute
37094         * BorderStyle.cs: Added ComVisible attribute
37095         * DragAction.cs: Added ComVisible attribute
37096         * ErrorBlinkStyle.cs: Added
37097         * ScrollEventType.cs: Added ComVisible attribute
37098         * AnchorStyles.cs: Added Editor attribute
37099         * DockStyle.cs: Added Editor attribute
37100         * HorizontalAlignment.cs: Added ComVisible attribute
37101         * HelpEventArgs.cs: Added ComVisible attribute
37102         * PaintEventArgs.cs: Added IDisposable
37103
37104 2005-01-04  Peter Bartok <pbartok@novell.com>
37105
37106         * TextControl.cs: Switched Line, LineTag and Document classes to
37107           internal
37108
37109 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
37110
37111         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
37112         Simple mode, fixes, IntegralHeight, etc.
37113
37114 2005-01-04  Peter Bartok <pbartok@novell.com>
37115
37116         * TextBoxBase.cs: Using proper font variable now
37117
37118 2005-01-04  Peter Bartok <pbartok@novell.com>
37119
37120         * Form.cs (ShowDialog): Set parent to owner, if provided
37121         * GroupBox.cs: Removed unused vars
37122         * TextControl.cs:
37123           - Added GetHashCode() for Document and LineTag classes
37124           - Removed unused variables
37125           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
37126             to allow translation between continuous char position and line/pos
37127         * CheckBox.cs: Removed vars that are provided by base class
37128         * RadioButton.cs: Removed vars that are provided by base class, added
37129           new keyword where required
37130         * LinkLabel.cs: Added new keyword where required
37131         * Control.cs (WndProc): Removed unused variable
37132         * TextBoxBase.cs:
37133           - Finished SelectionLength property
37134           - Implemented SelectionStart property
37135           - Implemented Text property
37136           - Removed unused vars
37137         * MessageBox.cs: Added new keyword where required
37138         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
37139           WndProc signature
37140         * MenuAPI.cs: Added new keyword where required
37141         * ButtonBase.cs: Removed vars that are provided by base class, added
37142           new keyword where required
37143         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
37144           argument to double, to allow compiling with csc 2.0 (Atsushi ran
37145           into this)
37146         * Application.cs (Run): Now triggers the ThreadExit event
37147         * CommonDialog.cs: Added new keyword where required; now properly sets
37148           parent (owner) for dialog
37149         * XplatUIX11.cs: Commented out unused vars
37150         * StatusBar.cs: Fixed signature for Text property
37151         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
37152
37153 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
37154
37155         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
37156         TrackBar.cs, MonthCalendar.cs: remove unused vars
37157
37158 2005-01-03  Jackson Harper  <jackson@ximian.com>
37159
37160         * ThemeWin32Classic.cs:
37161         * X11Keyboard.cs: Remove unused vars.
37162
37163 2005-01-03  Peter Bartok  <pbartok@novell.com>
37164
37165         * TextBox.cs:
37166           - set_Text: Tied into TextControl
37167           - set_TextAlignment: Tied into TextControl
37168         * TextControl.cs:
37169           - Added alignment properties and implemented alignment handling
37170             and drawing (still has a bug, not generating proper expose events)
37171           - Added new Line() constructor to allow passing the line alignment
37172           - Fixed selection setting, properly handling end<start now
37173           - Added aligment considerations to RecalculateDocument()
37174         * TextBoxBase.cs:
37175           - Now properly enforces control height for single line controls
37176           - Added support for CharacterCasing
37177           - Added IsInputKey override
37178           - Fixed Keys.Enter logic
37179           - Added SetBoundsCore override
37180           - Fixed mouse selection handling
37181
37182 2005-01-03  Jackson Harper  <jackson@ximian.com>
37183
37184         * TreeView.cs:
37185           - Collapse and uncheck all nodes when CheckBoxes is disabled.
37186           - Checkboxes are always aligned to the bottom of the node,
37187           regardless of item height.
37188           - Use the node bounds to draw the text so we can center it when
37189           the item height is greater then the font height.
37190           - Node::Bounds are only the text part of the node.
37191         * TreeNode.cs: New method to combine collapsing and unchecking all
37192           nodes recursively.
37193
37194 2005-01-02  Jackson Harper  <jackson@ximian.com>
37195
37196         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
37197         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
37198         tree when a check is changed. TODO: Only refresh the checked node.
37199
37200 2004-12-30  Jackson Harper  <jackson@ximian.com>
37201
37202         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
37203         * TreeNode.cs: When collapsing make sure to never collapse the
37204         root node.
37205
37206 2004-12-29  Jackson Harper  <jackson@ximian.com>
37207
37208         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
37209         
37210 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
37211
37212         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
37213
37214 2004-12-28  Peter Bartok  <pbartok@novell.com>
37215
37216         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
37217           not yet assigned
37218
37219 2004-12-28  Peter Bartok  <pbartok@novell.com>
37220
37221         * Control.cs (WndProc): Added WM_HELP handler, now generates
37222           HelpRequested event
37223         * Form.cs: Added HelpButton property and required support code
37224         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
37225
37226 2004-12-28  Peter Bartok  <pbartok@novell.com>
37227
37228         * CommonDialog.cs:
37229           - Made DialogForm.owner variable internal
37230           - Added check to ensure owner form is set before setting
37231             owner properties in CreateParams
37232
37233 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
37234
37235         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
37236           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
37237           GetCursorPos.  Fix major visibility issues.  Rework the windowing
37238           system to support borderless/titleless windows (implements menus).
37239           Fix GetWindowPos.  Implement initial background color support for
37240           views.
37241
37242 2004-12-28  Peter Bartok  <pbartok@novell.com>
37243
37244         * Form.cs (get_CreateParams): Make sure we have an owner before using
37245           the owner variable. Implement proper default if no owner exists
37246
37247 2004-12-28  Peter Bartok  <pbartok@novell.com>
37248
37249         * In preparation for making Managed.Windows.Forms the default build target
37250           for System.Windows.Forms, the following stubbed files were added.
37251           Dialogs are currently being implemented by contributors and are only
37252           short-term place holders.
37253         * ColorDialog.cs: Initial check-in (minmal stub)
37254         * DataGrid.cs: Initial check-in (minimal stub)
37255         * DataGridLineStyle.cs: Initial check-in (minimal stub)
37256         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
37257         * DataGridTableStyle.cs: Initial check-in (minimal stub)
37258         * FontDialog.cs: Initial check-in (minimal stub)
37259         * FileDialog.cs: Initial check-in (minimal stub)
37260         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
37261         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
37262         * OpenFileDialog: Initial check-in (minimal stub)
37263         * IComponentEditorPageSite.cs: Initial check-in
37264         * Splitter.cs: Initial check-in (for Jackson)
37265         * SplitterEventArgs.cs: Initial check-in (for Jackson)
37266         * SplitterEventHandler.cs: Initial check-in (for Jackson)
37267         * TextBox.cs: Initial check-in; still needs some wiring to
37268           TextControl backend
37269         * Form.cs: Implemented ControlBox property
37270         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
37271         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
37272         * TextControl.cs: Added selection functionality; added todo header
37273         * TextBoxBase.cs:
37274           - Implemented Lines property
37275           - Implemented TextHeight property
37276           - Implemented SelectedText property
37277           - Implemented SelectionLength property
37278           - Implemented SelectAll method
37279           - Implemented ToString method
37280           - Removed and cleaned up some debug code
37281           - Implemented (still buggy) mouse text selection
37282
37283 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
37284
37285         * ComboBox.cs: Complete DropDownList implementation, fixes.
37286
37287 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
37288
37289         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
37290         * ComboBoxStyle.cs: ComboBoxStyle enum
37291         * ComboBox.cs: Initial work on ComboBox control
37292
37293 2004-12-21  Peter Bartok  <pbartok@novell.com>
37294
37295         * Control.cs (ctor, CreateParams): Moved setting of is_visible
37296           forward so that anything that creates a window gets the default,
37297           also no longer uses Visible property in CreateParams to avoid
37298           walking up the parent chain and possibly get the wrong visible
37299           status. Fixed IsVisible to no longer walk up to the parent.
37300
37301 2004-12-21  Peter Bartok  <pbartok@novell.com>
37302
37303         * Form.cs (ShowDialog): Unset modality for the proper window
37304  
37305 2004-12-20  Peter Bartok  <pbartok@novell.com>
37306
37307         * CommonDialog.cs: Initial check-in
37308
37309 2004-12-20  Peter Bartok  <pbartok@novell.com>
37310
37311         * Control.cs (Visible): Now uses the parent window instead of the
37312           client area window for the property
37313
37314         * Form.cs
37315           - ShowDialog(): Now uses the proper window for modality
37316           - The default visibility state for the form parent is now false. This
37317             will prevent the user from seeing all the changes to the form and
37318             its controls before the application hits Application.Run()
37319           - Removed some stale commented out code
37320
37321         * NativeWindow.cs:
37322           - Added FindWindow() method to have a method to check for existence
37323             of a window handle
37324           - Added ability to override default exception handling (for example
37325             when debugging with VS.Net; to do this the ExternalExceptionHandler
37326             define must be set
37327           - Removed some useless debug output
37328
37329         * XplatUIX11.cs:
37330           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
37331             not working as expected
37332           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
37333             property to allow switching back to the modal window if focus is
37334             given to another one of our windows (Application Modal)
37335           - Now only sets override_redirect if we create a window
37336             without WS_CAPTION
37337           - Moved EventMask selection before mapping of newly created window
37338             so we can catch the map event as well
37339           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
37340           - Added various Atom related DllImports
37341           - Implemented Exit() method
37342           - .ctor() : No longer shows window if WS_VISIBLE is not defined
37343             in the CreateParams
37344
37345         * MessageBox.cs: Now properly deals with the FormParent window by
37346           providing an override the FormParent CreateParams property to
37347           set as POPUP instead of OVERLAPPED window.
37348
37349 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
37350
37351         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
37352         Minor code cleanup.
37353
37354 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
37355         
37356         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
37357
37358 2004-12-18  Peter Bartok  <pbartok@novell.com>
37359
37360         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
37361           implementing SetModal() method
37362
37363 2004-12-18  Peter Bartok  <pbartok@novell.com>
37364
37365         * X11Structs.cs (XGCValues): Fixed type of function element
37366         * XplatUI.cs: Added ScrollWindow() method
37367         * XplatUIDriver.cs: Added ScrollWindow() abstract
37368         * XplatUIWin32.cs: Implemented ScrollWindow() method
37369         * XplatUIX11.cs: Implemented ScrollWindow() method
37370         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
37371
37372 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
37373
37374         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
37375         Some more keyboard support (INCOMPLETE)
37376
37377 2004-12-17  Peter Bartok  <pbartok@novell.com>
37378
37379         * TextControl.cs:
37380         - Added color attribute to line tags.
37381         - Added color argument to all functions dealing with tags
37382         - Added color argument support to various functions
37383         - Fixed miss-calculation of baseline/shift in certain circumstances
37384
37385         * TextBoxBase.cs: Added new color option to test code
37386
37387 2004-12-17  Jackson Harper  <jackson@ximian.com>
37388
37389         * TreeNode.cs:
37390         * MonthCalendar.cs: Signature fixes
37391
37392 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
37393
37394         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
37395         keyboard event moved it.  Create a new graphics context for each paint resolves this
37396
37397 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
37398
37399         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
37400         Make caret exist and go blink blink.  Initial keyboard support.
37401         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
37402         works.
37403
37404 2004-12-17  Jackson Harper  <jackson@ximian.com>
37405
37406         * XplatUIStructs.cs: Updated set of virtual keycodes.
37407         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
37408
37409 2004-12-17  Jackson Harper  <jackson@ximian.com>
37410
37411         * XplatUIX11.cs: Prune old keyboard code.
37412
37413 2004-12-17  Jackson Harper  <jackson@ximian.com>
37414
37415         * XplatUIX11.cs: When generating mouse wparams get the modifier
37416         keys from the ModifierKeys property.
37417
37418 2004-12-17  Jackson Harper  <jackson@ximian.com>
37419
37420         * X11Keyboard.cs: Send up/down input when generating
37421         messages. Remove some unused vars.
37422
37423 2004-12-17  Jackson Harper  <jackson@ximian.com>
37424
37425         * TabControl.cs:
37426         * TreeView.cs: get rid of warnings.
37427
37428 2004-12-17  Jackson Harper  <jackson@ximian.com>
37429
37430         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
37431
37432 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
37433
37434         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
37435           CheckedListBox.cs: Implementation
37436
37437 2004-12-17  Peter Bartok  <pbartok@novell.com>
37438
37439         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
37440
37441 2004-12-16  Peter Bartok  <pbartok@novell.com>
37442
37443         * TextControl.cs:
37444           - InsertCharAtCaret(): Fixed start pos fixup
37445           - CaretLine_get: No longer derives the line from the tag, the tag
37446             could be stale if lines in the document have been added or deleted
37447           - RebalanceAfterDelete(): Fixed bug in balancing code
37448           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
37449           - Line.Streamline(): Now can also elminate leading empty tags
37450           - DumpTree(): Added a few more tests and prevented exception on
37451             uninitialized data
37452           - Added Debug section for Combining lines
37453           - Delete(): Now copies all remaining properties of a line
37454           
37455         * TextBoxBase.cs:
37456           - Left mousebutton now sets the caret (and middle button still acts
37457             as formatting tester, which must go away soon)
37458           - Added Debug section for Deleting/Combining lines
37459           - Fixed calculations for UpdateView after Combining lines
37460
37461 2004-12-16  Peter Bartok  <pbartok@novell.com>
37462
37463         * TextControl.cs: Now properly aligns text on a baseline, using the
37464           new XplatUI.GetFontMetrics() method. Simplified several calculations
37465         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
37466           defined
37467
37468 2004-12-16  Peter Bartok  <pbartok@novell.com>
37469
37470         * XplatUI.cs: Added GetFontMetrics() method
37471         * XplatUIDriver.cs: Added GetFontMetrics() abstract
37472         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
37473           into libgdiplus, our private GetFontMetrics function
37474         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
37475         * XplatUIWin32.cs: Implemented GetFontMetrics() method
37476
37477 2004-12-16  Jackson Harper  <jackson@ximain.com>
37478
37479         * XplatUIStruct.cs: Add enum for dead keys
37480         * X11Keyboard.cs: Map and unmap dead keys.
37481
37482 2004-12-16  Jackson Harper  <jackson@ximian.com>
37483
37484         * X11Keyboard.cs: Detect and use the num lock mask.
37485
37486 2004-12-16  Peter Bartok  <pbartok@novell.com>
37487
37488         * Control.cs (CreateGraphics): Added check to make sure the
37489           handle of the window exists before calling Graphics.FromHwnd()
37490
37491 2004-12-16  Peter Bartok  <pbartok@novell.com>
37492
37493         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
37494           contains a lot of code that's not supposed to be there for the
37495           real thing, but required for developing/testing the textbox
37496           backend.
37497
37498 2004-12-16  Peter Bartok  <pbartok@novell.com>
37499
37500         * TextControl.cs:
37501         - Fixed Streamline method
37502         - Added FindTag method to Line
37503         - Added DumpTree method for debugging
37504         - Added DecrementLines() method for deleting lines
37505         - Fixed UpdateView to update the cursor to end-of-line on single-line
37506           updates
37507         - Added PositionCaret() method
37508         - Fixed MoveCaret(LineDown) to move into the last line, too
37509         - Added InsertChar overload
37510         - Fixed InsertChar tag offset calculations
37511         - Added DeleteChar() method
37512         - Added Combine() method for folding lines
37513         - Fixed Delete() method, no longer allocates wasted Line object and
37514           now copies all properties when swapping nodes
37515         - Delete() method now updates document line counter
37516
37517 2004-12-15  Jackson Harper  <jackson@ximian.com>
37518
37519         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
37520         * X11Keyboard.cs: Expose the currently selected modifier keys
37521         through a property.
37522
37523 2004-12-15  Peter Bartok  <pbartok@novell.com>
37524
37525         * TextControl.cs: Initial check-in. Still incomplete
37526
37527 2004-12-15  Jackson Harper  <jackson@ximian.com>
37528
37529         * TreeNode.cs:
37530         * TreeView.cs: Fix build on csc (second time today ;-))
37531
37532 2004-12-15  Jackson Harper  <jackson@ximian.com>
37533
37534         * TreeView.cs: Store the treenodes plus/minus box bounds when it
37535         is calculated and use this for click testing.
37536         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
37537
37538 2004-12-15  Jackson Harper  <jackson@ximian.com>
37539
37540         * TreeView.cs: Pass the nodes image index to the image list when
37541         drawing that image.
37542
37543 2004-12-15  Jackson Harper  <jackson@ximian.com>
37544
37545         * X11Keyboard.cs: Set messages hwnd.
37546         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
37547         post_message calls.
37548
37549 2004-12-15  Jackson Harper  <jackson@ximian.com>
37550
37551         * X11Keyboard.cs: Fix to compile with csc.
37552         
37553 2004-12-15  Jackson Harper  <jackson@ximian.com>
37554
37555         * X11Structs.cs: Add key mask values
37556         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
37557         * X11Keyboard.cs: New file - Extrapolates and interpolates key
37558         down/up foo into WM_CHAR foo
37559         * KeyboardLayouts.cs: Common keyboard layouts
37560         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
37561         post messages into the main queue.
37562
37563 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
37564
37565         * Button.cs: implement ProcessMnemonic
37566         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
37567           brushes everytime
37568         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
37569         * ButtonBase.cs: Show HotkeyPrefix (not the &)
37570
37571 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
37572         
37573         * MonthCalendar.cs: Implemented click-hold for next/previous month
37574           and date selection
37575           
37576 2004-12-11  Peter Bartok  <pbartok@novell.com>
37577
37578         * X11Structs.cs:
37579           - Added XKeyboardState (moved from XplatUIX11.cs)
37580           - Added XCreateGC related enums and structures
37581           - Added GXFunction for XSetFunction
37582
37583         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
37584
37585         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
37586           CaretVisible() calls
37587
37588         * ToolTip.cs: Added code to prevent stealing focus from app windows
37589
37590         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
37591           DestroyCaret, SetCaretPos and CaretVisible)
37592
37593         * XplatUIX11.cs:
37594           - Added implementation for caret functions
37595           - Moved hover variables into a struct, to make it a bit easier
37596             on the eyes and to debug
37597           - Removed XKeyboardState (moved to XplatUIX11.cs)
37598           - Moved Keyboard properties into the properties region
37599
37600         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
37601           call to get a graphics context for our control
37602
37603         * XplatUIOSX.cs: Added empty overrides for the new caret functions
37604
37605         * TreeView.cs: Fixed bug. No matter what color was set it would always
37606           return SystemColors.Window
37607
37608         * XplatUIWin32.cs: Implemented caret overrides
37609
37610 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
37611
37612         * ListBox.cs: fire events, implement missing methods and properties,
37613         sorting.
37614
37615 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
37616
37617         * MonthCalendar.cs: invalidation bug fixing
37618         * ThemeWin32Classic.cs: paint fixing
37619
37620 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
37621
37622         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
37623         prepare the CGContextRef there now.
37624
37625 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
37626
37627         * MonthCalendar.cs:
37628           - optimisationL only invalidate areas that have changed
37629         * ThemeWin32Classic.cs:
37630           - only paint parts that intersect with clip_area
37631
37632 2004-12-09  Peter Bartok  <pbartok@novell.com>
37633
37634         * Application.cs: Undid changes from r37004 which cause problems
37635         on X11
37636
37637 2004-12-09  Ravindra  <rkumar@novell.com>
37638
37639         * ToolBar.cs: Added support for displaying ContextMenu
37640         attached to a button on ToolBar.
37641         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
37642         property.
37643
37644 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
37645
37646         * Label.cs: autosize works in text change and removes unnecessary
37647         invalidate
37648
37649 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
37650
37651         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
37652         remove warnings
37653
37654 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
37655
37656         * XplatUIOSX.cs: Added mouse move/click/grab support
37657         Remove some debugging WriteLines not needed anymore.
37658         Add window resizing/positioning.
37659         Fix visibility on reparenting.
37660
37661 2004-12-08  Peter Bartok  <pbartok@novell.com>
37662
37663         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
37664
37665 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
37666
37667         * XplatUIOSX.cs: Initial checkin
37668         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
37669
37670 2004-12-03  Ravindra <rkumar@novell.com>
37671
37672         * ListView.cs: Added some keybindings and fixed scrolling.
37673         ScrollBars listen to ValueChanged event instead of Scroll
37674         Event. This would let us take care of all changes being
37675         done in the scrollbars' values programmatically or manually.
37676         * ListView.cs (CanMultiselect): Added a check for shift key.
37677         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
37678         * ListViewItem.cs (Clone): Fixed. We need to make a copy
37679         of ListViewSubItemCollection as well.
37680
37681 2004-12-06  Peter Bartok <pbartok@novell.com>
37682
37683         * Control.cs (Parent): Added check and exception to prevent
37684         circular parenting
37685
37686 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
37687
37688         * ListBox.cs: implemented clipping, selection single and multiple,
37689         bug fixing
37690
37691 2004-12-03  Ravindra <rkumar@novell.com>
37692
37693         * ListView.cs (ListView_KeyDown):
37694         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
37695         when CTRL key is pressed.
37696         * ListViewItem.cs (Selected): Fixed setting the property.
37697
37698 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
37699
37700         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
37701
37702         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
37703         MinimizeBox, ShowInTaskbar, TopMost properties.
37704
37705         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
37706         will be implemented).
37707
37708 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
37709
37710         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
37711
37712         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
37713         tests.
37714         
37715         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
37716         
37717         * TreeView.cs: BackColor is Colors.Window.
37718
37719 2004-12-01  Jackson Harper  <jackson@ximian.com>
37720
37721         * TreeView.cs: When resizing the tree if the user is making it
37722         smaller we don't get expose events, so we need to handle adding
37723         the horizontal scrollbar in the size changed handler as well as
37724         the expose handler.
37725
37726 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
37727
37728         * DrawItemState.cs: fixes wrong enum values
37729
37730 2004-12-01  Jackson Harper  <jackson@ximian.com>
37731
37732         * TreeView.cs: Resize the hbar as well as the vbar on resize.
37733
37734 2004-12-01  Jackson Harper  <jackson@ximian.com>
37735
37736         * NodeLabelEditEventArgs.cs:
37737         * NodeLabelEditEventHandler.cs:
37738         * OpenTreeNodeEnumerator.cs:
37739         * TreeNode.cs:
37740         * TreeNodeCollection.cs:
37741         * TreeView.cs:
37742         * TreeViewAction.cs:
37743         * TreeViewCancelEventArgs.cs:
37744         * TreeViewCancelEventHandler.cs:
37745         * TreeViewEventArgs.cs:
37746         * TreeViewEventHandler.cs: Initial implementation.
37747
37748 2004-12-01  Ravindra <rkumar@novell.com>
37749
37750         * ListView.cs (CalculateListView): Fixed scrolling related
37751         calculations. Also, removed some debug statements from other
37752         places.
37753         * ListViewItem.cs: Changed access to 'selected' instance variable
37754         from private to internal.
37755         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
37756
37757 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
37758
37759         * ThemeWin32Classic.cs: remove cache of brush and pens for
37760         specific controls and use the global system, fixes scrollbutton
37761         bugs (for small sizes, disabled, etc)
37762         
37763         * ScrollBar.cs: does not show the thumb for very small controls
37764         (as MS) and allow smaller buttons that the regular size
37765
37766 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
37767
37768         * UpDownBase.cs: Add abstract methods for the interface.
37769         Add new virtual methods (need to be hooked up to TextEntry when it
37770         exists).
37771         Add override methods for most features.
37772         Computes the size, forces the height of the text entry.
37773
37774         * NumericUpDown.cs: Put here the current testing code.
37775
37776         * Set eol-style property on all files that do not have mixed line
37777         endings, to minimize the future problems.  There are still a few
37778         files with mixed endings, and someone should choose whether they
37779         want to move it or not.
37780
37781 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
37782
37783         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
37784         System.Colors
37785         
37786 2004-11-30  Ravindra <rkumar@novell.com>
37787
37788         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
37789         drawing and replaced use of SystemColors by theme colors.
37790         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
37791         * ListView.cs (ListViewItemCollection.Add): Throw exception when
37792         same ListViewItem is being added more than once.
37793
37794 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
37795
37796         * MonthCalendar.cs:
37797           - ControlStyles love to make the control not flicker
37798           
37799 2004-11-30  Peter Bartok  <pbartok@novell.com>
37800
37801         * CharacterCasing.cs: Added
37802
37803 2004-11-29  Peter Bartok  <pbartok@novell.com>
37804
37805         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
37806           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
37807           I am removing these files as they conflict with already completed
37808           work. While it is fantastic to get contributions to MWF, I
37809           respectfully ask that everyone please coordinate their contributions
37810           through mono-winforms-list or #mono-winforms at this time. We're
37811           explicitly avoiding stubbing and don't want controls that don't have
37812           their basic functionality implemented in svn. Please also see
37813           http://www.mono-project.com/contributing/winforms.html
37814
37815
37816 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
37817
37818         * Application.cs (ModalRun): Don't hang after exit.
37819
37820         * Theme.cs: New TreeViewDefaultSize property.
37821
37822         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
37823         with less hardcoded SystemColors constant.
37824         Implemented TreeViewDefaultSize.
37825
37826         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
37827         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
37828
37829
37830 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
37831
37832         * MonthCalendar.cs:
37833           - Fix NextMonthDate and PrevMonthDate click moving calendar
37834
37835 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
37836
37837         * MonthCalendar.cs:
37838           - Fix usage of ScrollChange Property when scrolling months
37839
37840 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
37841
37842         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
37843          - Fixes menu destroying
37844          - Support adding and removing items on already created menus
37845
37846 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
37847
37848         * MonthCalendar.cs:
37849           - Re-worked all bolded dates handling to match win32
37850         * ThemeWin32Classic.cs:
37851           - Fixed rendering with bolded dates
37852
37853 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
37854
37855         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
37856         - Horizontal scroolbar
37857         - Multicolumn
37858         - Fixes
37859
37860
37861 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
37862
37863         * MonthCalendar.cs:
37864           - Fix Usage of MaxSelectionCount from SelectionRange
37865           - Fixed Shift + Cursor Selection
37866           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
37867           - Fixed normal cursor selection to be compat with win32
37868           - Fixed Shift + Mouse Click selection
37869
37870 2004-11-24  Peter Bartok <pbartok@novell.com>
37871
37872         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
37873         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
37874         * XplatUIX11.cs:
37875           - CreatedKeyBoardMsg now updates keystate with Alt key
37876           - Added workaround for timer crash to CheckTimers, Jackson will
37877             develop a proper fix and check in later
37878           - Implemented DispatchMessage
37879           - Removed calling the native window proc from GetMessage (call
37880             now moved to DispatchMessage)
37881
37882         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
37883           the keydata (Fixes bug #69831)
37884
37885         * XplatUIWin32.cs:
37886           - (DispatchMessage): Switched to return IntPtr
37887           - Added DllImport for SetFocus
37888
37889 2004-11-24  Ravindra <rkumar@novell.com>
37890
37891         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
37892         background drawing.
37893         * ListViewItem.cs: Fixed various properties, calculations
37894         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
37895         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
37896         and some internal properties. Fixed MouseDown handler and Paint
37897         method.
37898
37899 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
37900
37901         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
37902
37903 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
37904
37905         * ContainerControl.cs: correct accidental check in of local changes
37906
37907 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
37908
37909         * ThemeWin32Classic.cs:
37910                 - Fixed Drawing Last month in grid (sometimes not showing)
37911         * MonthCalendar.cs:
37912                 - Fixed title width calculation bug (makeing title small)
37913
37914 2004-11-23  Peter Bartok <pbartok@novell.com>
37915
37916         * XplatUIX11.cs:
37917           - Added generation of WM_MOUSEHOVER event
37918           - Added missing assignment of async_method atom
37919           - Fixed WM_ERASEBKGND; now only redraws the exposed area
37920
37921 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
37922
37923         * ThemeWin32Classic.cs:
37924                 - Fixed Drawing of today circle when showtodaycircle not set
37925                 - fixed drawing of first and last month in the grid (gay dates)
37926         * MonthCalendar.cs:
37927                 - Fixed Drawing of today circle
37928                 - Fixed drawing of grady dates
37929                 - Fixed HitTest for today link when ShowToday set to false
37930                 - Fixed DefaultSize to obey ShowToday
37931
37932 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
37933
37934         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
37935         * System.Windows.Forms/Theme.cs
37936         * MonthCalendar.cs: added for MonthCalendar
37937         * SelectionRange.cs: added for MonthCalendar
37938         * Day.cs: added for MonthCalendar: added for MonthCalendar
37939         * DateRangeEventArgs.cs: added for MonthCalendar
37940         * DateRangeEventHandler.cs: added for MonthCalendar
37941
37942 2004-11-22  Ravindra <rkumar@novell.com>
37943
37944         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
37945         property.
37946
37947 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
37948
37949         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
37950         event handler.
37951         
37952         * NumericUpDown.cs: Added new implementation.
37953         * UpDownBase.cs: Added new implementation.
37954
37955         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
37956         implementations.
37957         
37958         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
37959         implementations.
37960
37961         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
37962         methods.
37963
37964 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
37965
37966         * Timer.cs  (Dispose): Should call the base dispose when
37967         overriding.
37968
37969 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
37970
37971         * ScrollBar.cs: updates thumb position when max, min or increment
37972         is changed
37973
37974 2004-11-21  Ravindra <rkumar@novell.com>
37975
37976         * ListView.cs: Implemented item selection, activation and
37977         column header style. Fixed properties to do a redraw, if
37978         required. Added support for MouseHover, DoubleClick, KeyDown
37979         and KeyUp event handling and some minor fixes.
37980         * ListViewItem.cs: Fixed constructor.
37981         * ThemeWin32Classic.cs: Improved drawing for ListView.
37982
37983 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
37984
37985         * ThemeWin32Classic.cs: initial listbox drawing code
37986         * DrawMode.cs: new enumerator
37987         * ListControl.cs: stubbed class
37988         * ListBox.cs: initial implementation
37989         * Theme.cs: new methods definitions
37990         * SelectionMode.cs: new enumerator
37991
37992 2004-11-17  Peter Bartok  <pbartok@novell.com>
37993
37994         * XplatUIWin32.cs: Added double-click events to the class style
37995         * Control.cs (WndProc):
37996           - Added handling of click-count to MouseDown/ MouseUp events.
37997           - Added handling of middle and right mouse buttons
37998           - Removed old debug code
37999
38000 2004-11-17  Jackson Harper  <jackson@ximian.com>
38001
38002         * XplatUIX11.cs: Use the new Mono.Unix namespace.
38003
38004 2004-11-17  Ravindra <rkumar@novell.com>
38005
38006         * ListView.cs: Added event handling for MouseMove/Up/Down.
38007         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
38008         * ThemeWin32Classic.cs: We need to clear the graphics context and
38009         draw column header in a proper state.
38010
38011
38012 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
38013
38014         *  Menu.cs: fixes signature
38015
38016 2004-11-16  Peter Bartok  <pbartok@novell.com>
38017
38018         * XplatUIX11.cs (GetMessage): Implemented generation of
38019           double click mouse messages
38020
38021 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
38022
38023         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
38024         not by menu
38025
38026 2004-11-11  Peter Bartok  <pbartok@novell.com>
38027
38028         * HandleData.cs: Added Visible property
38029         * XplatUIX11.cs (IsVisible): Now uses Visible property from
38030           HandleData
38031         * XplatUIX11.cs: Removed old debug leftovers
38032         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
38033         * Control.cs (WndProc): Removed old debug leftovers,
38034           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
38035           needed WM_SIZE handling
38036
38037 2004-11-11  Jackson Harper  <jackson@ximian.com>
38038
38039         * OwnerDrawPropertyBag.cs:
38040         * TreeViewImageIndexConverter.cs: Initial implementation
38041
38042 2004-11-10  Jackson Harper  <jackson@ximian.com>
38043
38044         * ThemeWin32Classic.cs:
38045         * TabControl.cs: instead of moving tabs by the slider pos just
38046         start drawing at the tab that is offset by the slider. This way
38047         scrolling always moves by exactly one tab.
38048
38049 2004-11-10  Jackson Harper  <jackson@ximian.com>
38050
38051         * TabControl.cs: You can only scroll left when the slider has
38052         already ben moved right.
38053         
38054 2004-11-10  Jackson Harper  <jackson@ximian.com>
38055
38056         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
38057         the clip area.
38058         
38059 2004-11-10  Jackson Harper  <jackson@ximian.com>
38060
38061         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
38062         clip area.
38063         
38064 2004-11-09  Jackson Harper  <jackson@ximian.com>
38065
38066         * TabControl.cs (CalcXPos): New helper method so we can determine
38067         the proper place to start drawing vertical tabs.
38068         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
38069         
38070 2004-11-09  Jackson Harper  <jackson@ximian.com>
38071
38072         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
38073         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
38074         and Bottom, left and right are illegal values for this and
38075         multiline is enabled when the alignment is set to left or right.
38076         (DrawTab): Each alignment block should draw the text itself now
38077         because Left requires special love. Also add rendering for Left
38078         aligned tabs.
38079         
38080 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
38081
38082         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
38083         does not destroy the windows, removes debugging messages
38084
38085 2004-11-09  jba  <jba-mono@optusnet.com.au>
38086
38087         * ThemeWin32Classic.cs
38088         (DrawButtonBase): Fix verticle text rect clipping in windows
38089         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
38090         rendering and incorrect text rect clipping
38091         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
38092         rendering and incorrect text rect clipping
38093         
38094 2004-11-08  Jackson Harper  <jackson@ximian.com>
38095
38096         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
38097         bottom when they are bottom aligned so the bottoms of the tabs get
38098         displayed.
38099         * TabControl.cs (DropRow): Move rows up instead of down when the
38100         tab control is bottom aligned.
38101
38102 2004-11-08 13:59  pbartok
38103
38104         * XplatUIX11.cs:
38105           - Added handling for various window styles
38106           - Added handling for popup windows
38107           - Added SetTopmost handling
38108
38109 2004-11-08 13:55  pbartok
38110
38111         * XplatUIWin32.cs:
38112           - Added argument to SetTopmost method
38113           - Fixed broken ClientToScreen function
38114
38115 2004-11-08 13:53  pbartok
38116
38117         * XplatUIStructs.cs:
38118           - Added missing WS_EX styles
38119
38120 2004-11-08 13:53  pbartok
38121
38122         * XplatUI.cs, XplatUIDriver.cs:
38123           - Added argument to SetTopmost
38124
38125 2004-11-08 13:52  pbartok
38126
38127         * X11Structs.cs:
38128           - Added XSetWindowAttributes structure
38129           - Improved XWindowAttributes structure
38130           - Added SetWindowValuemask enum
38131           - Added window creation arguments enum
38132           - Added gravity enum
38133           - Added Motif hints structure
38134           - Added various Motif flags and enums
38135           - Added PropertyMode enum for property functions
38136
38137 2004-11-08 13:50  pbartok
38138
38139         * Form.cs:
38140           - Fixed arguments for updated SetTopmost method
38141
38142 2004-11-08 13:49  pbartok
38143
38144         * ToolTip.cs:
38145           - Fixed arguments for updated SetTopmost function
38146           - Fixed usage of PointToClient
38147
38148 2004-11-08 13:44  pbartok
38149
38150         * MenuAPI.cs:
38151           - Added Clipping of children and siblings
38152
38153 2004-11-08 13:41  pbartok
38154
38155         * MainMenu.cs:
38156           - Removed SetMenuBarWindow call. We do this in Form.cs
38157
38158 2004-11-08 13:40  jackson
38159
38160         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
38161           scrolling jimmi in the correct location with bottom aligned tabs
38162
38163 2004-11-08 13:36  pbartok
38164
38165         * ContainerControl.cs:
38166           - Implemented BindingContext
38167           - Implemented ParentForm
38168
38169 2004-11-08 12:46  jackson
38170
38171         * TabControl.cs: Put bottom rendered tabs in the right location
38172
38173 2004-11-08 07:15  jordi
38174
38175         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
38176           removes dead code
38177
38178 2004-11-05 17:30  jackson
38179
38180         * TabControl.cs: When selected tabs are expanded make sure they
38181           don't go beyond the edges of the tab control
38182
38183 2004-11-05 14:57  jackson
38184
38185         * TabControl.cs: Reset show_slider so if the control is resized to
38186           a size where it is no longer needed it's not displayed anymore
38187
38188 2004-11-05 13:16  jackson
38189
38190         * TabControl.cs: Make tab pages non visible when added to the
38191           control
38192
38193 2004-11-05 12:42  jackson
38194
38195         * TabControl.cs: Implement SizeMode.FillToRight
38196
38197 2004-11-05 12:16  jackson
38198
38199         * Control.cs: Do not call CreateHandle if the handle is already
38200           created
38201
38202 2004-11-05 11:46  jackson
38203
38204         * TabControl.cs: Remove superflous call to CalcTabRows
38205
38206 2004-11-05 09:07  jackson
38207
38208         * XplatUIX11.cs: Update for Mono.Posix changes
38209
38210 2004-11-05 07:00  ravindra
38211
38212         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
38213           scrolling.
38214
38215 2004-11-04 22:47  jba
38216
38217         * ThemeWin32Classic.cs:
38218           - Fix Button rendering for FlatStyle = Flat or Popup
38219           - Fix RadioButton and CheckBox rendering when Appearance = Button
38220             (normal and flatstyle).
38221           - Correct outer rectangle color when drawing focus rectangle
38222           - Adjust button bounds to be 1 px smaller when focused
38223           - Make button not draw sunken 3d border when pushed (windows compat)
38224           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
38225           - Offset the text in RadioButton and Checkbox when being rendered as
38226           a button.
38227           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
38228           radiobuttons
38229           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
38230           - Fixed disabled text rendering for normally rendered radiobuttons
38231
38232 2004-11-04 10:26  jackson
38233
38234         * TabControl.cs: Recalculate tab rows when resizing
38235
38236 2004-11-04 07:47  jordi
38237
38238         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
38239           collection completion, drawing issues, missing features
38240
38241 2004-11-04 05:03  ravindra
38242
38243         * ScrollBar.cs:
38244                 - We need to recalculate the Thumb area when
38245                 LargeChange/maximum/minimum values are changed.
38246           - We set the 'pos' in UpdatePos() method to minimum, if it's less
38247                 than minimum. This is required to handle the case if large_change is
38248                 more than max, and use LargeChange property instead of large_change
38249                 variable.
38250           - We return max+1 when large_change is more than max, like MS does.
38251
38252 2004-11-04 04:29  ravindra
38253
38254         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
38255                 - Changed default value signatures (prefixed all with ListView).
38256                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
38257                 ListView.
38258           - Fixed calculations for ListViewItem and implemented Clone()
38259           method.
38260
38261 2004-11-04 04:26  ravindra
38262
38263         * Theme.cs, ThemeWin32Classic.cs:
38264                 - Changed default ListView values signatures (prefixed all with
38265                 ListView).
38266           - Fixed default size values for VScrollBar and HScrollBar.
38267                 - Fixed DrawListViewItem method.
38268
38269 2004-11-04 04:05  ravindra
38270
38271         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
38272
38273 2004-11-04 04:04  ravindra
38274
38275         * ImageList.cs: Implemented the missing overload for Draw method.
38276
38277 2004-11-03 19:29  jackson
38278
38279         * TabControl.cs: Handle dropping rows on selection properly
38280
38281 2004-11-03 11:59  jackson
38282
38283         * TabControl.cs: remove debug code
38284
38285 2004-11-03 11:52  jackson
38286
38287         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
38288           the scrolly widgerywoo
38289
38290 2004-11-02 13:52  jackson
38291
38292         * TabControl.cs: Resize the tab pages and tabs when the tab control
38293           is resized
38294
38295 2004-11-02 13:40  jackson
38296
38297         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
38298           selected tab to the bottom
38299
38300 2004-11-02 13:39  jackson
38301
38302         * TabPage.cs: Store the tab pages row
38303
38304 2004-11-02 12:33  jordi
38305
38306         * MenuItem.cs: fixes handle creation
38307
38308 2004-11-02 11:42  jackson
38309
38310         * TabControl.cs: signature fix
38311
38312 2004-11-02 08:56  jackson
38313
38314         * TabControl.cs: Calculate whether the tab is on an edge properly.
38315           Remove top secret debugging code
38316
38317 2004-11-01 19:57  jackson
38318
38319         * TabControl.cs: Add click handling, and proper sizing
38320
38321 2004-11-01 19:47  jackson
38322
38323         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
38324           tab controls
38325
38326 2004-11-01 19:39  jackson
38327
38328         * TabPage.cs: add internal property to store the bounds of a tab
38329           page
38330
38331 2004-10-30 04:23  ravindra
38332
38333         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
38334           values.
38335
38336 2004-10-30 04:21  ravindra
38337
38338         * ListView.cs, ListViewItem.cs: Added support for scrolling and
38339           fixed calculations.
38340
38341 2004-10-30 03:06  pbartok
38342
38343         * XplatUIX11.cs:
38344           - Removed extension of DllImported libs
38345
38346 2004-10-29 09:55  jordi
38347
38348         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
38349           navigation, itemcollection completion, menu fixes
38350
38351 2004-10-27 22:58  pbartok
38352
38353         * XplatUIX11.cs:
38354           - Now throws a nice error message when no X display could be opened
38355
38356 2004-10-26 13:51  jordi
38357
38358         * ListView.cs: removes warning
38359
38360 2004-10-26 03:55  ravindra
38361
38362         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
38363           ThemeWin32Classic.cs: Some formatting for my last checkins.
38364
38365 2004-10-26 03:36  ravindra
38366
38367         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
38368           control and default values.
38369
38370 2004-10-26 03:35  ravindra
38371
38372         * Theme.cs: Added some default values for ListView control.
38373
38374 2004-10-26 03:33  ravindra
38375
38376         * ToolBar.cs: ToolBar should use the user specified button size, if
38377           there is any. Added a size_specified flag for the same.
38378
38379 2004-10-26 03:33  ravindra
38380
38381         * ColumnHeader.cs: Added some internal members and calculations for
38382           ColumnHeader.
38383
38384 2004-10-26 03:32  ravindra
38385
38386         * ListViewItem.cs: Calculations for ListViewItem.
38387
38388 2004-10-26 03:31  ravindra
38389
38390         * ListView.cs: Added some internal members and calculations for
38391           ListView.
38392
38393 2004-10-22 13:31  jordi
38394
38395         * MenuAPI.cs: speedup menus drawing
38396
38397 2004-10-22 13:16  jackson
38398
38399         * XplatUIX11.cs: Make sure to update exposed regions when adding an
38400           expose event
38401
38402 2004-10-22 11:49  jackson
38403
38404         * Control.cs: oops
38405
38406 2004-10-22 11:41  jackson
38407
38408         * Control.cs: Check to see if the window should have its background
38409           repainted by X when drawing.
38410
38411 2004-10-22 11:31  jackson
38412
38413         * XplatUIX11.cs: When invalidating areas only use XClearArea if
38414           clear is true, this way we do not get flicker from X repainting the
38415           background
38416
38417 2004-10-22 11:28  jackson
38418
38419         * XEventQueue.cs: Queue properly
38420
38421 2004-10-21 09:38  jackson
38422
38423         * XEventQueue.cs: Fix access modifier
38424
38425 2004-10-21 09:36  jackson
38426
38427         * XEventQueue.cs: Don't loose messages
38428
38429 2004-10-21 09:22  jackson
38430
38431         * XEventQueue.cs: Don't loose messages
38432
38433 2004-10-20 04:15  jordi
38434
38435         * BootMode.cs: enum need it by SystemInfo
38436
38437 2004-10-19 21:58  pbartok
38438
38439         * XplatUIWin32.cs:
38440           - Small sanity check
38441
38442 2004-10-19 21:56  pbartok
38443
38444         * Form.cs:
38445           - Added private FormParentWindow class which acts as the container
38446             for our form and as the non-client area where menus are drawn
38447           - Added/Moved required tie-ins to Jordi's menus
38448           - Fixed/Implemented the FormStartPosition functionality
38449
38450 2004-10-19 21:52  pbartok
38451
38452         * Control.cs:
38453           - Removed unneeded locals
38454           - Added code to all size and location properties to understand and
38455             deal with the parent container of Form
38456
38457 2004-10-19 21:33  pbartok
38458
38459         * Application.cs:
38460           - Fixed to deal with new Form subclasses for menus
38461
38462 2004-10-19 17:48  jackson
38463
38464         * XEventQueue.cs: commit correct version of file
38465
38466 2004-10-19 16:50  jackson
38467
38468         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
38469
38470 2004-10-19 16:15  jordi
38471
38472         * MenuAPI.cs: MenuBarCalcSize returns the height
38473
38474 2004-10-19 08:31  pbartok
38475
38476         * Control.cs:
38477           - Added missing call to PreProcessMessage before calling OnXXXKey
38478           methods
38479
38480 2004-10-19 00:04  ravindra
38481
38482         * ToolTip.cs: Fixed constructor.
38483
38484 2004-10-18 09:31  jordi
38485
38486         * MenuAPI.cs: menuitems in menubars do not have shortcuts
38487
38488 2004-10-18 09:26  jordi
38489
38490         * MenuItem.cs: fixes MenuItem class signature
38491
38492 2004-10-18 08:56  jordi
38493
38494         * MenuAPI.cs: prevents windows from showing in the taskbar
38495
38496 2004-10-18 00:28  ravindra
38497
38498         * ToolTip.cs: Suppressed a warning message.
38499
38500 2004-10-18 00:27  ravindra
38501
38502         * Control.cs: Default value of visible property must be true.
38503
38504 2004-10-17 23:19  pbartok
38505
38506         * ToolTip.cs:
38507           - Complete implementation
38508
38509 2004-10-17 23:19  pbartok
38510
38511         * XplatUIX11.cs:
38512           - Added EnableWindow method
38513           - Added SetModal stub
38514           - Added generation of WM_ACTIVATE message (still needs testing)
38515           - Added SetTopMost stub
38516           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
38517
38518 2004-10-17 23:17  pbartok
38519
38520         * XplatUIWin32.cs:
38521           - Removed VirtualKeys to XplatUIStructs
38522           - Implemented SetTopMost method
38523           - Implemented EnableWindow method
38524           - Bugfix in ScreenToClient()
38525           - Bugfixes in ClientToScreen()
38526
38527 2004-10-17 22:51  pbartok
38528
38529         * XplatUIStructs.cs:
38530           - Added WS_EX styles to WindowStyles enumeration
38531
38532 2004-10-17 22:50  pbartok
38533
38534         * XplatUI.cs, XplatUIDriver.cs:
38535           - Added method for enabling/disabling windows
38536           - Added method for setting window modality
38537           - Added method for setting topmost window
38538
38539 2004-10-17 22:49  pbartok
38540
38541         * ThemeWin32Classic.cs:
38542           - Added ToolTip drawing code
38543
38544 2004-10-17 22:49  pbartok
38545
38546         * Theme.cs:
38547           - Added ToolTip abstracts
38548
38549 2004-10-17 22:47  pbartok
38550
38551         * Form.cs:
38552           - Fixed Form.ControlCollection to handle owner relations
38553           - Added Owner/OwnedForms handling
38554           - Implemented Z-Ordering for owned forms
38555           - Removed unneeded private overload of ShowDialog
38556           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
38557             so I hope)
38558           - Fixed Close(), had wrong default
38559           - Added firing of OnLoad event
38560           - Added some commented out debug code for Ownership handling
38561
38562 2004-10-17 22:16  pbartok
38563
38564         * Control.cs:
38565           - Fixed/implemented flat list of controls
38566
38567 2004-10-17 22:14  pbartok
38568
38569         * Application.cs:
38570           - Added code to simulate modal dialogs on Win32
38571
38572 2004-10-17 16:11  jordi
38573
38574         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
38575           mouse event
38576
38577 2004-10-17 13:39  jordi
38578
38579         * MenuAPI.cs: menu drawing fixes
38580
38581 2004-10-15 09:10  ravindra
38582
38583         * StructFormat.cs: General Enum.
38584
38585 2004-10-15 09:09  ravindra
38586
38587         * SizeGripStyle.cs: Enum for Form.
38588
38589 2004-10-15 09:08  ravindra
38590
38591         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
38592           in Theme for ListView.
38593
38594 2004-10-15 09:06  ravindra
38595
38596         * ColumnHeader.cs: Flushing some formatting changes.
38597
38598 2004-10-15 09:05  ravindra
38599
38600         * ListViewItem.cs: Implemented GetBounds method and fixed coding
38601           style.
38602
38603 2004-10-15 09:03  ravindra
38604
38605         * ListView.cs: Implemented Paint method and fixed coding style.
38606
38607 2004-10-15 07:34  jordi
38608
38609         * MenuAPI.cs: fix for X11
38610
38611 2004-10-15 07:32  ravindra
38612
38613         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
38614                 - Renamed Paint() method to Draw() for clarity. Also, moved
38615                 DrawImage() to OnPaint().
38616
38617 2004-10-15 07:25  ravindra
38618
38619         * CheckBox.cs, RadioButton.cs:
38620                 - Removed Redraw (), we get it from ButtonBase.
38621                 - Implemented Paint (), to do class specific painting.
38622
38623 2004-10-15 07:16  ravindra
38624
38625         * ButtonBase.cs:
38626                 - Redraw () is not virtual now.
38627                 - Added an internal virtual method Paint (), so that
38628                 derived classes can do their painting on their own.
38629                 - Modified OnPaint () to call Paint ().
38630
38631 2004-10-15 06:43  jordi
38632
38633         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
38634           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
38635
38636 2004-10-15 00:30  ravindra
38637
38638         * MessageBox.cs:
38639                 - MessageBox on windows does not have min/max buttons.
38640                 This change in CreateParams fixes this on Windows. We
38641                 still need to implement this windowstyle behavior in
38642                 our X11 driver.
38643
38644 2004-10-14 05:14  ravindra
38645
38646         * ToolBar.cs:
38647                 - Changed Redraw () to do a Refresh () always.
38648                 - Fixed the MouseMove event handling when mouse is pressed,
38649                 ie drag event handling.
38650                 - Replaced the usage of ToolBarButton.Pressed property to
38651                 ToolBarButton.pressed internal variable.
38652
38653 2004-10-14 05:10  ravindra
38654
38655         * ToolBarButton.cs:
38656                 - Added an internal member 'inside' to handle mouse move
38657                 with mouse pressed ie mouse drag event.
38658                 - Changed 'Pressed' property to return true only when
38659                 'inside' and 'pressed' are both true.
38660                 - Some coding style love.
38661
38662 2004-10-14 00:17  ravindra
38663
38664         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
38665           public method.
38666
38667 2004-10-14 00:15  ravindra
38668
38669         * ButtonBase.cs: Redraw () related improvements.
38670
38671 2004-10-14 00:14  ravindra
38672
38673         * MessageBox.cs: Moved InitFormSize () out of Paint method and
38674           removed unnecessary calls to Button.Show () method.
38675
38676 2004-10-13 17:50  pbartok
38677
38678         * XplatUIX11.cs:
38679           - Formatting fix
38680           - Removed destroying of window until we solve the problem of X
38681             destroying the window before us on shutdown
38682
38683 2004-10-13 16:32  pbartok
38684
38685         * ButtonBase.cs:
38686           - Now Redraws on MouseUp for FlatStyle Flat and Popup
38687
38688 2004-10-13 14:18  pbartok
38689
38690         * XplatUIX11.cs:
38691           - Added code to destroy the X window
38692
38693 2004-10-13 14:18  pbartok
38694
38695         * XplatUIWin32.cs:
38696           - Added code to destroy a window
38697
38698 2004-10-13 14:12  pbartok
38699
38700         * ButtonBase.cs:
38701           - Added the Redraw on Resize that got dropped in the last rev
38702
38703 2004-10-13 09:06  pbartok
38704
38705         * ThemeWin32Classic.cs:
38706           - Path from John BouAntoun:
38707             * Fix check rendering (centre correctly for normal style, offset
38708               correctly for FlatStyle).
38709             * Fix border color usage (use backcolor) for FlatStyle.Popup
38710             * Use checkbox.Capture instead of checkbox.is_pressed when
38711               rendering flatstyle states.
38712
38713 2004-10-12 21:48  pbartok
38714
38715         * ThemeWin32Classic.cs:
38716           - Removed all occurences of SystemColors and replaced them with the
38717             matching theme color
38718
38719 2004-10-12 21:41  pbartok
38720
38721         * ThemeWin32Classic.cs:
38722           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
38723             him using the function for flatstyle drawing
38724           - Changed functions to use the new version of CPDrawBorder3D
38725
38726 2004-10-12 21:15  pbartok
38727
38728         * ControlPaint.cs:
38729           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
38730             match MS documentation. They need to return defined colors if the
38731             passed color matches the configured control color. Thanks to John
38732             BouAntoun for pointing this out.
38733
38734 2004-10-12 20:57  pbartok
38735
38736         * Control.cs:
38737           - Fix from John BouAntoun: Raise ForeColorChanged event when text
38738             color is changed
38739
38740 2004-10-12 20:46  pbartok
38741
38742         * CheckBox.cs:
38743           - Fix from John BouAntoun: Now properly sets the Appearance property
38744
38745 2004-10-12 20:45  pbartok
38746
38747         * ThemeWin32Classic.cs:
38748           - Fixes from John BouAntoun: now handles forecolors and backcolors
38749             for flatstyle rendered controls much better; It also fixes normal
38750             checkbox rendering when pushed or disabled.
38751
38752 2004-10-08 02:50  jordi
38753
38754         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
38755           work
38756
38757 2004-10-07 08:56  jordi
38758
38759         * ThemeWin32Classic.cs: Removes deletion of cached brushes
38760
38761 2004-10-06 03:59  jordi
38762
38763         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
38764           XplatUIWin32.cs: removes warnings from compilation
38765
38766 2004-10-05 12:23  jackson
38767
38768         * RadioButton.cs: Fix ctor
38769
38770 2004-10-05 11:10  pbartok
38771
38772         * MessageBox.cs:
38773           - Partial implementation by Benjamin Dasnois
38774
38775 2004-10-05 10:15  jackson
38776
38777         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
38778           by John BouAntoun
38779
38780 2004-10-05 03:07  ravindra
38781
38782         * ToolBar.cs:
38783                 - Removed a private method, Draw ().
38784                 - Fixed the ButtonDropDown event handling.
38785                 - Fixed MouseMove event handling.
38786
38787 2004-10-05 03:04  ravindra
38788
38789         * ThemeWin32Classic.cs:
38790                 - Added DrawListView method and ListViewDefaultSize property.
38791                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
38792                 - Changed DOS style CRLF to Unix format (dos2unix).
38793
38794 2004-10-05 03:03  ravindra
38795
38796         * Theme.cs:
38797                 - Added DrawListView method and ListViewDefaultSize property.
38798
38799 2004-10-05 02:42  ravindra
38800
38801         * ToolBarButton.cs: Added an internal member dd_pressed to handle
38802           clicks on DropDown arrow.
38803
38804 2004-10-04 22:56  jackson
38805
38806         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
38807           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
38808           Control handle the buffers, derived classes should not have to
38809           CreateBuffers themselves.
38810
38811 2004-10-04 21:20  jackson
38812
38813         * StatusBar.cs: The control handles resizing the buffers now.
38814
38815 2004-10-04 21:18  jackson
38816
38817         * Control.cs: When resizing the buffers should be invalidated. This
38818           should be handled in Control not in derived classes.
38819
38820 2004-10-04 14:45  jackson
38821
38822         * TabPage.cs: oops
38823
38824 2004-10-04 02:14  pbartok
38825
38826         * LeftRightAlignment.cs:
38827           - Initial check-in
38828
38829 2004-10-04 01:09  jordi
38830
38831         * ThemeWin32Classic.cs: fixes right button position causing right
38832           button not showing on horizontal scrollbars
38833
38834 2004-10-02 13:12  pbartok
38835
38836         * XplatUIX11.cs:
38837           - Simplified the Invalidate method by using an X call instead of
38838             generating the expose ourselves
38839           - Added an expose when the window background is changed
38840           - Implemented ClientToScreen method
38841
38842 2004-10-02 13:08  pbartok
38843
38844         * XplatUIWin32.cs:
38845           - Added Win32EnableWindow method (test for implementing modal
38846           dialogs)
38847           - Added ClientToScreen method and imports
38848
38849 2004-10-02 13:07  pbartok
38850
38851         * XplatUI.cs, XplatUIDriver.cs:
38852           - Added ClientToScreen coordinate translation method
38853
38854 2004-10-02 13:06  pbartok
38855
38856         * KeyPressEventArgs.cs:
38857           - Fixed access level for constructor
38858
38859 2004-10-02 13:06  pbartok
38860
38861         * NativeWindow.cs:
38862           - Changed access level for the window_collection hash table
38863
38864 2004-10-02 13:05  pbartok
38865
38866         * Form.cs:
38867           - Added KeyPreview property
38868           - Added Menu property (still incomplete, pending Jordi's menu work)
38869           - Implemented ProcessCmdKey
38870           - Implemented ProcessDialogKey
38871           - Implemented ProcessKeyPreview
38872
38873 2004-10-02 13:02  pbartok
38874
38875         * Control.cs:
38876           - Added private method to get the Control object from the window
38877           handle
38878           - Implemented ContextMenu property
38879           - Implemented PointToScreen
38880           - Implemented PreProcessMessage
38881           - Implemented IsInputChar
38882           - Implemented IsInputKey
38883           - Implemented ProcessCmdKey
38884           - Completed ProcessKeyEventArgs
38885           - Fixed message loop to call the proper chain of functions on key
38886           events
38887           - Implemented ProcessDialogChar
38888           - Implemented ProcessDialogKey
38889           - Implemented ProcessKeyMessage
38890           - Implemented ProcessKeyPreview
38891           - Added RaiseDragEvent stub (MS internal method)
38892           - Added RaiseKeyEvent stub (MS internal method)
38893           - Added RaiseMouseEvent stub (MS Internal method)
38894           - Added RaisePaintEvent stub (MS Internal method)
38895           - Added ResetMouseEventArgs stub (MS Internal method)
38896           - Implemented RtlTranslateAlignment
38897           - Implemented RtlTranslateContent
38898           - Implemented RtlTranslateHorizontal
38899           - Implemented RtlTranslateLeftRight
38900           - Added generation of KeyPress event
38901
38902 2004-10-02 05:57  ravindra
38903
38904         * ListViewItem.cs: Added attributes.
38905
38906 2004-10-02 05:32  ravindra
38907
38908         * ListView.cs: Added attributes.
38909
38910 2004-10-01 11:53  jackson
38911
38912         * Form.cs: Implement the Close method so work on MessageBox can
38913           continue.
38914
38915 2004-09-30 14:06  pbartok
38916
38917         * XplatUIX11.cs:
38918           - Bug fixes
38919
38920 2004-09-30 11:34  jackson
38921
38922         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
38923
38924 2004-09-30 07:26  ravindra
38925
38926         * ListViewItemConverter.cs: Converter for ListViewItem.
38927
38928 2004-09-30 07:26  ravindra
38929
38930         * SortOrder.cs: Enum for ListView control.
38931
38932 2004-09-30 07:25  ravindra
38933
38934         * ColumnHeader.cs: Supporting class for ListView control.
38935
38936 2004-09-30 07:24  ravindra
38937
38938         * ListView.cs, ListViewItem.cs: Initial implementation.
38939
38940 2004-09-30 07:20  ravindra
38941
38942         * ItemActivation.cs: Enum for ListView Control.
38943
38944 2004-09-29 20:29  pbartok
38945
38946         * XplatUIX11.cs:
38947           - Added lookup of pixel value for background color; tries to get a
38948             color 'close' to the requested color, it avoids having to create a
38949             colormap.  Depending on the display this could mean the used color
38950             is slightly off the desired color. Might have to change it to a more
38951             resource intensive colormap approach, but it will work as a
38952           workaround to avoid red screens.
38953
38954 2004-09-29 14:27  jackson
38955
38956         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
38957
38958 2004-09-28 12:44  pbartok
38959
38960         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
38961           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
38962           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
38963           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
38964           TrackBar.cs, VScrollBar.cs:
38965           - Streamlined Theme interfaces:
38966             * Each DrawXXX method for a control now is passed the object for
38967               the control to be drawn in order to allow accessing any state the
38968               theme might require
38969
38970             * ControlPaint methods for the theme now have a CP prefix to avoid
38971               name clashes with the Draw methods for controls
38972
38973             * Every control now retrieves it's DefaultSize from the current
38974             theme
38975
38976 2004-09-28 12:17  jackson
38977
38978         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
38979           drawing
38980
38981 2004-09-24 14:57  jackson
38982
38983         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
38984           Gives us a nice little performance boost.
38985
38986 2004-09-24 12:02  jackson
38987
38988         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
38989           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
38990           Control and supporting classes. Initial checkin
38991
38992 2004-09-23 13:08  jackson
38993
38994         * Form.cs: Temp build fixage
38995
38996 2004-09-23 01:39  ravindra
38997
38998         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
38999           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
39000           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
39001           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
39002           EventHandlers needed by ListView Control.
39003
39004 2004-09-22 14:12  pbartok
39005
39006         * ScrollableControl.cs:
39007           - Implemented DockPadding property
39008           - Implemented AutoScroll property
39009           - Implemented AutoScrollMargin property
39010           - Implemented AutoScrollMinSize property
39011           - Implemented AutoScrollPosition property
39012           - Implemented DisplayRectangle property (still incomplete)
39013           - Implemented CreateParams property
39014           - Implemented HScroll property
39015           - Implemented VScroll property
39016           - Implemented OnVisibleChanged property
39017
39018 2004-09-22 14:09  pbartok
39019
39020         * Form.cs:
39021           - Added Form.ControllCollection class
39022           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
39023             RemoveOwnedForm (still incomplete, missing on-top and common
39024             minimize/maximize behaviour)
39025           - Added StartPosition property (still incomplete, does not use when
39026             creating the form)
39027           - Added ShowDialog() methods (still incomplete, missing forcing the
39028             dialog modal)
39029
39030 2004-09-22 14:05  pbartok
39031
39032         * Application.cs:
39033           - Added message loop for modal dialogs
39034
39035 2004-09-22 14:02  pbartok
39036
39037         * GroupBox.cs:
39038           - Fixed wrong types for events
39039
39040 2004-09-22 14:00  pbartok
39041
39042         * Shortcut.cs, FormWindowState.cs:
39043           - Fixed wrong values
39044
39045 2004-09-22 12:01  jackson
39046
39047         * Control.cs: Text is never null
39048
39049 2004-09-20 22:14  pbartok
39050
39051         * XplatUIWin32.cs:
39052           - Fixed accessibility level for Idle handler
39053
39054 2004-09-20 18:54  jackson
39055
39056         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
39057           XplatUIX11.cs: New message loop that uses poll so we don't get a
39058           busy loop
39059
39060 2004-09-17 10:43  pbartok
39061
39062         * ScrollBar.cs:
39063           - Fixed behaviour of arrow buttons. Now properly behaves like
39064             Buttons (and like Microsoft's scrollbar arrow buttons)
39065
39066 2004-09-17 10:14  pbartok
39067
39068         * ScrollBar.cs:
39069           - Added missing release of keyboard/mouse capture
39070
39071 2004-09-17 06:18  jordi
39072
39073         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
39074           Theme.cs: Very early menu support
39075
39076 2004-09-16 17:45  pbartok
39077
39078         * XplatUIWin32.cs:
39079           - Fixed sending a window to the front
39080           - Added overload for SetWindowPos to avoid casting
39081
39082 2004-09-16 17:44  pbartok
39083
39084         * Control.cs:
39085           - Added SendToBack and BringToFront methods
39086
39087 2004-09-16 07:00  ravindra
39088
39089         * Copyright: Added Novell URL.
39090
39091 2004-09-16 07:00  ravindra
39092
39093         * ToolBar.cs: Invalidate should be done before redrawing.
39094
39095 2004-09-15 21:19  ravindra
39096
39097         * ColumnHeaderStyle.cs: Enum for ListView Control.
39098
39099 2004-09-15 21:18  ravindra
39100
39101         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
39102           ListView Control.
39103
39104 2004-09-13 18:26  jackson
39105
39106         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
39107           properly
39108
39109 2004-09-13 18:13  jackson
39110
39111         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
39112           a second thread and post messages into the main threads message
39113           queue. This makes timing much more consistent. Both win2K and XP
39114           have a minimum timer value of 15 milliseconds, so we now do this
39115           too.
39116
39117 2004-09-13 15:18  pbartok
39118
39119         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
39120           XplatUIX11.cs:
39121           - Added Z-Ordering methods
39122
39123 2004-09-13 10:56  pbartok
39124
39125         * Form.cs:
39126           - Fixed #region names
39127           - Moved properties and methods into their proper #regions
39128
39129 2004-09-13 10:51  pbartok
39130
39131         * Form.cs:
39132           - Added Accept and CancelButton properties
39133           - Added ProcessDialogKey() method
39134
39135 2004-09-13 08:18  pbartok
39136
39137         * IWindowTarget.cs:
39138           - Initial check-in
39139
39140 2004-09-10 21:50  pbartok
39141
39142         * Control.cs:
39143           - Added DoDragDrop() [incomplete]
39144           - Properly implemented 'Visible' handling
39145           - Added SetVisibleCore()
39146           - Implemented FindChildAtPoint()
39147           - Implemented GetContainerControl()
39148           - Implemented Hide()
39149
39150 2004-09-10 19:28  pbartok
39151
39152         * Control.cs:
39153           - Moved methods into their appropriate #regions
39154           - Reordered methods within regions alphabetically
39155
39156 2004-09-10 18:57  pbartok
39157
39158         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
39159           - Added method to retrieve text from window
39160
39161 2004-09-10 18:56  pbartok
39162
39163         * Control.cs:
39164           - Moved some internal functions into the internal region
39165           - Implemented FontHeight
39166           - Implemented RenderRightToLeft
39167           - Implemented ResizeRedraw
39168           - Implemented ShowFocusCues
39169           - Implemented ShowKeyboardCues
39170           - Implemented FromChildHandle
39171           - Implemented FromHandle
39172           - Implemented IsMnemonic
39173           - Implemented ReflectMessage
39174           - All public and protected Static Methods are now complete
39175
39176 2004-09-10 16:54  pbartok
39177
39178         * Control.cs:
39179           - Implemented remaining missing public instance properties
39180           - Alphabetized some out of order properties
39181
39182 2004-09-10 05:51  ravindra
39183
39184         * PictureBox.cs: Added a check for null image.
39185
39186 2004-09-10 00:59  jordi
39187
39188         * GroupBox.cs: remove cvs tag
39189
39190 2004-09-09 05:25  ravindra
39191
39192         * ToolBar.cs: Make redraw accessible from ToolBarButton.
39193
39194 2004-09-09 05:23  ravindra
39195
39196         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
39197           parent redraw.
39198
39199 2004-09-09 02:28  pbartok
39200
39201         * ThemeWin32Classic.cs:
39202           - Improve disabled string look
39203
39204 2004-09-09 01:15  jordi
39205
39206         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
39207           args and handler
39208
39209 2004-09-08 23:56  ravindra
39210
39211         * ItemBoundsPortion.cs: It's enum, not a class!
39212
39213 2004-09-08 23:47  ravindra
39214
39215         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
39216           Enums for Form.
39217
39218 2004-09-08 21:13  ravindra
39219
39220         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
39221           ListView control.
39222
39223 2004-09-08 21:03  ravindra
39224
39225         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
39226           avoid crash.
39227
39228 2004-09-08 21:01  ravindra
39229
39230         * ScrollableControl.cs: Removed unreachable code.
39231
39232 2004-09-08 06:45  jordi
39233
39234         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
39235
39236 2004-09-08 01:00  jackson
39237
39238         * XplatUIX11.cs: Only run the timers when updating the message
39239           queue. This effectively gives X messages a higher priority then
39240           timer messages. Timers still need love though
39241
39242 2004-09-07 14:01  jackson
39243
39244         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
39245           this for us and the handle is no longer valid.
39246
39247 2004-09-07 13:59  jackson
39248
39249         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
39250           loop that manages to not crash. TODO: Add poll and cleanup timers
39251
39252 2004-09-07 11:12  jordi
39253
39254         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
39255
39256 2004-09-07 03:40  jordi
39257
39258         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
39259           fixes, methods, multiple links
39260
39261 2004-09-06 06:55  jordi
39262
39263         * Control.cs: Caches ClientRectangle rectangle value
39264
39265 2004-09-05 02:03  jordi
39266
39267         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
39268           certain situations
39269
39270 2004-09-04 11:10  jordi
39271
39272         * Label.cs: Refresh when font changed
39273
39274 2004-09-02 16:24  pbartok
39275
39276         * Control.cs:
39277           - Added sanity check to creation of double buffer bitmap
39278
39279 2004-09-02 16:24  pbartok
39280
39281         * ButtonBase.cs:
39282           - Fixed selection of text color
39283           - Fixed handling of resize event; now properly recreates double
39284             buffering bitmap
39285           - Added missing assignment of TextAlignment
39286           - Added proper default for TextAlignment
39287
39288 2004-09-02 14:26  pbartok
39289
39290         * RadioButton.cs:
39291           - Added missing RadioButton.RadioButtonAccessibleObject class
39292
39293 2004-09-02 14:26  pbartok
39294
39295         * Control.cs:
39296           - Added missing Control.ControlAccessibleObject class
39297           - Started to implement Select()ion mechanisms, still very incomplete
39298
39299 2004-09-02 14:25  pbartok
39300
39301         * AccessibleObject.cs:
39302           - Added missing methods
39303
39304 2004-09-02 14:23  pbartok
39305
39306         * AccessibleNavigation.cs, AccessibleSelection.cs:
39307           - Initial check-in
39308
39309 2004-09-02 10:32  jordi
39310
39311         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
39312           pool for pens, brushes, and hatchbruses
39313
39314 2004-09-01 15:30  jackson
39315
39316         * StatusBar.cs: Fix typo
39317
39318 2004-09-01 14:44  pbartok
39319
39320         * RadioButton.cs:
39321           - Fixed state
39322
39323 2004-09-01 14:39  pbartok
39324
39325         * Button.cs, RadioButton.cs:
39326           - Functional initial check-in
39327
39328 2004-09-01 14:01  pbartok
39329
39330         * CheckBox.cs:
39331           - Added missing default
39332           - Added missing region mark
39333
39334 2004-09-01 09:10  jordi
39335
39336         * Label.cs: fixes method signatures, new methods, events, fixes
39337           autosize
39338
39339 2004-09-01 07:19  jordi
39340
39341         * Control.cs: Init string variables with an empty object
39342
39343 2004-09-01 04:20  jordi
39344
39345         * Control.cs: fires OnFontChanged event
39346
39347 2004-08-31 20:07  pbartok
39348
39349         * ButtonBase.cs:
39350           - Enabled display of strings
39351
39352 2004-08-31 20:05  pbartok
39353
39354         * Form.cs:
39355           - Added (partial) implementation of DialogResult; rest needs to be
39356             implemented when the modal loop code is done
39357
39358 2004-08-31 19:55  pbartok
39359
39360         * CheckBox.cs:
39361           - Fixed to match the removal of the needs_redraw concept
39362
39363 2004-08-31 19:55  pbartok
39364
39365         * ButtonBase.cs:
39366           - Removed the rather odd split between 'needs redraw' and redrawing
39367           - Now handles the events that require regeneration (ambient
39368             properties and size)
39369
39370 2004-08-31 19:41  pbartok
39371
39372         * Control.cs:
39373           - Added firing of BackColorChanged event
39374           - Added TopLevelControl property
39375           - Fixed handling of WM_ERASEBKGRND message
39376
39377 2004-08-31 12:49  pbartok
39378
39379         * ButtonBase.cs:
39380           - Removed debug
39381           - Minor fixes
39382
39383 2004-08-31 12:48  pbartok
39384
39385         * CheckBox.cs:
39386           - Finished (famous last words)
39387
39388 2004-08-31 04:35  jordi
39389
39390         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
39391           scrolling bugs, adds new methods
39392
39393 2004-08-30 14:42  pbartok
39394
39395         * CheckBox.cs:
39396           - Implemented CheckBox drawing code
39397
39398 2004-08-30 14:42  pbartok
39399
39400         * ButtonBase.cs:
39401           - Made Redraw() and CheckRedraw() virtual
39402           - Improved mouse up/down/move logic to properly track buttons
39403
39404 2004-08-30 09:44  pbartok
39405
39406         * CheckBox.cs:
39407           - Updated to fix broken build. Not complete yet.
39408
39409 2004-08-30 09:28  pbartok
39410
39411         * CheckState.cs:
39412           - Initial checkin
39413
39414 2004-08-30 09:17  pbartok
39415
39416         * Appearance.cs:
39417           - Initial check-in
39418
39419 2004-08-27 16:12  ravindra
39420
39421         * ToolBarButton.cs: Added TypeConverter attribute.
39422
39423 2004-08-27 16:07  ravindra
39424
39425         * ImageIndexConverter.cs: Implemented.
39426
39427 2004-08-27 14:17  pbartok
39428
39429         * Control.cs:
39430           - Removed unneeded stack vars
39431           - First attempt to fix sizing issues when layout is suspended
39432
39433 2004-08-25 15:35  jordi
39434
39435         * ScrollBar.cs: more fixes to scrollbar
39436
39437 2004-08-25 14:04  ravindra
39438
39439         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
39440           Added the missing divider code and grip for ToolBar Control.
39441
39442 2004-08-25 13:20  pbartok
39443
39444         * Control.cs:
39445           - Control now properly passes the ambient background color to child
39446             controls
39447
39448 2004-08-25 13:20  jordi
39449
39450         * ScrollBar.cs: small bug fix regarding bar position
39451
39452 2004-08-25 12:33  pbartok
39453
39454         * Timer.cs:
39455           - Now only calls SetTimer or KillTimer if the enabled state has
39456           changed
39457
39458 2004-08-25 12:33  pbartok
39459
39460         * XplatUIWin32.cs:
39461           - Fixed timer handling, now seems to work
39462           - Improved error message for window creation
39463
39464 2004-08-25 12:32  pbartok
39465
39466         * Control.cs:
39467           - Fixed generation of MouseUp message
39468
39469 2004-08-25 12:29  jordi
39470
39471         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
39472           and fixes for progressbar
39473
39474 2004-08-24 18:43  ravindra
39475
39476         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
39477           in ToolBar control.
39478
39479 2004-08-24 17:15  pbartok
39480
39481         * Panel.cs:
39482           - Added #region
39483           - Added missing events
39484           - Alphabetized
39485
39486 2004-08-24 17:14  pbartok
39487
39488         * StatusBar.cs, PictureBox.cs:
39489           - Now uses Control's CreateParams
39490
39491 2004-08-24 16:36  pbartok
39492
39493         * XplatUIX11.cs:
39494           - Fixed background color handling
39495           - Fixed sending of enter/leave events on a grab
39496
39497 2004-08-24 16:35  pbartok
39498
39499         * X11Structs.cs:
39500           - Refined definitions for CrossingEvent
39501
39502 2004-08-24 12:37  jordi
39503
39504         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
39505           formmating, methods signature, and adds missing events
39506
39507 2004-08-24 12:24  jordi
39508
39509         * Control.cs: fire OnEnabledChanged event
39510
39511 2004-08-24 11:17  pbartok
39512
39513         * XplatUIWin32.cs:
39514           - Implemented SetTimer() and KillTimer()
39515
39516 2004-08-24 11:16  pbartok
39517
39518         * XplatUIX11.cs:
39519           - Now uses Remove instead of Add to kill the timer
39520
39521 2004-08-24 10:16  jackson
39522
39523         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
39524           picture boxes in the theme now. Draw picture box borders and obey
39525           sizing modes
39526
39527 2004-08-24 05:49  jackson
39528
39529         * Timer.cs: Remove top secret debugging code
39530
39531 2004-08-24 05:34  jackson
39532
39533         * PictureBox.cs: Temp hack to make picture boxes draw their full
39534           image
39535
39536 2004-08-24 05:29  jackson
39537
39538         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
39539           XplatUIX11.cs: Move timers to the driver level. On X they are
39540           queued by the driver and checked on idle.
39541
39542 2004-08-24 01:07  jackson
39543
39544         * XplatUIX11.cs: Use a queue for async messages instead of passing
39545           them as ClientMessages since that was totally broken. Also simply
39546           check for events and return an idle message if none are found. This
39547           gives us an idle handler, and prevents deadlocking when no messages
39548           are in the queue.
39549
39550 2004-08-23 18:19  ravindra
39551
39552         * XplatUIWin32.cs: Removed the unwanted destructor.
39553
39554 2004-08-23 17:27  pbartok
39555
39556         * ButtonBase.cs:
39557           - Finishing touches. Works now, just needs some optimizations.
39558
39559 2004-08-23 16:53  jordi
39560
39561         * ScrollBar.cs: small fix
39562
39563 2004-08-23 16:45  pbartok
39564
39565         * Application.cs:
39566           - Removed debug output
39567           - Simplifications
39568
39569 2004-08-23 16:43  jordi
39570
39571         * ScrollBar.cs: [no log message]
39572
39573 2004-08-23 16:10  pbartok
39574
39575         * Form.cs:
39576           - Fixed handling of WM_CLOSE message
39577           - Removed debug output
39578
39579 2004-08-23 16:09  pbartok
39580
39581         * Application.cs:
39582           - Added handling of Idle event
39583           - Added handling of form closing
39584           - Fixed reporting of MessageLoop property
39585           - Removed some unneeded code, should provide a bit of a speedup
39586
39587 2004-08-23 15:22  pbartok
39588
39589         * Control.cs:
39590           - Added InitLayout() method
39591           - Added code to properly perform layout when Anchor or Dock property
39592             is changed
39593           - Changed 'interpretation' of ResumeLayout. MS seems to have a
39594             LAMESPEC, tried to do it in a way that makes sense
39595
39596 2004-08-23 14:10  jordi
39597
39598         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
39599           properties and methods
39600
39601 2004-08-23 13:55  pbartok
39602
39603         * Control.cs:
39604           - Properly fixed Jordi's last fix
39605           - Now uses Cursor's Position property instead of calling XplatUI
39606           directly
39607
39608 2004-08-23 13:44  jordi
39609
39610         * PaintEventHandler.cs: Adding missing attribute
39611
39612 2004-08-23 13:39  pbartok
39613
39614         * Cursor.cs:
39615           - Implemented Position property
39616
39617 2004-08-23 13:39  pbartok
39618
39619         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
39620           - Added method to move mouse cursor
39621
39622 2004-08-23 13:39  pbartok
39623
39624         * XplatUIX11.cs:
39625           - Fixed setting of background color
39626           - Added method to move mouse cursor
39627
39628 2004-08-23 13:16  jordi
39629
39630         * Control.cs: avoids null exception
39631
39632 2004-08-22 17:46  jackson
39633
39634         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
39635           PictureBox
39636
39637 2004-08-22 17:40  jackson
39638
39639         * XplatUIX11.cs: Add some missing locks
39640
39641 2004-08-22 15:10  pbartok
39642
39643         * Control.cs, Form.cs:
39644           - Removed OverlappedWindow style from Control, instead it's default
39645             now is child
39646           - Made form windows OverlappedWindow by default
39647
39648 2004-08-22 13:34  jackson
39649
39650         * ScrollBar.cs: Update the position through the Value property so
39651           the OnValueChanged event is raised.
39652
39653 2004-08-22 12:04  pbartok
39654
39655         * SWF.csproj:
39656           - Added Cursor.cs and UserControl.cs
39657
39658 2004-08-22 12:03  pbartok
39659
39660         * Cursor.cs:
39661           - Started implementation, not usable yet
39662
39663 2004-08-22 12:00  pbartok
39664
39665         * UserControl.cs:
39666           - Implemented UserControl (complete)
39667
39668 2004-08-21 19:20  ravindra
39669
39670         * ToolBar.cs: Correcting the formatting mess of VS.NET.
39671
39672 2004-08-21 18:49  ravindra
39673
39674         * ToolBar.cs: Probably this completes the missing attributes in
39675           toolbar control.
39676
39677 2004-08-21 18:03  ravindra
39678
39679         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
39680           Fixed toolbar control signatures.
39681
39682 2004-08-21 16:32  pbartok
39683
39684         * LinkLabel.cs:
39685           - Signature Fixes
39686
39687 2004-08-21 16:30  pbartok
39688
39689         * Label.cs:
39690           - Signature fixes
39691
39692 2004-08-21 16:19  pbartok
39693
39694         * Control.cs, Label.cs:
39695           - Signature fixes
39696
39697 2004-08-21 15:57  pbartok
39698
39699         * ButtonBase.cs:
39700           - Added loads of debug output for development
39701           - Fixed typo in method name
39702
39703 2004-08-21 15:52  pbartok
39704
39705         * ToolBarButtonClickEventArgs.cs:
39706           - Added missing base class
39707
39708 2004-08-21 14:53  pbartok
39709
39710         * Control.cs:
39711           - Updated to match new GrabWindow signature
39712
39713 2004-08-21 14:51  pbartok
39714
39715         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
39716           - Added method to get default display size
39717
39718 2004-08-21 14:23  pbartok
39719
39720         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
39721           - Added method to query current grab state
39722           - Added argument to allow confining a grab to a window
39723
39724 2004-08-21 14:22  pbartok
39725
39726         * Keys.cs:
39727           - Added [Flags] attribute so that modifiers can be used in bitwise
39728           ops
39729
39730 2004-08-21 14:21  pbartok
39731
39732         * TrackBar.cs, ScrollBar.cs:
39733           - Replaced direct XplatUI calls with their Control counterpart
39734
39735 2004-08-21 13:32  pbartok
39736
39737         * Control.cs:
39738           - Implemented Created property
39739
39740 2004-08-21 13:28  pbartok
39741
39742         * Control.cs:
39743           - Implemented ContainsFocus
39744
39745 2004-08-21 13:26  pbartok
39746
39747         * Control.cs:
39748           - Implemented CausesValidation
39749
39750 2004-08-21 13:21  pbartok
39751
39752         * Control.cs:
39753           - Implemented CanFocus
39754           - Implemented CanSelect
39755           - Implemented Capture
39756
39757 2004-08-21 12:35  pbartok
39758
39759         * XplatUIWin32.cs:
39760           - Fixed bug with Async message handling
39761           - Implemented getting the ModifierKeys
39762
39763 2004-08-21 12:32  jackson
39764
39765         * AsyncMethodResult.cs: Make sure we have the mutex before we
39766           release it. Fixes BeginInvoke on windows
39767
39768 2004-08-21 11:31  pbartok
39769
39770         * XplatUIWin32.cs, XplatUIX11.cs:
39771           - Drivers now return proper mouse state
39772
39773 2004-08-21 10:54  jackson
39774
39775         * Control.cs: Implement EndInvoke
39776
39777 2004-08-21 10:48  jackson
39778
39779         * Timer.cs: Remove unneeded finalizer
39780
39781 2004-08-20 19:52  ravindra
39782
39783         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
39784           in mouse event handling in the ToolBar control.
39785
39786 2004-08-20 19:50  ravindra
39787
39788         * ImageList.cs: Changed draw method to use the arguments passed in
39789           to draw the image.
39790
39791 2004-08-20 18:58  pbartok
39792
39793         * XplatUIStructs.cs:
39794           - Added private message for async communication
39795
39796 2004-08-20 17:38  ravindra
39797
39798         * Control.cs: Made RightToLeft property virtual and removed a
39799           Console.WriteLine.
39800
39801 2004-08-20 14:39  jordi
39802
39803         * ThemeGtk.cs: use style_attach
39804
39805 2004-08-20 14:39  pbartok
39806
39807         * XplatUIWin32.cs:
39808           - Added jackson's Async code from X11 to Win32
39809
39810 2004-08-20 14:09  pbartok
39811
39812         * SWF.csproj:
39813           - Added all new files
39814
39815 2004-08-20 14:09  pbartok
39816
39817         * Control.cs:
39818           - Added call to set window background color
39819
39820 2004-08-20 14:03  pbartok
39821
39822         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
39823           - Added method for setting the window background
39824
39825 2004-08-20 14:02  pbartok
39826
39827         * XplatUIWin32.cs:
39828           - Added method for setting the background color
39829           - Added handling for erasing the window background
39830
39831 2004-08-20 13:45  jordi
39832
39833         * TrackBar.cs: fixes timer, new properties and methods
39834
39835 2004-08-20 13:34  jackson
39836
39837         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
39838           correct thread
39839
39840 2004-08-20 13:22  jackson
39841
39842         * Timer.cs: Timer Tick events are now handed through Controls Async
39843           mechanism so the callbacks are executed in the same thread as X
39844
39845 2004-08-20 13:19  jackson
39846
39847         * XplatUIDriver.cs: Expose functionality to send async messages
39848           through the driver
39849
39850 2004-08-20 13:18  jackson
39851
39852         * Control.cs: Implement Begininvoke
39853
39854 2004-08-20 13:14  jackson
39855
39856         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
39857           messages through the driver
39858
39859 2004-08-20 13:12  jackson
39860
39861         * XplatUIX11.cs: Lock before all X operations. Also added Async
39862           method functionality through XSendEvent
39863
39864 2004-08-20 13:11  jackson
39865
39866         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
39867           This will screw up on 64 bit systems)
39868
39869 2004-08-20 13:10  jackson
39870
39871         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
39872           Async messages through X/Win32
39873
39874 2004-08-19 19:39  pbartok
39875
39876         * XplatUIX11.cs:
39877           - Updated code to match new HandleData.DeviceContext type
39878
39879 2004-08-19 19:38  pbartok
39880
39881         * HandleData.cs:
39882           - Made DeviceContext a generic object to allow usage from various
39883           drivers
39884           - Added support for queueing Windows messages
39885
39886 2004-08-19 19:37  pbartok
39887
39888         * XplatUIWin32.cs:
39889           - Added generation of MouseEnter, MouseLeave and MouseHover events
39890           - Added cleanup on EndPaint
39891
39892 2004-08-19 19:17  pbartok
39893
39894         * Control.cs:
39895           - Added handling of WM_MOUSEHOVER
39896           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
39897           code
39898
39899 2004-08-19 18:55  jordi
39900
39901         * ThemeGtk.cs: fixes button order
39902
39903 2004-08-19 18:12  jordi
39904
39905         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
39906
39907 2004-08-19 17:09  pbartok
39908
39909         * Control.cs:
39910           - Added Right property
39911           - Added RightToLeft property
39912
39913 2004-08-19 16:27  jordi
39914
39915         * ThemeGtk.cs: experimental GTK theme support
39916
39917 2004-08-19 16:26  jordi
39918
39919         * ITheme.cs, Theme.cs: move themes from an interface to a class
39920
39921 2004-08-19 16:25  jordi
39922
39923         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
39924           theme enhancaments
39925
39926 2004-08-19 16:04  pbartok
39927
39928         * XplatUIX11.cs:
39929           - Added colormap basics
39930           - Added a way to re-initialize with a different display handle
39931           - Fixed setting of the window background color
39932           - Added various X11 imports related to colors and colormaps
39933
39934 2004-08-19 15:51  pbartok
39935
39936         * X11Structs.cs:
39937           - Removed packing hints (Paolo suggested this a while back)
39938           - fixed colormap type
39939           - Added default Atom types
39940           - Added Screen and color structs and enums
39941
39942 2004-08-19 15:39  pbartok
39943
39944         * ImageList.cs:
39945           - Added missing Draw() method
39946           - Added missing RecreateHandle event
39947
39948 2004-08-19 15:30  pbartok
39949
39950         * Form.cs:
39951           - Added handling of WM_CLOSE
39952
39953 2004-08-18 13:16  jordi
39954
39955         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
39956           a table
39957
39958 2004-08-18 09:56  jordi
39959
39960         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
39961
39962 2004-08-17 15:31  ravindra
39963
39964         * SWF.csproj: Updated project.
39965
39966 2004-08-17 15:25  pbartok
39967
39968         * Control.cs:
39969           - Drawing improvement; don't call UpdateBounds if we are not visible
39970             (or have been minimized)
39971
39972 2004-08-17 15:24  pbartok
39973
39974         * XplatUIWin32.cs:
39975           - Finished IsVisible
39976           - Added Win32GetWindowPlacement
39977
39978 2004-08-17 15:08  jackson
39979
39980         * Panel.cs: Initial checkin of the Panel
39981
39982 2004-08-17 14:25  pbartok
39983
39984         * Control.cs:
39985           - Fixed broken handling of default window sizes
39986
39987 2004-08-17 13:29  jackson
39988
39989         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
39990           has a large startup time.
39991
39992 2004-08-17 10:25  jackson
39993
39994         * HandleData.cs: union areas properly
39995
39996 2004-08-17 10:12  jackson
39997
39998         * HandleData.cs: union areas properly
39999
40000 2004-08-16 20:00  ravindra
40001
40002         * ToolBar.cs, ToolBarButton.cs: Added attributes.
40003
40004 2004-08-16 18:48  ravindra
40005
40006         * ToolBar.cs: Added attributes.
40007
40008 2004-08-16 17:17  ravindra
40009
40010         * SWF.csproj: Updated project.
40011
40012 2004-08-16 17:16  jackson
40013
40014         * XplatUIX11.cs: Check for more expose events before sending a
40015           WM_PAINT so they can all be grouped together. This makes dragging a
40016           window across another window redraw in a sane way.
40017
40018 2004-08-16 15:47  pbartok
40019
40020         * Control.cs:
40021           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
40022             support OnMouseEnter/Leave()
40023           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
40024             exposure handling
40025
40026 2004-08-16 15:46  pbartok
40027
40028         * XplatUIStructs.cs, XplatUIX11.cs:
40029           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
40030           OnMouseEnter/Leave()
40031
40032 2004-08-16 15:34  jackson
40033
40034         * XplatUIX11.cs: Group multiple expose events in HandleData, make
40035           sure messages get the message field set to WM_NULL if they are not
40036           handled.
40037
40038 2004-08-16 15:24  jackson
40039
40040         * HandleData.cs: HandleData is used for storing message information
40041           for window handles
40042
40043 2004-08-15 17:23  ravindra
40044
40045         * ColorDepth.cs: Added attribute.
40046
40047 2004-08-15 17:23  ravindra
40048
40049         * SWF.csproj: Updated project for ToolBar Control.
40050
40051 2004-08-15 17:20  ravindra
40052
40053         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
40054           control and also dos2unix format.
40055
40056 2004-08-15 17:13  ravindra
40057
40058         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
40059           ToolBarButtonClickEventArgs.cs,
40060           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
40061           ToolBarTextAlign.cs: First Implementation of ToolBar control.
40062
40063 2004-08-15 15:31  pbartok
40064
40065         * ButtonBase.cs:
40066           - First (mostly) working version
40067
40068 2004-08-13 16:15  pbartok
40069
40070         * Control.cs:
40071           - Fixed Anchor default
40072
40073 2004-08-13 15:43  pbartok
40074
40075         * Control.cs:
40076           - Changed GetCursorPos signature
40077
40078 2004-08-13 15:42  pbartok
40079
40080         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
40081           - Changed signature for GetCursorPos
40082
40083 2004-08-13 15:25  pbartok
40084
40085         * XplatUIX11.cs:
40086           - Cleanup
40087           - Fixed resizing/exposure handling
40088
40089 2004-08-13 15:22  jordi
40090
40091         * ThemeWin32Classic.cs: removes redundant code and fixes issues
40092           with tickposition
40093
40094 2004-08-13 14:55  jordi
40095
40096         * TrackBar.cs: change from wndproc to events
40097
40098 2004-08-13 13:00  jordi
40099
40100         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
40101           XplatUIX11.cs: implements PointToClient (ScreenToClient)
40102
40103 2004-08-13 12:53  pbartok
40104
40105         * XplatUIWin32.cs:
40106           - Changed GetWindowPos to also provide client area size
40107           - Fixed broken prototypes for several win32 functions
40108
40109 2004-08-13 12:53  pbartok
40110
40111         * XplatUI.cs, XplatUIDriver.cs:
40112           - Changed GetWindowPos to also provide client area size
40113
40114 2004-08-13 12:52  pbartok
40115
40116         * XplatUIX11.cs:
40117           - Added generation of WM_POSCHANGED
40118           - Changed GetWindowPos to also provide client area size
40119
40120 2004-08-13 12:52  pbartok
40121
40122         * Control.cs:
40123           - Added Dispose() and destructor
40124           - Fixed resizing and bounds calculation
40125           - Fixed Layout
40126           - Added memory savings for invisible windows
40127
40128 2004-08-13 12:46  jordi
40129
40130         * TrackBar.cs: adds timer and grap window
40131
40132 2004-08-13 10:25  jackson
40133
40134         * Timer.cs: SWF Timer
40135
40136 2004-08-12 16:59  pbartok
40137
40138         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
40139           - Implemented method to get current mouse position
40140
40141 2004-08-12 14:29  jordi
40142
40143         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
40144           enhancement, fix mouse problems, highli thumb, etc
40145
40146 2004-08-12 13:31  pbartok
40147
40148         * Control.cs:
40149           - Fixed Anchoring bugs
40150
40151 2004-08-12 13:01  jackson
40152
40153         * StatusBar.cs: Don't forget things
40154
40155 2004-08-12 12:54  jackson
40156
40157         * ThemeWin32Classic.cs: Handle owner draw status bars
40158
40159 2004-08-12 12:54  jackson
40160
40161         * StatusBar.cs: Implement missing properties, events, and methods.
40162           Handle mouse clicking
40163
40164 2004-08-12 10:19  jackson
40165
40166         * StatusBarPanelClickEventArgs.cs,
40167           StatusBarPanelClickEventHandler.cs: Classes for handling status
40168           bar panel click events
40169
40170 2004-08-12 10:10  jackson
40171
40172         * Control.cs: Add missing properties
40173
40174 2004-08-12 09:46  pbartok
40175
40176         * BindingsManagerBase.cs:
40177           - Name changed to BindingManagerBase.cs
40178
40179 2004-08-12 09:25  jordi
40180
40181         * ScrollableControl.cs: calls ctrlbase instead of exeception
40182
40183 2004-08-11 16:28  pbartok
40184
40185         * InputLanguageChangingEventArgs.cs:
40186           - Never check in before compiling. Fixes the last check-in
40187
40188 2004-08-11 16:26  pbartok
40189
40190         * InputLanguageChangingEventArgs.cs:
40191           - More signature fixes
40192
40193 2004-08-11 16:20  pbartok
40194
40195         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
40196           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
40197           ImageListStreamer.cs, InputLanguage.cs,
40198           InputLanguageChangedEventArgs.cs,
40199           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
40200           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
40201           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
40202           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
40203           - Signature fixes
40204
40205 2004-08-11 16:16  pbartok
40206
40207         * Application.cs:
40208           - Fixed Signature
40209           - Added .Net 1.1 method
40210
40211 2004-08-11 15:25  pbartok
40212
40213         * SWF.csproj:
40214           - Fixed BindingManagerBase.cs filename
40215
40216 2004-08-11 15:22  pbartok
40217
40218         * BindingManagerBase.cs:
40219           - Was checked in with wrong filename
40220
40221 2004-08-11 14:50  pbartok
40222
40223         * SWF.csproj:
40224           - Updated
40225
40226 2004-08-11 13:41  jordi
40227
40228         * XplatUIWin32.cs: Fixes ClientRect
40229
40230 2004-08-11 13:19  pbartok
40231
40232         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
40233           XplatUIX11.cs:
40234           - We had SetWindowPos and MoveWindow to set window positions and
40235             size, removed MoveWindow. We have GetWindowPos, so it made sense to
40236             keep SetWindowPos as matching counterpart
40237           - Added some X11 sanity checking
40238
40239 2004-08-11 12:59  pbartok
40240
40241         * Control.cs:
40242           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
40243             (It seems that SetBounds is just a front for SetBoundsCore and
40244              SetBoundsCore updates the underlying window system and
40245              UpdateBounds is responsible for updating the variables associated
40246              with the Control and sending the events)
40247           - Major cleanup of Size handling; we now have two sizes, client_size
40248             and bounds. Bounds defines the window with decorations, client_size
40249             without them.
40250
40251 2004-08-11 12:55  pbartok
40252
40253         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
40254           - Added method to calculate difference between decorated window and
40255             raw client area
40256
40257 2004-08-11 12:54  pbartok
40258
40259         * Label.cs:
40260           - Forcing redraw on resize
40261
40262 2004-08-11 11:43  pbartok
40263
40264         * ImageList.cs:
40265           - Removed disposing of the actual images when the list is disposed
40266
40267 2004-08-11 09:13  pbartok
40268
40269         * Control.cs:
40270           - Now properly reparents windows
40271
40272 2004-08-11 08:37  pbartok
40273
40274         * Control.cs:
40275           - Duh!
40276
40277 2004-08-11 07:47  pbartok
40278
40279         * Control.cs:
40280           - Rewrote the collection stuff. Might not be as fast now, not
40281             keeping the number of children around and accessible directly, but
40282             it's more straightforward
40283
40284 2004-08-11 07:44  pbartok
40285
40286         * AccessibleObject.cs:
40287           - Fixed to match ControlCollection rewrite
40288
40289 2004-08-11 07:43  pbartok
40290
40291         * ImageList.cs:
40292           - Added missing creation of the collection list
40293
40294 2004-08-10 20:08  jackson
40295
40296         * StatusBar.cs: Get the paint message from WndProc
40297
40298 2004-08-10 19:31  jackson
40299
40300         * ThemeWin32Classic.cs: Create Brushes as little as possible
40301
40302 2004-08-10 19:20  jackson
40303
40304         * UICues.cs: Add Flags attribute
40305
40306 2004-08-10 19:19  jackson
40307
40308         * StatusBarPanel.cs: Signature cleanup
40309
40310 2004-08-10 19:10  jackson
40311
40312         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
40313           Initial implementation of status bar item drawing
40314
40315 2004-08-10 17:27  jordi
40316
40317         * TrackBar.cs: add missing methods, properties, and restructure to
40318           hide extra ones
40319
40320 2004-08-10 16:24  jackson
40321
40322         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
40323           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
40324           attribute
40325
40326 2004-08-10 13:21  jordi
40327
40328         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
40329           enhancements and standarize on win colors defaults
40330
40331 2004-08-10 12:52  jackson
40332
40333         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
40334           ThemeWin32Classic.cs: Implement DrawItem functionality
40335
40336 2004-08-10 12:47  jordi
40337
40338         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
40339
40340 2004-08-10 12:32  jordi
40341
40342         * Control.cs: throw ontextchange event
40343
40344 2004-08-10 11:43  pbartok
40345
40346         * Control.cs:
40347           - Added more to the still unfinished Dock/Anchor layout code
40348
40349 2004-08-10 11:39  pbartok
40350
40351         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
40352           - Added GetWindowPos method
40353
40354 2004-08-10 11:36  pbartok
40355
40356         * XplatUIWin32.cs:
40357           - Implemented several methods
40358
40359 2004-08-10 09:47  jackson
40360
40361         * TrackBar.cs: Allow control to handle buffering
40362
40363 2004-08-10 09:41  jackson
40364
40365         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
40366
40367 2004-08-10 09:24  jackson
40368
40369         * Label.cs, LinkLabel.cs: Let Control handle buffering.
40370
40371 2004-08-10 09:09  jackson
40372
40373         * StatusBar.cs: Let Control handle all the buffering.
40374
40375 2004-08-10 09:08  jackson
40376
40377         * Control.cs: Control will now handle the buffering code, so each
40378           control does not have to implement this.
40379
40380 2004-08-10 08:34  jackson
40381
40382         * XplatUIDriver.cs: Use default colors from the theme
40383
40384 2004-08-09 17:12  pbartok
40385
40386         * ImageList.cs:
40387           - Fixed several bugs Ravindra pointed out
40388
40389 2004-08-09 16:11  pbartok
40390
40391         * Control.cs:
40392           - Added incomplete dock layout code
40393           - Added support for mouse wheel
40394
40395 2004-08-09 16:09  pbartok
40396
40397         * XplatUIX11.cs:
40398           - Added handling for middle and right mousebutton
40399           - Added handling for mouse wheel
40400           - Added handling for key state and mouse state and position
40401           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
40402           messages
40403
40404 2004-08-09 15:40  jackson
40405
40406         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
40407           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
40408           checkin
40409
40410 2004-08-09 15:37  jackson
40411
40412         * StatusBar.cs: Initial implementation of StatusBar
40413
40414 2004-08-09 15:36  jackson
40415
40416         * ITheme.cs: Add support for drawing status bar and getting status
40417           bar item sizes
40418
40419 2004-08-09 15:35  pbartok
40420
40421         * MouseButtons.cs:
40422           - Fixed values
40423
40424 2004-08-09 15:34  jackson
40425
40426         * ThemeWin32Classic.cs: Add support for drawing status bar and get
40427           status bar item sizes
40428
40429 2004-08-09 15:21  jackson
40430
40431         * ThemeWin32Classic.cs: Use known colors for default control
40432           colours
40433
40434 2004-08-09 15:12  jackson
40435
40436         * ThemeWin32Classic.cs: Make the default font static, it is static
40437           in control so this doesn't change functionality and creating fonts
40438           is sloooooow.
40439
40440 2004-08-09 14:56  pbartok
40441
40442         * X11Structs.cs:
40443           - Added GrabMode enum
40444
40445 2004-08-09 14:55  pbartok
40446
40447         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
40448           - Removed Run method, was only required for initial development
40449
40450 2004-08-09 14:51  pbartok
40451
40452         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
40453           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
40454           capture
40455
40456 2004-08-09 13:48  pbartok
40457
40458         * XplatUIX11.cs:
40459           - Fixed default sizing for child windows
40460
40461 2004-08-09 12:56  pbartok
40462
40463         * XplatUIX11.cs:
40464           - Added generation of WM_DESTROY message
40465           - Added handling of window manager induced shutdown
40466
40467 2004-08-09 11:31  jackson
40468
40469         * ThemeWin32Classic.cs: New names for control properties
40470
40471 2004-08-09 11:25  jackson
40472
40473         * Control.cs: Use new color names
40474
40475 2004-08-09 11:02  jackson
40476
40477         * XplatUI.cs: Get default window properties from the theme
40478
40479 2004-08-09 11:01  jackson
40480
40481         * ITheme.cs: The theme engine now controls default window
40482           properties
40483
40484 2004-08-09 11:00  jackson
40485
40486         * ThemeWin32Classic.cs: Add default window color properties
40487
40488 2004-08-09 10:17  jackson
40489
40490         * ThemeWin32Classic.cs: Use correct default back color
40491
40492 2004-08-09 10:05  jackson
40493
40494         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
40495           the theme now.
40496
40497 2004-08-09 09:56  jackson
40498
40499         * XplatUI.cs: Remove defaults, these are handled by the theme now.
40500
40501 2004-08-09 09:54  jackson
40502
40503         * Control.cs: Get default properties from the theme.
40504
40505 2004-08-09 09:53  jackson
40506
40507         * ITheme.cs: Themes now handle default control properties
40508
40509 2004-08-09 09:53  jackson
40510
40511         * ThemeWin32Classic.cs: Themes now handle default control
40512           properties so coloring will be consistent
40513
40514 2004-08-08 16:54  jordi
40515
40516         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
40517
40518 2004-08-08 15:08  jordi
40519
40520         * XplatUIX11.cs: fixes keyboard crash
40521
40522 2004-08-08 13:47  jordi
40523
40524         * Label.cs: add cvs header info
40525
40526 2004-08-08 12:09  jackson
40527
40528         * ThemeWin32Classic.cs: Add pen_buttonface
40529
40530 2004-08-08 11:52  jordi
40531
40532         * Label.cs, LinkLabel.cs: [no log message]
40533
40534 2004-08-08 11:34  jordi
40535
40536         * ThemeWin32Classic.cs: Use Windows Standard Colours
40537
40538 2004-08-07 17:32  jordi
40539
40540         * TrackBar.cs: throw exceptions of invalid enums values
40541
40542 2004-08-07 17:31  jordi
40543
40544         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
40545           draw method name
40546
40547 2004-08-07 16:56  jackson
40548
40549         * HorizontalAlignment.cs: Initial checkin
40550
40551 2004-08-07 13:16  jordi
40552
40553         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
40554           methods
40555
40556 2004-08-07 13:05  jordi
40557
40558         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
40559           GetSysColor defines
40560
40561 2004-08-06 18:01  pbartok
40562
40563         * ThemeWin32Classic.cs:
40564           - Fixed some rounding issues with float/int
40565
40566 2004-08-06 18:00  jackson
40567
40568         * DockStyle.cs, AnchorStyles.cs:
40569
40570                   Add flags and serializable attributes.
40571
40572 2004-08-06 17:46  pbartok
40573
40574         * XplatUIX11.cs:
40575           - Implemented GetParent
40576
40577 2004-08-06 17:18  pbartok
40578
40579         * TrackBar.cs:
40580           - Fixed some rounding issues with float/int
40581
40582 2004-08-06 17:17  pbartok
40583
40584         * X11Structs.cs, XplatUIX11.cs:
40585           - Fixed Refresh and Invalidate
40586
40587 2004-08-06 15:30  pbartok
40588
40589         * Control.cs, X11Structs.cs, XplatUIX11.cs:
40590           - Fixed recursive loop when resizing
40591           - Improved/fixed redrawing on expose messages
40592
40593 2004-08-06 09:53  jordi
40594
40595         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
40596           keyboard navigation
40597
40598 2004-08-06 08:02  pbartok
40599
40600         * X11Structs.cs, XplatUIX11.cs:
40601           - Fixed reparenting
40602           - Fixed window border creation
40603
40604 2004-08-05 15:38  pbartok
40605
40606         * XplatUIX11.cs:
40607           - Attempted fix for reparenting problems
40608
40609 2004-08-04 15:14  pbartok
40610
40611         * Control.cs:
40612           - Fixed Invalidation bug (calculated wrong client area)
40613           - Added ClientSize setter
40614
40615 2004-08-04 15:13  pbartok
40616
40617         * Form.cs:
40618           - Added AutoScale properties
40619
40620 2004-08-04 15:13  pbartok
40621
40622         * SWF.csproj:
40623           - Added latest files
40624
40625 2004-08-04 14:11  pbartok
40626
40627         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
40628           XplatUIX11.cs:
40629           - Added Invalidate handling
40630
40631 2004-08-03 17:09  jordi
40632
40633         * XplatUIDriver.cs: fixes spelling mistake
40634
40635 2004-07-27 09:53  jordi
40636
40637         * TrackBar.cs: fixes trackbar events, def classname, methods
40638           signature
40639
40640 2004-07-27 09:29  jordi
40641
40642         * ScrollBar.cs: fixes scrollbar events
40643
40644 2004-07-27 04:38  jordi
40645
40646         * Control.cs: changes to be able to run winforms samples
40647
40648 2004-07-26 11:42  jordi
40649
40650         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
40651           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
40652
40653 2004-07-26 05:41  jordi
40654
40655         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
40656           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
40657           implementation
40658
40659 2004-07-22 09:22  jordi
40660
40661         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
40662           check link overlapping, implement events, and fixes
40663
40664 2004-07-21 10:28  jordi
40665
40666         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
40667
40668 2004-07-21 10:19  jordi
40669
40670         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
40671           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
40672           LinkLabelLinkClickedEventArgs.cs,
40673           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
40674           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
40675           implementation
40676
40677 2004-07-19 13:09  jordi
40678
40679         * Control.cs, Label.cs: label control re-written: added missing
40680           functionlity, events, and properties
40681
40682 2004-07-19 10:49  jordi
40683
40684         * Control.cs: fixes SetBounds logic
40685
40686 2004-07-19 01:29  jordi
40687
40688         * Control.cs: Call RefreshWindow only if the window has created
40689
40690 2004-07-15 14:05  pbartok
40691
40692         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
40693           - Implemented ImageList and ImageList.ImageCollection classes
40694           - Added ColorDepth enumeration
40695           - Updated SWF VS.Net project
40696
40697 2004-07-15 11:06  jordi
40698
40699         * XplatUIStructs.cs: added MsgButons enum
40700
40701 2004-07-15 11:03  jordi
40702
40703         * Control.cs: added basic mouse handeling events
40704
40705 2004-07-15 03:38  jordi
40706
40707         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
40708           Vertical TrackBar control implementation
40709
40710 2004-07-13 09:33  jordi
40711
40712         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
40713
40714 2004-07-13 09:31  jordi
40715
40716         * Control.cs, Form.cs: commit: new properties and fixes form size
40717           problems
40718
40719 2004-07-09 14:13  miguel
40720
40721         * ProgressBar.cs: Spelling
40722
40723 2004-07-09 11:25  pbartok
40724
40725         * ProgressBar.cs:
40726           - Removed usage of Rectangle for drawing. Miguel pointed out it's
40727           faster
40728
40729 2004-07-09 11:17  miguel
40730
40731         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
40732
40733                 * ProgressBar.cs: Fixed spelling for `block'
40734
40735                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
40736                 style guidelines.
40737
40738                 Avoid using the += on rect.X, that exposed a bug in the compiler.
40739
40740 2004-07-08 23:21  pbartok
40741
40742         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
40743           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
40744           BaseCollection.cs, Binding.cs, BindingContext.cs,
40745           BindingMemberInfo.cs, BindingsCollection.cs,
40746           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
40747           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
40748           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
40749           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
40750           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
40751           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
40752           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
40753           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
40754           FrameStyle.cs, GiveFeedbackEventArgs.cs,
40755           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
40756           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
40757           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
40758           InputLanguageChangedEventArgs.cs,
40759           InputLanguageChangedEventHandler.cs,
40760           InputLanguageChangingEventArgs.cs,
40761           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
40762           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
40763           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
40764           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
40765           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
40766           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
40767           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
40768           QueryAccessibilityHelpEventArgs.cs,
40769           QueryAccessibilityHelpEventHandler.cs,
40770           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
40771           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
40772           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
40773           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
40774           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
40775           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
40776           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
40777           XplatUIX11.cs, lang.cs:
40778           - Initial check-in
40779