2006-11-13 Chris Toshok <toshok@ximian.com>
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2006-11-13  Chris Toshok  <toshok@ximian.com>
2
3         * Form.cs (set_DialogResult): we need to set closing to false if
4         we're setting our result to None.  fixes bug #79908.
5
6 2006-11-13  Jackson Harper  <jackson@ximian.com>
7
8         * TextControl.cs: When formatting text, compute the adjusted tag
9         lengths correctly, using FindTag for the end tag instead of trying
10         to figure it out outselves.
11         * TreeNode.cs: Use ActualItemHeight, which is the actual height of
12         the item, ItemHeight doesn't work, because trees with large
13         imagelists use those for their height
14         * TreeView.cs: ActualItemHeight factors in the image height
15         - compute left edge of checkboxes correctly
16         - when expanding/collapsing move the bottom down one pixel, so we
17         aren't moving part of the node
18
19 2006-11-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
20
21         * XplatUIX11.cs: The PaintEventArgs is also added to the drawing
22         stack in PaintEventStart so that it won't get disposed by the gc
23         before reaching PaintEventEnd.
24
25 2006-11-13  Jackson Harper  <jackson@ximian.com>
26
27         * TextBoxBase.cs: Don't select the word if we are on a line with
28         no text.
29         - We don't need to position the caret on mouse up, since the mouse
30         move handler should be doing this
31         - When double clicking a blank line, the caret is advanced to the
32         next line.
33
34 2006-11-13  Gert Driesen  <drieseng@users.sourceforge.net>
35
36         * TreeNodeCollection.cs: Avoid duplicating indexer code.
37
38 2006-11-12  Gert Driesen  <drieseng@users.sourceforge.net>
39
40         * ColorDialog.cs: Reset size of dialog between calls to ShowDialog.
41         Fixes part of bug #79910.
42
43 2006-11-11  Alexander Olk  <alex.olk@googlemail.com>
44
45         * ColorDialog.cs: Fix a NRE when adding a color to custom colors
46           (bug #79903). Some minor string updates to match ms.
47
48 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
49
50         * FileDialog.cs: Don't add an extension if the filename
51           already ends with that extension.
52
53 2006-11-10  Jackson Harper  <jackson@ximian.com>
54
55         * TreeView.cs: Use the currently highlighted node for the
56         BeforeSelect event.
57         * TextBoxBase.cs: There is no need to expand selection on
58         MouseMove.
59         - CanUndo means 'is there any undo operations', not 'is undo
60         allowed on this textcontrol. Fixed ClearUndo unit test.
61
62 2006-11-10  Andreia Gaita  <shana.ufie@gmail.com>
63
64         * Button.cs: only perform click when button is Selectable (so as 
65         not to activate default buttons when they're disabled)
66         
67         * Control.cs: Rewrite of the SelectNextControl and related 
68         methods. HandleClick now selects next control if the current one
69         is being disabled.
70         
71         * Form.cs: OnActivated selects next active control only if Load 
72         has already occurred. If Load hasn't run, there's no point in 
73         selecting here, Load might change the state of controls.
74         
75         * FocusTest.cs: Tests marked as working again for these fixes
76
77 2006-11-10  Chris Toshok  <toshok@ximian.com>
78
79         * XplatUIX11.cs: a couple of fixes.
80
81         - use XInternAtoms with almost all the atoms we need to register,
82         instead of many, many calls to XInternAtom.  should help a bit on
83         startup time, at the expense of making the code look a little
84         worse.
85
86         - fall back to setting TransientFor on TOOLWINDOW's if their hwnd
87         isn't reparented (which seems to be a clue that we're running fon
88         compiz) and they have an Owner form.  This fixes the tool windows
89         in paint.net when running under compiz.
90
91         - when setting the opacity of a window, support both the case
92         where the window has been reparented and also when it hasn't been.
93         Since compiz/beryl doesn't seem to reparent windows, and these are
94         the only window managers which support translucency, I'm not sure
95         why we need the hwnd.reparented case at all.. but leave it in.
96         now we get translucent windows in paint.net under compiz/beryl.
97
98 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
99
100         * FileDialog.cs: Always return the value for FilterIndex that
101           was set. Internally convert it to values that make sense.
102
103 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
104         
105         * ThemeWin32Classic.cs: Fix drowp down arrow borders.
106
107 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
108
109         * Toolbar.cs: Change default value of DropDownArrows to true, the 
110         signature still using false to make it compatible with MS but the 
111         initial value is true. Fixes #79855.
112
113 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
114
115         * MimeIcon.cs: Don't throw an exception on windows. Mime stuff is
116           only available on Linux.
117
118 2006-11-09  Everaldo Canuto  <everaldo@simios.org>
119
120         * Toolbar.cs, ToolBarButton.cs: Fix wrong separator size and
121         reduce number of calls to redraw method during toolbar creation.
122
123 2006-11-09  Mike Kestner  <mkestner@novell.com>
124
125         * ListView.cs : raise SelectedIndexChanged when an item is selected
126         programmatically via the Item.Selected property.  Gert's nice 
127         ListViewSelectedIndexChanged test fixture now runs clean.
128
129 2006-11-09  Mike Kestner  <mkestner@novell.com>
130
131         * ListView.cs : raise SelectedIndexChanged when a selected item is
132         removed from the item collection using Remove or RemoveAt.
133
134 2006-11-09  Mike Kestner  <mkestner@novell.com>
135
136         * ListView.cs : raise SelectedIndexChanged once per selected item
137         for compat with MS.  Fixes #79849+.
138
139 2006-11-09  Chris Toshok  <toshok@ximian.com>
140
141         * TabControl.cs: initialize row_count to 0, and set it to 1 when
142         we need to (if we have any tab pages).  Fixes unit test.
143
144 2006-11-09  Chris Toshok  <toshok@ximian.com>
145
146         * Label.cs (CalcPreferredWidth): if Text == "", our preferred
147         width is 0, not 3.  Fixes a unit test.
148
149 2006-11-09  Mike Kestner  <mkestner@novell.com>
150
151         * ListView.cs : use Implicit scrollbars so that focus isn't 
152         stolen from the listview when they are clicked. Fixes #79850.
153
154 2006-11-09  Chris Toshok  <toshok@ximian.com>
155
156         * PropertyGridView.cs (OnPaint): only call DrawGridItems if we
157         have a root item.  Fixes #79879.
158
159 2006-11-09  Alexander Olk  <alex.olk@googlemail.com>
160
161         * FileDialog.cs:
162           - Fix ToString ()
163           - An ArgumentException is now thrown if a wrong filter
164             is applied (matches ms). The previous filter doesn't change
165             anymore if an exception is thrown.
166           - Changing the FileName property also affects FileNames
167         * ColorDialog.cs: The length of the CustomColors array is always
168           16. It doesn't matter if we use a smaller array or null to update
169           or change the custom colors property.
170         * FolderBrowserDialog.cs: Throw an InvalidEnumArgumentException if
171           for RootFolder if we get a undefined value.
172
173 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
174
175         * StatusBarPanel.cs: 
176         - Width is set to MinWidth if Width is smaller than
177         MinWidth. Fixes #79842.
178         - MinWidth now always overrides Width (MSDN says MinWidth
179         is set to Width when AutoSize = None, but they do not 
180         behave like that).
181         - Style has now the the correct default value.
182         
183 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
184  
185         * TrackBar.cs: 
186         - The control is completely invalidated on 
187         Got/LostFocus to draw the focus rectangle correctly.
188         - When AutoSize then height is always 45 (width for 
189         vertical controls).
190         
191         * ThemeWin32Classic.cs: The TrackBar thumb is now centered
192         on the mouse when moved and it doesn't move when grabbed
193         until the mouse moves as well. Also fixed some wrong 
194         calculations when clicking on the thumb (control thought
195         click was outside of thumb and didn't grab it).
196         Fixes some of the issues in #79718.
197
198 2006-11-08  Everaldo Canuto  <everaldo@simios.org>
199
200         * Toolbar.cs: Prevent disabled button to highlight. Fixes #79868.
201
202 2006-11-08  Chris Toshok  <toshok@ximian.com>
203
204         * PropertyGridView.cs: only call ToggleValue if the item is not
205         readonly.
206
207 2006-11-08  Jackson Harper  <jackson@ximian.com>
208
209         * TextBoxBase.cs: The RichTextBox and textbox have very different
210         word selection methods.  Implement the textbox's simple word
211         selection here, and let the RichTextBox override and provide it's
212         own.
213         - Don't do extra selection on mouseup
214         * RichTextBox.cs: Use the documents word selection algorithm, I
215         think ideally, this function will be pulled into the
216         RichTextBox.cs code someday.
217
218 2006-11-08  Chris Toshok  <toshok@ximian.com>
219
220         * RootGridEntry.cs: new class to represent GridItemType.Root.
221
222         * CategoryGridEntry.cs: reformat, and add boilerplate.
223         
224         * GridEntry.cs: remove the UIParent stuff - turns out .Parent
225         returns the UI parent anyway, and we need special handling to
226         implement the GetTarget method in the face of it.  Also, implement
227         Select().
228
229         * PropertyGrid.cs, PropertyGridView.cs: a number of fixes.  create
230         a root grid item, and use that instead of PropertyGrid.grid_items.
231         Also, make use of TypeConverters (and add limitted support for
232         ICustomTypeDescriptors) when initially populating the grid.
233         Arrays now show up more or less properly.
234
235 2006-11-08  Chris Toshok  <toshok@ximian.com>
236
237         * Application.cs: set the modal dialog to non modal after we close
238         it.  Fixes bug #79866.
239
240 2006-11-08  Jackson Harper  <jackson@ximian.com>
241
242         * TextControl.cs: When combining lines carry over the line end
243         style from the end line.
244         - Invalidate the selected area when setting it, if it is visible.
245         * TextBoxBase.cs: Only rich text box can do full line selects.
246         - Make sure to set the cursor position when there is a click,
247         otherwise two clicks in separate areas could cause a large chunk
248         to be selected.
249
250 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
251
252         * Toolbar.cs: Release flat button borders when Toolbar lost focus. 
253         Fixes #79863.
254
255 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
256
257         * Toolbar.cs: Prevent toolbar to open more than one tooltip at same
258         time. Remove tooltips when ToolButton click events.  Fixes #79856.
259
260 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
261
262         * MenuAPI.cs: Ignore right click for menu actions and fixes
263         menu border when clicked.  Fixes #79846.
264
265 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
266
267         * XplatUIX11.cs, XplatUIX11.cs: Fix MouseRelease to only release
268         MouseState after create wParam for message, this fixes mouse button 
269         equal none in mouse up events.
270         
271 2006-11-07  Andreia Gaita  <shana.ufie@gmail.com>
272
273         * Control.cs : Focus() now calls Select to set the Container's
274         Active Control and to give it focus. To avoid infinite recursion
275         (because ActiveControl also calls Focus at one point), a check 
276         is made in Focus with the help of a new internal variable
277         is_focusing.
278
279 2006-11-07  Mike Kestner  <mkestner@novell.com>
280
281         * ListView.cs : raise OnSelectedIndexChanged in CreateHandle
282         if there's a selection.  Fixes #79849.
283
284 2006-11-07  Gert Driesen  <drieseng@users.sourceforge.net>
285
286         * PropertyGrid.cs: Avoid fixed height of help description label.
287         Fixes part of bug #79829.
288
289 2006-11-07  Chris Toshok  <toshok@ximian.com>
290
291         * XplatUIX11.cs: fix #79790 again, by using the
292         _NET_WM_STATE_SKIP_TASKBAR atom to implement Form.ShowInTaskbar.
293
294 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
295
296         * ToolBar.cs: Fix left click checking.
297
298 2006-11-07  Chris Toshok  <toshok@ximian.com>
299
300         * ProgressBar.cs: fix a typo in ToString().  fixes a unit test.
301
302 2006-11-07  Chris Toshok  <toshok@ximian.com>
303
304         * RelatedPropertyManager.cs: set property_name in our ctor.  fixes
305         PropertyManager unit tests.
306
307         * PropertyManager.cs: make property_name internal.
308
309 2006-11-07  Chris Toshok  <toshok@ximian.com>
310
311         * ButtonBase.cs: initialize base.ime_mode to ImeMode.Disable to
312         pass a unit test.  Also, don't set image_index to anything in
313         response to setting the ImageList property.
314
315 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
316
317         * ToolBar.cs: Ignore click events when mouse button is not a
318         left button, only accepts other button for dropdown menus.  
319         Fixes #79854.
320
321 2006-11-07  Chris Toshok  <toshok@ximian.com>
322
323         * DataGrid.cs: make the back and parent row buttons a little less
324         ugly.
325
326 2006-11-07  Jackson Harper  <jackson@ximian.com>
327
328         * TextBoxBase.cs: When converting to Text don't put line breaks in
329         for soft line breaks.
330         * TextControl.cs: There is an initial "fake" line in the document,
331         this is now a soft break line, so that an extra line feed doesn't
332         get added to the end of documents.
333
334 2006-11-07  Chris Toshok  <toshok@ximian.com>
335
336         [ fix bug #79778 ]
337         
338         * CurrencyManager.cs: if the list is readonly, don't bother
339         checking if IBindingList.AllowNew is true.
340
341         * ThemeWin32Classic.cs (DataGridPaintParentRow): make this work
342         for non-DataRowView datasources..  or rather, make it not crash.
343         (DataGridPaintRelationRow): make sure we limit the row painting to
344         the area not covered by the row header, and make our cell width at
345         least large enough to cover the relation area.  This allows grids
346         that have relations but no rows to render correctly.
347         (DataGridPaintRowContents): same type of changes here.
348         (SetDataSource): move back to always calling
349         CalcAreasAndInvalidate.  this fixes a crash/drawing problem when
350         navigating back through relations.
351         (HitTest): handle the case where we have no cells but have
352         relations.  Right now we generate a hit in cell 0 of whatever the
353         row is, not sure if this is strictly correct, but it works for our
354         purposes.
355         
356         * DataGrid.cs (EndEdit, CancelEdit): if we have no columns, don't
357         bother doing anything.
358
359 2006-11-07  Jonathan Pobst  <monkey@jpobst.com>
360
361         * StatusStrip.cs, ToolStripStatusLabel.cs: By request, an
362         early version of StatusStrip.  Not responsible for eaten
363         application or firstborn children.
364
365 2006-11-06  Chris Toshok  <toshok@ximian.com>
366
367         * TabControl.cs: in OnGotFocusInternal/OnLostFocusInternal don't
368         call GetTabRect with a -1 index.  Fixes #79847.
369
370 2006-11-06  Jackson Harper  <jackson@ximian.com>
371
372         * TreeNodeCollection.cs: Update scrollbars after clearing.
373
374 2006-11-06  Chris Toshok  <toshok@ximian.com>
375
376         * NumericUpDown.cs: fix the ToString method for some unit test
377         love.
378
379 2006-11-06  Chris Toshok  <toshok@ximian.com>
380
381         * PropertyGrid.cs:
382         - set the initial SelectedGridItem if we can.
383
384         - Exclude non-mergable properties only if we're merging > 1
385         object.  Merging 1 object isn't really merging, obviously.
386
387         - Handle PropertySort.NoSort just like Alphabetical, which is
388         wrong of course, but at least gets things on the screen.
389         
390         * PropertyGridView.cs:
391         - Add method "FindFirstItem" which finds the first property grid
392         item, so we can select it by default.
393
394         - make use of GridEntry.CanResetValue.
395
396         - Don't call RedrawBelowItemOnExpansion here anymore, the
397         individual GridEntry's will do that.
398
399         - Remove the ITypeDescriptorContextImpl internal class.
400         
401         * GridEntry.cs:
402         - this class needs to implement ITypeDescriptorContext, as it's
403         what MS's PropertyDescriptorGridEntry does, which means we can
404         remove the ITypeDescriptorContextImpl internal class from
405         PropertyGrid.cs.  This fixes the crashing portion of bug #79829.
406
407         - keep a reference to our PropertyGridView, and move the call to
408         RedrawBelowItemOnExpansion here from PGV.  This means
409         programmaticly setting Expanded actually does something visible.
410
411         - add a CanResetValue() function which takes into account our
412         possibly multiple "selected_objects" in the merged case.  Shifting
413         PropertyGridView to use this method fixes another unreported
414         crasher found running the test for #79829.
415
416         - when Top or Bounds is updated, make sure the PropertyGridTextBox
417         is updated to reflect this.
418
419         * CategoryGridEntry.cs: the ctor takes the PGV now.
420         
421 2006-11-06  Jackson Harper  <jackson@ximian.com>
422
423         * TextControl.cs: These are 1 based.
424         * TextBoxBase.cs: When setting the selected text, don't change the
425         selected text tags, this is done by ReplaceText, just position the
426         cursor at the end of the new text.
427
428 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
429
430         * ListView.cs: Allow label edit only when, when LabelEdit is
431           set to true.
432
433 2006-11-06  Jackson Harper  <jackson@ximian.com>
434
435         * TextControl.cs: If a suitable wrapping position isn't found,
436         just wrap right in the middle of a word.
437
438 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
439
440         * ListView.cs, ListViewItem.cs: Implement LabelEdit. Fixes
441           bug #79820.
442
443 2006-11-06  Jackson Harper  <jackson@ximian.com>
444
445         * TreeView.cs: Can't use the VisibleCount property when setting
446         scrollbar heights, because this doesn't take into account whether
447         or not the horz scrollbar just came visible.
448
449 2006-11-05  Everaldo Canuto  <everaldo@simios.org>
450
451         * MenuAPI.cs: Deactivate menu on mouse up when menus it is already
452         activated.  Fixes #79369, #79832.
453
454 2006-11-05  Alexander Olk  <alex.olk@googlemail.com>
455
456         * FileDialog.cs: *sigh* Because of recent runtime changes (r67043) I
457           had to remove support for links that point to a directory. FileInfo
458           returns no usefull information (means, the directory they point to)
459           for such links. Replaced some empty string ("") with String.Empty.
460
461 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
462
463         * TreeNodeCollection.cs: To match MS, in 1.0 profile throw 
464         NullReferenceException when attempting to remove node that is not in
465         collection. Throw NullReferenceException when null is passed to 
466         Remove. Allow first element of the collection to be removed. Fixes
467         bug #79831.  In GetEnumerator ().Current return null if positioned 
468         before the first element of the collection. In GetEnumerator ().Reset,
469         position before first element of the collection.
470
471 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
472
473         * PropertyGrid.cs: To match MS, remove default title and description
474         for panel. Fixed tooltips for Categorized and Alphabetic toolbar
475         buttons.
476
477 2006-11-04  Chris Toshok  <toshok@ximian.com>
478
479         * Theme.cs: add a Clamp method, just for kicks.
480
481         * ThemeWin32Classic.cs: clamp all color components to [0..255].
482
483 2006-11-04  Chris Toshok  <toshok@ximian.com>
484
485         * Form.cs: if the form isn't visible, Close() does nothing.
486
487 2006-11-03  Chris Toshok  <toshok@ximian.com>
488
489         * Form.cs (Close): if the form is modal, don't Dispose of it, only
490         Hide it.
491         (WndProc): don't Dispose after handling the WM_CLOSE message.
492
493         * Application.cs (RunLoop): toplevels is a list of Forms, so treat
494         them as such, instead of using casts from Control to Form.  Also,
495         don't Dispose of the modal dialog when we fall out of the loop -
496         Close() it instead.
497
498         fixes bug #79813.
499
500 2006-11-03  Chris Toshok  <toshok@ximian.com>
501
502         * Control.cs (Dispose): only go through the dispose thing if we're
503         @disposing, and we haven't already been disposed.  Fixes bug
504         #79814.
505
506         * Form.cs: no reason to call "base.Dispose()" here instead of
507         "Dispose()".
508
509 2006-11-03  Mike Kestner  <mkestner@novell.com>
510
511         * ComboBox.cs : use ToString instead of casts in AddItem for
512         sorting functionality.  Fixes #79812.
513
514 2006-11-03  Chris Toshok  <toshok@ximian.com>
515
516         * Application.cs: pave the way for actually using the thread
517         exception dialog.  it's ifdefed out at the moment.
518
519 2006-11-03  Chris Toshok  <toshok@ximian.com>
520
521         * ThreadExceptionDialog.cs: until we get a better layout, actually
522         hide the details textbox and label when we shouldn't see them.
523
524 2006-11-03  Jackson Harper  <jackson@ximian.com>
525
526         * TextBoxBase.cs: Don't bail from the scrollbar calcs for non
527         multiline textboxes anymore.  This method also determines the
528         width/height of a textboxes canvas area.
529         - Sorta a revert of the last patch.  For multiline just position
530         the controls, then bail.  This way the scrollbar width won't be
531         altered.
532
533 2006-11-03  Everaldo Canuto  <everaldo@simios.org>
534
535         * ThemeWin32Classic.cs: Dont paint inner lines of 3D border when
536         it dont need.  Fixes #79537.
537
538 2006-11-02  Jackson Harper  <jackson@ximian.com>
539
540         * X11Dnd.cs: We always allow copy, since XDND implies Copy.  Also
541         send the status after firing the DndOver event.
542
543 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
544
545         * TrackBar.cs: Now orientation only switches height / width if
546         the control's handle is created (Win32 does it like this). Also 
547         fixed a typo in ToString() for a test to pass, changed the 
548         exception thrown in set_LargeChange and set_SmallChange to 
549         match Win32 behaviour, and added TrackBar tests to the unit 
550         tests.
551
552 2006-11-02  Chris Toshok  <toshok@ximian.com>
553
554         * XplatUIX11.cs: the atom we want is _NET_WM_STATE_SKIP_TASKBAR,
555         not _NET_WM_STATE_NO_TASKBAR.
556
557 2006-11-02  Jackson Harper  <jackson@ximian.com>
558
559         * TextControl.cs: Increment count by one, since in the update view
560         count - 1 is used.
561
562 2006-11-02  Jackson Harper  <jackson@ximian.com>
563
564         * TextBoxBase.cs: Use client rectangle not bounds for checking if
565         the mouse is in the client rectangle (duh).
566
567 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
568         
569         * TrackBar.cs: Fixed trackbar jumping around when clicking
570         on it - the trackbar was not detecting correctly at which
571         side of the thumb the click was done. (fixes #79718)
572
573 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
574
575         * ListBox.cs: scroll visible area when change SelectedIndex to
576         a non visible area.  Fixes #79481.
577
578 2006-11-01  Jackson Harper  <jackson@ximian.com>
579
580         * TextControl.cs: When replacing the selection move the selection
581         start/end/anchor to the end of the new text.
582
583 2006-11-01  Jackson Harper  <jackson@ximian.com>
584
585         * XplatUIWin32.cs: When setting the parent change the controls
586         visibility to it's visibility flag, not to it's old parents
587         visibility (.Visible walks the parent chain).
588
589 2006-11-01  Chris Toshok  <toshok@ximian.com>
590
591         * XplatUIX11.cs: revert the #79790 fix, as the simple.
592         XSetTransientForHint fix breaks paint .net's tool windows.  more
593         work needed for that one.
594
595 2006-11-01  Chris Toshok  <toshok@ximian.com>
596
597         * ScrollBar.cs: throw ArgumentException instead of Exception in
598         LargeChange/SmallChange setters.  fixes unit tests.
599
600 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
601
602         * ContainerControl.cs: reverted rev.67183 (which was itself
603         a reversion of rev.66853... eh).
604         
605         * Control.cs: Fixes Reflector hang by changing Focus() call
606         to what it was before rev.66643 (calling Select() here sets 
607         ActiveControl, which in some situations calls back Focus and 
608         eventually does a stack overflow). Temp fix.    
609         Changes to GetNextControl() to not look for children to select when
610         parent cannot be selectable (so it looks for siblings instead)  
611         
612 2006-10-31  Mike Kestner  <mkestner@novell.com>
613
614         * CheckedListBox.cs : off by one error in returned index from
615         ObjectCollection.Add.  Fixes #79758.
616
617 2006-10-31  Chris Toshok  <toshok@ximian.com>
618
619         * UpDownBase.cs: remove the OnGotFocusInternal/OnLostFocusInternal
620         calls for the textbox/spinner, to keep from recursing to the point
621         where we crash.  Fixes #79760.
622
623 2006-10-31  Chris Toshok  <toshok@ximian.com>
624
625         * ListControl.cs (set_SelectedValue): don't throw exceptions on
626         null/"" value, just return.  matches ms's behavior and fixes some
627         failing tests.
628
629 2006-10-31  Chris Toshok  <toshok@ximian.com>
630
631         * Control.cs (set_Capture): make a logic a little easier to
632         follow.
633
634         * XplatUIX11.cs (CleanupCachedWindows): zero out the Grab window
635         if it's being destroyed.  A necessary fix surely, but a bandaid
636         also, to fix the stuck capture problem in bug #78413.
637
638 2006-10-31  Chris Toshok  <toshok@ximian.com>
639
640         * XplatUIX11.cs: fix a couple of compiler warnings, and follow the
641         convention of clearing hwnd.ClientRect when we set the
642         width/height (so it'll be recalculated by Hwnd).
643
644 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
645
646         * ContainerControl.cs: reversed Contains check from
647         ActiveControl due to hanging problems. This fix
648         partly regresses #79667 (button does not have
649         initial focus), so this might be a symptom for 
650         a larger parenting problem (set_ActiveControl
651         is being called but the child control does
652         not have the parent set yet?)   
653         
654 2006-10-31  Mike Kestner  <mkestner@novell.com>
655
656         * MenuAPI.cs : fix keynav when menu is click activated.
657
658 2006-10-31  Jonathan Pobst  <monkey@jpobst.com>
659
660         * ToolStrip*: Version 0.2.
661
662         * MenuStrip.cs: Version 0.1.
663
664         * Form.cs: Add a 2.0 MenuStrip tracker like the 1.1 Menu one.
665
666 2006-10-30  Chris Toshok  <toshok@ximian.com>
667
668         [ fixes the oversized notify icon issue in bug #79745 ]
669         
670         * NotifyIcon.cs: scale the icon down to the size we're given by
671         the XplatUI layer (this would be faster if we did it once instead
672         of whenever we paint..)  Also, remove the WM_NCPAINT handling,
673         since it's never invoked.
674
675         * XplatUIX11.cs: the gnome and kde systrays use icons that are 24
676         pixels high by default, so let's hardcode our systray icon to that
677         size.  The SYSTEM_TRAY protocol should really have a way for
678         client apps to query for the correct icon size.. but oh well.  A
679         couple of patches to deal with the screwy client_window ==
680         whole_window notifyicon stuff (we don't want to PerformNCCalc, for
681         instance, and also make sure we don't XSelectInput twice).
682
683 2006-10-30  Chris Toshok  <toshok@ximian.com>
684
685         * Control.cs: ugh, the unit test fix (CH11, yesterday) breaks when
686         recreating forms.  Control recreation is the bane of my existence.
687         Fix it in a way that keeps everyone happy.
688
689 2006-10-30  Chris Toshok  <toshok@ximian.com>
690
691         * XplatUIX11.cs: use StructureNotifyMask on all whole_windows, not
692         just non-CHILD ones.  otherwise sometimes scrollbars end up with
693         client_windows not being resized to the proper size (ReportBuilder
694         shows this extremely well).
695
696 2006-10-30  Chris Toshok  <toshok@ximian.com>
697
698         * XplatUIX11.cs (SetWMStyles): reinstate the XSetTransientForHint
699         for non-WS_EX_APPWINDOW windows.  This is what keeps them from
700         showing up in the gnome taskbar.  Fixes bug #79790.
701
702 2006-10-30  Chris Toshok  <toshok@ximian.com>
703
704         * ApplicationContext.cs: guard against a NRE.
705
706         * Application.cs: null out the old MainForm for the context, so we
707         don't try to use it again once it's disposed.  Fixes bug #79783.
708
709 2006-10-30  Chris Toshok  <toshok@ximian.com>
710
711         * DataGrid.cs (set_DataSource, set_DataMember): if we have a
712         BindingContext, set the data source directly, otherwise do the
713         lazy approach - the actual ListManager will be created when we get
714         a BindingContext. Fixes bug #79700.
715
716 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
717
718         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
719           XplatUIX11.cs: Remove old 2 parameter SetVisible.
720
721         * Control.cs: Use the new 3 parameter SetVisible with activate = true.
722
723 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
724
725         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Add an overload
726         of SetVisible that allows a window to be shown, but not activated.
727         This is needed on Windows for MenuStrip, and can probably be used
728         with MainMenu and ComboBox to fix the focus stealing issues on
729         Windows.
730
731         * XplatUIOSX.cs, XplatUIX11.cs: Not needed, call existing SetVisible.
732
733 2006-10-30  Alexander Olk  <alex.olk@googlemail.com>
734
735         * PictureBox.cs: Fix the output of the ToString method.
736
737 2006-10-29  Chris Toshok  <toshok@ximian.com>
738
739         * Control.cs (get_TopLevelControl): fix bug #79781.
740
741 2006-10-29  Chris Toshok  <toshok@ximian.com>
742
743         * ListControl.cs (set_DataSource): throw Exception here, not
744         ArgumentException, to match MS behavior.
745
746 2006-10-29  Chris Toshok  <toshok@ximian.com>
747
748         * Form.cs: remove the try-catch's around calls to GetWindowState.
749         We can just check the return value.
750
751         * XplatUIX11.cs: don't throw exceptions from GetWindowState.
752         Instead return -1.
753
754         * XplatUI.cs: Add note about additional return value for
755         GetWindowState.
756
757 2006-10-29  Chris Toshok  <toshok@ximian.com>
758
759         * Control.cs (CreateHandle): when we create our handle, we also
760         create the handles of our child controls.  Fixes one of the
761         Control unit tests (CH11).
762
763 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
764
765         * MimeIcon.cs: If a gnome icon doesn't exist add a default icon.
766
767 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
768
769         * ThemeClearlooks.cs: A little speedup.
770
771 2006-10-27  Chris Toshok  <toshok@ximian.com>
772
773         * Control.cs: implement Control.FromChildHandle in a way that
774         matches the docs (and fixes the failed test.)
775
776 2006-10-27  Chris Toshok  <toshok@ximian.com>
777
778         * DataGridTableStyle.cs: reproduce buggy MS behavior (with
779         comments).
780
781         * DataGrid.cs: implement ResetForeColor such that the tests
782         succeed.
783         
784 2006-10-27  Chris Toshok  <toshok@ximian.com>
785
786         * ToolBarButton.cs: setting text/tooltiptext to null results in it
787         being set to "".  Fixes bug #79759.
788
789 2006-10-27  Jackson Harper  <jackson@ximian.com>
790
791         * TextControl.cs: We need to clear the entire selection area when
792         setting the start, otherwise multiline selections are still
793         visible.
794
795 2006-10-26  Chris Toshok  <toshok@ximian.com>
796
797         * PropertyGridView.cs: 
798
799         - ifdef all the code specific to the double
800         buffer case, and provide some alternatives in the non-doublebuffer
801         code, which makes heavy use of XplatUI.ScrollWindow to move things
802         around without having to invalidate (and cause flicker).  There
803         are still some drawing problems in the non-doublebuffered case, so
804         DOUBLEBUFFER is defined by default.
805
806         - Fix the way dropdowns are handled.  now we explicitly watch for
807         the events which might cause the dropdown to close, and break out
808         of the nested event loop there.  This gets rid of all Capture
809         code, at the expense of the Msg special casing.  Seems to work,
810         though, and fixes bug #79743.
811
812 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
813         * Control.cs: SetIsRecreating now recreates implicitly added
814         child controls as well. Finally fixes #79629. The flag passed to 
815         SetIsRecreating has also been removed since it wasn't used.
816         
817 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
818
819         * PageSetupDialog.cs: Clean some code, fix some bits, 
820         add some checks, and add a printer sub-dialog.
821
822 2006-10-26  Chris Toshok  <toshok@ximian.com>
823
824         * PropertyGrid.cs: make set_SelectedObject call
825         set_SelectedObjects, and move the duplicate logic to the
826         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
827
828         * PropertyGridView.cs: hide the textbox when we get a
829         SelectedObjectsChanged event.
830
831         Fixes bug #79748.
832
833 2006-10-26  Chris Toshok  <toshok@ximian.com>
834
835         * PropertyGridView.cs: deal with the type converter not supporting
836         GetStandardValues() or GetStandardValues() returning null, which
837         is does in the default case.  Fixes #79742.
838
839 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
840
841         * CheckedListBox.cs: nunit no longer crashes when selecting 
842         Project/Edit menu option
843         
844 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
845
846         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
847         is no menu selected. fixes #79739
848
849 2006-10-25  Chris Toshok  <toshok@ximian.com>
850
851         * PropertyGridView.cs: factor out the splitter invalidation code
852         into the SplitterPercent setter, and for kicks implement the
853         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
854         amount in either direction.
855
856 2006-10-25  Chris Toshok  <toshok@ximian.com>
857
858         * PropertyGridView.cs: do some cleanup of the brush used to draw
859         text - read only fields should be grayed out.  not sure how to do
860         this with the textbox, though.  but the textbox's should also be
861         readonly now at least.  Also, hide/show the textbox when resizing
862         the control.
863         
864         * CursorConverter.cs: use System.Reflection when getting the
865         properties of Cursors, as TypeDescriptor.GetProperties isn't
866         returning static properties.
867
868 2006-10-25  Chris Toshok  <toshok@ximian.com>
869
870         * PropertyGridView.cs: factor out the up/down handling, and reuse
871         it for page up/down.  also add End/Home support.
872
873 2006-10-25  Chris Toshok  <toshok@ximian.com>
874
875         * PropertyGridView.cs:
876
877         - ensure the selected grid item is visible in the scrolled area,
878         fixes bug #79572.
879
880         - fix Keys.Down handling when you're on the last item in the
881         propertygrid.
882
883 2006-10-25  Mike Kestner  <mkestner@novell.com>
884
885         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
886         clicks too.  Fixes #79725.
887
888 2006-10-24  Chris Toshok  <toshok@ximian.com>
889
890         * PropertyGrid.cs: use property.Converter instead of
891         TypeDescriptor.GetConverter(property.PropertyType), so we catch
892         TypeConverters declared on the property as well as on the
893         PropertyType.  Fixes bug #79678.
894
895 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
896
897         * MimeIcon.cs, Mime.cs:
898           Fallback to the default platform handler if no shared mime info
899           stuff exists (fixes #79693).
900
901 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
902         * ContainerControl.cs: Incorrect contains check in ActiveControl 
903         from previous fix (duh).
904
905 2006-10-20  Chris Toshok  <toshok@ximian.com>
906
907         * PropertyGridView.cs: the dropdown should be MIN(number of items
908         in list, 15).  Fixes #79551.
909
910 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
911         Fixes #79384, #79394, #79652, #79667
912         * Application.cs: 
913         
914         - Modal windows are now destroyed in the proper order for windows
915         
916         * ContainerControl.cs:
917         
918         - ActiveControl setter has more conditions on when to return:
919                 - if we're reselecting the active control, but it actually
920                 didn't have focus (window hidden or some such), it runs
921                 - if the active control being selected doesn't actually 
922                 exist in the container, it returns
923         
924         * Form.cs
925         
926         - The ShowDialog now gets the current form as the owner when
927         invoking without parameters, and correctly activates the owner 
928         when returning
929         
930         * MessageBox.cs
931         
932         - MessageBox now catches the Escape key to exit
933
934 2006-10-20  Chris Toshok  <toshok@ximian.com>
935
936         * PropertyGridView.cs: fix a number of issues (bug #78565, and
937         most of bug #79676):
938
939         - you can navigate around the property grid with the arrow keys.
940
941         - the dropdown is sized properly when the pg has a vertical
942         scrollbar.
943
944         - fix the indentation for subentries, and properly select the
945         entire label rect.
946
947         - fix the gray bar's drawing (only draw it to the last element,
948         not for the height of the control.  Also make sure we draw that
949         last horizontal grid line.
950
951         - use the same mechanism the datagrid uses wrt the editing textbox
952         when scrolling/resizing/etc.  Namely, we hide it first, do the
953         operation, then show it again (if it's still visible).
954         
955         - aggressively remove a lot of unnecessary refreshes (and also
956         calls to Invalidate(). call more limited variants, and only redraw
957         what we need.)
958         
959         * PropertyGrid.cs:
960
961         - when we're populating the merged collection, fill in the UI
962         parent with either the passed in item, or the category item we
963         create.
964
965         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
966
967         * GridItem.cs: drop some fully qualified names.
968         
969         * GridEntry.cs: add a "UIParent", which is basically the parent
970         treenode.
971
972         * GridItemCollection.cs: add an IndexOf method.
973
974 2006-10-20  Mike Kestner  <mkestner@novell.com>
975
976         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
977         a working win32 NC invalidation mechanism, we can't invalidate
978         menus.  [Fixes #79705]
979
980 2006-10-20  Mike Kestner  <mkestner@novell.com>
981
982         * ListBox.cs : don't update the VScrollbar if the list is empty,
983         just hide it.  [Fixes #79692]
984
985 2006-10-20  Jackson Harper  <jackson@ximian.com>
986
987         * RichTextBox.cs: Handle some special chars better, and don't skip
988         the entire group when we encounter a special char that we don't
989         handle correctly.
990
991 2006-10-18  Chris Toshok  <toshok@ximian.com>
992
993         * PropertyGridView.cs: address a number of issues from bug #79676,
994         mostly of the cosmetic variety.
995
996         - The highlight rectangle for indented items not extends all the
997         way to the left.
998
999         - Indented items aren't indented so much.
1000
1001         - the dropdown is properly sized width-wise if the pg has a
1002         vertical scrollbar.
1003
1004 2006-10-18  Chris Toshok  <toshok@ximian.com>
1005
1006         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
1007         systray stuff is rather convoluted to begin with.
1008
1009         systray icons are a single window for some reason (that I haven't
1010         figured out yet), and for them, client_window == whole_window.
1011         Given the way the tests are structured elsewhere to determine
1012         which paints are pending (client vs. nc), that situation will
1013         always yield PAINT, not NCPAINT.  So, if we have a pending
1014         nc_expose and no pending expose, remove the hwnd from the paint
1015         queue, and also set nc_expose_pending to false, to keep us from
1016         blocking further expose's adding the hwnd to the paint queue.
1017
1018         phew.  like i said, a rather convoluted change.  Fixes the
1019         notifyicon repaint issues in bug #79645.
1020
1021 2006-10-18  Chris Toshok  <toshok@ximian.com>
1022
1023         * Form.cs: when getting the backcolor of the form, don't get
1024         base.BackColor, as this allows parents to influence the background
1025         color.  This breaks mdi forms.  Instead, if the background_color
1026         is empty, return the default.
1027
1028 2006-10-18  Chris Toshok  <toshok@ximian.com>
1029
1030         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
1031         to being private instead of internal static.
1032
1033         * Control.cs: remove all the stupid ParentWaitingOnRecreation
1034         crap, it wasn't working for more deeply nested controls anyway,
1035         and we already have the is_recreating flag - use that instead.
1036         Before calling DestroyHandle in RecreateHandle, recurse through
1037         the control tree setting it to true.  this returns the recreate
1038         code to much of its original simplicity, while now guaranteeing we
1039         actually recreate everything we're supposed to.  This change gets
1040         fyireporting actually showing mdi children.
1041
1042 2006-10-17  Chris Toshok  <toshok@ximian.com>
1043
1044         * Form.cs: remove some debug spew, and collapse some duplicate
1045         code at the end of SetClientSizeCore.
1046
1047         * XplatUIX11.cs: 
1048         - add some more debug spew here too wrt Destroy handling.
1049         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
1050         in Control's handling of WM_DESTROY.
1051         - Remove the handling of zombie window DestroyNotifies from the
1052         event loop - we don't need it.  Now the only DestroyNotifies we
1053         actually handle are ones generated by X.
1054         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
1055         match gtk's (functioning) handling of this. This keep metacity
1056         from leaving droppings in the form of wm borders with no window
1057         contents all over the place.
1058
1059         * Control.cs:
1060         - add a bunch of debug spew wrt control recreation.
1061         - fix a bug where we weren't tracking Visible properly on
1062         recreated hwnds.
1063         - fixed the WM_PAINT double buffer handling to support re-entrant
1064         calls (yes, i know it's gross, but it's happening to us).
1065
1066 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
1067         * ThemeWin32Classic.cs: changed drawing of selected days
1068         to make them look better.
1069
1070 2006-10-16  Chris Toshok  <toshok@ximian.com>
1071
1072         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
1073         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
1074
1075         * XplatUIX11.cs: move away from using hwnd.client_dc and
1076         hwnd.non_client_dc and on to a stack of dc's (and in window's
1077         case, PAINTSTRUCT's), so we can deal with nested Paint calls
1078         without puking or not disposing of Graphics objects.
1079
1080         * XplatUIOSX.cs: same.
1081
1082         * XplatUIWin32.cs: same.
1083
1084 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
1085
1086         * FileDialog.cs: Don't call on_directory_changed inside
1087           OnSelectedIndexChanged (it changes the SelectedIndex too).
1088           Instead move it to OnSelectionChangeCommitted.
1089
1090 2006-10-13  Chris Toshok  <toshok@ximian.com>
1091
1092         * XplatUIX11.cs: more Destroy work.  the current code does the
1093         following things, in order:
1094
1095         1. Enumerates all handles of all controls at or below the one
1096         being destroyed, in pre-order.  As it is doing this, it marks the
1097         handles as zombie and clears all references to them.
1098         
1099         2. calls XDestroyWindow on the window passed in.
1100
1101         3. SendMessage's WM_DESTROY to all he handles in the accumulated
1102         list.
1103
1104 2006-10-13  Chris Toshok  <toshok@ximian.com>
1105
1106         * XplatUIX11.cs: set hwnd.zombie to true before calling
1107         SendMessage (WM_DESTROY).  this keeps us from marking the new
1108         window a zombie, and also keeps us from calling sendmessage at
1109         all.
1110
1111 2006-10-13  Jackson Harper  <jackson@ximian.com>
1112
1113         * TextControl.cs: Do not show the caret and selection at the same
1114         time.  Reduces ugliness by 35%.
1115
1116 2006-10-13  Chris Toshok  <toshok@ximian.com>
1117
1118         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
1119         zombie after we do the recursive call, so we actually do call
1120         SendMessage on the children controls.
1121         (GetMessage): if we find a pending paint event for a zombie hwnd,
1122         remove the hwnd from the paint queue, or else it will always be
1123         there (and we'll effectively loop infinitely)
1124
1125 2006-10-13  Mike Kestner  <mkestner@novell.com>
1126
1127         * MenuItem.cs : add Selected format under keynav too.
1128         Fixes #79528.
1129
1130 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
1131
1132         * PropertyGrid.cs: Fixed some NRE's and small difference between our
1133         implementation and that of MS.
1134
1135 2006-10-13  Chris Toshok  <toshok@ximian.com>
1136
1137         * Control.cs (OnInvalidated) only futz with the invalid_region if
1138         the control is double buffered.  this fixes the apparent hang in
1139         the ListView unit tests.  Someone needs to make the
1140         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
1141
1142 2006-10-13  Chris Toshok  <toshok@ximian.com>
1143
1144         * PropertyGridView.cs:
1145
1146         - do a little refactoring so that only one place calls
1147         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
1148         else call that.  Also make it Refresh, since there are redraw bugs
1149         otherwise (we should take a look at that...)
1150
1151         - do a little more refactoring work to share the body of code
1152         involved with the drop down.  it was duplicated in the code
1153         dealing with the listbox handling and in the code dealing with the
1154         UITypeEditors.
1155
1156         - add a Capture to the dropdown form's control once it's
1157         displayed, and add a MouseDown handler that checks to make sure
1158         the position is inside the control.  If it's not, close the
1159         dropdown.  This fixes #78190.
1160
1161         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
1162         if the value is different than the initial value.
1163         
1164 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
1165
1166         * Control.cs: see #78650
1167         - Fixed GetNextControl for several cases:
1168                 - Changed FindFlatForward to return 
1169                 correct sibling control when more than one
1170                 control has same TabIndex as the currently 
1171                 focused one.
1172                 - Changed FindFlatBackward to loop children
1173                 from last to first and apply same logic as in
1174                 FindFlatForward
1175                 - Changed FindControlForward to search for
1176                 children when control is not a container
1177                 but has children, or search for siblings if
1178                 control is a container...
1179                 - Changed FindControlBackward   to continue
1180                 searching for child controls when hitting 
1181                 Panel-like parents
1182                 
1183         - Fixed Focus method to update ActiveControl
1184         (FocusTest.FocusSetsActive failure)
1185         
1186         * TabControl.cs:
1187         - Focus rectangle now refreshes when gaining
1188         or losing focus
1189         - Removed grab for Tab key on IsInputKey that 
1190         was keeping tab navigation from working (#78650)
1191
1192 2006-10-13  Chris Toshok  <toshok@ximian.com>
1193
1194         * PropertyGridView.cs:
1195         - Rewrite SetPropertyValue to loop over SelectedGridItem's
1196         SelectedObjects.
1197
1198         - Deal with GridItem.Value == null a few places.
1199
1200         * PropertyGrid.cs: 
1201         - replace the PopulateGridItemCollection with a pair of methods
1202         which compute the intersection of all the properties in the
1203         SelectedObjects array.  Fixes #79615.
1204
1205         - Throw ArgumentException from set_SelectedObjects if there's a
1206         null in the array.
1207
1208         - Add GetTarget method which can be used to traverse up the
1209         GridItem.Parent chain.  It depends on the assumption that
1210         selected_objects for different GridEntries are always in the same
1211         order (a safe assumption).  Use this method and loop over all the
1212         selected objects in the entry when calling RemoveValueChanged and
1213         AddValueChanged.
1214         
1215         * GridEntry.cs: Make this handle multiple selected objects.
1216         .Value returns null if not all the selected objects share the same
1217         value.
1218
1219 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
1220         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
1221           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
1222           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
1223           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
1224           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
1225         add additional functionality.
1226
1227 2006-10-12  Mike Kestner  <mkestner@novell.com>
1228
1229         * ErrorProvider.cs : new ToolTipWindow ctor sig.
1230         * HelpProvider.cs : new ToolTipWindow ctor sig.
1231         * ToolTip.cs : remove ToolTip param from Window sig since it is
1232         not used.
1233         * ToolBar.cs : add tooltip support.  Fixes #79565.
1234
1235 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
1236
1237         * ComboBox.cs: move the events in set_SelectedIndex to 
1238         after the call to HighlightIndex in order to avoid 
1239         possible recursion and subsequent problems with the call
1240         to HighlightIndex and include a range check in 
1241         set_HighlightIndex. Fixes #79588
1242         
1243 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
1244
1245         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
1246         to ui thread's settings instead of sunday. 
1247         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
1248
1249 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
1250
1251         * DateTimePicker.cs
1252         * MonthCalendar.cs
1253         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
1254         and implement missing functionality (selecting different parts 
1255         of the date and edit them individually with the keyboard).
1256         
1257 2006-10-11  Chris Toshok  <toshok@ximian.com>
1258
1259         * Control.cs (OnInvalidated): fix NRE relating to last change.
1260
1261 2006-10-11  Chris Toshok  <toshok@ximian.com>
1262
1263         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
1264         atoms in _NET_WM_STATE here if the window is maximized.  We need
1265         to do this because we're *replacing* the existing _NET_WM_STATE
1266         property, so those atoms will be lost otherwise, and any further
1267         call to GetWindowState will return Normal for a window which is
1268         actually maximized.  Fixes #79338.
1269
1270 2006-10-11  Jackson Harper  <jackson@ximian.com>
1271
1272         * TextControl.cs: Special case for setting selection end to
1273         selection start, we basically kill the anchor.
1274         - some todo comments.
1275
1276 2006-10-11  Chris Toshok  <toshok@ximian.com>
1277
1278         * Control.cs: switch to using an "invalid_region" to track which
1279         parts of the image buffer need updating.  This is more code than
1280         the simple fix from r66532.  That version just attempted to always
1281         fill the entire buffer on redraw, which turns out to be
1282         inefficient when invalidating small rectangles.  This version
1283         simply adds the invalid rectangle to the invalid region.  When we
1284         get any WM_PAINT message we see if it can be filled using the
1285         image buffer, and if it can't (if the paint event's clip rectangle
1286         is visible in the invalid region) we first fill the image buffer.
1287         So, the image buffer is still a cache, we just fill it lazily.
1288
1289         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
1290         need it any longer.
1291
1292 2006-10-11  Chris Toshok  <toshok@ximian.com>
1293
1294         * XplatUIX11.cs (SetWindowPos): we need to update both position as
1295         well as size after calling XMoveResizeWindow.  This keeps us from
1296         ignoring future SetWindowPos calls.  Fixes the disappearing
1297         DateTimePicker in the ToolBarDockExample from bug #72499.
1298
1299 2006-10-11  Chris Toshok  <toshok@ximian.com>
1300
1301         * TextBoxBase.cs: reorder things a bit when it comes to
1302         resizing-causing-recalculation.  we were recalculating the
1303         document when our position was changed, which shouldn't happen.
1304         We only care about size changes.  Clear up some more redundant
1305         recalculation calls while I'm at it.  This makes the toolbar dock
1306         example snappy when you're just dragging toolbars around (since it
1307         causes a relayout whenever you move one.)
1308
1309 2006-10-11  Chris Toshok  <toshok@ximian.com>
1310
1311         * ToolBarButton.cs (get_Rectangle): this only returns
1312         Rectangle.Empty if Visible == false, or Parent == null.
1313         Parent.Visible doesn't matter.
1314
1315 2006-10-10  Chris Toshok  <toshok@ximian.com>
1316
1317         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
1318         by .net 1.1, so switch to an internal method instead.
1319
1320 2006-10-10  Chris Toshok  <toshok@ximian.com>
1321
1322         * Control.cs (WM_PAINT): when a control is double buffered we draw
1323         initially to the ImageBuffer and then copy from there.  But when a
1324         parent control which has child controls is double buffered, the
1325         initial drawing doesn't encompass the entire ClientRectangle of
1326         the parent control, so we end up with uninitialized bits (this is
1327         easily seen by dragging the top toolbar in
1328         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
1329         manually set the ClipRectangle of the paint_event (only the one we
1330         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
1331         of the nastiness in bug #72499.
1332
1333         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
1334         which we use in Control.cs's WM_PAINT handling.
1335
1336 2006-10-10  Jackson Harper  <jackson@ximian.com>
1337
1338         * TextBoxBase.cs: Finish off the autoscrolling stuff.
1339
1340 2006-10-10  Chris Toshok  <toshok@ximian.com>
1341
1342         * Cursor.cs: Apply a slightly different patch to the one suggested
1343         in #79609.
1344
1345 2006-10-10  Jackson Harper  <jackson@ximian.com>
1346
1347         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
1348         not the parent form.
1349         * TextControl.cs: use difference in old line count vs new count to
1350         calculate how many lines were added, this takes into account soft
1351         line breaks properly.
1352
1353 2006-10-10  Chris Toshok  <toshok@ximian.com>
1354
1355         * LinkLabel.cs: don't call MeasureCharacterRanges against a
1356         rectangle located at 0,0 and the size of the text.  Use
1357         ClientRectangle instead.  This fixes rendering of non-left aligned
1358         link labels.
1359
1360 2006-10-10  Jackson Harper  <jackson@ximian.com>
1361
1362         * TextBoxBase.cs: When we set the selection start position the
1363         caret.
1364         * TextControl.cs: Need to update the caret when we decrement it to
1365         zero.
1366         - Make sure that the selection_visible flag gets reset to false if
1367         the selection isn't visible.  Before this you could get it set to
1368         visible by changing the selection start, then changing the end to
1369         equal the start.
1370
1371 2006-10-09  Jackson Harper  <jackson@ximian.com>
1372
1373         * TreeView.cs: Don't update scrollbars when we aren't visible.
1374         * TreeNodeCollection.cs: Only need to update scrollbars if being
1375         added to an expanded visible node or the root node.
1376
1377 2006-10-09  Chris Toshok  <toshok@ximian.com>
1378
1379         * XplatUIX11.cs (SendMessage): fix NRE.
1380
1381 2006-10-09  Jackson Harper  <jackson@ximian.com>
1382
1383         * TextBoxBase.cs: Implement horizontal autoscrolling.
1384         * TextControl.cs: Add a movement types that allows moving forward
1385         and backwards without wrapping.
1386
1387 2006-10-09  Mike Kestner  <mkestner@novell.com>
1388
1389         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
1390         with focus "expansion" of labels.  Fixes #79532 and then some.
1391         * ThemeWin32Classic.cs : add LineLimit to ListView label format
1392         when wrapping.
1393
1394 2006-10-09  Jackson Harper  <jackson@ximian.com>
1395
1396         * TextBoxBase.cs: Set the default max values to MaxValue since
1397         we use the scrollbar for autoscrolling and the default value is
1398         100.  If we don't do this the caret won't keep up with typing
1399         after about 18 characters.
1400         * TextControl.cs: Make sure the selection is offset by the
1401         viewport x.  This fixes selection when using auto scrolling.
1402
1403 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
1404         
1405         * Form.cs: The active control should be selected after the 
1406         OnLoad so that any child control initialization that affects
1407         the selection is done. Fixes #79406
1408
1409 2006-10-06  Chris Toshok  <toshok@ximian.com>
1410
1411         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
1412         to have no evil effects.
1413
1414         - Stop selecting StructureNotifyMask on non-toplevel windows.
1415
1416           The only way children should be resized is by using the SWF api,
1417           and we already send WM_WINDOWPOSCHANGED messages in those cases.
1418           Toplevel windows can be interacted with via the window manager,
1419           and so we keep the input mask there.
1420
1421           The other event StructureNotifyMask gives us (that we care
1422           about) is DestroyNotify.  The code is already structured such
1423           that it assumes we won't be getting a DestroyNotify event for
1424           the window we pass to XDestroyWindow (which is what
1425           StructureNotifyMask is supposed to guarantee.)  So, that code
1426           shouldn't be affected by this either.
1427
1428         - Stop selecting VisibilityChangeMask altogether.
1429
1430           We weren't doing anything with the resulting events anyway.
1431         
1432         This vastly reduces the number of X requests and events we see
1433         when resizing/laying out a large ui.
1434
1435 2006-10-06  Chris Toshok  <toshok@ximian.com>
1436
1437         * ScrollableControl.cs (DisplayRectangle): we need to take into
1438         account the DockPadding regardless of whether or not auto_scroll
1439         == true.  rework this slightly to this effect, and fix bug #79606,
1440         and part of #72499 (you can now see the drag handles and drag
1441         toolbars around).
1442
1443 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
1444
1445         * ListViewItem.cs: Collections of selected and checked items are now
1446         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
1447         we mark the collection "dirty".
1448         * ListView.cs: Marked collections readonly. Modified UpdateSelection
1449         to only clear SelectedItems when a new item is selected and MultiSelect
1450         is enabled. CheckedItems and SelectedItems now subscribe to Changed
1451         event of ListViewItemCollection, and mark its list dirty whenever
1452         that event is fire. This allows us to return selected/checked items 
1453         in the same order as they are in the Items collection. This matches
1454         the MS behavior.
1455
1456 2006-10-06  Chris Toshok  <toshok@ximian.com>
1457
1458         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
1459         right mouse clicks.  Fixes bug #79593.
1460
1461 2006-10-06  Chris Toshok  <toshok@ximian.com>
1462
1463         * Splitter.cs: doh, fix splitters that don't want to cancel the
1464         movement when you drag them.  Also, impose the limits on the
1465         values we send to the SplitterMovingEvent.  Fixes #79598.
1466
1467 2006-10-06  Jackson Harper  <jackson@ximian.com>
1468
1469         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
1470         since we use this for auto scrolling also.
1471
1472 2006-10-05  Chris Toshok  <toshok@ximian.com>
1473
1474         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
1475         beginning to think that most datagrid column types don't need this
1476         method.  Fixes bug #79392.
1477
1478 2006-10-05  Chris Toshok  <toshok@ximian.com>
1479
1480         * DataGrid.cs: move back to a more lazy scheme for creating the
1481         CurrencyManager, so we aren't updating it every time you set
1482         either DataSource or DataMember.  Also, don't call
1483         RecreateDataGridRows if the currency manager hasn't changed.
1484
1485 2006-10-05  Chris Toshok  <toshok@ximian.com>
1486
1487         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
1488         emitted, SelectedIndex should already be updated.  Fixes bug
1489         #78929.
1490
1491 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
1492
1493         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
1494           ToolStripTextBox.cs: Initial commit.
1495         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
1496
1497 2006-10-05  Jackson Harper  <jackson@ximian.com>
1498
1499         * TabControl.cs: We need to invalidate the tab control area when
1500         new ones are added (duh).
1501
1502 2006-10-03  Chris Toshok  <toshok@ximian.com>
1503
1504         * Form.cs (ProcessDialogKey): if the focused control is in this
1505         form and is a button, call its PerformClick method here.  Fixes
1506         #79534.
1507
1508 2006-10-04  Jackson Harper  <jackson@ximian.com>
1509
1510         * TabPage.cs: Ignore setting of Visible, and add an internal
1511         method for setting the controls visibility.  TabPage's Visible
1512         property is a little strange on MS, this seems to make us
1513         compatible, and fixes cases where people set all the tab pages to
1514         visible.
1515         * TabControl.cs: Use the new internal setting on tab pages
1516         visibility.
1517
1518 2006-10-03  Mike Kestner  <mkestner@novell.com>
1519
1520         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
1521
1522 2006-10-03  Mike Kestner  <mkestner@novell.com>
1523
1524         * ListView.cs : use is_visible instead of Visible to check if 
1525         scrollbars should be placed/sized.  Also some max_wrap_width
1526         love for LargeIcon view.  [Fixes #79533]
1527
1528 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
1529
1530         * TextControl.cs :
1531           Make set_TextAlign() do actually update the align. Fixed #78403.
1532
1533 2006-10-03  Chris Toshok  <toshok@ximian.com>
1534
1535         * DataGrid.cs: fix a crash when switching datasources if the
1536         vertical scrollbar is at someplace other than Value = 0.  Also,
1537         reduce the number of recalculation passes we do in SetDataSource
1538         from 2 to 1.
1539
1540 2006-10-03  Jackson Harper  <jackson@ximian.com>
1541
1542         * TextBoxBase.cs: Move the if value the same bail check up, we
1543         don't want to empty the document if it is already empty, this
1544         seems to severly mess up the caret.  TODO: I should probably fix
1545         the empty statement to update teh caret somehow.
1546
1547 2006-10-03  Chris Toshok  <toshok@ximian.com>
1548
1549         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
1550         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
1551         reflection, an internal row type, properties on said type, etc.)
1552         will work with our datagrid.  Fixes #79531.
1553
1554 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
1555
1556         * FileDialog.cs: Don't crash if a path is not accessible
1557           (System.UnauthorizedAccessException). Fixes #79569.
1558         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
1559           a ':' too. Return unknown icon for those paths/files.
1560
1561 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
1562
1563         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
1564         GetContainerControl returns null.
1565
1566 2006-10-02  Chris Toshok  <toshok@ximian.com>
1567
1568         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
1569         call to XGetWindowAttributes instead of "handle".  fixes an X
1570         error using notifyicon after the NotifyIconWindow to Form base
1571         class switch.
1572
1573 2006-10-02  Chris Toshok  <toshok@ximian.com>
1574
1575         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
1576         server grab and looping we need to do to get down to the most
1577         deeply nested child window.
1578         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
1579         QueryPointer again after the WarpPointer so we can generate a
1580         proper (fake) MotionNotify event to be enqueued in the destination
1581         window's queue.
1582         (GetCursorPos): call QueryPointer.
1583
1584         Fixes #79556.
1585
1586 2006-10-02  Jackson Harper  <jackson@ximian.com>
1587
1588         * NotifyIcon.cs: Derive the notify icon from a form, so things
1589         like FindForm work on it.
1590         - Swallow the WM_CONTEXTMENU message, since that is generated on
1591         mouse down, and context menu is a mouse up kinda guy.  I believe
1592         the correct fix here is probably to make the notify icon entirely
1593         NC area, but this seems to work fine for anyone not manipulating
1594         WndProc.
1595
1596 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
1597
1598         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
1599           ToolStripItemCollection.cs, ToolStripLabel.cs,
1600           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
1601           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
1602           Initial implementation.
1603         * TextRenderer.cs: Provide padding to MeasureText.
1604
1605 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
1606
1607         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
1608         of ButtonBaseAccessibleObject. Fix bug #79552.
1609
1610 2006-10-02  Jackson Harper  <jackson@ximian.com>
1611
1612         * MdiWindowManager.cs: When maximizing use the containers client
1613         rect, not it's bounds, so nc area is accounted correctly.
1614         - Use the parent form's size for the menu position, since the
1615         client isn't always the full form size.
1616
1617 2006-10-01  Chris Toshok  <toshok@ximian.com>
1618
1619         * ScrollableControl.cs: make sure neither right_edge or
1620         bottom_edge are < 0, since they're used as LargeChange for the
1621         horiz/vert scrollbars respectively.  Fixes #79539.
1622
1623 2006-10-01  Chris Toshok  <toshok@ximian.com>
1624
1625         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
1626         the xplatuix11 code can cause us to destroy/recreate our handle.
1627
1628         * XplatUIX11.cs
1629         (SystrayAdd):
1630         - this code can be invoked many times for the same Hwnd.  Make
1631           sure we only destroy the client window once (the first time this
1632           method is called).  This fixes bug #79544.
1633         - Remove the call to the improperly bound XSync.  why we had two
1634           bindings to this, I will never know, but this call resulted in
1635           events being discarded from the queue(!).
1636         - correct a misunderstanding of _XEMBED_INFO - the second atom is
1637           not our current state but the state we wish to be in.  So, 0 if
1638           we don't want to be mapped.  Change it to 1.
1639         (SystrayRemove): The XEMBED spec makes mention of the fact that
1640         gtk doesn't support the reparent of client windows away from the
1641         embedder.  Looking at gtksocket-x11.c seems to agree with this.
1642         The only avenue we have for removing systray icons is to destroy
1643         them.  We don't want the handle to go away for good, though, so
1644         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
1645         #79545.
1646         
1647 2006-10-01  Chris Toshok  <toshok@ximian.com>
1648
1649         * Form.cs (WndProc): inline the native_enabled variable usage into
1650         the cases in which it's used.  Fixes #79536.
1651
1652 2006-09-29  Mike Kestner  <mkestner@novell.com>
1653
1654         * ListView.cs : toggle the selection state for ctrl clicks in 
1655         multiselect mode. [Fixes #79417]
1656
1657 2006-09-29  Mike Kestner  <mkestner@novell.com>
1658
1659         * ListView.cs : kill CanMultiSelect and refactor the selection
1660         code to support multiselection in the absence of mod keys. Steal
1661         arrow/home/end keys by overriding InternalPreProcessMessage to
1662         restore regressed keynav behavior.
1663         [Fixes #79416]
1664
1665 2006-09-29  Jackson Harper  <jackson@ximian.com>
1666
1667         * MdiClient.cs: Repaint the titlebars when the active window is
1668         changed.
1669
1670 2006-09-29  Chris Toshok  <toshok@ximian.com>
1671
1672         * Application.cs: when entering a runloop with a modal, make sure
1673         the hwnd is enabled.  Fixes #79480.
1674
1675 2006-09-29  Chris Toshok  <toshok@ximian.com>
1676
1677         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
1678         when ListManager.CanAddRows == false, bump us back one.
1679
1680         * DataGridColumnStyle.cs (ParentReadOnly): remove the
1681         listmanager.CanAddRows check.  This makes ArrayLists uneditable
1682         using a datagrid, which is not right.
1683         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
1684         is an IEditable, but call property_descriptor.SetValue regardless.
1685         fixes #79435.
1686
1687 2006-09-29  Chris Toshok  <toshok@ximian.com>
1688
1689         * DataGridBoolColumn.cs: we need to test equality in the face of
1690         possible null values (as is the case with the default NullValue).
1691         This patch keeps us from crashing in that case.
1692
1693 2006-09-29  Jackson Harper  <jackson@ximian.com>
1694
1695         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
1696         here, since it will get called for every node collection in the
1697         tree. This is now done in the treeview once the sorting is
1698         finished.
1699         * TreeView.cs: Recalculate the visible order, and update the
1700         scrollbars after sorting, set the top nope to the root so that the
1701         recalc actually works.
1702
1703 2006-09-29  Chris Toshok  <toshok@ximian.com>
1704
1705         * LinkLabel.cs: more handling of the default link collection in
1706         the face of LinkArea manipulation.  The default link collection
1707         contains 1 element (start=0,length=-1).  If the user sets LinkArea
1708         to anything and the links collection is the default, clear it.
1709         Then only add the link if its nonempty.  Fixes #79518.
1710
1711 2006-09-29  Chris Toshok  <toshok@ximian.com>
1712
1713         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
1714         piece correctly when we hit a '\n'.  Fixes #79517.
1715
1716 2006-09-29  Chris Toshok  <toshok@ximian.com>
1717
1718         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
1719         change the binding of gdk_init_check to take two IntPtr's, and
1720         pass IntPtr.Zero for both of them.  Fixes #79520.
1721
1722 2006-09-29  Mike Kestner  <mkestner@novell.com>
1723
1724         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
1725         [Fixes #78779]
1726
1727 2006-09-28  Jackson Harper  <jackson@ximian.com>
1728
1729         * XplatUIX11.cs: When translating NC messages make sure we go from
1730         whole window to screen, not client window to screen.
1731         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
1732         method doesn't exist
1733         - Skip over controls that aren't forms when arranging.
1734
1735 2006-09-28  Jackson Harper  <jackson@ximian.com>
1736
1737         * XplatUIWin32.cs: Clip the rect to the parent window.
1738         * XplatUIStructs.cs: Add clipping modes struct.
1739         * InternalWindowManager.cs: New private method that factors title
1740         bar heights in when calculating the pos of an NC mouse message.
1741         - Use SendMessage to force a paint when the form's size is changed
1742         instead of painting the decorations immediately.
1743         - Don't let the NC button click messages get to DefWndProc,
1744         because they will attempt to handle windowing themself, and this
1745         messes up z-order (it will put them in front of the scrollbars).
1746         * XplatUIX11.cs: Make sure that we don't reset window managers if
1747         we already have one (ie the window is an MDI window).
1748
1749 2006-09-28  Chris Toshok  <toshok@ximian.com>
1750
1751         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
1752         menu code really needs going over.
1753
1754 2006-09-27  Chris Toshok  <toshok@ximian.com>
1755
1756         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
1757         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
1758         window is maximizable.  So, we need to make sure that even if we
1759         clear the border/wm frame of those functions, they're still
1760         available (basically, we remove the decoration without removing
1761         the function).  Half the fix for #79338.
1762
1763 2006-09-27  Chris Toshok  <toshok@ximian.com>
1764
1765         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
1766         Fixes bug #79515.
1767
1768 2006-09-27  Chris Toshok  <toshok@ximian.com>
1769
1770         * Splitter.cs: reorder things a bit so that we don't actually
1771         draw/move the splitter until after calling OnSplitterMoving.  This
1772         lets users cancel/disallow the movement by explicitly setting
1773         event.SplitX/SplitY.  Fixes #79372.
1774
1775 2006-09-27  Jackson Harper  <jackson@ximian.com>
1776
1777         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
1778         because it is most likely on a window being destroyed, and that
1779         will give us an X11 error.
1780
1781 2006-09-27  Chris Toshok  <toshok@ximian.com>
1782
1783         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
1784         the dropdown button now toggles between showing and hiding the
1785         dropdown.  Also, get rid of dropdown_form_showing and just use
1786         dropdown_form.Visible.  We still don't do a grab, but I'll leave
1787         that part to someone who has handled Capture-fu before.
1788
1789 2006-09-27  Chris Toshok  <toshok@ximian.com>
1790
1791         * DataGrid.cs: return false if alt isn't pressed when '0' is
1792         pressed.  this keeps the '0' key from being swallowed, and fixes
1793         bug #79350.
1794
1795 2006-09-27  Chris Toshok  <toshok@ximian.com>
1796
1797         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
1798         Calling Refresh (in response to a scrollbar event) screws up the
1799         scrollbar painting.  Fixes bug #78923.
1800
1801 2006-09-27  Chris Toshok  <toshok@ximian.com>
1802
1803         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
1804         then insert into hashtable" blocks threadsafe.
1805
1806 2006-09-27  Chris Toshok  <toshok@ximian.com>
1807
1808         * MessageBox.cs (CreateParams): the styles should be |'ed with our
1809         baseclass's, since otherwise the
1810         ControlBox/MinimizeBox/MaximizeBox assignments above have no
1811         effect.  This gets the close button back in messageboxes.
1812
1813 2006-09-27  Chris Toshok  <toshok@ximian.com>
1814
1815         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
1816         flag, not just != 0.  this makes flags that are actually multiple
1817         bits (like WS_CAPTION) work.  fixes bug #79508.
1818
1819 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
1820
1821         * PageSetupDialog.cs: add support for getting and settings the 
1822         paper size, source and orientation.
1823
1824 2006-09-26  Chris Toshok  <toshok@ximian.com>
1825
1826         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
1827         and caption == "", we need to remove the resize handles as well as
1828         the title bar.
1829
1830         * Control.cs (set_Text): turns out that setting Text on a form
1831         should change the WM styles on the window, since if ControlBox ==
1832         false, the only way to get a window border is to have a non-""
1833         Text property.  check winforms/forms/text.cs for an example.  so,
1834         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
1835         update both window styles and title.  This fixes a lot of dialogs
1836         (including the preferences dialog in MonoCalendar.)
1837
1838 2006-09-26  Chris Toshok  <toshok@ximian.com>
1839
1840         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
1841         control isn't a Form), call Win32ShowWindow to hide the window,
1842         but don't update the control Visible property.  When we reparent
1843         back to a parent control, call SetVisible in order for the
1844         window's visibility to be reinstated.
1845
1846         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
1847         the FosterParent.
1848
1849         * Control.cs (ControlCollection.Remove): remove that value.Hide()
1850         call for good, since it breaks MonoCalendar (and other things I'm
1851         sure.) Also, set all_controls to null *after* the owner calls,
1852         which end up regenerating it.
1853         (ChangeParent): allow new_parent to be == null, passing
1854         IntPtr.Zero down to XplatUI.
1855
1856         this fixes #79294 the right way.
1857
1858 2006-09-26  Mike Kestner  <mkestner@novell.com>
1859
1860         * GridEntry.cs : internal SetParent method.
1861         * PropertyGrid.cs : attach to property changed on the proper
1862         target if we have a hierarchical grid with subobjects. Setup
1863         GridItem.Parent for hierarchical items.
1864         * PropertyGridView.cs : Set value on the correct target for
1865         hierarchical grids. [Fixes #78903]
1866
1867 2006-09-26  Chris Toshok  <toshok@ximian.com>
1868
1869         * Control.cs (ChildNeedsRecreating): this should return true if
1870         either we're being recreated and the child is in our list, or our
1871         parent is waiting for our recreation.
1872
1873 2006-09-26  Chris Toshok  <toshok@ximian.com>
1874
1875         * Control.cs (ControlCollection.Remove): reinstate the
1876         value.Hide() call as suggested in bug #79294.
1877
1878 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
1879
1880         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
1881         coordinates (versus a relative move).
1882
1883 2006-09-26  Chris Toshok  <toshok@ximian.com>
1884
1885         * Control.cs: rework child recreation a little bit.  It turns out
1886         that we race between the DestroyNotify the WM_DESTROY message.  If
1887         the parent gets its DestroyNotify before the child gets the
1888         WM_DESTROY message, the child ends up not recreating (since the
1889         parent finishes its recreation on DestroyNotify, and the child
1890         checks ParentIsRecreating.)
1891
1892         So, instead we store off a list of all the child controls which
1893         need to be recreated when the parent control starts to recreate
1894         itself.  Then, when child controls get their WM_DESTROY message we
1895         check to see if they're in the parent's pending recreation list,
1896         and if so, we recreate.  This removes all dependency on ordering
1897         from the code and fixes the initial MonoCalendar upgrade dialog.
1898         
1899 2006-09-26  Jackson Harper  <jackson@ximian.com>
1900
1901         * TextControl.cs: Use the Line to get the length of the line,
1902         since soft line breaks can change the end line.
1903
1904 2006-09-26  Chris Toshok  <toshok@ximian.com>
1905
1906         * Control.cs (ControlCollection.AddImplicit): don't add the
1907         control again if it's already in one of our lists.  This keeps us
1908         from adding controls over and over again for comboboxes when their
1909         handle gets recreated (as the combobox adds implicit controls in
1910         OnHandleCreated).  Fixes the X11 errors in bug #79480.
1911
1912 2006-09-26  Jackson Harper  <jackson@ximian.com>
1913
1914         * TextControl.cs: When deleting characters make sure that any
1915         orphaned zero lengthed tags get deleted.
1916         - Fix ToString for zero lengthed tags.
1917
1918 2006-09-25  Jackson Harper  <jackson@ximian.com>
1919
1920         * TextControl.cs: When getting a tag at the location there can be
1921         multiple tags at the same spot, these are 0-lengthed tags that
1922         appear when extra formatting has been stuck in a location.  We
1923         need to pull out the last of these 0 lengthed tags.
1924
1925 2006-09-25  Jackson Harper  <jackson@ximian.com>
1926
1927         * TextControl.cs: Fix print out in debug method.
1928         * TextBoxBase.cs: When text is set bail if we are setting to the
1929         previous value.
1930         
1931 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
1932
1933         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
1934           It is now possible to change the selected index in a FontXXXListBox
1935           with the up and down arrow keys from the FontXXXTextBoxes.
1936           Also, send the FontXXXTextBox mouse wheel event to the corresponding
1937           FontXXXListBoxes to match ms.
1938
1939 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
1940
1941         * SystemInformation.cs: Return a clone of the theme's MenuFont because
1942         anyone can dispose it, anytime. All other properties returns enums, 
1943         structs or basic types so they don't need such tricks.
1944
1945 2006-09-22  Jackson Harper  <jackson@ximian.com>
1946
1947         * XplatUI.cs:
1948         * XplatUIWin32.cs:
1949         * Clipboard.cs:
1950         * DataFormats.cs:
1951         * XplatUIOSX.cs:
1952         * XplatUIDriver.cs: Update interface to add a primary selection
1953         flag, so the driver can use the primary selection buffer if
1954         needed.
1955         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
1956
1957         * RichTextBox.cs: We need to supply the data object to paste now
1958         (so we can choose to supply CLIPBOARD or PRIMARY).
1959         * TextBoxBase.cs: Supply data object to paste (see above).
1960         - Middle click uses the primary selection data object.
1961         
1962 2006-09-21  Chris Toshok  <toshok@ximian.com>
1963
1964         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
1965         of SetWMStyles.  It's still a rat's nest and is largely
1966         order-dependent which I dislike immensely.  This also fixes the X
1967         button disappearing from toplevel forms.
1968
1969 2006-09-21  Mike Kestner <mkestner@novell.com>
1970
1971         * ListBox.cs: move Jordi's click/dblclick raising code to the
1972         mouse up handler.
1973
1974 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
1975
1976         * ListBox.cs: Fixes 79450
1977
1978 2006-09-21  Mike Kestner <mkestner@novell.com>
1979
1980         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
1981         to deal with people updating the TreeNodeCollection after the tree
1982         is disposed.  "Fixes" 79330.
1983
1984 2006-09-20  Jackson Harper <jackson@ximian.com>
1985
1986         * TextControl.cs: Push the cursor record onto the undo stack
1987         before the delete action. This fixes 78651.
1988
1989 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
1990
1991         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
1992         CreateParams. Fixes 79329.
1993
1994 2006-09-19  Chris Toshok  <toshok@ximian.com>
1995
1996         * XplatUIX11.cs: a couple of blanket code massage passes to clean
1997         things up a bit.  First, get rid of the NetAtoms array (and the NA
1998         enum), and just embed the atoms as static fields.  Also, add a
1999         couple of functions (StyleSet and ExStyleSet) to clean up all the
2000         bitmask testing of styles.
2001
2002         * X11Structs.cs: remove the NA enum, not needed anymore.
2003         
2004 2006-09-19  Chris Toshok  <toshok@ximian.com>
2005
2006         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
2007         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
2008         added cleanup to get MessageBox titles appearing again, which were
2009         broken by my earlier fix for caption-less/ControlBox-less windows.
2010
2011 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
2012
2013         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
2014           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
2015           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
2016           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
2017           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
2018           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
2019           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
2020           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
2021           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
2022           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
2023           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
2024             Inital import.
2025         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
2026           ToolStripButton.cs: Stubs needed for above.
2027         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
2028
2029 2006-09-15  Chris Toshok  <toshok@ximian.com>
2030
2031         * XplatUIX11.cs:
2032         - make the MessageQueues hashtable Synchronized.
2033         
2034         - SendMessage: if the Hwnd is owned by a different thread, use the
2035         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
2036         thread.  Fixes bug #79201.
2037
2038 2006-09-15  Chris Toshok  <toshok@ximian.com>
2039
2040         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
2041         ControlBox == false, we disallow maximize/minimize/close.  If the
2042         form Caption is "" we also disallow move (and get rid of the Title
2043         decoration).  Unfortunately, regardless of how things are set,
2044         we're stuck with the Title and WM menu.
2045
2046 2006-09-15  Chris Toshok  <toshok@ximian.com>
2047
2048         * Application.cs: add locking around the static message_filters
2049         ArrayList, part of #79196.
2050
2051 2006-09-15  Chris Toshok  <toshok@ximian.com>
2052
2053         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
2054         Form.ControlBox == false, the window has no titlebar nor resize
2055         handles.  fixes bug #79368.
2056
2057 2006-09-15  Chris Toshok  <toshok@ximian.com>
2058
2059         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
2060         >= 0.  Fixes bug #79370.
2061
2062 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
2063         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
2064         * Control.cs:
2065             Add properties: LayoutEngine, Margin, DefaultMargin.
2066             Add method: GetPreferredSize.
2067             Move layout logic from PerformLayout to layout engines. 
2068
2069 2006-09-13  Chris Toshok  <toshok@ximian.com>
2070
2071         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
2072         fix for #79326 broke #78718, so this change addresses that.
2073
2074         - in SendWMDestroyMessages remove the call to
2075         CleanupCachedWindows, since we might be recreating the control and
2076         need to maintain the references to right Hwnd handles.  Also, set
2077         the zombie flag to true for each of the children in the hierarchy
2078         instead of calling hwnd.Dispose.  This will cause GetMessage to
2079         ignore all events for the window except for DestroyNotify.
2080
2081         - In GetMessage, ignore messages except for DestroyNotify for
2082         zombie hwnds.
2083         
2084         * Control.cs: revert the is_recreating fix from the last
2085         ChangeLog.  It's definitely "right", but it breaks switching from
2086         an MDI form to a non-MDI form.  Will need to revisit that.
2087
2088         * Hwnd.cs: add a zombie flag, which means "the
2089         client_window/whole_window handles are invalid, but we're waiting
2090         for the DestroyNotify event to come in for them".  Set the flag to
2091         false explicitly if setting WholeWindow/ClientWindow, and also
2092         when Disposing.
2093         
2094 2006-09-13  Chris Toshok  <toshok@ximian.com>
2095
2096         * XplatUIX11.cs: rework window destruction slightly.
2097
2098         - when destroying the windows associated with a control, we don't
2099         need 2 separate XDestroyWindow calls.  Just the one for the
2100         whole_window (or for client_window if whole_window is somehow
2101         IntPtr.Zero -- can this happen?) is enough.
2102
2103         - reworked SendWMDestroyMessages slightly, so we always dispose
2104         the child control hwnd's after sending the messages.
2105         
2106         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
2107         the two places it was used (one was even using hwnd.Handle and the
2108         other hwnd.client_window.  ugh), adding another call in
2109         SendWMDestroyMessages.  We need this new call because now the
2110         DestroyNotify events in the queue will be ignored for the child
2111         controls (as their hwnd's were disposed, and the window id's
2112         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
2113
2114         - this fixes bug #79326.
2115
2116 2006-09-13  Chris Toshok  <toshok@ximian.com>
2117
2118         * Control.cs: don't always set is_recreating to false at the end
2119         of RecreateHandle, since sometimes we're not done (and won't be
2120         until WndProc handles the WM_DESTROY message).  Also, set
2121         is_recreating to false in the WM_DESTROY handling code.  Part of
2122         the fix for bug #79326.
2123
2124 2006-09-13  Miguel de Icaza  <miguel@novell.com>
2125
2126         * X11DesktopColors.cs: Start the droppage of debugging messages.
2127
2128         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
2129
2130 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
2131
2132         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
2133
2134 2006-09-12  Chris Toshok  <toshok@ximian.com>
2135
2136         * DataGrid.cs (get_ListManager): if the list_manager is null, try
2137         to create it using SetDataSource.  Fixes bug #79151.
2138
2139 2006-09-11  Chris Toshok  <toshok@ximian.com>
2140
2141         * XEventQueue.cs: add a DispatchIdle property.
2142
2143         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
2144         either the queue is null, or the queue has DispatchIdle set to
2145         true.
2146         (DoEvents): set queue.DispatchIdle to false around the
2147         peek/translate/dispatch message loop in this method.  This keeps
2148         Application.Doevents from emitting idle events.  Part of the fix
2149         for #78823.
2150
2151 2006-09-11  Chris Toshok  <toshok@ximian.com>
2152
2153         * DataGrid.cs (set_DataSource): make this work for both the
2154         winforms/datagrid test and ReportBuilder.  It seems as though when
2155         we've created a ListManager (or maybe it's if we have a
2156         BindingContext?), when we set the DataSource it clears the
2157         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
2158         #79333.
2159
2160 2006-09-11  Chris Toshok  <toshok@ximian.com>
2161
2162         * XplatUIX11.cs: deal with queue being null, which happens in all
2163         the Clipboard functions.  Fixes one of the two problems mentioned
2164         in #78612.
2165
2166 2006-09-11  Chris Toshok  <toshok@ximian.com>
2167
2168         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
2169         button on various spots (including outside the menu) works closer
2170         to MS, and doesn't crash.  Fixes #79343.
2171
2172 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
2173
2174         * ListView.cs: Do not initialize item_sorter in init. To match MS,
2175         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
2176         and the internal comparer is set. When a new ListViewItemSorter is set,
2177         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
2178         was specified. No further processing is necessary if SortOrder is set
2179         to it's current value. If Sorting is modified to None, and View is
2180         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
2181         (either custom or our internal ItemComparer) to null, on 1.0 profile
2182         only set item_sorter to null if its our internal IComparer. If Sorting
2183         is modified to Ascending or Descending, then use our internal IComparer
2184         if none is set, and if the current IComparer is our internal one then:
2185         on 2.0 profile always replace it with one for new Sorting, and on 1.0
2186         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
2187         Enum.IsDefined to verify whether a valid View value is specified in
2188         its setter. Automatically sort listview items when listview is
2189         created. In Sort, do nothing if ListView is not yet created, or if
2190         no item_sorter is set (no Sorting was set, Sorting was explicitly set
2191         to None or ListViewItemSorter was set to null). Added Sort overload
2192         taking a bool to indicate whether the ListView should be redrawn when
2193         items are sorted (we use this in ListViewItemCollection to avoid double
2194         redraws). Modified our internal IComparer to take the sort order into
2195         account. In Add and AddRange methods of ListViewItemCollection, also
2196         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
2197         view), but use overload with noredraw option to avoid double redraw.
2198         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
2199         true when View is Tile, and do the same when attempting to set View to
2200         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
2201         for selected/checked indices, as it involves overhead when sorting is
2202         done while these collections are not used all that often. Instead
2203         we'll build the indices on demand. Modified IList implementation of
2204         CheckedIndexCollection to use public methods if object is int.
2205         Modified CheckedListViewItemCollection to hide checked items if
2206         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
2207         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
2208         IList implementation in SelectedIndexCollection to use public methods
2209         if object is int. Modified SelectedListViewItemCollection to hide
2210         selected items if listview is not yet created.
2211         * ListViewItem.cs: CheckedIndices list no longer needs to be
2212         maintained separately (see ListView changes). Also clone font, fixes
2213         test failure.
2214
2215 2006-09-11  Mike Kestner  <mkestner@novell.com>
2216
2217         * ComboBox.cs: if we are updating the contents of the currently
2218         selected index, refresh the control or the textbox selection.
2219         [Fixes #79066]
2220
2221 2006-09-11  Mike Kestner  <mkestner@novell.com>
2222
2223         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
2224         the 'specified' logic has been moved there.  This seems like a bug 
2225         in Control.cs, since our current SetBoundsCore completely ignores 
2226         the specified parameter.  Peter's commit seems to indicate that is 
2227         the way the MS control implementation works.  [Fixes #79325]
2228
2229 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
2230
2231         * XplatUI.cs: Set default_class_name to be composed
2232         of current domain id. This allows MWF to be loaded in multiple
2233         domains on Win32.
2234
2235 2006-09-09  Miguel de Icaza  <miguel@novell.com>
2236
2237         * X11Keyboard.cs: If we are unable to obtain the input method, do
2238         not call CreateXic to create the input context.   Should fix
2239         #78944/79276.
2240
2241 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
2242
2243         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
2244           Simplified gnome support by adding more pinvokes to get the
2245           icon for a file or mime type.
2246
2247 2006-09-08  Jackson Harper  <jackson@ximian.com>
2248
2249         * MenuAPI.cs: Deslect popup context menu items before closing the
2250         window, so that you don't see the previously selected item
2251         selected when you reopen the menu.
2252         * TextControl.cs: Update the cursor position even if we don't have
2253         focus.  This fixes typing in things like the ComboBox.  I'm not
2254         totally sure we should always set the visibility if we don't have
2255         focus, but couldn't find any corner cases where the cursor showed
2256         up when it shouldn't.
2257
2258 2006-09-08  Chris Toshok  <toshok@ximian.com>
2259
2260         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
2261         our arrays are length 256.  & 0xff before indexing.  Fixes the
2262         crash in bug #78077.
2263         
2264 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2265
2266         * ThemeWin32Classic.cs: 
2267         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
2268         is true. Handle that check box too.
2269
2270 2006-09-07  Chris Toshok  <toshok@ximian.com>
2271
2272         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
2273         79244.
2274
2275 2006-09-07  Chris Toshok  <toshok@ximian.com>
2276
2277         * Control.cs: in set_BackColor only do the work if
2278         background_color != value.
2279
2280         * XplatUIX11.cs: move the clearing of invalid areas (both client
2281         and nc) to the same block of code where we set (nc_)expose_pending
2282         to false.  That is, move it from PaintEventEnd to PaintEventStart,
2283         so things that cause invalidates from within OnPaint will trigger
2284         another call to OnPaint.  Fixes bug #79262.
2285
2286 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
2287
2288         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
2289         * FileDialog.cs: Fix typo
2290
2291 2006-09-07  Jackson Harper  <jackson@ximian.com>
2292
2293         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
2294         for tab pages if they have any.
2295
2296 2006-09-06  Mike Kestner  <mkestner@novell.com>
2297
2298         * Splitter.cs: use the "current" rect when finishing drag handle
2299         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
2300
2301 2006-09-06  Mike Kestner  <mkestner@novell.com>
2302
2303         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
2304         support offset splitters. [Fixes #79298]
2305
2306 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
2307
2308         * Mime.cs: Fixed a bug that could override the global mime type
2309           result.
2310
2311 2006-09-05  Jackson Harper  <jackson@ximian.com>
2312
2313         * TabControl.cs: Better calculation method for setting the slider
2314         pos. Prevents crashes on really wide tabs.
2315         - Draw Image on tab pages if an image list is used.
2316
2317 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2318
2319         * MonthCalendar.cs: When Font changes, the Size should be
2320         updated to fit the new font's space requirements.
2321
2322 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
2323
2324         * ListBox.cs: If the items are cleared with Items.Clear set
2325           top_index to 0.
2326
2327 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2328
2329         * MonthCalendar.cs: Handle arrow keys as input keys. Also
2330         fire DateChanged event instead of DateSelected event when
2331         the date was changed by keyboard interaction.
2332
2333 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2334
2335         * DateTimePicker.cs: Handle DateChanged for the associated
2336         month_calendar control, and set month_calendar.Font from 
2337         OnFontChanged method, as well as resize the height of the
2338         control when needed. Make PreferredHeight proportional.
2339
2340 2006-09-01  Chris Toshok  <toshok@ximian.com>
2341
2342         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
2343         properties.
2344
2345         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
2346
2347 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
2348
2349         * FileDialog.cs: Set ClientSize instead of window size, to allow space
2350           for decorations (Fixes #79219)
2351
2352 2006-09-01  Mike Kestner  <mkestner@novell.com>
2353
2354         * ComboBox.cs: first stab at sorting plus some selection handling
2355         fixes to bring us more in line with MS behavior.  Also switches back
2356         to index based selection.  Alternative patches for index-based 
2357         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
2358         and latency@gmx.de on bug 78848.  I assume they were similar to this
2359         code I've had simmering in my tree forever.
2360         [Fixes #78848]
2361
2362 2006-09-01  Chris Toshok  <toshok@ximian.com>
2363
2364         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
2365         when setting list position guard against ending up with a -1 index
2366         (the other part of the fix for #78812).  Should probably make sure
2367         we don't need the analogous fix in the ItemDeleted case.
2368
2369         * DataGrid.cs:
2370         - in SetDataSource, work around the fact that the way
2371         OnBindingContextChanged is invoked will cause us to re-enter this
2372         method.  I'll remove the hack once I investigate
2373         OnBindingContextChanged.
2374
2375         - fix the logic in set_DataSource and set_DataMember (basically
2376         what to do if the other of the two is null.)
2377         
2378         - in OnListManagerItemChanged, we need to take into account the
2379         edit row when deciding whether or not to call RecreateDataGridRows
2380         (part of the fix for #78812).
2381
2382 2006-09-01  Jackson Harper  <jackson@ximian.com>
2383
2384         * Splitter.cs: Don't do anything if there is no control to affect
2385         (prevents us from crashing in weird tet cases).
2386         * TreeView.cs: Bounding box for the mouse movement reverting
2387         focus/selection back to previously selected node.  This matches
2388         MS, and makes the tree a lot more useable.
2389         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
2390         use clipping so they are not drawn.  This fixes when the control
2391         is set to have a transparent background, or if it was over an
2392         image.
2393
2394 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
2395
2396         * MimeIcon.cs: Improved handling for reading default icons when
2397           using gnome (2.16 made it necessary). Check and read svg icons
2398           first, then 48x48 and then 32x32 icons.
2399
2400 2006-08-31  Chris Toshok  <toshok@ximian.com>
2401
2402         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
2403         visible.
2404
2405         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
2406         ProcessKeyPreview.  Fixes part of #77806.
2407
2408         * DataGrid.cs: big patch.
2409
2410         - revert the queueing up of DataSource/DataMember if inside
2411         BeginInit/EndInit calls.  That's not the way the datagrid achieves
2412         its delayed databinding.  Instead, call SetDataSource in
2413         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
2414         #78811.
2415
2416         - Also, it wasn't mentioned in #78811, but the test case exhibits
2417         behavior that was lacking in our datagrid implementation - Columns
2418         that have mapping names that don't exist in the datasource's
2419         properties aren't shown.  Yuck.  To fix this I added the bound
2420         field to the column style, and basically any calculation to figure
2421         out anything about columns uses a loop to find the bound columns.
2422         still need to investigate if I can cache an array of the bound
2423         columns or if the indices must be the same.
2424
2425         - When setting CurrentCell, we no longer abort if the cell being
2426         edited was in the add row.  This fixes the other part of #77806.
2427
2428         - The new code also fixes #78807.
2429         
2430         * ThemeWin32Classic.cs: perpetrate the same disgusting
2431         column.bound field hack, and only render bound fields.
2432
2433 2006-08-31  Chris Toshok  <toshok@ximian.com>
2434
2435         * DataGridColumnStyle.cs: add bound field.  this field is true if
2436         the datasource has a property corresponding to the mapping name.
2437
2438         * DataGridTableStyle.cs: set the bound field on the column styles
2439         depending on whether or not we have a column for that property.
2440
2441 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
2442
2443         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
2444           splitter control (fixes #79228)
2445
2446 2006-08-31  Chris Toshok  <toshok@ximian.com>
2447
2448         * DataGridColumnStyle.cs: we need to delay the assignment of
2449         property descriptor until the last possible moment due to the lazy
2450         databinding stuff in the datagrid.  Also, fix the exceptions
2451         thrown by CheckValidDataSource to match MS.
2452
2453 2006-08-31  Jackson Harper  <jackson@ximian.com>
2454
2455         * Form.cs: When activated select the active control, if there is
2456         no active control, we select the first control.
2457         * XplatUIX11.cs: If there is no focus control when we get a
2458         FocusIn event, find the toplevel form and activate it.  This
2459         occurs when you popup a window, it becomes the focus window, then
2460         you close that window, giving focus back to the main window.
2461
2462 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2463
2464         * MonthCalendar.cs: 
2465         * ThemeWin32Classic.cs: Cache Font in bold style, as well
2466         as StringFormat with Center alignments in MonthCalendar,
2467         instead of creating new ones when drawing the control. 
2468         Also, draw the month name in bold style.
2469
2470 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
2471
2472         * Control.cs:
2473           - PerformLayout(): It would seem MS performs the fill even if the 
2474             control is not visible (part of #79218 fix)
2475           - ResetBackColor(): Use the setter to reset the color, to allow
2476             overriders to catch the change.
2477         * Form.cs:
2478           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
2479           - CreateHandle(): dito (part of $79218 fix)
2480           - Don't set an icon if we have a dialog
2481         * ScrollableControl.cs:
2482           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
2483           - ScrollIntoView(): No need to scroll if control is already visible
2484             (resolves fixme and fixes #79218)
2485
2486 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2487
2488         * MonthCalendar.cs: Change proportions in SingleMonthSize
2489         to match the aspect of the original control.
2490
2491 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
2492
2493         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
2494           get updated when they get maximized.
2495
2496 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
2497
2498         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
2499
2500 2006-08-29  Chris Toshok  <toshok@ximian.com>
2501
2502         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
2503
2504 2006-08-29  Jackson Harper  <jackson@ximian.com>
2505
2506         * TreeView.cs: Need to track selected node and highlighted node,
2507         they aren't always the same thing, when the mouse is down on a
2508         node it is hilighted, but not selected yet.
2509         - Do the HideSelection stuff right
2510         - Need to focus on rbutton mouse down. And redraw selection when
2511         right click is mouse upped.
2512
2513 2006-08-29  Mike Kestner  <mkestner@novell.com>
2514
2515         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
2516         when SubItems.Count < Columns.Count.  [Fixes #79167]
2517
2518 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
2519
2520         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
2521
2522 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
2523
2524         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
2525           from X. Only send based on ConfigureNotify if we don't have the
2526           correct location in hwnd (if the window manager moved us)
2527
2528 2006-08-28  Mike Kestner  <mkestner@novell.com>
2529
2530         * ListView.cs: remove a TODO. 
2531         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
2532         [Fixes ListView part of #79166]
2533
2534 2006-08-28  Mike Kestner  <mkestner@novell.com>
2535
2536         * ListView.cs: move wheel handler to parent since it is focused
2537         instead of the item_control now.  [Fixes #79177]
2538
2539 2006-08-28  Mike Kestner  <mkestner@novell.com>
2540
2541         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
2542         when the control is focused. [Fixes #79171]
2543
2544 2006-08-28  Mike Kestner  <mkestner@novell.com>
2545
2546         * ListView.cs: size the item and header controls for empty and
2547         unscrollable views.
2548         * ThemeWin32Classic.cs: draw disabled backgrounds.
2549         [Fixes #79187]
2550
2551 2006-08-28  Chris Toshok  <toshok@ximian.com>
2552
2553         * Form.cs: remove unused "active_form" static field.
2554
2555         * Hwnd.cs: lock around accesses to static windows collection.
2556
2557         * Application.cs: lock threads in Exit ().
2558
2559 2006-08-28  Chris Toshok  <toshok@ximian.com>
2560
2561         * NativeWindow.cs: lock around accesses to window_collection.
2562         
2563 2006-08-28  Chris Toshok  <toshok@ximian.com>
2564
2565         * Control.cs: err, fix this the right way, by locking on controls
2566         when using it.  not by making it synchronized.
2567
2568 2006-08-28  Chris Toshok  <toshok@ximian.com>
2569
2570         * Control.cs: make the static "controls" field synchronized, as it
2571         gets updated from multiple threads.
2572
2573 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
2574
2575         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
2576           Prevent other threads from exiting when calling thread sets quit state.
2577         * XEventQueue.cs: Added PostQuitState property
2578
2579 2006-08-27  Chris Toshok  <toshok@ximian.com>
2580
2581         * AsyncMethodData.cs: add a slot for the window handle.
2582
2583         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
2584         window (the destination control's window, not the foster window).
2585
2586         * Control.cs (BeginInvokeInternal): store the window's handle in
2587         the AsyncMethodData.
2588         
2589
2590 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
2591
2592         * XplatUIX11.cs:
2593           - PostQuitMessage: Removed resetting S.D display handle, we might have
2594             another loop started after calling PostQuitMessage (Fixes #79119)
2595           - Created destructor to reset S.D handle
2596
2597 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
2598
2599         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
2600
2601 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
2602
2603         * TextControl.cs (Insert): Update the caret position even if we don't
2604           have a handle yet, just don't call the driver in that case.
2605         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
2606           to the end of the new selection text (Fixes #79184)
2607
2608 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
2609
2610         * Form.cs (Activate): Only activate if the handle is created)
2611         * Control.c:
2612           - Mark window as invisible when it's disposed
2613           - Check if window handle is created when setting window visible, 
2614             instead of relying just on the is_created variable
2615           - Check if object is disposed when creating the control (Fixes #79155)
2616
2617 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
2618
2619         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
2620           when allowing layout again. Otherwise we re-generate the anchoring 
2621           distance to the border again and actually alter what the user wanted
2622           This is ugly, it'd be better if we used DisplayRectangle instead of
2623           ClientRectangle for Control.UpdateDistances, but that causes us to
2624           have other problems (initial anchoring positons would be wrong)
2625           (Fixes #78835)
2626
2627 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
2628
2629         * Control.cs:
2630           - The size and location setters shouldn't go directly to 
2631             SetBoundsCore, but to SetBounds, which triggers layout on the
2632             parent, then calls SetBoundsCore. (Related to fix for #78835)
2633           - SetBounds: Moved actual location update code into this function
2634             from SetBoundsCore, to match MS. Added call to PerformLayout if
2635             we have a parent (to trigger resizing of anchored parents if the 
2636             child size has changed (see testcase for #78835) 
2637         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
2638           new control code
2639         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
2640
2641 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
2642
2643         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
2644           System.Drawing when a toplevel window gets closed; there might
2645           be other toplevel windows belonging to the same app (Fixes #78052)
2646
2647 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
2648
2649         * FileDialog.cs: After reading FileDialog settings from mwf_config
2650           use Desktop prefix only if a real folder doesn't exist anymore.
2651         * FontDialog.cs: Added char sets.
2652           It is now possible to select the font, size or style with the
2653           textboxes.
2654
2655 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
2656
2657         * PrintPreviewDialog.cs: Use assembly name constants.
2658
2659 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
2660
2661         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
2662           scrollbar from whacking it's buttons)
2663
2664 2006-08-24  Chris Toshok  <toshok@ximian.com>
2665
2666         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
2667         in this patch (aggregating setting Left/Top/Width/Height to
2668         setting Bounds on the scrollbars), but the crux of the fix is in
2669         Recalculate, where we scroll by the remaining scroll_position if
2670         we're hiding a scrollbar.  The 2*$5 reward in the comment is
2671         serious.
2672
2673 2006-08-24  Jackson Harper  <jackson@ximian.com>
2674
2675         * MdiClient.cs:
2676         * MdiWindowManager.cs: If the form is made a non-mdi window we
2677         need to remove the form closed event so that closing forms works
2678         correctly.
2679
2680 2006-08-24  Jackson Harper  <jackson@ximian.com>
2681
2682         * Control.cs: Make IsRecreating internal so that the driver can
2683         check it
2684         - Temporarily remove the Hide when controls are removed, its
2685         making a whole bunch of things not work because visibility isn't
2686         getting reset elsewhere correctly
2687         * Form.cs: Need to do a full handle recreation when the mdi parent
2688         is set.
2689         * XplatUIX11.cs: If we are recreating handles don't dispose the
2690         HWNDs.  What was happening is the handles were being recreated in
2691         SendWMDestroyMessages, but then flow continued on in that method
2692         and destroyed the new handles.
2693
2694 2006-08-23  Jackson Harper  <jackson@ximian.com>
2695
2696         * Form.cs: MdiClient is always at the back of the bus
2697         * Control.cs: When the order of items in the collection is changed
2698         we need to reset the all_controls array
2699         - do the same sorta setup thats done when adding a control when a
2700         control is set on the collection.
2701
2702 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
2703
2704         * TextBoxBase.cs (get_Text): Return an empty array if our document
2705           is empty (fixes #79052)
2706
2707 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
2708
2709         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
2710           on WM_SYSCHAR messages (fixes #79053)
2711
2712 2006-08-23  Chris Toshok  <toshok@ximian.com>
2713
2714         * DataGrid.cs: fix flickering when scrolling vertically.
2715
2716 2006-08-23  Chris Toshok  <toshok@ximian.com>
2717
2718         * DataGrid.cs (EndEdit): only invalidate the row header when we
2719         need to.
2720
2721 2006-08-23  Chris Toshok  <toshok@ximian.com>
2722
2723         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
2724         methods.  fixes the flicker when scrolling around.
2725
2726 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
2727
2728         * FileDialog.cs: Making sure the control is created before we get a 
2729           chance to use it with BeginInvoke (Fixes #79096)
2730
2731 2006-08-23  Chris Toshok  <toshok@ximian.com>
2732
2733         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
2734         width to use when painting the rows.
2735
2736 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
2737
2738         * TextBoxBase.cs:
2739           - Throw ArgumentException if a negative value is passed to SelectionLength
2740           - Update the selection end if start is moved. end needs to be always
2741             after start. (Fixes #79095)
2742           - Track selection length; MS keeps the selection length even if start
2743             is changed; reset on all other operations affection selection
2744
2745 2006-08-22  Jackson Harper  <jackson@ximian.com>
2746
2747         * TreeView.cs: Make sure both scrollbars get displayed and sized
2748         correctly when the other bar is visible.
2749         - Use the original clip rectangle for checking if the area between
2750         the two scrollbars is visible, not the viewport adjusted clipping
2751         rectangle.
2752
2753 2006-08-22  Jackson Harper  <jackson@ximian.com>
2754
2755         * Binding.cs: We don't use IsBinding because it requires the
2756         control to be created, which really shouldn't be necessary just to
2757         set a property on the control.
2758
2759 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2760
2761         * ComboBox.cs: Some CB.ObjectCollection methods must throw
2762         ArgumentNullReferenceException when the argument is null.
2763
2764 2006-08-21  Jackson Harper  <jackson@ximian.com>
2765
2766         * Timer.cs: Track the thread that the timer is started in (NOT
2767         CREATED), this way messages for it will only be triggered on its
2768         queue.
2769         * XEventQueue.cs: Track the timers here, this makes timers per
2770         thread, like MS.
2771         * XplatUIX11.cs: The timers are moved to the XEventQueue.
2772
2773 2006-08-19  Chris Toshok  <toshok@ximian.com>
2774
2775         * XplatUIX11.cs: after further communication with pdb, we get the
2776         best of both worlds.  SetZOrder working for un-Mapped windows, and
2777         no X errors for un-mapped windows.
2778
2779 2006-08-19  Chris Toshok  <toshok@ximian.com>
2780
2781         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
2782         as it was causing pdn toolbars to not have the correct stacking.
2783
2784 2006-08-18  Mike Kestner  <mkestner@novell.com> 
2785
2786         * ListView.cs : guard against negative ClientArea.Width in scrollbar
2787         calculation.  Not sure why control should ever be setting a negative
2788         width though.  Fixes #78931.
2789
2790 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2791
2792         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
2793         null items in ObjectCollection class.
2794         * ListBox.cs.: Likewise.
2795
2796 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
2797
2798         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
2799           as the base method in ThemeWin32Classic should work fine.
2800           Fixed bug #78607.
2801
2802 2006-08-18  Jackson Harper  <jackson@ximian.com>
2803
2804         * Binding.cs: When validating if the value entered doesn't convert
2805         properly reset to the old value.
2806         * RadioButton.cs: Don't fire click when we get focus.
2807
2808 2006-08-18  Jackson Harper  <jackson@ximian.com>
2809
2810         * FileDialog.cs: Paint the selection on the directory combobox the
2811         same way as on MS. 
2812
2813 2006-08-17  Jackson Harper  <jackson@ximian.com>
2814
2815         * ErrorProvider.cs: Don't allow the error control to be selected.
2816         * Control.cs: Don't send the SetFocus messages, the control
2817         activation will do this, and if we do it blindly here validation
2818         does not work.
2819
2820 2006-08-17  Jackson Harper  <jackson@ximian.com>
2821
2822         * Control.cs:
2823         * ContainerControl.cs: Make validation events fire in the correct
2824         order.  TODO: For some reason the first validation event is not
2825         getting fired.
2826
2827 2006-08-17  Mike Kestner  <mkestner@novell.com> 
2828
2829         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
2830
2831 2006-08-17  Mike Kestner  <mkestner@novell.com> 
2832
2833         * ComboBox.cs : implement scroll wheel support for popped-down
2834         state. Fixes #78945. 
2835
2836 2006-08-17  Jackson Harper  <jackson@ximian.com>
2837
2838         * TreeView.cs: Specify treeview actions (old patch that didn't get
2839         committed for some reason).
2840         - Don't let the mouse wheel scroll us too far.  Just want to make
2841         the bottom node visible, not scroll it all the ways to the top.
2842
2843 2006-08-17  Jackson Harper  <jackson@ximian.com>
2844
2845         * XplatUIX11.cs: Mouse wheel events go to the focused window.
2846
2847 2006-08-17  Mike Kestner  <mkestner@novell.com> 
2848
2849         * ComboBox.cs : don't do mouseover selection in simple mode.
2850
2851 2006-08-16  Jackson Harper  <jackson@ximian.com>
2852
2853         * Form.cs: Fire the closing events for all the mdi child windows
2854         when a window is closed.  If the cancel args are set to true, the
2855         main window still gets the event fired, but it doesn't not close.
2856         * MdiWindowManager.cs: Do this closing cleanup in a Closed
2857         handler, instead of when the button is clicked, so cancelling the
2858         close works correctly.
2859         * ComboBox.cs: Send the mouse down to the scrollbar.
2860
2861 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2862
2863         * ListBox.cs: When passing 'null' to SelectedItem,
2864         set SelectedIndex to -1, to unselect items. This is the
2865         observed behaviour in .Net.
2866
2867 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
2868
2869         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
2870           MS flags saying there won't be any. (fixes #78800)
2871         * Control.cs (HandleClick): Made virtual
2872
2873 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
2874
2875         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
2876           cultures. Fixed bug #78399.
2877
2878 2006-08-16  Jackson Harper  <jackson@ximian.com>
2879
2880         * Form.cs: Use the MdiClients MdiChildren property to access
2881         MdiChildren instead of creating the array from the child controls.
2882         * MdiClient.cs: Maintain a separate array of the mdi children, so
2883         that insertion order is maintained when the Z-order is changed.
2884
2885 2006-08-16  Mike Kestner  <mkestner@novell.com> 
2886
2887         * ListView.cs : add an ItemComparer and default to it for sorting.
2888         Fixes #79076, but sorting needs a complete overhaul to be compat with
2889         MS.
2890
2891 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
2892
2893         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
2894
2895 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
2896
2897         * Hwnd.cs (Mapped): Properly traverse the tree
2898
2899 2006-08-15  Chris Toshok  <toshok@ximian.com>
2900
2901         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
2902         pass manager.Current.GetType() to ParseData.  It has to be the
2903         property type.  So, hold off doing the ParseData until we're in
2904         SetPropertyValue where we know the type.  This fixes the crash in
2905         #78821 but the textbox is still empty.
2906
2907 2006-08-15  Chris Toshok  <toshok@ximian.com>
2908
2909         * DataGrid.cs:
2910         - when we're scrolling, only call Edit() again if the
2911         current cell is still unobscured. Fixes bug #78927.
2912         - when handling mousedown on a cell, ensure the cell is visible
2913         before calling Edit.
2914         - remove the properties from DataGridRow, and remove the
2915         DataGridParentRow class altogether.
2916         
2917
2918 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
2919
2920         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
2921           fire OnTextChanged by ourselves. There's no point calling base,
2922           we don't set the base value anywhere else. Fixes #78773.
2923
2924 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2925
2926         * ListBox.cs: Call CollectionChanged when modifying
2927         an item from Items indexer, to update the actual items
2928         in the list box.
2929
2930 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2931
2932         * PrintDialog.cs: Small fixes for focus and a pair of checks,
2933         to match .Net behaviour.
2934
2935 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
2936
2937         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
2938
2939 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
2940
2941         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
2942
2943 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
2944
2945         * MessageBox.cs: Prevent potential NRE exception.
2946         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
2947
2948 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
2949
2950         * MessageBox.cs: Calculate the owner of a messagebox, also make
2951           it topmost. Fixes #78753
2952
2953 2006-08-14  Chris Toshok  <toshok@ximian.com>
2954
2955         * XplatUIX11.cs: A couple of fixes so that metacity will let us
2956         programmatically move windows.  first, set the PPosition hint as
2957         well as the USPosition hint.  Second include some code from pdb
2958         that sets the window type to NORMAL when we set the transient for
2959         hint.  This is because, in the absence of a window type, metacity
2960         thinks any window with TransientFor set is a dialog, and refuses
2961         to let us move it programmatically.  fascists.
2962
2963 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
2964
2965         * XplatUIX11.cs: When setting normal hints, take into consideration
2966           an different hints previously set so we don't delete them (fixes #78866)
2967
2968 2006-08-12  Chris Toshok  <toshok@ximian.com>
2969
2970         * ToolBarButton.cs: make Layout return a boolean, if something to
2971         do with the button's layout changed.
2972
2973         * ToolBar.cs:
2974         - add another parameter to Redraw, @force, which all existing
2975           calls set to true.
2976         - make the Layout function return a boolean which is true if the
2977           layout has actually changed.  Redraw now uses this (and @force)
2978           to determine when to invalidate.  At present the only place
2979           where @force can be false is the call from OnResize, when
2980           background_image == null.  So, resizing a toolbar when the
2981           layout doesn't change results in no drawing.
2982
2983 2006-08-12  Chris Toshok  <toshok@ximian.com>
2984
2985         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
2986         the VScrollBar and HScrollbar reversed.  oops.
2987
2988         * DataGrid.cs: fix the logic that assigns sizes to the implicit
2989         scrollbars.  we were assigning them twice (once in
2990         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
2991         therefore causing two scrollbar resizes (and redraws?) to happen
2992         per grid resize.
2993
2994 2006-08-12  Chris Toshok  <toshok@ximian.com>
2995
2996         * ToolBarButton.cs: redraw the entire button if the theme tells us
2997         to.
2998
2999         * Theme.cs: add ToolBarInvalidateEntireButton.
3000
3001         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
3002         buttons, just the border.
3003
3004         * ThemeNice.cs: redraw the entire toolbar button since we need to
3005         draw the highlight image.
3006
3007         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
3008         we need to redraw the entire button (not just the border).
3009
3010 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
3011
3012         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
3013           for vertical bars. Fixes the mismatches shown by #78513
3014
3015 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
3016
3017         * FileDialog.cs: If a saved/remembered path doesn't exist
3018           anymore, fall back to "Desktop".
3019
3020 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
3021
3022         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
3023           parent. It's apparently legal to not have one
3024         * XplatUIX11.cs:
3025           - SetZOrder: Don't try to set Z-Order on an unmapped window
3026           - CreateWindow: 0,0 are legal coordinates for a window. don't move
3027             it unless the coordinates are negative
3028
3029 2006-08-10  Mike Kestner  <mkestner@novell.com>
3030
3031         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
3032         when setting to null per msdn docs.  Fixes #78854.
3033
3034 2006-08-10  Chris Toshok  <toshok@ximian.com>
3035
3036         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
3037         flickering by setting a clip rectangle on the Graphics when we
3038         need to redraw just a particular menuitem.  Also, rename "OnClick"
3039         to "OnMouseDown" to reflect what it actually is.
3040         
3041         * Form.cs: track the OnMouseDown change.
3042
3043 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
3044
3045         * CommonDialog.cs: Properly inherit the CreateParams from the form
3046           and only change what we need. Fixes #78865
3047
3048 2006-08-10  Chris Toshok  <toshok@ximian.com>
3049
3050         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
3051         flickering in flat mode (and most of the flickering in general) by
3052         only invalidating the button border (and not the entire rectangle)
3053         when the state changes.  A couple of cases still flicker:
3054         ToggleButtons, and the dropdown arrow case when the user mouse
3055         ups.
3056
3057 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
3058
3059         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
3060           for german keyboards. Numlock state shouldn't affect the behaviour
3061           of the Del key. Fixes bug #78291.
3062
3063 2006-08-10  Chris Toshok  <toshok@ximian.com>
3064
3065         * ListControl.cs: remove the items.Clear line from BindDataItems,
3066         as this is the first thing done by both subclasses in their
3067         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
3068         passed -1, refresh the list.  This gets databinding working when
3069         the datasource is set on the list before the datasource is
3070         populated (as in wf-apps/ReportBuilder.)
3071
3072         * ComboBox.cs: remove the argument to BindDataItems.  This call
3073         should really go away, and be initiated by the ListControl code.
3074
3075         * ListBox.cs: same.
3076
3077 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
3078
3079         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
3080           if no data is in the document when the control is displayed
3081
3082 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
3083
3084         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
3085           yes (fixes #78806)
3086         * TextControl.cs: 
3087           - PositionCaret: Allow positioning of caret but don't call methods 
3088             requiring a handle if the window isn't created yet
3089           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
3090           - owner_HandleCreated: Don't position the caret, just update it's 
3091             location. User might have already set a different position
3092
3093 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
3094
3095         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
3096           windows. Screws up the returned coordinates for child windows. 
3097           Fixes #78825. I'm hoping this doesn't break something, since the
3098           code was explicitly put in 8 months ago, but no bug was attached.
3099           Menus still seem to work properly.
3100
3101 2006-08-08  Chris Toshok  <toshok@ximian.com>
3102
3103         * DataGrid.cs: make BeginInit/EndInit actually do what they're
3104         supposed to do - delay data binding until the EndInit call.  Also,
3105         make the table style collection's CollectionChangeAction.Refresh
3106         work properly.
3107
3108         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
3109         (with action = Refresh) when a consituent table's MappingName is
3110         changed.
3111
3112 2006-08-08  Chris Toshok  <toshok@ximian.com>
3113
3114         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
3115         Invalidate, since changing the text can change the size of the all
3116         toolbar buttons.
3117
3118 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
3119
3120         * Form.cs (AddOwnedForm): Still need to add the form to our listif
3121           we don't have it yet
3122
3123 2006-08-08  Chris Toshok  <toshok@ximian.com>
3124
3125         * PrintControllerWithStatusDialog.cs: don't .Close() the status
3126         dialog, as this causes X errors later on, since we actually
3127         destroy the window.  Instead, .Hide() it.
3128
3129 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
3130
3131         * ComboBox.cs: Added focus reflection for popup window
3132         * XplatUIX11.cs: 
3133           - Removed transient setting for non-app windows for now, not sure it
3134             was needed
3135           - Fixed logic checking if we have captions when deciding 
3136             override_redirect, WS_CAPTION is two bits and a 0 check was not
3137             sufficient
3138           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
3139             complicated
3140         * Form.cs: 
3141           - AddOwnedForm: Don't just add the form to the list, call the property
3142             to ensure the driver is informed about the ownership as well
3143           - CreateHandle: Set the TopMost status in the driver if we have an owner
3144         * XplatUI.cs: Fixed debug statement
3145
3146 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
3147         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
3148           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
3149           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
3150           TrackBarRenderer.cs: Make constructor private.
3151         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
3152         * ProfessionalColorTable.cs: Make properties virtual.
3153
3154 2006-08-06  Duncan Mak  <duncan@novell.com>
3155
3156         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
3157         is not changing.
3158
3159 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
3160         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
3161           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
3162           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
3163           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
3164           Initial import of new 2.0 classes.
3165
3166 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
3167         * Application.cs: Add 2.0 VisualStyles properties.
3168
3169 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
3170         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
3171           XplatUIX11.cs: Create property to allow access to existing private
3172           variable "themes_enabled"
3173
3174 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3175
3176         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
3177         file size, as otherwise our class libraries fail using windows. Fixes
3178         bug #78759.
3179
3180 2006-08-04  Jackson Harper  <jackson@ximian.com>
3181
3182         * Form.cs:
3183         * XplatUIX11.cs: Move the toolwindow window manager creation into
3184         the X11 driver, this way on win32 we can let windows create/handle
3185         the toolwindows.
3186
3187 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3188
3189         * PrintDialog.cs: Remove some redundant checks, add some others,
3190         clean some code, and move the focus to the text boxes when the
3191         values are incorrect.
3192
3193 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
3194
3195         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
3196
3197 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
3198
3199         * NumericUpDown.cs: Setting the Minimum and Maximum is now
3200           handled correctly. Fixes bug #79001.
3201
3202 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3203
3204         * PrintDialog.cs: The "Copies" numeric up down must have
3205         set the Minimum property to 1; only if the value is bigger
3206         than 1, activate "Collate" check box. This is the behaviour of .Net.
3207         Also modify the Document elements only if it is not null.
3208
3209 2006-08-03  Jackson Harper  <jackson@ximian.com>
3210
3211         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
3212         length. (We have a larger array then actual node count).
3213                 
3214 2006-08-03  Jackson Harper  <jackson@ximian.com>
3215
3216         * ComboBox.cs: Don't show selection by default.
3217         - The SelectAll isn't needed here, since the focus code should do
3218         that
3219         - DDL style lists to manual selection drawing, so when they
3220         get/lose focus they have to invalidate.
3221
3222 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
3223
3224         * TextBoxBase.cs: Don't always show all selections by default.
3225
3226 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
3227         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
3228           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
3229           Fixed various typos.
3230
3231 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
3232
3233         * Control.cs: Removing the controls in a ControlCollection with
3234           Clear now hides the controls as expected. Fixes bug #78804. 
3235
3236 2006-08-03  Jackson Harper  <jackson@ximian.com>
3237
3238         * Control.cs: Revert previous focus patch, it breaks reflector.
3239
3240 2006-08-03  Jackson Harper  <jackson@ximian.com>
3241
3242         * ComboBox.cs: Cleanup selection and focus with the combobox.
3243         This also eliminates some duplicated keyboard code, since now
3244         everything is handled by the main class.
3245         - Make list selection work on mouse up instead of down, to match
3246         MS.
3247
3248 2006-08-02  Jackson Harper  <jackson@ximian.com>
3249
3250         * Control.cs: Setting focus needs to go through the whole
3251         selection mechanism.
3252
3253 2006-08-02  Chris Toshok  <toshok@ximian.com>
3254
3255         * PrintPreviewDialog.cs: change MinimumSize to use
3256         base.MinimumSize so it works.
3257
3258 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
3259
3260         * TextControl.cs:
3261           - UpdateCaret: Added sanity check in case caret isn't defined yet
3262           - Line.Delete: Now updating selection and caret markers if we're
3263             transfering a node (Properly fixes #78323)
3264           - SetSelectionEnd: Added sanity check
3265         * TextBoxBase.cs: Removed broken attempt to fix #78323
3266
3267 2006-08-01  Chris Toshok  <toshok@ximian.com>
3268
3269         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
3270         Close() call is handled in Form, not here.
3271
3272 2006-08-01  Chris Toshok  <toshok@ximian.com>
3273
3274         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
3275         layout/rendering.
3276
3277         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
3278         for sizes < 100% zoom.  The code now aggressively attempts to keep
3279         from calling document.Print (), and tries not to use the scaling
3280         g.DrawImage whenever possible (it still does if you scale to >
3281         100%, since usually that involves huge images).
3282
3283         * PrintPreviewControl.cs: hook up the close button.
3284
3285 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
3286         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
3287           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
3288           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
3289           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
3290           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
3291           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
3292           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
3293           Removed [Serializable] for 2.0 Event Handlers.
3294
3295 2006-07-31  Jackson Harper  <jackson@ximian.com>
3296
3297         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
3298         * TextControl.cs: Uncomment out the body of this method.
3299
3300 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
3301
3302         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
3303           standard cursors.
3304
3305 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
3306
3307         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
3308           that embed TextBox and need selections visible even if textbox is not
3309           focused to enforce that behaviour.
3310         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
3311           selection drawing
3312
3313 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
3314
3315         * TextControl.cs:
3316           - Added new SetSelectionStart/SetSelectionEnd overloads
3317           - Fixed viewport width assignment to be accurate
3318           - Adjusted alignment line shift calculations to allow cursor on right
3319             aligned lines to be always visible at the right border (like MS)
3320         * TextBoxBase.cs:
3321           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
3322           - TextBoxBase_SizeChanged: recalculating canvas on size changes
3323           - CalculateScrollBars: Use ViewPort size instead of window size, to
3324             properly consider space occupied by the border and scrollbars 
3325             (Fixes #78661)
3326           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
3327             calculations; no longer leaves artifacts
3328           - CaretMoved: Adjusted window scrolling to match MS and fixed several
3329             calculation bugs (Still missing right/center align calculations)
3330
3331 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
3332
3333         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
3334           use of both scroll rect and clip rect, as they do the same.
3335
3336 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
3337
3338         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
3339           in the event handler (fixes #78912)
3340
3341 2006-07-31  Chris Toshok  <toshok@ximian.com>
3342
3343         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
3344         grid.ListManager.Count, since grid.ListManager might be null.
3345         This of course begs the question "why are we drawing rows for a
3346         grid with no list manager (and therefor no rows)?"  Fixes the
3347         crash in bug #78929.
3348
3349 2006-07-31  Chris Toshok  <toshok@ximian.com>
3350
3351         * RelatedPropertyManager.cs: Don't always chain up to the parent
3352         ctor.  instead, call SetDataSource if the parent's position is !=
3353         -1.  Fixes the crash in #78822.
3354
3355 2006-07-31  Chris Toshok  <toshok@ximian.com>
3356
3357         * DataGrid.cs (get_ListManager): use field instead of property
3358         accessors for datasource and datamember.
3359         (RowsCount): make internal again.
3360         (OnMouseDown): end edits before resizing columns/rows.
3361         (OnMouseUp): restart edits after resizing columns/rows.
3362
3363 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
3364
3365         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
3366           This fixes the situation where the last set cursor is displayed
3367           whenever the mouse is over scrollbars.
3368
3369 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3370
3371         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
3372         Document properties, as well as initial values.
3373
3374 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
3375
3376         * XplatUIWin32.cs (SetBorderStyle): Setting both border
3377           and ClientEdge results in a 3-pixel border, which is
3378           wrong.
3379
3380 2006-07-28  Jackson Harper  <jackson@ximian.com>
3381
3382         * TreeNodeCollection.cs: Fix the clear method.
3383         - Fix the Shrink also
3384
3385 2006-07-27  Jackson Harper  <jackson@ximian.com>
3386
3387         * TreeView.cs: Make sure the visible order is computed when we
3388         attempt to size the scrollbars (for trees that mess with the
3389         scrolling when they shouldn't.
3390         - Make sure to give the scrollbars valid values.
3391
3392 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
3393
3394         * XplatUIX11.cs: Move motion compression code to where it
3395           has less performance impact
3396
3397 2006-07-26  Jackson Harper  <jackson@ximian.com>
3398
3399         * UpDownBase.cs: When the control is selected make the child
3400         controls non selectable, so that a click on them won't do a
3401         focus/unfocus cycle.
3402         - Don't give focus to the text box when the spinner is selected.
3403         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
3404
3405 2006-07-26  Chris Toshok  <toshok@ximian.com>
3406
3407         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
3408         satisfied with this solution.  If the bitmaps are small, we should
3409         just cache them in the PrintPreviewDialog and draw them here.
3410         Also, the layout is broken for the 2-up and 3-up cases.
3411
3412         * Theme.cs: add PrintPReviewControlPaint.
3413
3414         * PrintPreviewDialog.cs: first pass implementation.
3415
3416         * PrintPreviewControl.cs: first pass implementation.  No
3417         scrollbars yet.
3418
3419         * PrintDialog.cs: only validate fields if that particular portion
3420         of the UI is enabled.  Also, set the document's controller to a
3421         PrintControllerWithStatusDialog wrapping the document's print
3422         controller.
3423
3424         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
3425         bring up a SaveFileDialog (i hope we don't want to match the
3426         behavior of the crappy windows file entry) and set the
3427         PrinterSettings.PrintFileName accordingly.
3428
3429 2006-07-26  Jackson Harper  <jackson@ximian.com>
3430
3431         * ContainerControl.cs: Add a field that disables auto selecting
3432         the next control in a container when the container is activated.
3433         * UpDownBase.cs: Don't select the text box when the up down is
3434         selected.
3435
3436 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
3437
3438         * XEventQueue.cs: Added methods for peeking (used for compression
3439           of successive events)
3440         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
3441           mouse move events (fixes #78732)
3442
3443 2006-07-25  Jackson Harper  <jackson@ximian.com>
3444
3445         * UpDownBase.cs: Use an internal class for the textbox so that we
3446         can control focus.  the updown control should always have focus,
3447         if either the text area or the buttons are clicked.
3448         - Send the key messages to the textbox, since it never actually
3449         has focus
3450         - Activate and decativate the textbox caret.
3451
3452 2006-07-24  Jackson Harper  <jackson@ximian.com>
3453
3454         * Control.cs: Use the directed select when selecting a control,
3455         this way the container controls override will get called and the
3456         whole ActiveControl chain will get triggered.  TODO: probably need
3457         to make sure this gets done everywhere instead of the old
3458         Select(Control).
3459         * ContainerControl.cs: Implement the directed Select method to
3460         find and activate the correct child control.    
3461         
3462 2006-07-22  Mike Kestner  <mkestner@novell.com>
3463
3464         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
3465         menu handling code so that clicks without a grab work too.
3466         [Fixes #78914]
3467
3468 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
3469
3470         * FileDialog.cs: Enable the BackButton when dirstack has one element.
3471           Added some small optimizations.
3472
3473 2006-07-21  Matt Hargett  <matt@use.net>
3474
3475         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
3476
3477 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
3478
3479         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
3480           tests pass and match MS in some strange border cases.
3481
3482 2006-07-21  Chris Toshok  <toshok@ximian.com>
3483
3484         * ThemeWin32Classic.cs: handle drawing of the relation links and
3485         parent row buttons.
3486
3487         * Theme.cs: change args to DataGridPaintParentRow.
3488
3489         * DataGrid.cs: Don't use controls for the relation links and
3490         parent buttons, so we have to handle all their interactions in
3491         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
3492         when we're navigating through child tables, so we can reinstate
3493         selection, expanded state, current cell, etc.
3494
3495 2006-07-20  Chris Toshok  <toshok@ximian.com>
3496
3497         * ToolBar.cs: When we redraw a button, for whatever reason,
3498         there's no reason to redraw the entire toolbar.  Also, don't call
3499         Control.Refresh from within Redraw, as it's much heavier than
3500         Invalidate (which is really what we want).
3501
3502 2006-07-20  Chris Toshok  <toshok@ximian.com>
3503
3504         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
3505         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
3506         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
3507         traces from within a debug IBindingList datasource
3508         (in mono/winforms/datagrid) for *days*, I've finally gotten things
3509         to work in a similar fashion.
3510
3511 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3512
3513         * ListBox.cs: Don't call Sort () when setting 
3514         the Sorted property to false (avoid an unnecessary sort).
3515
3516 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3517
3518         * ListControl.cs: DataSource should throw an ArgumentException
3519         instead of a normal exception when the argument is not of the 
3520         correct type.
3521
3522 2006-07-20  Mike Kestner  <mkestner@novell.com>
3523
3524         * Control.cs: add InternalPreProcessMessage to allow us to steal
3525         key events before MWF gets its paws on them.  Adapted from a
3526         suggestion by eno.
3527         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
3528         up/down/left/right navigation. Override the new internal control
3529         method to steal the events since they never make it to WndProc.
3530         * ToolBarButton.cs: don't worry about pushed when setting hilight
3531         since the drawing code prefers pushed to hilight. Invalidate on 
3532         Hilight changes. Fixes #78547 and #78525.
3533
3534 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
3535
3536         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
3537           the canvas size. Fixes #78868
3538
3539 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
3540
3541         * Splitter.cs: Track requested split position until first layout
3542           is performed. Fixes #78871
3543
3544 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
3545
3546         * Application.cs: Removed code that forces 1.x for the version
3547           number if the version started with 0. Not sure why that code was
3548           there and I couldn't find any bugs that indicated we needed it.
3549           Fixes #78869
3550
3551 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
3552
3553         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
3554           ResetDefaults(), just write some output to the console until it's
3555           implemented. Fixes bug #78907 for now. Eliminated two warnings.
3556
3557 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
3558
3559         * PropertyGridView.cs: set StartPosition of drop down forms
3560         so they appear in correct initial spot.  Fixes #78190.
3561
3562 2006-07-19  Mike Kestner  <mkestner@novell.com>
3563
3564         * ThemeWin32Classic.cs: use parent background color when drawing
3565         flat toolbars.  Restructure the conditionals to make sure non-flat
3566         non-Divider toolbars are filled too.  Fixes #78837.
3567
3568 2006-07-19  Mike Kestner  <mkestner@novell.com>
3569
3570         * ListBox.cs: Sort on collection changes even if the handle
3571         isn't created yet.  Fixes #78813.
3572
3573 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3574
3575         * ListControl.cs: DisplayMember should never be null,
3576         and now we assign String.Empty when null is passed to it (this
3577         is the .Net way).
3578
3579 2006-07-17  Mike Kestner  <mkestner@novell.com>
3580
3581         * ListViewItem.cs: restructure Font and subitem Font handling 
3582         to hold a specific font and refer back to owner on null.
3583         Fixes #78761.
3584
3585 2006-07-17  Mike Kestner  <mkestner@novell.com>
3586
3587         * ToolBar.cs: bandaid for side-effect of previous patch which was
3588         discarding explicit heights for non-AutoSize toolbars.  Need to
3589         extend my format tester to deal with AutoSize=false. Fixes #78864.
3590
3591 2006-07-15  Jackson Harper  <jackson@ximian.com>
3592
3593         * LabelEditTextBox.cs:
3594         * TreeView.cs: Use a new LabelEdit class for node editing, this
3595         class automatically 'closes' itself when it gets the enter key or
3596         loses focus.
3597         - Use the client rectangle when setting the trees scrollbars, so
3598         border style is taken into account.
3599         
3600 2006-07-14  Jackson Harper  <jackson@ximian.com>
3601
3602         * TreeNode.cs:
3603         * TreeView.cs: Make the editing work similar to MSs, firing the
3604         events correctly and ending edits correctly.
3605
3606 2006-07-14  Mike Kestner  <mkestner@novell.com>
3607
3608         * ToolBarButton.cs:
3609         * ToolBar.cs: layout restructuring and redraw enhancements to support
3610         formatting changes gracefully, like setting TextAlign, ImageList, 
3611         ButtonSize, and Appearance.  Handles explicit button sizing quirks
3612         of the MS controls.  Things like flat toolbars ignoring button size
3613         but becoming constant sized at the largest button's size.  Normal
3614         toolbars with an image set cannot be shrunk smaller than the image,
3615         but text can be clipped/ignored.
3616         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
3617         is zero.  Seems like DrawString should be smart enough to not put
3618         anything on screen though. Also trim labels and ellipsize at the char
3619         boundary, not word.
3620         Fixes #78711 and #78483.
3621
3622 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
3623
3624         * FolderBrowserDialog.cs: Disable "New Folder" button and
3625           "New Folder" contextmenu menuitem if a folder like "My Computer"
3626           is selected.
3627
3628 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
3629
3630         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
3631         * FolderBrowserDialog.cs:
3632           - Use MWFConfig to store and read size and position settings
3633           - Added code to create a new folder (button or context menu).
3634             Use TreeView labeledit to change the name of the new folder.
3635
3636 2006-07-14  Jackson Harper  <jackson@ximian.com>
3637
3638         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
3639         when the tree is scrolled we end editing.
3640
3641 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
3642
3643         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
3644           Down arrows
3645
3646 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
3647
3648         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
3649         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
3650         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
3651         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
3652         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
3653         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
3654         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
3655         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
3656         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
3657         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
3658         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
3659         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
3660         ListViewItemSelectionChangedEventHandler.cs,
3661         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
3662         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
3663         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
3664         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
3665         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
3666         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
3667         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
3668         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
3669         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
3670         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
3671         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
3672         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
3673         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
3674         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
3675         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
3676         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
3677         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
3678         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
3679         WebBrowserNavigatingEventHandler.cs, 
3680         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
3681
3682 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
3683
3684         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
3685         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
3686         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
3687         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
3688         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
3689         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
3690         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
3691         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
3692         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
3693         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
3694         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
3695         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
3696         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
3697         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
3698         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
3699         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
3700         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
3701         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
3702         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
3703         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
3704         ListViewItemStates.cs, MaskFormat.cs: Added
3705
3706 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
3707
3708         * PropertyGridView.cs: Fix keyboard navigation of drop down.
3709         Patch from eno for bug 78558.
3710         
3711 2006-07-13  Jackson Harper  <jackson@ximian.com>
3712
3713         * TreeView.cs: When an edit is finished make sure that the
3714         selected node is visible.
3715         - When setting the top/bottom use the scrollbars is_visible, so
3716         everything will be set correctly even if the tree isn't visible
3717         yet.
3718
3719 2006-07-13  Jackson Harper  <jackson@ximian.com>
3720
3721         * ComboBox.cs: Revert the item->index part of my previous patch.
3722         * TreeView.cs: Use LostFocus instead of Leave for detecting when
3723         the edit box has lost focus (duh).
3724         - Just make the edit box not visible when we get return, that will
3725         take the focus, which will call EndEdit
3726         * TreeNode.cs When we start editing, notify the treeview.
3727
3728 2006-07-12  Jackson Harper  <jackson@ximian.com>
3729
3730         * ComboBox.cs: Clear out old items before setting the item list.
3731         This prevents databound controls from having their items added
3732         twice.
3733         - Switch the combobox to use indices whereever possible instead of
3734         using Item's.  This allows usto navigate through lists that have
3735         more then one item with the same string value (ie a, b, b, a).
3736         - Scroll the listboxes scrollbar when a non visible item is
3737         highlighted
3738         - Allow keypress to cycle through all the possible values. For
3739         example if you have b1, b2, b3 and hold down the B key all the
3740         values will be cycled through.
3741         
3742 2006-07-12  Jackson Harper  <jackson@ximian.com>
3743
3744         * TextBoxBase.cs:
3745         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
3746         this using the internal methods.
3747         * Control.cs: Add OnGotFocusInternal.  A new method that allows
3748         controls to "override" OnGotFocus and change focus behavior if
3749         needed.
3750         - Same thing for LostFocus
3751         * ComboBox.cs: Pass off focus to the text control properly.
3752
3753 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
3754
3755         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
3756         * FolderBrowserDialog.cs: Almost a complete rewrite.
3757           - Better support for Environment.Specialfolders
3758           - Added support for MWFVFS
3759           - Made setting SelectedPath work
3760
3761 2006-07-12  Jackson Harper  <jackson@ximian.com>
3762
3763         * Control.cs: Optimze getting all the controls.
3764
3765 2006-07-11  Jackson Harper  <jackson@ximian.com>
3766
3767         * ContainerControl.cs: Override SETFOCUS in the container control,
3768         so that it is not selected on mouse click.
3769
3770 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
3771
3772         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
3773           Hopefully we will have a better way once all of focus is complete.
3774
3775 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
3776
3777         * ThemeWin32Classic.cs: Commented out some debug code and fixed
3778           a compile error with csc.
3779
3780 2006-07-11  Jackson Harper  <jackson@ximian.com>
3781
3782         * Control.cs: When hiding a control only select the next control
3783         if the current control was focused.
3784         - Don't handle enter/leave when setting/killing focus, this is
3785         done by the container control.
3786         - Remove is_selected, it's not needed anymore.
3787         - Add utility methods for selecting a child control, and for
3788         firing the Enter/Leave events.
3789         * ContainerControl.cs: When a control is activated fire the
3790         enter/leave events.
3791         - Don't wrap when processing the tab key, so that focus can be
3792         moved outside of the container.
3793         - Use the correct active control
3794
3795 2006-07-11  Jackson Harper  <jackson@ximian.com>
3796
3797         * ComboBox.cs: Remove some debug code that was blinding me.
3798         * UpDownBase.cs: These controls actually aren't implicit, they are
3799         visible to the user.
3800
3801 2006-07-10  Chris Toshok  <toshok@ximian.com>
3802
3803         * DataGrid.cs: move back to the is_adding boolean field.  god i
3804         hate this is_editing/is_adding/is_changing stuff.
3805
3806 2006-07-10  Chris Toshok  <toshok@ximian.com>
3807
3808         * DataGridTableStyle.cs: just check if the property type is bool.
3809         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
3810         Don't use CanRenderType.
3811
3812         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
3813         if our text == NullText.  Remove CanRenderType.
3814
3815         * DataGridBoolColumn.cs: nuke CanRenderType.
3816
3817         * DataGrid.cs: reenable some code to end the current edit inside
3818         of set_CurrentCell.  This fixes the other 1.1.16 regression.
3819         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
3820         Also, remove the visible_row_count arg from CalcRowHeaders, since
3821         we don't need to worry about the actual height of the area.
3822
3823 2006-07-10  Chris Toshok  <toshok@ximian.com>
3824
3825         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
3826         mode, just return.
3827
3828         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
3829         the real sense of the IsInEditOrNavigateMode property (true =
3830         navigate, false = edit).  Also, update OnKeyPress to reflect this.
3831
3832         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
3833         column style exists, we still need to set its property descriptor
3834         to match up with our list manager.
3835
3836 2006-07-10  Chris Toshok  <toshok@ximian.com>
3837
3838         * ThemeWin32Classic.cs: implement the new row/header painting
3839         approach.  The parent row painting will likely go away and
3840         replaced with label controls, but the rest seems to work ok (and
3841         efficiently).
3842
3843         * Theme.cs: change the way we draw datagrid rows.  we don't draw
3844         the row headers as a block now.  Instead we draw them in the
3845         normal draw-row loop.  Add some calls for drawing parent rows and
3846         relation rows.
3847
3848         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
3849         a default table style.  Set the defaults from ThemeEngine.Current,
3850         not SystemColors.  Fix lots of misc issues with property setters.
3851
3852         * DataGrid.cs: move loads of style information out of this class
3853         as it's being duplicated with DataGridTableStyle.  keep track of a
3854         special DataGridTableStyle for the properties we used to mirror
3855         here.  Switch all the style properties to access this table style
3856         instead of instance fields of this class.  Also add a internal
3857         class to represent parent rows (more needs to be stored here, like
3858         the selection state from the parent table, as well as the
3859         expansion state.)  Also, for datasources with relations, do the
3860         right thing for collapse/expand, and add support for the
3861         navigation/parent row buttons.
3862
3863         Lastly, fix the crash in the 1.1.16 build.
3864
3865         * GridTableStylesCollection.cs: make the explicit interface
3866         implementations call the class's methods as opposed to duplicating
3867         them.
3868
3869         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
3870         0 so the text doesn't jump around when we move the cursor.
3871
3872 2006-07-10  Jackson Harper  <jackson@ximian.com>
3873
3874         * TextBoxBase.cs:
3875         * ListBox.cs: Match MS's ToString (this makes debugging focus
3876         stuff infinitely easier).
3877
3878 2006-07-10  Jackson Harper  <jackson@ximian.com>
3879
3880         * Control.cs (SelectNextControl): When checking the control's
3881         parent use this instead of ctrl.parent so that null can be passed
3882         to SelectNextControl. (I have unit tests for this).
3883         - Remove unused var.
3884
3885 2006-07-10  Chris Toshok  <toshok@ximian.com>
3886
3887         * CurrencyManager.cs: correct one regression, the removal of the
3888         finalType field.  Also, add a MonoTODO on CanAddRows, implement
3889         Refresh() correctly, and fix some event emission in
3890         ListChangedHandler.
3891
3892 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
3893
3894         * FileDialog.cs: Don't use brackets for new folders if they exist
3895           under *nix. Instead use -(number of existing folders +1).
3896
3897 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
3898
3899         * FileDialog.cs:
3900           - Fixed really nasty bug #78771
3901           - Don't block the whole GUI when reading directories with a lot of
3902             entries. Use an other thread instead and call BeginInvoke to
3903             update the ListView in MWFFileView
3904
3905 2006-07-07  Chris Toshok  <toshok@ximian.com>
3906
3907         * Control.cs (Dispose): release any Capture when disposing.
3908
3909 2006-07-07  Chris Toshok  <toshok@ximian.com>
3910
3911         * LinkLabel.cs (Select): if we chain up to the parent, set
3912         focused_index to -1 so we'll search for the first available link
3913         the next time the user tabs into us.  Also, if the direction is
3914         backward and focused_index == -1, start the search from the last
3915         element.
3916
3917 2006-07-07  Chris Toshok  <toshok@ximian.com>
3918
3919         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
3920         is beyond the end of the text, don't do anything.
3921         (CreateLinkPieces): set our ControlStyles.Selectable based on
3922         whether or not we have any links.
3923         (Link.Invalidate): use a loop instead of foreach.
3924         (Link.set_Start): null out owner.sorted_links so it'll be
3925         recreated by CreateLinkPieces.
3926
3927 2006-07-06  Chris Toshok  <toshok@ximian.com>
3928
3929         * LinkLabel.cs: revert the SetStyle change.
3930
3931 2006-07-06  Chris Toshok  <toshok@ximian.com>
3932
3933         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
3934         (OnEnableChanged): s/Refresh/Invalidate
3935         (OnGotFocus): if we have a focused index already, refocus it (so
3936         if we mouse out/in to the window it'll focus the right link).
3937         (OnKeyDown): move the tab handling out of here.
3938         (OnLostFocus): don't set focused_index to -1, so we can refocus it
3939         when we lose focus.
3940         (OnMouseDown): don't Capture here - Control handles it.  Also,
3941         focus the active link.
3942         (OnMouseUp): don't deal with Capture.
3943         (OnPaintBackgroundInternal): remove.
3944         (OnTextAlignChanged): CreateLinkPieces before calling the
3945         superclass's method.
3946         (OnTextChanged): call CreateLinkPieces before calling superclass's
3947         method.
3948         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
3949         move around.
3950         (Select): implement this, moving the selection between different
3951         links, and call parent.SelectNextControl if we don't have another
3952         link to focus in the given direction.
3953         (CreateLinkPieces): call Invalidate instead of Refresh.
3954         
3955 2006-07-06  Chris Toshok  <toshok@ximian.com>
3956
3957         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
3958         new LinkLabel internals.
3959
3960         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
3961         over pieces looking for active/focused/etc links.  also, deal with
3962         runs of text (and links) with embedded \n's in them, and use
3963         MeasureCharacterRanges instead of MeasureString to figure out the
3964         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
3965         two-step.
3966
3967 2006-07-04  Jackson Harper  <jackson@ximian.com>
3968
3969         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
3970         XKB or key auto repeat, do it manually.  Without key auto repeat,
3971         when a key is held down we get key press, key release, key press,
3972         key release, ... with auto repeat we get key press, key press, key
3973         press ..., and then a release when the key is actually released.
3974
3975 2006-07-03  Jackson Harper  <jackson@ximian.com>
3976
3977         * TabControl.cs:
3978         * ThemeWin32Classic.cs: Tabs do not obey normal background color
3979         rules, they are always control color regardless of the background
3980         color.
3981
3982 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
3983
3984         * FileDialog.cs: Added internal class MWFConfig.
3985           Removed Registry support and replaced it with support for the new
3986           MWFConfig class. See MWFConfig comments for more information.
3987
3988 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
3989
3990         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
3991           rectangle. Added some patches from eno from bug #78490 and fixed
3992           the arrow position for small up and down CPDrawScrollButtons.
3993
3994 2006-06-30  Jackson Harper  <jackson@ximian.com>
3995
3996         * InternalWindowManager.cs: Remove some debug code.
3997         * Form.cs: When an MdiParent is set to null, the window is
3998         "detatched" and becomes a normal window.
3999         * MdiClient.cs: Don't bring the new child form to the front until
4000         it is activated (setting it as active does this), this makes the
4001         previously active forms titlebar get redrawn as inactive.
4002
4003 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
4004
4005         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
4006           with later controls
4007
4008 2006-06-29  Mike Kestner  <mkestner@novell.com>
4009
4010         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
4011         arrow in keynav state.  Fixes #78682.
4012
4013 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
4014
4015         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
4016           order (fixes #78393)
4017
4018 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
4019
4020         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
4021           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
4022           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
4023           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
4024           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
4025           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
4026           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
4027           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
4028           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
4029           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
4030           enumerations (FlagsAttribute, SerializableAttribute, added/removed
4031           values)
4032
4033 2006-06-28  Mike Kestner  <mkestner@novell.com>
4034
4035         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
4036
4037 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
4038
4039         * PropertyGrid.cs,
4040           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
4041           item lines from other area (It also makes BackColor consistent and
4042           compatible with .NET). Fixed bug #78564.
4043
4044 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
4045
4046         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
4047         Patch from Eno for #78555.
4048
4049 2006-06-27  Chris Toshok  <toshok@ximian.com>
4050
4051         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
4052
4053         * DataGridColumnStyle.cs: same.
4054
4055         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
4056         
4057         * DataGridDrawingLogic.cs: nuke.
4058
4059 2006-06-27  Chris Toshok  <toshok@ximian.com>
4060
4061         * DataGridTableStyle.cs: clean up the constructors, and build the
4062         list of child relations for this table.  I have no idea if this is
4063         where we should be doing it (it probably isn't), but since we're
4064         already iterating over the properties..
4065
4066         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
4067         struct and array for keeping track of row information, similar to
4068         what's shown in a hack on
4069         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
4070
4071         * Theme.cs: be consistent about the naming of DataGrid methods,
4072         prefering ColumnWidths and RowHeights over columnsWidths and
4073         RowsHeights.
4074
4075         * ThemeWin32Classic.cs: same, and also add support for variable
4076         sized rows (and the +/- expansion icons for related rows).
4077
4078 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
4079
4080         * TextBoxBase.cs: Applied Eno's patch from #78660
4081
4082 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
4083
4084         * Form.cs (ScaleCore): We don't want to scale our form if it's
4085           state is minimized or maximized, but we still need to scale our
4086           child windows. Also, added try/finally block to ensure layout
4087           gets reset (Fixes #78697)
4088
4089 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
4090
4091         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
4092
4093 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
4094
4095         * Form.cs: Fixed c+p error and added check to resize form if minimum
4096           size is bigger than current size (Fixes #78709)
4097
4098 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
4099
4100         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
4101
4102 2006-06-26  Mike Kestner  <mkestner@novell.com>
4103
4104         * ComboBox.cs: only do Keypress handling in the combo when there  
4105         are items in the collection. Fixes #78710.
4106
4107 2006-06-26  Chris Toshok  <toshok@ximian.com>
4108
4109         * Binding.cs: make this work bi-directionally.  also, clear up
4110         other mixups between Push/Pull Data (e.g. we're supposed to pull
4111         data when validating).
4112
4113         * BindingManagerBase.cs: trim some fully qualified collection
4114         types.
4115
4116         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
4117
4118 2006-06-23  Chris Toshok  <toshok@ximian.com>
4119
4120         * PropertyManager.cs: It appears (according to the unit tests)
4121         that PropertyManager doesn't use
4122         PropertyDescriptor.AddValueChanged to track propery value changes
4123         in its datasource, but uses the same scheme as Binding, where it
4124         looks for a <Property>Changed event and binds to it.
4125
4126         Also, according to the docs, IsSuspended always returns false for
4127         a property manager with a non-null datasource.
4128
4129 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
4130
4131         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
4132           need to update the actual DialogResult. (Fixes #78613)
4133
4134 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
4135
4136         * Form.cs (ShowDialog): Release any captures before running the
4137           new message pump (fixes #78680)
4138
4139 2006-06-22  Mike Kestner  <mkestner@novell.com>
4140
4141         * ListView.cs: Layout column widths properly in details mode even 
4142         if HeaderStyle.None is set.  Fixes #78691.
4143
4144 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
4145
4146         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
4147
4148 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
4149
4150         * Control.cs (ContainsFocus): Using new driver method to get focused
4151           window, instead of trying to use internal tracking var, which can
4152           recursion issues (Fixes #78685)
4153         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
4154           XplatUIWin32.cs: Added GetFocus method to return focused window
4155
4156 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4157
4158         * ColorDialog.cs: when the mouse button is pressed inside the color
4159         matrix, don't let the cursor move out of it until the button is
4160         released, which is the behavior on windows. Changed 'colours' by
4161         'colors' to use the same word consistently.
4162
4163 2006-06-21  Chris Toshok  <toshok@ximian.com>
4164
4165         * DataGrid.cs: add in some basic navigation stuff (navigating to a
4166         child relation and back, using a stack).  Also, remove
4167         GetDataSource and the code that calls it - it's not needed.  Also,
4168         track CurrencyManager.ListName's removal.
4169
4170 2006-06-21  Chris Toshok  <toshok@ximian.com>
4171
4172         * CurrencyManager.cs: push some of the original type checking from
4173         BindingContext.CreateBindingManager to here, and remove some of
4174         the finalType stuff.  Need more tests to make sure I've got the
4175         ListName part right, and we might need more in SetDataSource.
4176
4177         * PropertyManager.cs: add a ctor that takes just the datasource,
4178         and no property name.  Make SetDataSource work with a null
4179         property_name, and make Current return the data_source if the
4180         property descriptor is null.  this makes 'string foo = "hi";
4181         BindingContext[foo].Current' return "hi" as it should.
4182
4183         * RelatedCurrencyManager.cs: make this code more generic - there's
4184         no reason the parent manager has to be CurrencyManager, and
4185         there's no reason to pass the DataRelation.  It suffices to use a
4186         BindingManagerBase and PropetyDescriptor.
4187
4188         * RelatedPropertyManager.cs: make a similar change here.
4189         
4190         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
4191         flower I knew it could be.
4192
4193 2006-06-20  Chris Toshok  <toshok@ximian.com>
4194
4195         * PropertyManager.cs: the PropertyChangedHandler is invoked when
4196         data in the source has changed and we need to update the control,
4197         so s/PullData/PushData.
4198
4199         * CurrencyManager.cs: Refresh is meant to update the control from
4200         data in the datasource.  So, s/PullData/PushData.
4201
4202         * BindingContext.cs: add more ugliness (we weren't handling the
4203         case where data_source = DataTable and data_member = column_name).
4204
4205         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
4206         from the perspective of the datasource.  PullData pulls from the
4207         control, PushData pushes to the control.
4208
4209 2006-06-20  Chris Toshok  <toshok@ximian.com>
4210
4211         * BindingContext.cs: rewrite the CreateBindingManager code to
4212         handle navigation paths more or less properly.  This could
4213         definitely stand some more work, in particular to push the
4214         recursion up to the toplevel.  But that relies on fixes in other
4215         places (System.Data comes to mind).
4216
4217         Also, move to a flat hashtable (and encode the twolevel nature of
4218         the dictionary into the hash key).  This lets us implement the
4219         IEnumerable.GetEnumerator method.
4220
4221         * RelatedCurrencyManager.cs: new class.  Update our view based on
4222         our relation and our parent CurrencyManager's position.
4223
4224         * CurrencyManager.cs: split out some logic from the ctor into
4225         SetView, so it can be called from the new RelatedCurrencyManager
4226         subclass.
4227
4228         * RelatedPropertyManager.cs: new class.  Update our datasource
4229         based on the position of our parent CurrencyManager.
4230
4231         * PropertyManager.cs: split out some logic from the ctor into
4232         SetDataSource, so it can be called from the new RelatedDataSource
4233         subclass.  Also, make the Current getter return the value
4234         of the PropertyDescriptor, not the data_source.
4235
4236         * Binding.cs: no need to duplicate the string splitting code here.
4237
4238 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
4239
4240         * Control.cs:
4241           - set_Enabled: OnEnabledChanged is not called if the inherited state 
4242             of the control is not altered, even though  we might be changing the
4243             internal state of the control (#78458)
4244           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
4245             OnEnabledChanged, to allow easy altering of any child window state
4246           - OnEnabledChanged: Added code to enable/disable driver window state
4247           - OnParentEnabledChanged: Instead of firing the event, call 
4248             OnEnabledChanged, which will fire the event and also a) set driver
4249             window state and pass the enabled state to any grandchildren (#78458)
4250
4251 2006-06-19  Jackson Harper  <jackson@ximian.com>
4252
4253         * InternalWindowManager.cs: We don't set the cursor explicitly
4254         thats done via the response to NCHITTESTs.
4255         - Don't need to adjust for titlebar heights anymore, the
4256         coordinates are coming in the correct coordinates now (see peters
4257         last patch).
4258
4259
4260 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
4261
4262         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
4263           being translated relative to whole window, instead of client window.
4264           That caused broken offsets on mouseclick (and caused gas for our
4265           InternalWindowManager)
4266
4267 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
4268
4269         * TextControl.cs:
4270           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
4271           - Undo(): Added replay of cursor move on DeleteChars action; added
4272             calling Undo() again if a recorded cursor move is invalid (to
4273             ensure that some action is performed on Undo)
4274         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
4275
4276 2006-06-16  Jackson Harper  <jackson@ximian.com>
4277
4278         * MdiClient.cs: Instead of just sizing maximized windows when
4279         there is a resize we also have to adjust the Y of minimized
4280         windows, so they stay pinned to the bottom of the mdi container.
4281         - Eliminate separate tracking of the active control, we can just
4282         get this from the controls collection.
4283         - Paint the decorations for the newly activated titlebar so we get
4284         a pretty blue bar.
4285         * InternalWindowManager.cs:
4286         * ThemeWin32Classic.cs: Minimized windows get all three buttons
4287         even if they are a tool window.
4288         
4289 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
4290
4291         * TextControl.cs (Undo): Handle non-existent cursor locations in the
4292           undo buffer, these can happen when text was deleted and the cursor
4293           was recorded first. Since we will also have a recorded cursor
4294           after the delete this is not an issue. (Fixes #78651)
4295
4296 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
4297
4298         * AccessibleObject.cs: Remove dependence on Control.is_selected;
4299           instead properly track control states internally (allows us to
4300           remove is_selected from Control)
4301
4302 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4303
4304         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
4305         whose width is not a multiple of 8.
4306
4307 2006-06-13  Jackson Harper  <jackson@ximian.com>
4308
4309         * MdiClient.cs:  Only maximize the next child if the current one
4310         is maximized.
4311
4312 2006-06-13  Chris Toshok  <toshok@ximian.com>
4313
4314         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
4315         modified.  Also, guard against grid or grid_drawing being null in
4316         Invalidate.
4317
4318         * DataGrid.cs: Reformat tons of getters/setters.  In the
4319         DataMember setter, just call SetNewDataSource instead of
4320         duplicating some of its functionality.  In SetNewDataSource, don't
4321         check ListManager for null, since the property getter creates the
4322         object if needed.
4323
4324         * DataGridTableStyle.cs: don't set TableStyle or call
4325         SetDataGridInternal on the column here, it's done in
4326         GridColumnStylesCollection.Add.
4327
4328         * GridColumnStylesCollection.cs: fix all the explicit interface
4329         implementations to just call our methods.  Nuke AddInternal() and
4330         move the body of it to Add().  Also, add a call to
4331         column.SetDataGridInternal to Add().
4332
4333         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
4334         base()+duplicate code.  Also, use the Format property instead of
4335         format to generate an Invalidate ala MS.  Lastly, create the
4336         textbox here, unconditionally.
4337         (set_Format): call Invalidate.
4338         (get_TextBox): no need to call EnsureTextBox.
4339         (Commit): remove the message box.
4340         (Edit) remove the call to EnsureTextBox.
4341         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
4342         (EnterNullValue): no need to check textbox for null.
4343         (HideEditBox): no need to check textbox for null.
4344         (SetDataGridInColumn): add the textbox to the grid's controls.
4345         (EnsureTextBox): nuke.
4346         
4347 2006-06-13  Jackson Harper  <jackson@ximian.com>
4348
4349         * MdiWindowManager.cs: Hook up to the maximized menus paint event
4350         and redraw the buttons when needed. Unhook when the window is
4351         unmaximized.
4352         * MainMenu.cs: Add an internal Paint event, the mdi window manager
4353         needs this so that it can redraw its buttons when the menu is
4354         repainted.
4355         * InternalWindowManager.cs:
4356         * Form.cs: The method order has changed for DrawMaximizedButtons,
4357         so that it can be a PaintEventHandler.
4358         
4359 2006-06-13  Jackson Harper  <jackson@ximian.com>
4360
4361         * MdiClient.cs: When we close a maximized mdi window, the next mdi
4362         window is activated and maximized, even if it wasn't before.
4363         - When  a new window is activated repaint the decorations of the
4364         old one, so that it no longer has the Active "look" (the blue
4365         titlebar).
4366         * InternalWindowManager.cs: Open up CreateButtons to base classes
4367         so they can recreate the buttons on state changes.
4368         - If a window is maximized give it all three buttons
4369         * MdiWindowManager.cs: Create the titlebar buttons when the state
4370         is changed, this is needed because a toolwindow will not have all
4371         three buttons until it is maximized.
4372
4373 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
4374
4375         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
4376           Fixed bug #78609.
4377
4378 2006-06-12  Jackson Harper  <jackson@ximian.com>
4379
4380         * KeysConverter.cs: Make sure we handle the Ctrl special case
4381         if its the only key.
4382         
4383 2006-06-12  Jackson Harper  <jackson@ximian.com>
4384
4385         * Theme.cs: Add a method to get the size of a managed window
4386         toolbar button.
4387         * InternalWindowManager.cs: Remove the ButtonSize property, this
4388         should be retrieved from the theme.
4389         * MdiWindowManager.cs: Get the button size from the theme
4390         * ThemeWin32Classic.cs: Make the method to get the managed window
4391         titlebar button size public.
4392         - Handle the different button sizes of maximized toolwindows
4393         (should match any maximized window).
4394         - Get the titlebar height from the theme, not the WM (which gets
4395         it from the theme).
4396
4397 2006-06-12  Jackson Harper  <jackson@ximian.com>
4398
4399         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
4400         event down to the mdi window manager.
4401         - Expose some extra stuff to base classes
4402         - Make sure to end the Capture on an NC Mouse up, so that we can
4403         get double clicks properly, and the sizing doens't stick.
4404         - When doing PointToClient contain it in the workable desktop
4405         area, this prevents windows from changing size when the cursor is
4406         pulled outside of the working area while sizing.
4407         * MdiWindowManager.cs: When we get a double click maximize the
4408         window.
4409         - Reset the cursor after handling mode changes.
4410
4411 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
4412
4413         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
4414           current desktop, instead of just assuming a 0, 0 origin. This
4415           is needed for our internal window manager, to know the top
4416           margin of the desktop
4417
4418 2006-06-12  Chris Toshok  <toshok@ximian.com>
4419
4420         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
4421         we need this to get rid of the selected background in the bool
4422         column.
4423         (CancelEditing): move the ConcedeFocus call to above the Abort
4424         call.  Also, set is_changing to false and invalidate the row
4425         header if we were changing before.
4426         (ProcessKeyPreviewInternal): remove, since noone outside this
4427         class calls it anymore.  Roll the code into ProcessKeyPreview.
4428         (EndEdit): remove the internal version.
4429         (InvalidateCurrentRowHeader): make private.
4430
4431         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
4432         Keys.Escape handling (and with it the last call to
4433         DataGrid.EndEdit from outside the class.)
4434
4435
4436 2006-06-12  Chris Toshok  <toshok@ximian.com>
4437
4438         * DataGridTextBox.cs (.ctor): isedit defaults to false.
4439         (OnKeyPress): set isedit to true.
4440         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
4441         already handled by the grid.
4442
4443         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
4444         right.  ugh.
4445         (set_DataSource): SetDataSource always returns true, so stop
4446         putting it in an if statement.
4447         (EndEdit): get rid of some {}'s
4448         (ProcessGridKey): return true in case Keys.Escape.
4449         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
4450         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
4451         PositionChanged, stopped connecting to CurrentChanged.
4452         (GetDataSource): simplify this a bunch.
4453         (SetDataSource): change return type from bool to void.
4454         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
4455         to this, and make sure we don't set ListManager.Position inside
4456         set_CurrentCell.
4457         (OnListManagerItemChanged): if we're passed an actual index,
4458         redraw that row.
4459
4460         * CurrencyManager.cs (set_Position): don't call PullData here.
4461
4462 2006-06-09  Jackson Harper  <jackson@ximian.com>
4463
4464         * TreeNode.cs:  Recalculate the visible order before doing the
4465         Expand/Collapse Below calls, because those calls generate an
4466         expose.
4467         - Reduce calls to the TreeView property, which is mildly expensive
4468         by using a local var.
4469         * Form.cs: Layout the MDI child windows when creating the parent
4470         form.
4471         - Don't use the internal constructor anymore
4472         * MdiClient.cs: use the parent form width/height (if available)
4473         when laying out the child windows, we do this because the
4474         mdiclient isn't docked yet when the initial layout is done.
4475         - Don't need an internal constructor anymore.
4476
4477 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4478
4479         * FileDialog.cs: handle access errors when trying to create a folder
4480         or changing to a directory. No need to initialize out parameters.
4481
4482 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
4483
4484         * FileDialog.cs: Append a number when creating a new folder if the
4485           folder already exists (use parenthesis instead of square brackets)
4486
4487 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
4488
4489         * FileDialog.cs:
4490           - Disabled registry support for windows and added better registry
4491             error checking for other systems (need to investigate why it
4492             works perfectly on my system)
4493           - If a folder already exist show an error MessageBox instead of
4494             trying to create an indexed name.
4495           - Fixed a non intentional typo.
4496
4497 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4498
4499         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
4500
4501 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
4502
4503         * FileDialog.cs: When creating a new folder don't crash if the
4504           folder already exists.
4505
4506 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
4507
4508         * FileDialog.cs: Allmost a complete rewrite.
4509           - added a "virtual" file system that handles the differences
4510             between unix and windows file systems (especially the directory
4511             structure). Moved most of the directory and file handling code
4512             into the vfs.
4513             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
4514             UnixFileSystem and FSEntry.
4515           - Recently used folder/directory, size, location and used file names
4516             (file name ComboBox) are now stored in the registry and get read
4517             before the dialog shows up (fixes part 6 of bug #78446).
4518           - Creation of new folders/directories is now possible (context menu
4519             or ToolBar). Added TextEntryDialog for this that fills in the gap
4520             until ListView.LabelEdit works.
4521           - Fixed cursor handling (bug #78527) and focus handling for
4522             PopupButtonPanel
4523           - Various "Search in" ComboBox enhancements. The content of the
4524             dropdown listbox now almost matches ms.
4525           - Changed the behaviour when the user switches to SpecialFolder
4526             Recent to show the ListView in View.Details.
4527           - Beside using the ToolBar to change the View property of the
4528             file ListView it is now possible to use the context menu too.
4529
4530 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
4531
4532         * ComboBox.cs: Don't create a new ObjectCollection when an item
4533           gets inserted. Just insert the item in the existing object_items
4534           ArrayList.
4535
4536 2006-06-08  Jackson Harper  <jackson@ximian.com>
4537
4538         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
4539         that the treeview and root node checks are done also, this fixes a
4540         regression i caused in the unit tests.
4541
4542 2006-06-07  Wade Berrier <wberrier@novell.com> 
4543
4544         * RichTextBox.cs: More ISO8859-1 -> unicode
4545
4546 2006-06-07  Mike Kestner  <mkestner@novell.com>
4547
4548         * ComboBox.cs : use items to hold highlight/selection so that
4549         collection insertions don't require synchronization.
4550
4551 2006-06-07  Jackson Harper  <jackson@ximian.com>
4552
4553         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
4554         routine.  We now always keep the sized edge at the cursor instead
4555         of computing movement and adjusting rects.  There is one buglet
4556         with this method though when the cursor is moved over area that
4557         the window can not expand too (such as the toolbars on the desktop).
4558
4559 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4560
4561         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
4562         here. Fixes crash on startup in AlbumSurfer.
4563
4564 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
4565
4566         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
4567           values
4568
4569 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4570
4571         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
4572         statement to avoid calling XNextEvent which will block if another thread
4573         took the event that we were expecting. Fixes bug #78605.
4574
4575 2006-06-07  Mike Kestner  <mkestner@novell.com>
4576
4577         * ListView.cs : isolated checkbox clicking from the selection logic.
4578         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
4579
4580 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4581
4582         * Form.cs: Check that the value passed to Form.DialogResult
4583         is a valid enum value.
4584
4585 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4586
4587         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
4588         Computer'. Clicking it in the network view goes to 'My Computer'.
4589         Added CIFS filesystem type. Display the mount point of filesystems.
4590         Avoid duplicate mount points (happens for me with CIFS);
4591
4592 2006-06-06  Jackson Harper  <jackson@ximian.com>
4593
4594         * InternalWindowManager.cs: Draw the maximized windows buttons
4595         when resizing.
4596
4597 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4598
4599         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
4600         all other dialogs. Fixes bug #78585.
4601
4602 2006-06-06  Mike Kestner  <mkestner@novell.com>
4603
4604         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
4605         Only invalidate checkbox on checkstate changes to avoid flicker.
4606         * ListBox.cs : avoid unselect/select when clicking selected item.
4607         avoid reselection flicker for already multiselected items.
4608         Fixes #78382.
4609
4610 2006-06-06  Jackson Harper  <jackson@ximian.com>
4611
4612         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
4613         the parent form so that the menu is removed if needed.
4614
4615 2006-06-06  Mike Kestner  <mkestner@novell.com>
4616
4617         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
4618         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
4619
4620 2006-06-06  Mike Kestner  <mkestner@novell.com>
4621
4622         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
4623
4624
4625 2006-06-06  Jackson Harper  <jackson@ximian.com>
4626
4627         * Control.cs: Use the property (instead of the field) to get the
4628         default cursor so it is instantiated correctly.
4629         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
4630         resizes so we need to manually repaint the window decorations here.
4631         - Set the titlebar button locations as soon as they are created,
4632         otherwise they are not set correctly on win32.
4633         
4634 2006-06-06  Chris Toshok  <toshok@ximian.com>
4635
4636         * CurrencyManager.cs (set_Position): call PullData before
4637         OnCurrentChanged.
4638         (AddNew): after calling IBindingList.AddNew, update our
4639         listposition, and call OnCurrentChanged/OnPositionChanged (without
4640         calling PullData).
4641         (OnCurrentChanged): remove the call to PullData from here.
4642         (OnItemChanged): remove the call to PushData from here.
4643         (OnPositionChanged): change the test from == null to != null to
4644         match the other methods.
4645         (ListChangedHandler): the grossest part of the patch.  Implement
4646         this such that it passes the unit tests in CurrencyManagerTest and
4647         the output more or less matches that of MS's implementation.
4648  
4649 2006-06-06  Mike Kestner  <mkestner@novell.com>
4650
4651         * ListView.cs : only update check state on single click.
4652         * ThemeWin32Classic.cs : fix focus drawing for details view without
4653         fullrowselect.  Fixes #78454.
4654         * XplatUIX11.cs : fix for double click emission.
4655
4656 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
4657
4658         * PropertyGridView.cs : Applied Atsushi's patch to fix
4659         font dialog bug  (#78197).
4660
4661 2006-06-05  Jackson Harper  <jackson@ximian.com>
4662
4663         * TreeNode.cs: Compute the next node for expanding/collapsing
4664         correctly. We now factor in nodes without a NextNode
4665         correctly. (Fixes somes cases in nunit-gui).
4666         * InternalWindowManager.cs: Set the bounds when updating the
4667         virtual position of a tool window.
4668         
4669 2006-06-05  Chris Toshok  <toshok@ximian.com>
4670
4671         * DataGrid.cs: rename cached_currencymgr to list_manager.
4672         (set_CurrentCell): move SetCurrentCell code here, and clean it up
4673         some.
4674         (CurrentRow, CurrentColumn): single accessors so we can make the
4675         cursor movement code a lot easier to understand.
4676         (CurrentRowIndex): implement this in terms of CurrentRow.
4677         (BeginEdit): clean this up a bit.
4678         (CancelEditing): sort out the is_editing/is_changing/is_adding
4679         stuff a little.
4680         (EndEdit): minor changes.
4681         (OnKeyDown): add a comment about a (most likely) unnecessary
4682         check.
4683         (OnMouseDown): cancel editing when we click on a row header.  And
4684         use the CurrentRow setter, not CurrentCell.
4685         (ProcessDialogKey): directly call ProcessGridKey.
4686         (UpdateSelectionAfterCursorMove): factor out this common block of
4687         code (it's used everywhere that we move the cursor by updating row
4688         or column).
4689         (ProcessGridKey): pretty substantial overhaul.  Use the
4690         CurrentRow/CurrentColumn properties to make the code a lot more
4691         readable.  Only use the CurrentCell property when we have to
4692         modify both row and column at once.  Tab behavior is still broken,
4693         and Delete is untested.
4694         (Select): if we have no selected rows, set selection_start to
4695         @row.
4696         (EditCurrentCell): rename EditCell this.  It was only ever invoked
4697         with CurrentCell as the arg, so drop the arg and rename it.
4698
4699         * DataGridColumnStyle.cs: clean up the constructors a little, and
4700         drop CommonConstructor().
4701
4702         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
4703         actually get notified when the user hits it.
4704         (ProcessKeyMessage): *substantially* simplify this method.
4705         There's no reason (that I can see) for the textbox to be making
4706         calls into the datagrid at all.  Remove all of them but the ones
4707         for Enter handling.  those will take some more work.
4708
4709         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
4710         calling HideEditBox.
4711         (HideEditBox): if we have an active textbox, render it invisible
4712         without causing a re-layout of the datagrid.
4713
4714 2006-06-05  Mike Kestner  <mkestner@novell.com>
4715
4716         * ListView.cs : fix NRE crasher when focuseditem is cleared by
4717         collection changes by resetting it to Items[0].  Fixes #78587.
4718
4719 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4720
4721         * MessageBox.cs: if the height of the text is larger than the icon_size,
4722         use that. Fixes bug #78575.
4723
4724 2006-06-05  Jackson Harper  <jackson@ximian.com>
4725
4726         * TreeView.cs: Fix line drawing when scrolling.  To do this each
4727         node is basically responsible for drawing its entire horizontal
4728         area.  When drawing a node it draws its parent node lines if
4729         needed.
4730         - Adjust the clip area to the viewport rectangle
4731         - Fix Left/Right key handling to match MS. (It expand/collapses
4732         and moves to parents/first child but does not move selection to
4733         sibling nodes).
4734         - Fix SetTop to work with new bound calculation code
4735         - When scrollbars are no longer needed we need to reset scrolling
4736         vars and recalculate the visible order so the redraw is correct
4737         * TreeNode.cs: We can't expand/collapse nodes with no children.
4738
4739 2006-06-03  John Luke  <john.luke@gmail.com> 
4740
4741         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
4742         so the colors work without dev packages
4743         
4744 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
4745
4746         * Control.cs 
4747           - Select: Implemented to just use activate. Seems to match MS 
4748             behaviour closest. Documented to only do actual control walking 
4749             based on it's parameters if in a container control so I moved 
4750             the code there.
4751           - Removed selection check logic from our internal Select() method
4752         * ContainerControl.cs:
4753           - Select: Moved selection logic from Control here, since MS documents
4754             that containers obey the bool arguments. No longer calling base
4755
4756 2006-06-02  Jackson Harper  <jackson@ximian.com>
4757
4758         * TreeView.cs: If the selected node isn't changed when we get
4759         focus update the previously selected node so that we see the
4760         selection box.
4761
4762 2006-06-02  Mike Kestner  <mkestner@novell.com>
4763
4764         * ComboBox.cs: restructure grab and general mouse event handling.
4765         Make the composite control raise mouse events like it was a single
4766         control for leaves/enters/motion/up/down events.  fix dropdown list
4767         coordinate mangling and refactor it into the scrollbar subclass to
4768         reduce code duplication.  Fixes #78282 #78361 and #78457.
4769
4770 2006-06-02  Mike Kestner  <mkestner@novell.com>
4771
4772         * ScrollBar.cs: remove Capture setting/clearing, as it happens
4773         automatically in the Control.WndProc.
4774
4775 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4776
4777         * FileDialog.cs: fix crash when running SharpChess, which sets the
4778         FilterIndex to 2 with only one Filter.
4779
4780 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4781
4782         * ToolBar.cs: add SizeSpecified property.
4783         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
4784         try to figure out our real size, otherwise fallback to what the
4785         container says.
4786
4787 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
4788
4789         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
4790         * Control.cs (WndProc): MS always calls the DefWndProc to pass
4791           up the event
4792
4793 2006-06-01  Mike Kestner  <mkestner@novell.com>
4794
4795         * ListView.cs: revamp the focus management in ListView.  It still
4796         causes churn of LostFocus/GotFocus emissions on clicks, but it's
4797         better than not handling focus at all.  Will revisit when pdb feels
4798         the general focus handling is solid.  Fixes #78526.
4799
4800 2006-06-01  Jackson Harper  <jackson@ximian.com>
4801
4802         * TreeView.cs: Set the default border style in the constructor.
4803         - Move painting to use OnPaintInternal instead of capturing
4804         WM_PAINT, this is the correct way of doing things
4805         - UpdateBelow shouldn't invalidate the scrollbar area
4806         - Cap the top on update below in case the node was above the top
4807         of the viewport rectangle.
4808         - ExpandBelow and Collapse below need to obey Begin/End Update.
4809         * TreeNode.cs: Make is_expanded internal so the treenode
4810         collection can change it without firing the whole event chain.
4811         * TreeNodeCollection.cs: When clearing all the child nodes make
4812         sure to recalc the visible order.
4813         - Improve algo for remove the top node
4814
4815 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
4816
4817         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
4818           SendMessage directly calling window procedures, which in turn might
4819           call SetFocus()
4820
4821 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
4822
4823         * Control.cs: Don't handle WM_SETFOCUS if the same window already
4824           has focus (works around X11 sending a FocusIn after our SetFocus)
4825         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
4826
4827 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
4828
4829         * Mime.cs: Fix for the NET_2_0 build.
4830           NameValueCollection needs StringComparer now.
4831
4832 2006-05-31  Chris Toshok  <toshok@ximian.com>
4833
4834         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
4835         return (via an out parameter) the starting X of the column.
4836         (UpdateVisibleColumn): track change to FromPixelToColumn.
4837         (HitTest): add a ColumnResize case here.
4838         (DrawResizeLine): new function, probably poorly named.
4839
4840         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
4841         only need to keep one reference.
4842         (set_ListManager): same.
4843         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
4844         Also, add support for HitTestType.ColumnResize.
4845         (OnMouseMove): add column resize behavior here, and change the
4846         cursor to the correct one as we move around the datagrid.
4847         (OnMouseUp): terminate the column resize if we're resizing.
4848         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
4849         for the current cell.
4850         (ConnectListManagerEvents): use cached_currencymgr.
4851         (DisconnectListManagerEvents): fill this in, using
4852         cached_currencymgr.
4853         (SetCurrentCell): remove cached_currencymgr_events handling.
4854         (SetDataMember): only call DisconnectListManagerEvents if
4855         cached_currencymgr is != null.
4856         (SetDataSource): same.
4857         (OnListManagerCurrentChanged): cached_currencymgr_events ->
4858         cached_currencymgr.
4859
4860 2006-05-31  Jackson Harper  <jackson@ximian.com>
4861
4862         * BindingManagerBase.cs: Remove somedebug code that creeped into
4863         SVN.
4864         * TreeNode.cs: We get the indent level dynamically right now, so
4865         don't track it as a member.
4866         * TreeNodeCollection.cs: Make sure all nodes added to the list
4867         have parents, treeviews/topnodes setup properly.
4868         - Don't attempt to track indent level.
4869
4870 2006-05-30  Jackson Harper  <jackson@ximian.com>
4871
4872         * BindingContext.cs: Create the currency manager tables here.
4873         This allows us to more easily create null tables (when bad data
4874         members are used), and more easily create related currency
4875         managers.
4876         * CurrencyManager.cs: All the table creation stuff is done by the
4877         binding context now.
4878         - Current should throw an exception if listposition is -1.
4879         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
4880         been bound yet.
4881
4882 2006-05-30  Mike Kestner  <mkestner@novell.com>
4883
4884         * ListView.cs: allow reexpansion of zero-width column headers.
4885         Fixes #78528.
4886
4887 2006-05-28  Chris Toshok  <toshok@ximian.com>
4888
4889         * CurrencyManager.cs (get_Current): after the late binding
4890         listposition = -1 fix, we need to guard against it here and return
4891         null, otherwise we raise an exception (which is swallowed
4892         elsewhere, and breaks datagrid databinding.)
4893
4894 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
4895
4896         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
4897           than WM_SYSKEY, don't throw if get something unexpected (#78507)
4898
4899 2006-05-26  Jackson Harper  <jackson@ximian.com>
4900
4901         * ControlPaint.cs:
4902         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
4903         values, it's faster and it's all we care about (we don't care if
4904         the names aren't equal).
4905         * KeyboardLayouts.cs: Eliminate some dead code.
4906         - Lazy init things
4907         * X11Keyboard.cs: Lazy init keyboard detection.
4908         - Cleanup access modifiers a little.
4909
4910 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
4911
4912         * XplatUIX11.cs: Once again, attempting to get layout just right.
4913
4914 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
4915
4916         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
4917           the sizes of each link section, that will result in sizes that
4918           match DrawString's layout (Fixes #78391)
4919
4920 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
4921
4922         * FileDialog.cs: If AddExtension property is true autocomplete the
4923           extensions in SaveFileDialog correctly. Fixes bug #78453.
4924           Set MyNetwork and MyComputer to "C:\" for windows. This should
4925           fix part 8 of bug #78446 for now.
4926
4927 2006-05-26  Chris Toshok  <toshok@ximian.com>
4928
4929         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
4930         invalidate the current row header if we need to, but presumably
4931         we'll invalidate the row corrsponding to the bounds or
4932         editingControl.
4933         (GridHScrolled): switch back to this method, as it's part of the
4934         public api.  *sigh*.
4935         (GridVScrolled): same.
4936         (OnMouseWheel): hack up something that more or less works.  Call
4937         GridHScrolled/GridVScrolled directly, instead of duplicating much
4938         of their code here.
4939         (EnsureCellVisibility): reinstate a bunch of this code, since we
4940         can't just set the scrollbar Value and expect to do all the work
4941         in the ValueChanged handler.  Also, Call Update() after scrolling
4942         in one direction so the other XplatX11.ScrollWindow call has the
4943         proper stuff in the proper places.
4944         (EditCell): set is_editing to true before calling .Edit.
4945
4946         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
4947         don't bother comparing first.
4948         (OnKeyPress): call grid.ColumnStartedEditing before calling
4949         base.OnKeyPress.  this will set is_changing and invalidate the row
4950         header if necessary.
4951         (ProcessKeyMessage): for WM_CHAR messages, call
4952         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
4953         and WM_KEYDOWN.
4954         
4955         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
4956         it's done in the DataGrid.
4957         (NextState): call grid.ColumnStartedEditing, which takes care of
4958         invalidating the row header (and setting is_changing).
4959
4960         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
4961         here.  it's done in the DataGrid.
4962
4963 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4964
4965         * Control.cs: allow changing the cursor when the mouse position is
4966         out of bounds but Capture is set.
4967         * LinkLabel.cs: handle the case when the mouse button is pressed on the
4968         linklabel but released somewhere else.
4969
4970 2006-05-25  Jackson Harper  <jackson@ximian.com>
4971
4972         * TreeView.cs: When we get focus if there is no selected node make
4973         it the top node
4974         - Remove some uneeded setup code from Draw.
4975         * TreeNodeCollection.cs: If the tree doesn't have a top node when
4976         a new node is inserted make the new node the top.
4977         * XplatUIX11.cs:
4978         * Timer.cs: Use Utc time so that no local time zone stuff needs to
4979         be used (should be faster).
4980         
4981 2006-05-25  Chris Toshok  <toshok@ximian.com>
4982
4983         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
4984         problem with the last commit.
4985
4986 2006-05-25  Chris Toshok  <toshok@ximian.com>
4987
4988         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
4989         need the invalidate call here, while scrolling right-to-left via
4990         the left arrow key (i.e. moving the editing cell while scrolling).
4991
4992         * DataGrid.cs (.ctor): remove the initialization of
4993         ctrl_pressed/shift_pressed.  We no longer track them using key
4994         up/down handlers, but by using Control.ModifierKeys.  Also, switch
4995         to using ValueChanged handlers on the scrollbars instead of
4996         Scrolled event handlers.  This simplifies a bunch of the scrolling
4997         code.
4998         (GridHValueChanged): rename from GridHScrolled, and change it to
4999         work with the new event args.
5000         (GridVValueChanged): same.
5001         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
5002         (OnMouseWheel): actually scroll the datagrid.  Don't change the
5003         selected cell.
5004         (ProcessGridKey): correct all the keyboard navigation stuff I
5005         could find.  Ctrl up/down/left/right/home/end work now.
5006         (EnsureCellVisibility): correct method name spelling.  Also,
5007         simplify this a touch by not explicitly calling the
5008         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
5009         scrollbar value.
5010         (OnKeyUpDG): no need for this method now.
5011         
5012 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5013
5014         * LinkLabel.cs: display the OverrideCursor when hovering the label.
5015         Fixes bug #78392.
5016
5017 2006-05-25  Chris Toshok  <toshok@ximian.com>
5018
5019         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
5020         r61019.
5021
5022 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
5023
5024         * Application.cs: Moved setting of is_modal and closing to before
5025           we create the control, to allow the event handlers called as a
5026           result of creation affect closing. Also removed Gonzalo's previous
5027           change to setting DialogResult, the behaviour has been moved to 
5028           Form.ShowDialog()
5029         * Form.cs: 
5030           - ShowDialog(): Removed explicit creation of the form, let RunLoop
5031             handle it instead
5032           - ShowDialog(): If no dialog result is set, we need to return Cancel
5033           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
5034             the close is cancelled
5035
5036 2006-05-25  Jackson Harper  <jackson@ximian.com>
5037
5038         * StatusBar.cs: We only need to update the sizes of the other
5039         panels when we have auto size contents.  Also we are only updating
5040         the contents of the panel, not the borders, so compensate for the
5041         border width (TODO: get this width from the theme somehow).
5042         * TreeView.cs: Scrollable is true by default
5043         - Use invalidate instead of refresh where needed
5044         - Factor the scrollable value into scrollbar updating
5045         - Update the scrollbars if the Scrollable property is altered
5046         - Update the selected node if its ImageIndex is changed
5047         - Handle null nodes in UpdateNode (mainly so we don't have to
5048         check if selected is null when updating it
5049         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
5050         are factored into the visible count
5051         - Use VisibleCount for clarity in the code
5052         - When the font is changed we need to recurse through all the
5053         nodes and invalidate their sizes
5054         
5055 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5056
5057         * Application.cs: set the DialogResult to fixed when the main form is
5058         hidden or destroyed while being modal.
5059
5060 2006-05-25  Miguel de Icaza  <miguel@novell.com>
5061
5062         * Theme.cs: Use Tangoified messagebox icons. 
5063
5064         (GetSizedResourceImage): Also cope with width = 0 and do not
5065         trigger a warning in that case (0 means "give me your icon from
5066         the resouce, no special size needed).
5067
5068 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
5069
5070         * Application.cs: Leave runloop if the the main modal form is 
5071           hidden (fixes #78484)
5072
5073 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5074
5075         * BindingContext.cs : reject null datasource in Contains() and
5076           Item[].
5077         * CurrencyManager.cs : check data_member validity when data_source
5078           is dataset. When it is late binding, the initial position is -1.
5079
5080 2006-05-24  Jackson Harper  <jackson@ximian.com>
5081
5082         * TreeNodeCollection.cs: Dont't recalculate the visible order on
5083         inserted nodes that aren't visible.  This changes the
5084         max_visible_order which confuses scrollbar settings.
5085         - Use the enumerator to get the prev node instead of duplicating
5086         code.
5087         * TreeView.cs: Use new method for setting scrollbar values
5088         - Don't set the bounds every time the scrollbar is updated
5089         - When updating below the root node use an invalidate instead of a
5090         refresh to prevent the child controls (scrollbars) from being
5091         refreshed. (UpdateBelow still needs to be reworked anyways).
5092         - Reenable SetBottom now that visible orders are set correctly,
5093         added some debug code incase we ever get bad values there again.
5094         - Set the scrollbar max to 2 less then the max value, this
5095         compensates for the max value being one above the node count, and
5096         for scrollbars adding one extra "notch".
5097         - When drawing image nodes if there is an imagelist we draw the
5098         first image in the list if the supplied image index is out of the
5099         image list's bounds.
5100         
5101 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
5102
5103         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
5104           we receive a size change from the WM (Fixes #78503)
5105
5106 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
5107
5108         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
5109           rectangle (Fixes #78501)
5110
5111 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
5112
5113         * ButtonBase.cs: 
5114           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
5115             as a bitfield.
5116           - Fixed MouseMove to no longer switch pressed state unless the left
5117             mouse button is pressed. Atsushi provided the original patch (#78485)
5118           
5119 2006-05-24  Jackson Harper  <jackson@ximian.com>
5120
5121         * ScrollBar.cs: New internal methods that allow us to change a
5122         couple values on the scrollbar (the most common case is maximum
5123         and large change) without getting multiple invalidates.
5124
5125 2006-05-24  Chris Toshok  <toshok@ximian.com>
5126
5127         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
5128         (Edit): save off the original state in oldState, and set
5129         grid.is_editing to true.
5130         (OnKeyDown): abort editing if escape is pressed.  also, call
5131         NextState if space is pressed.
5132         (OnMouseDown): call NextState.
5133         (NextState): factor out shared code from OnKeyDown and OnMouseDown
5134         here.  Also, only invalidate the row header once (on the initial
5135         is_changing switch) to save on redraws.
5136
5137 2006-05-24  Chris Toshok  <toshok@ximian.com>
5138
5139         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
5140         if the value in the cell is different than it was before.  This
5141         keeps us from triggering a layout when we move around a datarid
5142         with a highlighted cell.
5143         (Edit): suspend layout when creating/positining the text box, and
5144         resume passing false so we don't ever actually re-layout.
5145         (ReleaseHostedControl): same.
5146         (EnsureTextBox): reformat slightly, and set WordWrap to false.
5147
5148         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
5149         control-key sequences should go to the datagrid - remove that
5150         lock.  Also, modify the conditions under which we move between
5151         cells when moving the cursor within a cell, and remove the "this"
5152         and "base" from field accesses.  We weren't even consistent, given
5153         they all were in the base class.
5154
5155 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
5156
5157         * Binding.cs : (.ctor)
5158           An obvious NRE fix for BindingTest.CtorNullTest().
5159
5160 2006-05-23  Chris Toshok  <toshok@ximian.com>
5161
5162         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
5163         them between lines.  This fixes some quirks editing cells in the
5164         datagrid.
5165
5166 2006-05-23  Jackson Harper  <jackson@ximian.com>
5167
5168         * TreeView.cs: Use begin/end update when doing expand/collapse all
5169         so that we don't get flicker on the scrollbar.
5170
5171 2006-05-23  Jackson Harper  <jackson@ximian.com>
5172
5173         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
5174         treenode calculations to be independant of the painting code. To
5175         do this nodes track a visible order which is calculated by the
5176         treeview.
5177         - Call new methods for expanding/collapsing nodes.  These methods
5178         use scrollwindow so we don't have to update everything below the
5179         node.
5180         * TreeView.cs: Refactored drawing and scrolling code.  We don't
5181         need to update nodes when drawing anymore or calculate scrollbar
5182         stuff.
5183         - Added new methods for expanding/collapsing nodes. These methods
5184         use ScrollWindow so as to not have to redraw all the nodes below.
5185         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
5186         we add/remove nodes or sort.
5187         - Handle removing the selected and the top node properly.
5188
5189 2006-05-23  Chris Toshok  <toshok@ximian.com>
5190
5191         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
5192         maybe this should actually happen in the datagrid code?
5193         (EndEdit): no need to invalidate anything, given that
5194         ReleaseHostedControl causes the datagrid to relayout, which
5195         invalidates everything anyway.
5196
5197         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
5198         in SetCurrentCell).
5199         (set_SelectionBackColor): call InvalidateSelection instead of
5200         Refresh.
5201         (set_SelectionForeColor): same.
5202         (BeginEdit): Flesh this out a bit.
5203         (CancelEditing): only do any of this if we're editing/adding.
5204         (EndEdit): same.
5205         (OnMouseDown): there's no need to cancel editing here, it's done
5206         in SetCurrentCell.
5207         (SetCurrentCell): only invalidate the current row header if it's a
5208         different row than the new one.
5209         (ShiftSelection): fix this to work like MS does.
5210         (ResetSelection): factor out the invalidation of selected_rows to
5211         InvalidateSelection.
5212         (SetDataSource): cancel any editing that's going on.
5213
5214         * DataGridColumnStyle.cs
5215         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
5216         call the non-interface version.
5217
5218         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
5219         header rectangle with the clip rectangle so we don't redraw the
5220         entire header for just a small area.  Gets rid of the last flicker
5221         when horizontally scrolling.
5222         (DataGridPaintRow): same.
5223
5224 2006-05-23  Mike Kestner  <mkestner@novell.com>
5225
5226         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
5227         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
5228         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
5229         Critical bug report.
5230
5231 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
5232
5233         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
5234           and this fixes #78493
5235
5236 2006-05-23  Miguel de Icaza  <miguel@novell.com>
5237
5238         * Theme.cs (GetSizedResourceImage): Scale images if the proper
5239         size is not found.  
5240         
5241         * FileDialog.cs: Do not change the background for the side bar as
5242         it wont work nicely with the theme, and also reduces the artifacts
5243         in rendering the icons (which I want to fix too).
5244
5245         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
5246         resources, not resgen resources. 
5247
5248         (PlatformDefaultHandler): Pull images using the new API.
5249
5250 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
5251
5252         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
5253           a reference to the hwnd and will not remove it unless there are
5254           no pending exposures (fixes #78341)
5255         * XplatUI.cs: Improved debug
5256
5257 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
5258
5259         * MenuAPI.cs : don't handle OnClick event when it was not the left
5260           button. Fixed bug #78487.
5261
5262 2006-05-23  Mike Kestner  <mkestner@novell.com>
5263
5264         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
5265         prefer submenus to the top menu for item lookup, to avoid popping down
5266         top-row items.
5267
5268 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
5269
5270         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
5271           Graphics.FillRectangle as the visual results are really bad (even
5272           on win). We now draw perfect arrows (and perfect shadows when the
5273           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
5274           Pen.DashPattern to draw the dots of each line.
5275
5276 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
5277
5278         * FileDialog.cs: Update the filename combobox when navigating through
5279           the ListView with the cursor keys. Fixes part 7 of bug #78446.
5280
5281 2006-05-22  Mike Kestner  <mkestner@novell.com>
5282
5283         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
5284         Fixes #78463.
5285
5286 2006-05-22  Mike Kestner  <mkestner@novell.com>
5287
5288         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
5289         requests. Fix a misspelled parameter and a copy paste exception error
5290         in Select.
5291
5292 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
5293
5294         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
5295           to get the same width/height (5/13) on X11 as the default font has on
5296           win32. This means that our DefaultFont emSize is smaller than the 
5297           the MS SWF equivalent (even thought the width/height stays the same)
5298
5299 2006-05-20  Jackson Harper  <jackson@ximian.com>
5300
5301         * MdiClient.cs:
5302         * MdiWindowManager.cs:
5303         * InternalWindowManager.cs: Make sure to use the border width from
5304         the theme.
5305
5306 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
5307
5308         * PrintDialog.cs: Implements printer details
5309
5310 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
5311
5312         * FileDialog.cs: Added focus handling for PopupButtonPanel.
5313           Fixes part 1 and 2 of bug #78446
5314
5315 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
5316
5317         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
5318           instead of sticking to the first ever calculated value
5319
5320 2006-05-19  Mike Kestner  <mkestner@novell.com>
5321
5322         * ComboBox.cs: fix mouse motion selection to use MousePosition and
5323         PointToClient, since Capture is set. Fixes #78344.
5324
5325 2006-05-19  Mike Kestner  <mkestner@novell.com>
5326
5327         * ListView.cs: match MS behavior in Details view where items are not
5328         drawn if Columns.Count == 0. 
5329         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
5330         Use a separate pen to draw the check, since changing the width affects
5331         the box as well.  Fixes #78454.
5332
5333 2006-05-18  Miguel de Icaza  <miguel@novell.com>
5334
5335         * ListView.cs: ArgumentOutOfRangeException, single versions of the
5336         exception should throw the name of the invalid argument.
5337
5338         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
5339         there are no files listed. 
5340
5341 2006-05-18  Jackson Harper  <jackson@ximian.com>
5342
5343         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
5344         up.
5345
5346 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
5347
5348         * Control.cs: Brought back our old UpdateZOrder method as a private
5349           function and switched our calls from UpdateZOrder to the new one.
5350           This fixes the Paint.Net canvas disappearing bug.
5351
5352 2006-05-18  Jackson Harper  <jackson@ximian.com>
5353
5354         * Theme.cs:
5355         * ThemeWin32Classic.cs:
5356         * InternalWindowManager.cs: Move the drawing into the theme,
5357         expose everything the theme should need from the window manager.
5358
5359 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
5360
5361         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
5362           from the call to NativeWindow to avoid walking up the parent chain
5363           further than needed (speeds up setting cursors and avoids setting
5364           the wrong cursor if a parent has another cursor defined)
5365         * Cursor.cs: When loading an icon as cursor, MS uses the center of
5366           the icon as hotspot, not what's contained as hotspot in the icon
5367           file. This fixes the perceived drawing offset seen with Paint.Net
5368         
5369 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
5370
5371         * XplatUIX11.cs: 
5372           - Store the calculated rectangle in Hwnd object and use it when 
5373             setting the client size
5374           - Force Toolwindows to always be type Dock, to ensure they're on top
5375
5376 2006-05-18  Mike Kestner  <mkestner@novell.com>
5377
5378         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
5379         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
5380         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
5381         Substantial refactoring to remove confusing nested classes. Coding
5382         standard and Get+Set->property refactorings.  Shift to index based
5383         highlighting in ComboListBox instead of constantly using IndexOf and
5384         Items[]. Add invalidations on resize for DropDownList to fix ugliness
5385         in FileDialog growth.  Draw borders manually since Simple mode needs
5386         to look like two independent controls.  Make listbox border
5387         conditional to DropDownStyle.  Improved OwnerDraw support.
5388
5389 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
5390
5391         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
5392         Don't set the disposed graphics to null, so we can throw the "right"
5393         exception if the graphics is reused later (added a flag to avoid 
5394         double disposing). Some behaviours are different under 2.0 and are
5395         filled under bug #78448.
5396
5397 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
5398
5399         * Control.cs: When double-buffering is enabled, we need to reset
5400           our graphics context between paint calls. Otherwise, any 
5401           transformations and other alterations on the context will 
5402           become cumulative (#77734)
5403
5404 2006-05-18  Mike Kestner  <mkestner@novell.com>
5405
5406         * ListView.cs: do focused item selection like MS on clicks. 
5407         Rework focus handling for ItemControl so LostFocus invalidates as
5408         well.
5409         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
5410         the ListView ItemControl has focus.
5411
5412 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
5413
5414         * XplatUIX11.cs: If client_window ends up being width or height zero
5415           due to border settings, move it off window inside whole_window (#78433)
5416
5417 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
5418
5419         * Mime.cs: Shrink the mime file cache correctly.
5420
5421 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
5422
5423         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
5424
5425 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
5426
5427         * XplatUIX11.cs (AddExpose): More sanity checks
5428
5429 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
5430
5431         * XplatUIX11.cs:
5432           - AddExpose: Don't add expose ranges outside the size of our
5433             window
5434           - Cast opacity values to Int32 to avoid crashes with certain
5435             values
5436           - Added disabled code paths that protect against illegal cross-
5437             thread painting (Developers.exe)
5438
5439 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
5440
5441         * ProgressBar.cs: Invalidate the control when it's resized
5442           since block size is based on control size. (#78388)
5443
5444 2006-05-16  Miguel de Icaza  <miguel@novell.com>
5445
5446         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
5447         of setting the incoming argument to the "reset" value, we set the
5448         this.datamember to string.empty (before we were invalidating the
5449         incoming data).   
5450
5451         Fixes 78420
5452
5453 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
5454
5455         * Form.cs: Only apply transparency settings after the form
5456           is created. (Fixes #77800)
5457
5458 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
5459
5460         * ApplicationContext.cs: Grab the HandleDestroyed event so
5461           we know when to fire OnMainFormClosed 
5462
5463 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
5464
5465         * Application.cs: Introduced sub-class to allow tracking of
5466           threads and centralized triggering of the event mess for
5467           ThreadExit, AppExit, etc..  (#76156)
5468
5469 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
5470
5471         * MimeIcon.cs:
5472           - Do not return a null icon index value for a mime subclass.
5473             Instead try the main mime type class too.
5474           - Seems that some newer distributions don't have a link to some
5475             gnome default icons anymore. So check the default gnome dir too.
5476           
5477
5478 2006-05-16  Jackson Harper  <jackson@ximian.com>
5479
5480         * MdiClient.cs: Don't paint the parent background image if we have
5481         our own background image.
5482
5483 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
5484
5485         * Control.cs:
5486           - PerformLayout: Do not shrink space filled by DockStyle.Fill
5487             controls, all filled controls are supposed to overlap (#78080)
5488           - UpdateZOrder is supposed to update the control's z-order in the
5489             parent's z-order chain. Fixed to behave like that
5490           - BringToFront: Removed obsolete code
5491           - SendToBack: Simplyfied
5492           - SetChildIndex: Trigger layout calculations when Z-order changes
5493             since layout is done by z-order
5494
5495 2006-05-16  Chris Toshok  <toshok@ximian.com>
5496
5497         [ fixes bug #78410 ]
5498         * DataGrid.cs (set_AlternatingBackColor): use
5499         grid_drawing.InvalidateCells instead of Refresh().
5500         (set_BackColor): call grid_drawing.InvalidateCells.
5501         (set_BackgroundColor): use Invalidate instead of Refresh.
5502
5503         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
5504         invalidate the cell area.
5505
5506 2006-05-15  Chris Toshok  <toshok@ximian.com>
5507
5508         [ fixes bug #78011 ]
5509         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
5510         on to DataGridPaintRow.
5511         (DataGridPaintRow): take a clip argument, and only draw the cells
5512         which intersect it.  same with the not_usedarea.
5513
5514         * Theme.cs (DataGridPaintRow) add @clip parameter.
5515
5516         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
5517         XplatUI.ScrollWindow.
5518         (ScrollToRow): same.
5519
5520         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
5521         with last column which was causing a gray swath to appear with the
5522         XplatUI.ScrollWindow code.
5523
5524 2006-05-15  Chris Toshok  <toshok@ximian.com>
5525
5526         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
5527         use XplatUI.ScrollWindow.
5528         (VerticalScrollEvent): use XplatUI.ScrollWindow.
5529
5530 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
5531
5532         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
5533
5534 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
5535
5536         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
5537           file since there are no equivalent X11 cursors
5538
5539 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
5540
5541         * MonthCalendar.cs : DateTimePicker should reflect selected date
5542           on mouse*up*, not mouse*down*. Fixed originally reported part of
5543           bug #76474.
5544
5545 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
5546
5547         * TabControl.cs : When argument index is equal or more than tab
5548           count, just ignore. Fixed bug #78395.
5549
5550 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
5551
5552         * Control.cs: Dispose all child controls when control is diposed (#78394)
5553
5554 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
5555
5556         * ColorDialog.cs: Finally it is possible to select the color with
5557           the text boxes
5558
5559 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
5560
5561         * PrintDialog.cs: Fix typo
5562
5563 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
5564
5565         * PrintDialog.cs: PrintDialog is not resizable
5566         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
5567           color. Made some ToolBar drawing methods protected virtual.
5568
5569 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
5570
5571         * PrintDialog.cs: Implementation of the PrintDialog
5572
5573 2006-05-12  Chris Toshok  <toshok@ximian.com>
5574
5575         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
5576         thumb, instead use MoveThumb.  This has the side effect of making
5577         most of the other thumb moving machinery use MoveThumb as well.
5578         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
5579         need to actually invalidate the rectangle where the new thumb will
5580         go.
5581         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
5582         We force an Update() after, so it's not as fast as it could be,
5583         but at least there's zero flicker and no droppings.
5584         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
5585         (UpdateThumbPos): add another argument (dirty), which says whether
5586         or not to calculate/add dirty regions which we later invalidate.
5587         For cases where we know we're going to use MoveThumb, we pass
5588         false for this.  Otherwise, pass true.
5589
5590 2006-05-12  Jackson Harper  <jackson@ximian.com>
5591
5592         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
5593         the status bar.
5594         
5595 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
5596
5597         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
5598           and GetClipRegion methods and UserClipWontExposeParent property.
5599         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
5600           overriding UserClipWontExposeParent property, setting to false, since
5601           Win32 handles the required expose messages to draw our clipped parent
5602           areas internally
5603         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
5604           PaintEventStart to set the user clip region if set.
5605         * Control.cs: 
5606           - Now internally tracking the Region for the control since we need to
5607             store it if the handle is not yet created and only set it when it
5608             becomes created. Before setting the region forced handle creation
5609           - Added code to draw the parents underneath a user-clipped region
5610         * Hwnd.cs: Added UserClip property
5611
5612 2006-05-12  Chris Toshok  <toshok@ximian.com>
5613
5614         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
5615         (set_Maximum): same.
5616         (set_Minimum): same.
5617         (set_SmallChange): same.
5618         (OnMouseUpSB): remove the call to refresh when releasing the
5619         thumb.  We shouldn't need it.
5620         
5621 2006-05-12  Miguel de Icaza  <miguel@novell.com>
5622
5623         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
5624         AutoSize set to None, we do not need to relayout everything, we
5625         just need to invalidate the current region.
5626
5627         (Draw): Do not draw the entire ClientArea, just redraw the
5628         clip area being passed.
5629
5630         * MdiClient.cs: Make MdiClient constructor with the Form argument
5631         internal. 
5632
5633 2006-05-12  Jackson Harper  <jackson@ximian.com>
5634
5635         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
5636         parents background image,  but strangely not their own.
5637         - (DrawStatusBarPanel): Take into account horizontal alignment
5638         when drawing the strings and icons.
5639
5640 2006-05-12  Mike Kestner  <mkestner@novell.com>
5641
5642         * ListBox.cs: avoid invalidations for focus when the collection is
5643         empty. 
5644
5645 2006-05-12  Chris Toshok  <toshok@ximian.com>
5646
5647         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
5648         invalidate the entire thumb area.  Call InvalidateDirty which
5649         limits the redraw to the thumb itself and surrounding pixels.
5650
5651         * XplatUIX11.cs (ScrollWindow): optimize copying.
5652         
5653 2006-05-12  Chris Toshok  <toshok@ximian.com>
5654
5655         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
5656         Figure out the positioning/layout in a single pass instead of
5657         multiple recursive invocations.  Speeds up the initial display of
5658         the data grid.  Also, make many things private that were
5659         originally public but unused outside this class.
5660
5661 2006-05-11  Jackson Harper  <jackson@ximian.com>
5662
5663         * MdiClient.cs: Improved layout code.
5664
5665 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
5666
5667         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
5668           not SelectedObject.
5669
5670 2006-05-11  Chris Toshok  <toshok@ximian.com>
5671
5672         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
5673         union of that will always be {0,0,width,height}.
5674
5675 2006-05-11  Jackson Harper  <jackson@ximian.com>
5676
5677         * Form.cs: Match MS's DefaultSize for forms (they must have
5678         changed the size in sp2).
5679
5680 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
5681
5682         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
5683
5684 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
5685
5686         * TextControl.cs : Fixed bug #78109. This incorrect position
5687           comparison caused crash on automatic line split.
5688         * TextBoxBase.cs : reduce duplicate code.
5689
5690 2006-05-10  Jackson Harper  <jackson@ximian.com>
5691
5692         * MdiClient.cs: Active form is only sent to the back when using
5693         the Next form functionality, when a form is clicked the current
5694         active shouldn't be sent to the back.
5695         - Layout the mdi windows when the container is first made visible.
5696         * Form.cs: Give the MdiClient a ref to the containing form when we
5697         create it.
5698         
5699 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
5700
5701         * LinkLabel.cs : link_font could be uninitialized, so populate one
5702           before actual use. Fixed bug #78340.
5703
5704 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
5705
5706         * XplatUIX11.cs : clipboard format native value is IntPtr.
5707           Fixed bug #78283.
5708
5709 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
5710
5711         * Control.cs: 
5712           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
5713             which is passed up the parent chain by DefWndProc
5714           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
5715             to DefWndProc (#77956)
5716         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
5717
5718 2006-05-10  Jackson Harper  <jackson@ximian.com>
5719
5720         * MdiClient.cs: We need to remove the controls from the mdi
5721         collection, when we close the window.
5722         * MdiWindowManager.cs: Special handling of closing mdi windows.
5723         * InternalWindowManager.cs: Make the close method virtual so the
5724         mdi window manager can handle it specially.
5725
5726 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
5727
5728         * DataGrid.cs:
5729           - Recalculate grid when the data source has changed
5730           - Matches styles provided by user from all data sources types
5731         * DataGridTableStyle.cs: For columns that provided by the user set the
5732         with the preferred value is there was unassigned.
5733         * CurrencyManager.cs: throw OnItemChanged event
5734
5735 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
5736
5737         * PictureBox.cs: Don't animate until handle is created. Start animation
5738           when handle is created.
5739
5740 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
5741
5742         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
5743           current codebase.
5744         * XEventQueue.cs: We don't need to provide the extra info
5745
5746 2006-05-10  Jackson Harper  <jackson@ximian.com>
5747
5748         * MdiClient.cs: If the mdi clients parent form has a background
5749         image set, we draw that background image for the mdi area's
5750         background.
5751
5752 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
5753
5754         * TextBoxBase.cs: Set IBeam cursor (#78347)
5755
5756 2006-05-10  Mike Kestner  <mkestner@novell.com>
5757
5758         * ToolBar.cs: fix some text padding issues with ButtonSize
5759         calculation. Update the default size to match MS documentation.
5760         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
5761         button size. Fixes #78296.
5762
5763 2006-05-10  Mike Kestner  <mkestner@novell.com>
5764
5765         * ListBox.cs: use is_visible for scrollbar positioning in case the
5766         control isn't on screen yet.  Fix off by one with Right vs Width
5767         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
5768         
5769 2006-05-10  Jackson Harper  <jackson@ximian.com>
5770
5771         * X11Dnd.cs: Drop to a control with another control on top of it.
5772         * ToolBar.cs: Work on a copy of the buttons list, so that it can
5773         be modified in click handlers. TODO: Look for similar problems in
5774         other controls.
5775
5776 2006-05-09  Jackson Harper  <jackson@ximian.com>
5777
5778         * Form.cs: Window managers need the old window state when setting
5779         window state now.
5780         * InternalWindowManager.cs: Allow the base mdi window manager to
5781         handle more of the MDI only stuff (like maximize buttons).
5782         * MdiWindowManager.cs: Fix some snafus in changing the window
5783         state.  Add all the menu functionality, for both popup and
5784         maximized menus.
5785         * MdiClient.cs: When a new form is selected the currently
5786         activated form is sent to the back, this matches MS.
5787         - Implement a new method to activate the next mdi child window.
5788
5789 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
5790
5791         * Control.cs: 
5792           - Added new InternalCapture method to allow controls to prevent
5793             the capture behaviour on the click handlers
5794           - Switched to use InternalCapture
5795         * ComboBox.cs:
5796           - Using InternalCapture to prevent mouse captures from being released
5797             on mouse button release (Fixes #78100)
5798         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
5799           returns Form borders if a caption is present. (Fixes #78310)
5800
5801 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
5802
5803         * TreeNode.cs: Changed serialization .ctor to not require every field
5804           to be present. (#78265)
5805         * OwnerDrawPropertyBag.cs: Added serialization .ctor
5806
5807 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
5808
5809         * MimeIcon.cs: for is faster than foreach for strings.
5810
5811 2006-05-05  Mike Kestner  <mkestner@novell.com>
5812
5813         * CheckedListBox.cs: update check handling code to not use selected.
5814         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
5815         behavior for visual feedback, motion response, shift/ctrl handling,
5816         and properly deal with all 4 selection modes. Updates to bounds
5817         handling logic.  Add scroll wheel support. [Fixes #77842]
5818
5819 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
5820
5821         * ListView.cs:
5822           - Moved adding of Implicit controls into .ctor. That way, subsequent
5823             creation of the controls will not cause them to think they are 
5824             toplevel windows (fixes #78200 header problem)
5825           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
5826           - Switched visibility setting of header control to use internal field
5827             to avoid triggering handle creation
5828           - Now checking if handle is created before causing a refresh when items
5829             are added (This makes us now match handle creation time with MS)
5830         * Splitter.cs: Removed loading of private splitter cursor, switched to
5831           Cursors version now that that is loading the right ones
5832         * Cursors.cs: Load proper splitter cursors from resources
5833         * Cursor.cs: Added second method of loading resource cursors for the 
5834           VS.Net users amongst us
5835
5836 2006-05-05  Mike Kestner  <mkestner@novell.com>
5837
5838         * ListView.cs: give header_control a minimum size based on the
5839         ListView size.
5840
5841 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
5842
5843         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
5844           window seems to do that with metacity, so set that type. (#78120)
5845
5846 2006-05-05  Mike Kestner  <mkestner@novell.com>
5847
5848         * ListViewItem.cs: fix Details mode checkbox layout bug.
5849         * ThemeWin32Classic.cs: draw a ListView column header for unused space
5850         at the end of the header, if it exists. [Fixes for #78200]
5851
5852 2006-05-04  Jackson Harper  <jackson@ximian.com>
5853
5854         * MdiClient.cs: Add a helper property to get the container form.
5855         * MdiWindowManager.cs: We have to make sure to use the menu origin
5856         when drawing the icons and buttons, this fixes maximized window
5857         icons/buttons on win32.
5858         * InternalWindowManager.cs: Reset the restore captions when a
5859         window goes from Maximized to Minimized and vice versa. Move the
5860         DrawMaximizedButtons into the MdiWindowManager source, tool
5861         windows can't be maximized. NOTE: This could use a little
5862         refactoring if time ever permits.
5863         
5864 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
5865
5866         * TextBox.cs: Add MWFCategoryAttributes
5867         * TextBoxBase.cs: Add MWFCategoryAttributes
5868         * Form.cs: Add MWFCategoryAttributes
5869
5870 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
5871
5872         * Control.cs: Add MWFCategoryAttributes
5873         * ScrollableControl.cs: Add MWFCategoryAttributes
5874
5875 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
5876
5877         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
5878           Divider is true. Fix a little glitch in PropertyToolBar
5879           drawing code
5880
5881 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
5882
5883         * Control.cs:
5884           - Dispose: Call base.Dispose, this causes the disposed event
5885             to be fired (and probably other, more important stuff)
5886           - SetVisibleCore: Set is_visible to true after creating the
5887             window so that the window still gets created invisible (if
5888             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
5889             to generate a WM_ACTIVE message
5890         * Form.cs: Call Dispose when we want to destroy the window, instead of
5891           just destroying the handle (Dispose will do that for us)
5892         * XplatUIX11.cs:
5893           - RootWindow also needs a queue, so we can properly process the
5894             property change events from RootWindow (like Activate)
5895           - Generatic synthetic WM_ACTIVE message when the active window is
5896             being destroyed
5897
5898 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
5899
5900         * LinkLabel.cs: Trigger a recalc of our label dimensions when
5901           bounds are changed
5902
5903 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
5904
5905         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
5906           for determining width and height (image might not be assigned if
5907           we're drawing an imagelist)
5908
5909 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
5910
5911         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
5912         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
5913           height from system
5914         * Theme.cs: No longer returns hardcoded menu height, instead calls
5915           new driver method
5916         * Form.cs (OnLoad): Scaling happens before triggering Load events 
5917           on MS (# 78257)
5918
5919 2006-05-01  Mike Kestner  <mkestner@novell.com>
5920
5921         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
5922
5923 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
5924
5925         * TextBoxBase.cs: Removed Fixme
5926         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
5927
5928 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
5929
5930         * XplatUIX11.cs:
5931           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
5932             the rectangle relative to the parent, considering borders. We
5933             don't really want that.
5934           - ScrollWindow: Fixed warning to be more understandable
5935         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
5936           scrollbars and scroll only the visible area
5937         * RichTextBox.cs: Removed debug output
5938
5939 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
5940
5941         * NumericUpDown.cs (Text): Just use base
5942         * UpDownBase.cs: Ensure txtView is created before using it
5943
5944 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
5945
5946         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
5947           casting to IntPtr to avoid 64bit overflow errors
5948
5949 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
5950
5951         * Control.cs:
5952           - AllowDrop: Don't force handle creation.
5953           - CreateHandle: Added call to tell driver if we're allowed to drop
5954
5955 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
5956
5957         * FileDialog.cs: Remember the last directory not only for the
5958           current instance but also for new FileDialog instances.
5959
5960 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
5961         
5962         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
5963           broke sending async messages
5964
5965 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
5966
5967         * XplatUIX11.cs:
5968           - ScrollWindow: Fixed method. We finally generate expose events again
5969             for scrolled areas. This was causing 'garbage' when scrolling
5970             textbox and other controls that used ScrollWindow
5971           - Switched from using the regular queue for paint events to the MS 
5972             model of 'generating' paint events when the queue is empty.
5973             We use the new XQueueEvent.Paint subclass to store which windows
5974             need painting.
5975           - AddExpose now takes the x/y/width/height of the exposed area
5976             and inserts the window into the paint queue if not already there
5977           - InvalidateWholeWindow: Switched to use new AddExpose method
5978           - UpdateMessageQueue: Added which queue to monitor for paint events
5979           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
5980             the unlikely case nothing above handles it. We reset the expose
5981             pending states to get them off the queue.
5982           - GetMessage: Now pulls a paint event if no other events are in the
5983             queue
5984           - Invalidate: Switched to new AddExpose method
5985           - PeekMessage: Updated to understand pending paint events
5986           - UpdateWindow: Fixed logic bug. We were only updating if the window
5987             didn't need updating. Also switched to sending WM_PAINT directly,
5988             like MS does.
5989         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
5990           and random access Remove(). The random access is needed to handle
5991           UpdateWindow() where a WM_PAINT is sent directly without accessing
5992           the queue.
5993         * ScrollBar.cs: Added Update() calls to cause immediate updates to
5994           allow for better feedback when scrolling. Scrollbars are small and
5995           the immediate update should make it 'feel' more responsive without
5996           slowing things down. ScrollBar still needs it's invaliate logic
5997           updated to not always invalidate the whole bar on certain changes.
5998
5999 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6000
6001         * Control.cs:
6002         (BackColor): if the control does not support a transparent background,
6003         return the default backcolor when the parent backcolor is transparent.
6004
6005 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
6006
6007         * Application.cs: Updated to new StartLoop/GetMessage API
6008         * RichTextBox.cs: Provide some output on RTF parsing errors
6009         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
6010           new queue_id argument to GetMessage and PeekMessage to allow faster
6011           handling of per-thread queues in drivers.
6012         * Hwnd.cs: Added Queue tracking and property
6013         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
6014         * XEventQueue.cs: Added thread trackingA
6015         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
6016         * XplatUIX11.cs:
6017           - Implemented new per-thread queue
6018           - GetMessage: Fixed return/break behaviour on several cases. We were
6019             returning stale messages in some cases, instead of just processing
6020             the next message
6021
6022 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
6023
6024         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
6025
6026 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
6027
6028         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
6029           fixed off-by-one comparisons between Width/Height and Right/Bottom.
6030
6031 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
6032
6033         * PropertyGridView.cs: Fix drop down width.
6034
6035 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
6036
6037         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
6038           a mess in DrawToolBar, so I removed one of them.
6039
6040 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
6041
6042         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
6043           needed (clip). Otherwise we get artifacts.
6044
6045 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
6046
6047         * FixedSizeTextBox.cs: Added constructor to allow specifying which
6048           dimension is fixed
6049         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
6050           and switched FixedSizeTextBox to only be fixed vertical (#78116)
6051         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
6052           if it matches the scale base font (avoids unneeded scaling)
6053
6054 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
6055
6056         * X11DesktopColors.cs: One gtk_init_check should be enough
6057
6058 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
6059
6060         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
6061           match MS behaviour
6062
6063 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
6064
6065         * TextBoxBase.cs: 
6066           - Generate OnTextChanged for Backspace even if we're only deleting
6067             the current selection
6068           - When setting the Text property, only select all text if the
6069             control does not have focus when it is being set. Otherwise
6070             just place the cursor at the beginning of the control
6071
6072 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
6073
6074         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
6075           Added a little helper to draw PropertyGrid ToolBar with a different
6076           border and a different BackColor.
6077         * PropertyGrid.cs: Some background parts didn't get painted with the
6078           correct background color. Added a class that helps us to draw the
6079           correct border for PropertyGridView and a class that helps us to
6080           draw ToolBars with a different backcolor
6081         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
6082
6083 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
6084
6085         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
6086         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
6087
6088 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
6089
6090         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
6091           into the palette entries. Also, since we're working on a copy
6092           we needed to copy the palette back onto the bitmap.
6093         * Cursor.cs: Same fix as XplatUIWin32.cs.
6094
6095 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
6096
6097         * ImageListStreamer.cs: Need to read the var (or we're off)
6098
6099 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
6100
6101         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
6102           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
6103           TextBoxBase.cs: Unused var fixes
6104         * AxHost.cs: Small 2.0 fix
6105         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
6106           as it seems that is what at least Metacity expects. This will make
6107           icons show up on 64bit platforms. We still have some 64bit size
6108           issues, though, since the startup app window size still won't match.
6109
6110 2006-04-25  Mike Kestner  <mkestner@novell.com>
6111
6112         * *.cs: cleanup newly reported exception var unused warnings.
6113
6114 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
6115
6116         * ThemeWin32Classic.cs: Button image alignment now matches exactly
6117           ms
6118
6119 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
6120
6121         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
6122           image. The image position is always the same, no matter if the
6123           button is pressed or not.
6124
6125 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
6126
6127         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
6128           selection and set the correct filename for SaveFileDialog.
6129           Patch by Emery Conrad.
6130
6131 2006-04-24  Mike Kestner  <mkestner@novell.com>
6132
6133         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
6134         check for item.X outside the ClientRect instead of item.Y. Fixes
6135         #78151.
6136
6137 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6138
6139         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
6140         trust that value blindly and do some sanity check. Fixes bug #77814.
6141
6142 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6143
6144         * ImageListStreamer.cs: save the mask as a 1bpp image.
6145
6146 2006-04-21  Mike Kestner  <mkestner@novell.com>
6147
6148         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
6149         pass Checked and Indeterminate to the Theme Engine. Improve
6150         encapsulation with ListBox.
6151         * ListBox.cs: Keep a StringFormat instead of calculating it every item
6152         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
6153         nested types.  Move all CheckState functionality to CheckedListBox.
6154         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
6155         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
6156         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
6157         single base list. Fix scrollbar sizing and placement to mirror MS.
6158         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
6159         used.
6160         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
6161         for CheckedListBox by using new DrawItemState info.  Center the
6162         checkboxes on the items. Use new StringFormat property.
6163
6164 2006-04-18  Jackson Harper  <jackson@ximian.com>
6165
6166         * Form.cs: MdiChildren don't do default locations the same way as
6167         regular forms.  This prevents a crash when trying to position the
6168         mdi windows.
6169
6170 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
6171
6172         * PropertyGridTextBox.cs: Formatting, copyright
6173         * PropertiesTab.cs: Formatting
6174         * PropertyGrid.cs: Formatting
6175         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
6176           click toggling of values
6177           
6178 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
6179
6180         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
6181         * Control.cs (.ctor): verify_thread_handle is static, don't reset
6182           every time a control is created
6183         * Application.cs: Removed obsolete EnableRTLMirroring method
6184
6185 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
6186
6187         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
6188         SelectedIndex to -1. Fixes bug #78121.
6189
6190 2006-04-17  Jackson Harper  <jackson@ximian.com>
6191
6192         * Binding.cs: Handle null values for Current and BindingContext.
6193         This occurs when binding is a little delayed.
6194         * CurrencyManager.cs: return null for Current when there are no
6195         items in the list.
6196         - Hookup to the listchanged event on the DataView and update
6197         bindings when the list is changed.  This fixes late binding of
6198         controls.
6199
6200 2006-04-17  Jackson Harper  <jackson@ximian.com>
6201
6202         * X11Dnd.cs:
6203         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
6204         Ringenbach.
6205
6206 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
6207
6208         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
6209           place
6210         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
6211           with the correct ButtonState
6212
6213 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
6214
6215         * XplatUIX11.cs: Improved distinguishing between window types to
6216           tell the WM a type closer to what the app wants (Fixes #78107)
6217
6218 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
6219
6220         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
6221           GrabHandle
6222
6223 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
6224
6225         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
6226           drawing code to reflect the size grip changes
6227
6228 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6229
6230         * ImageListStreamer.cs: fix handling of the mask that follows the main
6231         bitmap when deserializing and serialize it properly. The generated mask
6232         should better be a 1bpp image, but I'll do that later.
6233
6234 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
6235
6236         * FileDialog.cs: Show something in the DirComboBox on *nix if the
6237           path doesn't fit into some of our Current.Places
6238
6239 2006-04-13  Jackson Harper  <jackson@ximian.com>
6240
6241         * ComboBox.cs: Use borders instead of drawing our own decorations,
6242         try to obey correct rules for heights.
6243         * Theme.cs:
6244         * ThemeNice.cs:
6245         * ThemeClearLooks.cs:
6246         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
6247         this is now handled by borders.
6248         - Remove unused DrawListBoxDecorationSize method.
6249         
6250 2006-04-13  Mike Kestner  <mkestner@novell.com>
6251
6252         * MenuAPI.cs: null guarding for the disbled click check fixes crash
6253         reported by Alex.
6254
6255 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
6256
6257         * ThemeWin32Classic.cs: 
6258           - Fixed CPDrawStringDisabled
6259           - Corrected drawing of disabled menu items
6260           - Fixed drawing of disabled radio buttons (bug #78095)
6261           - Draw check in a disabled CheckBox with color ControlDark 
6262
6263 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
6264
6265         * Form.cs: Use the provided width when calculating the menu size;
6266           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
6267           and ClientSize.Width won't be updated yet
6268         * Application.cs: Use Visible instead of Show() to make form visible,
6269           this way we create the handle later and menusize is considered
6270
6271 2006-04-12  Mike Kestner  <mkestner@novell.com>
6272
6273         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
6274         reporting.
6275
6276 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
6277
6278         * TextBox.cs: Implemented context menu
6279
6280 2006-04-12  Mike Kestner  <mkestner@novell.com>
6281
6282         * ListView.cs: implement box selection. fixes #77838.
6283         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
6284
6285 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
6286
6287         * XplatUIX11.cs: Added setting of window type when transient window
6288           is created (metacity would move it otherwise)
6289         * X11Structs.cs: Added WINDOW_TYPE atoms
6290         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
6291           background (the control is Opaque but still wants transparent
6292           backgrounds)
6293
6294 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
6295
6296         * Control.cs: Added OnPaintBackgroundInternal to allow controls
6297           that set Opaque but don't mean it (like all ButtonBase-derived
6298           controls) to still draw their background
6299         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
6300           the background
6301
6302 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
6303
6304         * Control.cs (PaintControlBackground): Set the graphics object
6305           on our PaintEvent to null to prevent it from being disposed
6306           when the PaintEvent gets disposed
6307
6308 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
6309
6310         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
6311         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
6312
6313 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
6314
6315         * Control.cs: 
6316           - Added transparency check to BackColor property. Transparent
6317             backgrounds are only allowed if the control styles permit it
6318           - Added recursive painting of parent control background and
6319             foreground if a control with a transparent backcolor is drawn
6320             (Thanks to Tim Ringenback for providing his 'hack' as a base
6321              for this patch) Fixes #77985 and #78026.
6322           - Added Opaque style check before calling OnPaintBackground, no
6323             need to draw the background if the control is opaque
6324           - Removed ControlAccessibleObject owner variable (inherited from
6325             base, no need to define again)
6326           - Added some documentation links explaining the drawing events
6327             and styles
6328
6329 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
6330
6331         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
6332           that the affected control is the located at the left border of our
6333           parent (Fixes #77936)
6334
6335 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
6336
6337         * TextBoxBase.cs: When rendering disabled or readonly controls,
6338           draw the background with 'Control' instead of 'Window' color as
6339           long as the user hasn't specifically set a color
6340
6341 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
6342
6343         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
6344           since that won't be updated if the user types text (only if it's
6345           programatically set)
6346
6347 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
6348
6349         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
6350           layout changes do to app-triggered resizes will have the proper
6351           display rectangle for layout
6352
6353 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
6354
6355         * ThemeWin32Classic.cs:
6356           - Make use of the SystemBrushes and SystemPens wherever possible
6357           - Corrected some highlight colors
6358           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
6359             drawing
6360         * Theme.cs: Added Empty field to CPColor struct
6361
6362 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
6363
6364         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
6365           is displayed when calculating the display rectangle. Thanks to Mike
6366           for teaching me the err of my ways.
6367
6368 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
6369
6370         * ScrollableControl.cs:
6371           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
6372             (instead of 0,0) and we now return the real width/height instead of
6373             just the clientrectangle, adjusted for padding. The rectangle is
6374             now cached and created by the new CalculateDisplayRectangle method.
6375           - Created new CalculateDisplayRectange method, which basically does
6376             what get_DisplayRectangle() did originally, but now using the 
6377             right edge instead of DisplayRectangle to determine the size of
6378             our scrollbars
6379           - get_Canvas(): Fixed it to properly calculate canvas for 
6380             right/bottom controls which seem to be placed to the right/bottom
6381             of any controls that have a fixed location
6382           - Removed TODO that's taken care of
6383           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
6384             and SetDisplayRectLocation according to new MSDN2 docs
6385           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
6386             event when that is called, this is added for compatibility
6387           - ScrollControlIntoView(): Implemented.
6388           - Switched scrollbars to be implicit, they shouldn't be selectable
6389         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
6390           call it when the active control is set/changed
6391         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
6392         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
6393           implicit_control variable (used for native Win32 message generation)
6394         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
6395           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
6396         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
6397         * XplatUIStructs.cs: Added ScrollBarCommands enum
6398
6399 2006-04-10  Jackson Harper  <jackson@ximian.com>
6400
6401         * ButtonBase.cs:
6402         * CheckedListBox.cs:
6403         * ComboBox.cs:
6404         * DataGrid.cs:
6405         * DataGridView.cs:
6406         * Form.cs:
6407         * GroupBox.cs:
6408         * ListBox.cs:
6409         * PrintPreviewControl.cs:
6410         * ProgressBar.cs:
6411         * PropertyGrid.cs:
6412         * Splitter.cs:
6413         * StatusBar.cs:
6414         * TrackBar.cs:
6415         * UpDownBase.cs: Fixup base event overrides.
6416         
6417 2006-04-06  Mike Kestner  <mkestner@novell.com>
6418
6419         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
6420         all user-initiated value changes to min <= value <= max-thumbsz+1.
6421         (set_Value): check for vert/horiz when calculating new thumb position.
6422         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
6423         like MS does.
6424         (OnMouseMoveSB): refactor the thumb dragging code and refine
6425         invalidation logic to reduce flicker.
6426         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
6427         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
6428         (UpdateThumbPosition): small code readability cleanup
6429
6430 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
6431
6432         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
6433           different
6434
6435 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
6436
6437         * ThemeNice.cs: Use a better graphics effect when a button is pressed
6438
6439 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
6440
6441         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
6442         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
6443           This dramatically reduces the number of Pen.Dispose calls. 
6444           Where possible call ResPool methods only once instead of calling it
6445           over and over again (for example for the same color).
6446
6447 2006-04-06  Mike Kestner  <mkestner@novell.com>
6448
6449         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
6450         Also remove an unused private field on the collection. Fixes #77972.
6451
6452 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
6453
6454         * ThemeNice.cs: Added ToolBar drawing code
6455
6456 2006-04-06  Mike Kestner  <mkestner@novell.com>
6457
6458         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
6459         I'm assuming that means we need to look up the toplevel for the
6460         provided control. Fixes the crash trace in #77911 but exposes another
6461         crash in some strange reflection usage in NDocGui.
6462
6463 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
6464
6465         * ThemeNice.cs: Gave it a little silver touch and added Images
6466           method
6467         * FontDialog.cs: FontDialog is not resizable
6468         * FileDialg.cs: Added SizeGripStyle.Show
6469
6470 2006-04-05  Jackson Harper  <jackson@ximian.com>
6471
6472         * KeyboardLayouts.cs: Remove warning.
6473
6474 2006-04-05  Jackson Harper  <jackson@ximian.com>
6475
6476         * Control.cs: Enable OnPaintInternal so we can use it for drawing
6477         all of our controls instead of Paint +=.
6478         * ListBox.cs:
6479         * ListView.cs:
6480         * MenuAPI.cs:
6481         * MessageBox.cs:
6482         * NotifyIcon.cs:
6483         * ProgressBar.cs:
6484         * ScrollBar.cs:
6485         * Splitter.cs:
6486         * StatusBar.cs:
6487         * TabControl.cs:
6488         * TextBoxBase.cs:
6489         * ToolBar.cs:
6490         * TrackBar.cs:
6491         * UpDownBase.cs:
6492         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
6493         use OnPaintInternal. Remove Width/Height and Visible checks in
6494         paint handler, this is done at a higher level now.
6495         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
6496         * PaintEventArgs.cs: Add a handled flag so controls that don't
6497         want anymore painting after OnPaintInternal can make sure OnPaint
6498         isn't called.
6499
6500 2006-04-05  Mike Kestner  <mkestner@novell.com>
6501
6502         * Form.cs: fix the menu WndProc hacks to respect the native enabled
6503         state of the form, so that we don't process events when Modal dialogs
6504         are up. Fixes #77922.
6505
6506 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
6507
6508         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
6509           checking is done.
6510
6511 2006-04-05  Mike Kestner  <mkestner@novell.com>
6512
6513         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
6514
6515 2006-04-05  Mike Kestner  <mkestner@novell.com>
6516
6517         * ListView.cs (HeaderMouseMove): null guarding for the over column
6518         when setting up the drag_to_index.  Fixes #78015.
6519
6520 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
6521
6522         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
6523           in the taskbar. Transient windows seem to accomplish that.
6524
6525 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
6526
6527         * Form.cs:
6528           - Re-enabled CreateParams.X/Y code for FormStartPosition
6529           - Added code for manual placement when creating the Control
6530           - Incomplete patch to treat MDI forms differently when
6531             setting the ClientSizeCore. (Still need to figure out handling
6532             x/y coords there)
6533         * XplatUIX11.cs:
6534           - When we're explicitly setting the X/Y position of a non-Child
6535             window, let the WM know. Metacity really wants this.
6536
6537 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
6538
6539         * ThemeNice.cs: Added CPDrawButton
6540
6541 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
6542
6543         * ThemeNice.cs: Changed the color for focused buttons and activated
6544           the arrows for small scroll buttons.
6545
6546 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
6547
6548         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
6549           anymore. Changed some method modifiers to protected (virtual)
6550         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
6551           changes
6552         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
6553           Updated drawing of menus, buttons and progressbars; added
6554           CPDrawBorder3D 
6555
6556 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6557
6558         * ImageListStreamer.cs: implemented serialization/deserialization
6559         of the images.
6560
6561 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
6562
6563         * ThemeWin32Classic.cs:
6564           - Removed all the DrawFrameControl stuff; CPDrawButton,
6565             CPDrawCheckBox and CPDrawRadioButton are now handled directly
6566             inside the methods
6567           - Updated and corrected the drawing code of CPDrawButton,
6568             CPDrawCheckBox and CPDrawRadioButton to better match ms
6569           - Updated theme checkbox and radiobutton code to use the CP*
6570             methods
6571
6572 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
6573
6574         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
6575           bug is fixed
6576
6577 2006-03-31  Jackson Harper  <jackson@ximian.com>
6578
6579         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
6580         sometimes.
6581         * UpDownBase.cs: Don't CreateGraphics manually, use a
6582         Refresh. Ideally we would invalidate the correct areas here.
6583
6584 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
6585
6586         * XplatUIX11.cs: 
6587           - We now track the mapping state of windows. If a window (or 
6588             one of it's parents) is not mapped we no longer permit
6589             WM_PAINT messages to be generated since we'd otherwise get 
6590             lots of BadMatch X errors. Jackson did all the work figuring
6591             out the problem.
6592           - Destroying the caret if the window it's contained in is 
6593             destroyed. Can't use regular DestroyCaret method since it
6594             might fall into a drawing function (trying to remove the
6595             caret) and with that generate new BadMatch errors. Again,
6596             Jackson tracked this down.
6597           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
6598             make sure we send the messages to all windows. (The old code
6599             would send the WM_DESTROY to the window, and then all child
6600             windows would be 'gone' because the WM_DESTROY handle lookup
6601             would no longer find the destroyed window)
6602         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
6603         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
6604
6605 2006-03-31  Jackson Harper  <jackson@ximian.com>
6606
6607         * ScrollableControl.cs: Dont recalc if we are not visible.
6608
6609 2006-03-31  Mike Kestner  <mkestner@novell.com>
6610
6611         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
6612         the visibility branch.
6613
6614 2006-03-31  Jackson Harper  <jackson@ximian.com>
6615
6616         * ScrollBar.cs: Cap values when incrementing/decrementing.
6617
6618 2006-03-31  Mike Kestner  <mkestner@novell.com>
6619
6620         * MenuAPI.cs: setup menu.tracker for popup/context menus.
6621         * ToolTip.cs: guard against timer expirations with no active control.
6622         Not sure why it happened.
6623
6624 2006-03-31  Mike Kestner  <mkestner@novell.com>
6625
6626         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
6627         text.
6628         * ToolTip.cs: Position the tooltip based on where the cursor is at
6629         popup time, not at MouseEnter time.  Add a Down state so that we don't
6630         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
6631         positioning offset. Lookup DisplaySize at positioning time, since it
6632         can theoretically change during invocation.
6633         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
6634         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
6635
6636 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
6637
6638         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
6639           Fixes behaviour when the Text property of the box is String.Empty
6640
6641 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
6642
6643         * XplatUIX11.cs: Only send mouseleave for our client windows, not
6644           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
6645           a window)
6646
6647 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
6648
6649         * FileDialog.cs: Visual enhancement for the popup buttons in 
6650           PopupButtonPanel
6651
6652 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
6653
6654         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
6655           code
6656
6657 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
6658
6659         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
6660           highlighted menu items to match ms
6661
6662 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
6663
6664         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
6665
6666 2006-03-30  Mike Kestner  <mkestner@novell.com>
6667
6668         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
6669         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
6670         go active to account for HotLight to Selected transition.
6671         * MenuItem.cs: add internal Selected prop. Fill out the Status
6672         property by calculating it from item info. Add HotLight,
6673         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
6674
6675 2006-03-30  Mike Kestner  <mkestner@novell.com>
6676
6677         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
6678
6679 2006-03-29  Jackson Harper  <jackson@ximian.com>
6680
6681         * Form.cs: Implement TODO.
6682
6683 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
6684
6685         * PrintPreviewDialog.cs: Implemented missing methods and events; still
6686           missing proper dialog setup in the constructor
6687
6688 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
6689
6690         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
6691         * Control.cs:
6692           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
6693           - Fixed ResetBindings and removed TODO
6694           - Added check for cross-thread calls to get_Handle()
6695           - Added Marshaller attribute for set_Font to satisfy class status
6696         * FontDialog.cs: Removed TODOs that seemed implemented
6697         * UpDownBase.cs: Removed unneeded TODO and Fixme
6698         * MessageBox.cs: Implemented support for Default button and removed TODO
6699         * FileDialog.cs: Removed obsolete TODO
6700         * DomainUpDown.cs: Removed obsolete TODO
6701         * ButtonBase.cs: Removed obsolete TODO
6702         * XplatUIWin32.cs: Removed obsolete TODO
6703         * Form.cs:
6704           - Removed obsolete TODO
6705           - Calling CheckAcceptButton when the acceptbutton is changed to allow
6706             internal status updates
6707           - Making sure the active control is selected when the control is created
6708         * CurrencyManager.cs: Removed obsolete TODO
6709
6710 2006-03-29  Mike Kestner  <mkestner@novell.com>
6711
6712         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
6713         of PrintPreviewDialog and RichTextBox.
6714
6715 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
6716
6717         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
6718           DarkDark, Light and LightLight colors for a specific color
6719         * ThemeWin32Classic.cs:
6720           - Use Button drawing code to draw RadioButtons and CheckBoxes with
6721             Appearance = Button 
6722           - Make use of the new ResPool helper CPColor
6723           - Draw ProgressBar and StatusBar with correct 3D borders
6724
6725 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
6726
6727         * ColorDialog.cs: Return selected color. Fixes bug #77940.
6728
6729 2006-03-28  Mike Kestner  <mkestner@novell.com>
6730
6731         * ListView.cs: fix Icon layout to plan for scrollbar widths when
6732         calculating col/row counts.
6733
6734 2006-03-28  Mike Kestner  <mkestner@novell.com>
6735
6736         * ColumnHeader.cs:
6737         * ListView.cs:
6738         * ListViewItem.cs:
6739         * Menu.cs: 
6740         switch to explicit interface method implementation for some methods
6741         corcompare identifies as inconsistent with MS.
6742
6743 2006-03-28  Mike Kestner  <mkestner@novell.com>
6744
6745         * MainMenu.cs: 
6746         * Menu.cs:
6747         add a few missing methods from the class status output.
6748
6749 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
6750
6751         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
6752           correct.
6753
6754 2006-03-28  Mike Kestner  <mkestner@novell.com>
6755
6756         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
6757
6758 2006-03-27  Mike Kestner  <mkestner@novell.com>
6759
6760         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
6761         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
6762
6763 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
6764
6765         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
6766
6767 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
6768
6769         * ThemeWin32Classic.cs:
6770           - GroupBox: Inserted a little gap between the text and the lines
6771             on the right side
6772           - Made the code in CPDrawBorder3D more readable
6773           - Corrected the drawing location of the up and down arrows in 
6774             CPDrawScrollButton
6775
6776 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
6777
6778         * ControlPaint.cs: Corrected line widths in DrawBorder for
6779           ButtonBorderStyle Inset and Outset
6780
6781 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
6782
6783         * ThemeWin32Classic.cs:
6784           - Rewrote the totally broken CPDrawBorder3D method. That was
6785             one of the main problems for the terrific ThemeWin32Classic
6786             look
6787           - Updated and corrected Button drawing
6788           - Correct the dimensions of the SizeGrip to match ms ones
6789           - Removed a small drawing glitch in DrawComboBoxEditDecorations
6790         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
6791           Border3DStyle.Sunken to match ms.
6792
6793 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
6794
6795         * ThemeWin32Classic.cs: First small part of the "de-uglify
6796           ThemeWin32Classic" effort, SizeGrip
6797
6798 2006-03-24  Jackson Harper  <jackson@ximian.com>
6799
6800         * XplatUIX11.cs: Give a max idle time of one second, this matches
6801         MS and forces an Idle event every second when there are no other
6802         events in the queue.
6803
6804 2006-03-24  Mike Kestner  <mkestner@novell.com>
6805
6806         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
6807         * ListView.Item.cs: fix layout issues with null image lists and images
6808         smaller than checkbox size.
6809         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
6810         mode like MS does.  It's weird, but consistent.  ;-)
6811         Fixes #77890.
6812
6813 2006-03-24  Mike Kestner  <mkestner@novell.com>
6814
6815         * ListView.cs: Scroll wheel support for the item control.  Fixes
6816         #77839.
6817
6818 2006-03-23  Jackson Harper  <jackson@ximian.com>
6819
6820         * ScrollableControl.cs: Special case negative sized areas, not
6821         zero.
6822         * MonthCalendar.cs: Save the rect of the clicked date so we can
6823         use it for invalidation.
6824         - Try to cut down on the number of invalidates
6825         - Invalidate the rect the mouse is over and was over when moving
6826         the mouse, so we get the focus box following the cursor.
6827
6828 2006-03-23  Mike Kestner  <mkestner@novell.com>
6829
6830         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
6831         focus rectangle drawing. Fixes #77835.
6832
6833 2006-03-23  Mike Kestner  <mkestner@novell.com>
6834
6835         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
6836         the if and else if and reverting back to the original == check on the
6837         None conditional.
6838
6839 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
6840
6841         * FontDialog.cs: Update the example panel if the selected index of
6842           the fontListBox changes.
6843
6844 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
6845
6846         * FileDialog.cs: Make FileDialog remember which directory it was in
6847           last in the same execution.
6848
6849 2006-03-22  Mike Kestner  <mkestner@novell.com>
6850
6851         * FileDialog.cs: make the DropDownMenu on the toolbar display
6852         RadioChecks since they are mutually exclusive and that's what MS does.
6853
6854 2006-03-22  Mike Kestner  <mkestner@novell.com>
6855
6856         * Theme.cs: add Color param to CPDrawMenuGlyph.
6857         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
6858         checks and radio marks and arrows are visible on highlighted items.
6859         * ControlPaint.cs: update to use new Theme signature.
6860
6861 2006-03-22  Mike Kestner  <mkestner@novell.com>
6862
6863         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
6864         is active. Fixes #77870.
6865
6866 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
6867
6868         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
6869           to be focused/selected after startup
6870
6871 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
6872
6873         * ColorDialog.cs: 
6874           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
6875             CustomColors and ShowHelp properties
6876           - Some internal rewrites to get better results when using the
6877             ColorMatrix
6878
6879 2006-03-22  Mike Kestner  <mkestner@novell.com>
6880
6881         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
6882         HoverSelection.  Fixes #77836.
6883
6884 2006-03-22  Mike Kestner  <mkestner@novell.com>
6885
6886         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
6887         ToggleButtons.  (De)Sensitize the Back button around a stack count of
6888         1, not 0.  Update ButtonSize based on a pixel count of the win32
6889         control.  Adjust the toolbar size/location for new button size.
6890
6891 2006-03-22  Jackson Harper  <jackson@ximian.com>
6892
6893         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
6894         true.
6895         * ScrollBar.cs: When doing increments and decrements we need to
6896         set the Value property so that ValueChanged gets raised. A
6897         possible optimization here would be to make an internal SetValue
6898         that doesn't invalidate immediately.
6899         * ToolTip.cs: Tooltips get added to their container (when
6900         supplied) so they get disposed when the container is disposed.
6901         - Don't create tooltips for String.Empty. This prevents all these
6902         little 2-3 pixel windows from showing up when running nunit-gui
6903         and driving me mad.
6904         * Form.cs: Don't set topmost when setting the owner if the handles
6905         haven't been created yet.  The topmost set will happen when the
6906         handles are created.
6907
6908 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
6909
6910         * XplatUIX11.cs:
6911           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
6912           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
6913             visible (to allow them to recalculate their sizes)
6914
6915 2006-03-21  Mike Kestner  <mkestner@novell.com>
6916
6917         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
6918         methods. Removed a ton of redundant code.  Still not really happy with
6919         the border rendering, but I think that's mainly because of the
6920         ControlDarkDark being black instead of a dark grey. Depending on how 
6921         close we want to be, we might want to revisit those color choices.
6922         Among the new features added during the refactor were DropDownArrow
6923         pressed rendering, Disabled image rendering.  Proper flat appearance
6924         boundary rendering.  Removed the Divider and Wrapping dividers since I
6925         can't figure out any combination of themes and conditions to make the
6926         MS control draw a horizontal line on a toolbar despite what the
6927         Divider property docs indicate.
6928         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
6929         conditions and incorrect layout.  Updated to coding standard.
6930         * ToolBarButton.cs: refactored layout and positioning code from
6931         ToolBar to here.  Invalidate wherever possible instead of forcing
6932         redraws of the whole toolbar. 
6933         (Known remaining issues: explicit ButtonSize smaller than provided
6934         images.)
6935
6936 2006-03-21  Mike Kestner  <mkestner@novell.com>
6937
6938         * ContextMenu.cs (Show): use the position parameter instead of just
6939         showing at the MousePosition.
6940
6941 2006-03-21  Jackson Harper  <jackson@ximian.com>
6942
6943         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
6944         control handle this.
6945         * TreeNodeCollection.cs: If we are clearing the root node we need
6946         to reset top_node so calcs can still happen.
6947         * ThemeWin32Classic.cs: This is a Flags so we need to check
6948         properly.
6949         
6950 2006-03-21  Jackson Harper  <jackson@ximian.com>
6951
6952         * DataGrid.cs: Create columns when the binding context has been
6953         changed.
6954         * X11Structs.cs: Keysyms are uints.
6955         - Add size to fix build.
6956
6957 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
6958
6959         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
6960           XplatUIOSX.cs: 
6961           - Added ResetMouseHover method to allow controls to retrigger
6962             hovering if they need it more than once
6963           - Implemented MouseHoverTime and MouseHoverSize properties
6964         * Timer.cs: Start() must reset the interval
6965         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
6966           properties
6967
6968 2006-03-21  Jackson Harper  <jackson@ximian.com>
6969
6970         * X11Keyboard.cs: improved layout detection. Move the nonchar
6971         tables into this file.
6972         * KeyboardLayouts.cs: Move the tables into resource files.
6973
6974 2006-03-21  Mike Kestner  <mkestner@novell.com>
6975
6976         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
6977
6978 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
6979
6980         * Mime.cs: Various speed optimizations. Looking up mime types
6981           is now 2 times faster than before
6982
6983 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
6984
6985         * CreateParams.cs: Added internal menu field
6986         * Control.cs: 
6987           - Switched call order for UpdateBounds; now we always call
6988             the one that also takes ClientSize, and we're calculating the 
6989             client size via driver method in the others. The previous
6990             method of tracking client size by difference wasn't working
6991             for forms where even the starting client size wouldn't match
6992             the overall form size (due to borders) (Part of fix for #77729)
6993           - CreateParams(): Do not use parent.Handle unless the handle is
6994             already created. Causes havoc with Nexxia and throws off our
6995             creation of controls
6996         * XplatUIX11.cs:
6997           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
6998           - Switched handling of ConfigureNotify over to new PerformNCCalc 
6999             method (consolidates code)
7000           - Changed RequestNCRecalc to use new PerformNCCalc method
7001           - Added calls to RequestNCRecalc when menus and borders are changed
7002             to allow app to set NC size. (Part of fix for #77729) This matches
7003             when MS send a WM_NCRECALC on Win32 windows.
7004           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
7005             (Part of fix for #77729). This matches what MS does, they also
7006             send that message when the form is made visible.
7007           - XException.GetMessage: Improved usability of X errors by including
7008             a translation of the window into Hwnd and Control class
7009           - Improved debug info for window creation, reparenting and destruction
7010           - Created helper method WindowIsMapped() [Currently not used]
7011         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
7012         * Form.cs:
7013           - CreateParams: Now setting our menu on the new internal menu field
7014           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
7015             avoid calculating the same property twice
7016         * Hwnd.cs:
7017           - Improved usability of ToString() for debugging purposes
7018           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
7019             determine the height of the menu, instead of just the font. This
7020             required to also create a graphics context and to keep a bmp 
7021             around (for performance reasons)
7022
7023 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
7024
7025         * MenuAPI.cs: Added OnMouseUp method
7026         * Form.cs:
7027           - Now remembering the requested client size, avoids size errors
7028           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
7029             instead of base if the menu is active. This is required due to
7030             control now capturing and releasing on down/up and it would
7031             prematurely release our menu capture
7032
7033 2006-03-17  Jackson Harper  <jackson@ximian.com>
7034
7035         * KeyboardLayouts.cs: Add the czech layouts.
7036
7037 2006-03-16  Jackson Harper  <jackson@ximian.com>
7038
7039         * Control.cs: Use the viewport space when sizing not the controls
7040         client size, so things like ScrollableControl that effect the
7041         viewport size (when scrollbars are added) are computed correctly.
7042         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
7043         of ManagerEntrys.
7044         - Handle creating BindingManagers for null data sources.
7045         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
7046         source, otherwise when rows are added they are added to the 'fake'
7047         datasource and we will crash when trying to set the position in
7048         those rows.
7049         - Use Implicit scrollbars on the datagrid so they arent
7050         selectable.
7051         
7052 2006-03-16  Jackson Harper  <jackson@ximian.com>
7053
7054         * Binding.cs:
7055         * InternalWindowManager.cs:
7056         * MdiWindowManager.cs:
7057         * X11Keyboard.cs: I really want Mike to love me again (fix
7058         compiler warnings).
7059
7060 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
7061
7062         * DataGrid.cs:
7063           - OnMouseDown: Switch to editing mode when clicking on the cell
7064                          even if we're clicking on the cell that's currently 
7065                          selected
7066           - ProcessGridKey: Left/Right now wrap like MS.Net does
7067           - ProcessGridKey: Tab now knows to add a new row when tab is
7068                             pressed in the cell of the last column of the 
7069                             last row
7070           - ProcessGridKey: Enter now adds another row  if pressed in the last
7071                             row and selectes the new row, same column cell
7072           - ProcessGridKey: Home/End navigate columns, not rows, like 
7073                             originally implemented
7074           - Broke ProcessKeyPreview code out into an extra Internal method
7075             so it can be called from the edit code
7076         * DataGridTextBox.cs (ProcessKeyMessage):
7077           - Switched to accept Tab keypresses
7078           - Added F2 handling to allow jumping to the end of the edited cell
7079           - Added logic to allow moving caret left/right inside edited cell
7080             and making the edited cell jump when the caret hits cell borders
7081           - Tab and Enter are now passed to the datagrid after being handled
7082         * TextBoxBase.cs:
7083           - Removed capture code now that Control handles it
7084           - set_SelectionStart now ensures caret is visible
7085
7086 2006-03-16  Jackson Harper  <jackson@ximian.com>
7087
7088         * TrackBar.cs: Debackwards the increment/decrement for handling
7089         mouse clicks on the bar with vertical trackbars.
7090         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
7091         bottom to match MS.
7092
7093 2006-03-16  Mike Kestner  <mkestner@novell.com>
7094
7095         * ListView.cs: make shift/ctrl keyboard and mouse selection 
7096         consistent with the MS control. Fix a bug in
7097         SelectedListViewItemCollection.Clear that was pissing me off for the
7098         better part of a day because the collection was being altered
7099         underneath us as we walked the list.
7100
7101 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
7102
7103         * Control.cs: Not sure how we could miss this so long, but it seems
7104           that MS.Net has Capture set all the way from before calling 
7105           OnMouseDown through sending the mouse events until after
7106           OnMouseUp. This will fix DataGrid's selection being set to end
7107           at the location of the MouseUp.
7108
7109 2006-03-15  Jackson Harper  <jackson@ximian.com>
7110
7111         * BindingContext.cs: Check the binding after its added so that it
7112           can initialize the binding managers and hookup to events.
7113         * Binding.cs: Data members seem to sometimes include rows/cols in
7114           the format Row.Column we now take this into account.
7115           - Hookup to the position changed event so we can update the
7116           control when the position has changed in the data set.
7117         * CurrencyManager.cs: Take into account the row/col naming
7118           convention when creating dataset tables.
7119         * BindingContext.cs: Using a newer better way of storing
7120           datasource/datamember pairs.  Hopefully this better matches MS for
7121           looking up binding managers.
7122
7123
7124 2006-03-15  Jackson Harper  <jackson@ximian.com>
7125
7126         * BindingContext.cs: The currency manager needs the data member
7127         name, if the member is a data set we use the name to find the
7128         correct table.
7129         * CurrencyManager.cs: When creating the list prefer an IList over
7130         an IListSource.
7131         - Attempt to create a DataTable from a DataSet (TODO: might need
7132         some better error checking here, although MS doesn't seem to have much)
7133         - If we have a DataTable create a view and use it as our list.
7134
7135 2006-03-15  Mike Kestner  <mkestner@novell.com>
7136
7137         * ListView.cs: keep a matrix of the icon mode layout to facilitate
7138         keyboard navigation. Support Up/Down/Left/Right selection correctly
7139         for all 4 View modes.
7140         * ListViewItem.cs: add internal row/col fields for icon layouts.
7141
7142 2006-03-15  Jackson Harper  <jackson@ximian.com>
7143
7144         * TabControl.cs: Redraw the tabs when we resize so their newly
7145         calculated sizes are drawn on screen.
7146         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
7147         composite characters.
7148         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
7149         - filter events so that composite characters can be created
7150         patches by peter
7151         * X11Structs.cs: Add XIMProperties enum.
7152
7153 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
7154
7155         * Control.cs (BringToFront, SendToBack): Don't use window or handle
7156           unless it's created
7157
7158 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
7159
7160         * Control.cs (PerformLayout): We don't need to consider visiblity
7161           for anchoring, only for docking. This fixes 'whacky' alignment
7162           in listbox and other controls that use implicit scrollbars after
7163           the previous PerformLayout patch
7164         * ListBox.cs: Switched to use implicit scrollbars
7165           
7166 2006-03-14  Mike Kestner  <mkestner@novell.com>
7167
7168         * ToolBar.cs: 
7169         * VScrollBar.cs:
7170         - chain up the "new event" overrides to base and use
7171         OnEvent to raise them.  Part of fix for bug #76509.
7172
7173 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
7174
7175         * FileDialog.cs: Do not select an item in the parent directory
7176           on backspace
7177
7178 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
7179
7180         * Control.cs (PerformLayout): It would seem that we considered
7181           invisible windows for our layout. Not quite the right thing
7182           to do. Now we don't any longer, thereby fixing bug #76889.
7183
7184 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
7185
7186         * Control.cs (CanFocus): I goofed. A control can have focus 
7187           even though it's not selectable. Made it match MS docs.
7188
7189 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
7190
7191         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
7192           center by default (fixes #76895)
7193         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
7194           all uses of Border3DSides.All with the explicit ORd together
7195           Left|Right|Top|Bottom because I assume that nobody was aware 
7196           that All also implies a center fill. Most places I checked had
7197           a fill right above.
7198         * ProgressBarStyle.cs: Added
7199
7200 2006-03-13  Mike Kestner  <mkestner@novell.com>
7201
7202         * ListView.cs: fix breakage in drag shadow header positioning 
7203         from Peter's csc compilation fix.
7204
7205 2006-03-13  Mike Kestner  <mkestner@novell.com>
7206
7207         * ListView.cs: fix NRE produced by backspacing twice in a focused
7208         FileDialog.
7209
7210 2006-03-13  Mike Kestner  <mkestner@novell.com>
7211
7212         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
7213
7214 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
7215
7216         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
7217           be changed
7218         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
7219           the allowed size before making programmatic size changes
7220
7221 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
7222
7223         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
7224           set, metacity is broken and will still use the emty sizes in 
7225           the struct. (Fix for #77089)
7226
7227 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
7228
7229         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
7230           WindowExStyles and marked both enums as Flags
7231         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
7232           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
7233           to match WindowStyles split
7234         * XplatUIX11.cs:
7235           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
7236           - Updated to match WindowStyles split
7237         * XplatUIWin32.cs:
7238           - Fixed FosterParent creation, was using ExStyle on the Style field
7239             (This should help with Popup focus issues)
7240           - Updated to match WindowStyles split
7241
7242 2006-03-13  Jackson Harper  <jackson@ximian.com>
7243
7244         * MdiWindowManager.cs: Use the system menu height. Fixes some
7245         strange sizing issues.
7246
7247 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
7248
7249         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
7250         * TextBoxBase.cs:
7251           - Scroll to caret after inserting text (#77672)
7252           - Make scroll range one pixel higher, fixes off-by-one error (and
7253             makes underlines visible on the last line)
7254
7255 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
7256
7257         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
7258           the keyboard state from being stuck with keys in 'pressed' state when
7259           focus is switched away via keyboard
7260         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
7261           reset the keyboard if no X11 KeyUp events are expected to come
7262         * X11Structs.cs: Switched type of Visible to bool to match driver
7263
7264 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
7265
7266         * TextControl.cs:
7267           - Switched caret to be just 1 pixel wide, matches MS and looks less
7268             clunky
7269           - Moved caret display 1 pixel down from the top of the control
7270             to improve view
7271           - InsertCharAtCharet: Update the selection start if moving the caret
7272             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
7273           - No longer always creating the caret when the caret methods are
7274             called. Only the actual ShowCaret/HideCaret will do that now
7275           - Only setting caret visible if the owner control has focus
7276           - UpdateView: Added invalidation-shortcut logic for center and right 
7277             aligned text. Previously we'd update all according to the left
7278             logic which caused drawing errors. Also fixed height of invalidated
7279             areas, now properly invalidating the whole area (was off-by-one)
7280           - owner_HandleCreated: Always generate the document when the
7281             handle is created; this ensures that 
7282         * TextBoxBase.cs:
7283           - Fixed situation where caret would disappear under the right
7284             window border, also improved scrolling behaviour on left-
7285             aligned textboxes
7286           - Fixed right-aligned textboxes to have a border to the
7287             right instead of the caret being under the right border
7288         * XplatUIX11.cs:
7289           - Switched from 'nested' to simple visible/not visible tracking 
7290             for caret (part of fix for #77671)
7291           - No longer passing through translated FocusIn/FocusOut messages
7292             since we were notifying too often and the wrong windows. Instead
7293             we just notify our focussed window of receiving or loosing focus
7294         * XplatUIWin32.cs: Switched from 'nested' show/hide 
7295           counting for caret to simple visible yes/no behaviour (part of 
7296           fix for #77671)
7297
7298 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
7299
7300         * Mime.cs: Remove debug code...
7301
7302 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
7303
7304         * MimeGenerated.cs: Removed
7305         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
7306           and subclasses) from /usr/(local/)share/mime and
7307           $HOME/.local/share/mime.
7308
7309 2006-03-10  Jackson Harper  <jackson@ximian.com>
7310
7311         * MdiWindowManager.cs: Recalc the NC area when a window is
7312         maximized/restored so that the menu area is drawn on forms that
7313         don't have a menu.
7314
7315 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
7316
7317         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
7318           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
7319           us to force a WM_NCCALCRESIZE message being sent. This is needed
7320           for MDI maximizing.
7321
7322 2006-03-10  Jackson Harper  <jackson@ximian.com>
7323
7324         * Form.cs: We need to use the ActiveMenu when calculating menu
7325         height.
7326         - Fix nullref when the window manager hasn't been created yet.
7327         * Control.cs: Fix nullref when we try to bring a control to the
7328         front that has no parent.
7329         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
7330         height.
7331         - Add a dummy item to the maximized menu so it always has the
7332         correct height. Otherwise when there are no menus we don't get our
7333         icon and buttons.
7334         
7335
7336 2006-03-10  Jackson Harper  <jackson@ximian.com>
7337
7338         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
7339         stuff.
7340         * Form.cs: Make the window_state internal so the window managers
7341         can track it.
7342         - When an MDI child is maximized let its window manager create the
7343         main menu (so it can add its icon).
7344         - Notify the window managers of state changes
7345         - Let the window manager paint its buttons and handle button
7346         clicks on the menu when it is maximized.
7347         * InternalWindowManager.cs: Move the prev_bounds into the mdi
7348         window manager, since tool windows don't use it, only mdi windows.
7349         - Tell the main form that we don't want it to handle NCPAINT
7350         itself to avoid extra painting.
7351         - Handle clicks on a maximized windows menu.
7352         - Handle window state changes
7353         - Handle minimize/maximize clicks correctly by setting the window state.
7354         * MdiWindowManager.cs: Add an icon menu that (the menu you get
7355         when clicking on the forms icon).
7356         - New method to create a forms maximized menu. This is its normal
7357         menu + an icon.
7358         - Handle window state changes.
7359         - Handle sizing of maximized windows.  Maximized windows are just
7360         drawn bigger then the parent visible area. All controls are still
7361         there, they are just outside the visible area (this matches windows).
7362         * MdiClient.cs: No scrollbars when a child window is maximized.
7363         - Let the children windows figure out how big they should be when
7364         sizing maximized windows.
7365         - Implement a version of ArrangeIconicWindows somewhat similar to
7366         Windows version.  There are some little differences, but I don't
7367         think any app will rely on the layout of minimized mdi windows.
7368
7369 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
7370
7371         * Padding.cs: Several fixes to allow compiling with csc 2.0
7372
7373 2006-03-09  Jackson Harper  <jackson@ximian.com>
7374
7375         * Menu.cs:
7376         * MenuItem.cs: Cheap hack so we can add items to the list without
7377         the events being raised.  This allows adding mdi items during
7378         drawing. TODO: Should probably find a better time to add the items.
7379
7380 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
7381
7382         * ThemeWin32Classic.cs:
7383           - CheckBox_DrawText: Added logic to not wrap if not enough space
7384             is available (Fix for bug #77727)
7385           - RadioButton_DrawText: Added logic not to wrap if not enough
7386             space is available (Fix for bug #77727). Also removed some
7387             duplicate code, DrawString always drawing the regular text
7388             before hitting the if statement.
7389
7390 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
7391
7392         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
7393
7394 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
7395
7396         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
7397         * ContainerControl.cs: Partial implementation of some 2.0 scaling
7398           methods. Moved the new 2.0 properties into alphabetical order with
7399           other properties and added MonoTODO tags
7400
7401 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
7402
7403         * AutoScaleMode.cs: Added. Fix build.
7404
7405 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
7406
7407         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
7408           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
7409           and was requiring premature handle creation for calls from above
7410         * Form.cs, Control.cs: Removed handle arguments from calls to
7411           CalculateClientRect()
7412
7413 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
7414
7415         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
7416           drag_column.column_rect is MarshalByRef and can't be used that way
7417
7418 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
7419
7420         * AxHost.cs: Added deserialization constructor for 
7421           AxHost+State (fixes 77743)
7422
7423 2006-03-09  Mike Kestner  <mkestner@novell.com>
7424
7425         * ListView.cs: 
7426         - Added column drag reordering for details view.
7427         - fixed behavior when mouse is dragged off column and
7428         AllowColumnReorder is false.
7429         * ColumnHeader.cs: clone the format too in Clone.
7430         * Theme.cs: add DrawListViewHeaderDragDetails method.
7431         * ThemeWin32Classic.cs:
7432         - impl new method for drawing drag column shadows and targets.
7433         - support column offset for details mode in DrawListViewItem.
7434
7435 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
7436
7437         * TextControl.cs: Reset the char_count when the document is cleared
7438           (Fixes bug reported on mono-winforms mailing list)
7439
7440 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
7441
7442         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
7443           of calling base we simply process the key ourselves, since both
7444           DefWindowProc and the handled method would set m.Result. 
7445           (Fixes #77732)
7446
7447 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
7448
7449         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
7450           method also moves the window; instead implemented a copy of
7451           Control.ScaleCore (Part of fix for #77456)
7452         * TextBoxBase.cs: 
7453           - Created new CreateGraphicsInternal method to allow providing
7454             a graphics context when no handle is created without triggering
7455             handle creation. (Part of fix for #77456)
7456           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
7457         * TextControl.cs: 
7458           - Switched Constructor to require TextBoxBase instead of Control (to
7459             allow uncast access to CreateGraphicsInternal)
7460           - Safeguarded use of owner.Handle property. No longer accessing it
7461             unless the handle is already created.
7462           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
7463           - Now triggering a recalc when owning control becomes visible
7464         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
7465           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
7466           premature handle creation (Part of fix for #77456)
7467         * Control.cs:
7468           - We now only destroy our double-buffering buffers when the
7469             control is resized or disposed, but not when visibility
7470             changes. (The code even re-created them twice every time)
7471           - Now requiring a redraw of the buffer on visibility changes
7472             (fixes bug 77654 part 2)
7473           - Not passing OnParentVisibleChanged up unless the control
7474             is visible
7475           - CanFocus: Fixed to match MS documentation
7476           - Focus: Fixed to return actual focus state and to check if
7477             setting focus is legal before setting it
7478
7479 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
7480
7481         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
7482           when to draw focus rectangle by looking at parent focus and
7483           selected state instead. This fixes TabPages on Linux sometimes
7484           having none or multiple focus rectangles.
7485         * XplatUIX11.cs (SetFocus): 
7486           - Don't set the focus if the same window already has focus
7487           - Use SendMessage instead of PostMessage (like it's Win32
7488             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
7489             to match MS behaviour
7490         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
7491           are not selectable.
7492
7493 2006-03-07  Jackson Harper  <jackson@ximian.com>
7494
7495         * PictureBox.cs: Revert line I accidently committed last week.
7496
7497 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
7498
7499         * Control.cs: 
7500           - Added new IsRecreating and ParentIsRecreating properties to
7501             allow testing if RecreateHandle has been called on ourselves
7502             or one of our parents
7503           - WndProc(WM_DESTROY): If our control handle is being recreated
7504             we immediately need to create the handle when receiving the
7505             destroy, that way our child windows find a valid parent handle
7506             when they themselves are being recreated upon WM_DESTROY receipt
7507             (fix for bug #77654 part 1)
7508         * XplatUIX11.cs:
7509           - DestroyWindow: WM_DESTROY must be sent to our own window before
7510             notifying any child windows. MS documents that child windows
7511             are still valid when WM_DESTROY is received. (Control now relies on
7512             this behaviour)
7513           - Added some fine-grain debug options
7514
7515 2006-03-06  Jackson Harper  <jackson@ximian.com>
7516
7517         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
7518         box and base calculations off this.
7519         * MdiChildContext.cs:
7520         * MdiWindowManager.cs: Don't need to ensure scrollbars here
7521         anymore.
7522         
7523 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
7524
7525         * Splitter.cs: In situations where the affected control is added
7526           to the parent's control list after the splitter, we would not
7527           populate affected. Now we try populating it on mousedown, if
7528           it's not already set, and force it to be re-set whenever our
7529           parent changes.
7530
7531 2006-03-03  Matt Hargett  <matt@use.net>
7532
7533         * Control.cs: implement Control.Padding
7534         * Padding.cs: -Padding.All returns -1 when constructing with the
7535         implicit default ctor
7536         -Padding.ToString() matches MS.NET
7537         * ContainerControl.cs: implement
7538         ContainerControl.AutoScaleDimensions
7539         * ListControl.cs: implement ListControl.FormattingEnabled
7540         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
7541         * ButtonBase.cs:
7542         * TabPage.cs: Implement UseVisualStyleBackColor.
7543         * PictureBox.cs: Implement PictureBox.InitialImage.
7544
7545 2006-03-03  Mike Kestner  <mkestner@novell.com>
7546
7547         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
7548         event declarations to proxy to base event.
7549         * ListViewItem.cs: update to use ItemControl.
7550         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
7551         * ThemeWin32Classic.cs: update to new ListView theme API and fix
7552         column header label rendering for 0 width columns.
7553
7554 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
7555
7556         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
7557           that causes the control to be created. Fixes #77476.
7558
7559 2006-03-02  Jackson Harper  <jackson@ximian.com>
7560
7561         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
7562         expose_pending.
7563
7564 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
7565
7566         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
7567           passed in for the EventArgs (fixes #77690)
7568
7569 2006-03-01  Jackson Harper  <jackson@ximian.com>
7570
7571         * ScrollBar.cs: Refresh afterbeing resized.
7572
7573 2006-02-28  Mike Kestner  <mkestner@novell.com>
7574
7575         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
7576         Clean up a tracker compile warning.
7577         * MenuItem.cs: add internal PerformPopup method.
7578         [Fixes #77457]
7579
7580 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
7581
7582         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
7583           implicit expose) when the text is set to null
7584
7585 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
7586
7587         * RichTextBox.cs (FlushText): When newline is true, we always
7588           need to split the line, even if no text is on it and we may
7589           never eat newlines. (Fixes #77669)
7590
7591 2006-02-28  Mike Kestner  <mkestner@novell.com>
7592
7593         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
7594         and set Selected instead.
7595         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
7596         collections.
7597
7598 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
7599
7600         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
7601
7602 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
7603
7604         * FontDialog.cs:
7605           - Got rid of the panel. All controls are now directly added to
7606             the dialog form
7607           - It is now possible to set a font with the Font property
7608           - MinSize and MaxSize property do now what they should
7609           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
7610           - Searching and selecting a font with the font textbox works now,
7611             the same applies to the style and size textbox
7612           - Draw the correct 3D border in the example panel
7613           - Fixed a little mem leak (unused fonts didn't get disposed)
7614           - Many other internal updates/rewrites...
7615           - Fix typo
7616
7617 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
7618
7619         * TextControl.cs: 
7620           - InsertRTFFromStream: Added 'number of characters inserted' argument
7621           - set_SelectedRTF: Now using the number of characters to calculate
7622             the new location for the selection and cursor (x/y cannot be used
7623             due to potentially already wrapped text)
7624
7625 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
7626
7627         * TextControl.cs: Added property and implemented means to allow 
7628           disabling recalculation of a document (can be used to speed up
7629           multiple inserts and is needed to make RTF inserts predictable, see
7630           bug #77659)
7631         * RichTextBox.cs: Using the new NoRecalc property of Document to
7632           keep x/y insert locations predictable. Also makes it faster inserting
7633           large chunks of RTF
7634
7635 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
7636
7637         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
7638           it's easier for a child control to handle the other messages without
7639           having to duplicate the special functionality
7640         * TextBoxBase.cs
7641           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
7642             code to handle processing the key ourselves, in order to get 
7643             access to the result of KeyEventArgs.Handled. We now only call 
7644             ProcessKey if they key hasn't been handled already. Fixes #77526.
7645           - set_Text: If null or empty string is given, just clear the 
7646             document. Fixes part of #77526
7647
7648 2006-02-27  Jackson Harper  <jackson@ximian.com>
7649
7650         * SizeGrip.cs: Paint the background color before painting the grip
7651         so things look right.
7652         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
7653
7654 2006-02-27  Mike Kestner  <mkestner@novell.com>
7655
7656         * ListView.cs:
7657           - Restructure layout and invalidation model to remove a ton of
7658           flicker from the control and speed up performance in general.
7659           - Add manual column resize, flickers like crazy, but I already have
7660           some ideas on how I'll fix that. (#76822)
7661           - Merge the three Icon-based views into a single layout method.
7662           - Move item selection interaction logic from the item since 
7663           interaction with the collections is more appropriate to the view.
7664           - Deselection on non-item clicks.
7665         * ListViewItem.cs:
7666           - Encapsulate most of the layout. Add some internal props to trigger
7667           layout.  Move to a model where Items invalidate themselves instead
7668           of just invalidating the whole control every time something changes.
7669           - Invalidate on Text/Caption changes.
7670           - switch to an offset based layout model to avoid having to absolute
7671           position every element on item moves.
7672           - correct checkbox layout to conform to MS layout.
7673         * ThemeWin32Classic.cs:
7674           - refactor some column header drawing code.
7675           - fix string justification for column headers (#76821)
7676           - make SmallIcon labels top justified for compat with MS impl.
7677         * ThemeClearlooks.cs:
7678           - adjust to new ListViewItem internal checkbox bounds api.
7679
7680 2006-02-27  Jackson Harper  <jackson@ximian.com>
7681
7682         * Control.cs:  Change where implicit controls fall in the zorder.
7683         They are now on top of all children.
7684         - Synced AddImplicit code with Add
7685         - Removed unused enumerator.
7686         * SizeGrip.cs: Remove the TODO as its been TODONE.
7687
7688 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
7689
7690         * TextControl.cs(Insert): Combine the last lines unless the insertion
7691           string ends with \n\n, otherwise we leave one line too many (Fixes
7692           something I noticed with the testapp for #77526; the bug itself was
7693           already fixed in the previous checkin)
7694
7695 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
7696
7697         * RichTextBox.cs:
7698           - SelectionColor and SelectionFont methods no longer set absolute
7699             styles. Instead, the keep font or color respectively (This 
7700             resolves a long-standing FIXME in the code)
7701           - When flushing RTF text, the insert code now considers text trailing
7702             behind the insertion point (Fixes the bug where when replacing
7703             the selected text via SelectedRTF the remainder of the line behind 
7704             the selection would stay on the first insertion line)
7705         * TextBoxBase.cs:
7706           - AppendText now updates the selection points after inserting text
7707           - AppendText now ensures that the last tag (sometimes 0-length) of
7708             the document is used for the style information (Fixes part of 
7709             bug #77220)
7710         * TextControl.cs:
7711           - Created new FontDefiniton class to allow describing partial style
7712             changes
7713           - StreamLine() now takes a lines argument, to allow it to decide
7714             whether an encountered zero-length tag is the last in the document
7715             (which must be kept to not loose the font/color contained in it,
7716             for later appends)
7717           - Created Combine() and Split() methods for Marker structs, to 
7718             support marker updates due to reformatted documents (soft line
7719             wraps)
7720           - Implemented Document.CaretTag setter
7721           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
7722             of the last line (Not the cause, but also exposed by bug #77220)
7723           - Added LineTag argument to InsertString method, to allow callers
7724             to force a certain tag to be used (required to force use of the
7725             trailing zero-length tag of a document)
7726           - Now updating markers in Combine(), to avoid stale tag markers
7727           - Added some method descriptions to aid maintenance
7728           - Implemented new FormatText concept, allowing additive/subtractive
7729             formatting by only specifying the components that are to be 
7730             changed. This was needed for resolving the RTB.SelectedColor/
7731             RTB.SelectedFont fixmes
7732           - Added Break() support method to allow breaking up linetags (used
7733             for partial formatting)
7734           - Added GenerateTextFormat() method. It is used for partial 
7735             formatting and allows to generate a full font/color from given
7736             attributes and an existing tag.
7737
7738 2006-02-26  Jackson Harper  <jackson@ximian.com>
7739
7740         * XplatUIX11.cs:  Use the correct caption height.
7741         - Translate hittest coordinates to screen coords to match MS.
7742         * XplatUIWin32.cs: When we create MDI windows we need to reset
7743         some of the style flags, so we get a nice blank window, and can
7744         draw all the decorations ourselves.
7745         - Set a clipping rectangle on the non client paint event, the
7746         window manager drawing code needs one.
7747         * Form.cs: The window manager needs to know when the window state
7748         has been updated.
7749         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
7750         don't need to factor in border and title sizes in these
7751         methods. TODO: Remove the args and fix the call points.
7752         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
7753         properly.
7754         - Let the driver set the cursors.
7755         - Improve active window handling
7756         - Correct sizes for title bars and buttons.
7757         - Match MS drawing better
7758         * MdiWindowManager.cs: We don't need to handle border style
7759         updates specially anymore.
7760         - Check for scrollbars when windows are done moving
7761         - Handle Active properly.
7762         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
7763         correctly. I am spewing the exception though, so we don't hide the
7764         bugs.
7765         
7766 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
7767
7768         * DataGridViewRowPostPaintEventArgs.cs,
7769           DataGridViewCellPaintingEventArgs.cs,
7770           DataGridViewRowCollection.cs,
7771           DataGridViewRowPrePaintEventArgs.cs,
7772           DataGridViewCell.cs: Clear a few warnings and implement a few
7773           exceptions that should be thrown.
7774
7775 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
7776
7777         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
7778           'inheriting' our parent's (non-default) cursor. (Part of
7779            the fix for #77479)
7780
7781 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
7782
7783         * XplatUIX11.cs: Fixed cast to make csc happy
7784
7785 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
7786
7787         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
7788           it's for the client area (part of fix for #77479 and needed
7789           for MDI window cursor handling)
7790         * XplatUIX11.cs
7791           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
7792             the appropriate default cursors and also passing the message
7793             up the parent chain 
7794           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
7795             for non-client areas
7796
7797 2006-02-15  Jackson Harper  <jackson@ximian.com>
7798
7799         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
7800         is a real MDI window
7801
7802 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
7803
7804         * X11DesktopColors.cs: Instead of checking the desktop session
7805           string for "KDE" check if it starts with "KDE"
7806
7807 2006-02-10  Jackson Harper  <jackson@ximian.com>
7808
7809         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
7810         systems).
7811
7812 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
7813
7814         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
7815           errors
7816         * ColorDialog.cs:
7817           - Got rid of the panel. All controls are now directly added to
7818             the dialog form
7819           - Changed to mono coding style
7820
7821 2006-02-10  Jackson Harper  <jackson@ximian.com>
7822
7823         * InternalWindowManager.cs: We don't need the set visibility to
7824         false hack anymore now that peter has written beautiful shutdown
7825         code.
7826
7827 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
7828
7829         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
7830           where already explicitly destroyed
7831
7832 2006-02-10  Jackson Harper  <jackson@ximian.com>
7833
7834         * MdiClient.cs: Handle the case where windows are too high or to
7835         the left and we need scrollbars.
7836
7837 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
7838
7839         * MimeIcon.cs: Added some icons
7840         * FileDialog.cs:
7841           - Fixed bug #77477
7842           - Got rid of the panel. All controls are now directly added to
7843             the dialog form
7844           - Changed to mono coding style
7845           - On Linux "My Computer" and "My Network" will now show some
7846             more usefull information. A new class, MasterMount, gathers
7847             this information from /proc/mount. Updated MWFFileView to make
7848             use of this information
7849           - Fixed a bug that caused FileDialog to crash when
7850             ".recently_used" file had a zero size
7851           - FilterIndex does now what it should
7852           - Some Refactoring
7853         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
7854             FileDialog changes
7855
7856 2006-02-09  Jackson Harper  <jackson@ximian.com>
7857
7858         * ComboBox.cs: Don't touch if null.
7859
7860 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
7861
7862         * Cursor.cs: 64bit safeness fix
7863         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
7864
7865 2006-02-09  Jackson Harper  <jackson@ximian.com>
7866
7867         * Form.cs: If a form is made into an MDI form update the styles so
7868         all the props can get set correctly.
7869         - Kill the mdi_container when we dont need it anymore.
7870         * InternalWindowManager.cs: Add missing NOT
7871
7872 2006-02-08  Jackson Harper  <jackson@ximian.com>
7873
7874         * InternalWindowManager.cs: Respek clipping when drawing MDi
7875         decorations.
7876
7877 2006-02-08  Jackson Harper  <jackson@ximian.com>
7878
7879         * Hwnd.cs: Add bits to track non client expose events.
7880         * XplatUIX11.cs: Track non client expose events on the hwnd. This
7881         gives us a proper invalid rect and will allow for some nice
7882         optimizations with NC client drawing
7883         - MDI windows are children windows, so move their style handling
7884         into the child window block.
7885         * InternalWindowManager.cs: Remove a state reset that was
7886         getting invoked at the wrong time. Fixes managed windows getting
7887         into a 'stuck' captured state.
7888
7889 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
7890
7891         * TextControl.cs (Document.ctor): Now initializing 
7892           selection_anchor. Fixes #77493
7893
7894 2006-02-07  Jackson Harper  <jackson@ximian.com>
7895
7896         * TrackBar.cs: The increment/decrements were backwards.
7897
7898 2006-02-07  Mike Kestner  <mkestner@novell.com>
7899
7900         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
7901         to the instance itself.
7902
7903 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
7904
7905         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
7906           on ulongs and pointers, the size differs between 32bit and 64bit
7907           systems. 
7908
7909 2006-02-07  Mike Kestner  <mkestner@novell.com>
7910
7911         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
7912         for 64 bit platforms to work around a metacity bug. 
7913
7914 2006-02-07  Jackson Harper  <jackson@ximian.com>
7915
7916         * TrackBar.cs: Process the input keys we need, and hookup to
7917         KeyDown instead of using WndProc, so we get key messages.
7918
7919 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
7920
7921         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
7922           machine we're on. 
7923         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
7924           we need to translate the XdndVersion atoms array before sending it
7925
7926 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
7927
7928         * XplatUIX11.cs: 
7929           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
7930             number of bits for the property, not the number of bytes. The
7931             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
7932             but would not crash since it specified 8 bits instead of 4 bits)
7933           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
7934             defined as XID -> long in the C headers)
7935           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
7936             references since those are now IntPtr to begin with
7937           - Switched all Atom.XXX 'int' casts to IntPtr casts
7938           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
7939           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
7940           - Added XChangeActivePointerGrab DllImport (for X11DnD)
7941         * X11Structs.cs:
7942           - Changed 'int' type for Atoms in XEvent structures to IntPtr
7943           - Changed atom in HoverStruct to be IntPtr
7944         * X11DnD.cs:
7945           - Removed local DllImports, switched code to use those from XplatUIX11
7946           - Removed/fixed casts related to the switch of Atom to be a IntPtr
7947
7948 2006-02-06  Mike Kestner  <mkestner@novell.com>
7949
7950         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
7951         method signatures in the import region.  There may still be some
7952         lingering struct marshaling issues, as I didn't drill down into those.
7953         Yet.
7954
7955 2006-02-06  Jackson Harper  <jackson@ximian.com>
7956
7957         * ComboBox.cs: Dont manually set the top_item, this is computed
7958         when the scrollbar position is set.
7959
7960 2006-02-06  Mike Kestner  <mkestner@novell.com>
7961
7962         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
7963         startup crashes on amd64.  There's other fixes needed.  All pinvoke
7964         usage of Atom needs to be mapped to IntPtr for example.  And there are
7965         likely other int/long issues to be addressed.
7966
7967 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
7968
7969         * FileDialog.cs: One more...
7970
7971 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
7972
7973         * FileDialog.cs: Next try
7974
7975 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
7976
7977         * FileDialog.cs: First part of fix for #77464
7978
7979 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
7980
7981         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
7982           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
7983           AcceptButton border drawing.
7984
7985 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
7986
7987         * Form.cs: Moved positioning of form after auto scaling is applied,
7988           otherwise it would possibly use wrong form size.
7989
7990 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
7991
7992         * Control.cs (RecreateHandle): No need to re-create any child
7993           controls, the child windows will get destroyed automatically by
7994           the windowing system or driver, and re-created when the handle
7995           is being accessed the first time. Fixes #77456
7996         * Form.cs: No longer setting the form to closing if the handle is 
7997           being recreated. This seems like the right thing to do, don't
7998           have a bug or testcase for this, though.
7999
8000 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
8001
8002         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
8003           controls to avoid unwanted side effects
8004
8005 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
8006
8007         * Control.cs: 
8008           - ScaleCore needs to scale the bounds, not the ClientSize of the 
8009             control. Fixes #77416.
8010           - DefaultSize is 0,0 for control
8011         * TextBoxBase.cs: 
8012           - DefaultSize is 100, 20
8013           - SetBoundsCore: Now enforcing the height, no matter if the provided
8014             height is more or less than the preferred one, as long as AutoSize
8015             is on
8016         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
8017
8018 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
8019
8020         * Control.cs:
8021           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
8022             call unless both performLayout is true *and* we have a pending
8023             layout change
8024           - ResumeLayout: MS does not completely nest Suspend and Resume,
8025             they bottom out at 0, fixed our code to match that.
8026           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
8027             SetBoundsCore, we were updating even when we shouldn't. This fixes
8028             swf-anchors mis-anchoring when resizing the app fast and lots.
8029           - UpdateDistances: Now only setting the left and top distance if 
8030             we have a parent and are not suspended, this is based on
8031             a suggestion by Don Edvaldson in bug #77355.
8032           - OnVisibleChanged: Fixed logic when to create the control. We may
8033             not create the control if we have no parent or if it's not visible;
8034             switched to using Visible property instead of is_visible field 
8035             since the property also considers parent states. This fixes a bug
8036             when starting Paint.Net
8037
8038 2006-02-02  Jackson Harper  <jackson@ximian.com>
8039
8040         * Form.cs: If the forms handle hasn't been created yet don't call
8041         into xplatui to make it top most, just set the topmost flag on the
8042         form in CreateParams
8043         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
8044
8045 2006-02-01  Jackson Harper  <jackson@ximian.com>
8046
8047         * ScrollableControl.cs: Refactored the Recalculate method a
8048         little, this wasn't handling all the variants of bottom and right
8049         bars needed to be added and added/removed based on their
8050         counterparts being added/removed (which changes the drawable
8051         size). Also we special case client widths and heights of 0 and
8052         don't add the scrollbar for those.
8053
8054 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
8055
8056         * XplatUIX11.cs: 
8057           - Added method to get AbsoluteGeometry(); currently unused, but might
8058             be used in the future, if we try again to figure out toplevel
8059             coordinates with some more crappy window managers
8060           - Added FrameExtents() method to retrieve the WM set decoration size
8061           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
8062             to deal with at least KDE, FVWM and metacity (Fixes #77092)
8063         * Hwnd.cs: 
8064           - Added whacky_wm tracking var for metacity
8065           - Added logic to have default menu height if the actual menu height
8066             has not yet been calculated (part of fix for #77426)
8067         * Form.cs: Keep track whether client size has been set and re-set 
8068           it if a menu is added/removed afterwards (Fixes #77426)
8069
8070 2006-01-31  Jackson Harper  <jackson@ximian.com>
8071
8072         * Control.cs: When a new Site is set on the component attempt to
8073         pull the AmbientProperties from it.
8074
8075 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
8076
8077         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
8078           in the background of the owning form. Fixes #77332
8079
8080 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
8081
8082         * MimeIcon.cs: Fix for #77409
8083
8084 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
8085
8086         * XplatUIX11GTK.cs: Initial import
8087
8088 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
8089
8090         * FixedSizeTextBox: fixes class signature
8091
8092 2006-01-30  Jackson Harper  <jackson@ximian.com>
8093
8094         * FixedSizeTextBox.cs: New internal class that represents a
8095         textBox that will not be scaled.
8096         * TreeView.cs:
8097         * ComboBox.cs:
8098         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
8099         standard TextBox.
8100                 
8101 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
8102
8103         * XplatUIX11.cs: Retrieve default screen number instead of
8104           assuming 0. Attempted fix for #77318
8105
8106 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
8107
8108         * XplatUIWin32.cs: 
8109           - GetWindowPos: When a window is parented by FosterParent, use 
8110             the desktop instead of FosterParent as the base to get coordinates
8111           - CreateWindow: Don't make FosterParent the parent window for Popups
8112             if we don't want a taskbar entry, Popups automatically don't get one
8113         * Hwnd.cs: Need to call remove to actually remove the key from the
8114           hash table
8115
8116 2006-01-30  Mike Kestner  <mkestner@novell.com>
8117
8118         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
8119
8120 2006-01-30  Jackson Harper  <jackson@ximian.com>
8121
8122         * TreeView.cs:
8123         * TreeNode.cs: Raise events no matter how the treenode is
8124         checked. Patch by Don Edvalson.
8125
8126 2006-01-30  Jackson Harper  <jackson@ximian.com>
8127
8128         * TreeNode.cs: Signature fix.
8129
8130 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
8131
8132         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
8133
8134 2006-01-20  Mike Kestner  <mkestner@novell.com>
8135
8136         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
8137         event forwarding when menus are active.
8138         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
8139         Most of the patch is pdb's with a little rework.
8140
8141 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
8142
8143         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
8144           Removed GetMenuDC and ReleaseMenuDC methods; replaced
8145           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
8146         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
8147         * InternalWindowManager.cs: Added use of PaintEventStart/End to
8148           handling of WM_NCPAINT message, now passing the PaintEventArgs to
8149           the PaintWindowDecorations method
8150         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
8151         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
8152         * MenuAPI.cs: Made tracker window invisible
8153         * XplatUIWin32.cs:
8154           - Removed GetMenuDC and ReleaseMenuDC methods
8155           - Implemented the client=false path for PaintEventStart and
8156             PaintEventEnd
8157
8158 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
8159
8160         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
8161         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
8162           styles
8163         * Form.cs: 
8164           - MaximizeBox, MinimizeBox: Recreate the handle when setting
8165             the style
8166           - CreateParams: Reworked the styles to match MS look'n'feel,
8167             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
8168             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
8169
8170 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
8171
8172         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
8173           window is not mapped, since otherwise every form that's being 
8174           created is considered minimized, which is wrong.
8175         * Form.cs: Catching the exception and returning our internal value
8176           instead
8177
8178 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
8179
8180         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
8181           SetWindowMinMax() to have means to tell the driver about the minimum,
8182           maximum and maximized state window sizes. (Part of the fix for #76485)
8183         * Form.cs:
8184           - Implemented tracking of minimum and maximum window size, now calling
8185             new SetWindowMinMax() driver method to tell the driver (Part of the
8186             fix for #76485)
8187           - Finished handling of WM_GETMINMAXINFO method, now setting all values
8188             (Completes fix for #76485)
8189           - Calling new SetWindowMinMax driver method when the handle for a 
8190             form is created, to make sure the driver knows about it even if
8191             the values have been set before the window was created
8192           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
8193             to avoid messing up our anchoring calculations (partial fix
8194             for #77355)
8195         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
8196         * XplatUIX11.cs:
8197           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
8198           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
8199             (and presumably other freedesktop.org compliant WMs). Left the
8200             assumption unmapped=minimized, needed for SetVisible to work.
8201           - Now setting the window state when creating windows
8202           - Fixed SetVisible to consider/set the window state when mapping
8203             a Form. We cannot set the state before it's mapped, and we cannot
8204             use Form.WindowState once it's mapped (since it would ask the
8205             driver and get 'normal'. Therefore, we grab the state before
8206             mapping, map, and then set state.
8207           - Implmemented SetWindowMinMax method; Metacity does not seem to
8208             honor the ZoomHints, though.
8209         * XplatUIWin32.cs:
8210           - Removed MINMAXINFO (moved to XplatUIStructs)
8211           - Added SetWindowMinMax stub (on Win32 the only way to set that
8212             information is in response to the WM_GETMINMAXINFO message, which
8213             is handled in Form.cs)
8214           - Added logic to SetVisible to set the proper window state when a 
8215             form is made visible (fixes #75720)
8216
8217 2006-01-26  Jackson Harper  <jackson@ximian.com>
8218
8219         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
8220         same way we handle them with Invoke.
8221
8222 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
8223
8224         * Form.cs:
8225           - Added tracking of window state so CreateParams can return
8226             the appropriate style
8227           - Moved setting of WS_CAPTION style in CreateParams to allow
8228             styles without caption
8229         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
8230           control if the TextBox property is accessed. Fixes #77345
8231         * Control.cs:
8232           - get_Created: now uses is_disposed and is_created to determine
8233             return value (suggested by Jackson)
8234           - CreateHandle: No longer exits if the handle is being recreated
8235           - RecreateHandle: If the handle is not yet created call the 
8236             appropriate method to create either control or handle. If the
8237             control is already created CreateHandle will simply exit instead
8238             of just creating the handle
8239         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
8240           now SendMessage WM_DESTROY directly to the control when DestroyWindow
8241           is called.
8242         * XplatUIX11.cs: 
8243           - When DestroyWindow is called, instead of waiting for the 
8244             DestroyNotification from X11, we directly post it to the WndProc
8245             and immediately dispose the hwnd object.
8246             Same applies to DestroyChildWindows, and this obsoletes the
8247             expose_pending tracking. Contrary to Win32 behaviour we destroy our
8248             child windows before our own, to avoid X11 errors.
8249           - Removed the direct sending of WM_PAINT on UpdateWindow
8250         * XplatUIWin32.cs:
8251           - Reworked DoEvents and GetMessage to allow access to internal queue
8252             even when trying non-blocking access to the queue.  Fixes #77335. 
8253             Based on a patch suggestion by Don Edvalson. The new private
8254             GetMessage can now also be used as a backend for a PeekMessage
8255             frontend version.
8256         * XplatUI.cs: Improved debug output for CreateWindow
8257
8258 2006-01-25  Jackson Harper  <jackson@ximian.com>
8259
8260         * Help.cs: Allow param to be null. Patch by Don Edvalson.
8261
8262 2006-01-24  Jackson Harper  <jackson@ximian.com>
8263
8264         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
8265         when we have a MaxDropItems lower then the selected index.
8266
8267 2006-01-24  Jackson Harper  <jackson@ximian.com>
8268
8269         * Control.cs: Don't allow selection of non visible controls, allow
8270         selection of controls without parents.
8271
8272 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
8273
8274         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
8275         * DataGridDrawingLogic.cs: Add editing row only when is necessary
8276
8277 2006-01-23  Jackson Harper  <jackson@ximian.com>
8278
8279         * UpDownBase.cs: Make the textbox handle all the selection and
8280         tabbing. This fixes tabing to updown controls.
8281
8282 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
8283
8284         * TextBoxBase.cs: fixes exception thown the object was null
8285
8286 2006-01-23  Jackson Harper  <jackson@ximian.com>
8287
8288         * ButtonBase.cs: Just use the base CreateParams. They set
8289         visibility and enabled correctly.
8290         * ComboBox.cs:
8291         * TrackBar.cs:
8292         * MonthCalendar.cs: Lets let the base set as much of the
8293         createparams as possible so we don't have duplicate code all over
8294         the place.
8295
8296 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
8297
8298         * ThemeGtk.cs: Added TrackBar and some experimental code to
8299           get double buffering back
8300
8301 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
8302
8303         * DataGrid.cs: Allows row number set internally higher than the last
8304         when creating a new row. Restores the editing functionality.
8305
8306 2006-01-20  Mike Kestner  <mkestner@novell.com>
8307
8308         * MimeIcon.cs: delay Image creation until the icons are accessed
8309         instead of creating 190 scaled images on GnomeHandler startup.
8310
8311 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
8312
8313         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
8314           first call base before processing the event. Fixes #77279
8315
8316 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
8317
8318         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
8319           that the stride for the GDI bitmap would match the stride of
8320           a DIB or a Cursor.
8321
8322 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
8323
8324         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
8325
8326 2006-01-19  Jackson Harper  <jackson@ximian.com>
8327
8328         * ComboBox.cs: Hookup the text controls keydown event so we get
8329         those when the text control has the focus.
8330
8331 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
8332
8333         * Label.cs: Now using the base events instead of defining new ones;
8334           this allows us to just call the base properties without having to
8335           duplicate all base property logic 
8336
8337 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
8338
8339         * Label.cs: A label by default is not a tabstop (Fixes one of our
8340           failing nunit tests)
8341
8342 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
8343
8344         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
8345         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
8346
8347 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
8348
8349         * Cursor.cs: Reimplemented creating cursor bitmaps without using
8350           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
8351           This fixes #77218
8352         * XplatUIWin32.cs: 
8353           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
8354             constructor creates images that can't be saved. Part of the fix
8355             for #76103
8356           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
8357           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
8358             bug fix for handling window state in forms properly)
8359
8360 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
8361
8362         * ThemeGtk.cs: Simplify ScrollBar drawing
8363
8364 2006-01-18  Jackson Harper  <jackson@ximian.com>
8365
8366         * Splitter.cs: Set the default dock style for the splitter control
8367         in the constructor.
8368
8369 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
8370
8371         * ThemeGtk.cs: Corrected StateType and ShadowType for
8372           gtk_paint_box
8373
8374 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
8375
8376         * Control.cs: Make use of Theme.DoubleBufferingSupported
8377         * ThemeGtk.cs:
8378           - Added drawing for flat style buttons
8379           - Added ScrollBar drawing
8380
8381 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
8382
8383         * ThemeClearlooks.cs: Removed some unneeded code.
8384         * ThemeGtk.cs: First part of ThemeGtk enhancements.
8385
8386 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
8387
8388         * LinkLabel.cs: We need to update the hover drawing when
8389           leaving the control as well.
8390
8391 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
8392
8393         * DataGrid.cs: Clicking on non empty areas in the columns
8394            area was giving an exception
8395
8396 2006-01-17  Jackson Harper  <jackson@ximian.com>
8397
8398         * ThemeWin32Classic.cs:
8399         * ListView.cs: Do not draw/clip the headers when the header style
8400         is None.
8401
8402 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
8403
8404         * DataGrid.cs: Fixes 77260
8405         
8406 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
8407
8408         * DataGrid.cs: Clicking on a column on a empty grid was giving
8409           an exception
8410
8411 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
8412
8413         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
8414           or any keypress will crash the grid.
8415
8416 2006-01-17  Mike Kestner  <mkestner@novell.com>
8417
8418         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
8419         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
8420         invisible/previously-visible items.
8421         [Fixes #76909]
8422
8423 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
8424
8425         * ThemeClearlooks.cs:
8426         - Added CL_Draw_Button method; now other theme controls that are 
8427           not derived from button or do not have a button can draw buttons
8428           too
8429         - Updated ComboBox drawing
8430         - Beautified RadioButton drawing
8431         - Corrected drawing of bottom and left tabs
8432         - Beautified DateTimePicker and MonthCalendar
8433         - Added CPDrawButton and CPDrawRadioButton
8434
8435 2006-01-16  Jackson Harper  <jackson@ximian.com>
8436
8437         * ComboBox.cs: Set the initial value of the scrollbar to the
8438         current index. Reduce the numbers of refreshs and IndexOfs called.
8439
8440 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
8441
8442         * FileDialog.cs: When the file listview is focused hitting the
8443           backspace key moves the fileview to the parent directory
8444
8445 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
8446
8447         * Form.cs: 
8448           - Added RecreateHandle call when changing taskbar visibility to 
8449             trigger reparenting in Win32 driver (Fixes #75719)
8450           - If a window has minimize or maximize buttons, it cannot have
8451             a help button
8452         * XplatUIWin32.cs:
8453           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
8454             the toplevel form with FosterParent (A toolwindow not on the
8455             taskbar) (Fixes #75719)
8456           - Made FosterParent a toolwindow
8457
8458 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
8459
8460         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
8461
8462 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
8463
8464         * ToolTip.cs: If SetToolTip is called from a control and the mouse
8465           is currently over that control, make sure that tooltip_window.Text
8466           gets updated
8467
8468 2006-01-13  Mike Kestner  <mkestner@novell.com>
8469
8470         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
8471
8472 2006-01-13  Jackson Harper  <jackson@ximian.com>
8473
8474         * TreeView.cs: On MS GetNodeAt never actually factors in the X
8475         value passed.  Also redraw the selected node when we recieve
8476         focus, so tabbing between trees works correctly.
8477
8478 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
8479
8480         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
8481           ~/.gconf/%gconf-tree.xml, so use
8482           .gconf/desktop/gnome/interface/%gconf.xml
8483
8484 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
8485
8486         * TextControl.cs: Draw text in gray if control is disabled
8487
8488 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
8489
8490         * TreeView.cs: Draw the focus rectangle outside the highlight, to
8491           make sure it's always visible. Fixes #76680.
8492
8493 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
8494
8495         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
8496
8497 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
8498
8499         * PageSetupDialog.cs: Added.
8500         * PrintDialog.cs: Attributes.
8501         * PrintPreviewControl.cs: Updates.
8502         * PrintPreviewDialog.cs: Updates.
8503         
8504 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
8505
8506         * Control.cs: Undid my selection check fix, since it's not needed
8507         * TextBoxBase.cs:
8508           - Now considering the presence of hscroll/vscroll when sizing
8509             vscroll/hscroll respectively. Fixed bug #77077
8510           - Added Left/Up/Down/Right to IsInputKey list to prevent
8511             ContainerControl from stealing them. This fixes what I broke
8512             with my last checkin.
8513
8514 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
8515
8516         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
8517           I finally understand how the property can be set without a setter :-)
8518
8519 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
8520
8521         * Application.cs:
8522           - Switched RunLoop to use static Message.Create to create a 
8523             Message object
8524           - Added PreProcessMessage call in runloop for keyboard events; this
8525             is part of the fix for #77219, I overlooked this originally in the
8526             MSDN doc for PreProcessMessage
8527         * Control.cs:
8528           - Removed call to PreProcessMessage from handling of keyboard 
8529             messages; it's supposed to be done in the message pump
8530           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
8531             per MSDN documentation.
8532           - IsInputChar: All chars are input chars by default; removed the 
8533             parent calling chain, MS does not document that
8534           - PreProcessMessage: If IsInputChar is true, we want to return false
8535             to allow dispatching of the message
8536           - When selecting the next control, now also check that we're not
8537             selecting ourselves again and therefore return a false positive.
8538         * TextBoxBase.cs:
8539           - Tried to match return values for IsInputKey and ProcessDialogKey
8540             to what MS returns; moved processing of our special keys outside
8541             ProcessDialogKey since MS does not seem to return true on those.
8542           - Moved code that previously was in ProcessDialogKey into new private
8543             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
8544           - Reworked handling of WM_CHAR to not have to duplicate code from
8545             Control.cs anymore, instead we simply call down to base.
8546            
8547 2006-01-12  Jackson Harper  <jackson@ximian.com>
8548
8549         * ComboBox.cs: We always need to refresh the text area when
8550         EndUpdate is called. Fixes the combobox in the file dialog.
8551         * Control.cs: Don't create the creator_thread until the controls
8552         handle is created.  Also in InvokeRequired we check if the
8553         creator_thread is null. This gives the effect of InvokeRequired
8554         returning true if the controls handle is not created yet, and
8555         matches MS.
8556
8557 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
8558
8559         * XplatUI.cs:
8560           - Added StartLoop() driver method. This is used to allow drivers to
8561             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
8562             loop for a particular thread
8563           - Added EndLoop() driver method. This is called once the message
8564             pump for the thread is shut down
8565           - Added SupportsTransparency method to allow the driver to indicate
8566             opacity support for windows
8567         * Form.cs:
8568           - Removed TODO attribute, completed AllowTransparency property
8569           - Added documented logic to Opacity
8570         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
8571           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
8572           versions of CompatibleTextRendering
8573         * X11Structs.cs: Added opacity atom to our atom enumeration
8574         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
8575           of a form might be set before it's reparented by the WM, and we need
8576           the opacity value without calling up to Form)
8577         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
8578           SupportsTransparency() driver methods
8579         * Application.cs: Now calling StartLoop and EndLoop driver methods
8580         * XplatUIX11.cs:
8581           - Added opacity atom registration
8582           - Added StartLoop()/EndLoop() methods. They're empty right now but
8583             will need to get implemented when we switch to a per-thread queue
8584           - Implemented SupportsTransparency() method
8585           - Implemented SetWindowTransparency() method
8586           - Added support for setting the opacity value when a window is
8587             reparented (since the opacity needs to be set on the WM frame)
8588         * XplatUIOSX.cs, XplatUIWin32.cs:
8589           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
8590
8591 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
8592
8593         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
8594
8595 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
8596
8597         * FileDialog.cs: Added ToolTip for MWFFileView
8598         * MimeIcon.cs: Rewrote GnomeHandler.
8599           - Get currently used gnome icon theme from
8600             ($HOME)/.gconf/%gconf-tree.xml
8601           - Make use of inherited icon themes
8602           - Support SVG icon themes like Tango via librsvg
8603
8604 2006-01-12  Miguel de Icaza  <miguel@novell.com>
8605
8606         Revert's Jackson's revert which broke 2.0 builds.   Fix both
8607         builds. 
8608         
8609         * Application.cs: Move the use_compatible_text_rendering outside
8610         the NET_2_0 define.  If we ever need to use the
8611         use_compatible_text_rendering on the individual controls they will
8612         access the variable from the common shared code paths.
8613
8614 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
8615
8616         * XplatUI.cs:
8617           - Added more granular debug options
8618           - Added method to print both window text and id
8619           - Switched debug output to use new Window() debug method
8620           - Added IsEnabled() driver method
8621           - Added EnableWindow() driver method
8622         * Form.cs:
8623           - Removed end_modal; no longer needed, new loop handles termination
8624             via 'closing' variable
8625           - If form is modal, setting DialogResult will now initiate loop
8626             termination via 'closing' variable
8627           - Added support for is_enabled/WS_DISABLED to CreateParams
8628           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
8629             does all the work
8630           - Removed code that's now in RunLoop from ShowDialog()
8631           - Added various documented sanity checks to ShowDialog()
8632           - Added handling of WM_DESTROY message; we set 'closing' on getting
8633             the message to indicate the message pump to terminate
8634           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
8635             send by the Application.ExitThread method. (We send the message
8636             to destroy the window after all other events have been
8637             processed through the queue, instead of destroying the handle 
8638             directly)
8639           - Moved code from Close() method to WM_CLOSE handler; added logic
8640             to only send close-related events if the form is not displayed
8641             modal
8642         * Splitter.cs (..ctor): Fixed typo in resource name
8643         * Control.cs:
8644           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
8645             brush now
8646           - set_Cursor: Now only setting calling into XplatUI if the handle for
8647             the control is already created; this avoids implict handle creation
8648             or crashes if it's not created
8649           - set_Enabled: Now setting the enabled state via the new driver method
8650             instead of just tracking it
8651           - CreateParams: Added logic to set WS_DISABLED based on enabled state
8652           - CreateControl: Reordered event firing and method calls to more
8653             closely fire events in the order MS does. Now setting the
8654             enabled state in the driver when creating the control.
8655           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
8656             match MS order
8657         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
8658           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
8659         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
8660         * Hwnd.cs:
8661           - Added tracking of window enabled state (get_Enabled/set_Enabled)
8662           - Added EnabledHwnd property to easily allow a driver to find the
8663             handle of the first enabled window in the parent chain (this is
8664             used by drivers to pass up input events of disabled windows)
8665         * XplatUIDriver.cs: Added IsEnabled() method
8666         * Application.cs:
8667           - Removed crude and obsolete exiting tracking variable
8668           - Removed internal ModalRun(); replaced by RunLoop()
8669           - Implemented private CloseForms() method to allow closing all 
8670             windows owned by a particular (or all) threads
8671           - Exit() now properly closes all windows without forcing the message
8672             pump to quit
8673           - Removed obsolete InternalExit() method
8674           - Changed Run() methods to use new RunLoop() message pump
8675           - Implemented new RunLoop() method for both modal and non-modal forms
8676         * CommonDialog.cs:
8677           - get_CreateParams: Added setting of WS_DISABLED
8678           - Simplified ShowDialog(); now all the work is done in RunLoop(),
8679             invoked via Form.ShowDialog()
8680         * NativeWindow.cs: We don't remove the window from the collection when
8681           the handle is destroyed; there might still be messages for it in the
8682           queue (mainly the resulting WM_DESTROY); instead it will be removed
8683           when Control calls InvalidateHandle in the WM_DESTROY handler
8684         * XplatUIX11.cs:
8685           - CreateWindow: Added logic to handle the WS_DISABLED window style
8686           - EnableWindow: Implemented based on Hwnd.Enabled
8687           - GetMessage: Reset PostQuitState so the method can be called again
8688           - Implemented support for disabled windows (passing messages to the
8689             first enabled parent) in handling all input messages
8690           - Added optimizations for handling Expose events
8691           - Implemeted new driver method IsEnabled()
8692           - Now always resetting paint pending tracking vars when we start paint
8693           - Re-implemented UpdateWindow via just sending a WM_PAINT message
8694         * XplatUIOSX.cs: Added IsEnabled method stub
8695         * XplatUIWin32.cs: Implemented new IsEnabled() method
8696
8697 2006-01-11  Jackson Harper  <jackson@ximian.com>
8698
8699         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
8700         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
8701         variables a little.
8702         * ColorDialog.cs: Clear out the old form before adding the new
8703         panel.  
8704
8705 2006-01-11  Jackson Harper  <jackson@ximian.com>
8706
8707         * X11Dnd.cs: Make sure to add all the text formats when adding
8708         strings to the data object.
8709         * TreeNodeCollection.cs: When adding to a sorted tree we need to
8710         do some redrawing too.  Also change the UpdateNode to an
8711         UpdateBelow so the newly added node gets painted.
8712         
8713 2006-01-11  Miguel de Icaza  <miguel@novell.com>
8714
8715         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
8716         LinkLabel.cs, PropertyGrid.cs: Implement the
8717         UseCompatibleTextRendering property for 2.x
8718
8719         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
8720
8721 2006-01-11  Jackson Harper  <jackson@ximian.com>
8722
8723         * TreeView.cs: Use the property for setting the selected node so
8724         the correct events get raised.
8725         * TreeNode.cs: Update the tree when the fore/back colours of a
8726         node are set.
8727
8728 2006-01-10  Jackson Harper  <jackson@ximian.com>
8729
8730         * TreeView.cs: Allow setting SelectedNode to null.
8731
8732 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
8733
8734         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
8735
8736 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
8737
8738         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
8739
8740 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
8741
8742         * PrintDialog.cs: Added attributes and set default property values.
8743
8744 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
8745
8746         * PrintControllerWithStatusDialog.cs: 
8747         Added PrintControllerWithStatusDialog.
8748
8749 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
8750
8751         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
8752         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
8753
8754 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
8755
8756         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
8757
8758 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
8759
8760         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
8761         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
8762
8763 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
8764
8765         * MimeIcon.cs: Added internal class SVGUtil.
8766
8767 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
8768
8769         * FileDialog.cs: Don't crash if there are two files with the
8770           same name but different locations.
8771
8772 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
8773
8774         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
8775         dates across multiple month grids. Used to not highlight entire 
8776         month, but does now.
8777         
8778 2006-01-06  Jackson Harper  <jackson@ximian.com>
8779
8780         * MonthCalendar.cs: Removed DoEvents call to prevent a running
8781         message loop. Change timer intervals to numbers that seem more
8782         natural.
8783
8784 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
8785
8786         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
8787           object for location info since screen object is now implemented.
8788
8789 2006-01-05  Jackson Harper  <jackson@ximian.com>
8790
8791         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
8792         * AsyncMethodResult.cs: We no longer use a WeakReference for the
8793         AsyncMethodResult, this is because we ALWAYS want the
8794         ManualResetEvent to get set.
8795         * Control.cs: When disposing use an async invoke to call shutdown
8796         code, so that thigns don't block on the finalizer thread.  Also
8797         check if we even have a message loop before trying to send
8798         messages, if we don't then don't bother sending messages.
8799         - No more weak references for async methods
8800         * XplatUIDriver.cs: No more weak references for async methods.
8801
8802 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
8803
8804         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
8805           returns two FontFamily with the same name
8806
8807 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
8808
8809         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
8810           drawing disabled text. Instead using the ColorGrayText color
8811
8812 2006-01-04  Jackson Harper  <jackson@ximian.com>
8813
8814         * TreeNode.cs: redraw the node when its image index is changed.
8815
8816 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
8817
8818         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
8819           time I checked there are no others like it.
8820
8821 2006-01-04  Jackson Harper  <jackson@ximian.com>
8822
8823         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
8824         this gives the behavoir I was looking for.
8825         * Control.cs: Special case Invoking EventHandlers, this matches MS
8826         and fixes part of bug #76326.
8827
8828 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
8829
8830         * ThemeClearlooks.cs, FileDialog.cs:
8831           - Reflect the latest Theme class changes
8832           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
8833             with DateTime
8834             
8835 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
8836
8837         * Theme.cs: Cache UI resource images and resize them if needed
8838
8839 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
8840
8841         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
8842           is called. This fixes the crash in Nexxia when setting the font
8843           attributes in the chat. [However, RTF needs a look-over to make sure
8844           that all SelectionXXX methods handle the special case that selection
8845           is empty and therefore the change must be applied to all text starting
8846           at the cursor/selection start]
8847
8848 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
8849
8850         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
8851           XplatUIOSX.cs: Added SendMessage and PostMessage methods
8852         * X11Keyboard.cs: Switched to new way of calling PostMessage
8853
8854 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
8855
8856         * Theme.cs: Added theme interface for images to allow the theme to
8857           control what images are used for things like FileDialog, MessageBox
8858           icons, etc.
8859         * MessageBox.cs: Now uses the new Theme icon/image interfaces
8860
8861 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
8862
8863         * FileDialog.cs:
8864           - Removed some dead code
8865           - Opening a recently used file does work now
8866           - Small UI enhancements
8867           - Refactoring
8868
8869 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
8870
8871         * FileDialog.cs: Forgot too add __MonoCS__
8872
8873 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
8874
8875         * FileDialog.cs: We are able to read recently used files now let's
8876           go on and write them.
8877
8878 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
8879
8880         * FileDialog.cs: Breathe some life into "last open"/"recently used"
8881           button
8882         * MimeIcon.cs: Do a check for the top level media type also
8883
8884 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
8885
8886         * ThemeClearlooks.cs:
8887           - Added CPDrawStringDisabled
8888           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
8889             some chars if the text doesn't fit into text_rect
8890           - DrawListViewItem: If View = View.LargeIcon center the image;
8891             rewrote the drawing of ListViewItem.Text if View = 
8892             View.LargeIcon
8893
8894 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
8895
8896         * MimeIcon.cs: Use default KDE icon theme if there is no
8897           "48x48" directory for the current icon theme, fixes #77114
8898         * Mime.cs: Disable not working and actually not used code. 
8899         * ThemeWin32Classic.cs:
8900           - Replace "new SolidBrush" in GetControlBackBrush and
8901             GetControlForeBrush with ResPool.GetSolidBrush
8902           - Changed DrawListViewItem from private to protected virtual
8903         * FileDialog.cs:
8904           - Added form.MaximizeBox = true
8905           - Don't throw an exception if there is a broken symbolic link
8906
8907 2005-12-23  Jackson Harper  <jackson@ximian.com>
8908
8909         * TabControl.cs: Give the panels focus, keyboard navigation is
8910         fixed so this works correctly now.
8911         - We need these key events also.
8912         * ToolBar.cs: Remove some of the poor mans double buffering.
8913         
8914 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
8915
8916         * ComboBox.cs: The internal TextBox now returns the focus.
8917
8918 2005-12-23  Jackson Harper  <jackson@ximian.com>
8919
8920         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
8921
8922 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
8923
8924         * Control.cs: Removed debug code
8925         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
8926           implicit children
8927
8928 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
8929
8930         * Control.cs: When creating the control, update the Z-order after
8931           all it's children are created, too. (Fixes nexxia not showing
8932           picturebox bug)
8933
8934 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
8935
8936         * Control.cs: Do not update the anchoring distances if layout is
8937           suspended, instead do it once layout is resumed
8938
8939 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
8940
8941         * Control.cs: 
8942           - After many hours of debugging, for both Jackson and
8943             myself, it turns out that it helps to set the parent of a control
8944             if you want to actually see it onscreen. In the spirit of that
8945             discovery, we're now setting the parent of the control and
8946             it's children when the control's handle is created. This fix
8947             will make Lutz Roeder's Reflector run happily. 
8948           - now just creating the handle instead of the whole control when
8949             getting a graphics context for the control.
8950
8951 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
8952
8953         * ScrollableControl.cs: When calculating the canvas, don't consider
8954           the scrollbar widths. Instead, predict if horizontal scrollbar
8955           will affect canvas when deciding on vertical display and vice versa.
8956
8957 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
8958
8959         * RichTextBox.cs: Set default RTF font for documents that don't
8960           have a font table (Fixes #77076)
8961
8962 2005-12-22  Jackson Harper  <jackson@ximian.com>
8963
8964         * TextBoxBase.cs: It's difficult to do, but you can have an empty
8965         clipboard. This prevents a NullRef in that case.
8966         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
8967         clipboard. PRIMARY is for the currently selected text only. (We
8968         should implement PRIMARY at some point.
8969
8970 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
8971
8972         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
8973           a Unicode function with a structure that was defined in Ansi way.
8974           This fixes #76942.
8975
8976 2005-12-21  Jackson Harper  <jackson@ximian.com>
8977
8978         * StatusBar.cs: Statusbar handles its fore/back colours on it's
8979         on. Because thats how it rolls. (and this avoids it using ambient
8980         colours).
8981         * ThemeWin32Classic.cs: Use the proper back color for filling.
8982         * Menu.cs: Use the system menu bar color for drawing menu
8983         bars. Using the window back color will bring ambient colours into
8984         the picture.
8985
8986 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
8987
8988         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
8989           Bitmaps were created and not disposed.
8990
8991 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
8992
8993         * Control.cs (CreateControl): Don't do anything if the control is
8994           already created, otherwise we'd fire the OnCreated event more than
8995           once
8996
8997 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
8998
8999         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
9000           will always match. Instead return -1. Fixes #76464.
9001
9002 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
9003
9004         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
9005           neither the beginning nor the end of the line (Fixes bug #76479)
9006
9007 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
9008
9009         * Control.cs:
9010           - ControlNativeWindow.ControlFromHandle(): Now handling situation
9011             where handle is invalid
9012           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
9013             instead of slower linear search
9014         * NativeWindow.cs: Don't remove the window from the hashtable until
9015           after the driver has destroyed it (since the driver might use
9016           Control.FromHandle to lookup the control object
9017         * Hwnd.cs: Added DestroyPending property to track if a window is 
9018           already destroyed as far as the driver is concerned and only hasn't
9019           yet notified the control
9020         * XplatUIX11.cs:
9021           - Activate(): Check if the window is still valid before using the 
9022             handle
9023           - Implemented DestroyChildWindow() method to mark child windows as
9024             destroyed when a window is destroyed. This prevents situations 
9025             where we might call an X method based on queued events for a
9026             window that already has been destroyed but we haven't yet pulled
9027             the destroy method from the queue.
9028           - Added a call to the new DestroyChildWindow() method to the drivers
9029             DestroyWindow code. Also now marking the destroyed window itself
9030             as pending
9031
9032 2005-12-20  Jackson Harper  <jackson@ximian.com>
9033
9034         * StatusBar.cs:
9035         * StatusBarPanel.cs: Don't calculate panel sizes on draw
9036         anymore. Just do them when needed, also track the rects of panels
9037         so that we can optimize refreshing more in the future.
9038
9039 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
9040
9041         * ColorDialog.cs: Fixed focus drawing in small color controls
9042
9043 2005-12-19  Jackson Harper  <jackson@ximian.com>
9044
9045         * InternalWindowManager.cs:
9046         * MdiWindowManager.cs: Cleanup some coordinate system changes so
9047         moving windows works properly.
9048
9049 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
9050
9051         * Control.cs: 
9052           - Removed call to InitLayout() from SetBoundsCore(); doc says
9053             it's only called when a control is added to a container
9054           - Split InitLayout logic, moved to separate UpdateDistances() method
9055             since we need to perform those calculations more often than just
9056             when adding the control to a container. (Needed to fix #77022)
9057           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
9058           - Reduced the OnBindingContextChanged events count, don't send them
9059             unless the control is created, we still aren't totally matching
9060             MS, but I can't quite figure out some of their rules
9061
9062 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
9063
9064         * ThemeClearlooks.cs: Corrected distance between ProgressBar
9065           stripes
9066
9067 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
9068
9069         * ThemeClearlooks.cs:
9070           - Updated ProgressBar drawing
9071           - Corrected drawing of ScrollBars and scroll buttons
9072           - Some temporary fixes for minor pixel artefacts
9073
9074 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
9075
9076         * Control.cs:
9077           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
9078             cause events to be sent in the same order as MS does.
9079           - Added ChangeParent() method to trigger various OnXXXChanged events
9080             that need to be fired when a parent changes (This is a reworking
9081             of the patch from r54254, with the X11 errors fixed)
9082           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
9083             since on MS we get OnLayoutChanged events when calling Clear()
9084           - Changed Enabled property to consider parent state as well, if a
9085             parent is not enabled, the control will not be either
9086           - Changed Parent property to simply call Controls.Add() since that
9087             now does all the work required, this way we avoid code duplication
9088           - Threw in a few OnBindingsContextChanged calls to try and match
9089             when MS sends them. We seem to send a few too many, though.
9090           - Added call to CreateControl when adding the control to a parent.
9091             We were never calling CreateControl. Still needs some work, in
9092             some places we treat HandleCreated and ControlCreated as equal, 
9093             which is wrong
9094           - Removed obsolete commented out code from UpdateZOrder()
9095
9096 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
9097
9098         * ThemeClearlooks.cs: Updated TrackBar drawing.
9099
9100 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
9101
9102         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
9103
9104 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
9105
9106         * FileDialog.cs: Add the Help button and the open readonly
9107           checkbox only if needed
9108
9109 2005-12-16  Jackson Harper  <jackson@ximian.com>
9110
9111         * Control.cs: Make sure we have an active menu before trying to
9112         process commands on it. Prevents menu-less forms from crashing
9113         when Alt is pressed.
9114         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
9115         Dieter Bremes.
9116         * RichTextBox.cs: Expand statement to help out gmcs and fix the
9117         2.0 build.
9118
9119 2005-12-16  Jackson Harper  <jackson@ximian.com>
9120
9121         * InternalWindowManager.cs: Don't translate tool windows screen
9122         coordinates. This fixes windows 'bouncing' around when being moved.
9123
9124 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
9125
9126         * TextBoxBase.cs:
9127           - MaxLength now treats 2^31-1 equal to unlimited length (this is
9128             not quite MS compatible, MS uses that number only for single line
9129             and 2^32-1 for multi-line, but I figure it won't hurt keeping
9130             the limit at 2GB)
9131           - Now enforcing the MaxLength limit when entering characters
9132           - Added argument to internal Paste() method to track if it's called
9133             from programatically or via keyboard, since keyboard driven pastes
9134             need to enforce max-length
9135           - Added logic to Paste to only paste as many chars as MaxLength 
9136             allows
9137         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
9138         * TextControl.cs:
9139           - Added Length property to return number of characters in document
9140           - Added private CharCount property which only tracks actual chars
9141             in the document (no linefeeds) and fires event when CharCount
9142             changes
9143           - Added tracking of character count to all methods that alter it
9144           - Added LengthChanged event to allow applications to subscribe
9145             to any changes to the document
9146
9147 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
9148
9149         * TextBox.cs: 
9150           - Removed local password_char field (moved to TextBoxBase)
9151           - Now setting the document's password var when password is
9152             set
9153         * TextBoxBase.cs:
9154           - Added password_char field (needed here so MultiLine can
9155             access it)
9156           - Added logic to MultiLine property setter to set the document's
9157             variable when password display is allowed
9158           - Removed debug code and made some debug code conditional
9159         * TextControl.cs:
9160           - Added RecalculatePasswordLine() method to handle special password
9161             char only lines
9162           - Added PasswordChar property, also added related tracking vars
9163           - Draw() method now uses local text var for grabbing text to draw,
9164             this var is set to line.text unless we're doing password display,
9165             then it is set to the pre-generated all-password-chars line
9166           - Added calling RecalculatePasswordLine() method for password lines
9167
9168 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
9169
9170         * Hwnd.cs: 
9171           - Added Reparented property to allow tracking of Window Manager
9172             reparenting actions (which affect X/Y calculations of toplevel 
9173             windows)
9174           - Made ToString() print window handles in hex
9175         * XplatUIX11.cs:
9176           - AddConfigureNotify(): Now uses reparented state off Hwnd to
9177             determine if X/Y needs offsetting
9178           - AddConfigureNotify(): Fixed offset calculations
9179           - Now adds ReparentNotify messages into the queue
9180           - Now processes ReparentNotify messages and causes a 
9181             WM_WINDOWPOSCHANGED message to be sent upstream if a window
9182             is reparented (as most likely it's X/Y coordinates are changed
9183             due to that)
9184
9185 2005-12-14  Jackson Harper  <jackson@ximian.com>
9186
9187         * XplatUIX11.cs: Tool windows still need to respek focus.
9188
9189 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
9190
9191         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
9192           have a working release
9193
9194 2005-12-13  Jackson Harper  <jackson@ximian.com>
9195
9196         * Form.cs: Update styles after setting the border style regardless
9197         of whether or not the window is using a window manager.
9198
9199 2005-12-13  Jackson Harper  <jackson@ximian.com>
9200
9201         * Form.cs: We now hook into an internal window manager instead of just an
9202         MDI subsystem, this is so we can have properly behaving tool windows.
9203         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
9204         * InternalWindowManager.cs: New internal class that acts as a
9205         window manager for tool windows and as a base for mdi windows.
9206         * MdiWindowManager.cs: New class that acts as a window manager for
9207         mdi windows.
9208
9209 2005-12-12  Jackson Harper  <jackson@ximian.com>
9210
9211         * Control.cs: Updates so we match behavoir for for implicit
9212         controls. Fixes explosions in MDI.
9213
9214 2005-12-12  Jackson Harper  <jackson@ximian.com>
9215
9216         * Control.cs: Implement Invalidate (Region).
9217
9218 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
9219
9220         * Control.cs: 
9221           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
9222             the same events as MS does. MS fires events for each property 
9223             except, for unknown reasons, Cursor, when the control is reparented. 
9224             I can't seem to totally match add/remove since MS also fires some 
9225             VisibleChanged events, which makes no sense. Consolidated the
9226             parenting code into a separate method so it can be called from
9227             both Add and Remove. set_Parent no longer needs any special logic
9228             as it calls the parent's add method which implicitly fires
9229             all events
9230           - Removed some obsolete code and debug output
9231           - Enabled state is inherited from parents, if this is enabled
9232
9233 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
9234
9235         * Form.cs: Removed commented out code
9236
9237 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
9238
9239         * Control.cs:
9240           - Added internal version of Invoke, with additional argument 
9241             indicating if we're calling it from a Dispose() handler. That
9242             way we can avoid BeginInvoke throwing an exception if we're
9243             calling for an already destroyed window.
9244           - Added a dispose argument to BeginInvokeInternal, and made the
9245             check if a valid window handle chain exists conditional on
9246             it not being a dispose call
9247           - Removed code in DestroyHandle to destroy our children. Since we
9248             now handle the WM_DESTROY message we will catch all our children
9249             being destroyed.
9250           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
9251         * Form.cs:
9252           - Added a field to track the application context of the form.
9253           - No need to set closing variable as response to WM_CLOSE, instead
9254             we destroy the window. We also call PostQuitMessage if the form
9255             has an application context (which makes it the main app form,
9256             which, when closed terminates the app)
9257         * XplatUI.cs:
9258           - Dropped Exit() method, it's naming was confusing
9259           - Added PostQuitMessage() which causes GetMessage to return false
9260             once the message queue is empty
9261         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
9262           PostQuitMessage()
9263         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
9264           no longer a valid XplatUI method, but left it in since it's used
9265           internally. Added empty PostQuitMessage() method.
9266         * MenuAPI.cs: Replaced call to Exit() with call to
9267           PostQuitMessage, even though this is probably no longer needed.
9268         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
9269         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
9270         * Application.cs:
9271           - Replaced call to XplatUI.Exit() with PostQuitMessage()
9272           - Removed old debug code that would call XplatUI for exception
9273             display, enabled standard exception handling (Still not enabled
9274             though, until NativeWindow's ExternalExceptionHandler define
9275             is removed
9276         * NativeWindow.cs:
9277           - Added internal method to allow control to update NativeWindow
9278             after a window has been destroyed
9279           - Added handling of already destroyed windows when calling i
9280             DestroyWindow
9281           - Added removal of handle from list on ReleaseHandle
9282         * XplatUIX11.cs:
9283           - Dropped GetMessageResult var and related code
9284           - Added PostQuitState to field to track if PostQuitMessage has been
9285             called
9286           - Dropped Exit() method
9287           - Added PostQuitMessage() method
9288           - GetMessage now will return false if PostQuitState is set and no
9289             more messages are in the queue.
9290           - Expose handler will no longer generate WM_PAINT messages if we are
9291             in PostQuitState since it's very likely any windows have already
9292             been destroyed, and since Hwnd won't get updated until we have
9293             processed the DestroyNotify we'd be causing X errors.
9294         
9295 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
9296
9297         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
9298           Thanks to Mike for pointing out the err of my ways.
9299
9300 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
9301
9302         * Control.cs(PreProcessMessage): Moved menu handling back, but
9303           after all other key handling, to match MS (who handles Menu in
9304           DefWndProc)
9305         * Menu.cs (WndProc): Removed my brainfart
9306
9307 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
9308
9309         * Control.cs(PreProcessMessage): Removed special menu handling 
9310         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
9311
9312 2005-12-07  Mike Kestner  <mkestner@novell.com>
9313
9314         * Control.cs : special case SYSKEYUP so that we can adjust keynav
9315         state according in tracker.
9316         * Menu.cs : promote tracker field to base class and provide a tracker
9317         lookup capability.  Add/Remove shortcuts dynamically if the top menu
9318         has a tracker. Unparent items that are removed from the collection.
9319         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
9320         * Theme*.cs: add always_show_hotkeys field to support configurability
9321         of mnemonic display.  win32 doesn't show mnemonics until Alt is
9322         pressed.
9323
9324 2005-12-07  Jackson Harper  <jackson@ximian.com>
9325
9326         * MdiChildContext.cs: Use Control.ResetCursor.
9327         * Control.cs: ResetCursor needs to set the property so that the
9328         correct XplatUI call gets made.
9329
9330 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
9331
9332         * Control.cs: More fixes to make our key events match MS. We
9333           were not setting the modifier state on KeyData, and we were
9334           not generating any events when Alt was pressed with a key
9335           since handling of WM_SYSxxx was missing for the OnKey methods.
9336
9337 2005-12-07  Jackson Harper  <jackson@ximian.com>
9338
9339         * MdiChildContext.cs: reenable the sizing code.
9340         - When the mouse leaves a window reset its cursor.
9341
9342 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
9343
9344         * ThemeClearlooks.cs: Reflect latest Hwnd changes
9345
9346 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
9347
9348         * Hwnd.cs: Now using the theme 3d bordersize to calculate
9349           widths of Fixed3D borders
9350
9351 2005-12-07  Jackson Harper  <jackson@ximian.com>
9352
9353         * MdiClient.cs: Fix warnings. Earn Mike's love.
9354
9355 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
9356
9357         * ThemeClearlooks.cs:
9358           - Adjusted mouse over button color
9359           - Added first parts of CheckBox drawing
9360           - Added correct color for selected text background
9361           - Fixed ComboBox drawing
9362           - Added CPDrawBorder3D and CPDrawBorder
9363
9364 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
9365
9366         * XplatUIX11.cs: Added call to XBell for AudibleAlert
9367
9368 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
9369
9370         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
9371           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
9372           alert users via sound. We could add an enum arg with different
9373           types of alerts in the future
9374
9375 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
9376
9377         * Control.cs: Fix behaviour problems pointed out by Mike
9378
9379 2005-12-05  Mike Kestner  <mkestner@novell.com>
9380
9381         * StatusBarPanel.cs: add Invalidate method and hook it into all the
9382         prop setters.  Calls parent.Refresh for now, but could be maybe be
9383         optimized with an internal method on StatusBar at some point.
9384         [Fixes #76513]
9385
9386 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
9387
9388         * RichTextBox.cs: Implemented get_SelectionColor
9389
9390 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
9391
9392         * ThemeClearlooks.cs:
9393           - Removed dead code
9394           - Draw black button border only if button is Form.AcceptButton
9395           - Draw correct button color for pressed RadioButton if the mouse 
9396             has entered the button
9397           - Updated ProgressBar drawing!
9398           - Updated CPDrawSizeGrip drawing
9399           - Updated StatusBarPanel drawing
9400
9401 2005-12-05  Mike Kestner  <mkestner@novell.com>
9402
9403         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
9404         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
9405
9406 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
9407
9408         * ThemeClearlooks.cs: Initial check-in, activate with
9409           export MONO_THEME=clearlooks
9410         * ThemeEngine.cs: Added ThemeClearlooks
9411
9412 2005-12-03  Mike Kestner  <mkestner@novell.com>
9413
9414         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
9415         [Fixes #76897]
9416
9417 2005-12-02  Jackson Harper  <jackson@ximian.com>
9418
9419         * Form.cs: If the child form has no menu the default main menu is
9420         used as the active menu.
9421
9422 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
9423
9424         * ListBox.cs: Check if any items exist before trying to resolve 
9425           coordinates into items
9426
9427 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
9428
9429         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
9430           as the second color for the background hatch
9431
9432 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
9433
9434         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
9435         * RichTextBox.cs: FormatText position arguments are 1-based, now making
9436           sure that what we pass to FormatText is always 1-based. Fixes #76885
9437
9438 2005-11-29  Miguel de Icaza  <miguel@novell.com>
9439
9440         * NumericUpDown.cs (EndInit): When we are done initializing,
9441         reflect any updates on the UI.
9442
9443 2005-12-02  Jackson Harper  <jackson@ximian.com>
9444
9445         * ImplicitHScrollBar.cs:
9446         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
9447         their container controls.
9448         * TreeView.cs: Use the new implicit scrollbars.
9449
9450 2005-12-02  Jackson Harper  <jackson@ximian.com>
9451
9452         * TreeView.cs: Make top_node internal so the TreeNodeCollections
9453         can play with it.
9454         * TreeNodeCollection.cs: If we remove the topnode we need to
9455         update topnode to the next node in line.
9456         - When clearing nodes go through the same process as removing
9457         them, so they get depareneted and checked if they are top node.
9458
9459 2005-12-01  Jackson Harper  <jackson@ximian.com>
9460
9461         * TreeView.cs: When imagelists are used the image area is
9462         selectable as well as the text.
9463         - If there are no selected nodes select the first one.
9464         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
9465         so don't do it more then we need to.
9466
9467 2005-12-01  Jackson Harper  <jackson@ximian.com>
9468
9469         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
9470         that arrows can be scaled.
9471
9472 2005-12-01  Jackson Harper  <jackson@ximian.com>
9473
9474         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
9475         fail. Patch by Dieter Bremes
9476
9477 2005-11-30  Jackson Harper  <jackson@ximian.com>
9478
9479         * Form.cs: Property is 2.0 only
9480         * PrintDialog.cs: Signature fix.
9481
9482 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
9483
9484         * TextControl.cs: 
9485           - No longer artificially moves text 2 pixels down (now that we have
9486             borders this is no longer needed)
9487           - Added calcs for left, hanging and right indent
9488
9489 2005-11-23  Mike Kestner  <mkestner@novell.com>
9490
9491         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
9492
9493 2005-11-30  Jackson Harper  <jackson@ximian.com>
9494
9495         * MdiChildContext.cs: Set the cloned menus forms, as these don't
9496         get cloned as part of CloneMenu ().
9497         * Menu.cs: Make sure the parent of the items get set correctly
9498         when they are added.  And the owners are notified of the changes.
9499         * Form.cs: Create an ActiveMenu property, so that when MDI is used
9500         we can change the menu being displayed/handled by the form without
9501         changing the menu assosciated with the form.
9502         - Don't let Mdi children draw/handle menus.
9503         
9504 2005-11-30  Jackson Harper  <jackson@ximian.com>
9505
9506         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
9507         a MenuChanged event. Just to make the API a little more
9508         consistent.
9509         * MainMenu.cs:
9510         * MenuItem.cs: Use the new OnMenuChanged
9511         * MdiChildContext.cs: Handle menu merging.
9512         * Form.cs: Implement MergedMenu.
9513         
9514 2005-11-30  Jackson Harper  <jackson@ximian.com>
9515
9516         * Menu.cs: We were misusing Add. Add goes behind the specified
9517         index according to the docs, and does not replace the specified
9518         index. So I added an Insert method.
9519
9520 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
9521
9522         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
9523           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
9524           is for Jackson
9525         * RichTextBox.cs: Added calls to base for DnD events
9526
9527 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
9528
9529         * TextControl.cs:
9530           - Fixed drag-selection related crash; style fixes
9531           - Implemented undo class
9532             o Implemented method to capture document state for specified
9533               range in document tree
9534             o Implemented method to restore captured document state
9535             o Implemented cursor tracking
9536             o Implemented basic undo stack
9537           - Added undo cursor tracking to methods altering cursor location
9538           - Added undo tracking to selection deletion (still missing
9539             other text-altering hookups)
9540         * RichTextBox.cs:
9541           - Added SelectionLength property
9542           - Implemented CanPaste()
9543           - Implemented Paste()
9544           - Added missing protected methods
9545           - Fixed RTF->Document conversion; now uses font index 0 and color 
9546             index 0 as the default font for the parsed text
9547           - Fixed RTF<->Document font size translation
9548           - Fixed RTF generation, now properly handles cross-tag boundaries
9549             for single line selection
9550           - No longer always appends blank line to generated RTF
9551           - Removed TODOs
9552           - Added missing attributes
9553           - Hooked up undo-related methods
9554         * TextBoxBase.cs:
9555           - Implemented Copy()
9556           - Implemented Paste()
9557           - Implemented Cut()
9558           - Fixed caret mis-behaviour on backspace across line-boundaries
9559
9560 2005-11-29  Jackson Harper  <jackson@ximian.com>
9561
9562         * MdiClient.cs: Add a method for activating mdi children. Very
9563         basic right now. I imagine someday it might need more girth.
9564         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
9565         children windows names are added to the menu item.
9566         * ThemeWin32Classic.cs: Draw the arrow if the item is an
9567         mdilist. This happens regardless of whether or not there are any
9568         mdi windows to see in the list, and according to my tests happens
9569         before the items are even added. Also happens if there isn't even
9570         an mdi client to get windows from.
9571
9572 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
9573
9574         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
9575         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
9576
9577 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
9578
9579         * DataGridTableStyle.cs:
9580           - Create always the styles for the missing columns even if they are
9581             provided by the user (not default table style)
9582         * DataGrid.cs:
9583           - Fixes bug 76770
9584           - Fixes SetDataBinding (always re-attach source)
9585           - Fixes SetNewDataSource (only clear styles if they are not for 
9586             this source)
9587          -  Expands OnTableStylesCollectionChanged to handle style refresh 
9588             and remove properly
9589
9590 2005-11-29  Jackson Harper  <jackson@ximian.com>
9591
9592         * FileDialog.cs: Implement missing bits, remove some dead
9593         code.
9594         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
9595         creation of the panel so that the options set on the dialog are
9596         seen when the panel is created.
9597         * TreeView.cs: raise a click when items are clicked.
9598         
9599 2005-11-29  Jackson Harper  <jackson@ximian.com>
9600
9601         * MdiClient.cs: Pass some signature methods through to base.
9602
9603 2005-11-28  Jackson Harper  <jackson@ximian.com>
9604
9605         * ListView.cs: Raise the click event when items are clicked.
9606
9607 2005-11-28  Jackson Harper  <jackson@ximian.com>
9608
9609         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
9610         a nullref.
9611
9612 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
9613
9614         * ThemeNice.cs: - Removed 1 pixel bitmaps
9615           - Use SmoothingMode.AntiAlias where it makes sense
9616             (ScrollButton arrow for example)
9617           - Enhanced Button focus drawing
9618           - Fixed ComboBox drawing (no artefacts anymore, focus
9619             rectangle is back again, reduced size of ComboButton, etc.)
9620           - Fixed RadioButton focus drawing for Appearence.Button
9621           - Slight ScrollButton redesign
9622           - Some LinearGradientBrush size fixes
9623           - GroupBoxes have now rounded edges
9624           - Fixed StatusBar drawing
9625
9626 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
9627
9628         * ThemeNice.cs: - Remove dead code
9629           - use correct background colors for menus, etc.
9630           - Fake pixel drawing with 1 pixel bitmaps
9631
9632 2005-11-24  Jackson Harper  <jackson@ximian.com>
9633
9634         * MdiClient.cs: Size the scrollbars when resizing the window.
9635         - Resize the maximized windows when the client is resized
9636         * Form.cs: Make the child context available
9637         
9638 2005-11-23  Jackson Harper  <jackson@ximian.com>
9639
9640         * MdiChildContext.cs: Don't size windows if they are maximized.
9641
9642 2005-11-23  Mike Kestner  <mkestner@novell.com>
9643
9644         * ContextMenu.cs: use MenuTracker.
9645         * Control.cs: remove menu handle usage.
9646         * Form.cs: remove menu handle usage.
9647         * Hwnd.cs: remove menu handle usage.
9648         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
9649         motion and clicks to the new Tracker handlers.
9650         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
9651         and handle usage.
9652         * MenuAPI.cs: refactored to combine popup and menubar event handling.
9653         Killed the MENU and MENUITEM data types and associated collections
9654         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
9655         MenuTracker class that exposes the leftovers from the old MenuAPI
9656         static methods. Restructured Capture handling so that only one grab is
9657         done for the entire menu hierarchy instead of handing off grabs to
9658         submenus. Tracker now has an invisible control to Capture when active.
9659         * MenuItem.cs: add sizing accessors, kill Create
9660         and handle usage.
9661         * Theme.cs: remove menu handle and MENU(ITEM) usage.
9662         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
9663         MENU(ITEM). remove menu handle usage, use Menu directly.
9664         * XplatUIDriver.cs: remove menu handle usage.
9665         * XplatUIOSX.cs: remove menu handle usage.
9666         * XplatUIWin32.cs: remove menu handle usage.
9667         * XplatUIX11.cs: remove menu handle usage.
9668
9669 2005-11-22  Jackson Harper  <jackson@ximian.com>
9670
9671         * Hwnd.cs: Don't compute the menu size for
9672         DefaultClientRectangle.
9673         - Reenable menu sizes being computed for GetClienRectangle.
9674         * Form.cs: Remove comment of trechery
9675         
9676 2005-11-22  Jackson Harper  <jackson@ximian.com>
9677
9678         * Hwnd.cs: The adjustments for the menu bar are made when it is
9679         attached to the form.
9680
9681 2005-11-19  Jackson Harper  <jackson@ximian.com>
9682
9683         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
9684         (just like on windows).
9685
9686 2005-11-19  Jackson Harper  <jackson@ximian.com>
9687
9688         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
9689         use real buttons anymore because they are in non client area. The
9690         one TODO here is that I need to somehow invalidate a section of
9691         the non client area.
9692
9693 2005-11-18  Jackson Harper  <jackson@ximian.com>
9694
9695         * Control.cs: Put the enum check back in now that MDI doesnt have
9696         to use this to set border styles.
9697         * Form.cs: Only set mdi child windows borders if the handle has
9698         been created.
9699         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
9700         this directly on to the driver.
9701         - Get the move start position before adjusting for the titlebar
9702         height, this fixes the windows "skipping" when they are first
9703         moved.
9704
9705 2005-11-18  Jackson Harper  <jackson@ximian.com>
9706
9707         * XplatUIX11.cs: Just compute the mdi borders separately as they
9708         don't totally match up with normal form borders.
9709
9710 2005-11-18  Jackson Harper  <jackson@ximian.com>
9711
9712         * Control.cs: Set WS_ styles for borders, so that the driver does
9713         not have to retrieve the control instance to figure out what kind
9714         of borders it should have.
9715         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
9716         driver can know its an mdi child easily.
9717         * XplatUIX11.cs: Get the border styles and whether the window is
9718         MDI from the Styles and ExStyles params instead of having to get a
9719         control. This prevents a chicken and egg problem.       
9720
9721 2005-11-18  Jackson Harper  <jackson@ximian.com>
9722
9723         * MdiClient.cs: Fix typo so scrollbars show up correctly.
9724
9725 2005-11-18  Jackson Harper  <jackson@ximian.com>
9726
9727         * MdiClient.cs: Calculate when to add and remove scrollbars
9728         correctly.
9729         * MdiChildContext.cs: Adjust the y position to take the titlebar
9730         into account.
9731         - No height for FormBorderStyle.None
9732
9733 2005-11-18  Jackson Harper  <jackson@ximian.com>
9734
9735         * Control.cs: Allow non enum values to be used for
9736         InternalBorderStyle.  MDI does this to set a special border style.
9737         - New utility methods for converting points to/from client coords
9738         - Add the newly created control to the Controls collection before
9739         updating its style. This way UpdateStyle can walk the control
9740         heirarchy to find the control if needed.
9741         so I don't need to create a new Point object all the time.
9742         * Form.cs: Let MDI windows handle their border styles.
9743         - Set styles on MDI windows so the correct title style is derived.
9744         * MdiChildContext.cs: Move all the painting and window handling
9745         into the non client area.
9746         - Use correct sizing and put correct buttons on frames based on
9747         the FormBorderStyle.
9748         - Notify the mdi client about scrolling
9749         - Need to handle the buttons ourselves now, because they are all
9750         in non client areas and we can't add controls there.
9751         * MdiClient.cs: Halfway to scrolling, this implementation is
9752         somewhat broken though, we need to check to make sure other
9753         windows aren't causing scrolling before removing the bars. Also
9754         the bars need to be drawn on top, maybe I can switch implicit
9755         controls to be on top.
9756         * Hwnd.cs: caption_height and tool_caption_height are now
9757         properties of an hwnd, this way they can be set by the driver
9758         based on the type of window they are.  In X11 the window manager
9759         handles the decorations so caption_height is zero unless its an
9760         MDI window.
9761         - Add 3 pixel borders for MDI windows (0xFFFF).
9762         - Get rid of some code duplication, have DefaultClientRectanle
9763         just call GetClientRectangle.
9764         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
9765         Hwnd now.
9766         - Set border styles differently for mdi windows.
9767         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
9768         Hwnd now.
9769         
9770 2005-11-15  Mike Kestner  <mkestner@novell.com>
9771
9772         * Menu.cs: when adding an item to the collection, if item is already 
9773         parented, remove it from the parent.
9774
9775 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
9776
9777         * X11DesktopColors.cs: Added KDE support
9778
9779 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
9780
9781         * XplatUIWin32.cs: 
9782           - Clipboard methods now can translate Rtf format
9783           - No longer removes clipboard contents whenever a new format is added
9784             to allow placing multiple formats on the clipboard
9785         * Clipboard.cs: Clipboard now supports getting a IDataObject and
9786           will place all formats contained in it onto the clipboard. Also
9787           now cleans the clipboard before placing a new object onto it
9788         * RichTextBox.cs:
9789           - Implemented set_Rtf
9790           - Implemented set_SelectedRtf
9791           - Created InsertRTFFromStream() method to allow single code base
9792             for all properties and methods that insert RTF into document
9793           - Removed debug output
9794         * TextControl.cs:
9795           - Fixed Delete(int) to fix up line numbers
9796           - Fixed ReplaceSelection to combine start and end line
9797           - Fixed serious DeleteChars bug that would leave the document tree
9798             broken
9799           - Improved DumpTree with several logic checks to detect broken
9800             document trees
9801           - Removed debug lines
9802           - Fixed Caret.WordForward/WordBack moving code, now always also 
9803             updates caret.tag (fixes crash when word-selecting across tag
9804             boundaries via keyboard)
9805           - Added Insert() method for inserting multiline text into documents
9806           - Fixed DeleteChars() calculation errors that would cause a broken
9807             tag chain with multiple tag lines
9808           - DeleteChars() no longer crashes on multi-tag lines if not all tags
9809           - Split() no longer moves caret if split is at caret location
9810           - ReplaceSelection() now updates the cursor and re-displays it
9811           - ReplaceSelection() now uses new Insert() method to avoid code
9812             duplication
9813           - FormatText() can now handle formatting partial lines
9814         * TextBoxBase.cs:
9815           - Append now uses new TextControl.Insert() method (this avoids 
9816             duplicate code)
9817           - Implemented Ctrl-X (Cut) (
9818           - Implemented Ctrl-C (Copy)
9819           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
9820             regeneration when pasting text; roundtripping Copy&Paste within
9821             edit control still fails due to some calculation bugs in GenerateRTF)
9822           - The Delete key will now remove the current selection if it is visible
9823         * TextBox.cs: Removed debug lines
9824         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
9825           driver to be initialized and can't therefore be done via a static ctor)
9826
9827 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
9828
9829         * TextControl.cs: Added backend code for finding char arrays and strings
9830         * TextBoxBase.cs:
9831           - Added mouse wheel scroll support
9832           - Added support for VScroll and HScroll events
9833         * RichTextBox.cs:
9834           - Implemented all seven Find() variants
9835           - Implemented GetCharFromPosition()
9836           - Implemented GetCharIndexFromPosition()
9837           - Implemented GetLineFromIndex()
9838           - Implemented GetPositionFromCharIndex();
9839           - Implemented SaveFile for PlainText and UnicodeText
9840           - Fixed set_Font, now setting a new font applies that font to
9841             the whole document
9842           - Implemented generic Document to RTF converter
9843           - Implemented SaveFile for RichText format (still missing unicode
9844             conversion for non-ansi chars)
9845           - Implemented get_Rtf
9846           - Implemented get_SelectedRtf
9847
9848 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
9849
9850         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
9851           to allow any captures to be released before triggering OnClick. This
9852           way a click handler may capture the mouse without interference.
9853         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
9854           This way we send them even though X may not allow a grab (if the window
9855           isn't visible, for example)
9856
9857 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
9858
9859         * DataGridViewRowEventArgs.cs: DataGridView implementation
9860         * DataGridViewElement.cs: DataGridView implementation
9861         * DataGridViewComboBoxCell.cs: DataGridView implementation
9862         * DataGridViewDataErrorContexts.cs: DataGridView implementation
9863         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
9864         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
9865         * ImageLayout.cs: DataGridView implementation
9866         * DataGridViewComboBoxColumn.cs: DataGridView implementation
9867         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
9868         * DataGridViewSelectionMode.cs: DataGridView implementation
9869         * IDataGridViewEditingControl.cs: DataGridView implementation
9870         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
9871         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
9872         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
9873         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
9874         * DataGridViewColumnSortMode.cs: DataGridView implementation
9875         * DataGridView.cs: DataGridView implementation
9876         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
9877         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
9878         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
9879         * Padding.cs: DataGridView implementation
9880         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
9881         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
9882         * DataGridViewRowEventHandler.cs: DataGridView implementation
9883         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
9884         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
9885         * DataGridViewButtonCell.cs: DataGridView implementation
9886         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
9887         * DataGridViewEditMode.cs: DataGridView implementation
9888         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
9889         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
9890         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
9891         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
9892         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
9893         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
9894         * DataGridViewCellEventHandler.cs: DataGridView implementation
9895         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
9896         * DataGridViewCellStyleConverter.cs: DataGridView implementation
9897         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
9898         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
9899         * DataGridViewColumnEventArgs.cs: DataGridView implementation
9900         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
9901         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
9902         * QuestionEventArgs.cs: DataGridView implementation
9903         * IDataGridViewEditingCell.cs: DataGridView implementation
9904         * DataGridViewTriState.cs: DataGridView implementation
9905         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
9906         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
9907         * DataGridViewColumnCollection.cs: DataGridView implementation
9908         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
9909         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
9910         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
9911         * DataGridViewColumn.cs: DataGridView implementation
9912         * DataGridViewCellBorderStyle.cs: DataGridView implementation
9913         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
9914         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
9915         * DataGridViewRow.cs: DataGridView implementation
9916         * DataGridViewImageCellLayout.cs: DataGridView implementation
9917         * DataGridViewImageCell.cs: DataGridView implementation
9918         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
9919         * DataGridViewCheckBoxCell.cs: DataGridView implementation
9920         * DataGridViewHeaderCell.cs: DataGridView implementation
9921         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
9922         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
9923         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
9924         * DataGridViewTextBoxColumn.cs: DataGridView implementation
9925         * QuestionEventHandler.cs: DataGridView implementation
9926         * DataGridViewCellStyleScopes.cs: DataGridView implementation
9927         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
9928         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
9929         * DataGridViewCell.cs: DataGridView implementation
9930         * DataGridViewCellEventArgs.cs: DataGridView implementation
9931         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
9932         * DataGridViewCellStyle.cs: DataGridView implementation
9933         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
9934         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
9935         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
9936         * TextFormatFlags.cs: DataGridView implementation
9937         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
9938         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
9939         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
9940         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
9941         * DataGridViewButtonColumn.cs: DataGridView implementation
9942         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
9943         * HandledMouseEventArgs.cs: DataGridView implementation
9944         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
9945         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
9946         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
9947         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
9948         * DataGridViewRowCollection.cs: DataGridView implementation
9949         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
9950         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
9951         * DataGridViewHitTestType.cs: DataGridView implementation
9952         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
9953         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
9954         * DataGridViewColumnEventHandler.cs: DataGridView implementation
9955         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
9956         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
9957         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
9958         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
9959         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
9960         * DataGridViewContentAlignment.cs: DataGridView implementation
9961         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
9962         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
9963         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
9964         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
9965         * DataGridViewPaintParts.cs: DataGridView implementation
9966         * DataGridViewCellCollection.cs: DataGridView implementation
9967         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
9968         * DataGridViewImageColumn.cs: DataGridView implementation
9969         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
9970         * DataGridViewElementStates.cs: DataGridView implementation
9971         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
9972         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
9973         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
9974         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
9975         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
9976         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
9977         * DataGridViewRowHeaderCell.cs: DataGridView implementation
9978         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
9979         * DataGridViewTextBoxCell.cs: DataGridView implementation
9980         * DataGridViewBand.cs: DataGridView implementation
9981         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
9982         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
9983         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
9984         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
9985         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
9986         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
9987         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
9988         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
9989         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
9990         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
9991         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
9992
9993 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
9994
9995         * ThemeWin32Classic.cs: 
9996           - Draw the outside focus rectangle around buttons
9997           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
9998             doesn't use end caps for every dash of a line anymore. This
9999             workaround ignores the forecolor.
10000
10001 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
10002
10003         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
10004           endian safe.
10005
10006 2005-11-07  Jackson Harper  <jackson@ximian.com>
10007
10008         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
10009
10010 2005-11-07  Jackson Harper  <jackson@ximian.com>
10011
10012         * ScrollableControl.cs: Calculate the maximum and change vars
10013         (more) correctly so that scrollbars appear as a sensible size.
10014
10015 2005-11-04  Jackson Harper  <jackson@ximian.com>
10016
10017         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
10018         collection.
10019         * TreeView.cs: When the tree is sorted null out the top_node so
10020         that it is recalculated.
10021         - Use dotted lines instead of dashed lines to match MS better.
10022
10023 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
10024
10025         * ListView.cs: 
10026           - Implements key search for items. Useful when browsing files with FileDialog
10027           - When changing view mode or when clear the items reset scrollbar positions
10028
10029 2005-11-04  Jackson Harper  <jackson@ximian.com>
10030
10031         * CurrencyManager.cs: Implement the MetaDataChanged event, the
10032         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
10033         as to what the method may do as there is no real way of creating a
10034         derived CurrencyManager and calling the method. 
10035
10036 2005-11-03  Jackson Harper  <jackson@ximian.com>
10037
10038         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
10039         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
10040         method which seems to just be used internally to refresh the tabs.
10041
10042 2005-11-03  Jackson Harper  <jackson@ximian.com>
10043
10044         * TabControl.cs: Implement the remove method. Fix some broken
10045         comments.
10046
10047 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
10048
10049         * DateTimePicker.cs:
10050           - Added missing DateTimePickerAccessibleObject class
10051           - Added missing events
10052           - Added OnFontChanged method
10053         * Form.cs: Added missing attributes
10054         * TreeView.cs: Added missing attributes
10055
10056 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
10057
10058         * GridItemCollection.cs: Fix signatures
10059
10060 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
10061
10062         * XplatUI.cs: Updated build rev/date
10063         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
10064           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
10065         * Application.cs: Trigger context-specific ExitThread events
10066
10067 2005-11-03  Jackson Harper  <jackson@ximian.com>
10068
10069         * Menu.cs:
10070         * MainMenu.cs:
10071         * GridTableStylesCollection.cs:
10072         * Timer.cs:
10073         * TabPage.cs:
10074         * HelpProvider.cs:
10075         * StatusBar.cs:
10076         * MonthCalendar.cs: Signature fixes
10077
10078 2005-11-03  Jackson Harper  <jackson@ximian.com>
10079
10080         * TreeNodeCollection.cs: Remove should not be virtual.
10081         * TreeView.cs: Implement the last of the missing methods.
10082
10083 2005-11-03  Jackson Harper  <jackson@ximian.com>
10084
10085         * TreeNodeConverter.cs: Implement to get off my class-status back.
10086
10087 2005-11-03  Jackson Harper  <jackson@ximian.com>
10088
10089         * TreeView.cs: Hookup the bits for drag and drop.
10090         * TreeNode.cs: Don't cache the tree_view or index anymore, now
10091         that nodes can be moved from tree to tree easily this just causes
10092         all sorts of problems.
10093         * TreeNodeCollection: Don't need to give treenodes an index and
10094         treeview anymore when they are added, these are computed on the
10095         fly. Also make sure to remove a node before its added.
10096
10097 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
10098
10099         * TextControl.cs:
10100           - Added CaretSelection enum
10101           - Added comparison methods to Marker struct, makes selection code
10102             more readable
10103           - Added SelectionStart and SelectionEnd as 'moveable' location for
10104             the CaretDirection enum and handler
10105           - Added selection_prev variable to track optimized invalidation for
10106             word and line selection
10107           - Added SelectionVisible property (returns true if there is a valid 
10108             selection)
10109           - Switched CaretHasFocus to only display the caret if there is no
10110             visible selection
10111           - Avoiding StringBuilder.ToString to retrieve a single char, instead
10112             using the direct character index; should be much faster
10113           - Added various conditional debug statements
10114           - Fixed invalidation calculation for selection ranges
10115           - Added ExpandSelection() method to support word and line selection
10116           - Switched SetSelectionToCaret to use new Marker compare overloads
10117           - Added central IsWordSeparator() method to determine word 
10118             separators/whitespace and FindWordSeparator() to streamline common
10119             usage of IsWordSeparator()
10120         * TextBoxBase.cs:
10121           - Removed unneeded grabbed variable, it was just mirroring
10122             Control.Capture
10123           - No longer firing OnTextChanged event when Text setter is called,
10124             since the base will fire the event for us
10125           - Added handling of Ctrl-Up/Down selection
10126           - Added handling of Shift-Cursorkey selection
10127           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
10128             words
10129           - Added handling of Shift and Ctrl-Shift-Home/End selection
10130           - Removed some debug output
10131           - Added handling for single/double/tripple-click to place caret/
10132             select word/select line respectively (Fixes bug #76031)
10133           - Added support for drag expansion of word/line selection
10134         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
10135           current selection
10136
10137 2005-11-02  Jackson Harper  <jackson@ximian.com>
10138
10139         * X11Dnd.cs: If the drag is going to and from a MWF window just
10140         copy the data instead of sending it out through the X Selection
10141         mechanism.
10142
10143 2005-11-02  Jackson Harper  <jackson@ximian.com>
10144
10145         * X11Dnd.cs:
10146         * XplatUIX11.cs: When in a drag we don't want motion notify
10147         messages to get passed on to the other controls. This prevents
10148         mouse move messages from showing up in the drag source.
10149
10150 2005-11-02  Jackson Harper  <jackson@ximian.com>
10151
10152         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
10153         the correct button is release to end a drag.
10154         * XplatUIX11.cs: Make the button state internal so the drag system
10155         can access it.  Dragging needs to know about all button releases,
10156         not just left button.
10157
10158 2005-11-02  Miguel de Icaza  <miguel@novell.com>
10159
10160         * Form.cs (Icon): If the icon is null, reset the icon to the
10161         default value. 
10162
10163         * Cursor.cs: When writing the AND-mask bitmap do not include the
10164         number of colors, but hardcode those to two (black and white),
10165         fixes the loading of color cursors (Paint Dot Net).
10166
10167         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
10168         turn off autoscaling.
10169
10170         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
10171
10172 2005-11-02  Jackson Harper  <jackson@ximian.com>
10173
10174         * X11Dnd.cs: Make sure to send a status message if the pointer
10175         enters a control that can not accept a drop, otherwise the cursor
10176         isn't updated correctly. Also tried to compress the lines of code
10177         a bit.
10178
10179 2005-11-02  Jackson Harper  <jackson@ximian.com>
10180
10181         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
10182         set actions correctly.  This isn't perfect as XDND and win32 have
10183         some differences on how you allow actions. I'll clear this up by
10184         adding a path for drag from MWF to MWF windows.
10185         * XplatUIX11.cs: Hook into the dnd system.
10186
10187 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
10188
10189         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
10190         previously shown but they are no longer need it. Very obvious when 
10191         browsing files with FileDialog.
10192
10193 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
10194
10195         * Control.cs: We always need to call OnPaintBackground. We pretty much
10196           ignore AllPaintingInWmPaint and always do the painting there, whether 
10197           it's set or not, since we always ignore the WM_ERASEBKGND message 
10198           (which we don't generate on X11). This fixes #76616.
10199         * Panel.cs: Removed unneeded background painting. This happens properly
10200           in Control.cs already
10201
10202 2005-10-31  Mike Kestner  <mkestner@novell.com>
10203
10204         * Menu.cs: Add items to collection before setting their index.
10205         * MenuItem.cs : add range checking with ArgumentException like MS.
10206         [Fixes #76510]
10207
10208 2005-10-31  Jackson Harper  <jackson@ximian.com>
10209
10210         * ListBox.cs: Invalidate if the area is visible at all not just
10211         contained in the visible rect. Fixes unselection of semi visible
10212         items.
10213
10214 2005-10-31  Jackson Harper  <jackson@ximian.com>
10215
10216         * Control.cs: Consistently name the dnd methods. Make them
10217         internal so we can override them to match some MS behavoir
10218         internally.
10219         * Win32DnD.cs: Use the new consistent names.
10220
10221 2005-10-31  Jackson Harper  <jackson@ximian.com>
10222
10223         * TreeView.cs: Don't draw the selected node when we lose focus.
10224
10225 2005-10-31  Jackson Harper  <jackson@ximian.com>
10226
10227         * X11Dnd.cs: We still need to reset the state even though a full
10228         reset isn't being done, otherwise status's still get sent all over
10229         the place.
10230
10231 2005-10-31  Jackson Harper  <jackson@ximian.com>
10232
10233         * Control.cs: Make the dnd_aware flag internal so the dnd
10234         subsystem can check it. Catch exceptions thrown in dnd handlers to
10235         match MS behavoir.
10236         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
10237         * X11Dnd.cs: Handle null data in the converters. Set the XDND
10238         version when sending a XdndEnter. Use the control/hwnd dnd_aware
10239         flags to reduce the number of dnd enters/status's sent.
10240
10241 2005-10-31  Jackson Harper  <jackson@ximian.com>
10242
10243         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
10244
10245 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
10246
10247         * PictureBox.cs: Fixes 76512
10248
10249 2005-10-28  Jackson Harper  <jackson@ximian.com>
10250
10251         * X11Dnd.cs: Early implementation to support winforms being a drag
10252         source for data on X11. Also restructured the converters so they
10253         can go both ways now.
10254         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
10255         
10256 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
10257
10258         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
10259           clipboard requests
10260
10261 2005-10-27  Jackson Harper  <jackson@ximian.com>
10262
10263         * TreeNode.cs: Implement serialization so my DnD examples will work.
10264
10265 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
10266
10267         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
10268           TreeView.cs: Don't dispose objects that are not owned.
10269           
10270 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
10271
10272         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
10273           should retrieve the current cursor and report that, but XplatUI
10274           doesn't (yet) have an interface for that (and I'm not sure I even
10275           can, on X11)
10276         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
10277           until any message loop processing is done (and the WM_SETCURSOR
10278           replaces the cursor to the proper one)
10279         * XplatUIX11.cs: 
10280           - Fixed override behaviour, we can't set the cursor globally on X11, 
10281             just for our windows.
10282           - Invalidating the System.Drawing X11 display handle when we are
10283             shutting down
10284         * Control.cs: Fix to make csc happy
10285
10286 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
10287
10288         * TextBoxBase.cs: 
10289           - get_Text: Add last line (without trailing newline) to returned
10290             value (Fixes 76212)
10291           - get_TextLength: Count last line in returned length
10292           - ToString: Call Text property instead of duplicating code
10293
10294 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
10295
10296         * ImageList.cs: Dispose ImageAttributes objects.
10297
10298 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
10299
10300         * ImageList.cs: Use attribute constructors with less arguments where
10301           possible.
10302
10303 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
10304
10305         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
10306           Use typeof instead of strings when assembly is referenced. Added
10307           some more comments.
10308
10309 2005-10-21  Jackson Harper  <jackson@ximian.com>
10310
10311         * ListView.cs: Raise a double click event. Also tried to somewhat
10312         fix when the selectedindexchanged event is raised. Its still
10313         broken though.
10314
10315 2005-10-21  Jackson Harper  <jackson@ximian.com>
10316
10317         * TreeView.cs: New method to invalidate the plus minus area of a
10318         node without invalidating the whole node (maybe this can be used
10319         in some more places).
10320         * TreeNodeCollection.cs: When adding to an empty node we need to
10321         invalidate its plus minus area so the little block shows up.
10322         
10323 2005-10-21  Jackson Harper  <jackson@ximian.com>
10324
10325         * TreeView.cs: Make sure that when we invalidate a node the bounds
10326         are big enough to cover the selected box and the focus
10327         rectangle. Use a different colour for the lines connecting nodes
10328         so they show up with all themes.
10329
10330 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
10331
10332         * NativeWindow.cs: Don't call anything that could call into the driver,
10333           we might be on a different thread.
10334
10335 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
10336
10337         * Control.cs(Dispose): Since Dispose might run on a different thread,
10338           make sure that we call methods that could call into the driver via
10339           invoke, to avoid thread issues
10340
10341 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
10342
10343         * XplatUI.cs: Removed finalizer
10344         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
10345           not allowing to be called on the finalizer thread.
10346
10347 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
10348
10349         * ImageList.cs:
10350           - Reverted r51889 and r51891.
10351           - Added ImageListItem class that stores unmodified image items and image
10352             properties required to create list images until handle is created.
10353           - Added AddItem and moved image creation logic to AddItemInternal.
10354           - Added CreateHandle method that creates images based on unmodified items.
10355           - Added DestroyHandle that changes state to store unmodified items.
10356           - Add and AddStrip methods no more create handle.
10357           - ReduceColorDepth has no return value.
10358           - Dispose destroys handle.
10359           - Modified other methods to reflect the above changes.
10360           - Implemented key support.
10361           - Added profile 2.0 members and attributes.
10362           - Added private Reset and ShouldSerialize methods that provide the same
10363             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
10364             them as they are private.
10365           - Added some more comments about implementation details.
10366
10367 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
10368
10369         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
10370
10371 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
10372
10373         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
10374
10375 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
10376
10377         * DataGridDrawingLogic.cs: Fixes column hit calcultation
10378         * DataGridColumnStyle.cs: Remove debug message
10379
10380 2005-10-20  Jackson Harper  <jackson@ximian.com>
10381
10382         * TreeView.cs: We can always get input keys regardless of whether
10383         or not editing is enabled. They are used for navigation.
10384
10385 2005-10-20  Jackson Harper  <jackson@ximian.com>
10386
10387         * TreeNode.cs: Use the viewport rect for determining if a node
10388         needs to be moved for visibility. Don't use Begin/End edit. This
10389         calls a full refresh when its done.
10390         * TreeView.cs: New SetBottom works correctly.  Make the viewport
10391         rect property internal so the treenodes can see it. When clicking
10392         on a node we need to ensure that its visible because it might just
10393         be partly visible when clicked.
10394
10395 2005-10-20  Jackson Harper  <jackson@ximian.com>
10396
10397         * TreeNodeCollection.cs: Remove debug code.
10398
10399 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
10400
10401         * Datagrid.cs: Implements column sorting in Datagrid
10402         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
10403
10404 2005-10-20  Jackson Harper  <jackson@ximian.com>
10405
10406         * TreeNodeCollection.cs: Remove items properly. Update the correct
10407         area after removing them.
10408
10409 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
10410
10411         * Datagrid.cs: Should not call base.OnPaintBackground
10412
10413 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
10414
10415         * XplatUIX11.cs (GetMessage):
10416           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
10417             window instead of client window
10418           - Now properly calculates NC_xBUTTONUP message coordinates
10419           - ScreenToMenu now properly calculates it's coordinates of whole 
10420             window, since menus are in the whole window, not in the client
10421             window
10422           - Added WholeToScreen coordinate translation method
10423
10424 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
10425
10426         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
10427           want to return a message, loop back to the beginning of the function
10428           and grab the next real message to process instead.
10429
10430 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
10431
10432         * Splitter.cs: Properly set limits if no filler control is used
10433
10434 2005-10-19  Jackson Harper  <jackson@ximian.com>
10435
10436         * ColorDialog.cs: Don't show the help button if it is not enabled
10437         instead of disabling it (this is what MS does). Don't create the
10438         panel until the dialog is run, otherwise the vars (such as
10439         ShowHelp) are not set yet.
10440
10441 2005-10-19  Jackson Harper  <jackson@ximian.com>
10442
10443         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
10444         are reduced when adding nodes.
10445         * TreeNode.cs:
10446         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
10447         tree.
10448         
10449 2005-10-19  Jackson Harper  <jackson@ximian.com>
10450
10451         * FolderBrowserDialog.cs: End editing our treeview so the window
10452         actually gets refreshed.
10453
10454 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
10455
10456         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
10457           Obsoleted handling of WM_ERASEBKGND, now always draws our background
10458           inside of WM_PAINT
10459
10460 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
10461
10462         * MenuAPI.cs: Returns after Hidding window
10463         * XplatUIX11.cs: Added TODO found while debugging menu issues
10464
10465 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
10466
10467         * XplatUIX11.cs: Do not re-map the whole window when it's size
10468           becomes non-zero unless it's supposed to be actually visible
10469
10470 2005-10-18  Jackson Harper  <jackson@ximian.com>
10471
10472         * TreeView.cs: We don't need to keep a count anymore.
10473         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
10474         use the Grow method.
10475
10476 2005-10-18  Jackson Harper  <jackson@ximian.com>
10477
10478         * TreeNodeCollection.cs: Insert is not supported on arrays, so
10479         implement it manually here.
10480
10481 2005-10-18  Jackson Harper  <jackson@ximian.com>
10482
10483         * ImageList.cs: Dont kill the list when the colour depth is
10484         changed, just change the colour depth of all the images.
10485         - Same goes for setting the image size. Just resize them all
10486         instead of killing the list softly.
10487
10488 2005-10-18  Jackson Harper  <jackson@ximian.com>
10489
10490         * Control.cs: Don't invalidate empty rectangles.
10491
10492 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
10493
10494         * ListViewItem.cs:
10495           - Adds checked item to the Checked/Item lists (where empty before)
10496           - Do not add items to the Selected lists if they are already present
10497         * ListView.cs:
10498           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
10499           - When deleting items make sure that we delete them for the Selected
10500           and Checked list also.
10501
10502 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
10503
10504         * Label.cs: Dispose objects no longer used
10505         * ThemeWin32Classic.cs: Dispose objects no longer used
10506
10507 2005-10-18  Jackson Harper  <jackson@ximian.com>
10508
10509         * TabControl.cs: Don't refresh the whole control when the tabs are
10510         scrolled, we just need to refresh the tab area.
10511
10512 2005-10-17  Jackson Harper  <jackson@ximian.com>
10513
10514         * XplatUIX11.cs: Compress code a little bit. Only calculate the
10515         after handle when we need it.
10516
10517 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
10518
10519         * Control.cs: When the parent size changes, recalculate anchor 
10520           positions. Partial fix for #76462
10521
10522 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
10523
10524         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
10525           drawn. Fixes #76462
10526
10527 2005-10-17  Jackson Harper  <jackson@ximian.com>
10528
10529         * MonthCalendar.cs: Don't create the numeric up down until our
10530         handle is created. Otherwise our handle is created in the
10531         constructor and we don't know if we are a WS_CHILD or WS_POPUP
10532         yet.
10533
10534 2005-10-17  Jackson Harper  <jackson@ximian.com>
10535
10536         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
10537         correctly.
10538
10539 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
10540         * TreeNode.cs : small logical fix (was using local var instead of field)
10541         
10542 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
10543
10544         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
10545
10546 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
10547
10548         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
10549
10550 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
10551
10552         * Control.cs: 
10553           - Re-implemented anchoring code. My first version was really broken.
10554             This fixes bug #76033. Unlike the previous implementation we will
10555             no longer have round errors since all numbers are calculated from
10556             scratch every time. Removed various anchor-related obsolete vars.
10557           - InitLayout no longer causes layout event firing and layout to be 
10558             performed
10559
10560 2005-10-16  Jackson Harper  <jackson@ximian.com>
10561
10562         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
10563         which was broken).
10564
10565 2005-10-16  Jackson Harper  <jackson@ximian.com>
10566
10567         * TabControl.cs: Remove debug code.
10568
10569 2005-10-16  Jackson Harper  <jackson@ximian.com>
10570
10571         * XEventQueue.cs: Increase the default queue size (very simple
10572         apps needed to grow the queue).
10573         * Hwnd.cs: No finalizer so we don't need to suppress
10574         finalization. Compute the invalid area manually so a new rectangle
10575         does not newto be created.
10576         * ScrollableControl.cs: Don't set any params (otherwise visibility
10577         isn't set correctly).
10578         * MdiChildContext.cs: New constructor takes the mdi parent so it
10579         doesn't have to be computed and avoids a crash on windows. Draw
10580         the window icon properly, and allow the text to be seen.
10581         * Form.cs: Use new MdiChildContext constructor. Make sure the
10582         child context isn't null in wndproc.
10583         * TabControl.cs: Don't set focus, this is muddling keyboard
10584         behavoir. Expand the tab rows when a window size increase will
10585         allow extra tabs to be seen. Don't allow tabs smaller than the
10586         width of a window to be scrolled out of view.
10587         * TreeNode.cs:
10588         * TreeView.cs: Use measure string to calculate a nodes width, the
10589         width is cached and only updated when the text or the font is
10590         changed. Don't check for expand/collapse clicks on the first level
10591         nodes if root lines are disabled.
10592         
10593 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
10594
10595         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
10596
10597 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
10598
10599         * DataGridBoolColumn.cs: fixes warning
10600
10601 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
10602
10603         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
10604         to match more to match more precisely the MS Net behavior
10605
10606 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
10607
10608         * Hwnd.cs: Added field to track if window is mapped
10609         * XplatUIX11.cs: 
10610           - Unmap windows if they become 0-size, re-map when 
10611             they are >0 again; fixes #76035
10612           - Re-set our error handler after initializing X11Desktop
10613             to override any error handlers Gtk or whatever was called
10614             may have set.
10615
10616 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
10617
10618         * CheckedListBox.cs: Removed unused vars
10619         * ListView.cs: Fixed signatures
10620         * RichTextBox.cs: Removed unused vars
10621         * TextBoxBase.cs: Removed unused vars
10622         * XplatUIWin32.cs: Removed unused vars
10623         * XplatUIX11.cs: Removed unused vars
10624         * XplatUI.cs: Updated version and date to latest published
10625
10626 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
10627
10628         * Cursor.cs: Added private .ctor to work around a bug in
10629           resourceset (Thanks to Geoff Norton for the help on this)
10630         * SplitterEventArgs.cs: Made fields accessible so we don't
10631           waste boatloads of objects and can reuse the same one
10632           in Splitter
10633         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
10634           any captions and borders when generating screen coordinates
10635         * Splitter.cs: Reimplemented control, now fully complete, uses
10636           rubberband drawing, supports and obeys all properties, has
10637           proper cursors
10638
10639 2005-10-13  Miguel de Icaza  <miguel@novell.com>
10640
10641         * Form.cs (Form): Setup default values for autoscale and
10642         autoscale_base_size;  Make these instance variables, not static
10643         variables. 
10644
10645         (OnLoad): on the first load, adjust the size of the form.
10646
10647 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
10648
10649         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
10650           width argument to DrawReversibleRectangle()
10651         * XplatUIWin32.cs, XplatUIX11.cs: 
10652           - Implemented width for DrawReversibleRectangle()
10653           - Added logic to DrawReversibleRectangle that recognizes a zero
10654             width or height and only draws a line in that situation
10655         
10656 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
10657
10658         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
10659         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
10660         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
10661           method (it uses our FosterParent window to get a graphics context)
10662
10663 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
10664
10665         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
10666           and SetWindowBackground methods
10667         * Control.cs:
10668           - Setting proper ControlStyles
10669           - We no longer call XplatUI.SetWindowBackground and XplatUI.
10670             EraseWindowBackground, instead we draw the window background
10671             ourselves in PaintControlBackground. This behaviour is
10672             required to match MS, where, when OnPaintBackground is not
10673             called, the background is not drawn.
10674           - Removed unneeded Refresh() in set_Text
10675         * Hwnd.cs: Dropped the ErasePending support. No longer needed
10676         * XplatUIX11.cs:
10677           - Created DeriveStyles method to translate from CreateParams to
10678             FormBorderStyle and TitleStyle, also handles BorderStyle (which
10679             matches FormBorderStyle enum values)
10680           - Consolidated SetHwndStyles and CalculateWindowRect border/title
10681             style calculations into single DeriveStyles method
10682           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
10683             from redrawing the whole window on any resize or expose.
10684           - Fixed CreateWindow usage of SetWindowValuemask. Before not
10685             all styles were applied to our whole/client window appropriately
10686           - Removed EraseWindowBackground() and SetWindowBackground() methods
10687           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
10688             no longer clear/redraw the background through X
10689           - Removed handling of erase_pending bit, we have no use for it (or
10690             so it seems)
10691         * XplatUIOSX.cs:
10692           - Removed generation and handling of WM_ERASEBKGND message
10693           - Removed EraseWindowBackground() and SetWindowBackground() methods
10694           - Removed handling of hwnd.ErasePending flag
10695         * XplatUIWin32.cs:
10696           - Removed EraseWindowBackground() and SetWindowBackground() methods
10697           - We no longer call EraseWindowBackground on PaintEventStart, we 
10698             ignore the fErase flag, erasing is handled in Control in the
10699             background handler
10700         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
10701           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
10702           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
10703           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
10704           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
10705           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
10706           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
10707
10708 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
10709
10710         * PropertyGrids.cs: Get sub properties
10711         * PropertyGridView.cs: Fix drawing code
10712
10713 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
10714
10715         * ListBox.cs: Fixes 76383
10716
10717 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
10718
10719         * DataGridTextBoxColumn.cs: Sets location and size before attachment
10720         * ThemeWin32Classic.cs: Fixes border drawing and calculations
10721         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
10722
10723
10724 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
10725
10726         * ComboBox.cs: Fixes border drawing
10727
10728 2005-10-10  Miguel de Icaza  <miguel@novell.com>
10729
10730         * MimeIcon.cs: Ignore errors if the file can not be read.
10731
10732 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
10733
10734         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
10735          - Fixed border calculations
10736          - Fixed horizontal scrolling in single column listboxes
10737          - Fixed drawing issues
10738
10739 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
10740
10741         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
10742           FormBorderStyle enum
10743         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
10744           code to determine FormBorderStyles from CreateParams
10745         * Form.cs:
10746           - Fixed bug where we'd set the wrong window styles if we were
10747             not creating an MDI window
10748           - Added call to XplatUI.SetBorderStyle when form borders are set
10749         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
10750         * Hwnd.cs:
10751           - Removed obsolete edge style
10752           - Switched from BorderStyle to FormBorderStyle
10753         
10754 2005-10-10  Jackson Harper  <jackson@ximian.com>
10755
10756         * Form.cs: Use the property to get the window handle instead of
10757         accessing it directly. Prevents a null reference exception.
10758
10759 2005-10-10  Jackson Harper  <jackson@ximian.com>
10760
10761         * TreeView.cs: Don't adjust the rect given to DrawString now that
10762         our libgdiplus draws correctly.
10763
10764 2005-10-08  Jackson Harper  <jackson@ximian.com>
10765
10766         * TreeView.cs: Don't try to find the clicked on node if there are
10767         no nodes in the tree.
10768
10769 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
10770
10771         * RichTextBox.cs:
10772
10773           restore
10774
10775 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
10776
10777         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
10778           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
10779           ErrorProvider.cs:
10780           Use ResPool for brushes and dispose System.Drawing objects that
10781           are not used anymore.
10782
10783 2005-10-07  Jackson Harper  <jackson@ximian.com>
10784
10785         * MdiChildContext.cs: Use the new borders instead of drawing them
10786         ourselves.
10787
10788 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
10789
10790         * Calling UpdateBounds after changing the window's BorderStyle 
10791         since the style can change the ClientSize
10792
10793 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
10794
10795         * Control.cs: Made PaintControlBackground virtual
10796         * Panel.cs: Overriding PaintControlBackground instead of using paint
10797           event; paint event method was interfering with 'real' users of the
10798           event.
10799
10800 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
10801
10802         * ThemeWin32Classic.cs: remove border drawing since it is handled
10803         by the base control class now and was causing double border drawing.
10804
10805 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
10806
10807         * Panel.cs: Redraw our background on paint. Not a pretty solution,
10808           but it does seem to match MS behaviour. This fixes bug #75324
10809
10810 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
10811
10812         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
10813           somewhat hackish looking
10814
10815 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
10816
10817         * TextBoxBase.cs:
10818           - We now accept Enter even if AcceptEnter is false, if the containing
10819             form does not have an AcceptButton configured (fixes bug #76355)
10820           - Calculations are now fixed to no longer use Width/Height, but
10821             ClientSize.Width/Height, since we now support borders (this was
10822             a result of fixing borders and therefore bug #76166)
10823           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
10824             true (fixes bug #76354)
10825         
10826 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
10827
10828         * Control.cs: 
10829           - Defaulting BorderStyle and setting it in XplatUI when our window 
10830             is created
10831           - Added enum check to InternalBorderStyle setter
10832         * XplatUIX11.cs: 
10833           - Added drawing of window borders
10834           - Now properly calculates WM decorations offset for toplevel 
10835             windows (fixes bug #74763)
10836         * XplatUIWin32.cs: 
10837           - Implemented BorderStyles for windows (we're letting win32 draw 
10838             the border for us)
10839           - Fixed the signature for SetWindowLong
10840         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
10841           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
10842           setting borders
10843         * UpDownBase.cs: Remove drawing of borders, this is handled by
10844           the driver, outside the client area
10845         * ListView.cs: Removed bogus border calculations. The control should
10846           be oblivious to borders, since those are not part of the client
10847           area. 
10848         * X11DesktopColors.cs: Commented out (currently) unneeded variables
10849         * ThemeWin32Classic.cs: Removed border calculations from ListView 
10850           drawing code
10851
10852 2005-10-06  Jackson Harper  <jackson@ximian.com>
10853
10854         * MdiChildContext.cs: Clear out the old virtual position remove
10855         all the unneeded calls to CreateGraphics.
10856
10857 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
10858
10859         * TextControl.cs: Use proper color for highlighted text; fixes #76350
10860
10861 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
10862
10863         * Form.cs: 
10864           - Added loading and setting of our new default icon
10865           - Only set icon if window is already created
10866
10867 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
10868
10869         * Label.cs:
10870           - Do not explicitly set the foreground and background colors, to
10871             allow inheriting from parents (fixes #76302)
10872           - Use Control's InternalBorderStyle property to deal with borders
10873
10874 2005-10-06  Jackson Harper  <jackson@ximian.com>
10875
10876         * MdiChildContext.cs: Use the new xplatui function to draw a
10877         reversible rect.
10878
10879 2005-10-06  Jackson Harper  <jackson@ximian.com>
10880
10881         * Form.cs: Add the parent before creating the child context cause
10882         we need the parent when setting up the child.
10883
10884 2005-10-06  Jackson Harper  <jackson@ximian.com>
10885
10886         * FolderBrowserDialog.cs: redo the tree population code so a
10887         second thread isn't used. Should be a lot faster and more stable
10888         now.
10889
10890 2005-10-05  Jackson Harper  <jackson@ximian.com>
10891
10892         * TreeView.cs: There are no expand/collapse boxes if the node has
10893         no children.
10894
10895 2005-10-05  Jackson Harper  <jackson@ximian.com>
10896
10897         * X11DesktopColors.cs: Get menu colours for the gtk theme.
10898
10899 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
10900
10901         * FileDialog.cs: Fix InitialDirectory
10902
10903 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
10904
10905         * ComboBox.cs:
10906                 - Fixes changing between styles
10907                 - Fixes simple mode
10908                 - Fixes last item crashing when navigating with keyboard
10909
10910 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
10911
10912         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
10913
10914 2005-10-05  Jackson Harper  <jackson@ximian.com>
10915
10916         * TreeView.cs: If updating the root node do a full refresh.
10917         * TreeNode.cs: The root node should be expanded by default. Also
10918         added a utility prop to tell if we are the root node.
10919         * TreeNodeCollection.cs: Only refresh if the node we are being
10920         added to is expanded. Also added a comment on a potential
10921         optimization.
10922         
10923 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
10924
10925         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
10926           in dispose method. Fixes #76330
10927
10928 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
10929
10930         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
10931
10932                 - Implements vertical and horizontal scrolling using XplatUI
10933                 - Fixes keyboard navagation
10934                 - Fixes EnsureVisible
10935                 - Drawing fixes
10936                 - Handles and draws focus properly
10937
10938
10939 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
10940
10941         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
10942           Create handle. NET_2_0: Destroy handle when value is null.
10943
10944 2005-10-03  Jackson Harper  <jackson@ximian.com>
10945
10946         * ScrollBar.cs: My last scrollbar patch was broken. This is a
10947         revert and a new patch to prevent the thumb from refreshing so
10948         much.
10949
10950 2005-10-02  Jackson Harper  <jackson@ximian.com>
10951
10952         * ScrollBar.cs: Don't update position if it hasn't actually
10953         changed. This occurs when you hold down the increment/decrement
10954         buttons and the thumb gets to the max/min.
10955
10956 2005-10-01  Jackson Harper  <jackson@ximian.com>
10957
10958         * Form.cs:
10959         * MdiChildContext.cs:
10960         * MdiClient.cs: Implement ActiveMdiChild in Form.
10961
10962 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
10963
10964         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
10965
10966 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
10967
10968         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
10969           be found
10970
10971 2005-09-30  Jackson Harper  <jackson@ximian.com>
10972
10973         * ListBox.cs: Don't do a full refresh unless some data has
10974         actually changed.
10975
10976 2005-09-30  Jackson Harper  <jackson@ximian.com>
10977
10978         * TreeView.cs: Make sure that the checkboxes size is factored in
10979         even when not visible.
10980
10981 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
10982
10983         * FileDialog.cs: Fix Jordi's build break
10984
10985 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
10986
10987         * FileDialog.cs: 
10988                 - Use standard the Windows colours for the combobox as espected
10989                 - Dispose objects that use resouces when no longer need them
10990
10991 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
10992
10993         * X11DesktopColors.cs: Initial incomplete implementation
10994         * XplatUIX11.cs: Added call to initialize X11DesktopColors
10995
10996 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
10997
10998         * Theme.cs: 
10999           - Switched Theme color names to match the names defined in 
11000             System.Drawing.KnownColors. Life's hard enough, no need to make 
11001             it harder.
11002           - Added setters to all theme color properties so themes can set
11003             their color schemes. The setters also propagate the color changes
11004             to System.Drawing.KnownColors via reflection
11005         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
11006           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
11007           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
11008           use the new, more logical theme color names
11009         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
11010           post-NT colors
11011         * ThemeWin32Classic.cs:
11012           - Removed code to set the old classic Windows colors. Instead it
11013             now relies on the colors returned by System.Drawing.KnownColors
11014             which will be either modern static colors (Unix) or colors
11015             read from the user's configuration (Win32)
11016           - Updated to use the new, more logical theme color names
11017           - Switched DataGrid drawing code to use only Theme colors instead of
11018             a mix of System.Drawing.KnownColors and Theme colors
11019           - DrawFrameControl(): Removed code that fills the button area, the
11020             fill would overwrite any previous fill done by a control. This
11021             fixes bug #75338 
11022           - Added DrawReversibleRectangle() stub
11023         * ScrollableControl.cs: Set visible state to false when scrollbars
11024           are removed (pdn fix)
11025         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
11026           DrawReversibleRectangle() method to allow drawing primitive 
11027           'rubber bands'
11028         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
11029
11030 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
11031
11032         * ImageList.cs: Add(Icon): Create handle.
11033
11034 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
11035
11036         * ListView.cs:
11037         * ThemeWin32Classic.cs:
11038                 - Fixes detail mode
11039                 - Sets clippings
11040                 - Issues with drawing
11041
11042 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
11043
11044         * ImageList.cs: Moved RecreateHandle back to ImageList as event
11045           source has to be the ImageList.
11046
11047 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
11048
11049         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
11050
11051 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
11052
11053         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
11054
11055 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
11056
11057         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
11058
11059 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
11060         * GridItem.cs: Fixed TODOs
11061         * GridItemCollection.cs: Added ICollection interface
11062
11063 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
11064
11065         * ImageList.cs: Resize icons when needed.
11066
11067 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
11068
11069         * ListViewItem.cs
11070                 - Fixes GetBounds and returns on screen rects
11071         * ListView.cs:
11072                 - Fixes vertical and horzintal scrolling of items
11073         * ThemeWin32Classic.cs:
11074                 - Fixes drawing
11075                 
11076 2005-09-29  Raja R Harinath  <harinath@gmail.com>
11077
11078         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
11079
11080 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
11081
11082         * ImageList.cs: Added comments about handle creation. Moved Handle,
11083           HandleCreated and OnRecreateHandle implementations to ImageCollection.
11084           Handle is created in Add methods.
11085
11086 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
11087          
11088         * DataGridDrawingLogic.cs: 
11089                 - Takes rows into account on Colum calculations
11090                 - Returns the column when clickig
11091         * DataGrid.cs:
11092                 - Fixes default HitTestInfo values
11093                 - Fixes HitTestInfo.ToString
11094                 - Fixes ResetBackColor          
11095         
11096 2005-09-28  Jackson Harper  <jackson@ximian.com>
11097
11098         * MdiChildContext.cs: Obey rules for fixed sized windows (no
11099         sizing or cursor changes). Also added some temp code to draw the
11100         titlebars text (Makes dev a little easier).
11101
11102 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
11103
11104         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
11105
11106 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
11107          
11108         * ListBox.cs: Fixes bug 76253
11109
11110 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
11111
11112         * ImageList.cs: Added comments about the current implementation. Added
11113           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
11114           Format32bppArgb to preserve transparency and can use Graphics.FromImage
11115           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
11116           with Bitmap.LockBits for better performance. Revised the whole file to
11117           match MS.NET behaviour and provide better performance. Non-public
11118           interface members are calling public members even when they throw
11119           NotSupportedException for better maintainability. Moved ColorDepth,
11120           ImageSize, ImageStream and TransparentColor implementations to
11121           ImageCollection for better performance as these properties are not used
11122           by ImageList.
11123         * ImageListStreamer.cs: Added a new internal constructor that takes an
11124           ImageList.ImageCollection and serializes Images based on
11125           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
11126           match ImageList property name.
11127
11128 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
11129
11130         * ListBox.cs: Fixes IndexFromPoint for last item
11131
11132 2005-09-27  Jackson Harper  <jackson@ximian.com>
11133
11134         * Form.cs: Set the position of new mdi children correctly.
11135
11136 2005-09-27  Jackson Harper  <jackson@ximian.com>
11137
11138         * MdiClient.cs: New mdi children need to be added to the back of
11139         the controls collection so the zorder is set correctly. Also add a
11140         count of all the child windows that have been created.
11141
11142 2005-09-27  Jackson Harper  <jackson@ximian.com>
11143
11144         * Form.cs (CreateParams): Setup MDI forms correctly.
11145
11146 2005-09-27  Jackson Harper  <jackson@ximian.com>
11147
11148         * MdiChildContext.cs:
11149         * MonthCalendar.cs:
11150         * UpDownBase.cs:
11151         * ListBox.cs:
11152         * ListView.cs:
11153         * TextBoxBase.cs:
11154         * TreeView.cs:
11155         * ScrollableControl.cs:
11156         * ComboBox.cs: Add implicit controls using the new implict control
11157         functionality in ControlCollection. Also try to block multiple
11158         control add in a suspend/resume layout to save some cycles.
11159         
11160 2005-09-27  Jackson Harper  <jackson@ximian.com>
11161
11162         * Control.cs: Add functionality to the controls collection to add
11163         'implicit controls' these are controls that are created by the
11164         containing control but should not be exposed to the user. Such as
11165         scrollbars in the treeview.
11166         * Form.cs: The list var of the ControlsCollection is no longer
11167         available because of the potential of implicit controls getting
11168         ignored by someone accessing the list directly.
11169
11170 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
11171
11172         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
11173           loose it's parent. (Fixed bug introduced in r49103 when we added
11174           setting the child parent to null on Remove)
11175
11176 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
11177
11178         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
11179         * Splitter.cs: Added missing attributes for BorderStyle property.
11180         * TextBoxBase.cs: Marked Calculate* methods internal.
11181         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
11182         MS.NET.
11183
11184 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
11185          
11186         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
11187
11188 2005-09-25  Jackson Harper  <jackson@ximian.com>
11189
11190         * TreeView.cs: Update the node bounds correctly regardless of
11191         whether the node is visible.
11192
11193 2005-09-25  Jackson Harper  <jackson@ximian.com>
11194
11195         * ImageList.cs: Don't dispose the image after it is added to the
11196         image list. Only reformat images that need to be resized.
11197
11198 2005-09-25  Jackson Harper  <jackson@ximian.com>
11199
11200         * ImageList.cs: Don't set the format when changing the image.
11201
11202 2005-09-25  Jackson Harper  <jackson@ximian.com>
11203
11204         * TreeView.cs: We can't just assume the node has a font. Use the
11205         treeviews font if no node font is available.
11206
11207 2005-09-25  Jackson Harper  <jackson@ximian.com>
11208
11209         * TreeView.cs: Allow the scrollbars to be reset with negative
11210         values.
11211         - Don't add scrollbars to negative sized windows.
11212
11213 2005-09-23  Jackson Harper  <jackson@ximian.com>
11214
11215         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
11216         old Mono.Posix. Also remove some stray code that shouldn't have
11217         been committed.
11218
11219 2005-09-23  Jackson Harper  <jackson@ximian.com>
11220
11221         * TreeView.cs: Attempt at proper sizing of the horizontal
11222         scrollbar. Also don't resize the scrollbars unless they are
11223         visible.
11224
11225 2005-09-23  Jackson Harper  <jackson@ximian.com>
11226
11227         * TreeView.cs: We don't need to expand the invalid area when the
11228         selection changes, as this is all drawn in the node's bounding
11229         box. The area needs to be expanded (previous typo was contracting
11230         it) when the focus rect moves.
11231
11232 2005-09-23  Jackson Harper  <jackson@ximian.com>
11233
11234         * TreeView.cs: Display the selection box under the correct
11235         circumstances. We were rendering white text with no selection box
11236         before.
11237
11238 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
11239
11240         * TextControl.cs(Split): Now updates selection start/end if it points 
11241           into a line that's being split. Fixes a FIXME and bug #75258
11242
11243 2005-09-23  Jackson Harper  <jackson@ximian.com>
11244
11245         * Binding.cs:
11246         * ListControl.cs: Don't use the path when retrieving binding
11247         managers from the binding context. My bat sense tells me that the
11248         path is only used on insertion.
11249
11250 2005-09-22  Jackson Harper  <jackson@ximian.com>
11251
11252         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
11253
11254 2005-09-22  Jackson Harper  <jackson@ximian.com>
11255
11256         * Splitter.cs: There are special cursors used for splitting.
11257         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
11258
11259 2005-09-22  Jackson Harper  <jackson@ximian.com>
11260
11261         * Splitter.cs: Change the cursor appropriately when the splitter
11262         is moused over, so the user actually knows there is a splitter
11263         there.
11264
11265 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
11266
11267        * Label.cs : Fix ToString method to give same output as MS.NET
11268
11269 2005-09-22  Jackson Harper  <jackson@ximian.com>
11270
11271         * TreeView.cs: Create the scrollbars when the handle is created
11272         and add them right away, just make them invisble. Also account for
11273         the window being shrunk vertically to the point that the vert
11274         scrollbar needs to be added.
11275         - Remove some 0.5 adjustments to get around anti aliasing issues.
11276         
11277 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
11278          
11279         * MainMenu.cs: Fixes default value
11280         * MenuItem.cs: Fixes default value
11281
11282 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
11283
11284         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
11285
11286 2005-09-21  Jackson Harper  <jackson@ximian.com>
11287
11288         * Control.cs: Don't try to set the border style on the window if
11289         it hasn't been created. When the window is created the border
11290         style will be used.
11291
11292 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
11293
11294         * Control.cs (Update): Don't call XplatUI if we don't have a
11295           window handle yet
11296
11297 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
11298
11299         * ContainerControl.cs: Instead of throwing an exception, print
11300           a one-time warning about Validate not being implemented
11301         * XplatUIWin32.cs: Removed debug output
11302
11303 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
11304
11305         * Control.cs: Only set XplatUI background if we expect the windowing
11306           system to handle the background. This stops controls that draw their
11307           own background from flickering
11308
11309         * XplatUIX11.cs: Support custom visuals and colormaps for window 
11310           creation. This allows, amongst other things, using MWF X11 windows 
11311           with OpenGL.
11312
11313 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
11314
11315         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
11316           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
11317           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
11318           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
11319           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
11320           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
11321           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
11322           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
11323           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
11324           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
11325           GridColumnStylesCollection.cs, 
11326           IDataGridColumnStyleEditingNotificationService.cs,
11327           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
11328           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
11329           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
11330           TreeNodeCollection.cs, AmbientProperties.cs, 
11331           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
11332           DataObject.cs, ErrorProvider.cs, Splitter.cs,
11333           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
11334           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
11335           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
11336           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
11337           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
11338           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
11339           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
11340           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
11341           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
11342           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
11343           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
11344           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
11345           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
11346           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
11347           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
11348           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
11349           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
11350           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
11351           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
11352           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
11353           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
11354           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
11355           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
11356           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
11357           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
11358           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
11359           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
11360           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
11361           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
11362           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
11363           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
11364           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
11365           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
11366           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
11367           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
11368
11369 2005-09-21  Jackson Harper  <jackson@ximian.com>
11370
11371         * TreeNode.cs: Call Before/After Expand not Collapse when
11372         expanding.
11373
11374 2005-09-20  Jackson Harper  <jackson@ximian.com>
11375         
11376         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
11377
11378 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
11379          
11380         * ListViewItem.cs:
11381                 - Fixes bug 76120
11382                 - Fixes proper storing of subitems
11383                 - Fixes not updated items
11384
11385 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
11386
11387         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
11388           things if our window handle isn't created yet. Also disabled 
11389           debug for TextBoxBase
11390
11391 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
11392
11393         * MenuAPI.cs: Remove filtering of events to allow menu usage
11394
11395 2005-09-20  Miguel de Icaza  <miguel@novell.com>
11396
11397         * Cursor.cs: Allow null to be passed to Cursor.Current.
11398
11399 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
11400
11401         * ThemeWin32Classic.cs:
11402           - Change some private methods/fields to protected virtual so that 
11403             they can be accessed and overriden in derived classes
11404           - First refactoring of some methods. Derived themes now don't 
11405             need to duplicate the complete code from ThemeWin32Classic
11406         * ThemeNice.cs:
11407           - Added nice StatusBar
11408           - Derive from ThemeWin32Classic and not Theme
11409           - Removed duplicate ThemeWin32Classic code
11410
11411 2005-09-20  Miguel de Icaza  <miguel@novell.com>
11412
11413         * Control.cs (ControlCollection.Add): If the value null is passed
11414         the control is ignored. 
11415
11416         Optimize this loop.
11417
11418 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
11419
11420         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
11421           PostQuitMessage state.
11422         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
11423
11424 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
11425
11426         * Application.cs: Our constructor will never get called, move 
11427           initialization to fields; fixes bug #75933
11428
11429 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
11430
11431         * FileDialog.cs :
11432                 - Allow files to be selected properly using file name
11433                 combo box.
11434                 - Add ability to change diretory (absolute / relative)
11435                 using file name combo box.
11436
11437 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
11438          
11439         * ListBox.cs: 
11440                 - Fixes Multicolumn listboxes item wrong calculations
11441                 - Allows to click when only one item is in the listbox
11442                 - Fixes crash when no items using keyboard navigation
11443
11444 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
11445
11446         * ComboBox.cs: Reverted almost everything from the latest patch which
11447           broke ComboBox
11448
11449 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
11450         
11451         * ToolTip.cs:
11452                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
11453         * ComboBox.cs:
11454                 - When DropDownStyle is Simple, it does not show scrollbar 
11455                 to the last item of the list.
11456                 - When DropDownStyle is Simple, it crashed when the list was 
11457                 scrolled down with the down cursor key.
11458                 - Fixed a bug that when DropDownStyle is DropDownList, the 
11459                 selected item was not shown.
11460                 - The position of the selected item was not preserved when 
11461                 the next dropdown happened.
11462         * ThemeWin32Classic.cs:
11463                 - Items were wrapped at the right end.
11464         * CheckedListBox.cs:
11465                 - Fixed Add method
11466         * ListBox.cs:
11467                 - Items should be fully shown.
11468                 - When resizing and vertical scrollbar disappeared, the item 
11469                 of index 0 should be on the top of the list.
11470                 - GetItemRectangle should consider the size of ver. scrollbar
11471         * StatusBar.cs:
11472                 - SizingGrip area should not be allocated when it is not 
11473                 displayed.
11474                 - Now it reflects MinWidth of the containing panel and 
11475                 fixed a crash that happens when its width becomes so small.
11476
11477 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
11478
11479         * CheckedListBox.cs: Fixes bug 76028
11480         * ListBox.cs: Fixes bug 76028
11481
11482 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
11483
11484         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
11485         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
11486
11487 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
11488
11489         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
11490
11491 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
11492
11493         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
11494
11495 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
11496
11497         * IRootGridEntry.cs: Added
11498         * PropertyGridCommands.cs: Added
11499         * PropertiesTab.cs: Added missing methods and property
11500         * PropertyGridView.cs: Made class internal
11501         * PropertyGridTextBox.cs: Made class internal
11502
11503 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
11504
11505         * MimeIcon.cs: Try to check some other environment variables
11506           if "DESKTOP_SESSION" returns "default"
11507
11508 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
11509
11510         * ThemeNice.cs: Corrected background colors (e.g. menus)
11511         * ColorDialog.cs: Use correct background colors for controls
11512
11513 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
11514
11515         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
11516
11517 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
11518
11519         * RichTextBox.cs: Added initial implementation
11520         * lang.cs: Removed. Was accidentally checked in long time ago
11521         * TODO: Removed. Contents were obsolete
11522
11523 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
11524                                                                                 
11525         * PropertiesTab.cs : Added
11526
11527 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
11528                                                                                 
11529         * PropertyGrid.cs : Update
11530         * PropertyGridView.cs : Update
11531         * System.Windows.Forms.resx : Added images and strings
11532
11533 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
11534
11535         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
11536  
11537 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
11538
11539         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
11540           a busy loop right after the Ungrab the X11 display is otherwise 
11541           blocked
11542
11543 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
11544
11545         * ThemeWin32Classic.cs: Optimise the use of clipping
11546
11547 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
11548
11549         * DataGrid.cs: fixes recursion bug
11550
11551 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
11552
11553         * ThemeNice.cs: 
11554           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
11555           - Cleanup
11556
11557 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
11558
11559         * ThemeNice.cs: Draw nice ProgressBars
11560
11561 2005-09-01  Miguel de Icaza  <miguel@novell.com>
11562
11563         * VScrollBar.cs: Another buglet found by Aaron's tool. 
11564
11565         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
11566         bug finder.
11567
11568 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
11569
11570         * ThemeNice.cs:
11571           - Added nicer menu drawing
11572           - Updated DrawTab
11573           - some refactoring
11574
11575 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
11576
11577         * CreateParams.cs (ToString): Made output match MS
11578         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
11579             handle is already created (to avoid forcing window creation)
11580         * XplatUIX11.cs: Set window text to caption after creating window,
11581           in case Text was set before window was created
11582         * Form.cs: Use this.Text instead of a static string as caption
11583
11584 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
11585
11586         * NotifyIcon.cs: Don't set the window to visible; this screws
11587           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
11588           OnPaint without a bitmap)
11589         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
11590           happen very often anyway; we could add the check to the WM_PAINT 
11591           event generation code
11592
11593 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
11594
11595         * NotifyIcon.cs: Fill the icon area with a background color, to 
11596           avoid 'residue' when transparent icons are drawn
11597         * XplatUIX11.cs:
11598           - Handle whole_window == client_window when destroying windows
11599           - SystrayAdd(): Set client_window to whole_window value to
11600             get mouse and other events passed to NotifyIcon
11601
11602 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
11603
11604         * Form.cs: Set proper default for Opacity property
11605         * NotifyIcon.cs:
11606           - ShowSystray(): Don't bother creating telling the OS
11607             about the systray item if no icon is provided
11608           - Now handles WM_NCPAINT message to deal with whole/client window
11609             split
11610           - Create window as visible to not get caught by Expose optimization
11611         * Hwnd.cs: Removed debug message
11612         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
11613           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
11614             PaintEventStart/End to use new client argument
11615         * TextBoxBase.cs:
11616           - Commented out debug messages
11617           - Switched PaintEventStart/End to use new client argument
11618         * XplatUI.cs: Added client window bool to PaintEventStart()/
11619           PaintEventEnd() calls, to support drawing in non-client areas
11620         * XplatUIDriver.cs: 
11621           - Added client window bool to PaintEventStart()/PaintEventEnd() 
11622             calls, to support drawing in non-client areas
11623           - Added conditional compile to allow using MWF BeginInvoke 
11624             on MS runtime
11625         * XplatUIX11.cs:
11626           - Added some conditional debug output
11627           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
11628             whole/client window split
11629           - Implemented handling of client argument to PaintEventStart()/End()
11630         * Control.cs:
11631           - Throw exception if BeginInvoke() is called and the window handle
11632             or one of the window's parent handles is not created
11633           - Added conditional compile to allow using MWF BeginInvoke on
11634             MS runtime
11635           - get_Parent(): Only sets parent if handle is created. This avoids
11636             forcing window handle creation when parent is set.
11637           - Now fires Layout and Parent changed events in proper order
11638           - Switched to use Handle instead of window.Handle for Z-Order setting,
11639             the get_Parent() patch above causes us to possibly get null for 'window'
11640           - Implemented handling of client argument to PaintEventStart()/End()
11641           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
11642             default handling)
11643           - Now sends a Refresh() to all child windows when Refresh() is called
11644
11645 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
11646
11647         * Form.cs: Added (non-functional) Opacity property
11648         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
11649
11650 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
11651         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
11652           use export MONO_THEME=nice to activate it.
11653           Currently supported controls:
11654           - Button
11655           - ComboBox
11656           - ScrollBar
11657           - TabControl (TabAlignment.Top only, other will follow)
11658         * ThemeEngine.cs: Add theme nice
11659         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
11660           if enabled
11661
11662 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
11663
11664         * Splitter.cs: Resize docked control and its neighbor.
11665
11666 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
11667         -- Making Windows with Menus layout correctly --
11668         * Form.cs : The first leg of the fix
11669                 Menu setter - adjust Client Size as needed to make space for the menu
11670                 SetClientSizeCore - doesn't call base version to be able to pass the 
11671                         menu handle to XplatUI.CalculateWindowRect
11672         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
11673         * XplatUIX11.cs: The critical second leg of the fix
11674                 GetWindowPos needs to use a recalculated client_rect
11675                 so that resizing the window doesn't break layout of child controls. 
11676                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
11677                 Lots of \t\n killed
11678
11679 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
11680
11681         * Label.cs: Now properly recalculates width and height on Font and Text
11682           changes if AutoSize is set
11683
11684 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
11685         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
11686
11687 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
11688
11689         * ImageList.cs: Makes ToString method compatible with MS
11690
11691 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
11692
11693         * MenuAPI.cs: fixes bug 75716
11694
11695 2005-08-11 Umadevi S <sumadevi@novell.com>
11696         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
11697
11698 2005-08-11 Umadevi S <sumadevi@novell.com>
11699         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
11700
11701 2005-08-10  Umadevi S <sumadevi@novell.com>
11702         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
11703
11704 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
11705
11706         * Menu.cs: fixes bug 75700
11707         * MenuAPI.cs: fixes navigation issues
11708
11709 2005-08-09  Umadevi S <sumadevi@novell.com>
11710         * CheckedListBox.cs - simple fix for GetItemChecked.
11711
11712 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
11713
11714         * ComboBox.cs: Serveral fixes
11715         * ListBox.cs: Serveral fixes
11716
11717 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
11718
11719         * ComboBox.cs: Fixes FindString methods and GetItemHeight
11720         * ListBox.cs: Fixes FindString methods
11721
11722 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
11723
11724         * DataGrid.cs: fixes bugs exposed by new tests
11725
11726 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
11727
11728         * Mime.cs: Compile Mono assembly references only if compiling
11729           with Mono (Allows to build with VS.Net again)
11730
11731 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
11732
11733         * Control.cs (PaintControlBackground): Draw background image
11734         corrrectly.
11735         (CheckForIllegalCrossThreadCalls): Stubbed.
11736         
11737         * Form.cs (OnCreateControl): Center when should be centered.
11738         
11739         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
11740
11741 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
11742
11743         * Binding.cs: Binding to properties should be case unsensitive
11744
11745 2005-07-18 vlindos@nucleusys.com
11746
11747         * DataGrid.cs: fixes setmember order
11748
11749 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
11750
11751         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
11752         * FileDialog.cs: FileDialog is now resizable and uses the new
11753           MimeIconEngine
11754
11755 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
11756
11757         * DataGridTextBoxColumn.cs: default value
11758         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
11759         * GridTableStylesCollection.cs: fixes checking MappingName
11760         * DataGridDrawingLogic.cs: fixes drawing logic issues
11761         * DataSourceHelper.cs: rewritten to make compatible with more data sources
11762         * DataGrid.cs: fixes    
11763
11764 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
11765
11766         * MimeGenerated.cs: Use case sensitive comparer for
11767           NameValueCollections
11768
11769 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
11770
11771         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
11772         * ThemeWin32Classic.cs: bug fixes, code refactoring
11773         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
11774         * DataGrid.cs: bug fixes, code refactoring
11775         * DataGridTextBox.cs: bug fixes, code refactoring
11776         * DataGridColumnStyle.cs:  bug fixes, code refactoring
11777         * Theme.cs:  bug fixes, code refactoring
11778
11779 2005-07-01  Peter Bartok  <pbartok@novell.com> 
11780
11781         * TextControl.cs: Quick fix for the reported crash on ColorDialog
11782           and other text box usage
11783
11784 2005-07-01  Jackson Harper  <jackson@ximian.com>
11785
11786         * TabControl.cs: Make sure the bottom of the tab covers the pages
11787         border.
11788
11789 2005-06-30  Peter Bartok  <pbartok@novell.com> 
11790
11791         * Form.cs (ShowDialog): Assign owner of the dialog
11792         * TextBoxBase.cs: Always refresh caret size when deleting, caret
11793           might have been moved to a tag with different height
11794
11795 2005-06-30  Jackson Harper  <jackson@ximian.com>
11796
11797         * Form.cs: Don't create an infinite loop when setting focus
11798         * MenuItem.cs: Don't dirty the parents if we don't have any
11799
11800 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
11801
11802         * LibSupport.cs: Rename
11803
11804 2005-06-29  Peter Bartok  <pbartok@novell.com>
11805
11806         * TextBoxBase.cs: Re-align caret after deleting a character
11807         * TextControl.cs:
11808           - DeleteChars(): Ensure that tag covers the provided position
11809           - StreamLine(): Drop reference for dropped tag
11810
11811 2005-06-29  Peter Bartok  <pbartok@novell.com> 
11812
11813         * TextControl.cs: 
11814           - Selections now work properly, anchoring at the initial location
11815             and properly extending in either direction (SetSelectionToCaret(),
11816             SetSelectionStart() and SetSelectionEnd())
11817           - No longer redraws the whole control on selection change, now
11818             calculates delta between previous and new selection and only
11819             invalidates/redraws that area
11820           - Fixed FindPos() math off-by-one errors
11821           - Changed DeleteChars() to verify the provided tag covers the
11822             provided position, selections may have a tag that doesn't cover
11823             the position if the selection is at a tag border
11824           - Fixed off-by-one errors in DeleteChars()
11825           - Added missing streamlining check in DeleteChars() to remove
11826             zero-length tags
11827           - Implemented Invalidate() method, now properly calculates exposures
11828             between two given lines/positions
11829           - Implemented SetSelection()
11830           - Obsoleted and removed FixupSelection()
11831           - Improved RecalculateDocument() logic, removing code duplication
11832
11833 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11834
11835         * LibSupport.cs: changes to match different input/output arguments.
11836
11837 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11838
11839         * LibSupport.cs: added libsupport.so init routine.
11840
11841 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
11842         
11843         * ControlBindingsCollection.cs
11844                 - Throws an exception on null datasource when adding
11845                 - Checks for duplicated bindings when adding
11846
11847 2005-06-28  Jackson Harper  <jackson@ximian.com>
11848
11849         * TreeView.cs (OnKeyDown): Support left and right properly
11850         (navigates as well as expanding and collapsing.
11851         - Add support for Multiply, this expands all the selected nodes
11852         children.
11853         - Fix some tabbing.
11854
11855 2005-06-28  Jackson Harper  <jackson@ximian.com>
11856
11857         * TreeView.cs: Implement keyboard navigation, currently supports,
11858         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
11859         support for toggling checkboxes with the space bar.
11860
11861 2005-06-28  Jackson Harper  <jackson@ximian.com>
11862
11863         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
11864         tree.
11865
11866 2005-06-28  Jackson Harper  <jackson@ximian.com>
11867
11868         * TreeView.cs: Add missing event.
11869
11870 2005-06-27  Peter Bartok  <pbartok@novell.com> 
11871
11872         * TextControl.cs:
11873           - Made line ending size configurable (now allows for counting 
11874             lineendings as \n or \r\n)
11875           - Added margin to viewport to keep caret visible on right side
11876           - Fixed translation routines for line/pos to documentpos to consider
11877             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
11878           - Fixed some line-endings to be unix style
11879           - Fixed Document.FormatText to perform it's calculations 1-based
11880           - Added descriptions for a few methods that might otherwise get 
11881             used wrong
11882           - Added NOTE section with some basic conventions to remember at 
11883             the top of the file
11884           - Major fixup for RichTextBox selection drawing:
11885             * Fixed crashes when multiple tags on a single line were selected
11886             * fixed selection box drawing not overlaying text
11887             * fixed bogus offset calculation for tags not starting at index 1
11888             * Switched behaviour from using multiple Substrings of a 
11889               StringBuilder.ToString() to using multiple 
11890               StringBuilder.ToString(start, length) statements, hoping this is
11891               faster (kept original version commented out in the code, in case
11892               original version was faster)
11893         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
11894           alignment != Left
11895         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
11896           call it as well
11897
11898 2005-06-27  Jackson Harper  <jackson@ximian.com>
11899
11900         * TabControl.cs: Move to the left and right with the arrow
11901         keys. These keys don't cycle beyond first and last like
11902         tab. Refresh all the tabs when scrolling them to the left or
11903         right.
11904
11905 2005-06-27  Jackson Harper  <jackson@ximian.com>
11906
11907         * TabControl.cs:
11908           - ToString: Added method
11909           - CreateParams: Remove TODO and comment
11910           - OnKeyDown: Cycle through bounds properly.
11911           - SelectedIndex: Scroll to the right or left if we need to
11912           display the newly selected tab.
11913
11914 2005-06-23  Jackson Harper  <jackson@ximian.com>
11915
11916         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
11917         set.
11918
11919 2005-06-23  Jackson Harper  <jackson@ximian.com>
11920
11921         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
11922         CTRL-SHIFT-TAB, and HOME, END are there any others?
11923
11924 2005-06-23  Jackson Harper  <jackson@ximian.com>
11925
11926         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
11927
11928 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
11929         
11930         * DataGridTextBoxColumn.cs: fixes and enhancements
11931         * ThemeWin32Classic.cs: fixes and enhancements
11932         * DataGridBoolColumn.cs:  fixes and enhancements
11933         * DataGridDrawingLogic.cs:  fixes and enhancements
11934         * CurrencyManager.cs: fixes and enhancements
11935         * DataGrid.cs: fixes and enhancements
11936         * DataGridColumnStyle.cs:  fixes and enhancements
11937
11938 2005-06-22  Jackson Harper  <jackson@ximian.com>
11939
11940         * TabControl.cs: Add some missing methods that just call into the
11941         base. Make the TabPageCollection's IList interface behave in the
11942         same manner as the MS implementation.
11943
11944 2005-06-22  Peter Bartok  <pbartok@novell.com> 
11945
11946         * TextControl.cs: Added sanity check
11947         * TextBoxBase.cs: 
11948           - Fixed wrapping behaviour, don't set wrap on single line controls
11949             (this fixes the breakage of colordialog introduced in an earlier
11950              checkin)
11951           - Added rudimentary support for autoscrolling right-aligned controls
11952             (still needs fixing, also, center alignment scroll is missing)
11953
11954 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
11955         
11956         * ScrollBar.cs: Fixes thumbpos on Maximum values
11957
11958 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
11959         
11960         * PropertyGridView.cs: Pass context information to UITypeEditors 
11961
11962 2005-06-21  Peter Bartok  <pbartok@novell.com> 
11963
11964         * TextBoxBase.cs:
11965           - Now calling PositionCaret with absolute space coordinates
11966           - Enabled vertical scrolling
11967           - Better tracking of scrollbar changes, tied into WidthChange
11968             event
11969           - Improved cursor tracking
11970           - Removed debug output
11971         * TextControl.cs:
11972           - PositionCaret coordinates are now works in absolute space, not 
11973             the canvas
11974           - Improved tracking of document size
11975           - Added events for width and height changes
11976
11977 2005-06-21  Peter Bartok  <pbartok@novell.com>
11978
11979         * Form.cs: Set focus to active control when form is activated
11980         * TextControl.cs: 
11981           - Added word-wrap functionality to RecalculateLine() 
11982           - Added some short function descriptions for VS.Net to aid in
11983             writing dependent controls
11984           - Added Caret property, returning the current coords of the caret
11985           - Added ViewPortWidth and ViewPortHeight properties
11986           - Added Wrap property
11987           - Added CaretMoved event
11988           - Removed some old debug code
11989           - Split() can now create soft splits
11990           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
11991           - Added method to format existing text
11992           - Fixed size/alignment calculations to use viewport
11993           - RecalculateDocument now can handle changing line-numbers while
11994             calculating lines
11995
11996         * TextBox.cs:
11997           - Added some wrap logic, we don't wrap if alignment is not left
11998           - Added casts for scrollbar var, base class switched types to
11999             also support RichTextBoxA
12000           - Implemented handling of scrollbar visibility flags
12001
12002         * TextBoxBase.cs:
12003           - Switched scrollbars type to RichTextBoxScrollBars to support
12004             RichTextBox
12005           - Added tracking of canvas width/height
12006           - Switched scrollbars to be not selectable (to keep focus on text)
12007           - Added central CalculateDocument() method to handle all redraw
12008             requirements
12009           - Added ReadOnly support
12010           - Added WordWrap support
12011           - Fixed handling of Enter key (we now treat it as a DialogKey)
12012           - Fixed caret positioning when h or v scroll is not zero
12013           - Fixed placing/generation of vertical scrollbar
12014           - Added CalculateScrollBars() method to allow updating scrollbar
12015             limits and visibility
12016           - Fixed handling of horizontal scroll
12017           - Added handling of vertical scroll
12018           - Implemented auto-'jump' when caret moves to close to a left or
12019             right border and there is text to be scrolled into view (currently
12020             there's the potential for a stack overflow, until a bug in
12021             scrollbar is fixed)
12022
12023 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
12024         
12025         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
12026
12027 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
12028
12029         * Mime.cs:
12030         - added inodes.
12031         - return application/x-zerosize for files with size zero
12032           (if no extension pattern matches).
12033         - check matches collection for strings too.
12034         - return only the first mime type if the name value
12035           collection has more than one mime type.
12036
12037 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
12038         
12039         * PropertyGrid.cs: Cleaned up some TODOs
12040         * PropertyGridView.cs: Added support for UITypeEditors
12041
12042 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
12043         
12044         * DataGrid.cs: clears cached value
12045
12046 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
12047
12048         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
12049         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
12050         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
12051         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
12052         
12053 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
12054
12055         * ThemeWin32Classic.cs: fixes colour
12056
12057 2005-06-15  Peter Bartok  <pbartok@novell.com>
12058
12059         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
12060         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
12061         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
12062         * Control.cs: Added some MWFCategory and MWFDescription attributes
12063         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
12064
12065 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
12066
12067         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
12068         usage
12069
12070 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
12071
12072         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
12073         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
12074         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
12075         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
12076         * DataGrid.cs: default datagrid settings for Default Styles, fixes
12077         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
12078
12079 2005-06-13  Jackson Harper  <jackson@ximian.com>
12080
12081         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
12082         isn't printed when the user enables dropping. (X11 does accept
12083         drops).
12084         
12085 2005-06-13  Jackson Harper  <jackson@ximian.com>
12086
12087         * TreeView.cs: Remove some TODOS.
12088
12089 2005-06-13  Jackson Harper  <jackson@ximian.com>
12090
12091         * Form.cs: Hook into the mdi framework.
12092         * MdiClient.cs: Use the base control collections add method so
12093         parents get setup correctly. Set the default back colour and dock
12094         style.
12095         * MdiChildContext.cs: New class, this bad actor handles an
12096         instance of an MDI window. Right now there is only basic
12097         support. You can drag, close, and resize windows. Minimize and
12098         Maximize are partially implemented.
12099
12100 2005-06-13  Jackson Harper  <jackson@ximian.com>
12101
12102         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
12103         freaky when both vals are negative. NOTE: There are probably other
12104         places in XplatUIX11 that this needs to be done.
12105
12106 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
12107
12108         * DataGrid.cs: implement missing methods, move KeyboardNavigation
12109         * DataGridColumnStyle.cs: fixes signature
12110
12111 2005-06-12  Jackson Harper  <jackson@ximian.com>
12112
12113         * XplatUIX11.cs: Use sizing cursors similar to the ones on
12114         windows.
12115
12116 2005-06-11  Jackson Harper  <jackson@ximian.com>
12117
12118         * StatusBarPanel.cs: Signature cleanups. Implement
12119         BeginInit/EndInit.
12120
12121 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
12122
12123         * DataGridTextBoxColumn.cs: Honors aligment
12124         * GridColumnStylesCollection.cs: Contains is case unsensitive
12125         * GridTableStylesCollection.cs: several fixes
12126         * DataGridTableStyle.cs: default column creation
12127         * DataGridDrawingLogic.cs: fixes
12128         * CurrencyManager.cs: ListName property
12129         * DataGrid.cs: multiple styles support
12130         * DataGridColumnStyle.cs: fixes
12131         
12132
12133 2005-06-10  Peter Bartok  <pbartok@novell.com>
12134
12135         * Control.cs(Select): Moved SetFocus call to avoid potential
12136           loops if controls change the active control when getting focus
12137         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
12138           the up/down buttons
12139
12140 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
12141
12142         * ImageListConverter.cs: Implemented
12143
12144 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
12145
12146         * MonthCalendar.cs: Wired in NumericUpDown control for year
12147
12148 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
12149
12150         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
12151           DoubleClick events, since they are not meant to be fired.
12152
12153 2005-06-09  Peter Bartok  <pbartok@novell.com>
12154
12155         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
12156           Jonathan's standalone controls into MWF, implemented missing
12157           events, attributes and methods; added xxxAccessible classes
12158         * AccessibleObject.cs: Made fields internal so other classes
12159           can change them if needed
12160
12161 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
12162
12163         * UpDownBase.cs: Complete implementation
12164         * NumericUpDown.cs: Complete implementation
12165         * DomainUpDown.cs: Complete implementation
12166
12167 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
12168
12169         * DataGridTextBoxColumn.cs: drawing fixes
12170         * DataGridCell.cs: fixes ToString method to match MSNet
12171         * DataGridTableStyle.cs: fixes
12172         * DataGridBoolColumn.cs: fixes, drawing
12173         * DataGridDrawingLogic.cs: fixes, new methods
12174         * DataGridTextBox.cs: Keyboard and fixes
12175         * DataGrid.cs:
12176                 - Keyboard navigation
12177                 - Scrolling fixes
12178                 - Row selection (single, multiple, deletion, etc)
12179                 - Lots of fixes
12180         
12181 2005-06-07  Jackson Harper  <jackson@ximian.com>
12182
12183         * ThemeWin32Classic.cs: Clear the background area when drawing
12184         buttons.
12185
12186 2005-06-06  Peter Bartok  <pbartok@novell.com>
12187
12188         * ImageListStreamer.cs: Fixed signature for GetData
12189         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
12190         * ComboBox.cs:
12191           - Added missing ChildAccessibleObject class
12192           - Added missing OnXXXFocus overrides, switched to using those
12193             instead of the event handler
12194         * Control.cs:
12195           - Added Parent property for ControlAccessibleObject
12196           - Fixed signatures
12197           - Fixed attributes
12198           - Added ResetBindings()
12199         * ListBindingConverter.cs: Implemented some methods
12200         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
12201         * ImageList.cs: Implemented basic handle scheme, removed TODOs
12202         * ContainerControl.cs: Fixed signature, now subscribing to the
12203           ControlRemoved event instead of overriding the handler, LAMESPEC
12204         * CurrencyManager.cs: Added missing attribute
12205         * MonthCalendar.cs: Added missing properties
12206
12207 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
12208
12209         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
12210         
12211 2005-06-06  Gaurav Vaish and Ankit Jain
12212
12213         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
12214         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
12215         
12216 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
12217
12218         * Control.cs: fixes CreateParams Width / Height.
12219
12220 2005-06-05  Peter Bartok  <pbartok@novell.com>
12221
12222         * Win32DnD.cs: Removed compilation warnings
12223
12224 2005-06-05  Peter Bartok  <pbartok@novell.com>
12225
12226         * Control.cs (CreateParams): Since we don't know if one of the
12227           properties we use is overridden, lets make sure if we fail accessing
12228           we continue with a backup plan
12229
12230 2005-06-05  Peter Bartok  <pbartok@novell.com>
12231
12232         * Win32DnD.cs:
12233           - Removed debug output
12234           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
12235             struct
12236           - Plugged resource leak
12237         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
12238           MS size
12239
12240 2005-06-05  Peter Bartok  <pbartok@novell.com>
12241
12242         * XplatUIWin32.cs: Removed DnD code
12243         * Win32DnD.cs: Implemented drop source and drop target functionality
12244
12245 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12246
12247         * UpDownBase.cs: remove duplicate addition of event, enable some code
12248         that was commented out.
12249         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
12250         Validate input when a key is pressed. It works fine now for every
12251         combination of Hexadecimal. Only missing some drawing love when sharing
12252         space with other controls.
12253
12254 2005-06-04  Peter Bartok  <pbartok@novell.com>
12255
12256         * Control.cs:
12257           - We need to pass a window for DragDrop, so enable callback events
12258           - Added DnD callback events when being a DragSource
12259         * XplatUI.cs (StartDrag): Added window handle argument
12260         * XplatUIDriver.cs (StartDrag): Added window handle argument
12261         * QueryContinueDragEventArgs: Made fields internally accessible so
12262           drivers can set them
12263         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
12264           can set them
12265
12266 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
12267
12268         * DataGridTextBoxColumn.cs: column text editing
12269         * DataGridTableStyle.cs: Respect columns styles created by the user
12270         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
12271         * DataGridBoolColumn.cs: bool column editing
12272         * DataGrid.cs: fixes to scrolling, properties, etc
12273         * DataGridTextBox.cs: handle keyboard
12274         * DataGridColumnStyle.cs: fixes
12275
12276 2005-06-02  Jackson Harper  <jackson@ximian.com>
12277
12278         * ImageListStreamer.cs: Somewhat broken implementation of
12279         GetObjectData. The RLE needs some work to match MS properly.
12280
12281 2005-06-02  Jackson Harper  <jackson@ximian.com>
12282
12283         * X11Dnd.cs: Attempting to keep at least one file in MWF
12284         monostyled.
12285
12286 2005-06-02  Peter Bartok  <pbartok@novell.com>
12287
12288         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
12289           that way
12290
12291 2005-06-02  Peter Bartok  <pbartok@novell.com>
12292
12293         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
12294         * XplatUI.cs: Added DoDragDrop() method
12295         * XplatUIDriver.cs: Added DoDragDrop() method
12296
12297 2005-06-02  Jackson Harper  <jackson@ximian.com>
12298
12299         * Splitter.cs: Implement BorderStyle.
12300
12301 2005-06-02  Jackson Harper  <jackson@ximian.com>
12302
12303         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
12304         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
12305         X11 using XDND.
12306
12307 2005-06-02  Peter Bartok  <pbartok@novell.com>
12308
12309         * DataObject.cs:
12310           - Added Data setter
12311           - Fixed broken insertion code for SetData, now also
12312             overwrites any existing entry of the same format name
12313         * Hwnd.cs: Added list of pointers that automatically gets
12314           freed when the window is disposed
12315         * XplatUI.cs: Call driver initialization method when loading
12316           a driver
12317         * Control.cs:
12318           - OnDragLeave takes EventArgs, not DragEventArgs
12319           - Added setting of WS_EX_ACCEPTFILES style when dropping is
12320             supported
12321           - Forces style update when drop state changes
12322         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
12323           not perfect since we cannot (yet) call the IDataObject.GetData()
12324           method, we keep getting 0x80004005 error, dunno why)
12325
12326 2005-06-02  Peter Bartok  <pbartok@novell.com>
12327
12328         * DragEventArgs.cs: Make fields internal so we can cache the
12329           object and re-set the fields from XplatUI
12330
12331 2005-06-02  Jackson Harper  <jackson@ximian.com>
12332
12333         * Control.cs: Add some internal methods so the DnD subsystem can
12334         raise DnD events. Also call into the driver when AllowDrop is set.
12335         * XplatUI.cs:
12336         * XplatUIDriver.cs: New method for setting whether or not a window
12337         is allowed to accept drag and drop messages.
12338                 
12339 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
12340         
12341         * ScrollBar.cs: Make sure that values sent in Scroll events
12342         are always between Maximum and Minimum.
12343
12344 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
12345
12346         * Menu.cs: Call MenuChanged when menuitem visibility has been
12347         changed.
12348         * MenuItem.cs: Rebuild menu when item is (not) visible.
12349         * MainMenu.cs: MainMenu has special MenuChanged.
12350         * Theme.cs: Caption and FrameBorderSize are not fixed.
12351         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
12352         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
12353         * XplatUIX11.cs,
12354         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
12355         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
12356
12357 2005-05-30  Jackson Harper  <jackson@ximian.com>
12358
12359         * DataFormat.cs: We can't statically initialize this stuff because
12360         it calls into the xplatui and could create a loop. So we lazy init
12361         it.
12362
12363 2005-05-28  Jackson Harper  <jackson@ximian.com>
12364
12365         * Control.cs: Proper implementation of Product(Name/Version).
12366
12367 2005-05-27  Jackson Harper  <jackson@ximian.com>
12368
12369         * DataObject.cs: Dont crash if no data is found.
12370
12371 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
12372         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
12373                 as per status page, guessing it should be set to true
12374
12375 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
12376
12377         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
12378         * DataGridTableStyle.cs: set proper formatting text, def header text
12379         * ThemeWin32Classic.cs: new themable paramaters
12380         * DataGridBoolColumn.cs: paint check box, get data, fixes
12381         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
12382         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
12383         * DataGridColumnStyle.cs: fixes
12384         * Theme.cs: new themable paramaters
12385                 
12386 2005-05-26  Peter Bartok  <pbartok@novell.com>
12387
12388         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
12389
12390 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
12391         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
12392
12393 2005-05-24  Peter Bartok  <pbartok@novell.com>
12394
12395         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
12396           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
12397           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
12398           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
12399           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
12400           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
12401           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
12402           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
12403           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
12404           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
12405           missing attributes, etc
12406         * DataGridPreferredColumnWidthTypeConverter.cs: Added
12407
12408 2005-05-24  Peter Bartok  <pbartok@novell.com>
12409
12410         * Help.cs: Added, implemented trivial functions, throws up MessageBox
12411           when user tries to get help
12412         * DataObject.cs, DataFormats.cs, LinkArea.cs,
12413           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
12414           to suppress warnings
12415         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
12416           avoid unreachable code warning
12417
12418 2005-05-20  Peter Bartok  <pbartok@novell.com>
12419
12420         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
12421
12422 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
12423
12424         * DataGridTextBoxColumn.cs: Basic painting methods
12425         * DataGridTableStyle.cs: Set table style in the column
12426         * ThemeWin32Classic.cs: Use Theme for colors
12427         * DataGridDrawingLogic.cs: Implement more drawing
12428         * DataGrid.cs: drawing, theming, enhacements, fixes
12429         * DataGridColumnStyle.cs: fixes, drawing
12430         * Theme.cs: theming for Datagrid
12431
12432 2005-05-20  Peter Bartok  <pbartok@novell.com>
12433
12434         * Cursor.cs: Implemented GetObjectData() method
12435
12436 2005-05-20  Peter Bartok  <pbartok@novell.com>
12437
12438         * Cursors.cs: Added setting of cursor name
12439         * Cursor.cs:
12440           - Implemented constructors
12441           - Implemented Draw and DrawStretched
12442           - Implemented Current property
12443           - Implemented == and != operators
12444           - Implemented Dispose()
12445           - Implemented ToString
12446           - Added missing attributes
12447         * XplatUIX11.cs:
12448           - Added missing reset for OverrideCursor when DoEvents is called
12449           - Fixed creation of cursor, logic was wrong
12450         * XplatUIWin32.cs:
12451           - Added missing reset for OverrideCursor when DoEvents is called
12452           - Fixed creation of cursor, bit arrays were swapped
12453         * Clipboard.cs: Removed obsolete MonoTODO attribute
12454
12455 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
12456
12457         * ComboBox.cs: fixes OnSelectedItemChanged
12458         * ControlBindingsCollection.cs: fixes item range check
12459
12460 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
12461
12462         * UpDownBase.cs:
12463                 - Calc preferred height properly
12464                 - Implement missing properties
12465                 
12466         * NumericUpDown.cs: Implement missing events
12467
12468 2005-05-19  Jackson Harper  <jackson@ximian.com>
12469
12470         * TabControl.cs: New method that resizes the tab pages before
12471         redrawing them. This as needed as the control is double buffered
12472         and sizing will not be recalculated unless ResizeTabPages is
12473         called.
12474         * TabPage.cs: Set base.Text instead of Text in the constructor so
12475         that UpdateOwner does not get called. Use the new Redraw method of
12476         TabControl instead of Refresh so the sizing is recalculated.
12477         * ThemeWin32Classic.cs: Draw the text for button tabs.
12478
12479 2005-05-19  Jackson Harper  <jackson@ximian.com>
12480
12481         * Control.cs: Paint control background images. Fix typo where
12482         PaintControlBackground was not getting called correctly.
12483
12484 2005-05-19  Peter Bartok  <pbartok@novell.com>
12485
12486         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
12487           I can investigate, apparently I broke FileDialog
12488
12489 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
12490
12491         * AxHost.cs: Some simple properties.
12492         * Control.cs: window must be accessible after ctor.
12493         * Form.cs: Added TransparencyKey property.
12494         * TextBoxBase.cs: Implemented Clear. Text property can be null.
12495         * XplatUIWin32.cs: SetBorderStyle implemented.
12496
12497 2005-05-18  Peter Bartok  <pbartok@novell.com>
12498
12499         * DataObject.cs: Entries are not global but particular to the
12500           DataObject, now it behaves that way
12501         * XplatUIWin32.cs: Implemented Clipboard methods
12502         * Clipboard.cs: Implemented
12503         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
12504         * XplatUIOSX.cs: Updated to final clipboard prototypes
12505         * XplatUIX11.cs: Implemented Clipboard methods
12506         * XplatUIDriver.cs: Updated to final clipboard prototypes
12507         * XplatUIStructs.cs:
12508           - Added BITMAPINFOHEADER struct
12509           - Added ClipboardFormats enum
12510         * X11Structs.cs:
12511           - Added ClipboardStruct
12512           - Added Atom enum items for clipboard types
12513           - Fixed atom types for Selection event structures
12514         * DataFormats.cs:
12515           - Added internal properties and methods for drivers to enumerate
12516             all known formats
12517           - Switched initialization method to allow drivers to assign their
12518             own IDs even for the MS predefined clipboard IDs
12519         * XplatUI.cs: Updated to final clipboard interface
12520
12521 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
12522         * PropertyGridView.cs: Fixed compiler warnings.
12523
12524 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
12525         * PropertyGrid.cs: Added some event calls
12526         * PropertyGridView.cs: Change drawing code to use double buffering
12527         * PropertyGridTextBox.cs: Changed Text property name
12528         * GridItem.cs: Added Bounds property.
12529         * GridEntry.cs: Added Bounds property.
12530
12531 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
12532
12533         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
12534         since GetType() may not return the correct type if the object is
12535         a remoting proxy.
12536
12537 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
12538
12539         * TreeNodeCollection.cs: fixes get/set item ranges
12540         
12541 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
12542
12543         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
12544                 
12545 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
12546
12547         * ComboBox.cs: Fix item range comparation
12548         * ListView.cs: Fix item range comparation
12549
12550 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
12551
12552         * FontDialog.cs:
12553           - Clear example panel when OnPaint is called
12554           - Better solution for displaying the example panel text
12555           - Select default indexes in the ListBoxes
12556
12557 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
12558
12559         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
12560
12561 2005-05-11  Peter Bartok  <pbartok@novell.com>
12562
12563         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
12564         * SelectionRangeConverter.cs: Implemented
12565         * PropertyGrid.cs: Fixed attribute value
12566         * Control.cs:
12567           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
12568           - Added Sebastien Pouliot's CAS Stack Propagation fixes
12569         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
12570           that's common to all drivers. First methods to go there are
12571           Sebastien Pouliot's CAS Stack Propagation helper methods
12572         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
12573           Sebastien Pouliot for CAS Stack Propagation
12574
12575 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
12576
12577         * OSXStructs.cs:
12578           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
12579
12580 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
12581
12582         * DataGridTextBoxColumn.cs: fixed some members
12583         * GridColumnStylesCollection.cs: indexed column is case insensitive
12584         * DataGridTableStyle.cs: fixes
12585         * ThemeWin32Classic.cs: add new theme parameter
12586         * Theme.cs: add new theme parameter
12587         * DataGridDrawingLogic.cs: Datagrid's drawing logic
12588         * DataGrid.cs: fixes, new internal properties, etc.
12589         * DataGridColumnStyle.cs: allows to set grid value
12590         *
12591
12592 2005-05-10  Peter Bartok  <pbartok@novell.com>
12593
12594         * AccessibleObject.cs:
12595           - Removed MonoTODO attribute on help, method is correct
12596           - Fixed Bounds property
12597         * AxHost.cs: Moved MonoTODO
12598         * ButtonBase.cs: Now setting AccessibleObject properties
12599         * RadioButton.cs: Setting proper AccessibleObject role
12600         * CheckBox.cs: Setting proper AccessibleObject role
12601         * ControlBindingsCollection.cs: Added properties, methods and attributes
12602         * DataFormats.cs: Fixed awkward internal API, and changed to enable
12603           userdefined DataFormats.Format items as well
12604         * ListControl.cs: Removed data_member from the public eye
12605         * OpenFileDialog.cs:
12606           - Made class sealed
12607           - Added missing attributes
12608         * SaveFileDialog.cs: Added missing attributes
12609         * ImageListStreamer.cs: Fixed code that caused warnings
12610         * LinkLabel.cs: Removed unreachable code
12611         * TreeView.cs: Fixed code that caused warnings
12612         * PropertyGridView.cs: Fixed code that caused warnings
12613         * GridColumnStylesCollection.cs: Added missing attributes
12614         * GridTableStylesCollection: Added missing attribute
12615         * PropertyManager: Added .ctor
12616         * SecurityIDType: Added
12617         * DataObject.cs: Implemented class
12618         * LinkArea.cs: Added missing attribute
12619
12620 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
12621
12622         * RadioButton.cs: call base method to allow to fire OnClick event
12623         * UpDownBase.cs: OnMouseUp call base method
12624         * CheckedListBox.cs: call base method before returning
12625         * TrackBar.cs: call base method before returning
12626         
12627
12628 2005-05-10  Peter Bartok  <pbartok@novell.com>
12629
12630         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
12631           for messages
12632
12633 2005-05-10  Peter Bartok  <pbartok@novell.com>
12634
12635         * DataFormats.cs: Implemented
12636         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
12637           XplatUIX11.cs: Added Clipboard APIs
12638         * XplatUIWin32.cs: Implemented Clipboard APIs
12639         * FolderBrowserDialog.cs: Added missing event, attributes
12640
12641 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
12642
12643         * CheckBox.cs: call base method to allow to fire OnClick event
12644
12645 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
12646
12647         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
12648
12649 2005-05-06  Peter Bartok  <pbartok@novell.com>
12650
12651         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
12652         * Screen.cs: Implemented
12653         * HelpNavigator.cs: Added
12654         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
12655           property
12656         * HelpProvider.cs: Implemented all we can do until we have a CHM
12657           help library (which means that "What's This" does work now)
12658
12659 2005-05-06  Jackson Harper  <jackson@ximian.com>
12660
12661         * XplatUIX11.cs: Fix waking up the main loop.
12662                 
12663 2005-05-05  Peter Bartok  <pbartok@novell.com>
12664
12665         * XplatUI.cs: Updated revision
12666         * Form.cs: Removed enless loop
12667         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
12668         * Label.cs (OnPaint): Added call to base.OnPaint()
12669         * ToolTip.cs: Made ToolTipWindow reusable for other controls
12670         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
12671         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
12672         * AxHost.cs: Added
12673         * ButtonBase.cs: Moved base.OnPaint() call to end of method
12674         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
12675           to ToolTip.ToolTipWindow for drawing and size methods; this allows
12676           reuse of ToolTipWindow by other controls
12677         * SizeGrip.cs: Moved base.OnPaint() call to end of method
12678         * XplatUIX11.cs: Now clipping drawing area (experimental)
12679         * PictureBox.cs: Moved base.OnPaint() call to end of method
12680         * Theme.cs: Fixed ToolTip abstracts to match new format
12681         * ErrorProvider.cs: Implemented
12682
12683 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
12684
12685         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
12686         * LinkLabel.cs:
12687                 - Adds cursors
12688                 - Handles focus
12689                 - Implements LinkBehavior
12690                 - Fixes many issues
12691
12692 2005-05-03  Jackson Harper  <jackson@ximian.com>
12693
12694         * ListView.cs: Calculate the scrollbar positioning on resize and
12695         paint, so they get put in the correct place.
12696
12697 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
12698
12699         * ColorDialogs.cs: The small color panels are now handled by
12700           SmallColorControl. This fixes drawing of the focus rectangle
12701           and adds a 3D border.
12702
12703 2005-05-03  Peter Bartok  <pbartok@novell.com>
12704
12705         * Control.cs: Modified version of Jonathan Chamber's fix for
12706           double-buffering
12707
12708 2005-05-03  Jackson Harper  <jackson@ximian.com>
12709
12710         * ListView.cs: Remove redraw variable. Control now handles whether
12711         or not a redraw needs to be done, and will only raise the paint
12712         event if redrawing is needed.
12713
12714 2005-05-03  Jackson Harper  <jackson@ximian.com>
12715
12716         * Splitter.cs: No decorations for the splitter form. Cache the
12717         hatch brush.
12718
12719 2005-05-03  Jackson Harper  <jackson@ximian.com>
12720
12721         * TreeView.cs: Use dashed lines to connect nodes. Use the
12722         ControlPaint method for drawing the focus rect instead of doing
12723         that in treeview.
12724
12725 2005-05-02  Peter Bartok  <pbartok@novell.com>
12726
12727         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
12728
12729 2005-04-29  Jackson Harper  <jackson@ximian.com>
12730
12731         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
12732         entire image buffer. Just clear the clipping rectangle.
12733
12734 2005-04-29  Jackson Harper  <jackson@ximian.com>
12735
12736         * ThemeWin32Classic.cs: Don't draw list view items that are
12737         outside the clipping rectangle.
12738
12739 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
12740
12741         * ListBox.cs: added horizontal item scroll
12742
12743 2005-04-29  Jackson Harper  <jackson@ximian.com>
12744
12745         * ThemeWin32Classic.cs: Remove some old debug code that was
12746         causing flicker with the new double buffering code.
12747
12748 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
12749
12750         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
12751         behave like combobox and comboboxlist (still not sure if this is
12752         correct though).
12753
12754 2005-04-28  Jackson Harper  <jackson@ximian.com>
12755
12756         * ThemeWin32Classic.cs: Don't fill the middle of progress
12757         bars. This fills areas outside of the clip bounds that don't need
12758         to be filled.
12759
12760 2005-04-28  Jackson Harper  <jackson@ximian.com>
12761
12762         * Control.cs: Don't expose functionality to touch the image buffers.
12763         * ProgressBar.cs:
12764         * ListView.cs: We do not need to (and no longer can) manipulate
12765         the image buffers directly. All of this is handled by Control.
12766
12767 2005-04-28  Peter Bartok  <pbartok@novell.com>
12768
12769         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
12770           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
12771           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
12772
12773 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
12774
12775         * Combobox:
12776                 - Adjust control's height for non-simple comboboxes (bug fix)
12777                 - Remove dead code
12778         * MenuAPI.cs: remove unused var
12779         * ScrollBar.cs: remove unsed var
12780                  
12781         * ListBox.cs: unselect items when clearing
12782
12783 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
12784
12785         * ListControl.cs: honors OnPositionChanged and default Selected Item
12786         * ListBox.cs: unselect items when clearing
12787
12788 2005-04-27  Jackson Harper  <jackson@ximian.com>
12789
12790         * X11Keyboard.cs: Initialize a default keyboard and give a warning
12791         if a "correct" keyboard is not found. This will make us not crash,
12792         but might give some users bad keyboard layouts...seems to be the
12793         same thing rewind does.
12794
12795 2005-04-27  Jackson Harper  <jackson@ximian.com>
12796
12797         * BindingManagerBase.cs: Attach the current/position changed
12798         handlers to their respective events.
12799
12800 2005-04-27  Jackson Harper  <jackson@ximian.com>
12801
12802         * Control.cs: Make sure that the first WM_PAINT does a full draw,
12803         not just a blit.
12804         * ThemeWin32Classic.cs: Don't fill the background for picture
12805         boxes. This could overright user drawing.
12806         * ComboBox.cs: Just fill the clipping rect not the entire client
12807         rect when drawing the background. This prevents pieces of the
12808         image buffer from getting overwritten and is theoretically faster.
12809
12810 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
12811
12812         * ComboBox.cs: Databinding support fixes, fire missing events
12813         * ListControl.cs: implement missing methods and properties, fixes
12814         * ThemeWin32Classic.cs: Databiding support on Drawing
12815         * CheckedListBox.cs: Databinding support fixes, fire missing events
12816         * ListBox.cs: Databinding support fixes, fire missing events
12817         
12818 2005-04-25  Peter Bartok  <pbartok@novell.com>
12819
12820         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
12821
12822 2005-04-25  Jackson Harper  <jackson@ximian.com>
12823
12824         * TreeView.cs: Use the horizontal scrollbars height not width when
12825         determining how much of the client area is available.
12826
12827 2005-04-25  Jackson Harper  <jackson@ximian.com>
12828
12829         * Control.cs: Double buffering is handled differently now. As per
12830         the spec, the extra buffer is created in the WM_PAINT message and
12831         passed down to the control's drawing code.
12832         * GroupBox.cs:
12833         * Label.cs:
12834         * CheckBox.cs:
12835         * ProgressBar.cs:
12836         * RadioButton.cs:
12837         * ColorDialog.cs:
12838         * ComboBox.cs:
12839         * PropertyGridView.cs:
12840         * UpDownBase.cs:
12841         * MessageBox.cs:
12842         * MenuAPI.cs:
12843         * ListView.cs:
12844         * ButtonBase.cs:
12845         * SizeGrip.cs:
12846         * ScrollBar.cs:
12847         * ListBox.cs:
12848         * TrackBar.cs:
12849         * ToolBar.cs:
12850         * PictureBox.cs:
12851         * DateTimePicker.cs:
12852         * StatusBar.cs:
12853         * TreeView.cs: Update to new double buffering system.
12854         * MonthCalendar.cs: Uncomment block, as Capture is now
12855         working. Update to new double buffering
12856         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
12857         * PaintEventArgs.cs: New internal method allows us to set the
12858         graphics object. This is used for double buffering.
12859         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
12860         rectangle. The internal paint_area var has been removed from
12861         StatusBar. The clipping rect should be used instead.
12862         * Theme.cs: Give the PictureBox drawing method a clipping rect.
12863         * TabPage.cs: The RefreshTabs method was removed, so just call the
12864         tab controls Refresh method now.
12865         * TabControl.cs: Update to new double buffering. Make sure the
12866         handle is created before sizing the tab pages, otherwise we will
12867         get stuck in a loop.
12868
12869 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
12870
12871         * LinkLabel.cs: Fix typo, bug #74719; patch
12872           from Borja Sanchez Zamorano
12873
12874 2005-04-22  Jackson Harper  <jackson@ximian.com>
12875
12876         * TreeNode.cs: Implement Handle stuff.
12877         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
12878
12879 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
12880
12881         * DataGridTextBoxColumn.cs: call base constructors, fixes
12882         * GridColumnStylesCollection.cs: missing events, methods, and functionality
12883         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
12884         * DataGridTableStyle.cs: implements create default column styles
12885         * DataGridBoolColumn.cs: which types can handle
12886         * DataGrid.cs: missing methods, fixes, new functionality
12887         * DataGridColumnStyle.cs: fixes
12888
12889 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
12890         * FolderBrowserDialog.cs:
12891         - Use a thread to fill the TreeView
12892         - Adjusted some sizes
12893
12894 2005-04-19  Peter Bartok  <pbartok@novell.com>
12895
12896         * LinkLabel.cs: (Re-)create the pieces when setting the Text
12897           property. Fixes #74360.
12898
12899 2005-04-19  Jackson Harper  <jackson@ximian.com>
12900
12901         * XEventQueue.cs: Lock when getting the lockqueue size.
12902         * PictureBox.cs: Call base OnPaint
12903         
12904 2005-04-19  Peter Bartok  <pbartok@novell.com>
12905
12906         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
12907           messages were no longer being processed (this broke BeginInvoke)
12908
12909           
12910 2005-04-18  Jackson Harper  <jackson@ximian.com>
12911
12912         * TreeView.cs: buglet that caused node images to get drawn
12913         regardless of whether or not they were in the clipping rectangle.
12914
12915 2005-04-18  Jackson Harper  <jackson@ximian.com>
12916
12917         * CurrencyManager.cs: There are four rules for GetItemProperties:
12918         - If the type is an array use the element type of the array
12919         - If the type is a typed list, use the type
12920         - If the list contains an Item property that is not an object, use
12921         that property
12922         - use the first element of the list if there are any elements in
12923         the list.
12924         
12925 2005-04-17  Jackson Harper  <jackson@ximian.oom>
12926
12927         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
12928         click. This handles offsets for scrolling properly and reduces
12929         memory. Also fixed GetNode to not offset now that TopNode works
12930         properly.
12931         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
12932         
12933 2005-04-17  Jackson Harper  <jackson@ximian.com>
12934
12935         * CursorConverter.cs: Initial implementation.
12936
12937 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
12938
12939         * ListControl.cs: work towards complex data binding support on ListControl
12940         * CurrencyManager.cs: work towards complex data binding support on ListControl
12941         * ListBox.cs: work towards complex data binding support on ListControl
12942
12943
12944 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
12945
12946         * GridTableStylesCollection.cs: fixes name and constructor
12947         * DataGridTableStyle.cs: fixes
12948         * DataGridBoolColumn.cs: fixes names and constructors
12949         * DataGrid.cs: define methods and properties. Some init implementations
12950         * DataGridCell.cs: define methods and properties. Some init implementations
12951         * GridTablesFactory.cs: Define methods and properties
12952
12953 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
12954
12955         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
12956         graphics port changes.  We still want the coordinates in global screen
12957         coordinates.
12958
12959 2005-04-14  Jackson Harper  <jackson@ximian.com>
12960
12961         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
12962         check plus minus or checkbox clicks unless those features are enabled.
12963
12964 2005-04-14  Jackson Harper  <jackson@ximian.com>
12965
12966         * TreeView.cs: Add methods for setting the top and bottom visible
12967         nodes. TreeNode::EnsureVisible uses these methods.
12968         * TreeNode.cs: Implement EnsureVisible
12969
12970 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
12971
12972         * Form.cs: Pospone menu assignation if the window has not been created yet
12973         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
12974         size and position
12975
12976 2005-04-12  Jackson Harper  <jackson@ximian.com>
12977
12978         * TreeView.cs: Set the TopNode properly when scrolling
12979         occurs. This has the added benifit of reducing the amount of
12980         walking that needs to be done when drawing. Also removed an old
12981         misleading TODO.
12982         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
12983         
12984 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
12985
12986         * Timer.cs: fixes interval setting when the timer is already enabled
12987         
12988 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
12989
12990         * FolderBrowserDialog.cs: First approach
12991
12992 2005-04-09  Peter Bartok  <pbartok@novell.com>
12993
12994         * FolderBrowserDialog: Added
12995
12996 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
12997
12998         * LinkLabel.cs: move drawing code into the theme
12999         * ThemeWin32Classic.cs: drawing code and painting background bugfix
13000         * Theme.cs: define DrawLinkLabel method
13001
13002 2005-04-05  Jackson Harper  <jackson@ximian.com>
13003
13004         * BindingContext.cs: Use weak references so these bad actors don't
13005         stay alive longer then they need to.
13006
13007 2005-04-05  Jackson Harper  <jackson@ximian.com>
13008
13009         * ListControl.cs: Basic implementation of complex databinding.
13010         * ComboBox.cs:
13011         * ListBox.cs: Add calls to ListControl databinding methods.
13012
13013 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
13014
13015         * FileDialog.cs:
13016           - Don't change PopupButtonState to Normal when the
13017             PopupButton gets pressed several times.
13018           - Renamed ButtonPanel to PopupButtonPanel
13019
13020 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
13021
13022         * ColorDialog.cs: Use cached objects instead of creating them
13023         * LinkLabel.cs: Use cached objects instead of creating them
13024         * Splitter.cs: Use cached objects instead of creating them
13025         * FontDialog.cs: Use cached objects instead of creating them
13026         * PropertyGridView.cs: Use cached objects instead of creating them
13027         * MessageBox.cs: Use cached objects instead of creating them
13028         * FileDialog.cs: Use cached objects instead of creating them
13029         * ThemeWin32Classic.cs: Use cached objects instead of creating them
13030         * TreeView.cs: Use cached objects instead of creating them
13031         
13032 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
13033
13034         * Control.cs: use Equals to compare the font since no == op
13035         * ScrollBar.cs: use Equals to compare the font since no == op
13036
13037 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
13038
13039         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
13040
13041 2005-04-01  Jackson Harper  <jackson@ximian.com>
13042
13043         * Binding.cs: Implement IsBinding.
13044         * BindingManagerBase.cs:
13045         * PropertyManager.cs:
13046         * CurrencyManager.cs: Add IsSuspended property.
13047
13048 2005-04-01  Jackson Harper  <jackson@ximian.com>
13049
13050         * Binding.cs: Had some IsAssignableFrom calls backwards.
13051
13052 2005-04-01  Jackson Harper  <jackson@ximian.com>
13053
13054         * Binding.cs: Handle null data members when pulling data.
13055         * PropertyManager.cs: Handle the data member being a property that
13056         does not exist.
13057
13058 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
13059
13060         * DataGridTextBoxColumn.cs: fixes signature
13061         * DataGrid.cs: calls right constructor
13062
13063 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
13064
13065         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
13066         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
13067         * GridTableStylesCollection.cs: implements GridTableStylesCollection
13068         * DataGridTableStyle.cs: implements DataGridTableStyle
13069         * DataGridBoolColumn.cs: implements DataGridBoolColumn
13070         * DataGridTextBox.cs: implements DataGridTextBox
13071         * DataGridColumnStyle.cs: implements DataGridColumnStyle
13072
13073 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
13074
13075         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
13076
13077 2005-03-29  Peter Bartok  <pbartok@novell.com>
13078
13079         * Application.cs:
13080           - Properly implemented CompanyName property
13081           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
13082             returns a path that includes CompanyName, ProductName and
13083             Version (fixes bug #70330)
13084
13085 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
13086
13087         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
13088           fixes bug #72588.
13089
13090 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
13091
13092         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
13093         
13094           - Added ReadOnly CheckBox
13095           - Further refactoring: moved some code from Open-/SaveFileDialog
13096             to FileDialog
13097
13098 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
13099
13100         * OpenFileDialog.cs: Fixed CheckFileExists
13101         * FileDialog.cs:
13102           Moved FileView and DirComboBox outside FileDialog class.
13103           They can now be used outside FileDialog
13104
13105 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
13106
13107         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
13108         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
13109
13110 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
13111
13112         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
13113           - Added missing CreatePrompt property in SaveDialog
13114           - Overall SaveDialog handling should be better now
13115           - Added non standard ShowHiddenFiles property
13116           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
13117           - Added InitialDirectory and RestoreDirectory support
13118
13119 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
13120
13121         * FileDialog.cs: Made dirComboBox usable
13122
13123 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
13124
13125         * FileDialog.cs: Added Filter support (case sensitiv)
13126
13127 2005-03-24  Jackson Harper  <jackson@ximian.com>
13128
13129         * TabControl.cs: Need a couple more pixels for the lines.
13130
13131 2005-03-23  Jackson Harper  <jackson@ximian.com>
13132
13133         * TabControl.cs: Give the tab page focus when it is selected.
13134
13135 2005-03-23  Jackson Harper  <jackson@ximian.com>
13136
13137         * TabControl.cs: Account for the drawing of tabs borders when
13138         invalidating. If the slider was clicked dont do click detection on
13139         the tabs.
13140
13141 2005-03-23  Jackson Harper  <jackson@ximian.com>
13142
13143         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
13144
13145 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
13146
13147         * CategoryGridEntry.cs: Added
13148         * GridItem.cs: Added helper properties
13149         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
13150         * GridEntry.cs: Updated code for collection
13151         * PropertyGrid.cs: Cleaned up some formatting
13152         * PropertyGridView.cs: Added drop down functionality for enums.
13153         * GridItemCollection.cs: Added enumerator logic
13154         * PropertyGridEntry.cs: Added
13155
13156 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
13157
13158         * FileDialog.cs:
13159           - Removed unnecessary commented code
13160           - Fixed handling for entering the filename manually in the combobox
13161
13162 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
13163
13164         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
13165
13166 2005-03-18  Peter Bartok  <pbartok@novell.com>
13167
13168         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
13169           them being touching the border
13170
13171 2005-03-18  Peter Bartok  <pbartok@novell.com>
13172
13173         * TextControl.cs: Quick hack to center text better
13174
13175 2005-03-18  Peter Bartok  <pbartok@novell.com>
13176
13177         * ControlPaint.cs:
13178           - Don't throw NotImplemented exceptions, just print a notice once
13179             instead (requested by Miguel). This makes running existing SWF
13180             apps a bit easier
13181         * Control.cs:
13182           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
13183           - Added context menu trigger on right click
13184         * Panel.cs: Trigger invalidate on resize
13185         * StatusBar.cs:
13186           - Removed old double-buffer drawing
13187           - Added ResizeRedraw style to force proper update of statusbar
13188         * ListView.cs:
13189           - Removed debug output
13190         * ThemeWin32Classic.cs:
13191           - Fixed drawing of status bar, now draws Text property if there
13192             are no defined panels
13193
13194 2005-03-18  Jackson Harper  <jackson@ximian.com>
13195
13196         * ImageList.cs: When the image stream is set pull all the images
13197         from it.
13198         * ImageListStreamer.cs: Implement reading image list streams.
13199
13200 2005-03-18  Peter Bartok  <pbartok@novell.com>
13201
13202         * ThemeWin32Classic.cs (DrawPictureBox):
13203           - Fixed calculations for centered drawing
13204           - Fixed drawing for normal mode, not scaling the image on normal
13205
13206 2005-03-18  Peter Bartok  <pbartok@novell.com>
13207
13208         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
13209           textbox
13210         * FileDialog.cs:
13211           - Made Open/Save button the accept button for FileDialog
13212           - Tied the cancel button to the IButtonControl cancel button
13213           - Save/Open now properly builds the pathname
13214           - Now handles user-entered text
13215           - Preventing crash on right-click if no item is selected
13216           - Fixed Text property, now uses contents of textbox
13217           - Fixed SelectedText property, now just returns the text part that
13218             is selected in the text box
13219
13220 2005-03-18  Jackson Harper  <jackson@ximian.com>
13221
13222         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
13223         rect, make sure to de-adjust the interior rect after drawing the
13224         tab text.
13225
13226 2005-03-18  Peter Bartok  <pbartok@novell.com>
13227
13228         * MenuAPI.cs: Remove menu *before* executing selected action to
13229           prevent the menu from 'hanging around'
13230           
13231 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
13232
13233         * XplatUIOSX.cs: Implemented WorkingArea property
13234
13235 2005-03-17  Peter Bartok  <pbartok@novell.com>
13236
13237         * XplatUIX11.cs: Fixed menu coord calculations
13238         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
13239           for calculating offsets
13240
13241 2005-03-17  Peter Bartok  <pbartok@novell.com>
13242
13243         * Hwnd.cs: Do not consider menu presence for default client
13244           rectangle location/size
13245         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
13246           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
13247           translation functions
13248         * FileDialog.cs: Fixed (what I presume is a) typo
13249
13250 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
13251
13252         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
13253           X access (avoids X-Async errors)
13254
13255 2005-03-16  Jackson Harper  <jackson@ximian.com>
13256
13257         * TabControl.cs: Raise the SelectedIndexChanged event.
13258
13259 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
13260
13261         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
13262           - Removed vertical ToolBar and replaced it with a custom panel
13263             (desktop and home button already work)
13264           - Added Help button (some controls get resized or relocated then)
13265           - Draw correct text depending on Open or Save.
13266           - Fixed some typos...
13267
13268 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
13269
13270         * ScrollBar.cs:
13271           - Only change Maximum and Minimum when need it (bug fix)
13272
13273 2005-03-15  Peter Bartok  <pbartok@novell.com>
13274
13275         * Form.cs: Use Handle for icon, to trigger creation if
13276           the window does not yet exist
13277         * Control.cs:
13278           - CanSelect: Slight performance improvement
13279           - Focus(): Preventing possible recursion
13280           - Invalidate(): Removed ControlStyle based clear flag setting
13281           - WM_PAINT: fixed logic for calling OnPaintBackground
13282           - WM_ERASEBKGND: Fixed logic, added call to new driver method
13283             EraseWindowBackground if the control doesn't paint background
13284         * XplatUIWin32.cs:
13285           - Moved EraseWindowBackground() method to internal methods
13286           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
13287             is sent via SendMessage on BeginPaint call on Win32
13288         * XplatUIX11.cs:
13289           - Added EraseWindowBackground() method
13290           - No longer sends WM_ERASEBKGND on .Expose, but on call to
13291             PaintEventStart, which more closely matches Win32 behaviour
13292           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
13293           - Fixed SetFocus() to properly deal with client and whole windows
13294         * Hwnd.cs: Added ErasePending property
13295         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
13296         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
13297
13298 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
13299
13300         * XplatUIOSX.cs:
13301           - Fix hard loop when timers exist.
13302           - Fix bugs with middle and right click for 3 button mice.
13303
13304 2005-03-11  Peter Bartok  <pbartok@novell.com>
13305
13306         * XplatUIX11.cs:
13307           - get_WorkingArea: Need to call X directly, GetWindowPos only
13308             returns cached data now
13309           - Added sanity check to GetWindowPos hwnd usage
13310
13311 2005-03-11  Jackson Harper  <jackson@ximian.com>
13312
13313         * BindingManagerBase.cs: This method isn't used anymore as
13314         PullData now updates the data in the control.
13315
13316 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
13317
13318         * Form.cs: fixes menu drawing on X11
13319         * MenuAPI.cs:  fixes menu drawing on X11
13320
13321 2005-03-11  Peter Bartok  <pbartok@novell.com>
13322
13323         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
13324           from Jonathan Gilbert; should fix bug #73606
13325         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
13326           in Screen coordinates. Thanks, Jordi.
13327         * Form.cs: Added missing attribute
13328
13329 2005-03-11  Peter Bartok  <pbartok@novell.com>
13330
13331         * Form.cs:
13332           - Rudimentary Mdi support
13333           - Removed outdated FormParent code
13334           - Implemented lots of missing properties and methods, still missing
13335             transparency support
13336           - Added missing attributes
13337           - Implemented support for MaximumBounds
13338           - Added firing of various events
13339         * XplatUI.cs: Added SetIcon() method
13340         * XplatUIDriver.cs: Added SetIcon() abstract
13341         * XplatUIOSX.cs: Stubbed out SetIcon() method
13342         * XplatUIX11.cs:
13343           - Implemented SetIcon() support
13344           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
13345           - Switched to unix line endings
13346         * XplatUIWin32.cs:
13347           - Made POINT internal so for can access it as part of MINMAX
13348           - Implemented SetIcon() support
13349           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
13350             native Mdi support again, might have to go managed)
13351         * Control.cs: Now fires the StyleChanged event
13352         * MdiClient.cs: Added; still mostly empty
13353
13354 2005-03-10  Peter Bartok  <pbartok@novell.com>
13355
13356         * SaveFileDialog.cs: Added emtpy file
13357
13358 2005-03-08  Peter Bartok  <pbartok@novell.com>
13359
13360         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
13361           in turn triggers OnCreateContro) when creating a handle for the
13362           first time.
13363         * TextControl.cs: Fixed endless loop in certain cases when
13364           replacing the current selection
13365
13366 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
13367
13368         * ScrollBar.cs:
13369           - Honors NewValue changes in Scroll events allowing apps to change it
13370           - Adds First and Last Scroll events
13371           - Fixes Thumb events
13372
13373 2005-03-07  Peter Bartok  <pbartok@novell.com>
13374
13375         * Hwnd.cs: Added DefaultClientRectangle property
13376         * XplatUI.cs: Now using the X11 driver Where() method, which provides
13377           more detailed debug information
13378         * XplatUIX11.cs:
13379           - Fixed size-change feedback loop, where we would pull an old size
13380             off the queue and mistakenly change our window's size to an
13381             earlier value
13382           - Now compressing ConfigureNotify events, to reduce looping and
13383             redraw issues
13384         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
13385           is called
13386
13387 2005-03-07  Jackson Harper  <jackson@ximian.com>
13388
13389         * Binding.cs: Push data pushes from data -> property. Check if the
13390         property is readonly when attempting to set it.
13391
13392 2005-03-07  Jackson Harper  <jackson@ximian.com>
13393
13394         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
13395         instead of IsSubclassOf. Pulling data now sets the value on the
13396         control.
13397         * PropertyManager.cs:
13398         * CurrencyManager.cs: Just need to pull data when updating now,
13399         because PullData will set the value on the control.
13400
13401 2005-03-04  Jackson Harper  <jackson@ximian.com>
13402
13403         * Binding.cs: Implement data type parsing and converting on pulled
13404         data. TODO: Are there more ways the data can be converted?
13405
13406 2005-03-04  Jackson Harper  <jackson@ximian.com>
13407
13408         * Binding.cs: Support <Property>IsNull checks. Also bind to the
13409         controls Validating method so we can repull the data when the
13410         control loses focus.
13411
13412 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
13413
13414         * ColumnHeader.cs:
13415           - Fixes null string format
13416           
13417         * ListView.cs:
13418           - Adds enum type checks
13419           - Fixes redrawing and recalc need after changing some properties
13420           - Fixes on focus_item set after the event
13421           - Fixes adding columns after the control has been created
13422           
13423         * ThemeWin32Classic.cs:
13424           - Fixes CheckBox focus rectangle
13425           - Fixes ColumnHeader drawing
13426
13427
13428 2005-03-03  Jackson Harper  <jackson@ximian.com>
13429
13430         * Binding.cs: Bind to <Property>Changed events so we can detect
13431         when properties are changed and update the data.
13432
13433 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
13434
13435         * ImageList.cs:
13436           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
13437           - Fixes ImageList constructor with ImageList container
13438           - Fixes image scaling (wrong parameters at DrawImage)
13439
13440 2005-02-02  Jackson Harper  <jackson@ximian.com>
13441
13442         * Binding.cs: Make property searches case-insensitive. Eliminate
13443         some duplicated code.
13444
13445 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
13446
13447         * ComboBox.cs:
13448                 - Handle focus event
13449                 - Fix scrollbar events
13450                 - Discard highlighted item if remove it
13451                 - Fixes SelectedItem with strings
13452
13453 2005-03-01  Peter Bartok  <pbartok@novell.com>
13454
13455         * Control.cs:
13456           - Fixed Visible property, now follows (once again) parent chain
13457             to return false if any control in the chain is visible=false
13458           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
13459           - Fixed several places where is_visible instead of Visible was used
13460           - Implemented FIXME related to focus selection when setting focused
13461             control to be invisible
13462
13463         * XplatUIWin32.cs: Now using proper method to find out if window is
13464           visible. Thanks to Jordi for pointing it out
13465
13466 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
13467
13468         * ComboBox.cs: show/hide scrollbar instead of creating it
13469
13470 2005-02-27  Jackson Harper  <jackson@ximian.com>
13471
13472         * CurrencyManager.cs: Add PositionChanged stuff.
13473
13474 2005-02-27  Peter Bartok  <pbartok@novell.com>
13475
13476         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
13477         * XplatUIOSX.cs: Added GetMenuOrigin() stub
13478         * XplatUIWin32.cs: Implemented GetMenuOrigin()
13479         * XplatUIX11.cs:
13480           - Implemented GetMenuDC()
13481           - Implemented GetMenuOrigin()
13482           - Implemented ReleaseMenuDC()
13483           - Implemented generation of WM_NCPAINT message
13484           - Implemented generation and handling of WM_NCCALCSIZE message
13485         * Form.cs: Added debug helper message for Jordi's menu work
13486         * Hwnd.cs:
13487           - Modified ClientRect property; added setter, fixed getter to handle
13488             setting of ClientRect
13489           - Added MenuOrigin property
13490
13491 2005-02-26  Peter Bartok  <pbartok@novell.com>
13492
13493         * XplatUIX11.cs:
13494           - Destroys the caret if a window that's being destroyed contains it
13495           - Ignores expose events coming from the X11 queue for windows that
13496             already are destroyed
13497           - Now uses the proper variable for handling DestroyNotify, before we
13498             marked the wrong window as destroyed
13499           - Improved/added some debug output
13500
13501 2005-02-26  Peter Bartok  <pbartok@novell.com>
13502
13503         * X11Keyboard.cs: Fixes to work on 64bit systems
13504
13505 2005-02-26  Peter Bartok  <pbartok@novell.com>
13506
13507         * Control.cs:
13508           - Now calling OnHandleDestroyed from DestroyHandle()
13509             instead of Dispose()
13510           - Removed bogus call to controls.Remove() from DestroyHandle()
13511
13512 2005-02-26  Peter Bartok  <pbartok@novell.com>
13513
13514         * Control.cs: Properly destroy child windows when our handle is
13515           destroyed
13516
13517 2005-02-25  Peter Bartok  <pbartok@novell.com>
13518
13519         * XplatUI.cs:
13520           - Added 'DriverDebug' define to allow tracing XplatUI API calls
13521           - Alphabetized Static Methods and Subclasses
13522
13523         * XplatUIX11.cs:
13524           - Added XException class to allow custom handling of X11 exceptions
13525           - Created custom X11 error handler, tied into XException class
13526           - Added support for MONO_XEXCEPTIONS env var to allow the user
13527             to either throw an exception on X errors or continue running
13528             after displaying the error
13529           - Added handling of DestroyNotify message
13530           - Added handler for CreateNotify message (still disabled)
13531           - Improved (tried to at least) Where method to provide file and lineno
13532         * X11Structs.cs:
13533           - Added XErrorHandler delegate
13534           - Added XRequest enumeration (to suppor translation of errors)
13535
13536 2005-02-25  Jackson Harper  <jackson@ximian.com>
13537
13538         * PropertyManager.cs: Implement editing features
13539         * CurrencyManager.cs:
13540         * Binding.cs: First attempt at UpdateIsBinding
13541         * BindingManagerBase.cs: Call UpdateIsBinding before
13542         pushing/pulling data.
13543
13544 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
13545
13546         * MenuAPI.cs: Respect disabled items
13547         * ThemeWin32Classic.cs
13548                 - Caches ImageAttributes creation for DrawImageDisabled
13549                 - Fixes vertical menu line drawing
13550                 - Draws disabled arrows in disable menu items
13551
13552 2005-02-24  Peter Bartok  <pbartok@novell.com>
13553
13554         * Hwnd.cs:
13555           - Added UserData property to allow associating arbitrary objects
13556             with the handle
13557           - Fixed leak; now removing Hwnd references from static windows array
13558         * XplatUIWin32.cs:
13559           - Fixed Graphics leak in PaintEventEnd
13560           - Removed usage of HandleData, switched over to Hwnd class
13561         * HandleData.cs: Removed, obsoleted by Hwnd.cs
13562
13563 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
13564
13565         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
13566         * ScrollBar.cs: Fixes bug
13567         * TrackBar.cs: removes death code, clipping, mimize refreshes,
13568          keyboard navigation enhancements
13569
13570 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
13571
13572         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
13573         * GroupBox.cs: Add control styles
13574         * Label.cs: Add control styles
13575         * UpDownBase.cs: Add control styles
13576         * ListBox.cs: Add control styles
13577         * XplatUIWin32.cs: Fixes wrong parameter order
13578
13579
13580 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
13581
13582         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
13583
13584 2005-02-23  Jackson Harper  <jackson@ximian.com>
13585
13586         * PropertyManager.cs: Implement property binding. This doesn't
13587         seem to work yet though as (I think) there are some bugs in
13588         System.ComponentModel.PropertyDescriptor.
13589         * BindingContext.cs: Use new PropertyManager constructor.
13590
13591 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
13592
13593         * ProgressBar.cs: use clip region in ProgressBar
13594         * ThemeWin32Classic.cs: use clip region in ProgressBar
13595
13596 2004-02-22  Jackson Harper  <jackson@ximian.com>
13597
13598         * BindingsCollection.cs: Remove some debug code.
13599
13600 2005-02-22  Jackson Harper  <jackson@ximian.com>
13601
13602         * BindingContext.cs:
13603         * ControlBindingsCollection.cs:
13604         * CurrencyManager.cs:
13605         * Binding.cs:
13606         * BindingManagerBase.cs: Initial implementation
13607         * BindingsCollection.cs: Add an internal contains method that the
13608         BindingManagerBase uses to ensure bindings aren't added twice to
13609         the collection.
13610         * PropertyManager.cs: Stubbed out.
13611         * Control.cs:
13612         * ContainerControl.cs: Hook up databinding
13613         
13614 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
13615
13616         * XplatUIOSX.cs:
13617           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
13618           Fixed Invalidate/Update chain.
13619           Fixed tons of other minor bugs (this is almost a complete rewrite).
13620
13621 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
13622
13623         * ComboBox.cs: do subcontrol creation when the control is created
13624
13625 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
13626
13627         * Label.cs: fixes image drawing (image and imagelist)
13628         * ThemeWin32Classic.cs: cache brushes
13629         
13630 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
13631
13632         * Form.cs: Move menu drawing code to Theme class
13633         * ComboBox.cs: Move ComboBox drawing code to Theme class
13634         * MenuItem.cs: Move menu drawing code to Theme class
13635         * MenuAPI.cs: Move menu drawing code to Theme class
13636         * ThemeWin32Classic.cs: New methods
13637         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
13638         * ListBox.cs: Move Listbox drawing code to Theme class
13639         * Theme.cs: New methods
13640
13641 2005-02-20  Peter Bartok  <pbartok@novell.com>
13642
13643         * Control.cs:
13644           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
13645             only process mnemonics on those)
13646           - Fixed event sequence for key handling; first calling
13647             ProcessKeyEventArgs now
13648         * TextBoxBase.cs:
13649           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
13650             for processing non-character keys
13651           - Fixed WM_CHAR to generate proper event sequence before processing
13652         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
13653           generation
13654
13655 2005-02-19  Peter Bartok  <pbartok@novell.com>
13656
13657         * UserControl.cs: Added TextChanged event; added attributes
13658         * SizeGrip.cs: Implemented resizing and optional display of grip
13659         * Form.cs: Fixed attribute
13660         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
13661           Changed meaning of ScrollWindow bool argument; instead of the
13662           clear attribute (which will be true usually anyway), it gives the
13663           option of moving child controls as well.
13664         * XplatUIX11.cs:
13665           - Changed to match new ScrollWindow argument
13666           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
13667             now handles the implicit parent window a WM puts around us
13668         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
13669           to work)
13670         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
13671         * TreeView.cs: Adjusted to new ScrollWindow arguments
13672
13673 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
13674
13675         * Form.cs: Menu integration with non-client area
13676         * MenuItem.cs: Menu integration with non-client area
13677         * MenuAPI.cs: Menu integration with non-client area
13678
13679 2005-02-18  Peter Bartok  <pbartok@novell.com>
13680
13681         * MethodInvoker.cs: Added
13682         * MdiLayout.cs: Added
13683         * SendKeys.cs: Started implementation
13684         * ErrorIconAlignment.cs: Added
13685
13686 2005-02-18  Peter Bartok  <pbartok@novell.com>
13687
13688         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
13689         * Form.cs: Added handling for Menu-related Non-client messages
13690
13691 2005-02-17  Peter Bartok  <pbartok@novell.com>
13692
13693         * UpDownBase.cs: Fixed typo, compilation errors
13694         * DomainUpDown.cs: Fixed attribute value
13695
13696 2005-02-16  Miguel de Icaza  <miguel@novell.com>
13697
13698         * UpDownBase.cs: Attach entry events.
13699         Propagate events.
13700         Add ForeColor property, Focused, InterceptArrowKeys (interception
13701         does not work yet).
13702
13703 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
13704
13705         * Form.cs:
13706                 - Redraw non client are on Setmenu
13707                 - Calc proper menu starting point
13708
13709 2005-02-17  Peter Bartok  <pbartok@novell.com>
13710
13711         * Application.cs: Fixed message_filter check
13712
13713 2005-02-17  Peter Bartok  <pbartok@novell.com>
13714
13715         * Application.cs: Now calls registered message filters
13716         * DockStyle.cs: Fixed attribute
13717         * Form.cs: Fixed attribute
13718         * Menu.cs: Fixed attribute
13719         * ToolTip.cs: Fixed attribute
13720         * TreeNode.cs: Added missing attributes and arranged in regions
13721         * PropertyGrid.cs: Fixed signatures
13722         * TreeNodeCollection.cs: Added attributes
13723         * Splitter.cs: Added missing attributes; arranged into regions
13724         * TabPage.cs: Added missing attributes; arranged into regions
13725         * TextBoxBase.cs: Added missing attributes
13726         * TextBox.cs: Added missing attributes
13727         * ArrangeDirection.cs: Added missing attributes
13728         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
13729         * ToolBarButton.cs: Fixed attributes
13730         * AnchorStyles.cs: Fixed attribute
13731         * TrackBar.cs: Fixed attributes
13732         * TabControl.cs: Added missing attributes and arranged into regions
13733         * ToolBar.cs: Fixed attribute
13734         * StatusBar.cs: Fixed signature, organized into regions and added
13735           attributes
13736         * StatusBarPanel.cs: Fixed attributes
13737         * ContentsResizedEventArgs.cs: Implemented
13738         * ContentsResizedEventHandler.cs: Implemented
13739         * DateBoldEventArgs.cs: Implemented
13740         * DateBoldEventHandler.cs: Implemented
13741         * UpDownEventArgs.cs: Implemented
13742         * UpDownEventHandler.cs: Implemented
13743         
13744 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
13745
13746         * Form.cs: first Menu NC refactoring
13747         * MenuAPI.cs: first Menu NC refactoring
13748         
13749 2005-02-16  Peter Bartok  <pbartok@novell.com>
13750
13751         * ImeMode.cs: Added missing attributes
13752         * Menu.cs: Fixed attribute
13753         * GroupBox.cs: Fixed attribute
13754         * Label.cs: Fixed attribute
13755         * ColorDialog.cs (RunDialog): Removed TODO attribute
13756         * ComboBox.cs: Fixed attributes
13757         * ListControl.cs: Added missing attributes
13758         * PropertyGrid.cs: Fixed attributes
13759         * Control.cs: Fixed attributes
13760         * ListViewItem.cs: Added TypeConverter attribute
13761         * NotifyIcon.cs: Fixed attributes
13762         * ListView.cs: Fixed attributes
13763         * ButtonBase.cs: Fixed attribute
13764         * ImageList.cs: Added missing attributes
13765         * ContainerControl.cs: Fixed signature
13766         * CheckedListBox.cs: Fixed attribute; added missing attributes
13767         * Panel.cs: Fixed attributes
13768         * PropertyTabChangedEventArgs.cs: Added missing attribute
13769         * PropertyValueChangedEventArgs.cs: Added missing attribute
13770         * Binding.cs: Fixed attribute
13771         * ListViewItemConverter: Implemented ListViewSubItemConverter class
13772         * ListBox.cs: Fixed attribute; added missing attributes;
13773         * ScrollableControl.cs: Added missing attributes
13774         * PictureBox.cs: Added missing attributes; implemented missing property
13775         * DateTimePicker.cs: Added missing attributes
13776         * Theme.cs (ToolWindowCaptionHeight): Fixed type
13777         * MonthCalendar.cs: Fixed attributes
13778         * StatusBarPanel.cs: Added missing attributes
13779         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
13780
13781 2005-02-16  Peter Bartok  <pbartok@novell.com>
13782
13783         * TextBoxBase.cs: The previous method to enforce height yet remember
13784           the requested high was less than ideal, this is an attempt to do
13785           it better.
13786         * Control.cs: Added comment about possible problem
13787         * Copyright: Updated format
13788         * GridItemType.cs: Fixed swapped values
13789
13790 2005-02-15  Jackson Harper  <jackson@ximian.com>
13791
13792         * BaseCollection.cs: Use property so we never access an
13793         uninitialized list. Also initialize the list in the property.
13794
13795 2005-02-15  Peter Bartok  <pbartok@novell.com>
13796
13797         * GroupBox.cs (ProcessMnemonic): Implemented
13798         * Label.cs (ProcessMnemonic): Implemented
13799         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
13800           hotkeys
13801
13802 2005-02-15  Peter Bartok  <pbartok@novell.com>
13803
13804         * RadioButton.cs (ProcessMnemonic): Implemented
13805         * CheckBox.cs (ProcessMnemonic): Implemented
13806         * Control.cs:
13807           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
13808             handling
13809           - Added internal method to allow calling ProcessMnemonic from other
13810             controls
13811         * ContainerControl.cs:
13812           - Started support for handling validation chain handling
13813           - Implemented ProcessMnemonic support
13814           - Added Select() call to Active, to make sure the active control
13815             receives focus
13816         * Form.cs: Setting toplevel flag for Forms (this was lost in the
13817           FormParent rewrite)
13818         * ThemeWin32Classic.cs:
13819           - DrawCheckBox(): Fixed stringformat to show hotkeys
13820           - DrawRadioButton(): Fixed stringformat to show hotkeys
13821         * CommonDialog.cs: Removed WndProc override, not needed
13822
13823 2005-02-14  Peter Bartok  <pbartok@novell.com>
13824
13825         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
13826           missed those in the rewrite
13827
13828 2005-02-14  Miguel de Icaza  <miguel@novell.com>
13829
13830         * NumericUpDown.cs (Increment, ToString): Add.
13831         (DecimalPlaces): implement.
13832         
13833         Add attributes.
13834         
13835         * UpDownBase.cs: Add the designer attributes.
13836
13837 2005-02-13  Peter Bartok  <pbartok@novell.com>
13838
13839         * Panel.cs: Removed border_style, now in Control
13840         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
13841           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
13842
13843 2005-02-13  Peter Bartok  <pbartok@novell.com>
13844
13845         * MouseButtons.cs: Added missing attributes
13846         * XplatUIStructs.cs: Added enumeration for title styles
13847         * LeftRightAlignment.cs: Added missing attributes
13848         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
13849           it compatible with Graphics.FromHwnd()
13850         * SelectedGridItemChangedEventArgs.cs: Fixed property type
13851         * Keys.cs: Added missing attributes
13852         * SelectionRange.cs: Added missing attributes
13853         * SelectionRangeConverter.cs: Added
13854         * XplatUI.cs:
13855           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
13856             ReleaseMenuDC methods
13857           - Renamed ReleaseWindow to UngrabWindow
13858           - Added proper startup notice to allow version identification
13859         * Form.cs:
13860           - Added missing attributes
13861           - Removed FormParent concept
13862         * Label.cs: Removed border_style field, now in Control
13863         * RadioButton.cs: Now properly selects RadioButton when focus is
13864           received
13865         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
13866         * Control.cs:
13867           - Added missing attributes
13868           - Added borderstyle handling
13869           - Removed FormParent concept support
13870           - Fixed calls to XplatUI to match changed APIs
13871           - Fixed bug that would case us to use disposed Graphics objects
13872           - Removed unneeded internal methods
13873           - PerformLayout(): Fixed to handle DockStyle.Fill properly
13874           - SelectNextControl(): Fixed to properly check common parents
13875         * TextBoxBase.cs: Removed border_style field (now in Control)
13876         * MessageBox.cs:
13877           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
13878             fixed calculations for form size
13879           - Added support for localized strings and icons
13880           - Improved form size calculations, added border
13881         * ListView.cs: Removed border_style field (now in Control)
13882         * X11Structs.cs: Moved several structs from X11 driver here
13883         * X11Keyboard.cs: Changed debug message
13884         * Application.cs: Removed FormParent concept support
13885         * CommonDialog.cs:
13886           - Resetting end_modal flag
13887           - Removed FormParent concept support
13888         * NativeWindow.cs: Removed FormParent concept support
13889         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
13890           Client area and Non-Client whole window to allow support for WM_NC
13891           messages
13892         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
13893           prevent using it until it supports Hwnd as per Geoff Norton's request
13894         * ToolBar.cs: Fixed drawing, was not doing proper drawing
13895         * PictureBox.cs: Removed border_style field, now in Control
13896         * XplatUIWin32.cs: Added new driver methods
13897
13898 2005-02-12  Peter Bartok  <pbartok@novell.com>
13899
13900         * OpacityConverter.cs: Implemented
13901         * Hwnd.cs: Internal class to support drivers that need to emulate
13902           client area/non-client area window behaviour
13903
13904 2005-02-11  Peter Bartok  <pbartok@novell.com>
13905
13906         * KeysConverter.cs: Implemented
13907
13908 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
13909
13910         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
13911         * LinkLabel: Added missing attributes
13912         * MainMenu.cs: fixes ToString
13913         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
13914         * ListBox.cs: fixes event position
13915         * TrackBar.cs: adds missing attributes and events
13916         
13917 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
13918
13919         * MenuItem.cs: Use SystemInformation and bug fixes
13920         * MenuAPI.cs: Use SystemInformation and bug fixes
13921
13922 2005-02-09  Jackson Harper  <jackson@ximian.com>
13923
13924         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
13925         their keystate otherwise things like VK_MENU get stuck "on".
13926
13927 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
13928
13929         * ListBox.cs: Fixes AddRange bug
13930         
13931 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
13932
13933         * ProgressBar.cs
13934                 - Add missing attributes
13935                 - Add missing method
13936                 
13937         * CheckedListBox.cs: Added missing attributes
13938                 - Add missing attributes
13939                 - Remove extra method
13940         
13941         * ComboBox.cs: Added missing attributes
13942         * VScrollBar.cs: Added missing attributes
13943         * ScrollBar.cs:  Added missing attributes
13944         * ListBox.cs: Fixes signature, add missing consts
13945         * LinkArea.cs:   Added missing attributes
13946         
13947
13948 2005-02-08  Peter Bartok  <pbartok@novell.com>
13949
13950         * Menu.cs: Added missing attributes
13951         * MainMenu.cs: Added missing attributes
13952         * GroupBox.cs: Added missing attributes
13953         * Label.cs: Added missing attributes
13954         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
13955         * ColorDialog.cs:
13956           - Added Instance and Options properties
13957           - Added missing attributes
13958         * Cursor.cs: Made Serializable
13959         * NotifyIcon: Added missing attributes
13960         * MenuItem.cs: Added missing attributes
13961         * TextBoxBase.cs: Implemented AppendText() and Select() methods
13962         * Panel.cs: Added Missing attributes
13963         * MonthCalendar.cs: Fixed CreateParams
13964
13965 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
13966         
13967         * LinkLabel.cs:
13968                 - Fixes signature
13969                 - Fixes issues with links
13970                 - Adds the class attributes
13971
13972 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
13973         
13974         * ComboBox.cs:
13975                 - Fixes button when no items available in dropdown
13976                 - Fixes repainting problems
13977                 - Adds the class attributes
13978                 
13979 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
13980
13981         * XplatUIOSX.cs: Detect the menu bar and title bar height from
13982         the current theme.  Cache these on startup.
13983
13984 2005-02-07  Jackson Harper  <jackson@ximian.com>
13985
13986         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
13987         the scrollbar buttons when they are depressed.
13988
13989 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
13990
13991         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
13992         Get the display size from the main displayid.  We currently dont
13993         support multiple display configurations.
13994
13995 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
13996
13997         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
13998
13999 2005-02-07  Miguel de Icaza  <miguel@novell.com>
14000
14001         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
14002
14003 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
14004
14005         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
14006
14007 2005-02-04  Jackson Harper  <jackson@ximian.com>
14008
14009         * ThemeWin32Classic.cs: Respect the clipping rect when
14010         drawing. Only fill the intersection of clips and rects so there
14011         isn't a lot of large fills.
14012         * ScrollBar.cs: Pass the correct clipping rect to the theme
14013         engine. Remove some debug code.
14014
14015 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
14016         
14017         * DateTimePicker.cs:
14018                 - Fixed crash on DateTime.Parse, use Constructor instead
14019
14020 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
14021         
14022         * MenuItem.cs:
14023         * MenuAPI.cs:
14024                 - Owner draw support (MeasureItem and DrawItem)
14025
14026 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
14027         
14028         *  Menu.cs:
14029                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
14030                 - Fixes MenuItems.Add range
14031         * MenuItem.cs:
14032                 - MergeMenu and Clone and CloneMenu functions
14033
14034 2005-02-03  Jackson Harper  <jackson@ximian.com>
14035
14036         * ScrollBar.cs: Make abstract
14037         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
14038         is abstract.
14039
14040 2005-02-03  Jackson Harper  <jackson@ximian.com>
14041
14042         * ScrollBar.cs: First part of my scrollbar fixups. This removes
14043         all the unneeded refreshes and uses invalidates with properly
14044         computed rects.
14045
14046 2005-02-03  Peter Bartok  <pbartok@novell.com>
14047
14048         * ComponentModel.cs: Added
14049         * IDataGridEditingService.cs: Added
14050         * Timer.cs: Added missing attributes
14051         * ToolTip.cs: Added missing attributes
14052
14053 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
14054
14055         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
14056
14057 2005-02-03  Peter Bartok  <pbartok@novell.com>
14058
14059         * ListBox.cs: Added missing attributes
14060
14061 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
14062         
14063         * ListBox.cs:
14064                 - Fixes font height after font change
14065                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
14066                 
14067 2005-02-02  Peter Bartok  <pbartok@novell.com>
14068
14069         * HandleData.cs: Introduced static methods to allow class
14070           to be more self-contained and track it's own HandleData objects
14071         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
14072           HandleData to use new static methods
14073
14074 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
14075
14076         * Combobox.cs:
14077                 - Fixes default size and PreferredHeight
14078                 - Missing events
14079                 - ObjectCollection.Insert implementation
14080                 
14081         * ListControl.cs
14082                 - Fixes signature
14083         * ListBox.cs:
14084                 - Several fixes
14085                 - ObjectCollection.Insert implementation
14086                 - No selection after clean
14087                 - Small fixes
14088
14089 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
14090
14091         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
14092
14093 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
14094
14095         * Combobox.cs:
14096                 - Caches ItemHeight calculation for OwnerDrawVariable
14097                 - Handles dropdown properly
14098                 - Fixes several minor bugs
14099
14100 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
14101
14102         * ListBox.cs:
14103                 - Fixes 71946 and 71950
14104                 - Fixes changing Multicolumn on the fly
14105                 - Fixes keyboard navigation on Multicolumn listboxes
14106
14107 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
14108         
14109         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
14110         crash reporter log.
14111
14112 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
14113
14114         * XplatUIOSX.cs: Allow applications to actually exit.
14115
14116 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
14117
14118         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
14119         their parent at creation time rather than lazily later.  Fixes a major
14120         regression we were experiencing.
14121
14122 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
14123
14124         * ThemeWin32Classic.cs: more date time picker painting fixes
14125         * DateTimePicker.cs: more monthcalendar drop down fixes
14126         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
14127
14128 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
14129
14130         * ScrollBar.cs:
14131                 - When moving the thumb going outside the control should stop the moving
14132                 - Adds the firing of missing events
14133                 - Fixes no button show if Size is not specified
14134                 - End / Home keys for keyboard navigation
14135
14136 2005-01-30  Peter Bartok  <pbartok@novell.com>
14137
14138         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
14139           sanity check to prevent theoretical loop
14140         * XplatUIWin32.cs (SetVisible): Removed debug output
14141         * XplatUIX11.cs (SystrayChange): Added sanity check
14142         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
14143         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
14144           behaviour, valid until the X11 client window rewrite is done
14145         * TextBox.cs (ctor): Setting proper default foreground and background
14146           colors
14147
14148 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
14149
14150         * Theme: Added DrawDateTimePicker to interface
14151         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
14152         * DateTimePicker.cs: Created (still needs keys and painting code)
14153         * DateTimePickerFormat.cs: added
14154         * MonthCalendar.cs: fixed CreateParams for popup window mode
14155           
14156 2005-01-29  Peter Bartok  <pbartok@novell.com>
14157
14158         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
14159           this should also the calculations for ligher/darker
14160         * Theme.cs: Fixed defaults for ScrollBar widths/heights
14161
14162 2005-01-29  Peter Bartok  <pbartok@novell.com>
14163
14164         * ArrangeDirection.cs: Added
14165         * ArrangeStartingPositon.cs: Added
14166         * SystemInformation.cs: Implemented
14167         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
14168           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
14169           used by SystemInformation class
14170         * X11Strucs.cs: Added XSizeHints structure
14171         * MenuAPI.cs:
14172           - Fixed CreateParams to make sure the menu window is always visible
14173           - TrackPopupMenu: Added check to make sure we don't draw the
14174             menu offscreen
14175
14176 2005-01-29  Peter Bartok  <pbartok@novell.com>
14177
14178         * HandleData.cs: Added method for altering invalid area
14179         * TextBoxBase.cs: Implemented TextLength
14180
14181 2005-01-28  Peter Bartok  <pbartok@novell.com>
14182
14183         * XplatUIX11.cs: Improvement over last patch, not sending
14184           the WM_PAINT directly anymore, instead we scroll any pending
14185           exposed areas and let the system pick out the WM_PAINT later
14186
14187 2005-01-28  Peter Bartok  <pbartok@novell.com>
14188
14189         * SWF.csproj: Deleted, no longer used. Instead,
14190           Managed.Windows.Forms/SWF.csproj should be used
14191         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
14192           directly, to avoid a potential race condition with the next
14193           scroll
14194
14195 2005-01-28  Peter Bartok  <pbartok@novell.com>
14196
14197         * XplatUI.cs: Made class internal
14198
14199 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
14200
14201         * CheckedListBox.cs:
14202                 - Draw focus
14203                 - Fixed Drawing
14204                 - Missing methods and events
14205
14206 2005-01-27  Peter Bartok  <pbartok@novell.com>
14207
14208         * Application.cs (Run): Don't use form if we don't have one
14209
14210 2005-01-27  Peter Bartok  <pbartok@novell.com>
14211
14212         * TextBoxBase.cs (get_Lines): Fixed index off by one error
14213
14214 2005-01-27  Peter Bartok  <pbartok@novell.com>
14215
14216         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
14217         * GridItem.cs: Added; Patch by Jonathan S. Chambers
14218         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
14219         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
14220         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
14221         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
14222         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
14223         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
14224         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
14225         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
14226         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
14227         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
14228
14229 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
14230
14231         * Combobox.cs:
14232                 - Draw focus on Simple Combobox
14233                 - Fixes drawing issues
14234                 - fixes 71834
14235
14236 2005-01-27  Peter Bartok  <pbartok@novell.com>
14237
14238         * Form.cs:
14239           - Place window in default location, instead of hardcoded 0/0
14240           - Send initial LocationChanged event
14241         * Control.cs:
14242           - UpdateBounds after creation to find out where the WM placed us
14243           - Make sure that if the ParentForm changes location the Form
14244             is notified
14245         * XplatUIX11.cs: XGetGeometry will not return the coords relative
14246             to the root, but to whatever the WM placed around us.
14247             Translate to root coordinates before returning toplevel
14248             coordinates
14249         * XplatUIWin32.cs: Removed debug output
14250         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
14251           flag to GetWindowPos, to allow translation of coordinates on X11
14252
14253 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
14254
14255         * ListBox.cs: connect LostFocus Event
14256
14257 2005-01-27  Peter Bartok  <pbartok@novell.com>
14258
14259         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
14260           XplatUIX11.cs: Extended the Systray API
14261         * Form.cs: Removed debug output
14262         * Application.cs: Fixed focus assignment, always need to call
14263           XplatUI.Activate() since Form.Activate() has rules that may
14264           prevent activation
14265         * NotifyIcon.cs: Should be complete now
14266         * ToolTip.cs: Worked around possible timer bug
14267
14268 2005-01-27  Jackson Harper  <jackson@ximian.com>
14269
14270         * TabControl.cs:
14271         - Only invalidate the effected tabs when the
14272         selected index changes. This reduces drawing and gets rid of some
14273         flicker.
14274         - Only refresh if the tabs need to be shifted, otherwise only
14275         invalidate the slider button.
14276         - On windows the tabs are not filled to right if the slider is
14277         visible.
14278         
14279 2005-01-27  Jackson Harper  <jackson@ximian.com>
14280
14281         * TabControl.cs: Only refresh on mouseup if we are showing the
14282         slider. Also only invalidate the button whose state has changed.
14283
14284 2005-01-26  Peter Bartok  <pbartok@novell.com>
14285
14286         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
14287         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
14288           and SystrayRemove() methods
14289         * XplatUIOSX.cs: Stubbed Systray methods
14290         * XplatUIX11.cs:
14291           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
14292             methods
14293           - Fixed broken XChangeProperty calls (marshalling messed up things)
14294         * X11Structs.cs: Added enums and structs required for Size hinting
14295         * NotifyIcon.cs: Added & implemented
14296
14297 2005-01-26  Jackson Harper  <jackson@ximian.com>
14298
14299         * TabControl.cs: Space vertically layed out tabs properly.
14300
14301 2005-01-26  Peter Bartok  <pbartok@novell.com>
14302
14303         * Form.cs (CreateClientParams): Always set the location to 0,0
14304           since we're a child window.
14305
14306         * Control.cs (SetVisibleCore): Always explicitly setting the location
14307           of a toplevel window, apparently X11 doesn't like to move windows
14308           while they're not mapped.
14309
14310 2005-01-26  Jackson Harper  <jackson@ximian.com>
14311
14312         * TabControl.cs: Implement FillToRight size mode with vertically
14313         rendered tabs.
14314
14315 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
14316
14317         * ControlPaint.cs, ThemeWin32Classic.cs
14318                 - Fixes DrawFocusRectangle
14319
14320 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
14321
14322         * MenuAPI.cs:
14323                 - MenuBar tracking only starts when item is first clicked
14324                 - Fixes menu hidding for multiple subitems
14325                 - Unselect item in MenuBar when item Executed
14326                 - Fixes bug 71495
14327
14328 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
14329
14330         * ListControl.cs:
14331                 - IsInputKey for ListBox
14332         * ListBox.cs:
14333                 - Focus item
14334                 - Shift and Control item selection
14335                 - Implement SelectionMode.MultiExtended
14336                 - Fixes RightToLeft
14337         * ComboBox.cs:
14338                 - IsInputKey implemented
14339                 - Do not generate OnTextChangedEdit on internal txt changes
14340                 
14341 2005-01-23  Peter Bartok  <pbartok@novell.com>
14342
14343         * AccessibleObject.cs: Partially implemented Select()
14344         * MonthCalendar.cs: Added missing attributes and events
14345         * Form.cs: Fixed CreateParams behaviour, now controls derived from
14346           form can properly override CreateParams.
14347         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
14348           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
14349           Control performs Invalidate & Update
14350         * NativeWindow (CreateHandle): Added special handling for Form
14351           and Form.FormParent classes to allow overriding of From.CreateParams
14352         * Control.cs:
14353           - ControlNativeWindow: Renamed 'control' variable to more intuitive
14354             name 'owner'
14355           - ControlNativeWindow: Added Owner property
14356           - Removed usage of Refresh() on property changes, changed into
14357             Invalidate(), we need to wait until the queue is processed for
14358             updates, direct calls might cause problems if not all vars for
14359             Paint are initialized
14360           - Added call to UpdateStyles() when creating the window, to set any
14361             styles that CreateWindow might have ignored.
14362           - Added support for Form CreateParent overrides to UpdateStyles()
14363         * MessageBox.cs: Removed no longer needed FormParent override stuff,
14364           CreateParams are now properly overridable
14365         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
14366           CreateParams are now properly overridable
14367
14368 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
14369
14370         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
14371         OnTextBoxChanged.
14372
14373         Capture LostFocus and OnTextBoxChanged.  The later introduces a
14374         recursive invocation that I have not figured out yet.
14375
14376         Reset the timer when not using (it was accumulating).
14377
14378
14379         (OnTextBoxChanged): Set UserEdit to true here to track whether the
14380         user has made changes that require validation.
14381
14382         Reset changing to avoid loops.
14383
14384 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
14385
14386         * NumericUpDown.cs: Display value at startup.
14387
14388         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
14389         ValidateEditText.
14390
14391         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
14392         filled in.  Added some basic parsing of text.
14393
14394         Still missing the OnXXX method overrides, and figuring out the
14395         events that must be emitted.
14396
14397         * UpDownBase.cs: Handle UserEdit on the Text property.
14398         
14399 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
14400
14401         * ComboBox.cs:
14402           - Fixes IntegralHeight
14403           - ToString method
14404
14405 2005-01-21  Jackson Harper  <jackson@ximian.com>
14406
14407         * TabControl.cs: Set the SelectedIndex property when SelectedTab
14408         is set so that the page visibility is updated and the tabs are
14409         sized correctly.
14410
14411 2005-01-21  Jackson Harper  <jackson@ximian.com>
14412
14413         * TabControl.cs: Use cliping rectangle for blitting. Give the
14414         theme the clipping rect so we can do clipping while
14415         drawing. Remove some debug code.
14416
14417 2005-01-21  Jackson Harper  <jackson@ximian.com>
14418
14419         * TabPage.cs: Add a new method so tab pages can force the tab
14420         control to recalculate the tab page sizes.
14421         * TabControl.cs: UpdateOwner needs to make the tab control recalc
14422         sizes.
14423
14424 2005-01-20  Jackson Harper  <jackson@ximian.com>
14425
14426         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
14427
14428 2005-01-20  Jackson Harper  <jackson@ximian.com>
14429
14430         * TreeView.cs: Set the bounds for nodes properly. They were
14431         getting screwed up when checkboxes were not enabled, but images
14432         were.
14433
14434 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
14435
14436         * ListBox.cs:
14437                 - Owner draw support
14438                 - Fixes
14439                 
14440 2005-01-20  Jackson Harper  <jackson@ximian.com>
14441
14442         * XplatUIStructs.cs: More misc keys
14443         * X11Keyboard.cs: Ignore some control keys.
14444
14445 2005-01-20  Jackson Harper  <jackson@ximian.com>
14446
14447         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
14448         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
14449
14450 2005-01-19  Peter Bartok  <pbartok@novell.com>
14451
14452         * Control.cs: Un-selecting the control when it is loosing focus
14453
14454 2005-01-19  Jackson Harper  <jackson@ximian.com>
14455
14456         * TreeView.cs: Hook up to the text controls leave event so we can
14457         end editing when the users clicks outside the text box.
14458         
14459 2005-01-19  Jackson Harper  <jackson@ximian.com>
14460
14461         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
14462         get set in the conversion array.
14463
14464 2005-01-19  Peter Bartok  <pbartok@novell.com>
14465
14466         * Application.cs (ModalRun): Added a call to CreateControl to ensure
14467           focus is properly set
14468         * Button.cs:
14469           - Added missing attributes
14470           - removed styles, those are already set in the base class
14471         * ButtonBase.cs:
14472           - Added missing attributes
14473           - Added clip window styles
14474         * CheckBox.cs: Added missing attributes
14475         * CommonDialog.cs:
14476           - FormParentWindow.CreateParams: Added required clip styles
14477         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
14478           also filters modifier keys
14479         * MessageBox.cs:
14480           - Added assignment of Accept and Cancel button to enable Enter
14481             and Esc keys in MessageBox dialogs
14482           - FormParentWindow.CreateParams: Added required clip styles
14483         * RadioButton.cs: Added missing attributes
14484         * TextControl.cs: No longer draws selection if control does not
14485           have focus
14486         * TextBoxBase.cs:
14487           - Now draws simple rectangle around test area to make it obvious
14488             there's a control. This is a hack until we properly support borders
14489           - A few simple fixes to support selections better, now erases selected
14490             text when typing, and resets selection when using movement keys
14491
14492 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
14493
14494         * UpDownBase.cs: Added some new properties.
14495
14496         * DomainUpDown.cs: Implement a lot to get my test working.
14497
14498 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
14499
14500         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
14501
14502 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
14503
14504         * OSXStructs (WindowAttributes): Fixed csc complaints
14505
14506 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
14507
14508         * XplayUIOSX.cs:
14509           OSXStructs.cs: Initial refactor to move enums and consts into
14510           OSXStructs and use them in the driver for greater readability.
14511
14512 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
14513
14514         * XplatUIOSX.cs: Initial support for Standard Cursors.
14515         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
14516
14517 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
14518
14519         * ComboBox.cs: ability to change style when the ctrl is already
14520         created, missing methods and events, bug fixes, signature fixes
14521
14522 2005-01-19  Peter Bartok  <pbartok@novell.com>
14523
14524         * Cursors.cs (ctor): Added ctor to fix signature
14525
14526 2005-01-18  Peter Bartok  <pbartok@novell.com>
14527
14528         * Button.cs: Implemented DoubleClick event
14529         * ButtonBase.cs:
14530           - Fixed keyboard handling to behave like MS, where the press of
14531             Spacebar is equivalent to a mousedown, and the key release is
14532             equivalent to mouseup. Now a spacebar push will give the same
14533             visual feedback like a mouse click.
14534           - Added missing attributes
14535           - Added ImeModeChanged event
14536           - Added support for generating DoubleClick event for derived classes
14537         * CheckBox.cs:
14538           - Implemented DoubleClick event
14539           - Added missing attributes
14540         * CommonDialog.cs: Added missing attribute
14541         * ContextMenu.cs: Added missing attributes
14542         * RadioButton.cs:
14543           - AutoChecked buttons do not allow to be unselected when clicked
14544             (otherwise we might end up with no selected buttons in a group)
14545           - Added missing attributes
14546           - Implemented DoubleClickEvent
14547         * ThreadExceptionDialog.cs: Enabled TextBox code
14548
14549 2005-01-18  Peter Bartok  <pbartok@novell.com>
14550
14551         * Form.cs: Removed debug output
14552         * Button.cs: Added support for DoubleClick method
14553
14554 2005-01-18  Peter Bartok  <pbartok@novell.com>
14555
14556         * Form.cs:
14557           - Added method to parent window that allows triggering size
14558             calculations when a menu is added/removed
14559           - set_Menu: Cleaned up mess from early days of Form and Control,
14560             now properly triggers a recalc when a menu is added/removed
14561           - Added case to select form itself as focused form if no child
14562             controls exist
14563           - Added PerformLayout call when showing dialog, to ensure properly
14564             placed controls
14565         * Control.cs:
14566           - Select(): Made internal so Form can access it
14567           - Focus(): Only call Xplat layer if required (avoids loop), and sets
14568             status
14569         * Application.cs (Run): Removed hack and calls PerformLayout instead
14570           to trigger calculation when Form becomes visible
14571
14572 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
14573
14574         * ComboBox.cs: fixes for ownerdraw
14575
14576 2005-01-18  Peter Bartok  <pbartok@novell.com>
14577
14578         * TextControl.cs:
14579           - Sentinel is no longer static, each Document gets it's own, this
14580             avoids locking or alternatively overwrite problems when more
14581             than one text control is used simultaneously.
14582           - Switched to use Hilight and HilightText brushes for text selection
14583
14584         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
14585
14586 2005-01-18  Peter Bartok  <pbartok@novell.com>
14587
14588         * Control.cs:
14589           - Hooked up the following events:
14590                 o ControlAdded
14591                 o ControlRemoved
14592                 o HandleDestroyed
14593                 o ImeModeChanged
14594                 o ParentChanged
14595                 o TabStopChanged
14596                 o Invalidated
14597                 o SystemColorsChanged
14598                 o ParentFontChanged
14599                 o Move
14600           - Removed debug output
14601           - Added a call to the current theme's ResetDefaults when a color change
14602             is detected
14603         * Form.cs: Now setting the proper ImeMode
14604         * Theme.cs: Defined a method to force recreation of cached resources
14605           and rereading of system defaults (ResetDefaults())
14606         * ThemeWin32Classic.cs: Added ResetDefaults() stub
14607
14608 2005-01-17  Peter Bartok  <pbartok@novell.com>
14609
14610         * Control.cs: Added missing attributes
14611
14612 2005-01-17  Jackson Harper  <jackson@ximian.com>
14613
14614         * TreeNode.cs: Implement editing. Add missing properties selected
14615         and visible.
14616         * TreeView.cs: Implement node editing. Also some fixes to use
14617         Invalidate (invalid area) instead of Refresh when selecting.
14618
14619 2005-01-17  Peter Bartok  <pbartok@novell.com>
14620
14621         * Control.cs:
14622           - Implemented InvokeGotFocus() method
14623           - Implemented InvokeLostFocus() method
14624           - Implemented InvokePaint() method
14625           - Implemented InvokePaintBackground() method
14626           - Implemented InvokeClick() method
14627           - Implemented FindForm() method
14628           - Implemented RectangleToClient() method
14629           - Implemented ClientToRectangle() method
14630           - Implemented ResetBackColor() method
14631           - Implemented ResetCursor() method
14632           - Implemented ResetFont() method
14633           - Implemented ResteForeColor() method
14634           - Implemented ResetImeMode() method
14635           - Implemented ResetLeftToRight() method
14636           - Implemented ResetText() method
14637           - Implemented Scale() methods
14638           - Implemented ScaleCore() method
14639           - Implemented Update() method
14640           - Removed unused variables
14641           - Stubbed AccessibilityNotifyClients and
14642             ControlAccessibleObject.NotifyClients() methods (dunno what to do
14643             with those yet)
14644           - Now setting proper default for RightToLeft property
14645           - Fixed bug in SetClientSizeCore that would cause windows to get
14646             really big
14647           - Now sending Click/DoubleClick events
14648           - Now selecting controls when left mouse button is clicked on
14649             selectable control
14650         * AccessibleEvents.cs: Added
14651         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
14652         * XplatUIOSX.cs: Stubbed UpdateWindow() method
14653         * XplatUIWin32.cs: Implemented UpdateWindow() method
14654         * XplatUIX11.cs: Implemented UpdateWindow() method
14655         * Form.cs: Removed stray semicolon causing CS0162 warning
14656         * ThemeWin32Classic.cs: Fixed unused variable warnings
14657         * ScrollableControl.cs: Now calls base method for ScaleCore
14658         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
14659           style to avoid interference with internal click handler (which is
14660           different than standard Control click handling)
14661         * RadioButton.cs:
14662           - Now unchecks all sibling radio buttons when control is
14663             selected (Fixes #68756)
14664           - Removed internal tabstop variable, using the one inherited from
14665             Control
14666
14667 2005-01-17  Jackson Harper  <jackson@ximian.com>
14668
14669         * NavigateEventArgs.cs: Fix base type.
14670         * LinkLabel.cs: Sig fix
14671         
14672 2005-01-17  Jackson Harper  <jackson@ximian.com>
14673
14674         * TreeView.cs: Only invalidate the effected nodes bounds when
14675         selecting nodes.
14676
14677 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
14678
14679         * XplatUIWin32.cs: fixes Win32 marshaling
14680         * XplatUIX11.cs: fixes method signature
14681
14682 2005-01-17  Peter Bartok  <pbartok@novell.com>
14683
14684         * XplatUIX11.cs: Clean up resources when we no longer need them
14685
14686 2005-01-17  Peter Bartok  <pbartok@novell.com>
14687
14688         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
14689           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
14690           and DestroyCursor() methods.
14691         * Cursor.cs: Partially implemented, now supports standard cursors;
14692           still contains some debug code
14693         * Cursors.cs: Implemented class
14694         * Control.cs:
14695           - WndProc(): Added handling of WM_SETCURSOR message, setting the
14696             appropriate cursor
14697           - Implemented Cursor property
14698           - Replaced break; with return; more straightforwar and possibly
14699             faster
14700           - Now properly setting the result for WM_HELP
14701         * X11Structs.cs: Added CursorFontShape enum
14702         * XplatUIStructs.cs:
14703           - Added StdCursor enum (to support DefineStdCursor() method)
14704           - Added HitTest enum (to support sending WM_SETCURSOR message)
14705         * XplatUIX11.cs:
14706           - Now sends the WM_SETCURSOR message
14707           - Implemented new cursor methods
14708         * XplatUIOSX.cs: Stubbed new cursor methods
14709         * XplatUIWin32.cs:
14710           - Implemented new cursor methods
14711           - Added GetSystemMetrics function and associated enumeration
14712
14713 2005-01-15  Peter Bartok  <pbartok@novell.com>
14714
14715         * Control.cs:
14716           - WndProc(): Now handles EnableNotifyMessage
14717           - SelectNextControl(): Fixed bug where if no child or sibling
14718             controls exist we looped endlessly
14719
14720 2005-01-14  Jackson Harper  <jackson@ximian.com>
14721
14722         * TreeView.cs: Recalculate the tab pages when a new one is added
14723         so that the proper bounding rects are created.
14724
14725 2005-01-14  Jackson Harper  <jackson@ximian.com>
14726
14727         * TreeView.cs: Draw a gray box instead of a grip in the lower
14728         right hand corner when there are both horizontal and vertical
14729         scroll bars.
14730
14731 2005-01-14  Jackson Harper  <jackson@ximian.com>
14732
14733         * Control.cs: When erasing backgrounds use FromHwnd instead of
14734         FromHdc when there is a NULL wparam. This occurs on the X driver.
14735         * XplatUIX11.cs: Set the wparam to NULL.
14736
14737 2005-01-13  Jackson Harper  <jackson@ximian.com>
14738
14739         * PictureBox.cs: Implement missing methods (except ToString, need
14740         to test that on windows) and events. When visibility is changed we
14741         need to redraw the image because the buffers are killed. When size
14742         is changed refresh if the sizemode needs it.
14743
14744 2005-01-13  Peter Bartok  <pbartok@novell.com>
14745
14746         * Control.cs (SelectNextControl): Was using wrong method to select
14747           a control
14748
14749 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
14750
14751         * ComboBox.cs: fixes dropstyle
14752
14753 2005-01-13  Peter Bartok  <pbartok@novell.com>
14754
14755         * Form.cs:
14756           - Implemented Select() override
14757           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
14758           - Now sets keyboard focus on startup
14759         * Control.cs (SelectNextControl): Now properly handles directed=true
14760         * TextBoxBase.cs:
14761           - WndProc: Now passes tab key on to base if AcceptTabChar=false
14762           - Added (really bad) focus rectangle (mostly for testing)
14763         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
14764           to enforce redraw on focus changes
14765         * ContainerControl.cs:
14766           - Fixed detection of Shift-Tab key presses
14767           - Fixed traversal with arrow keys
14768         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
14769           gonna keep this or if it's complete yet
14770         
14771 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
14772
14773         * ComboBox.cs: missing properties, fixes
14774
14775 2005-01-13  Peter Bartok  <pbartok@novell.com>
14776
14777         * Panel.cs (ctor): Setting Selectable window style to off
14778         * Splitter.cs (ctor): Setting Selectable window style to off
14779         * GroupBox.cs (ctor): Setting Selectable window style to off
14780         * Label.cs (ctor): Setting Selectable window style to off
14781
14782 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
14783
14784         * UpDownBase.cs (InitTimer): If the timer has been already
14785         created, enable it.
14786
14787         Use a TextBox instead of a Label.
14788
14789 2005-01-12  Jackson Harper  <jackson@ximian.com>
14790
14791         * TreeView.cs: Refresh the tree after sorting the nodes. Always
14792         draw the connecting node lines (when ShowLines is true).
14793         * TreeNode.cs: The nodes index can now be updated. This is used
14794         when a node collection is sorted.
14795         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
14796         insert or an existing unsorted node collection can be sorted.
14797         
14798 2005-01-12  Peter Bartok  <pbartok@novell.com>
14799
14800         * ContainerControl.cs: Implemented ProcessDialogKeys()
14801
14802 2005-01-12  Peter Bartok  <pbartok@novell.com>
14803
14804         * Control.cs:
14805           - Implemented SelectNextControl() method
14806           - Several focus related bug fixes
14807           - Fixed Docking calculations to match MS documentation and
14808             behaviour
14809
14810 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
14811
14812         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
14813         bug fixes
14814
14815 2005-01-12  Peter Bartok  <pbartok@novell.com>
14816
14817         * Control.cs:
14818           - Fixed broken Contains() method
14819           - Implemented GetNextControl() method. Finally. This is the pre-
14820             requisite for focus handling.
14821
14822 2005-01-12  Peter Bartok  <pbartok@novell.com>
14823
14824         * OSXStrucs.cs: Added
14825
14826 2005-01-12  Peter Bartok  <pbartok@novell.com>
14827
14828         * XplatUIWin32.cs:
14829           - Removed PeekMessageFlags
14830           - Implemented SetWindowStyle() method
14831         * XplatUIStructs.cs: Added PeekMessageFlags
14832         * X11Structs: Added missing border_width field to XWindowChanges struct
14833         * XplatUIX11.cs:
14834           - PeekMessage: Now throws exception if flags which are not yet
14835             supported are passed
14836           - Implemented SetWindowStyle() method
14837           - Fixed SetZOrder to handle AfterHwnd properly
14838         * XplatUI.cs: Added SetWindowStyle() method
14839         * XplatUIDriver.cs: Added SetWindowStyle() abstract
14840         * Control.cs:
14841           - Implemented UpdateStyles() method
14842           - Implemented UpdateZOrder() method
14843         * XplatUIOSX.cs: Added SetWindowStyle() stub
14844
14845 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
14846
14847         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
14848         button mouse).
14849
14850
14851 2005-01-11  Jackson Harper  <jackson@ximian.com>
14852
14853         * TreeView.cs: Still need to draw lines to siblings even if out of
14854         the current node is out of the clip.
14855
14856 2005-01-11  Jackson Harper  <jackson@ximian.com>
14857
14858         * TreeView.cs: When setting the hbar/vbar/grip position use
14859         SetBounds so that perform layout is only called once. Also suspend
14860         and resume layout so layout is only done once for all controls.
14861         - Removed some debug fluff
14862         * SizeGrip.cs: Call base implmentation in overriding methods.
14863         - When visibility is changed the drawing buffers are killed so we
14864         need to redraw.
14865
14866 2005-01-11  Jackson Harper  <jackson@ximian.com>
14867
14868         * TreeView.cs: Calculate the open node count while drawing. This
14869         saves us an entire tree traversal for every paint operation. Use
14870         a member var for the open node count so less vars are passed around.
14871
14872 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
14873
14874         * MonthCalendar.cs:
14875         - fixed selection to use mousemove, not mouse polling on timer
14876         * ThemeWin32Classic.cs
14877         - removed redundant unused variable "no_more_content"
14878         
14879 2005-01-11  Peter Bartok  <pbartok@novell.com>
14880
14881         * XplatUIX11.cs (DoEvents): Needs to return when no more events
14882           are pending, so it now calls PeekMessage instead of GetMessage;
14883           implemented a incomplete version of PeekMessage
14884         
14885 2005-01-11  Peter Bartok  <pbartok@novell.com>
14886
14887         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
14888           I18n issues
14889         * TextBoxBase.cs: Added sending of TextChanged event
14890
14891 2005-01-10  Jackson Harper  <jackson@ximian.com>
14892
14893         * TreeView.cs: Try not to draw outside the clipping rectangle on
14894         each node element.
14895
14896 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
14897
14898         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
14899
14900 2005-01-10  Jackson Harper  <jackson@ximian.com>
14901
14902         * TreeView.cs:
14903         - Implement fast scrolling. Now only the newly
14904         exposed nodes are drawn and the old image is moved using the
14905         XplatUI::ScrollWindow method.
14906         - Factor in height of nodes when calculating whether or not the
14907         node is in the clipping rect.
14908
14909 2005-01-10  Jackson Harper  <jackson@ximian.com>
14910
14911         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
14912
14913 2005-01-10  Peter Bartok  <pbartok@novell.com>
14914
14915         * Application.cs: Added temporary hack to resolve all our resize
14916           required issues on startup. This will get fixed properly at
14917           some point in the future
14918
14919 2005-01-10  Jackson Harper  <jackson@ximian.com>
14920
14921         * SizeGrip.cs: New internal class that is used as a sizing
14922         grip control...hence the name.
14923
14924 2005-01-10  Peter Bartok  <pbartok@novell.com>
14925
14926         * Control.cs: Implemented proper TabIndex handling, now assigning
14927           a tabindex when a control is added to a container
14928         * GroupBox.cs (ctor): Now sets the Container style bit, required
14929           for Control.GetNextControl()
14930
14931 2005-01-09  Jackson Harper  <jackson@ximian.com>
14932
14933         * TextBoxBase.cs: Clear window when scrolling (fixes build).
14934
14935 2005-01-09  Peter Bartok <pbartok@novell.com>
14936
14937         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
14938           XplatUIX11.cs: Added ability to control ScrollWindow expose and
14939           an overload for ScrollWindow to allow only scrolling a rectangle
14940
14941 2005-01-09  Peter Bartok <pbartok@novell.com>
14942
14943         * Form.cs:
14944           - Implemented SetDesktopBounds method
14945           - Implemented SetDesktopLocation method
14946
14947 2005-01-08  Jackson Harper  <jackson@ximian.com>
14948
14949         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
14950         the node count has changed, this removes to VScroll::Refresh calls
14951         when drawing.
14952
14953 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
14954
14955         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
14956
14957 2005-01-07  Jackson Harper  <jackson@ximian.com>
14958
14959         * TreeNode.cs: Just update the single node when it is
14960         checked. Don't refresh after toggling, the Expand/Collapse already
14961         handles this.
14962         * TreeView.cs: Respect clipping a little more when drawing. Try
14963         not to redraw things that don't need to be redrawn. Just hide the
14964         scrollbars when they are no longer needed instead of removing
14965         them, so they don't have to be created again and again.
14966         
14967 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
14968
14969         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
14970         coordinates to window space to place the caret properly, FIXED.
14971         Implement GetWindowState & SetWindowState
14972
14973 2005-01-06  Peter Bartok <pbartok@novell.com>
14974
14975         * Form.cs:
14976           - Implemented ClientSize property
14977           - Implemented DesktopBounds property
14978           - Implemented DesktopLocation property
14979           - Implemented IsRestrictedWindow property
14980           - Implemented Size property
14981           - Implemented TopLevel property
14982           - Implemented FormWindowState property
14983         * Control.cs:
14984           - Implemented GetTopLevel() method
14985           - Implemented SetTopLevel() method
14986         * X11Structs.cs (Atom):
14987           - Added AnyPropertyType definition
14988           - Added MapState definiton and updated XWindowAttribute struct
14989         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
14990         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
14991         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
14992         * XplatUIWin32.cs:
14993           - Implemented GetWindowState() and SetWindowState() methods
14994           - Fixed Win32GetWindowLong return type
14995         * XplatUIX11.cs:
14996           - Introduced central function for sending NET_WM messages
14997           - Implemented GetWindowState() and SetWindowState() methods
14998         * TextBoxBase.cs (set_Lines):
14999           - Now uses Foreground color for text added via Text property (Duh!)
15000           - Added code to remember programmatically requested size (fixes
15001             behaviour when Multiline is set after Size)
15002           - Added AutoSize logic
15003
15004 2005-01-06  Jackson Harper  <jackson@ximian.com>
15005
15006         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
15007
15008 2005-01-06  Jackson Harper  <jackson@ximian.com>
15009
15010         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
15011         set to less then 0.
15012
15013 2005-01-06  Jackson Harper  <jackson@ximian.com>
15014
15015         * ScrollableControl.cs: Lazy init the scrollbars.
15016         
15017 2005-01-06  Jackson Harper  <jackson@ximian.com>
15018
15019         * Theme.cs: Speed up getting pens and solid brushes, by using
15020         their ARGB as a hash instead of tostring and not calling Contains.
15021
15022 2005-01-06  Peter Bartok <pbartok@novell.com>
15023
15024         * Form.cs:
15025           - Implemented OnActivated and OnDeactivate event trigger
15026           - Implemented Activate() method
15027           - Fixed ShowDialog() to activate the form that was active before
15028             the dialog was shown
15029         * XplatUIX11.cs:
15030           - Added global active_window var that tracks the currently active
15031             X11 window
15032           - Now always grabs Property changes from the root window to always
15033             catch changes on the active window property
15034           - Added code to PropertyNotify handler to send Active/Inactive
15035             messages when state changes. This puts X11 and Win32 en par on
15036             WM_ACTIVATE notifications (except for double notifications when
15037             the user clicks away from our modal window to another one of our
15038             windows)
15039
15040 2005-01-05  Jackson Harper  <jackson@ximian.com>
15041
15042         * ImageList.cs: Implment ctor
15043
15044 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
15045
15046         * XplatUIOSX.cs: Implement Activate/SetTopmost
15047
15048 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
15049
15050         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
15051
15052 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
15053
15054         * XplatUIOSX.cs: Implement GetActive/SetFocus.
15055
15056 2005-01-05  Peter Bartok <pbartok@novell.com>
15057
15058         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
15059           XplatUIOSX.cs: Added GetActive method to return the currently
15060           active window for the application (or null, if none is active)
15061         * Form.cs:
15062           - Implemented ActiveForm
15063           - Commented out owner assignment for modal dialogs (causes problems
15064             on Win32, since the owner will be disabled)
15065           - Reworked some Active/Focus handling (still incomplete)
15066         * CommonDialog.cs: Commented out owner assignment for modal dialogs
15067           (causes problems on Win32, since the owner will be disabled)
15068         * IWin32Window: Added ComVisible attribute
15069
15070 2005-01-05  Peter Bartok <pbartok@novell.com>
15071
15072         * ToolTip.cs (WndProc): Enable setting focus now that we have the
15073           required XplatUI functions.
15074
15075 2005-01-05  Peter Bartok <pbartok@novell.com>
15076
15077         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
15078           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
15079           to implement focus and activation handling; still incomplete and
15080           with debug output
15081
15082 2005-01-04  Peter Bartok <pbartok@novell.com>
15083
15084         * TextBoxBase.cs: Changed access level for Document property to
15085           match switch to internal for TextControl
15086
15087 2005-01-04  Peter Bartok <pbartok@novell.com>
15088
15089         * AccessibleObject: Added ComVisible attribute
15090
15091 2005-01-04  Jackson Harper  <jackson@ximian.com>
15092
15093         * X11Keyboard.cs: Remove unneeded var.
15094
15095 2005-01-04  Jackson Harper  <jackson@ximian.com>
15096
15097         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
15098         but PAINT.
15099         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
15100         ClientMessage. This makes apps exit cleanly (more often).
15101         
15102 2005-01-04  Jackson Harper  <jackson@ximian.com>
15103
15104         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
15105         handling focus, return correct colors and fonts,
15106         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
15107         handle selection, horizontal scrolling, and mouse interaction.
15108
15109 2005-01-04  Peter Bartok <pbartok@novell.com>
15110
15111         * ICommandExecutor.cs: Added
15112         * IDataGridColumnStyleEditingNotificationService.cs: Added
15113         * IFeatureSupport.cs: Added
15114         * IFileReaderService.cs: Added
15115         * IDataObject.cs: Added ComVisible attribute
15116         * AmbientProperties.cs: Added
15117         * BaseCollection.cs: Added missing attributes
15118         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
15119         * BaseCollection.cs: Added missing attributes
15120         * Binding.cs: Added TypeConverter attribute
15121         * BindingContext.cs: Added DefaultEvent attribute
15122         * BindingsCollection.cs: Added DefaultEvent attribute
15123         * Button.cs: Added DefaultValue attribute
15124         * DragEventArgs.cs: Added ComVisible attribute
15125         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
15126         * KeyEventArgs.cs: Added ComVisible attribute
15127         * KeyPressEventArgs.cs: Added ComVisible attribute
15128         * MouseEventArgs.cs: Added ComVisible attribute
15129         * NavigateEventArgs.cs: Added
15130         * NavigateEventHandler.cs: Added
15131         * FeatureSupport.cs: Added
15132         * OSFeature.cs: Added
15133         * Theme.cs: Added abstract Version property to support OSFeature
15134         * ThemeWin32Classic.cs: Added Version property to
15135           support OSFeature.Themes
15136         * ProgressBar.cs: Removed OnPaintBackground override, not required since
15137           the proper styles to avoid background drawing are set, also doesn't
15138           match MS signature
15139         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
15140         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
15141         * ScrollEventArgs.cs: Added ComVisible attribute
15142         * SplitterEventArgs.cs: Added ComVisible attribute
15143         * AccessibleSelection.cs: Added Flags attribute
15144         * Appearance.cs: Added ComVisible attribute
15145         * Border3DSide.cs: Added ComVisible attribute
15146         * Border3DStyle.cs: Added ComVisible attribute
15147         * BorderStyle.cs: Added ComVisible attribute
15148         * DragAction.cs: Added ComVisible attribute
15149         * ErrorBlinkStyle.cs: Added
15150         * ScrollEventType.cs: Added ComVisible attribute
15151         * AnchorStyles.cs: Added Editor attribute
15152         * DockStyle.cs: Added Editor attribute
15153         * HorizontalAlignment.cs: Added ComVisible attribute
15154         * HelpEventArgs.cs: Added ComVisible attribute
15155         * PaintEventArgs.cs: Added IDisposable
15156
15157 2005-01-04  Peter Bartok <pbartok@novell.com>
15158
15159         * TextControl.cs: Switched Line, LineTag and Document classes to
15160           internal
15161
15162 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
15163
15164         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
15165         Simple mode, fixes, IntegralHeight, etc.
15166
15167 2005-01-04  Peter Bartok <pbartok@novell.com>
15168
15169         * TextBoxBase.cs: Using proper font variable now
15170
15171 2005-01-04  Peter Bartok <pbartok@novell.com>
15172
15173         * Form.cs (ShowDialog): Set parent to owner, if provided
15174         * GroupBox.cs: Removed unused vars
15175         * TextControl.cs:
15176           - Added GetHashCode() for Document and LineTag classes
15177           - Removed unused variables
15178           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
15179             to allow translation between continuous char position and line/pos
15180         * CheckBox.cs: Removed vars that are provided by base class
15181         * RadioButton.cs: Removed vars that are provided by base class, added
15182           new keyword where required
15183         * LinkLabel.cs: Added new keyword where required
15184         * Control.cs (WndProc): Removed unused variable
15185         * TextBoxBase.cs:
15186           - Finished SelectionLength property
15187           - Implemented SelectionStart property
15188           - Implemented Text property
15189           - Removed unused vars
15190         * MessageBox.cs: Added new keyword where required
15191         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
15192           WndProc signature
15193         * MenuAPI.cs: Added new keyword where required
15194         * ButtonBase.cs: Removed vars that are provided by base class, added
15195           new keyword where required
15196         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
15197           argument to double, to allow compiling with csc 2.0 (Atsushi ran
15198           into this)
15199         * Application.cs (Run): Now triggers the ThreadExit event
15200         * CommonDialog.cs: Added new keyword where required; now properly sets
15201           parent (owner) for dialog
15202         * XplatUIX11.cs: Commented out unused vars
15203         * StatusBar.cs: Fixed signature for Text property
15204         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
15205
15206 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
15207
15208         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
15209         TrackBar.cs, MonthCalendar.cs: remove unused vars
15210
15211 2005-01-03  Jackson Harper  <jackson@ximian.com>
15212
15213         * ThemeWin32Classic.cs:
15214         * X11Keyboard.cs: Remove unused vars.
15215
15216 2005-01-03  Peter Bartok  <pbartok@novell.com>
15217
15218         * TextBox.cs:
15219           - set_Text: Tied into TextControl
15220           - set_TextAlignment: Tied into TextControl
15221         * TextControl.cs:
15222           - Added alignment properties and implemented alignment handling
15223             and drawing (still has a bug, not generating proper expose events)
15224           - Added new Line() constructor to allow passing the line alignment
15225           - Fixed selection setting, properly handling end<start now
15226           - Added aligment considerations to RecalculateDocument()
15227         * TextBoxBase.cs:
15228           - Now properly enforces control height for single line controls
15229           - Added support for CharacterCasing
15230           - Added IsInputKey override
15231           - Fixed Keys.Enter logic
15232           - Added SetBoundsCore override
15233           - Fixed mouse selection handling
15234
15235 2005-01-03  Jackson Harper  <jackson@ximian.com>
15236
15237         * TreeView.cs:
15238           - Collapse and uncheck all nodes when CheckBoxes is disabled.
15239           - Checkboxes are always aligned to the bottom of the node,
15240           regardless of item height.
15241           - Use the node bounds to draw the text so we can center it when
15242           the item height is greater then the font height.
15243           - Node::Bounds are only the text part of the node.
15244         * TreeNode.cs: New method to combine collapsing and unchecking all
15245           nodes recursively.
15246
15247 2005-01-02  Jackson Harper  <jackson@ximian.com>
15248
15249         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
15250         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
15251         tree when a check is changed. TODO: Only refresh the checked node.
15252
15253 2004-12-30  Jackson Harper  <jackson@ximian.com>
15254
15255         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
15256         * TreeNode.cs: When collapsing make sure to never collapse the
15257         root node.
15258
15259 2004-12-29  Jackson Harper  <jackson@ximian.com>
15260
15261         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
15262         
15263 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
15264
15265         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
15266
15267 2004-12-28  Peter Bartok  <pbartok@novell.com>
15268
15269         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
15270           not yet assigned
15271
15272 2004-12-28  Peter Bartok  <pbartok@novell.com>
15273
15274         * Control.cs (WndProc): Added WM_HELP handler, now generates
15275           HelpRequested event
15276         * Form.cs: Added HelpButton property and required support code
15277         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
15278
15279 2004-12-28  Peter Bartok  <pbartok@novell.com>
15280
15281         * CommonDialog.cs:
15282           - Made DialogForm.owner variable internal
15283           - Added check to ensure owner form is set before setting
15284             owner properties in CreateParams
15285
15286 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
15287
15288         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
15289           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
15290           GetCursorPos.  Fix major visibility issues.  Rework the windowing
15291           system to support borderless/titleless windows (implements menus).
15292           Fix GetWindowPos.  Implement initial background color support for
15293           views.
15294
15295 2004-12-28  Peter Bartok  <pbartok@novell.com>
15296
15297         * Form.cs (get_CreateParams): Make sure we have an owner before using
15298           the owner variable. Implement proper default if no owner exists
15299
15300 2004-12-28  Peter Bartok  <pbartok@novell.com>
15301
15302         * In preparation for making Managed.Windows.Forms the default build target
15303           for System.Windows.Forms, the following stubbed files were added.
15304           Dialogs are currently being implemented by contributors and are only
15305           short-term place holders.
15306         * ColorDialog.cs: Initial check-in (minmal stub)
15307         * DataGrid.cs: Initial check-in (minimal stub)
15308         * DataGridLineStyle.cs: Initial check-in (minimal stub)
15309         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
15310         * DataGridTableStyle.cs: Initial check-in (minimal stub)
15311         * FontDialog.cs: Initial check-in (minimal stub)
15312         * FileDialog.cs: Initial check-in (minimal stub)
15313         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
15314         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
15315         * OpenFileDialog: Initial check-in (minimal stub)
15316         * IComponentEditorPageSite.cs: Initial check-in
15317         * Splitter.cs: Initial check-in (for Jackson)
15318         * SplitterEventArgs.cs: Initial check-in (for Jackson)
15319         * SplitterEventHandler.cs: Initial check-in (for Jackson)
15320         * TextBox.cs: Initial check-in; still needs some wiring to
15321           TextControl backend
15322         * Form.cs: Implemented ControlBox property
15323         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
15324         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
15325         * TextControl.cs: Added selection functionality; added todo header
15326         * TextBoxBase.cs:
15327           - Implemented Lines property
15328           - Implemented TextHeight property
15329           - Implemented SelectedText property
15330           - Implemented SelectionLength property
15331           - Implemented SelectAll method
15332           - Implemented ToString method
15333           - Removed and cleaned up some debug code
15334           - Implemented (still buggy) mouse text selection
15335
15336 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
15337
15338         * ComboBox.cs: Complete DropDownList implementation, fixes.
15339
15340 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
15341
15342         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
15343         * ComboBoxStyle.cs: ComboBoxStyle enum
15344         * ComboBox.cs: Initial work on ComboBox control
15345
15346 2004-12-21  Peter Bartok  <pbartok@novell.com>
15347
15348         * Control.cs (ctor, CreateParams): Moved setting of is_visible
15349           forward so that anything that creates a window gets the default,
15350           also no longer uses Visible property in CreateParams to avoid
15351           walking up the parent chain and possibly get the wrong visible
15352           status. Fixed IsVisible to no longer walk up to the parent.
15353
15354 2004-12-21  Peter Bartok  <pbartok@novell.com>
15355
15356         * Form.cs (ShowDialog): Unset modality for the proper window
15357  
15358 2004-12-20  Peter Bartok  <pbartok@novell.com>
15359
15360         * CommonDialog.cs: Initial check-in
15361
15362 2004-12-20  Peter Bartok  <pbartok@novell.com>
15363
15364         * Control.cs (Visible): Now uses the parent window instead of the
15365           client area window for the property
15366
15367         * Form.cs
15368           - ShowDialog(): Now uses the proper window for modality
15369           - The default visibility state for the form parent is now false. This
15370             will prevent the user from seeing all the changes to the form and
15371             its controls before the application hits Application.Run()
15372           - Removed some stale commented out code
15373
15374         * NativeWindow.cs:
15375           - Added FindWindow() method to have a method to check for existence
15376             of a window handle
15377           - Added ability to override default exception handling (for example
15378             when debugging with VS.Net; to do this the ExternalExceptionHandler
15379             define must be set
15380           - Removed some useless debug output
15381
15382         * XplatUIX11.cs:
15383           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
15384             not working as expected
15385           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
15386             property to allow switching back to the modal window if focus is
15387             given to another one of our windows (Application Modal)
15388           - Now only sets override_redirect if we create a window
15389             without WS_CAPTION
15390           - Moved EventMask selection before mapping of newly created window
15391             so we can catch the map event as well
15392           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
15393           - Added various Atom related DllImports
15394           - Implemented Exit() method
15395           - .ctor() : No longer shows window if WS_VISIBLE is not defined
15396             in the CreateParams
15397
15398         * MessageBox.cs: Now properly deals with the FormParent window by
15399           providing an override the FormParent CreateParams property to
15400           set as POPUP instead of OVERLAPPED window.
15401
15402 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
15403
15404         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
15405         Minor code cleanup.
15406
15407 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
15408         
15409         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
15410
15411 2004-12-18  Peter Bartok  <pbartok@novell.com>
15412
15413         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
15414           implementing SetModal() method
15415
15416 2004-12-18  Peter Bartok  <pbartok@novell.com>
15417
15418         * X11Structs.cs (XGCValues): Fixed type of function element
15419         * XplatUI.cs: Added ScrollWindow() method
15420         * XplatUIDriver.cs: Added ScrollWindow() abstract
15421         * XplatUIWin32.cs: Implemented ScrollWindow() method
15422         * XplatUIX11.cs: Implemented ScrollWindow() method
15423         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
15424
15425 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
15426
15427         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
15428         Some more keyboard support (INCOMPLETE)
15429
15430 2004-12-17  Peter Bartok  <pbartok@novell.com>
15431
15432         * TextControl.cs:
15433         - Added color attribute to line tags.
15434         - Added color argument to all functions dealing with tags
15435         - Added color argument support to various functions
15436         - Fixed miss-calculation of baseline/shift in certain circumstances
15437
15438         * TextBoxBase.cs: Added new color option to test code
15439
15440 2004-12-17  Jackson Harper  <jackson@ximian.com>
15441
15442         * TreeNode.cs:
15443         * MonthCalendar.cs: Signature fixes
15444
15445 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
15446
15447         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
15448         keyboard event moved it.  Create a new graphics context for each paint resolves this
15449
15450 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
15451
15452         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
15453         Make caret exist and go blink blink.  Initial keyboard support.
15454         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
15455         works.
15456
15457 2004-12-17  Jackson Harper  <jackson@ximian.com>
15458
15459         * XplatUIStructs.cs: Updated set of virtual keycodes.
15460         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
15461
15462 2004-12-17  Jackson Harper  <jackson@ximian.com>
15463
15464         * XplatUIX11.cs: Prune old keyboard code.
15465
15466 2004-12-17  Jackson Harper  <jackson@ximian.com>
15467
15468         * XplatUIX11.cs: When generating mouse wparams get the modifier
15469         keys from the ModifierKeys property.
15470
15471 2004-12-17  Jackson Harper  <jackson@ximian.com>
15472
15473         * X11Keyboard.cs: Send up/down input when generating
15474         messages. Remove some unused vars.
15475
15476 2004-12-17  Jackson Harper  <jackson@ximian.com>
15477
15478         * TabControl.cs:
15479         * TreeView.cs: get rid of warnings.
15480
15481 2004-12-17  Jackson Harper  <jackson@ximian.com>
15482
15483         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
15484
15485 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
15486
15487         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
15488           CheckedListBox.cs: Implementation
15489
15490 2004-12-17  Peter Bartok  <pbartok@novell.com>
15491
15492         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
15493
15494 2004-12-16  Peter Bartok  <pbartok@novell.com>
15495
15496         * TextControl.cs:
15497           - InsertCharAtCaret(): Fixed start pos fixup
15498           - CaretLine_get: No longer derives the line from the tag, the tag
15499             could be stale if lines in the document have been added or deleted
15500           - RebalanceAfterDelete(): Fixed bug in balancing code
15501           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
15502           - Line.Streamline(): Now can also elminate leading empty tags
15503           - DumpTree(): Added a few more tests and prevented exception on
15504             uninitialized data
15505           - Added Debug section for Combining lines
15506           - Delete(): Now copies all remaining properties of a line
15507           
15508         * TextBoxBase.cs:
15509           - Left mousebutton now sets the caret (and middle button still acts
15510             as formatting tester, which must go away soon)
15511           - Added Debug section for Deleting/Combining lines
15512           - Fixed calculations for UpdateView after Combining lines
15513
15514 2004-12-16  Peter Bartok  <pbartok@novell.com>
15515
15516         * TextControl.cs: Now properly aligns text on a baseline, using the
15517           new XplatUI.GetFontMetrics() method. Simplified several calculations
15518         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
15519           defined
15520
15521 2004-12-16  Peter Bartok  <pbartok@novell.com>
15522
15523         * XplatUI.cs: Added GetFontMetrics() method
15524         * XplatUIDriver.cs: Added GetFontMetrics() abstract
15525         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
15526           into libgdiplus, our private GetFontMetrics function
15527         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
15528         * XplatUIWin32.cs: Implemented GetFontMetrics() method
15529
15530 2004-12-16  Jackson Harper  <jackson@ximain.com>
15531
15532         * XplatUIStruct.cs: Add enum for dead keys
15533         * X11Keyboard.cs: Map and unmap dead keys.
15534
15535 2004-12-16  Jackson Harper  <jackson@ximian.com>
15536
15537         * X11Keyboard.cs: Detect and use the num lock mask.
15538
15539 2004-12-16  Peter Bartok  <pbartok@novell.com>
15540
15541         * Control.cs (CreateGraphics): Added check to make sure the
15542           handle of the window exists before calling Graphics.FromHwnd()
15543
15544 2004-12-16  Peter Bartok  <pbartok@novell.com>
15545
15546         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
15547           contains a lot of code that's not supposed to be there for the
15548           real thing, but required for developing/testing the textbox
15549           backend.
15550
15551 2004-12-16  Peter Bartok  <pbartok@novell.com>
15552
15553         * TextControl.cs:
15554         - Fixed Streamline method
15555         - Added FindTag method to Line
15556         - Added DumpTree method for debugging
15557         - Added DecrementLines() method for deleting lines
15558         - Fixed UpdateView to update the cursor to end-of-line on single-line
15559           updates
15560         - Added PositionCaret() method
15561         - Fixed MoveCaret(LineDown) to move into the last line, too
15562         - Added InsertChar overload
15563         - Fixed InsertChar tag offset calculations
15564         - Added DeleteChar() method
15565         - Added Combine() method for folding lines
15566         - Fixed Delete() method, no longer allocates wasted Line object and
15567           now copies all properties when swapping nodes
15568         - Delete() method now updates document line counter
15569
15570 2004-12-15  Jackson Harper  <jackson@ximian.com>
15571
15572         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
15573         * X11Keyboard.cs: Expose the currently selected modifier keys
15574         through a property.
15575
15576 2004-12-15  Peter Bartok  <pbartok@novell.com>
15577
15578         * TextControl.cs: Initial check-in. Still incomplete
15579
15580 2004-12-15  Jackson Harper  <jackson@ximian.com>
15581
15582         * TreeNode.cs:
15583         * TreeView.cs: Fix build on csc (second time today ;-))
15584
15585 2004-12-15  Jackson Harper  <jackson@ximian.com>
15586
15587         * TreeView.cs: Store the treenodes plus/minus box bounds when it
15588         is calculated and use this for click testing.
15589         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
15590
15591 2004-12-15  Jackson Harper  <jackson@ximian.com>
15592
15593         * TreeView.cs: Pass the nodes image index to the image list when
15594         drawing that image.
15595
15596 2004-12-15  Jackson Harper  <jackson@ximian.com>
15597
15598         * X11Keyboard.cs: Set messages hwnd.
15599         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
15600         post_message calls.
15601
15602 2004-12-15  Jackson Harper  <jackson@ximian.com>
15603
15604         * X11Keyboard.cs: Fix to compile with csc.
15605         
15606 2004-12-15  Jackson Harper  <jackson@ximian.com>
15607
15608         * X11Structs.cs: Add key mask values
15609         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
15610         * X11Keyboard.cs: New file - Extrapolates and interpolates key
15611         down/up foo into WM_CHAR foo
15612         * KeyboardLayouts.cs: Common keyboard layouts
15613         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
15614         post messages into the main queue.
15615
15616 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
15617
15618         * Button.cs: implement ProcessMnemonic
15619         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
15620           brushes everytime
15621         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
15622         * ButtonBase.cs: Show HotkeyPrefix (not the &)
15623
15624 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
15625         
15626         * MonthCalendar.cs: Implemented click-hold for next/previous month
15627           and date selection
15628           
15629 2004-12-11  Peter Bartok  <pbartok@novell.com>
15630
15631         * X11Structs.cs:
15632           - Added XKeyboardState (moved from XplatUIX11.cs)
15633           - Added XCreateGC related enums and structures
15634           - Added GXFunction for XSetFunction
15635
15636         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
15637
15638         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
15639           CaretVisible() calls
15640
15641         * ToolTip.cs: Added code to prevent stealing focus from app windows
15642
15643         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
15644           DestroyCaret, SetCaretPos and CaretVisible)
15645
15646         * XplatUIX11.cs:
15647           - Added implementation for caret functions
15648           - Moved hover variables into a struct, to make it a bit easier
15649             on the eyes and to debug
15650           - Removed XKeyboardState (moved to XplatUIX11.cs)
15651           - Moved Keyboard properties into the properties region
15652
15653         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
15654           call to get a graphics context for our control
15655
15656         * XplatUIOSX.cs: Added empty overrides for the new caret functions
15657
15658         * TreeView.cs: Fixed bug. No matter what color was set it would always
15659           return SystemColors.Window
15660
15661         * XplatUIWin32.cs: Implemented caret overrides
15662
15663 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
15664
15665         * ListBox.cs: fire events, implement missing methods and properties,
15666         sorting.
15667
15668 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
15669
15670         * MonthCalendar.cs: invalidation bug fixing
15671         * ThemeWin32Classic.cs: paint fixing
15672
15673 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
15674
15675         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
15676         prepare the CGContextRef there now.
15677
15678 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
15679
15680         * MonthCalendar.cs:
15681           - optimisationL only invalidate areas that have changed
15682         * ThemeWin32Classic.cs:
15683           - only paint parts that intersect with clip_area
15684
15685 2004-12-09  Peter Bartok  <pbartok@novell.com>
15686
15687         * Application.cs: Undid changes from r37004 which cause problems
15688         on X11
15689
15690 2004-12-09  Ravindra  <rkumar@novell.com>
15691
15692         * ToolBar.cs: Added support for displaying ContextMenu
15693         attached to a button on ToolBar.
15694         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
15695         property.
15696
15697 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
15698
15699         * Label.cs: autosize works in text change and removes unnecessary
15700         invalidate
15701
15702 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
15703
15704         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
15705         remove warnings
15706
15707 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
15708
15709         * XplatUIOSX.cs: Added mouse move/click/grab support
15710         Remove some debugging WriteLines not needed anymore.
15711         Add window resizing/positioning.
15712         Fix visibility on reparenting.
15713
15714 2004-12-08  Peter Bartok  <pbartok@novell.com>
15715
15716         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
15717
15718 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
15719
15720         * XplatUIOSX.cs: Initial checkin
15721         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
15722
15723 2004-12-03  Ravindra <rkumar@novell.com>
15724
15725         * ListView.cs: Added some keybindings and fixed scrolling.
15726         ScrollBars listen to ValueChanged event instead of Scroll
15727         Event. This would let us take care of all changes being
15728         done in the scrollbars' values programmatically or manually.
15729         * ListView.cs (CanMultiselect): Added a check for shift key.
15730         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
15731         * ListViewItem.cs (Clone): Fixed. We need to make a copy
15732         of ListViewSubItemCollection as well.
15733
15734 2004-12-06  Peter Bartok <pbartok@novell.com>
15735
15736         * Control.cs (Parent): Added check and exception to prevent
15737         circular parenting
15738
15739 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
15740
15741         * ListBox.cs: implemented clipping, selection single and multiple,
15742         bug fixing
15743
15744 2004-12-03  Ravindra <rkumar@novell.com>
15745
15746         * ListView.cs (ListView_KeyDown):
15747         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
15748         when CTRL key is pressed.
15749         * ListViewItem.cs (Selected): Fixed setting the property.
15750
15751 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
15752
15753         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
15754
15755         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
15756         MinimizeBox, ShowInTaskbar, TopMost properties.
15757
15758         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
15759         will be implemented).
15760
15761 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
15762
15763         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
15764
15765         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
15766         tests.
15767         
15768         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
15769         
15770         * TreeView.cs: BackColor is Colors.Window.
15771
15772 2004-12-01  Jackson Harper  <jackson@ximian.com>
15773
15774         * TreeView.cs: When resizing the tree if the user is making it
15775         smaller we don't get expose events, so we need to handle adding
15776         the horizontal scrollbar in the size changed handler as well as
15777         the expose handler.
15778
15779 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
15780
15781         * DrawItemState.cs: fixes wrong enum values
15782
15783 2004-12-01  Jackson Harper  <jackson@ximian.com>
15784
15785         * TreeView.cs: Resize the hbar as well as the vbar on resize.
15786
15787 2004-12-01  Jackson Harper  <jackson@ximian.com>
15788
15789         * NodeLabelEditEventArgs.cs:
15790         * NodeLabelEditEventHandler.cs:
15791         * OpenTreeNodeEnumerator.cs:
15792         * TreeNode.cs:
15793         * TreeNodeCollection.cs:
15794         * TreeView.cs:
15795         * TreeViewAction.cs:
15796         * TreeViewCancelEventArgs.cs:
15797         * TreeViewCancelEventHandler.cs:
15798         * TreeViewEventArgs.cs:
15799         * TreeViewEventHandler.cs: Initial implementation.
15800
15801 2004-12-01  Ravindra <rkumar@novell.com>
15802
15803         * ListView.cs (CalculateListView): Fixed scrolling related
15804         calculations. Also, removed some debug statements from other
15805         places.
15806         * ListViewItem.cs: Changed access to 'selected' instance variable
15807         from private to internal.
15808         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
15809
15810 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
15811
15812         * ThemeWin32Classic.cs: remove cache of brush and pens for
15813         specific controls and use the global system, fixes scrollbutton
15814         bugs (for small sizes, disabled, etc)
15815         
15816         * ScrollBar.cs: does not show the thumb for very small controls
15817         (as MS) and allow smaller buttons that the regular size
15818
15819 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
15820
15821         * UpDownBase.cs: Add abstract methods for the interface.
15822         Add new virtual methods (need to be hooked up to TextEntry when it
15823         exists).
15824         Add override methods for most features.
15825         Computes the size, forces the height of the text entry.
15826
15827         * NumericUpDown.cs: Put here the current testing code.
15828
15829         * Set eol-style property on all files that do not have mixed line
15830         endings, to minimize the future problems.  There are still a few
15831         files with mixed endings, and someone should choose whether they
15832         want to move it or not.
15833
15834 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
15835
15836         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
15837         System.Colors
15838         
15839 2004-11-30  Ravindra <rkumar@novell.com>
15840
15841         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
15842         drawing and replaced use of SystemColors by theme colors.
15843         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
15844         * ListView.cs (ListViewItemCollection.Add): Throw exception when
15845         same ListViewItem is being added more than once.
15846
15847 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
15848
15849         * MonthCalendar.cs:
15850           - ControlStyles love to make the control not flicker
15851           
15852 2004-11-30  Peter Bartok  <pbartok@novell.com>
15853
15854         * CharacterCasing.cs: Added
15855
15856 2004-11-29  Peter Bartok  <pbartok@novell.com>
15857
15858         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
15859           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
15860           I am removing these files as they conflict with already completed
15861           work. While it is fantastic to get contributions to MWF, I
15862           respectfully ask that everyone please coordinate their contributions
15863           through mono-winforms-list or #mono-winforms at this time. We're
15864           explicitly avoiding stubbing and don't want controls that don't have
15865           their basic functionality implemented in svn. Please also see
15866           http://www.mono-project.com/contributing/winforms.html
15867
15868
15869 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
15870
15871         * Application.cs (ModalRun): Don't hang after exit.
15872
15873         * Theme.cs: New TreeViewDefaultSize property.
15874
15875         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
15876         with less hardcoded SystemColors constant.
15877         Implemented TreeViewDefaultSize.
15878
15879         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
15880         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
15881
15882
15883 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
15884
15885         * MonthCalendar.cs:
15886           - Fix NextMonthDate and PrevMonthDate click moving calendar
15887
15888 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
15889
15890         * MonthCalendar.cs:
15891           - Fix usage of ScrollChange Property when scrolling months
15892
15893 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
15894
15895         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
15896          - Fixes menu destroying
15897          - Support adding and removing items on already created menus
15898
15899 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
15900
15901         * MonthCalendar.cs:
15902           - Re-worked all bolded dates handling to match win32
15903         * ThemeWin32Classic.cs:
15904           - Fixed rendering with bolded dates
15905
15906 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
15907
15908         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
15909         - Horizontal scroolbar
15910         - Multicolumn
15911         - Fixes
15912
15913
15914 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
15915
15916         * MonthCalendar.cs:
15917           - Fix Usage of MaxSelectionCount from SelectionRange
15918           - Fixed Shift + Cursor Selection
15919           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
15920           - Fixed normal cursor selection to be compat with win32
15921           - Fixed Shift + Mouse Click selection
15922
15923 2004-11-24  Peter Bartok <pbartok@novell.com>
15924
15925         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
15926         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
15927         * XplatUIX11.cs:
15928           - CreatedKeyBoardMsg now updates keystate with Alt key
15929           - Added workaround for timer crash to CheckTimers, Jackson will
15930             develop a proper fix and check in later
15931           - Implemented DispatchMessage
15932           - Removed calling the native window proc from GetMessage (call
15933             now moved to DispatchMessage)
15934
15935         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
15936           the keydata (Fixes bug #69831)
15937
15938         * XplatUIWin32.cs:
15939           - (DispatchMessage): Switched to return IntPtr
15940           - Added DllImport for SetFocus
15941
15942 2004-11-24  Ravindra <rkumar@novell.com>
15943
15944         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
15945         background drawing.
15946         * ListViewItem.cs: Fixed various properties, calculations
15947         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
15948         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
15949         and some internal properties. Fixed MouseDown handler and Paint
15950         method.
15951
15952 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
15953
15954         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
15955
15956 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
15957
15958         * ContainerControl.cs: correct accidental check in of local changes
15959
15960 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
15961
15962         * ThemeWin32Classic.cs:
15963                 - Fixed Drawing Last month in grid (sometimes not showing)
15964         * MonthCalendar.cs:
15965                 - Fixed title width calculation bug (makeing title small)
15966
15967 2004-11-23  Peter Bartok <pbartok@novell.com>
15968
15969         * XplatUIX11.cs:
15970           - Added generation of WM_MOUSEHOVER event
15971           - Added missing assignment of async_method atom
15972           - Fixed WM_ERASEBKGND; now only redraws the exposed area
15973
15974 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
15975
15976         * ThemeWin32Classic.cs:
15977                 - Fixed Drawing of today circle when showtodaycircle not set
15978                 - fixed drawing of first and last month in the grid (gay dates)
15979         * MonthCalendar.cs:
15980                 - Fixed Drawing of today circle
15981                 - Fixed drawing of grady dates
15982                 - Fixed HitTest for today link when ShowToday set to false
15983                 - Fixed DefaultSize to obey ShowToday
15984
15985 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
15986
15987         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
15988         * System.Windows.Forms/Theme.cs
15989         * MonthCalendar.cs: added for MonthCalendar
15990         * SelectionRange.cs: added for MonthCalendar
15991         * Day.cs: added for MonthCalendar: added for MonthCalendar
15992         * DateRangeEventArgs.cs: added for MonthCalendar
15993         * DateRangeEventHandler.cs: added for MonthCalendar
15994
15995 2004-11-22  Ravindra <rkumar@novell.com>
15996
15997         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
15998         property.
15999
16000 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
16001
16002         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
16003         event handler.
16004         
16005         * NumericUpDown.cs: Added new implementation.
16006         * UpDownBase.cs: Added new implementation.
16007
16008         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
16009         implementations.
16010         
16011         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
16012         implementations.
16013
16014         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
16015         methods.
16016
16017 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
16018
16019         * Timer.cs  (Dispose): Should call the base dispose when
16020         overriding.
16021
16022 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
16023
16024         * ScrollBar.cs: updates thumb position when max, min or increment
16025         is changed
16026
16027 2004-11-21  Ravindra <rkumar@novell.com>
16028
16029         * ListView.cs: Implemented item selection, activation and
16030         column header style. Fixed properties to do a redraw, if
16031         required. Added support for MouseHover, DoubleClick, KeyDown
16032         and KeyUp event handling and some minor fixes.
16033         * ListViewItem.cs: Fixed constructor.
16034         * ThemeWin32Classic.cs: Improved drawing for ListView.
16035
16036 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
16037
16038         * ThemeWin32Classic.cs: initial listbox drawing code
16039         * DrawMode.cs: new enumerator
16040         * ListControl.cs: stubbed class
16041         * ListBox.cs: initial implementation
16042         * Theme.cs: new methods definitions
16043         * SelectionMode.cs: new enumerator
16044
16045 2004-11-17  Peter Bartok  <pbartok@novell.com>
16046
16047         * XplatUIWin32.cs: Added double-click events to the class style
16048         * Control.cs (WndProc):
16049           - Added handling of click-count to MouseDown/ MouseUp events.
16050           - Added handling of middle and right mouse buttons
16051           - Removed old debug code
16052
16053 2004-11-17  Jackson Harper  <jackson@ximian.com>
16054
16055         * XplatUIX11.cs: Use the new Mono.Unix namespace.
16056
16057 2004-11-17  Ravindra <rkumar@novell.com>
16058
16059         * ListView.cs: Added event handling for MouseMove/Up/Down.
16060         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
16061         * ThemeWin32Classic.cs: We need to clear the graphics context and
16062         draw column header in a proper state.
16063
16064
16065 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
16066
16067         *  Menu.cs: fixes signature
16068
16069 2004-11-16  Peter Bartok  <pbartok@novell.com>
16070
16071         * XplatUIX11.cs (GetMessage): Implemented generation of
16072           double click mouse messages
16073
16074 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
16075
16076         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
16077         not by menu
16078
16079 2004-11-11  Peter Bartok  <pbartok@novell.com>
16080
16081         * HandleData.cs: Added Visible property
16082         * XplatUIX11.cs (IsVisible): Now uses Visible property from
16083           HandleData
16084         * XplatUIX11.cs: Removed old debug leftovers
16085         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
16086         * Control.cs (WndProc): Removed old debug leftovers,
16087           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
16088           needed WM_SIZE handling
16089
16090 2004-11-11  Jackson Harper  <jackson@ximian.com>
16091
16092         * OwnerDrawPropertyBag.cs:
16093         * TreeViewImageIndexConverter.cs: Initial implementation
16094
16095 2004-11-10  Jackson Harper  <jackson@ximian.com>
16096
16097         * ThemeWin32Classic.cs:
16098         * TabControl.cs: instead of moving tabs by the slider pos just
16099         start drawing at the tab that is offset by the slider. This way
16100         scrolling always moves by exactly one tab.
16101
16102 2004-11-10  Jackson Harper  <jackson@ximian.com>
16103
16104         * TabControl.cs: You can only scroll left when the slider has
16105         already ben moved right.
16106         
16107 2004-11-10  Jackson Harper  <jackson@ximian.com>
16108
16109         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
16110         the clip area.
16111         
16112 2004-11-10  Jackson Harper  <jackson@ximian.com>
16113
16114         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
16115         clip area.
16116         
16117 2004-11-09  Jackson Harper  <jackson@ximian.com>
16118
16119         * TabControl.cs (CalcXPos): New helper method so we can determine
16120         the proper place to start drawing vertical tabs.
16121         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
16122         
16123 2004-11-09  Jackson Harper  <jackson@ximian.com>
16124
16125         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
16126         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
16127         and Bottom, left and right are illegal values for this and
16128         multiline is enabled when the alignment is set to left or right.
16129         (DrawTab): Each alignment block should draw the text itself now
16130         because Left requires special love. Also add rendering for Left
16131         aligned tabs.
16132         
16133 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
16134
16135         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
16136         does not destroy the windows, removes debugging messages
16137
16138 2004-11-09  jba  <jba-mono@optusnet.com.au>
16139
16140         * ThemeWin32Classic.cs
16141         (DrawButtonBase): Fix verticle text rect clipping in windows
16142         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
16143         rendering and incorrect text rect clipping
16144         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
16145         rendering and incorrect text rect clipping
16146         
16147 2004-11-08  Jackson Harper  <jackson@ximian.com>
16148
16149         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
16150         bottom when they are bottom aligned so the bottoms of the tabs get
16151         displayed.
16152         * TabControl.cs (DropRow): Move rows up instead of down when the
16153         tab control is bottom aligned.
16154
16155 2004-11-08 13:59  pbartok
16156
16157         * XplatUIX11.cs:
16158           - Added handling for various window styles
16159           - Added handling for popup windows
16160           - Added SetTopmost handling
16161
16162 2004-11-08 13:55  pbartok
16163
16164         * XplatUIWin32.cs:
16165           - Added argument to SetTopmost method
16166           - Fixed broken ClientToScreen function
16167
16168 2004-11-08 13:53  pbartok
16169
16170         * XplatUIStructs.cs:
16171           - Added missing WS_EX styles
16172
16173 2004-11-08 13:53  pbartok
16174
16175         * XplatUI.cs, XplatUIDriver.cs:
16176           - Added argument to SetTopmost
16177
16178 2004-11-08 13:52  pbartok
16179
16180         * X11Structs.cs:
16181           - Added XSetWindowAttributes structure
16182           - Improved XWindowAttributes structure
16183           - Added SetWindowValuemask enum
16184           - Added window creation arguments enum
16185           - Added gravity enum
16186           - Added Motif hints structure
16187           - Added various Motif flags and enums
16188           - Added PropertyMode enum for property functions
16189
16190 2004-11-08 13:50  pbartok
16191
16192         * Form.cs:
16193           - Fixed arguments for updated SetTopmost method
16194
16195 2004-11-08 13:49  pbartok
16196
16197         * ToolTip.cs:
16198           - Fixed arguments for updated SetTopmost function
16199           - Fixed usage of PointToClient
16200
16201 2004-11-08 13:44  pbartok
16202
16203         * MenuAPI.cs:
16204           - Added Clipping of children and siblings
16205
16206 2004-11-08 13:41  pbartok
16207
16208         * MainMenu.cs:
16209           - Removed SetMenuBarWindow call. We do this in Form.cs
16210
16211 2004-11-08 13:40  jackson
16212
16213         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
16214           scrolling jimmi in the correct location with bottom aligned tabs
16215
16216 2004-11-08 13:36  pbartok
16217
16218         * ContainerControl.cs:
16219           - Implemented BindingContext
16220           - Implemented ParentForm
16221
16222 2004-11-08 12:46  jackson
16223
16224         * TabControl.cs: Put bottom rendered tabs in the right location
16225
16226 2004-11-08 07:15  jordi
16227
16228         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
16229           removes dead code
16230
16231 2004-11-05 17:30  jackson
16232
16233         * TabControl.cs: When selected tabs are expanded make sure they
16234           don't go beyond the edges of the tab control
16235
16236 2004-11-05 14:57  jackson
16237
16238         * TabControl.cs: Reset show_slider so if the control is resized to
16239           a size where it is no longer needed it's not displayed anymore
16240
16241 2004-11-05 13:16  jackson
16242
16243         * TabControl.cs: Make tab pages non visible when added to the
16244           control
16245
16246 2004-11-05 12:42  jackson
16247
16248         * TabControl.cs: Implement SizeMode.FillToRight
16249
16250 2004-11-05 12:16  jackson
16251
16252         * Control.cs: Do not call CreateHandle if the handle is already
16253           created
16254
16255 2004-11-05 11:46  jackson
16256
16257         * TabControl.cs: Remove superflous call to CalcTabRows
16258
16259 2004-11-05 09:07  jackson
16260
16261         * XplatUIX11.cs: Update for Mono.Posix changes
16262
16263 2004-11-05 07:00  ravindra
16264
16265         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
16266           scrolling.
16267
16268 2004-11-04 22:47  jba
16269
16270         * ThemeWin32Classic.cs:
16271           - Fix Button rendering for FlatStyle = Flat or Popup
16272           - Fix RadioButton and CheckBox rendering when Appearance = Button
16273             (normal and flatstyle).
16274           - Correct outer rectangle color when drawing focus rectangle
16275           - Adjust button bounds to be 1 px smaller when focused
16276           - Make button not draw sunken 3d border when pushed (windows compat)
16277           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
16278           - Offset the text in RadioButton and Checkbox when being rendered as
16279           a button.
16280           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
16281           radiobuttons
16282           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
16283           - Fixed disabled text rendering for normally rendered radiobuttons
16284
16285 2004-11-04 10:26  jackson
16286
16287         * TabControl.cs: Recalculate tab rows when resizing
16288
16289 2004-11-04 07:47  jordi
16290
16291         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
16292           collection completion, drawing issues, missing features
16293
16294 2004-11-04 05:03  ravindra
16295
16296         * ScrollBar.cs:
16297                 - We need to recalculate the Thumb area when
16298                 LargeChange/maximum/minimum values are changed.
16299           - We set the 'pos' in UpdatePos() method to minimum, if it's less
16300                 than minimum. This is required to handle the case if large_change is
16301                 more than max, and use LargeChange property instead of large_change
16302                 variable.
16303           - We return max+1 when large_change is more than max, like MS does.
16304
16305 2004-11-04 04:29  ravindra
16306
16307         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
16308                 - Changed default value signatures (prefixed all with ListView).
16309                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
16310                 ListView.
16311           - Fixed calculations for ListViewItem and implemented Clone()
16312           method.
16313
16314 2004-11-04 04:26  ravindra
16315
16316         * Theme.cs, ThemeWin32Classic.cs:
16317                 - Changed default ListView values signatures (prefixed all with
16318                 ListView).
16319           - Fixed default size values for VScrollBar and HScrollBar.
16320                 - Fixed DrawListViewItem method.
16321
16322 2004-11-04 04:05  ravindra
16323
16324         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
16325
16326 2004-11-04 04:04  ravindra
16327
16328         * ImageList.cs: Implemented the missing overload for Draw method.
16329
16330 2004-11-03 19:29  jackson
16331
16332         * TabControl.cs: Handle dropping rows on selection properly
16333
16334 2004-11-03 11:59  jackson
16335
16336         * TabControl.cs: remove debug code
16337
16338 2004-11-03 11:52  jackson
16339
16340         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
16341           the scrolly widgerywoo
16342
16343 2004-11-02 13:52  jackson
16344
16345         * TabControl.cs: Resize the tab pages and tabs when the tab control
16346           is resized
16347
16348 2004-11-02 13:40  jackson
16349
16350         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
16351           selected tab to the bottom
16352
16353 2004-11-02 13:39  jackson
16354
16355         * TabPage.cs: Store the tab pages row
16356
16357 2004-11-02 12:33  jordi
16358
16359         * MenuItem.cs: fixes handle creation
16360
16361 2004-11-02 11:42  jackson
16362
16363         * TabControl.cs: signature fix
16364
16365 2004-11-02 08:56  jackson
16366
16367         * TabControl.cs: Calculate whether the tab is on an edge properly.
16368           Remove top secret debugging code
16369
16370 2004-11-01 19:57  jackson
16371
16372         * TabControl.cs: Add click handling, and proper sizing
16373
16374 2004-11-01 19:47  jackson
16375
16376         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
16377           tab controls
16378
16379 2004-11-01 19:39  jackson
16380
16381         * TabPage.cs: add internal property to store the bounds of a tab
16382           page
16383
16384 2004-10-30 04:23  ravindra
16385
16386         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
16387           values.
16388
16389 2004-10-30 04:21  ravindra
16390
16391         * ListView.cs, ListViewItem.cs: Added support for scrolling and
16392           fixed calculations.
16393
16394 2004-10-30 03:06  pbartok
16395
16396         * XplatUIX11.cs:
16397           - Removed extension of DllImported libs
16398
16399 2004-10-29 09:55  jordi
16400
16401         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
16402           navigation, itemcollection completion, menu fixes
16403
16404 2004-10-27 22:58  pbartok
16405
16406         * XplatUIX11.cs:
16407           - Now throws a nice error message when no X display could be opened
16408
16409 2004-10-26 13:51  jordi
16410
16411         * ListView.cs: removes warning
16412
16413 2004-10-26 03:55  ravindra
16414
16415         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
16416           ThemeWin32Classic.cs: Some formatting for my last checkins.
16417
16418 2004-10-26 03:36  ravindra
16419
16420         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
16421           control and default values.
16422
16423 2004-10-26 03:35  ravindra
16424
16425         * Theme.cs: Added some default values for ListView control.
16426
16427 2004-10-26 03:33  ravindra
16428
16429         * ToolBar.cs: ToolBar should use the user specified button size, if
16430           there is any. Added a size_specified flag for the same.
16431
16432 2004-10-26 03:33  ravindra
16433
16434         * ColumnHeader.cs: Added some internal members and calculations for
16435           ColumnHeader.
16436
16437 2004-10-26 03:32  ravindra
16438
16439         * ListViewItem.cs: Calculations for ListViewItem.
16440
16441 2004-10-26 03:31  ravindra
16442
16443         * ListView.cs: Added some internal members and calculations for
16444           ListView.
16445
16446 2004-10-22 13:31  jordi
16447
16448         * MenuAPI.cs: speedup menus drawing
16449
16450 2004-10-22 13:16  jackson
16451
16452         * XplatUIX11.cs: Make sure to update exposed regions when adding an
16453           expose event
16454
16455 2004-10-22 11:49  jackson
16456
16457         * Control.cs: oops
16458
16459 2004-10-22 11:41  jackson
16460
16461         * Control.cs: Check to see if the window should have its background
16462           repainted by X when drawing.
16463
16464 2004-10-22 11:31  jackson
16465
16466         * XplatUIX11.cs: When invalidating areas only use XClearArea if
16467           clear is true, this way we do not get flicker from X repainting the
16468           background
16469
16470 2004-10-22 11:28  jackson
16471
16472         * XEventQueue.cs: Queue properly
16473
16474 2004-10-21 09:38  jackson
16475
16476         * XEventQueue.cs: Fix access modifier
16477
16478 2004-10-21 09:36  jackson
16479
16480         * XEventQueue.cs: Don't loose messages
16481
16482 2004-10-21 09:22  jackson
16483
16484         * XEventQueue.cs: Don't loose messages
16485
16486 2004-10-20 04:15  jordi
16487
16488         * BootMode.cs: enum need it by SystemInfo
16489
16490 2004-10-19 21:58  pbartok
16491
16492         * XplatUIWin32.cs:
16493           - Small sanity check
16494
16495 2004-10-19 21:56  pbartok
16496
16497         * Form.cs:
16498           - Added private FormParentWindow class which acts as the container
16499             for our form and as the non-client area where menus are drawn
16500           - Added/Moved required tie-ins to Jordi's menus
16501           - Fixed/Implemented the FormStartPosition functionality
16502
16503 2004-10-19 21:52  pbartok
16504
16505         * Control.cs:
16506           - Removed unneeded locals
16507           - Added code to all size and location properties to understand and
16508             deal with the parent container of Form
16509
16510 2004-10-19 21:33  pbartok
16511
16512         * Application.cs:
16513           - Fixed to deal with new Form subclasses for menus
16514
16515 2004-10-19 17:48  jackson
16516
16517         * XEventQueue.cs: commit correct version of file
16518
16519 2004-10-19 16:50  jackson
16520
16521         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
16522
16523 2004-10-19 16:15  jordi
16524
16525         * MenuAPI.cs: MenuBarCalcSize returns the height
16526
16527 2004-10-19 08:31  pbartok
16528
16529         * Control.cs:
16530           - Added missing call to PreProcessMessage before calling OnXXXKey
16531           methods
16532
16533 2004-10-19 00:04  ravindra
16534
16535         * ToolTip.cs: Fixed constructor.
16536
16537 2004-10-18 09:31  jordi
16538
16539         * MenuAPI.cs: menuitems in menubars do not have shortcuts
16540
16541 2004-10-18 09:26  jordi
16542
16543         * MenuItem.cs: fixes MenuItem class signature
16544
16545 2004-10-18 08:56  jordi
16546
16547         * MenuAPI.cs: prevents windows from showing in the taskbar
16548
16549 2004-10-18 00:28  ravindra
16550
16551         * ToolTip.cs: Suppressed a warning message.
16552
16553 2004-10-18 00:27  ravindra
16554
16555         * Control.cs: Default value of visible property must be true.
16556
16557 2004-10-17 23:19  pbartok
16558
16559         * ToolTip.cs:
16560           - Complete implementation
16561
16562 2004-10-17 23:19  pbartok
16563
16564         * XplatUIX11.cs:
16565           - Added EnableWindow method
16566           - Added SetModal stub
16567           - Added generation of WM_ACTIVATE message (still needs testing)
16568           - Added SetTopMost stub
16569           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
16570
16571 2004-10-17 23:17  pbartok
16572
16573         * XplatUIWin32.cs:
16574           - Removed VirtualKeys to XplatUIStructs
16575           - Implemented SetTopMost method
16576           - Implemented EnableWindow method
16577           - Bugfix in ScreenToClient()
16578           - Bugfixes in ClientToScreen()
16579
16580 2004-10-17 22:51  pbartok
16581
16582         * XplatUIStructs.cs:
16583           - Added WS_EX styles to WindowStyles enumeration
16584
16585 2004-10-17 22:50  pbartok
16586
16587         * XplatUI.cs, XplatUIDriver.cs:
16588           - Added method for enabling/disabling windows
16589           - Added method for setting window modality
16590           - Added method for setting topmost window
16591
16592 2004-10-17 22:49  pbartok
16593
16594         * ThemeWin32Classic.cs:
16595           - Added ToolTip drawing code
16596
16597 2004-10-17 22:49  pbartok
16598
16599         * Theme.cs:
16600           - Added ToolTip abstracts
16601
16602 2004-10-17 22:47  pbartok
16603
16604         * Form.cs:
16605           - Fixed Form.ControlCollection to handle owner relations
16606           - Added Owner/OwnedForms handling
16607           - Implemented Z-Ordering for owned forms
16608           - Removed unneeded private overload of ShowDialog
16609           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
16610             so I hope)
16611           - Fixed Close(), had wrong default
16612           - Added firing of OnLoad event
16613           - Added some commented out debug code for Ownership handling
16614
16615 2004-10-17 22:16  pbartok
16616
16617         * Control.cs:
16618           - Fixed/implemented flat list of controls
16619
16620 2004-10-17 22:14  pbartok
16621
16622         * Application.cs:
16623           - Added code to simulate modal dialogs on Win32
16624
16625 2004-10-17 16:11  jordi
16626
16627         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
16628           mouse event
16629
16630 2004-10-17 13:39  jordi
16631
16632         * MenuAPI.cs: menu drawing fixes
16633
16634 2004-10-15 09:10  ravindra
16635
16636         * StructFormat.cs: General Enum.
16637
16638 2004-10-15 09:09  ravindra
16639
16640         * SizeGripStyle.cs: Enum for Form.
16641
16642 2004-10-15 09:08  ravindra
16643
16644         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
16645           in Theme for ListView.
16646
16647 2004-10-15 09:06  ravindra
16648
16649         * ColumnHeader.cs: Flushing some formatting changes.
16650
16651 2004-10-15 09:05  ravindra
16652
16653         * ListViewItem.cs: Implemented GetBounds method and fixed coding
16654           style.
16655
16656 2004-10-15 09:03  ravindra
16657
16658         * ListView.cs: Implemented Paint method and fixed coding style.
16659
16660 2004-10-15 07:34  jordi
16661
16662         * MenuAPI.cs: fix for X11
16663
16664 2004-10-15 07:32  ravindra
16665
16666         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
16667                 - Renamed Paint() method to Draw() for clarity. Also, moved
16668                 DrawImage() to OnPaint().
16669
16670 2004-10-15 07:25  ravindra
16671
16672         * CheckBox.cs, RadioButton.cs:
16673                 - Removed Redraw (), we get it from ButtonBase.
16674                 - Implemented Paint (), to do class specific painting.
16675
16676 2004-10-15 07:16  ravindra
16677
16678         * ButtonBase.cs:
16679                 - Redraw () is not virtual now.
16680                 - Added an internal virtual method Paint (), so that
16681                 derived classes can do their painting on their own.
16682                 - Modified OnPaint () to call Paint ().
16683
16684 2004-10-15 06:43  jordi
16685
16686         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
16687           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
16688
16689 2004-10-15 00:30  ravindra
16690
16691         * MessageBox.cs:
16692                 - MessageBox on windows does not have min/max buttons.
16693                 This change in CreateParams fixes this on Windows. We
16694                 still need to implement this windowstyle behavior in
16695                 our X11 driver.
16696
16697 2004-10-14 05:14  ravindra
16698
16699         * ToolBar.cs:
16700                 - Changed Redraw () to do a Refresh () always.
16701                 - Fixed the MouseMove event handling when mouse is pressed,
16702                 ie drag event handling.
16703                 - Replaced the usage of ToolBarButton.Pressed property to
16704                 ToolBarButton.pressed internal variable.
16705
16706 2004-10-14 05:10  ravindra
16707
16708         * ToolBarButton.cs:
16709                 - Added an internal member 'inside' to handle mouse move
16710                 with mouse pressed ie mouse drag event.
16711                 - Changed 'Pressed' property to return true only when
16712                 'inside' and 'pressed' are both true.
16713                 - Some coding style love.
16714
16715 2004-10-14 00:17  ravindra
16716
16717         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
16718           public method.
16719
16720 2004-10-14 00:15  ravindra
16721
16722         * ButtonBase.cs: Redraw () related improvements.
16723
16724 2004-10-14 00:14  ravindra
16725
16726         * MessageBox.cs: Moved InitFormSize () out of Paint method and
16727           removed unnecessary calls to Button.Show () method.
16728
16729 2004-10-13 17:50  pbartok
16730
16731         * XplatUIX11.cs:
16732           - Formatting fix
16733           - Removed destroying of window until we solve the problem of X
16734             destroying the window before us on shutdown
16735
16736 2004-10-13 16:32  pbartok
16737
16738         * ButtonBase.cs:
16739           - Now Redraws on MouseUp for FlatStyle Flat and Popup
16740
16741 2004-10-13 14:18  pbartok
16742
16743         * XplatUIX11.cs:
16744           - Added code to destroy the X window
16745
16746 2004-10-13 14:18  pbartok
16747
16748         * XplatUIWin32.cs:
16749           - Added code to destroy a window
16750
16751 2004-10-13 14:12  pbartok
16752
16753         * ButtonBase.cs:
16754           - Added the Redraw on Resize that got dropped in the last rev
16755
16756 2004-10-13 09:06  pbartok
16757
16758         * ThemeWin32Classic.cs:
16759           - Path from John BouAntoun:
16760             * Fix check rendering (centre correctly for normal style, offset
16761               correctly for FlatStyle).
16762             * Fix border color usage (use backcolor) for FlatStyle.Popup
16763             * Use checkbox.Capture instead of checkbox.is_pressed when
16764               rendering flatstyle states.
16765
16766 2004-10-12 21:48  pbartok
16767
16768         * ThemeWin32Classic.cs:
16769           - Removed all occurences of SystemColors and replaced them with the
16770             matching theme color
16771
16772 2004-10-12 21:41  pbartok
16773
16774         * ThemeWin32Classic.cs:
16775           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
16776             him using the function for flatstyle drawing
16777           - Changed functions to use the new version of CPDrawBorder3D
16778
16779 2004-10-12 21:15  pbartok
16780
16781         * ControlPaint.cs:
16782           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
16783             match MS documentation. They need to return defined colors if the
16784             passed color matches the configured control color. Thanks to John
16785             BouAntoun for pointing this out.
16786
16787 2004-10-12 20:57  pbartok
16788
16789         * Control.cs:
16790           - Fix from John BouAntoun: Raise ForeColorChanged event when text
16791             color is changed
16792
16793 2004-10-12 20:46  pbartok
16794
16795         * CheckBox.cs:
16796           - Fix from John BouAntoun: Now properly sets the Appearance property
16797
16798 2004-10-12 20:45  pbartok
16799
16800         * ThemeWin32Classic.cs:
16801           - Fixes from John BouAntoun: now handles forecolors and backcolors
16802             for flatstyle rendered controls much better; It also fixes normal
16803             checkbox rendering when pushed or disabled.
16804
16805 2004-10-08 02:50  jordi
16806
16807         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
16808           work
16809
16810 2004-10-07 08:56  jordi
16811
16812         * ThemeWin32Classic.cs: Removes deletion of cached brushes
16813
16814 2004-10-06 03:59  jordi
16815
16816         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
16817           XplatUIWin32.cs: removes warnings from compilation
16818
16819 2004-10-05 12:23  jackson
16820
16821         * RadioButton.cs: Fix ctor
16822
16823 2004-10-05 11:10  pbartok
16824
16825         * MessageBox.cs:
16826           - Partial implementation by Benjamin Dasnois
16827
16828 2004-10-05 10:15  jackson
16829
16830         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
16831           by John BouAntoun
16832
16833 2004-10-05 03:07  ravindra
16834
16835         * ToolBar.cs:
16836                 - Removed a private method, Draw ().
16837                 - Fixed the ButtonDropDown event handling.
16838                 - Fixed MouseMove event handling.
16839
16840 2004-10-05 03:04  ravindra
16841
16842         * ThemeWin32Classic.cs:
16843                 - Added DrawListView method and ListViewDefaultSize property.
16844                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
16845                 - Changed DOS style CRLF to Unix format (dos2unix).
16846
16847 2004-10-05 03:03  ravindra
16848
16849         * Theme.cs:
16850                 - Added DrawListView method and ListViewDefaultSize property.
16851
16852 2004-10-05 02:42  ravindra
16853
16854         * ToolBarButton.cs: Added an internal member dd_pressed to handle
16855           clicks on DropDown arrow.
16856
16857 2004-10-04 22:56  jackson
16858
16859         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
16860           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
16861           Control handle the buffers, derived classes should not have to
16862           CreateBuffers themselves.
16863
16864 2004-10-04 21:20  jackson
16865
16866         * StatusBar.cs: The control handles resizing the buffers now.
16867
16868 2004-10-04 21:18  jackson
16869
16870         * Control.cs: When resizing the buffers should be invalidated. This
16871           should be handled in Control not in derived classes.
16872
16873 2004-10-04 14:45  jackson
16874
16875         * TabPage.cs: oops
16876
16877 2004-10-04 02:14  pbartok
16878
16879         * LeftRightAlignment.cs:
16880           - Initial check-in
16881
16882 2004-10-04 01:09  jordi
16883
16884         * ThemeWin32Classic.cs: fixes right button position causing right
16885           button not showing on horizontal scrollbars
16886
16887 2004-10-02 13:12  pbartok
16888
16889         * XplatUIX11.cs:
16890           - Simplified the Invalidate method by using an X call instead of
16891             generating the expose ourselves
16892           - Added an expose when the window background is changed
16893           - Implemented ClientToScreen method
16894
16895 2004-10-02 13:08  pbartok
16896
16897         * XplatUIWin32.cs:
16898           - Added Win32EnableWindow method (test for implementing modal
16899           dialogs)
16900           - Added ClientToScreen method and imports
16901
16902 2004-10-02 13:07  pbartok
16903
16904         * XplatUI.cs, XplatUIDriver.cs:
16905           - Added ClientToScreen coordinate translation method
16906
16907 2004-10-02 13:06  pbartok
16908
16909         * KeyPressEventArgs.cs:
16910           - Fixed access level for constructor
16911
16912 2004-10-02 13:06  pbartok
16913
16914         * NativeWindow.cs:
16915           - Changed access level for the window_collection hash table
16916
16917 2004-10-02 13:05  pbartok
16918
16919         * Form.cs:
16920           - Added KeyPreview property
16921           - Added Menu property (still incomplete, pending Jordi's menu work)
16922           - Implemented ProcessCmdKey
16923           - Implemented ProcessDialogKey
16924           - Implemented ProcessKeyPreview
16925
16926 2004-10-02 13:02  pbartok
16927
16928         * Control.cs:
16929           - Added private method to get the Control object from the window
16930           handle
16931           - Implemented ContextMenu property
16932           - Implemented PointToScreen
16933           - Implemented PreProcessMessage
16934           - Implemented IsInputChar
16935           - Implemented IsInputKey
16936           - Implemented ProcessCmdKey
16937           - Completed ProcessKeyEventArgs
16938           - Fixed message loop to call the proper chain of functions on key
16939           events
16940           - Implemented ProcessDialogChar
16941           - Implemented ProcessDialogKey
16942           - Implemented ProcessKeyMessage
16943           - Implemented ProcessKeyPreview
16944           - Added RaiseDragEvent stub (MS internal method)
16945           - Added RaiseKeyEvent stub (MS internal method)
16946           - Added RaiseMouseEvent stub (MS Internal method)
16947           - Added RaisePaintEvent stub (MS Internal method)
16948           - Added ResetMouseEventArgs stub (MS Internal method)
16949           - Implemented RtlTranslateAlignment
16950           - Implemented RtlTranslateContent
16951           - Implemented RtlTranslateHorizontal
16952           - Implemented RtlTranslateLeftRight
16953           - Added generation of KeyPress event
16954
16955 2004-10-02 05:57  ravindra
16956
16957         * ListViewItem.cs: Added attributes.
16958
16959 2004-10-02 05:32  ravindra
16960
16961         * ListView.cs: Added attributes.
16962
16963 2004-10-01 11:53  jackson
16964
16965         * Form.cs: Implement the Close method so work on MessageBox can
16966           continue.
16967
16968 2004-09-30 14:06  pbartok
16969
16970         * XplatUIX11.cs:
16971           - Bug fixes
16972
16973 2004-09-30 11:34  jackson
16974
16975         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
16976
16977 2004-09-30 07:26  ravindra
16978
16979         * ListViewItemConverter.cs: Converter for ListViewItem.
16980
16981 2004-09-30 07:26  ravindra
16982
16983         * SortOrder.cs: Enum for ListView control.
16984
16985 2004-09-30 07:25  ravindra
16986
16987         * ColumnHeader.cs: Supporting class for ListView control.
16988
16989 2004-09-30 07:24  ravindra
16990
16991         * ListView.cs, ListViewItem.cs: Initial implementation.
16992
16993 2004-09-30 07:20  ravindra
16994
16995         * ItemActivation.cs: Enum for ListView Control.
16996
16997 2004-09-29 20:29  pbartok
16998
16999         * XplatUIX11.cs:
17000           - Added lookup of pixel value for background color; tries to get a
17001             color 'close' to the requested color, it avoids having to create a
17002             colormap.  Depending on the display this could mean the used color
17003             is slightly off the desired color. Might have to change it to a more
17004             resource intensive colormap approach, but it will work as a
17005           workaround to avoid red screens.
17006
17007 2004-09-29 14:27  jackson
17008
17009         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
17010
17011 2004-09-28 12:44  pbartok
17012
17013         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
17014           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
17015           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
17016           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
17017           TrackBar.cs, VScrollBar.cs:
17018           - Streamlined Theme interfaces:
17019             * Each DrawXXX method for a control now is passed the object for
17020               the control to be drawn in order to allow accessing any state the
17021               theme might require
17022
17023             * ControlPaint methods for the theme now have a CP prefix to avoid
17024               name clashes with the Draw methods for controls
17025
17026             * Every control now retrieves it's DefaultSize from the current
17027             theme
17028
17029 2004-09-28 12:17  jackson
17030
17031         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
17032           drawing
17033
17034 2004-09-24 14:57  jackson
17035
17036         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
17037           Gives us a nice little performance boost.
17038
17039 2004-09-24 12:02  jackson
17040
17041         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
17042           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
17043           Control and supporting classes. Initial checkin
17044
17045 2004-09-23 13:08  jackson
17046
17047         * Form.cs: Temp build fixage
17048
17049 2004-09-23 01:39  ravindra
17050
17051         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
17052           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
17053           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
17054           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
17055           EventHandlers needed by ListView Control.
17056
17057 2004-09-22 14:12  pbartok
17058
17059         * ScrollableControl.cs:
17060           - Implemented DockPadding property
17061           - Implemented AutoScroll property
17062           - Implemented AutoScrollMargin property
17063           - Implemented AutoScrollMinSize property
17064           - Implemented AutoScrollPosition property
17065           - Implemented DisplayRectangle property (still incomplete)
17066           - Implemented CreateParams property
17067           - Implemented HScroll property
17068           - Implemented VScroll property
17069           - Implemented OnVisibleChanged property
17070
17071 2004-09-22 14:09  pbartok
17072
17073         * Form.cs:
17074           - Added Form.ControllCollection class
17075           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
17076             RemoveOwnedForm (still incomplete, missing on-top and common
17077             minimize/maximize behaviour)
17078           - Added StartPosition property (still incomplete, does not use when
17079             creating the form)
17080           - Added ShowDialog() methods (still incomplete, missing forcing the
17081             dialog modal)
17082
17083 2004-09-22 14:05  pbartok
17084
17085         * Application.cs:
17086           - Added message loop for modal dialogs
17087
17088 2004-09-22 14:02  pbartok
17089
17090         * GroupBox.cs:
17091           - Fixed wrong types for events
17092
17093 2004-09-22 14:00  pbartok
17094
17095         * Shortcut.cs, FormWindowState.cs:
17096           - Fixed wrong values
17097
17098 2004-09-22 12:01  jackson
17099
17100         * Control.cs: Text is never null
17101
17102 2004-09-20 22:14  pbartok
17103
17104         * XplatUIWin32.cs:
17105           - Fixed accessibility level for Idle handler
17106
17107 2004-09-20 18:54  jackson
17108
17109         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
17110           XplatUIX11.cs: New message loop that uses poll so we don't get a
17111           busy loop
17112
17113 2004-09-17 10:43  pbartok
17114
17115         * ScrollBar.cs:
17116           - Fixed behaviour of arrow buttons. Now properly behaves like
17117             Buttons (and like Microsoft's scrollbar arrow buttons)
17118
17119 2004-09-17 10:14  pbartok
17120
17121         * ScrollBar.cs:
17122           - Added missing release of keyboard/mouse capture
17123
17124 2004-09-17 06:18  jordi
17125
17126         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
17127           Theme.cs: Very early menu support
17128
17129 2004-09-16 17:45  pbartok
17130
17131         * XplatUIWin32.cs:
17132           - Fixed sending a window to the front
17133           - Added overload for SetWindowPos to avoid casting
17134
17135 2004-09-16 17:44  pbartok
17136
17137         * Control.cs:
17138           - Added SendToBack and BringToFront methods
17139
17140 2004-09-16 07:00  ravindra
17141
17142         * Copyright: Added Novell URL.
17143
17144 2004-09-16 07:00  ravindra
17145
17146         * ToolBar.cs: Invalidate should be done before redrawing.
17147
17148 2004-09-15 21:19  ravindra
17149
17150         * ColumnHeaderStyle.cs: Enum for ListView Control.
17151
17152 2004-09-15 21:18  ravindra
17153
17154         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
17155           ListView Control.
17156
17157 2004-09-13 18:26  jackson
17158
17159         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
17160           properly
17161
17162 2004-09-13 18:13  jackson
17163
17164         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
17165           a second thread and post messages into the main threads message
17166           queue. This makes timing much more consistent. Both win2K and XP
17167           have a minimum timer value of 15 milliseconds, so we now do this
17168           too.
17169
17170 2004-09-13 15:18  pbartok
17171
17172         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
17173           XplatUIX11.cs:
17174           - Added Z-Ordering methods
17175
17176 2004-09-13 10:56  pbartok
17177
17178         * Form.cs:
17179           - Fixed #region names
17180           - Moved properties and methods into their proper #regions
17181
17182 2004-09-13 10:51  pbartok
17183
17184         * Form.cs:
17185           - Added Accept and CancelButton properties
17186           - Added ProcessDialogKey() method
17187
17188 2004-09-13 08:18  pbartok
17189
17190         * IWindowTarget.cs:
17191           - Initial check-in
17192
17193 2004-09-10 21:50  pbartok
17194
17195         * Control.cs:
17196           - Added DoDragDrop() [incomplete]
17197           - Properly implemented 'Visible' handling
17198           - Added SetVisibleCore()
17199           - Implemented FindChildAtPoint()
17200           - Implemented GetContainerControl()
17201           - Implemented Hide()
17202
17203 2004-09-10 19:28  pbartok
17204
17205         * Control.cs:
17206           - Moved methods into their appropriate #regions
17207           - Reordered methods within regions alphabetically
17208
17209 2004-09-10 18:57  pbartok
17210
17211         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
17212           - Added method to retrieve text from window
17213
17214 2004-09-10 18:56  pbartok
17215
17216         * Control.cs:
17217           - Moved some internal functions into the internal region
17218           - Implemented FontHeight
17219           - Implemented RenderRightToLeft
17220           - Implemented ResizeRedraw
17221           - Implemented ShowFocusCues
17222           - Implemented ShowKeyboardCues
17223           - Implemented FromChildHandle
17224           - Implemented FromHandle
17225           - Implemented IsMnemonic
17226           - Implemented ReflectMessage
17227           - All public and protected Static Methods are now complete
17228
17229 2004-09-10 16:54  pbartok
17230
17231         * Control.cs:
17232           - Implemented remaining missing public instance properties
17233           - Alphabetized some out of order properties
17234
17235 2004-09-10 05:51  ravindra
17236
17237         * PictureBox.cs: Added a check for null image.
17238
17239 2004-09-10 00:59  jordi
17240
17241         * GroupBox.cs: remove cvs tag
17242
17243 2004-09-09 05:25  ravindra
17244
17245         * ToolBar.cs: Make redraw accessible from ToolBarButton.
17246
17247 2004-09-09 05:23  ravindra
17248
17249         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
17250           parent redraw.
17251
17252 2004-09-09 02:28  pbartok
17253
17254         * ThemeWin32Classic.cs:
17255           - Improve disabled string look
17256
17257 2004-09-09 01:15  jordi
17258
17259         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
17260           args and handler
17261
17262 2004-09-08 23:56  ravindra
17263
17264         * ItemBoundsPortion.cs: It's enum, not a class!
17265
17266 2004-09-08 23:47  ravindra
17267
17268         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
17269           Enums for Form.
17270
17271 2004-09-08 21:13  ravindra
17272
17273         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
17274           ListView control.
17275
17276 2004-09-08 21:03  ravindra
17277
17278         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
17279           avoid crash.
17280
17281 2004-09-08 21:01  ravindra
17282
17283         * ScrollableControl.cs: Removed unreachable code.
17284
17285 2004-09-08 06:45  jordi
17286
17287         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
17288
17289 2004-09-08 01:00  jackson
17290
17291         * XplatUIX11.cs: Only run the timers when updating the message
17292           queue. This effectively gives X messages a higher priority then
17293           timer messages. Timers still need love though
17294
17295 2004-09-07 14:01  jackson
17296
17297         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
17298           this for us and the handle is no longer valid.
17299
17300 2004-09-07 13:59  jackson
17301
17302         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
17303           loop that manages to not crash. TODO: Add poll and cleanup timers
17304
17305 2004-09-07 11:12  jordi
17306
17307         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
17308
17309 2004-09-07 03:40  jordi
17310
17311         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
17312           fixes, methods, multiple links
17313
17314 2004-09-06 06:55  jordi
17315
17316         * Control.cs: Caches ClientRectangle rectangle value
17317
17318 2004-09-05 02:03  jordi
17319
17320         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
17321           certain situations
17322
17323 2004-09-04 11:10  jordi
17324
17325         * Label.cs: Refresh when font changed
17326
17327 2004-09-02 16:24  pbartok
17328
17329         * Control.cs:
17330           - Added sanity check to creation of double buffer bitmap
17331
17332 2004-09-02 16:24  pbartok
17333
17334         * ButtonBase.cs:
17335           - Fixed selection of text color
17336           - Fixed handling of resize event; now properly recreates double
17337             buffering bitmap
17338           - Added missing assignment of TextAlignment
17339           - Added proper default for TextAlignment
17340
17341 2004-09-02 14:26  pbartok
17342
17343         * RadioButton.cs:
17344           - Added missing RadioButton.RadioButtonAccessibleObject class
17345
17346 2004-09-02 14:26  pbartok
17347
17348         * Control.cs:
17349           - Added missing Control.ControlAccessibleObject class
17350           - Started to implement Select()ion mechanisms, still very incomplete
17351
17352 2004-09-02 14:25  pbartok
17353
17354         * AccessibleObject.cs:
17355           - Added missing methods
17356
17357 2004-09-02 14:23  pbartok
17358
17359         * AccessibleNavigation.cs, AccessibleSelection.cs:
17360           - Initial check-in
17361
17362 2004-09-02 10:32  jordi
17363
17364         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
17365           pool for pens, brushes, and hatchbruses
17366
17367 2004-09-01 15:30  jackson
17368
17369         * StatusBar.cs: Fix typo
17370
17371 2004-09-01 14:44  pbartok
17372
17373         * RadioButton.cs:
17374           - Fixed state
17375
17376 2004-09-01 14:39  pbartok
17377
17378         * Button.cs, RadioButton.cs:
17379           - Functional initial check-in
17380
17381 2004-09-01 14:01  pbartok
17382
17383         * CheckBox.cs:
17384           - Added missing default
17385           - Added missing region mark
17386
17387 2004-09-01 09:10  jordi
17388
17389         * Label.cs: fixes method signatures, new methods, events, fixes
17390           autosize
17391
17392 2004-09-01 07:19  jordi
17393
17394         * Control.cs: Init string variables with an empty object
17395
17396 2004-09-01 04:20  jordi
17397
17398         * Control.cs: fires OnFontChanged event
17399
17400 2004-08-31 20:07  pbartok
17401
17402         * ButtonBase.cs:
17403           - Enabled display of strings
17404
17405 2004-08-31 20:05  pbartok
17406
17407         * Form.cs:
17408           - Added (partial) implementation of DialogResult; rest needs to be
17409             implemented when the modal loop code is done
17410
17411 2004-08-31 19:55  pbartok
17412
17413         * CheckBox.cs:
17414           - Fixed to match the removal of the needs_redraw concept
17415
17416 2004-08-31 19:55  pbartok
17417
17418         * ButtonBase.cs:
17419           - Removed the rather odd split between 'needs redraw' and redrawing
17420           - Now handles the events that require regeneration (ambient
17421             properties and size)
17422
17423 2004-08-31 19:41  pbartok
17424
17425         * Control.cs:
17426           - Added firing of BackColorChanged event
17427           - Added TopLevelControl property
17428           - Fixed handling of WM_ERASEBKGRND message
17429
17430 2004-08-31 12:49  pbartok
17431
17432         * ButtonBase.cs:
17433           - Removed debug
17434           - Minor fixes
17435
17436 2004-08-31 12:48  pbartok
17437
17438         * CheckBox.cs:
17439           - Finished (famous last words)
17440
17441 2004-08-31 04:35  jordi
17442
17443         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
17444           scrolling bugs, adds new methods
17445
17446 2004-08-30 14:42  pbartok
17447
17448         * CheckBox.cs:
17449           - Implemented CheckBox drawing code
17450
17451 2004-08-30 14:42  pbartok
17452
17453         * ButtonBase.cs:
17454           - Made Redraw() and CheckRedraw() virtual
17455           - Improved mouse up/down/move logic to properly track buttons
17456
17457 2004-08-30 09:44  pbartok
17458
17459         * CheckBox.cs:
17460           - Updated to fix broken build. Not complete yet.
17461
17462 2004-08-30 09:28  pbartok
17463
17464         * CheckState.cs:
17465           - Initial checkin
17466
17467 2004-08-30 09:17  pbartok
17468
17469         * Appearance.cs:
17470           - Initial check-in
17471
17472 2004-08-27 16:12  ravindra
17473
17474         * ToolBarButton.cs: Added TypeConverter attribute.
17475
17476 2004-08-27 16:07  ravindra
17477
17478         * ImageIndexConverter.cs: Implemented.
17479
17480 2004-08-27 14:17  pbartok
17481
17482         * Control.cs:
17483           - Removed unneeded stack vars
17484           - First attempt to fix sizing issues when layout is suspended
17485
17486 2004-08-25 15:35  jordi
17487
17488         * ScrollBar.cs: more fixes to scrollbar
17489
17490 2004-08-25 14:04  ravindra
17491
17492         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
17493           Added the missing divider code and grip for ToolBar Control.
17494
17495 2004-08-25 13:20  pbartok
17496
17497         * Control.cs:
17498           - Control now properly passes the ambient background color to child
17499             controls
17500
17501 2004-08-25 13:20  jordi
17502
17503         * ScrollBar.cs: small bug fix regarding bar position
17504
17505 2004-08-25 12:33  pbartok
17506
17507         * Timer.cs:
17508           - Now only calls SetTimer or KillTimer if the enabled state has
17509           changed
17510
17511 2004-08-25 12:33  pbartok
17512
17513         * XplatUIWin32.cs:
17514           - Fixed timer handling, now seems to work
17515           - Improved error message for window creation
17516
17517 2004-08-25 12:32  pbartok
17518
17519         * Control.cs:
17520           - Fixed generation of MouseUp message
17521
17522 2004-08-25 12:29  jordi
17523
17524         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
17525           and fixes for progressbar
17526
17527 2004-08-24 18:43  ravindra
17528
17529         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
17530           in ToolBar control.
17531
17532 2004-08-24 17:15  pbartok
17533
17534         * Panel.cs:
17535           - Added #region
17536           - Added missing events
17537           - Alphabetized
17538
17539 2004-08-24 17:14  pbartok
17540
17541         * StatusBar.cs, PictureBox.cs:
17542           - Now uses Control's CreateParams
17543
17544 2004-08-24 16:36  pbartok
17545
17546         * XplatUIX11.cs:
17547           - Fixed background color handling
17548           - Fixed sending of enter/leave events on a grab
17549
17550 2004-08-24 16:35  pbartok
17551
17552         * X11Structs.cs:
17553           - Refined definitions for CrossingEvent
17554
17555 2004-08-24 12:37  jordi
17556
17557         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
17558           formmating, methods signature, and adds missing events
17559
17560 2004-08-24 12:24  jordi
17561
17562         * Control.cs: fire OnEnabledChanged event
17563
17564 2004-08-24 11:17  pbartok
17565
17566         * XplatUIWin32.cs:
17567           - Implemented SetTimer() and KillTimer()
17568
17569 2004-08-24 11:16  pbartok
17570
17571         * XplatUIX11.cs:
17572           - Now uses Remove instead of Add to kill the timer
17573
17574 2004-08-24 10:16  jackson
17575
17576         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
17577           picture boxes in the theme now. Draw picture box borders and obey
17578           sizing modes
17579
17580 2004-08-24 05:49  jackson
17581
17582         * Timer.cs: Remove top secret debugging code
17583
17584 2004-08-24 05:34  jackson
17585
17586         * PictureBox.cs: Temp hack to make picture boxes draw their full
17587           image
17588
17589 2004-08-24 05:29  jackson
17590
17591         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
17592           XplatUIX11.cs: Move timers to the driver level. On X they are
17593           queued by the driver and checked on idle.
17594
17595 2004-08-24 01:07  jackson
17596
17597         * XplatUIX11.cs: Use a queue for async messages instead of passing
17598           them as ClientMessages since that was totally broken. Also simply
17599           check for events and return an idle message if none are found. This
17600           gives us an idle handler, and prevents deadlocking when no messages
17601           are in the queue.
17602
17603 2004-08-23 18:19  ravindra
17604
17605         * XplatUIWin32.cs: Removed the unwanted destructor.
17606
17607 2004-08-23 17:27  pbartok
17608
17609         * ButtonBase.cs:
17610           - Finishing touches. Works now, just needs some optimizations.
17611
17612 2004-08-23 16:53  jordi
17613
17614         * ScrollBar.cs: small fix
17615
17616 2004-08-23 16:45  pbartok
17617
17618         * Application.cs:
17619           - Removed debug output
17620           - Simplifications
17621
17622 2004-08-23 16:43  jordi
17623
17624         * ScrollBar.cs: [no log message]
17625
17626 2004-08-23 16:10  pbartok
17627
17628         * Form.cs:
17629           - Fixed handling of WM_CLOSE message
17630           - Removed debug output
17631
17632 2004-08-23 16:09  pbartok
17633
17634         * Application.cs:
17635           - Added handling of Idle event
17636           - Added handling of form closing
17637           - Fixed reporting of MessageLoop property
17638           - Removed some unneeded code, should provide a bit of a speedup
17639
17640 2004-08-23 15:22  pbartok
17641
17642         * Control.cs:
17643           - Added InitLayout() method
17644           - Added code to properly perform layout when Anchor or Dock property
17645             is changed
17646           - Changed 'interpretation' of ResumeLayout. MS seems to have a
17647             LAMESPEC, tried to do it in a way that makes sense
17648
17649 2004-08-23 14:10  jordi
17650
17651         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
17652           properties and methods
17653
17654 2004-08-23 13:55  pbartok
17655
17656         * Control.cs:
17657           - Properly fixed Jordi's last fix
17658           - Now uses Cursor's Position property instead of calling XplatUI
17659           directly
17660
17661 2004-08-23 13:44  jordi
17662
17663         * PaintEventHandler.cs: Adding missing attribute
17664
17665 2004-08-23 13:39  pbartok
17666
17667         * Cursor.cs:
17668           - Implemented Position property
17669
17670 2004-08-23 13:39  pbartok
17671
17672         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
17673           - Added method to move mouse cursor
17674
17675 2004-08-23 13:39  pbartok
17676
17677         * XplatUIX11.cs:
17678           - Fixed setting of background color
17679           - Added method to move mouse cursor
17680
17681 2004-08-23 13:16  jordi
17682
17683         * Control.cs: avoids null exception
17684
17685 2004-08-22 17:46  jackson
17686
17687         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
17688           PictureBox
17689
17690 2004-08-22 17:40  jackson
17691
17692         * XplatUIX11.cs: Add some missing locks
17693
17694 2004-08-22 15:10  pbartok
17695
17696         * Control.cs, Form.cs:
17697           - Removed OverlappedWindow style from Control, instead it's default
17698             now is child
17699           - Made form windows OverlappedWindow by default
17700
17701 2004-08-22 13:34  jackson
17702
17703         * ScrollBar.cs: Update the position through the Value property so
17704           the OnValueChanged event is raised.
17705
17706 2004-08-22 12:04  pbartok
17707
17708         * SWF.csproj:
17709           - Added Cursor.cs and UserControl.cs
17710
17711 2004-08-22 12:03  pbartok
17712
17713         * Cursor.cs:
17714           - Started implementation, not usable yet
17715
17716 2004-08-22 12:00  pbartok
17717
17718         * UserControl.cs:
17719           - Implemented UserControl (complete)
17720
17721 2004-08-21 19:20  ravindra
17722
17723         * ToolBar.cs: Correcting the formatting mess of VS.NET.
17724
17725 2004-08-21 18:49  ravindra
17726
17727         * ToolBar.cs: Probably this completes the missing attributes in
17728           toolbar control.
17729
17730 2004-08-21 18:03  ravindra
17731
17732         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
17733           Fixed toolbar control signatures.
17734
17735 2004-08-21 16:32  pbartok
17736
17737         * LinkLabel.cs:
17738           - Signature Fixes
17739
17740 2004-08-21 16:30  pbartok
17741
17742         * Label.cs:
17743           - Signature fixes
17744
17745 2004-08-21 16:19  pbartok
17746
17747         * Control.cs, Label.cs:
17748           - Signature fixes
17749
17750 2004-08-21 15:57  pbartok
17751
17752         * ButtonBase.cs:
17753           - Added loads of debug output for development
17754           - Fixed typo in method name
17755
17756 2004-08-21 15:52  pbartok
17757
17758         * ToolBarButtonClickEventArgs.cs:
17759           - Added missing base class
17760
17761 2004-08-21 14:53  pbartok
17762
17763         * Control.cs:
17764           - Updated to match new GrabWindow signature
17765
17766 2004-08-21 14:51  pbartok
17767
17768         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
17769           - Added method to get default display size
17770
17771 2004-08-21 14:23  pbartok
17772
17773         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
17774           - Added method to query current grab state
17775           - Added argument to allow confining a grab to a window
17776
17777 2004-08-21 14:22  pbartok
17778
17779         * Keys.cs:
17780           - Added [Flags] attribute so that modifiers can be used in bitwise
17781           ops
17782
17783 2004-08-21 14:21  pbartok
17784
17785         * TrackBar.cs, ScrollBar.cs:
17786           - Replaced direct XplatUI calls with their Control counterpart
17787
17788 2004-08-21 13:32  pbartok
17789
17790         * Control.cs:
17791           - Implemented Created property
17792
17793 2004-08-21 13:28  pbartok
17794
17795         * Control.cs:
17796           - Implemented ContainsFocus
17797
17798 2004-08-21 13:26  pbartok
17799
17800         * Control.cs:
17801           - Implemented CausesValidation
17802
17803 2004-08-21 13:21  pbartok
17804
17805         * Control.cs:
17806           - Implemented CanFocus
17807           - Implemented CanSelect
17808           - Implemented Capture
17809
17810 2004-08-21 12:35  pbartok
17811
17812         * XplatUIWin32.cs:
17813           - Fixed bug with Async message handling
17814           - Implemented getting the ModifierKeys
17815
17816 2004-08-21 12:32  jackson
17817
17818         * AsyncMethodResult.cs: Make sure we have the mutex before we
17819           release it. Fixes BeginInvoke on windows
17820
17821 2004-08-21 11:31  pbartok
17822
17823         * XplatUIWin32.cs, XplatUIX11.cs:
17824           - Drivers now return proper mouse state
17825
17826 2004-08-21 10:54  jackson
17827
17828         * Control.cs: Implement EndInvoke
17829
17830 2004-08-21 10:48  jackson
17831
17832         * Timer.cs: Remove unneeded finalizer
17833
17834 2004-08-20 19:52  ravindra
17835
17836         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
17837           in mouse event handling in the ToolBar control.
17838
17839 2004-08-20 19:50  ravindra
17840
17841         * ImageList.cs: Changed draw method to use the arguments passed in
17842           to draw the image.
17843
17844 2004-08-20 18:58  pbartok
17845
17846         * XplatUIStructs.cs:
17847           - Added private message for async communication
17848
17849 2004-08-20 17:38  ravindra
17850
17851         * Control.cs: Made RightToLeft property virtual and removed a
17852           Console.WriteLine.
17853
17854 2004-08-20 14:39  jordi
17855
17856         * ThemeGtk.cs: use style_attach
17857
17858 2004-08-20 14:39  pbartok
17859
17860         * XplatUIWin32.cs:
17861           - Added jackson's Async code from X11 to Win32
17862
17863 2004-08-20 14:09  pbartok
17864
17865         * SWF.csproj:
17866           - Added all new files
17867
17868 2004-08-20 14:09  pbartok
17869
17870         * Control.cs:
17871           - Added call to set window background color
17872
17873 2004-08-20 14:03  pbartok
17874
17875         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
17876           - Added method for setting the window background
17877
17878 2004-08-20 14:02  pbartok
17879
17880         * XplatUIWin32.cs:
17881           - Added method for setting the background color
17882           - Added handling for erasing the window background
17883
17884 2004-08-20 13:45  jordi
17885
17886         * TrackBar.cs: fixes timer, new properties and methods
17887
17888 2004-08-20 13:34  jackson
17889
17890         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
17891           correct thread
17892
17893 2004-08-20 13:22  jackson
17894
17895         * Timer.cs: Timer Tick events are now handed through Controls Async
17896           mechanism so the callbacks are executed in the same thread as X
17897
17898 2004-08-20 13:19  jackson
17899
17900         * XplatUIDriver.cs: Expose functionality to send async messages
17901           through the driver
17902
17903 2004-08-20 13:18  jackson
17904
17905         * Control.cs: Implement Begininvoke
17906
17907 2004-08-20 13:14  jackson
17908
17909         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
17910           messages through the driver
17911
17912 2004-08-20 13:12  jackson
17913
17914         * XplatUIX11.cs: Lock before all X operations. Also added Async
17915           method functionality through XSendEvent
17916
17917 2004-08-20 13:11  jackson
17918
17919         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
17920           This will screw up on 64 bit systems)
17921
17922 2004-08-20 13:10  jackson
17923
17924         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
17925           Async messages through X/Win32
17926
17927 2004-08-19 19:39  pbartok
17928
17929         * XplatUIX11.cs:
17930           - Updated code to match new HandleData.DeviceContext type
17931
17932 2004-08-19 19:38  pbartok
17933
17934         * HandleData.cs:
17935           - Made DeviceContext a generic object to allow usage from various
17936           drivers
17937           - Added support for queueing Windows messages
17938
17939 2004-08-19 19:37  pbartok
17940
17941         * XplatUIWin32.cs:
17942           - Added generation of MouseEnter, MouseLeave and MouseHover events
17943           - Added cleanup on EndPaint
17944
17945 2004-08-19 19:17  pbartok
17946
17947         * Control.cs:
17948           - Added handling of WM_MOUSEHOVER
17949           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
17950           code
17951
17952 2004-08-19 18:55  jordi
17953
17954         * ThemeGtk.cs: fixes button order
17955
17956 2004-08-19 18:12  jordi
17957
17958         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
17959
17960 2004-08-19 17:09  pbartok
17961
17962         * Control.cs:
17963           - Added Right property
17964           - Added RightToLeft property
17965
17966 2004-08-19 16:27  jordi
17967
17968         * ThemeGtk.cs: experimental GTK theme support
17969
17970 2004-08-19 16:26  jordi
17971
17972         * ITheme.cs, Theme.cs: move themes from an interface to a class
17973
17974 2004-08-19 16:25  jordi
17975
17976         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
17977           theme enhancaments
17978
17979 2004-08-19 16:04  pbartok
17980
17981         * XplatUIX11.cs:
17982           - Added colormap basics
17983           - Added a way to re-initialize with a different display handle
17984           - Fixed setting of the window background color
17985           - Added various X11 imports related to colors and colormaps
17986
17987 2004-08-19 15:51  pbartok
17988
17989         * X11Structs.cs:
17990           - Removed packing hints (Paolo suggested this a while back)
17991           - fixed colormap type
17992           - Added default Atom types
17993           - Added Screen and color structs and enums
17994
17995 2004-08-19 15:39  pbartok
17996
17997         * ImageList.cs:
17998           - Added missing Draw() method
17999           - Added missing RecreateHandle event
18000
18001 2004-08-19 15:30  pbartok
18002
18003         * Form.cs:
18004           - Added handling of WM_CLOSE
18005
18006 2004-08-18 13:16  jordi
18007
18008         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
18009           a table
18010
18011 2004-08-18 09:56  jordi
18012
18013         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
18014
18015 2004-08-17 15:31  ravindra
18016
18017         * SWF.csproj: Updated project.
18018
18019 2004-08-17 15:25  pbartok
18020
18021         * Control.cs:
18022           - Drawing improvement; don't call UpdateBounds if we are not visible
18023             (or have been minimized)
18024
18025 2004-08-17 15:24  pbartok
18026
18027         * XplatUIWin32.cs:
18028           - Finished IsVisible
18029           - Added Win32GetWindowPlacement
18030
18031 2004-08-17 15:08  jackson
18032
18033         * Panel.cs: Initial checkin of the Panel
18034
18035 2004-08-17 14:25  pbartok
18036
18037         * Control.cs:
18038           - Fixed broken handling of default window sizes
18039
18040 2004-08-17 13:29  jackson
18041
18042         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
18043           has a large startup time.
18044
18045 2004-08-17 10:25  jackson
18046
18047         * HandleData.cs: union areas properly
18048
18049 2004-08-17 10:12  jackson
18050
18051         * HandleData.cs: union areas properly
18052
18053 2004-08-16 20:00  ravindra
18054
18055         * ToolBar.cs, ToolBarButton.cs: Added attributes.
18056
18057 2004-08-16 18:48  ravindra
18058
18059         * ToolBar.cs: Added attributes.
18060
18061 2004-08-16 17:17  ravindra
18062
18063         * SWF.csproj: Updated project.
18064
18065 2004-08-16 17:16  jackson
18066
18067         * XplatUIX11.cs: Check for more expose events before sending a
18068           WM_PAINT so they can all be grouped together. This makes dragging a
18069           window across another window redraw in a sane way.
18070
18071 2004-08-16 15:47  pbartok
18072
18073         * Control.cs:
18074           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
18075             support OnMouseEnter/Leave()
18076           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
18077             exposure handling
18078
18079 2004-08-16 15:46  pbartok
18080
18081         * XplatUIStructs.cs, XplatUIX11.cs:
18082           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
18083           OnMouseEnter/Leave()
18084
18085 2004-08-16 15:34  jackson
18086
18087         * XplatUIX11.cs: Group multiple expose events in HandleData, make
18088           sure messages get the message field set to WM_NULL if they are not
18089           handled.
18090
18091 2004-08-16 15:24  jackson
18092
18093         * HandleData.cs: HandleData is used for storing message information
18094           for window handles
18095
18096 2004-08-15 17:23  ravindra
18097
18098         * ColorDepth.cs: Added attribute.
18099
18100 2004-08-15 17:23  ravindra
18101
18102         * SWF.csproj: Updated project for ToolBar Control.
18103
18104 2004-08-15 17:20  ravindra
18105
18106         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
18107           control and also dos2unix format.
18108
18109 2004-08-15 17:13  ravindra
18110
18111         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
18112           ToolBarButtonClickEventArgs.cs,
18113           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
18114           ToolBarTextAlign.cs: First Implementation of ToolBar control.
18115
18116 2004-08-15 15:31  pbartok
18117
18118         * ButtonBase.cs:
18119           - First (mostly) working version
18120
18121 2004-08-13 16:15  pbartok
18122
18123         * Control.cs:
18124           - Fixed Anchor default
18125
18126 2004-08-13 15:43  pbartok
18127
18128         * Control.cs:
18129           - Changed GetCursorPos signature
18130
18131 2004-08-13 15:42  pbartok
18132
18133         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
18134           - Changed signature for GetCursorPos
18135
18136 2004-08-13 15:25  pbartok
18137
18138         * XplatUIX11.cs:
18139           - Cleanup
18140           - Fixed resizing/exposure handling
18141
18142 2004-08-13 15:22  jordi
18143
18144         * ThemeWin32Classic.cs: removes redundant code and fixes issues
18145           with tickposition
18146
18147 2004-08-13 14:55  jordi
18148
18149         * TrackBar.cs: change from wndproc to events
18150
18151 2004-08-13 13:00  jordi
18152
18153         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
18154           XplatUIX11.cs: implements PointToClient (ScreenToClient)
18155
18156 2004-08-13 12:53  pbartok
18157
18158         * XplatUIWin32.cs:
18159           - Changed GetWindowPos to also provide client area size
18160           - Fixed broken prototypes for several win32 functions
18161
18162 2004-08-13 12:53  pbartok
18163
18164         * XplatUI.cs, XplatUIDriver.cs:
18165           - Changed GetWindowPos to also provide client area size
18166
18167 2004-08-13 12:52  pbartok
18168
18169         * XplatUIX11.cs:
18170           - Added generation of WM_POSCHANGED
18171           - Changed GetWindowPos to also provide client area size
18172
18173 2004-08-13 12:52  pbartok
18174
18175         * Control.cs:
18176           - Added Dispose() and destructor
18177           - Fixed resizing and bounds calculation
18178           - Fixed Layout
18179           - Added memory savings for invisible windows
18180
18181 2004-08-13 12:46  jordi
18182
18183         * TrackBar.cs: adds timer and grap window
18184
18185 2004-08-13 10:25  jackson
18186
18187         * Timer.cs: SWF Timer
18188
18189 2004-08-12 16:59  pbartok
18190
18191         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
18192           - Implemented method to get current mouse position
18193
18194 2004-08-12 14:29  jordi
18195
18196         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
18197           enhancement, fix mouse problems, highli thumb, etc
18198
18199 2004-08-12 13:31  pbartok
18200
18201         * Control.cs:
18202           - Fixed Anchoring bugs
18203
18204 2004-08-12 13:01  jackson
18205
18206         * StatusBar.cs: Don't forget things
18207
18208 2004-08-12 12:54  jackson
18209
18210         * ThemeWin32Classic.cs: Handle owner draw status bars
18211
18212 2004-08-12 12:54  jackson
18213
18214         * StatusBar.cs: Implement missing properties, events, and methods.
18215           Handle mouse clicking
18216
18217 2004-08-12 10:19  jackson
18218
18219         * StatusBarPanelClickEventArgs.cs,
18220           StatusBarPanelClickEventHandler.cs: Classes for handling status
18221           bar panel click events
18222
18223 2004-08-12 10:10  jackson
18224
18225         * Control.cs: Add missing properties
18226
18227 2004-08-12 09:46  pbartok
18228
18229         * BindingsManagerBase.cs:
18230           - Name changed to BindingManagerBase.cs
18231
18232 2004-08-12 09:25  jordi
18233
18234         * ScrollableControl.cs: calls ctrlbase instead of exeception
18235
18236 2004-08-11 16:28  pbartok
18237
18238         * InputLanguageChangingEventArgs.cs:
18239           - Never check in before compiling. Fixes the last check-in
18240
18241 2004-08-11 16:26  pbartok
18242
18243         * InputLanguageChangingEventArgs.cs:
18244           - More signature fixes
18245
18246 2004-08-11 16:20  pbartok
18247
18248         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
18249           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
18250           ImageListStreamer.cs, InputLanguage.cs,
18251           InputLanguageChangedEventArgs.cs,
18252           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
18253           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
18254           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
18255           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
18256           - Signature fixes
18257
18258 2004-08-11 16:16  pbartok
18259
18260         * Application.cs:
18261           - Fixed Signature
18262           - Added .Net 1.1 method
18263
18264 2004-08-11 15:25  pbartok
18265
18266         * SWF.csproj:
18267           - Fixed BindingManagerBase.cs filename
18268
18269 2004-08-11 15:22  pbartok
18270
18271         * BindingManagerBase.cs:
18272           - Was checked in with wrong filename
18273
18274 2004-08-11 14:50  pbartok
18275
18276         * SWF.csproj:
18277           - Updated
18278
18279 2004-08-11 13:41  jordi
18280
18281         * XplatUIWin32.cs: Fixes ClientRect
18282
18283 2004-08-11 13:19  pbartok
18284
18285         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
18286           XplatUIX11.cs:
18287           - We had SetWindowPos and MoveWindow to set window positions and
18288             size, removed MoveWindow. We have GetWindowPos, so it made sense to
18289             keep SetWindowPos as matching counterpart
18290           - Added some X11 sanity checking
18291
18292 2004-08-11 12:59  pbartok
18293
18294         * Control.cs:
18295           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
18296             (It seems that SetBounds is just a front for SetBoundsCore and
18297              SetBoundsCore updates the underlying window system and
18298              UpdateBounds is responsible for updating the variables associated
18299              with the Control and sending the events)
18300           - Major cleanup of Size handling; we now have two sizes, client_size
18301             and bounds. Bounds defines the window with decorations, client_size
18302             without them.
18303
18304 2004-08-11 12:55  pbartok
18305
18306         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
18307           - Added method to calculate difference between decorated window and
18308             raw client area
18309
18310 2004-08-11 12:54  pbartok
18311
18312         * Label.cs:
18313           - Forcing redraw on resize
18314
18315 2004-08-11 11:43  pbartok
18316
18317         * ImageList.cs:
18318           - Removed disposing of the actual images when the list is disposed
18319
18320 2004-08-11 09:13  pbartok
18321
18322         * Control.cs:
18323           - Now properly reparents windows
18324
18325 2004-08-11 08:37  pbartok
18326
18327         * Control.cs:
18328           - Duh!
18329
18330 2004-08-11 07:47  pbartok
18331
18332         * Control.cs:
18333           - Rewrote the collection stuff. Might not be as fast now, not
18334             keeping the number of children around and accessible directly, but
18335             it's more straightforward
18336
18337 2004-08-11 07:44  pbartok
18338
18339         * AccessibleObject.cs:
18340           - Fixed to match ControlCollection rewrite
18341
18342 2004-08-11 07:43  pbartok
18343
18344         * ImageList.cs:
18345           - Added missing creation of the collection list
18346
18347 2004-08-10 20:08  jackson
18348
18349         * StatusBar.cs: Get the paint message from WndProc
18350
18351 2004-08-10 19:31  jackson
18352
18353         * ThemeWin32Classic.cs: Create Brushes as little as possible
18354
18355 2004-08-10 19:20  jackson
18356
18357         * UICues.cs: Add Flags attribute
18358
18359 2004-08-10 19:19  jackson
18360
18361         * StatusBarPanel.cs: Signature cleanup
18362
18363 2004-08-10 19:10  jackson
18364
18365         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
18366           Initial implementation of status bar item drawing
18367
18368 2004-08-10 17:27  jordi
18369
18370         * TrackBar.cs: add missing methods, properties, and restructure to
18371           hide extra ones
18372
18373 2004-08-10 16:24  jackson
18374
18375         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
18376           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
18377           attribute
18378
18379 2004-08-10 13:21  jordi
18380
18381         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
18382           enhancements and standarize on win colors defaults
18383
18384 2004-08-10 12:52  jackson
18385
18386         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
18387           ThemeWin32Classic.cs: Implement DrawItem functionality
18388
18389 2004-08-10 12:47  jordi
18390
18391         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
18392
18393 2004-08-10 12:32  jordi
18394
18395         * Control.cs: throw ontextchange event
18396
18397 2004-08-10 11:43  pbartok
18398
18399         * Control.cs:
18400           - Added more to the still unfinished Dock/Anchor layout code
18401
18402 2004-08-10 11:39  pbartok
18403
18404         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
18405           - Added GetWindowPos method
18406
18407 2004-08-10 11:36  pbartok
18408
18409         * XplatUIWin32.cs:
18410           - Implemented several methods
18411
18412 2004-08-10 09:47  jackson
18413
18414         * TrackBar.cs: Allow control to handle buffering
18415
18416 2004-08-10 09:41  jackson
18417
18418         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
18419
18420 2004-08-10 09:24  jackson
18421
18422         * Label.cs, LinkLabel.cs: Let Control handle buffering.
18423
18424 2004-08-10 09:09  jackson
18425
18426         * StatusBar.cs: Let Control handle all the buffering.
18427
18428 2004-08-10 09:08  jackson
18429
18430         * Control.cs: Control will now handle the buffering code, so each
18431           control does not have to implement this.
18432
18433 2004-08-10 08:34  jackson
18434
18435         * XplatUIDriver.cs: Use default colors from the theme
18436
18437 2004-08-09 17:12  pbartok
18438
18439         * ImageList.cs:
18440           - Fixed several bugs Ravindra pointed out
18441
18442 2004-08-09 16:11  pbartok
18443
18444         * Control.cs:
18445           - Added incomplete dock layout code
18446           - Added support for mouse wheel
18447
18448 2004-08-09 16:09  pbartok
18449
18450         * XplatUIX11.cs:
18451           - Added handling for middle and right mousebutton
18452           - Added handling for mouse wheel
18453           - Added handling for key state and mouse state and position
18454           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
18455           messages
18456
18457 2004-08-09 15:40  jackson
18458
18459         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
18460           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
18461           checkin
18462
18463 2004-08-09 15:37  jackson
18464
18465         * StatusBar.cs: Initial implementation of StatusBar
18466
18467 2004-08-09 15:36  jackson
18468
18469         * ITheme.cs: Add support for drawing status bar and getting status
18470           bar item sizes
18471
18472 2004-08-09 15:35  pbartok
18473
18474         * MouseButtons.cs:
18475           - Fixed values
18476
18477 2004-08-09 15:34  jackson
18478
18479         * ThemeWin32Classic.cs: Add support for drawing status bar and get
18480           status bar item sizes
18481
18482 2004-08-09 15:21  jackson
18483
18484         * ThemeWin32Classic.cs: Use known colors for default control
18485           colours
18486
18487 2004-08-09 15:12  jackson
18488
18489         * ThemeWin32Classic.cs: Make the default font static, it is static
18490           in control so this doesn't change functionality and creating fonts
18491           is sloooooow.
18492
18493 2004-08-09 14:56  pbartok
18494
18495         * X11Structs.cs:
18496           - Added GrabMode enum
18497
18498 2004-08-09 14:55  pbartok
18499
18500         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
18501           - Removed Run method, was only required for initial development
18502
18503 2004-08-09 14:51  pbartok
18504
18505         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
18506           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
18507           capture
18508
18509 2004-08-09 13:48  pbartok
18510
18511         * XplatUIX11.cs:
18512           - Fixed default sizing for child windows
18513
18514 2004-08-09 12:56  pbartok
18515
18516         * XplatUIX11.cs:
18517           - Added generation of WM_DESTROY message
18518           - Added handling of window manager induced shutdown
18519
18520 2004-08-09 11:31  jackson
18521
18522         * ThemeWin32Classic.cs: New names for control properties
18523
18524 2004-08-09 11:25  jackson
18525
18526         * Control.cs: Use new color names
18527
18528 2004-08-09 11:02  jackson
18529
18530         * XplatUI.cs: Get default window properties from the theme
18531
18532 2004-08-09 11:01  jackson
18533
18534         * ITheme.cs: The theme engine now controls default window
18535           properties
18536
18537 2004-08-09 11:00  jackson
18538
18539         * ThemeWin32Classic.cs: Add default window color properties
18540
18541 2004-08-09 10:17  jackson
18542
18543         * ThemeWin32Classic.cs: Use correct default back color
18544
18545 2004-08-09 10:05  jackson
18546
18547         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
18548           the theme now.
18549
18550 2004-08-09 09:56  jackson
18551
18552         * XplatUI.cs: Remove defaults, these are handled by the theme now.
18553
18554 2004-08-09 09:54  jackson
18555
18556         * Control.cs: Get default properties from the theme.
18557
18558 2004-08-09 09:53  jackson
18559
18560         * ITheme.cs: Themes now handle default control properties
18561
18562 2004-08-09 09:53  jackson
18563
18564         * ThemeWin32Classic.cs: Themes now handle default control
18565           properties so coloring will be consistent
18566
18567 2004-08-08 16:54  jordi
18568
18569         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
18570
18571 2004-08-08 15:08  jordi
18572
18573         * XplatUIX11.cs: fixes keyboard crash
18574
18575 2004-08-08 13:47  jordi
18576
18577         * Label.cs: add cvs header info
18578
18579 2004-08-08 12:09  jackson
18580
18581         * ThemeWin32Classic.cs: Add pen_buttonface
18582
18583 2004-08-08 11:52  jordi
18584
18585         * Label.cs, LinkLabel.cs: [no log message]
18586
18587 2004-08-08 11:34  jordi
18588
18589         * ThemeWin32Classic.cs: Use Windows Standard Colours
18590
18591 2004-08-07 17:32  jordi
18592
18593         * TrackBar.cs: throw exceptions of invalid enums values
18594
18595 2004-08-07 17:31  jordi
18596
18597         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
18598           draw method name
18599
18600 2004-08-07 16:56  jackson
18601
18602         * HorizontalAlignment.cs: Initial checkin
18603
18604 2004-08-07 13:16  jordi
18605
18606         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
18607           methods
18608
18609 2004-08-07 13:05  jordi
18610
18611         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
18612           GetSysColor defines
18613
18614 2004-08-06 18:01  pbartok
18615
18616         * ThemeWin32Classic.cs:
18617           - Fixed some rounding issues with float/int
18618
18619 2004-08-06 18:00  jackson
18620
18621         * DockStyle.cs, AnchorStyles.cs:
18622
18623                   Add flags and serializable attributes.
18624
18625 2004-08-06 17:46  pbartok
18626
18627         * XplatUIX11.cs:
18628           - Implemented GetParent
18629
18630 2004-08-06 17:18  pbartok
18631
18632         * TrackBar.cs:
18633           - Fixed some rounding issues with float/int
18634
18635 2004-08-06 17:17  pbartok
18636
18637         * X11Structs.cs, XplatUIX11.cs:
18638           - Fixed Refresh and Invalidate
18639
18640 2004-08-06 15:30  pbartok
18641
18642         * Control.cs, X11Structs.cs, XplatUIX11.cs:
18643           - Fixed recursive loop when resizing
18644           - Improved/fixed redrawing on expose messages
18645
18646 2004-08-06 09:53  jordi
18647
18648         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
18649           keyboard navigation
18650
18651 2004-08-06 08:02  pbartok
18652
18653         * X11Structs.cs, XplatUIX11.cs:
18654           - Fixed reparenting
18655           - Fixed window border creation
18656
18657 2004-08-05 15:38  pbartok
18658
18659         * XplatUIX11.cs:
18660           - Attempted fix for reparenting problems
18661
18662 2004-08-04 15:14  pbartok
18663
18664         * Control.cs:
18665           - Fixed Invalidation bug (calculated wrong client area)
18666           - Added ClientSize setter
18667
18668 2004-08-04 15:13  pbartok
18669
18670         * Form.cs:
18671           - Added AutoScale properties
18672
18673 2004-08-04 15:13  pbartok
18674
18675         * SWF.csproj:
18676           - Added latest files
18677
18678 2004-08-04 14:11  pbartok
18679
18680         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
18681           XplatUIX11.cs:
18682           - Added Invalidate handling
18683
18684 2004-08-03 17:09  jordi
18685
18686         * XplatUIDriver.cs: fixes spelling mistake
18687
18688 2004-07-27 09:53  jordi
18689
18690         * TrackBar.cs: fixes trackbar events, def classname, methods
18691           signature
18692
18693 2004-07-27 09:29  jordi
18694
18695         * ScrollBar.cs: fixes scrollbar events
18696
18697 2004-07-27 04:38  jordi
18698
18699         * Control.cs: changes to be able to run winforms samples
18700
18701 2004-07-26 11:42  jordi
18702
18703         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
18704           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
18705
18706 2004-07-26 05:41  jordi
18707
18708         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
18709           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
18710           implementation
18711
18712 2004-07-22 09:22  jordi
18713
18714         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
18715           check link overlapping, implement events, and fixes
18716
18717 2004-07-21 10:28  jordi
18718
18719         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
18720
18721 2004-07-21 10:19  jordi
18722
18723         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
18724           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
18725           LinkLabelLinkClickedEventArgs.cs,
18726           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
18727           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
18728           implementation
18729
18730 2004-07-19 13:09  jordi
18731
18732         * Control.cs, Label.cs: label control re-written: added missing
18733           functionlity, events, and properties
18734
18735 2004-07-19 10:49  jordi
18736
18737         * Control.cs: fixes SetBounds logic
18738
18739 2004-07-19 01:29  jordi
18740
18741         * Control.cs: Call RefreshWindow only if the window has created
18742
18743 2004-07-15 14:05  pbartok
18744
18745         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
18746           - Implemented ImageList and ImageList.ImageCollection classes
18747           - Added ColorDepth enumeration
18748           - Updated SWF VS.Net project
18749
18750 2004-07-15 11:06  jordi
18751
18752         * XplatUIStructs.cs: added MsgButons enum
18753
18754 2004-07-15 11:03  jordi
18755
18756         * Control.cs: added basic mouse handeling events
18757
18758 2004-07-15 03:38  jordi
18759
18760         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
18761           Vertical TrackBar control implementation
18762
18763 2004-07-13 09:33  jordi
18764
18765         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
18766
18767 2004-07-13 09:31  jordi
18768
18769         * Control.cs, Form.cs: commit: new properties and fixes form size
18770           problems
18771
18772 2004-07-09 14:13  miguel
18773
18774         * ProgressBar.cs: Spelling
18775
18776 2004-07-09 11:25  pbartok
18777
18778         * ProgressBar.cs:
18779           - Removed usage of Rectangle for drawing. Miguel pointed out it's
18780           faster
18781
18782 2004-07-09 11:17  miguel
18783
18784         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
18785
18786                 * ProgressBar.cs: Fixed spelling for `block'
18787
18788                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
18789                 style guidelines.
18790
18791                 Avoid using the += on rect.X, that exposed a bug in the compiler.
18792
18793 2004-07-08 23:21  pbartok
18794
18795         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
18796           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
18797           BaseCollection.cs, Binding.cs, BindingContext.cs,
18798           BindingMemberInfo.cs, BindingsCollection.cs,
18799           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
18800           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
18801           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
18802           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
18803           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
18804           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
18805           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
18806           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
18807           FrameStyle.cs, GiveFeedbackEventArgs.cs,
18808           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
18809           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
18810           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
18811           InputLanguageChangedEventArgs.cs,
18812           InputLanguageChangedEventHandler.cs,
18813           InputLanguageChangingEventArgs.cs,
18814           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
18815           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
18816           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
18817           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
18818           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
18819           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
18820           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
18821           QueryAccessibilityHelpEventArgs.cs,
18822           QueryAccessibilityHelpEventHandler.cs,
18823           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
18824           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
18825           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
18826           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
18827           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
18828           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
18829           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
18830           XplatUIX11.cs, lang.cs:
18831           - Initial check-in
18832