2006-07-20 Chris Toshok <toshok@ximian.com>
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2006-07-20  Chris Toshok  <toshok@ximian.com>
2
3         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
4         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
5         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
6         traces from within a debug IBindingList datasource
7         (in mono/winforms/datagrid) for *days*, I've finally gotten things
8         to work in a similar fashion.
9
10 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11
12         * ListBox.cs: Don't call Sort () when setting 
13         the Sorted property to false (avoid an unnecessary sort).
14
15 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16
17         * ListControl.cs: DataSource should throw an ArgumentException
18         instead of a normal exception when the argument is not of the 
19         correct type.
20
21 2006-07-20  Mike Kestner  <mkestner@novell.com>
22
23         * Control.cs: add InternalPreProcessMessage to allow us to steal
24         key events before MWF gets its paws on them.  Adapted from a
25         suggestion by eno.
26         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
27         up/down/left/right navigation. Override the new internal control
28         method to steal the events since they never make it to WndProc.
29         * ToolBarButton.cs: don't worry about pushed when setting hilight
30         since the drawing code prefers pushed to hilight. Invalidate on 
31         Hilight changes. Fixes #78547 and #78525.
32
33 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
34
35         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
36           the canvas size. Fixes #78868
37
38 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
39
40         * Splitter.cs: Track requested split position until first layout
41           is performed. Fixes #78871
42
43 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
44
45         * Application.cs: Removed code that forces 1.x for the version
46           number if the version started with 0. Not sure why that code was
47           there and I couldn't find any bugs that indicated we needed it.
48           Fixes #78869
49
50 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
51
52         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
53           ResetDefaults(), just write some output to the console until it's
54           implemented. Fixes bug #78907 for now. Eliminated two warnings.
55
56 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
57
58         * PropertyGridView.cs: set StartPosition of drop down forms
59         so they appear in correct initial spot.  Fixes #78190.
60
61 2006-07-19  Mike Kestner  <mkestner@novell.com>
62
63         * ThemeWin32Classic.cs: use parent background color when drawing
64         flat toolbars.  Restructure the conditionals to make sure non-flat
65         non-Divider toolbars are filled too.  Fixes #78837.
66
67 2006-07-19  Mike Kestner  <mkestner@novell.com>
68
69         * ListBox.cs: Sort on collection changes even if the handle
70         isn't created yet.  Fixes #78813.
71
72 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
73
74         * ListControl.cs: DisplayMember should never be null,
75         and now we assign String.Empty when null is passed to it (this
76         is the .Net way).
77
78 2006-07-17  Mike Kestner  <mkestner@novell.com>
79
80         * ListViewItem.cs: restructure Font and subitem Font handling 
81         to hold a specific font and refer back to owner on null.
82         Fixes #78761.
83
84 2006-07-17  Mike Kestner  <mkestner@novell.com>
85
86         * ToolBar.cs: bandaid for side-effect of previous patch which was
87         discarding explicit heights for non-AutoSize toolbars.  Need to
88         extend my format tester to deal with AutoSize=false. Fixes #78864.
89
90 2006-07-15  Jackson Harper  <jackson@ximian.com>
91
92         * LabelEditTextBox.cs:
93         * TreeView.cs: Use a new LabelEdit class for node editing, this
94         class automatically 'closes' itself when it gets the enter key or
95         loses focus.
96         - Use the client rectangle when setting the trees scrollbars, so
97         border style is taken into account.
98         
99 2006-07-14  Jackson Harper  <jackson@ximian.com>
100
101         * TreeNode.cs:
102         * TreeView.cs: Make the editing work similar to MSs, firing the
103         events correctly and ending edits correctly.
104
105 2006-07-14  Mike Kestner  <mkestner@novell.com>
106
107         * ToolBarButton.cs:
108         * ToolBar.cs: layout restructuring and redraw enhancements to support
109         formatting changes gracefully, like setting TextAlign, ImageList, 
110         ButtonSize, and Appearance.  Handles explicit button sizing quirks
111         of the MS controls.  Things like flat toolbars ignoring button size
112         but becoming constant sized at the largest button's size.  Normal
113         toolbars with an image set cannot be shrunk smaller than the image,
114         but text can be clipped/ignored.
115         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
116         is zero.  Seems like DrawString should be smart enough to not put
117         anything on screen though. Also trim labels and ellipsize at the char
118         boundary, not word.
119         Fixes #78711 and #78483.
120
121 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
122
123         * FolderBrowserDialog.cs: Disable "New Folder" button and
124           "New Folder" contextmenu menuitem if a folder like "My Computer"
125           is selected.
126
127 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
128
129         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
130         * FolderBrowserDialog.cs:
131           - Use MWFConfig to store and read size and position settings
132           - Added code to create a new folder (button or context menu).
133             Use TreeView labeledit to change the name of the new folder.
134
135 2006-07-14  Jackson Harper  <jackson@ximian.com>
136
137         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
138         when the tree is scrolled we end editing.
139
140 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
141
142         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
143           Down arrows
144
145 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
146
147         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
148         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
149         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
150         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
151         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
152         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
153         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
154         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
155         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
156         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
157         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
158         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
159         ListViewItemSelectionChangedEventHandler.cs,
160         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
161         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
162         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
163         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
164         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
165         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
166         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
167         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
168         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
169         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
170         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
171         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
172         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
173         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
174         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
175         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
176         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
177         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
178         WebBrowserNavigatingEventHandler.cs, 
179         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
180
181 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
182
183         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
184         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
185         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
186         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
187         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
188         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
189         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
190         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
191         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
192         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
193         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
194         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
195         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
196         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
197         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
198         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
199         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
200         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
201         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
202         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
203         ListViewItemStates.cs, MaskFormat.cs: Added
204
205 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
206
207         * PropertyGridView.cs: Fix keyboard navigation of drop down.
208         Patch from eno for bug 78558.
209         
210 2006-07-13  Jackson Harper  <jackson@ximian.com>
211
212         * TreeView.cs: When an edit is finished make sure that the
213         selected node is visible.
214         - When setting the top/bottom use the scrollbars is_visible, so
215         everything will be set correctly even if the tree isn't visible
216         yet.
217
218 2006-07-13  Jackson Harper  <jackson@ximian.com>
219
220         * ComboBox.cs: Revert the item->index part of my previous patch.
221         * TreeView.cs: Use LostFocus instead of Leave for detecting when
222         the edit box has lost focus (duh).
223         - Just make the edit box not visible when we get return, that will
224         take the focus, which will call EndEdit
225         * TreeNode.cs When we start editing, notify the treeview.
226
227 2006-07-12  Jackson Harper  <jackson@ximian.com>
228
229         * ComboBox.cs: Clear out old items before setting the item list.
230         This prevents databound controls from having their items added
231         twice.
232         - Switch the combobox to use indices whereever possible instead of
233         using Item's.  This allows usto navigate through lists that have
234         more then one item with the same string value (ie a, b, b, a).
235         - Scroll the listboxes scrollbar when a non visible item is
236         highlighted
237         - Allow keypress to cycle through all the possible values. For
238         example if you have b1, b2, b3 and hold down the B key all the
239         values will be cycled through.
240         
241 2006-07-12  Jackson Harper  <jackson@ximian.com>
242
243         * TextBoxBase.cs:
244         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
245         this using the internal methods.
246         * Control.cs: Add OnGotFocusInternal.  A new method that allows
247         controls to "override" OnGotFocus and change focus behavior if
248         needed.
249         - Same thing for LostFocus
250         * ComboBox.cs: Pass off focus to the text control properly.
251
252 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
253
254         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
255         * FolderBrowserDialog.cs: Almost a complete rewrite.
256           - Better support for Environment.Specialfolders
257           - Added support for MWFVFS
258           - Made setting SelectedPath work
259
260 2006-07-12  Jackson Harper  <jackson@ximian.com>
261
262         * Control.cs: Optimze getting all the controls.
263
264 2006-07-11  Jackson Harper  <jackson@ximian.com>
265
266         * ContainerControl.cs: Override SETFOCUS in the container control,
267         so that it is not selected on mouse click.
268
269 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
270
271         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
272           Hopefully we will have a better way once all of focus is complete.
273
274 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
275
276         * ThemeWin32Classic.cs: Commented out some debug code and fixed
277           a compile error with csc.
278
279 2006-07-11  Jackson Harper  <jackson@ximian.com>
280
281         * Control.cs: When hiding a control only select the next control
282         if the current control was focused.
283         - Don't handle enter/leave when setting/killing focus, this is
284         done by the container control.
285         - Remove is_selected, it's not needed anymore.
286         - Add utility methods for selecting a child control, and for
287         firing the Enter/Leave events.
288         * ContainerControl.cs: When a control is activated fire the
289         enter/leave events.
290         - Don't wrap when processing the tab key, so that focus can be
291         moved outside of the container.
292         - Use the correct active control
293
294 2006-07-11  Jackson Harper  <jackson@ximian.com>
295
296         * ComboBox.cs: Remove some debug code that was blinding me.
297         * UpDownBase.cs: These controls actually aren't implicit, they are
298         visible to the user.
299
300 2006-07-10  Chris Toshok  <toshok@ximian.com>
301
302         * DataGrid.cs: move back to the is_adding boolean field.  god i
303         hate this is_editing/is_adding/is_changing stuff.
304
305 2006-07-10  Chris Toshok  <toshok@ximian.com>
306
307         * DataGridTableStyle.cs: just check if the property type is bool.
308         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
309         Don't use CanRenderType.
310
311         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
312         if our text == NullText.  Remove CanRenderType.
313
314         * DataGridBoolColumn.cs: nuke CanRenderType.
315
316         * DataGrid.cs: reenable some code to end the current edit inside
317         of set_CurrentCell.  This fixes the other 1.1.16 regression.
318         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
319         Also, remove the visible_row_count arg from CalcRowHeaders, since
320         we don't need to worry about the actual height of the area.
321
322 2006-07-10  Chris Toshok  <toshok@ximian.com>
323
324         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
325         mode, just return.
326
327         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
328         the real sense of the IsInEditOrNavigateMode property (true =
329         navigate, false = edit).  Also, update OnKeyPress to reflect this.
330
331         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
332         column style exists, we still need to set its property descriptor
333         to match up with our list manager.
334
335 2006-07-10  Chris Toshok  <toshok@ximian.com>
336
337         * ThemeWin32Classic.cs: implement the new row/header painting
338         approach.  The parent row painting will likely go away and
339         replaced with label controls, but the rest seems to work ok (and
340         efficiently).
341
342         * Theme.cs: change the way we draw datagrid rows.  we don't draw
343         the row headers as a block now.  Instead we draw them in the
344         normal draw-row loop.  Add some calls for drawing parent rows and
345         relation rows.
346
347         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
348         a default table style.  Set the defaults from ThemeEngine.Current,
349         not SystemColors.  Fix lots of misc issues with property setters.
350
351         * DataGrid.cs: move loads of style information out of this class
352         as it's being duplicated with DataGridTableStyle.  keep track of a
353         special DataGridTableStyle for the properties we used to mirror
354         here.  Switch all the style properties to access this table style
355         instead of instance fields of this class.  Also add a internal
356         class to represent parent rows (more needs to be stored here, like
357         the selection state from the parent table, as well as the
358         expansion state.)  Also, for datasources with relations, do the
359         right thing for collapse/expand, and add support for the
360         navigation/parent row buttons.
361
362         Lastly, fix the crash in the 1.1.16 build.
363
364         * GridTableStylesCollection.cs: make the explicit interface
365         implementations call the class's methods as opposed to duplicating
366         them.
367
368         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
369         0 so the text doesn't jump around when we move the cursor.
370
371 2006-07-10  Jackson Harper  <jackson@ximian.com>
372
373         * TextBoxBase.cs:
374         * ListBox.cs: Match MS's ToString (this makes debugging focus
375         stuff infinitely easier).
376
377 2006-07-10  Jackson Harper  <jackson@ximian.com>
378
379         * Control.cs (SelectNextControl): When checking the control's
380         parent use this instead of ctrl.parent so that null can be passed
381         to SelectNextControl. (I have unit tests for this).
382         - Remove unused var.
383
384 2006-07-10  Chris Toshok  <toshok@ximian.com>
385
386         * CurrencyManager.cs: correct one regression, the removal of the
387         finalType field.  Also, add a MonoTODO on CanAddRows, implement
388         Refresh() correctly, and fix some event emission in
389         ListChangedHandler.
390
391 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
392
393         * FileDialog.cs: Don't use brackets for new folders if they exist
394           under *nix. Instead use -(number of existing folders +1).
395
396 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
397
398         * FileDialog.cs:
399           - Fixed really nasty bug #78771
400           - Don't block the whole GUI when reading directories with a lot of
401             entries. Use an other thread instead and call BeginInvoke to
402             update the ListView in MWFFileView
403
404 2006-07-07  Chris Toshok  <toshok@ximian.com>
405
406         * Control.cs (Dispose): release any Capture when disposing.
407
408 2006-07-07  Chris Toshok  <toshok@ximian.com>
409
410         * LinkLabel.cs (Select): if we chain up to the parent, set
411         focused_index to -1 so we'll search for the first available link
412         the next time the user tabs into us.  Also, if the direction is
413         backward and focused_index == -1, start the search from the last
414         element.
415
416 2006-07-07  Chris Toshok  <toshok@ximian.com>
417
418         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
419         is beyond the end of the text, don't do anything.
420         (CreateLinkPieces): set our ControlStyles.Selectable based on
421         whether or not we have any links.
422         (Link.Invalidate): use a loop instead of foreach.
423         (Link.set_Start): null out owner.sorted_links so it'll be
424         recreated by CreateLinkPieces.
425
426 2006-07-06  Chris Toshok  <toshok@ximian.com>
427
428         * LinkLabel.cs: revert the SetStyle change.
429
430 2006-07-06  Chris Toshok  <toshok@ximian.com>
431
432         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
433         (OnEnableChanged): s/Refresh/Invalidate
434         (OnGotFocus): if we have a focused index already, refocus it (so
435         if we mouse out/in to the window it'll focus the right link).
436         (OnKeyDown): move the tab handling out of here.
437         (OnLostFocus): don't set focused_index to -1, so we can refocus it
438         when we lose focus.
439         (OnMouseDown): don't Capture here - Control handles it.  Also,
440         focus the active link.
441         (OnMouseUp): don't deal with Capture.
442         (OnPaintBackgroundInternal): remove.
443         (OnTextAlignChanged): CreateLinkPieces before calling the
444         superclass's method.
445         (OnTextChanged): call CreateLinkPieces before calling superclass's
446         method.
447         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
448         move around.
449         (Select): implement this, moving the selection between different
450         links, and call parent.SelectNextControl if we don't have another
451         link to focus in the given direction.
452         (CreateLinkPieces): call Invalidate instead of Refresh.
453         
454 2006-07-06  Chris Toshok  <toshok@ximian.com>
455
456         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
457         new LinkLabel internals.
458
459         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
460         over pieces looking for active/focused/etc links.  also, deal with
461         runs of text (and links) with embedded \n's in them, and use
462         MeasureCharacterRanges instead of MeasureString to figure out the
463         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
464         two-step.
465
466 2006-07-04  Jackson Harper  <jackson@ximian.com>
467
468         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
469         XKB or key auto repeat, do it manually.  Without key auto repeat,
470         when a key is held down we get key press, key release, key press,
471         key release, ... with auto repeat we get key press, key press, key
472         press ..., and then a release when the key is actually released.
473
474 2006-07-03  Jackson Harper  <jackson@ximian.com>
475
476         * TabControl.cs:
477         * ThemeWin32Classic.cs: Tabs do not obey normal background color
478         rules, they are always control color regardless of the background
479         color.
480
481 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
482
483         * FileDialog.cs: Added internal class MWFConfig.
484           Removed Registry support and replaced it with support for the new
485           MWFConfig class. See MWFConfig comments for more information.
486
487 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
488
489         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
490           rectangle. Added some patches from eno from bug #78490 and fixed
491           the arrow position for small up and down CPDrawScrollButtons.
492
493 2006-06-30  Jackson Harper  <jackson@ximian.com>
494
495         * InternalWindowManager.cs: Remove some debug code.
496         * Form.cs: When an MdiParent is set to null, the window is
497         "detatched" and becomes a normal window.
498         * MdiClient.cs: Don't bring the new child form to the front until
499         it is activated (setting it as active does this), this makes the
500         previously active forms titlebar get redrawn as inactive.
501
502 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
503
504         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
505           with later controls
506
507 2006-06-29  Mike Kestner  <mkestner@novell.com>
508
509         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
510         arrow in keynav state.  Fixes #78682.
511
512 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
513
514         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
515           order (fixes #78393)
516
517 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
518
519         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
520           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
521           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
522           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
523           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
524           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
525           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
526           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
527           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
528           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
529           enumerations (FlagsAttribute, SerializableAttribute, added/removed
530           values)
531
532 2006-06-28  Mike Kestner  <mkestner@novell.com>
533
534         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
535
536 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
537
538         * PropertyGrid.cs,
539           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
540           item lines from other area (It also makes BackColor consistent and
541           compatible with .NET). Fixed bug #78564.
542
543 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
544
545         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
546         Patch from Eno for #78555.
547
548 2006-06-27  Chris Toshok  <toshok@ximian.com>
549
550         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
551
552         * DataGridColumnStyle.cs: same.
553
554         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
555         
556         * DataGridDrawingLogic.cs: nuke.
557
558 2006-06-27  Chris Toshok  <toshok@ximian.com>
559
560         * DataGridTableStyle.cs: clean up the constructors, and build the
561         list of child relations for this table.  I have no idea if this is
562         where we should be doing it (it probably isn't), but since we're
563         already iterating over the properties..
564
565         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
566         struct and array for keeping track of row information, similar to
567         what's shown in a hack on
568         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
569
570         * Theme.cs: be consistent about the naming of DataGrid methods,
571         prefering ColumnWidths and RowHeights over columnsWidths and
572         RowsHeights.
573
574         * ThemeWin32Classic.cs: same, and also add support for variable
575         sized rows (and the +/- expansion icons for related rows).
576
577 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
578
579         * TextBoxBase.cs: Applied Eno's patch from #78660
580
581 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
582
583         * Form.cs (ScaleCore): We don't want to scale our form if it's
584           state is minimized or maximized, but we still need to scale our
585           child windows. Also, added try/finally block to ensure layout
586           gets reset (Fixes #78697)
587
588 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
589
590         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
591
592 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
593
594         * Form.cs: Fixed c+p error and added check to resize form if minimum
595           size is bigger than current size (Fixes #78709)
596
597 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
598
599         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
600
601 2006-06-26  Mike Kestner  <mkestner@novell.com>
602
603         * ComboBox.cs: only do Keypress handling in the combo when there  
604         are items in the collection. Fixes #78710.
605
606 2006-06-26  Chris Toshok  <toshok@ximian.com>
607
608         * Binding.cs: make this work bi-directionally.  also, clear up
609         other mixups between Push/Pull Data (e.g. we're supposed to pull
610         data when validating).
611
612         * BindingManagerBase.cs: trim some fully qualified collection
613         types.
614
615         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
616
617 2006-06-23  Chris Toshok  <toshok@ximian.com>
618
619         * PropertyManager.cs: It appears (according to the unit tests)
620         that PropertyManager doesn't use
621         PropertyDescriptor.AddValueChanged to track propery value changes
622         in its datasource, but uses the same scheme as Binding, where it
623         looks for a <Property>Changed event and binds to it.
624
625         Also, according to the docs, IsSuspended always returns false for
626         a property manager with a non-null datasource.
627
628 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
629
630         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
631           need to update the actual DialogResult. (Fixes #78613)
632
633 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
634
635         * Form.cs (ShowDialog): Release any captures before running the
636           new message pump (fixes #78680)
637
638 2006-06-22  Mike Kestner  <mkestner@novell.com>
639
640         * ListView.cs: Layout column widths properly in details mode even 
641         if HeaderStyle.None is set.  Fixes #78691.
642
643 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
644
645         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
646
647 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
648
649         * Control.cs (ContainsFocus): Using new driver method to get focused
650           window, instead of trying to use internal tracking var, which can
651           recursion issues (Fixes #78685)
652         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
653           XplatUIWin32.cs: Added GetFocus method to return focused window
654
655 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
656
657         * ColorDialog.cs: when the mouse button is pressed inside the color
658         matrix, don't let the cursor move out of it until the button is
659         released, which is the behavior on windows. Changed 'colours' by
660         'colors' to use the same word consistently.
661
662 2006-06-21  Chris Toshok  <toshok@ximian.com>
663
664         * DataGrid.cs: add in some basic navigation stuff (navigating to a
665         child relation and back, using a stack).  Also, remove
666         GetDataSource and the code that calls it - it's not needed.  Also,
667         track CurrencyManager.ListName's removal.
668
669 2006-06-21  Chris Toshok  <toshok@ximian.com>
670
671         * CurrencyManager.cs: push some of the original type checking from
672         BindingContext.CreateBindingManager to here, and remove some of
673         the finalType stuff.  Need more tests to make sure I've got the
674         ListName part right, and we might need more in SetDataSource.
675
676         * PropertyManager.cs: add a ctor that takes just the datasource,
677         and no property name.  Make SetDataSource work with a null
678         property_name, and make Current return the data_source if the
679         property descriptor is null.  this makes 'string foo = "hi";
680         BindingContext[foo].Current' return "hi" as it should.
681
682         * RelatedCurrencyManager.cs: make this code more generic - there's
683         no reason the parent manager has to be CurrencyManager, and
684         there's no reason to pass the DataRelation.  It suffices to use a
685         BindingManagerBase and PropetyDescriptor.
686
687         * RelatedPropertyManager.cs: make a similar change here.
688         
689         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
690         flower I knew it could be.
691
692 2006-06-20  Chris Toshok  <toshok@ximian.com>
693
694         * PropertyManager.cs: the PropertyChangedHandler is invoked when
695         data in the source has changed and we need to update the control,
696         so s/PullData/PushData.
697
698         * CurrencyManager.cs: Refresh is meant to update the control from
699         data in the datasource.  So, s/PullData/PushData.
700
701         * BindingContext.cs: add more ugliness (we weren't handling the
702         case where data_source = DataTable and data_member = column_name).
703
704         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
705         from the perspective of the datasource.  PullData pulls from the
706         control, PushData pushes to the control.
707
708 2006-06-20  Chris Toshok  <toshok@ximian.com>
709
710         * BindingContext.cs: rewrite the CreateBindingManager code to
711         handle navigation paths more or less properly.  This could
712         definitely stand some more work, in particular to push the
713         recursion up to the toplevel.  But that relies on fixes in other
714         places (System.Data comes to mind).
715
716         Also, move to a flat hashtable (and encode the twolevel nature of
717         the dictionary into the hash key).  This lets us implement the
718         IEnumerable.GetEnumerator method.
719
720         * RelatedCurrencyManager.cs: new class.  Update our view based on
721         our relation and our parent CurrencyManager's position.
722
723         * CurrencyManager.cs: split out some logic from the ctor into
724         SetView, so it can be called from the new RelatedCurrencyManager
725         subclass.
726
727         * RelatedPropertyManager.cs: new class.  Update our datasource
728         based on the position of our parent CurrencyManager.
729
730         * PropertyManager.cs: split out some logic from the ctor into
731         SetDataSource, so it can be called from the new RelatedDataSource
732         subclass.  Also, make the Current getter return the value
733         of the PropertyDescriptor, not the data_source.
734
735         * Binding.cs: no need to duplicate the string splitting code here.
736
737 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
738
739         * Control.cs:
740           - set_Enabled: OnEnabledChanged is not called if the inherited state 
741             of the control is not altered, even though  we might be changing the
742             internal state of the control (#78458)
743           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
744             OnEnabledChanged, to allow easy altering of any child window state
745           - OnEnabledChanged: Added code to enable/disable driver window state
746           - OnParentEnabledChanged: Instead of firing the event, call 
747             OnEnabledChanged, which will fire the event and also a) set driver
748             window state and pass the enabled state to any grandchildren (#78458)
749
750 2006-06-19  Jackson Harper  <jackson@ximian.com>
751
752         * InternalWindowManager.cs: We don't set the cursor explicitly
753         thats done via the response to NCHITTESTs.
754         - Don't need to adjust for titlebar heights anymore, the
755         coordinates are coming in the correct coordinates now (see peters
756         last patch).
757
758
759 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
760
761         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
762           being translated relative to whole window, instead of client window.
763           That caused broken offsets on mouseclick (and caused gas for our
764           InternalWindowManager)
765
766 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
767
768         * TextControl.cs:
769           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
770           - Undo(): Added replay of cursor move on DeleteChars action; added
771             calling Undo() again if a recorded cursor move is invalid (to
772             ensure that some action is performed on Undo)
773         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
774
775 2006-06-16  Jackson Harper  <jackson@ximian.com>
776
777         * MdiClient.cs: Instead of just sizing maximized windows when
778         there is a resize we also have to adjust the Y of minimized
779         windows, so they stay pinned to the bottom of the mdi container.
780         - Eliminate separate tracking of the active control, we can just
781         get this from the controls collection.
782         - Paint the decorations for the newly activated titlebar so we get
783         a pretty blue bar.
784         * InternalWindowManager.cs:
785         * ThemeWin32Classic.cs: Minimized windows get all three buttons
786         even if they are a tool window.
787         
788 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
789
790         * TextControl.cs (Undo): Handle non-existent cursor locations in the
791           undo buffer, these can happen when text was deleted and the cursor
792           was recorded first. Since we will also have a recorded cursor
793           after the delete this is not an issue. (Fixes #78651)
794
795 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
796
797         * AccessibleObject.cs: Remove dependence on Control.is_selected;
798           instead properly track control states internally (allows us to
799           remove is_selected from Control)
800
801 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
802
803         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
804         whose width is not a multiple of 8.
805
806 2006-06-13  Jackson Harper  <jackson@ximian.com>
807
808         * MdiClient.cs:  Only maximize the next child if the current one
809         is maximized.
810
811 2006-06-13  Chris Toshok  <toshok@ximian.com>
812
813         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
814         modified.  Also, guard against grid or grid_drawing being null in
815         Invalidate.
816
817         * DataGrid.cs: Reformat tons of getters/setters.  In the
818         DataMember setter, just call SetNewDataSource instead of
819         duplicating some of its functionality.  In SetNewDataSource, don't
820         check ListManager for null, since the property getter creates the
821         object if needed.
822
823         * DataGridTableStyle.cs: don't set TableStyle or call
824         SetDataGridInternal on the column here, it's done in
825         GridColumnStylesCollection.Add.
826
827         * GridColumnStylesCollection.cs: fix all the explicit interface
828         implementations to just call our methods.  Nuke AddInternal() and
829         move the body of it to Add().  Also, add a call to
830         column.SetDataGridInternal to Add().
831
832         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
833         base()+duplicate code.  Also, use the Format property instead of
834         format to generate an Invalidate ala MS.  Lastly, create the
835         textbox here, unconditionally.
836         (set_Format): call Invalidate.
837         (get_TextBox): no need to call EnsureTextBox.
838         (Commit): remove the message box.
839         (Edit) remove the call to EnsureTextBox.
840         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
841         (EnterNullValue): no need to check textbox for null.
842         (HideEditBox): no need to check textbox for null.
843         (SetDataGridInColumn): add the textbox to the grid's controls.
844         (EnsureTextBox): nuke.
845         
846 2006-06-13  Jackson Harper  <jackson@ximian.com>
847
848         * MdiWindowManager.cs: Hook up to the maximized menus paint event
849         and redraw the buttons when needed. Unhook when the window is
850         unmaximized.
851         * MainMenu.cs: Add an internal Paint event, the mdi window manager
852         needs this so that it can redraw its buttons when the menu is
853         repainted.
854         * InternalWindowManager.cs:
855         * Form.cs: The method order has changed for DrawMaximizedButtons,
856         so that it can be a PaintEventHandler.
857         
858 2006-06-13  Jackson Harper  <jackson@ximian.com>
859
860         * MdiClient.cs: When we close a maximized mdi window, the next mdi
861         window is activated and maximized, even if it wasn't before.
862         - When  a new window is activated repaint the decorations of the
863         old one, so that it no longer has the Active "look" (the blue
864         titlebar).
865         * InternalWindowManager.cs: Open up CreateButtons to base classes
866         so they can recreate the buttons on state changes.
867         - If a window is maximized give it all three buttons
868         * MdiWindowManager.cs: Create the titlebar buttons when the state
869         is changed, this is needed because a toolwindow will not have all
870         three buttons until it is maximized.
871
872 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
873
874         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
875           Fixed bug #78609.
876
877 2006-06-12  Jackson Harper  <jackson@ximian.com>
878
879         * KeysConverter.cs: Make sure we handle the Ctrl special case
880         if its the only key.
881         
882 2006-06-12  Jackson Harper  <jackson@ximian.com>
883
884         * Theme.cs: Add a method to get the size of a managed window
885         toolbar button.
886         * InternalWindowManager.cs: Remove the ButtonSize property, this
887         should be retrieved from the theme.
888         * MdiWindowManager.cs: Get the button size from the theme
889         * ThemeWin32Classic.cs: Make the method to get the managed window
890         titlebar button size public.
891         - Handle the different button sizes of maximized toolwindows
892         (should match any maximized window).
893         - Get the titlebar height from the theme, not the WM (which gets
894         it from the theme).
895
896 2006-06-12  Jackson Harper  <jackson@ximian.com>
897
898         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
899         event down to the mdi window manager.
900         - Expose some extra stuff to base classes
901         - Make sure to end the Capture on an NC Mouse up, so that we can
902         get double clicks properly, and the sizing doens't stick.
903         - When doing PointToClient contain it in the workable desktop
904         area, this prevents windows from changing size when the cursor is
905         pulled outside of the working area while sizing.
906         * MdiWindowManager.cs: When we get a double click maximize the
907         window.
908         - Reset the cursor after handling mode changes.
909
910 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
911
912         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
913           current desktop, instead of just assuming a 0, 0 origin. This
914           is needed for our internal window manager, to know the top
915           margin of the desktop
916
917 2006-06-12  Chris Toshok  <toshok@ximian.com>
918
919         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
920         we need this to get rid of the selected background in the bool
921         column.
922         (CancelEditing): move the ConcedeFocus call to above the Abort
923         call.  Also, set is_changing to false and invalidate the row
924         header if we were changing before.
925         (ProcessKeyPreviewInternal): remove, since noone outside this
926         class calls it anymore.  Roll the code into ProcessKeyPreview.
927         (EndEdit): remove the internal version.
928         (InvalidateCurrentRowHeader): make private.
929
930         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
931         Keys.Escape handling (and with it the last call to
932         DataGrid.EndEdit from outside the class.)
933
934
935 2006-06-12  Chris Toshok  <toshok@ximian.com>
936
937         * DataGridTextBox.cs (.ctor): isedit defaults to false.
938         (OnKeyPress): set isedit to true.
939         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
940         already handled by the grid.
941
942         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
943         right.  ugh.
944         (set_DataSource): SetDataSource always returns true, so stop
945         putting it in an if statement.
946         (EndEdit): get rid of some {}'s
947         (ProcessGridKey): return true in case Keys.Escape.
948         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
949         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
950         PositionChanged, stopped connecting to CurrentChanged.
951         (GetDataSource): simplify this a bunch.
952         (SetDataSource): change return type from bool to void.
953         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
954         to this, and make sure we don't set ListManager.Position inside
955         set_CurrentCell.
956         (OnListManagerItemChanged): if we're passed an actual index,
957         redraw that row.
958
959         * CurrencyManager.cs (set_Position): don't call PullData here.
960
961 2006-06-09  Jackson Harper  <jackson@ximian.com>
962
963         * TreeNode.cs:  Recalculate the visible order before doing the
964         Expand/Collapse Below calls, because those calls generate an
965         expose.
966         - Reduce calls to the TreeView property, which is mildly expensive
967         by using a local var.
968         * Form.cs: Layout the MDI child windows when creating the parent
969         form.
970         - Don't use the internal constructor anymore
971         * MdiClient.cs: use the parent form width/height (if available)
972         when laying out the child windows, we do this because the
973         mdiclient isn't docked yet when the initial layout is done.
974         - Don't need an internal constructor anymore.
975
976 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
977
978         * FileDialog.cs: handle access errors when trying to create a folder
979         or changing to a directory. No need to initialize out parameters.
980
981 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
982
983         * FileDialog.cs: Append a number when creating a new folder if the
984           folder already exists (use parenthesis instead of square brackets)
985
986 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
987
988         * FileDialog.cs:
989           - Disabled registry support for windows and added better registry
990             error checking for other systems (need to investigate why it
991             works perfectly on my system)
992           - If a folder already exist show an error MessageBox instead of
993             trying to create an indexed name.
994           - Fixed a non intentional typo.
995
996 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
997
998         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
999
1000 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
1001
1002         * FileDialog.cs: When creating a new folder don't crash if the
1003           folder already exists.
1004
1005 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
1006
1007         * FileDialog.cs: Allmost a complete rewrite.
1008           - added a "virtual" file system that handles the differences
1009             between unix and windows file systems (especially the directory
1010             structure). Moved most of the directory and file handling code
1011             into the vfs.
1012             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
1013             UnixFileSystem and FSEntry.
1014           - Recently used folder/directory, size, location and used file names
1015             (file name ComboBox) are now stored in the registry and get read
1016             before the dialog shows up (fixes part 6 of bug #78446).
1017           - Creation of new folders/directories is now possible (context menu
1018             or ToolBar). Added TextEntryDialog for this that fills in the gap
1019             until ListView.LabelEdit works.
1020           - Fixed cursor handling (bug #78527) and focus handling for
1021             PopupButtonPanel
1022           - Various "Search in" ComboBox enhancements. The content of the
1023             dropdown listbox now almost matches ms.
1024           - Changed the behaviour when the user switches to SpecialFolder
1025             Recent to show the ListView in View.Details.
1026           - Beside using the ToolBar to change the View property of the
1027             file ListView it is now possible to use the context menu too.
1028
1029 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
1030
1031         * ComboBox.cs: Don't create a new ObjectCollection when an item
1032           gets inserted. Just insert the item in the existing object_items
1033           ArrayList.
1034
1035 2006-06-08  Jackson Harper  <jackson@ximian.com>
1036
1037         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
1038         that the treeview and root node checks are done also, this fixes a
1039         regression i caused in the unit tests.
1040
1041 2006-06-07  Wade Berrier <wberrier@novell.com> 
1042
1043         * RichTextBox.cs: More ISO8859-1 -> unicode
1044
1045 2006-06-07  Mike Kestner  <mkestner@novell.com>
1046
1047         * ComboBox.cs : use items to hold highlight/selection so that
1048         collection insertions don't require synchronization.
1049
1050 2006-06-07  Jackson Harper  <jackson@ximian.com>
1051
1052         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
1053         routine.  We now always keep the sized edge at the cursor instead
1054         of computing movement and adjusting rects.  There is one buglet
1055         with this method though when the cursor is moved over area that
1056         the window can not expand too (such as the toolbars on the desktop).
1057
1058 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1059
1060         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
1061         here. Fixes crash on startup in AlbumSurfer.
1062
1063 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
1064
1065         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
1066           values
1067
1068 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1069
1070         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
1071         statement to avoid calling XNextEvent which will block if another thread
1072         took the event that we were expecting. Fixes bug #78605.
1073
1074 2006-06-07  Mike Kestner  <mkestner@novell.com>
1075
1076         * ListView.cs : isolated checkbox clicking from the selection logic.
1077         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
1078
1079 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1080
1081         * Form.cs: Check that the value passed to Form.DialogResult
1082         is a valid enum value.
1083
1084 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1085
1086         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
1087         Computer'. Clicking it in the network view goes to 'My Computer'.
1088         Added CIFS filesystem type. Display the mount point of filesystems.
1089         Avoid duplicate mount points (happens for me with CIFS);
1090
1091 2006-06-06  Jackson Harper  <jackson@ximian.com>
1092
1093         * InternalWindowManager.cs: Draw the maximized windows buttons
1094         when resizing.
1095
1096 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1097
1098         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
1099         all other dialogs. Fixes bug #78585.
1100
1101 2006-06-06  Mike Kestner  <mkestner@novell.com>
1102
1103         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
1104         Only invalidate checkbox on checkstate changes to avoid flicker.
1105         * ListBox.cs : avoid unselect/select when clicking selected item.
1106         avoid reselection flicker for already multiselected items.
1107         Fixes #78382.
1108
1109 2006-06-06  Jackson Harper  <jackson@ximian.com>
1110
1111         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
1112         the parent form so that the menu is removed if needed.
1113
1114 2006-06-06  Mike Kestner  <mkestner@novell.com>
1115
1116         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
1117         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
1118
1119 2006-06-06  Mike Kestner  <mkestner@novell.com>
1120
1121         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
1122
1123
1124 2006-06-06  Jackson Harper  <jackson@ximian.com>
1125
1126         * Control.cs: Use the property (instead of the field) to get the
1127         default cursor so it is instantiated correctly.
1128         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
1129         resizes so we need to manually repaint the window decorations here.
1130         - Set the titlebar button locations as soon as they are created,
1131         otherwise they are not set correctly on win32.
1132         
1133 2006-06-06  Chris Toshok  <toshok@ximian.com>
1134
1135         * CurrencyManager.cs (set_Position): call PullData before
1136         OnCurrentChanged.
1137         (AddNew): after calling IBindingList.AddNew, update our
1138         listposition, and call OnCurrentChanged/OnPositionChanged (without
1139         calling PullData).
1140         (OnCurrentChanged): remove the call to PullData from here.
1141         (OnItemChanged): remove the call to PushData from here.
1142         (OnPositionChanged): change the test from == null to != null to
1143         match the other methods.
1144         (ListChangedHandler): the grossest part of the patch.  Implement
1145         this such that it passes the unit tests in CurrencyManagerTest and
1146         the output more or less matches that of MS's implementation.
1147  
1148 2006-06-06  Mike Kestner  <mkestner@novell.com>
1149
1150         * ListView.cs : only update check state on single click.
1151         * ThemeWin32Classic.cs : fix focus drawing for details view without
1152         fullrowselect.  Fixes #78454.
1153         * XplatUIX11.cs : fix for double click emission.
1154
1155 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
1156
1157         * PropertyGridView.cs : Applied Atsushi's patch to fix
1158         font dialog bug  (#78197).
1159
1160 2006-06-05  Jackson Harper  <jackson@ximian.com>
1161
1162         * TreeNode.cs: Compute the next node for expanding/collapsing
1163         correctly. We now factor in nodes without a NextNode
1164         correctly. (Fixes somes cases in nunit-gui).
1165         * InternalWindowManager.cs: Set the bounds when updating the
1166         virtual position of a tool window.
1167         
1168 2006-06-05  Chris Toshok  <toshok@ximian.com>
1169
1170         * DataGrid.cs: rename cached_currencymgr to list_manager.
1171         (set_CurrentCell): move SetCurrentCell code here, and clean it up
1172         some.
1173         (CurrentRow, CurrentColumn): single accessors so we can make the
1174         cursor movement code a lot easier to understand.
1175         (CurrentRowIndex): implement this in terms of CurrentRow.
1176         (BeginEdit): clean this up a bit.
1177         (CancelEditing): sort out the is_editing/is_changing/is_adding
1178         stuff a little.
1179         (EndEdit): minor changes.
1180         (OnKeyDown): add a comment about a (most likely) unnecessary
1181         check.
1182         (OnMouseDown): cancel editing when we click on a row header.  And
1183         use the CurrentRow setter, not CurrentCell.
1184         (ProcessDialogKey): directly call ProcessGridKey.
1185         (UpdateSelectionAfterCursorMove): factor out this common block of
1186         code (it's used everywhere that we move the cursor by updating row
1187         or column).
1188         (ProcessGridKey): pretty substantial overhaul.  Use the
1189         CurrentRow/CurrentColumn properties to make the code a lot more
1190         readable.  Only use the CurrentCell property when we have to
1191         modify both row and column at once.  Tab behavior is still broken,
1192         and Delete is untested.
1193         (Select): if we have no selected rows, set selection_start to
1194         @row.
1195         (EditCurrentCell): rename EditCell this.  It was only ever invoked
1196         with CurrentCell as the arg, so drop the arg and rename it.
1197
1198         * DataGridColumnStyle.cs: clean up the constructors a little, and
1199         drop CommonConstructor().
1200
1201         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
1202         actually get notified when the user hits it.
1203         (ProcessKeyMessage): *substantially* simplify this method.
1204         There's no reason (that I can see) for the textbox to be making
1205         calls into the datagrid at all.  Remove all of them but the ones
1206         for Enter handling.  those will take some more work.
1207
1208         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
1209         calling HideEditBox.
1210         (HideEditBox): if we have an active textbox, render it invisible
1211         without causing a re-layout of the datagrid.
1212
1213 2006-06-05  Mike Kestner  <mkestner@novell.com>
1214
1215         * ListView.cs : fix NRE crasher when focuseditem is cleared by
1216         collection changes by resetting it to Items[0].  Fixes #78587.
1217
1218 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1219
1220         * MessageBox.cs: if the height of the text is larger than the icon_size,
1221         use that. Fixes bug #78575.
1222
1223 2006-06-05  Jackson Harper  <jackson@ximian.com>
1224
1225         * TreeView.cs: Fix line drawing when scrolling.  To do this each
1226         node is basically responsible for drawing its entire horizontal
1227         area.  When drawing a node it draws its parent node lines if
1228         needed.
1229         - Adjust the clip area to the viewport rectangle
1230         - Fix Left/Right key handling to match MS. (It expand/collapses
1231         and moves to parents/first child but does not move selection to
1232         sibling nodes).
1233         - Fix SetTop to work with new bound calculation code
1234         - When scrollbars are no longer needed we need to reset scrolling
1235         vars and recalculate the visible order so the redraw is correct
1236         * TreeNode.cs: We can't expand/collapse nodes with no children.
1237
1238 2006-06-03  John Luke  <john.luke@gmail.com> 
1239
1240         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
1241         so the colors work without dev packages
1242         
1243 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
1244
1245         * Control.cs 
1246           - Select: Implemented to just use activate. Seems to match MS 
1247             behaviour closest. Documented to only do actual control walking 
1248             based on it's parameters if in a container control so I moved 
1249             the code there.
1250           - Removed selection check logic from our internal Select() method
1251         * ContainerControl.cs:
1252           - Select: Moved selection logic from Control here, since MS documents
1253             that containers obey the bool arguments. No longer calling base
1254
1255 2006-06-02  Jackson Harper  <jackson@ximian.com>
1256
1257         * TreeView.cs: If the selected node isn't changed when we get
1258         focus update the previously selected node so that we see the
1259         selection box.
1260
1261 2006-06-02  Mike Kestner  <mkestner@novell.com>
1262
1263         * ComboBox.cs: restructure grab and general mouse event handling.
1264         Make the composite control raise mouse events like it was a single
1265         control for leaves/enters/motion/up/down events.  fix dropdown list
1266         coordinate mangling and refactor it into the scrollbar subclass to
1267         reduce code duplication.  Fixes #78282 #78361 and #78457.
1268
1269 2006-06-02  Mike Kestner  <mkestner@novell.com>
1270
1271         * ScrollBar.cs: remove Capture setting/clearing, as it happens
1272         automatically in the Control.WndProc.
1273
1274 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1275
1276         * FileDialog.cs: fix crash when running SharpChess, which sets the
1277         FilterIndex to 2 with only one Filter.
1278
1279 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1280
1281         * ToolBar.cs: add SizeSpecified property.
1282         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
1283         try to figure out our real size, otherwise fallback to what the
1284         container says.
1285
1286 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
1287
1288         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
1289         * Control.cs (WndProc): MS always calls the DefWndProc to pass
1290           up the event
1291
1292 2006-06-01  Mike Kestner  <mkestner@novell.com>
1293
1294         * ListView.cs: revamp the focus management in ListView.  It still
1295         causes churn of LostFocus/GotFocus emissions on clicks, but it's
1296         better than not handling focus at all.  Will revisit when pdb feels
1297         the general focus handling is solid.  Fixes #78526.
1298
1299 2006-06-01  Jackson Harper  <jackson@ximian.com>
1300
1301         * TreeView.cs: Set the default border style in the constructor.
1302         - Move painting to use OnPaintInternal instead of capturing
1303         WM_PAINT, this is the correct way of doing things
1304         - UpdateBelow shouldn't invalidate the scrollbar area
1305         - Cap the top on update below in case the node was above the top
1306         of the viewport rectangle.
1307         - ExpandBelow and Collapse below need to obey Begin/End Update.
1308         * TreeNode.cs: Make is_expanded internal so the treenode
1309         collection can change it without firing the whole event chain.
1310         * TreeNodeCollection.cs: When clearing all the child nodes make
1311         sure to recalc the visible order.
1312         - Improve algo for remove the top node
1313
1314 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
1315
1316         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
1317           SendMessage directly calling window procedures, which in turn might
1318           call SetFocus()
1319
1320 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
1321
1322         * Control.cs: Don't handle WM_SETFOCUS if the same window already
1323           has focus (works around X11 sending a FocusIn after our SetFocus)
1324         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
1325
1326 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
1327
1328         * Mime.cs: Fix for the NET_2_0 build.
1329           NameValueCollection needs StringComparer now.
1330
1331 2006-05-31  Chris Toshok  <toshok@ximian.com>
1332
1333         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
1334         return (via an out parameter) the starting X of the column.
1335         (UpdateVisibleColumn): track change to FromPixelToColumn.
1336         (HitTest): add a ColumnResize case here.
1337         (DrawResizeLine): new function, probably poorly named.
1338
1339         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
1340         only need to keep one reference.
1341         (set_ListManager): same.
1342         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
1343         Also, add support for HitTestType.ColumnResize.
1344         (OnMouseMove): add column resize behavior here, and change the
1345         cursor to the correct one as we move around the datagrid.
1346         (OnMouseUp): terminate the column resize if we're resizing.
1347         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
1348         for the current cell.
1349         (ConnectListManagerEvents): use cached_currencymgr.
1350         (DisconnectListManagerEvents): fill this in, using
1351         cached_currencymgr.
1352         (SetCurrentCell): remove cached_currencymgr_events handling.
1353         (SetDataMember): only call DisconnectListManagerEvents if
1354         cached_currencymgr is != null.
1355         (SetDataSource): same.
1356         (OnListManagerCurrentChanged): cached_currencymgr_events ->
1357         cached_currencymgr.
1358
1359 2006-05-31  Jackson Harper  <jackson@ximian.com>
1360
1361         * BindingManagerBase.cs: Remove somedebug code that creeped into
1362         SVN.
1363         * TreeNode.cs: We get the indent level dynamically right now, so
1364         don't track it as a member.
1365         * TreeNodeCollection.cs: Make sure all nodes added to the list
1366         have parents, treeviews/topnodes setup properly.
1367         - Don't attempt to track indent level.
1368
1369 2006-05-30  Jackson Harper  <jackson@ximian.com>
1370
1371         * BindingContext.cs: Create the currency manager tables here.
1372         This allows us to more easily create null tables (when bad data
1373         members are used), and more easily create related currency
1374         managers.
1375         * CurrencyManager.cs: All the table creation stuff is done by the
1376         binding context now.
1377         - Current should throw an exception if listposition is -1.
1378         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
1379         been bound yet.
1380
1381 2006-05-30  Mike Kestner  <mkestner@novell.com>
1382
1383         * ListView.cs: allow reexpansion of zero-width column headers.
1384         Fixes #78528.
1385
1386 2006-05-28  Chris Toshok  <toshok@ximian.com>
1387
1388         * CurrencyManager.cs (get_Current): after the late binding
1389         listposition = -1 fix, we need to guard against it here and return
1390         null, otherwise we raise an exception (which is swallowed
1391         elsewhere, and breaks datagrid databinding.)
1392
1393 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
1394
1395         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
1396           than WM_SYSKEY, don't throw if get something unexpected (#78507)
1397
1398 2006-05-26  Jackson Harper  <jackson@ximian.com>
1399
1400         * ControlPaint.cs:
1401         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
1402         values, it's faster and it's all we care about (we don't care if
1403         the names aren't equal).
1404         * KeyboardLayouts.cs: Eliminate some dead code.
1405         - Lazy init things
1406         * X11Keyboard.cs: Lazy init keyboard detection.
1407         - Cleanup access modifiers a little.
1408
1409 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
1410
1411         * XplatUIX11.cs: Once again, attempting to get layout just right.
1412
1413 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
1414
1415         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
1416           the sizes of each link section, that will result in sizes that
1417           match DrawString's layout (Fixes #78391)
1418
1419 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
1420
1421         * FileDialog.cs: If AddExtension property is true autocomplete the
1422           extensions in SaveFileDialog correctly. Fixes bug #78453.
1423           Set MyNetwork and MyComputer to "C:\" for windows. This should
1424           fix part 8 of bug #78446 for now.
1425
1426 2006-05-26  Chris Toshok  <toshok@ximian.com>
1427
1428         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
1429         invalidate the current row header if we need to, but presumably
1430         we'll invalidate the row corrsponding to the bounds or
1431         editingControl.
1432         (GridHScrolled): switch back to this method, as it's part of the
1433         public api.  *sigh*.
1434         (GridVScrolled): same.
1435         (OnMouseWheel): hack up something that more or less works.  Call
1436         GridHScrolled/GridVScrolled directly, instead of duplicating much
1437         of their code here.
1438         (EnsureCellVisibility): reinstate a bunch of this code, since we
1439         can't just set the scrollbar Value and expect to do all the work
1440         in the ValueChanged handler.  Also, Call Update() after scrolling
1441         in one direction so the other XplatX11.ScrollWindow call has the
1442         proper stuff in the proper places.
1443         (EditCell): set is_editing to true before calling .Edit.
1444
1445         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
1446         don't bother comparing first.
1447         (OnKeyPress): call grid.ColumnStartedEditing before calling
1448         base.OnKeyPress.  this will set is_changing and invalidate the row
1449         header if necessary.
1450         (ProcessKeyMessage): for WM_CHAR messages, call
1451         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
1452         and WM_KEYDOWN.
1453         
1454         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
1455         it's done in the DataGrid.
1456         (NextState): call grid.ColumnStartedEditing, which takes care of
1457         invalidating the row header (and setting is_changing).
1458
1459         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
1460         here.  it's done in the DataGrid.
1461
1462 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1463
1464         * Control.cs: allow changing the cursor when the mouse position is
1465         out of bounds but Capture is set.
1466         * LinkLabel.cs: handle the case when the mouse button is pressed on the
1467         linklabel but released somewhere else.
1468
1469 2006-05-25  Jackson Harper  <jackson@ximian.com>
1470
1471         * TreeView.cs: When we get focus if there is no selected node make
1472         it the top node
1473         - Remove some uneeded setup code from Draw.
1474         * TreeNodeCollection.cs: If the tree doesn't have a top node when
1475         a new node is inserted make the new node the top.
1476         * XplatUIX11.cs:
1477         * Timer.cs: Use Utc time so that no local time zone stuff needs to
1478         be used (should be faster).
1479         
1480 2006-05-25  Chris Toshok  <toshok@ximian.com>
1481
1482         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
1483         problem with the last commit.
1484
1485 2006-05-25  Chris Toshok  <toshok@ximian.com>
1486
1487         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
1488         need the invalidate call here, while scrolling right-to-left via
1489         the left arrow key (i.e. moving the editing cell while scrolling).
1490
1491         * DataGrid.cs (.ctor): remove the initialization of
1492         ctrl_pressed/shift_pressed.  We no longer track them using key
1493         up/down handlers, but by using Control.ModifierKeys.  Also, switch
1494         to using ValueChanged handlers on the scrollbars instead of
1495         Scrolled event handlers.  This simplifies a bunch of the scrolling
1496         code.
1497         (GridHValueChanged): rename from GridHScrolled, and change it to
1498         work with the new event args.
1499         (GridVValueChanged): same.
1500         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
1501         (OnMouseWheel): actually scroll the datagrid.  Don't change the
1502         selected cell.
1503         (ProcessGridKey): correct all the keyboard navigation stuff I
1504         could find.  Ctrl up/down/left/right/home/end work now.
1505         (EnsureCellVisibility): correct method name spelling.  Also,
1506         simplify this a touch by not explicitly calling the
1507         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
1508         scrollbar value.
1509         (OnKeyUpDG): no need for this method now.
1510         
1511 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1512
1513         * LinkLabel.cs: display the OverrideCursor when hovering the label.
1514         Fixes bug #78392.
1515
1516 2006-05-25  Chris Toshok  <toshok@ximian.com>
1517
1518         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
1519         r61019.
1520
1521 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
1522
1523         * Application.cs: Moved setting of is_modal and closing to before
1524           we create the control, to allow the event handlers called as a
1525           result of creation affect closing. Also removed Gonzalo's previous
1526           change to setting DialogResult, the behaviour has been moved to 
1527           Form.ShowDialog()
1528         * Form.cs: 
1529           - ShowDialog(): Removed explicit creation of the form, let RunLoop
1530             handle it instead
1531           - ShowDialog(): If no dialog result is set, we need to return Cancel
1532           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
1533             the close is cancelled
1534
1535 2006-05-25  Jackson Harper  <jackson@ximian.com>
1536
1537         * StatusBar.cs: We only need to update the sizes of the other
1538         panels when we have auto size contents.  Also we are only updating
1539         the contents of the panel, not the borders, so compensate for the
1540         border width (TODO: get this width from the theme somehow).
1541         * TreeView.cs: Scrollable is true by default
1542         - Use invalidate instead of refresh where needed
1543         - Factor the scrollable value into scrollbar updating
1544         - Update the scrollbars if the Scrollable property is altered
1545         - Update the selected node if its ImageIndex is changed
1546         - Handle null nodes in UpdateNode (mainly so we don't have to
1547         check if selected is null when updating it
1548         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
1549         are factored into the visible count
1550         - Use VisibleCount for clarity in the code
1551         - When the font is changed we need to recurse through all the
1552         nodes and invalidate their sizes
1553         
1554 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1555
1556         * Application.cs: set the DialogResult to fixed when the main form is
1557         hidden or destroyed while being modal.
1558
1559 2006-05-25  Miguel de Icaza  <miguel@novell.com>
1560
1561         * Theme.cs: Use Tangoified messagebox icons. 
1562
1563         (GetSizedResourceImage): Also cope with width = 0 and do not
1564         trigger a warning in that case (0 means "give me your icon from
1565         the resouce, no special size needed).
1566
1567 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
1568
1569         * Application.cs: Leave runloop if the the main modal form is 
1570           hidden (fixes #78484)
1571
1572 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
1573
1574         * BindingContext.cs : reject null datasource in Contains() and
1575           Item[].
1576         * CurrencyManager.cs : check data_member validity when data_source
1577           is dataset. When it is late binding, the initial position is -1.
1578
1579 2006-05-24  Jackson Harper  <jackson@ximian.com>
1580
1581         * TreeNodeCollection.cs: Dont't recalculate the visible order on
1582         inserted nodes that aren't visible.  This changes the
1583         max_visible_order which confuses scrollbar settings.
1584         - Use the enumerator to get the prev node instead of duplicating
1585         code.
1586         * TreeView.cs: Use new method for setting scrollbar values
1587         - Don't set the bounds every time the scrollbar is updated
1588         - When updating below the root node use an invalidate instead of a
1589         refresh to prevent the child controls (scrollbars) from being
1590         refreshed. (UpdateBelow still needs to be reworked anyways).
1591         - Reenable SetBottom now that visible orders are set correctly,
1592         added some debug code incase we ever get bad values there again.
1593         - Set the scrollbar max to 2 less then the max value, this
1594         compensates for the max value being one above the node count, and
1595         for scrollbars adding one extra "notch".
1596         - When drawing image nodes if there is an imagelist we draw the
1597         first image in the list if the supplied image index is out of the
1598         image list's bounds.
1599         
1600 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
1601
1602         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
1603           we receive a size change from the WM (Fixes #78503)
1604
1605 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
1606
1607         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
1608           rectangle (Fixes #78501)
1609
1610 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
1611
1612         * ButtonBase.cs: 
1613           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
1614             as a bitfield.
1615           - Fixed MouseMove to no longer switch pressed state unless the left
1616             mouse button is pressed. Atsushi provided the original patch (#78485)
1617           
1618 2006-05-24  Jackson Harper  <jackson@ximian.com>
1619
1620         * ScrollBar.cs: New internal methods that allow us to change a
1621         couple values on the scrollbar (the most common case is maximum
1622         and large change) without getting multiple invalidates.
1623
1624 2006-05-24  Chris Toshok  <toshok@ximian.com>
1625
1626         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
1627         (Edit): save off the original state in oldState, and set
1628         grid.is_editing to true.
1629         (OnKeyDown): abort editing if escape is pressed.  also, call
1630         NextState if space is pressed.
1631         (OnMouseDown): call NextState.
1632         (NextState): factor out shared code from OnKeyDown and OnMouseDown
1633         here.  Also, only invalidate the row header once (on the initial
1634         is_changing switch) to save on redraws.
1635
1636 2006-05-24  Chris Toshok  <toshok@ximian.com>
1637
1638         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
1639         if the value in the cell is different than it was before.  This
1640         keeps us from triggering a layout when we move around a datarid
1641         with a highlighted cell.
1642         (Edit): suspend layout when creating/positining the text box, and
1643         resume passing false so we don't ever actually re-layout.
1644         (ReleaseHostedControl): same.
1645         (EnsureTextBox): reformat slightly, and set WordWrap to false.
1646
1647         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
1648         control-key sequences should go to the datagrid - remove that
1649         lock.  Also, modify the conditions under which we move between
1650         cells when moving the cursor within a cell, and remove the "this"
1651         and "base" from field accesses.  We weren't even consistent, given
1652         they all were in the base class.
1653
1654 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
1655
1656         * Binding.cs : (.ctor)
1657           An obvious NRE fix for BindingTest.CtorNullTest().
1658
1659 2006-05-23  Chris Toshok  <toshok@ximian.com>
1660
1661         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
1662         them between lines.  This fixes some quirks editing cells in the
1663         datagrid.
1664
1665 2006-05-23  Jackson Harper  <jackson@ximian.com>
1666
1667         * TreeView.cs: Use begin/end update when doing expand/collapse all
1668         so that we don't get flicker on the scrollbar.
1669
1670 2006-05-23  Jackson Harper  <jackson@ximian.com>
1671
1672         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
1673         treenode calculations to be independant of the painting code. To
1674         do this nodes track a visible order which is calculated by the
1675         treeview.
1676         - Call new methods for expanding/collapsing nodes.  These methods
1677         use scrollwindow so we don't have to update everything below the
1678         node.
1679         * TreeView.cs: Refactored drawing and scrolling code.  We don't
1680         need to update nodes when drawing anymore or calculate scrollbar
1681         stuff.
1682         - Added new methods for expanding/collapsing nodes. These methods
1683         use ScrollWindow so as to not have to redraw all the nodes below.
1684         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
1685         we add/remove nodes or sort.
1686         - Handle removing the selected and the top node properly.
1687
1688 2006-05-23  Chris Toshok  <toshok@ximian.com>
1689
1690         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
1691         maybe this should actually happen in the datagrid code?
1692         (EndEdit): no need to invalidate anything, given that
1693         ReleaseHostedControl causes the datagrid to relayout, which
1694         invalidates everything anyway.
1695
1696         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
1697         in SetCurrentCell).
1698         (set_SelectionBackColor): call InvalidateSelection instead of
1699         Refresh.
1700         (set_SelectionForeColor): same.
1701         (BeginEdit): Flesh this out a bit.
1702         (CancelEditing): only do any of this if we're editing/adding.
1703         (EndEdit): same.
1704         (OnMouseDown): there's no need to cancel editing here, it's done
1705         in SetCurrentCell.
1706         (SetCurrentCell): only invalidate the current row header if it's a
1707         different row than the new one.
1708         (ShiftSelection): fix this to work like MS does.
1709         (ResetSelection): factor out the invalidation of selected_rows to
1710         InvalidateSelection.
1711         (SetDataSource): cancel any editing that's going on.
1712
1713         * DataGridColumnStyle.cs
1714         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
1715         call the non-interface version.
1716
1717         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
1718         header rectangle with the clip rectangle so we don't redraw the
1719         entire header for just a small area.  Gets rid of the last flicker
1720         when horizontally scrolling.
1721         (DataGridPaintRow): same.
1722
1723 2006-05-23  Mike Kestner  <mkestner@novell.com>
1724
1725         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
1726         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
1727         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
1728         Critical bug report.
1729
1730 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
1731
1732         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
1733           and this fixes #78493
1734
1735 2006-05-23  Miguel de Icaza  <miguel@novell.com>
1736
1737         * Theme.cs (GetSizedResourceImage): Scale images if the proper
1738         size is not found.  
1739         
1740         * FileDialog.cs: Do not change the background for the side bar as
1741         it wont work nicely with the theme, and also reduces the artifacts
1742         in rendering the icons (which I want to fix too).
1743
1744         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
1745         resources, not resgen resources. 
1746
1747         (PlatformDefaultHandler): Pull images using the new API.
1748
1749 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
1750
1751         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
1752           a reference to the hwnd and will not remove it unless there are
1753           no pending exposures (fixes #78341)
1754         * XplatUI.cs: Improved debug
1755
1756 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
1757
1758         * MenuAPI.cs : don't handle OnClick event when it was not the left
1759           button. Fixed bug #78487.
1760
1761 2006-05-23  Mike Kestner  <mkestner@novell.com>
1762
1763         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
1764         prefer submenus to the top menu for item lookup, to avoid popping down
1765         top-row items.
1766
1767 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
1768
1769         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
1770           Graphics.FillRectangle as the visual results are really bad (even
1771           on win). We now draw perfect arrows (and perfect shadows when the
1772           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
1773           Pen.DashPattern to draw the dots of each line.
1774
1775 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
1776
1777         * FileDialog.cs: Update the filename combobox when navigating through
1778           the ListView with the cursor keys. Fixes part 7 of bug #78446.
1779
1780 2006-05-22  Mike Kestner  <mkestner@novell.com>
1781
1782         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
1783         Fixes #78463.
1784
1785 2006-05-22  Mike Kestner  <mkestner@novell.com>
1786
1787         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
1788         requests. Fix a misspelled parameter and a copy paste exception error
1789         in Select.
1790
1791 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
1792
1793         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
1794           to get the same width/height (5/13) on X11 as the default font has on
1795           win32. This means that our DefaultFont emSize is smaller than the 
1796           the MS SWF equivalent (even thought the width/height stays the same)
1797
1798 2006-05-20  Jackson Harper  <jackson@ximian.com>
1799
1800         * MdiClient.cs:
1801         * MdiWindowManager.cs:
1802         * InternalWindowManager.cs: Make sure to use the border width from
1803         the theme.
1804
1805 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
1806
1807         * PrintDialog.cs: Implements printer details
1808
1809 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
1810
1811         * FileDialog.cs: Added focus handling for PopupButtonPanel.
1812           Fixes part 1 and 2 of bug #78446
1813
1814 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
1815
1816         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
1817           instead of sticking to the first ever calculated value
1818
1819 2006-05-19  Mike Kestner  <mkestner@novell.com>
1820
1821         * ComboBox.cs: fix mouse motion selection to use MousePosition and
1822         PointToClient, since Capture is set. Fixes #78344.
1823
1824 2006-05-19  Mike Kestner  <mkestner@novell.com>
1825
1826         * ListView.cs: match MS behavior in Details view where items are not
1827         drawn if Columns.Count == 0. 
1828         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
1829         Use a separate pen to draw the check, since changing the width affects
1830         the box as well.  Fixes #78454.
1831
1832 2006-05-18  Miguel de Icaza  <miguel@novell.com>
1833
1834         * ListView.cs: ArgumentOutOfRangeException, single versions of the
1835         exception should throw the name of the invalid argument.
1836
1837         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
1838         there are no files listed. 
1839
1840 2006-05-18  Jackson Harper  <jackson@ximian.com>
1841
1842         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
1843         up.
1844
1845 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
1846
1847         * Control.cs: Brought back our old UpdateZOrder method as a private
1848           function and switched our calls from UpdateZOrder to the new one.
1849           This fixes the Paint.Net canvas disappearing bug.
1850
1851 2006-05-18  Jackson Harper  <jackson@ximian.com>
1852
1853         * Theme.cs:
1854         * ThemeWin32Classic.cs:
1855         * InternalWindowManager.cs: Move the drawing into the theme,
1856         expose everything the theme should need from the window manager.
1857
1858 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
1859
1860         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
1861           from the call to NativeWindow to avoid walking up the parent chain
1862           further than needed (speeds up setting cursors and avoids setting
1863           the wrong cursor if a parent has another cursor defined)
1864         * Cursor.cs: When loading an icon as cursor, MS uses the center of
1865           the icon as hotspot, not what's contained as hotspot in the icon
1866           file. This fixes the perceived drawing offset seen with Paint.Net
1867         
1868 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
1869
1870         * XplatUIX11.cs: 
1871           - Store the calculated rectangle in Hwnd object and use it when 
1872             setting the client size
1873           - Force Toolwindows to always be type Dock, to ensure they're on top
1874
1875 2006-05-18  Mike Kestner  <mkestner@novell.com>
1876
1877         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
1878         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
1879         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
1880         Substantial refactoring to remove confusing nested classes. Coding
1881         standard and Get+Set->property refactorings.  Shift to index based
1882         highlighting in ComboListBox instead of constantly using IndexOf and
1883         Items[]. Add invalidations on resize for DropDownList to fix ugliness
1884         in FileDialog growth.  Draw borders manually since Simple mode needs
1885         to look like two independent controls.  Make listbox border
1886         conditional to DropDownStyle.  Improved OwnerDraw support.
1887
1888 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
1889
1890         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
1891         Don't set the disposed graphics to null, so we can throw the "right"
1892         exception if the graphics is reused later (added a flag to avoid 
1893         double disposing). Some behaviours are different under 2.0 and are
1894         filled under bug #78448.
1895
1896 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
1897
1898         * Control.cs: When double-buffering is enabled, we need to reset
1899           our graphics context between paint calls. Otherwise, any 
1900           transformations and other alterations on the context will 
1901           become cumulative (#77734)
1902
1903 2006-05-18  Mike Kestner  <mkestner@novell.com>
1904
1905         * ListView.cs: do focused item selection like MS on clicks. 
1906         Rework focus handling for ItemControl so LostFocus invalidates as
1907         well.
1908         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
1909         the ListView ItemControl has focus.
1910
1911 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
1912
1913         * XplatUIX11.cs: If client_window ends up being width or height zero
1914           due to border settings, move it off window inside whole_window (#78433)
1915
1916 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
1917
1918         * Mime.cs: Shrink the mime file cache correctly.
1919
1920 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
1921
1922         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
1923
1924 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
1925
1926         * XplatUIX11.cs (AddExpose): More sanity checks
1927
1928 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
1929
1930         * XplatUIX11.cs:
1931           - AddExpose: Don't add expose ranges outside the size of our
1932             window
1933           - Cast opacity values to Int32 to avoid crashes with certain
1934             values
1935           - Added disabled code paths that protect against illegal cross-
1936             thread painting (Developers.exe)
1937
1938 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
1939
1940         * ProgressBar.cs: Invalidate the control when it's resized
1941           since block size is based on control size. (#78388)
1942
1943 2006-05-16  Miguel de Icaza  <miguel@novell.com>
1944
1945         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
1946         of setting the incoming argument to the "reset" value, we set the
1947         this.datamember to string.empty (before we were invalidating the
1948         incoming data).   
1949
1950         Fixes 78420
1951
1952 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
1953
1954         * Form.cs: Only apply transparency settings after the form
1955           is created. (Fixes #77800)
1956
1957 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
1958
1959         * ApplicationContext.cs: Grab the HandleDestroyed event so
1960           we know when to fire OnMainFormClosed 
1961
1962 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
1963
1964         * Application.cs: Introduced sub-class to allow tracking of
1965           threads and centralized triggering of the event mess for
1966           ThreadExit, AppExit, etc..  (#76156)
1967
1968 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
1969
1970         * MimeIcon.cs:
1971           - Do not return a null icon index value for a mime subclass.
1972             Instead try the main mime type class too.
1973           - Seems that some newer distributions don't have a link to some
1974             gnome default icons anymore. So check the default gnome dir too.
1975           
1976
1977 2006-05-16  Jackson Harper  <jackson@ximian.com>
1978
1979         * MdiClient.cs: Don't paint the parent background image if we have
1980         our own background image.
1981
1982 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
1983
1984         * Control.cs:
1985           - PerformLayout: Do not shrink space filled by DockStyle.Fill
1986             controls, all filled controls are supposed to overlap (#78080)
1987           - UpdateZOrder is supposed to update the control's z-order in the
1988             parent's z-order chain. Fixed to behave like that
1989           - BringToFront: Removed obsolete code
1990           - SendToBack: Simplyfied
1991           - SetChildIndex: Trigger layout calculations when Z-order changes
1992             since layout is done by z-order
1993
1994 2006-05-16  Chris Toshok  <toshok@ximian.com>
1995
1996         [ fixes bug #78410 ]
1997         * DataGrid.cs (set_AlternatingBackColor): use
1998         grid_drawing.InvalidateCells instead of Refresh().
1999         (set_BackColor): call grid_drawing.InvalidateCells.
2000         (set_BackgroundColor): use Invalidate instead of Refresh.
2001
2002         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
2003         invalidate the cell area.
2004
2005 2006-05-15  Chris Toshok  <toshok@ximian.com>
2006
2007         [ fixes bug #78011 ]
2008         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
2009         on to DataGridPaintRow.
2010         (DataGridPaintRow): take a clip argument, and only draw the cells
2011         which intersect it.  same with the not_usedarea.
2012
2013         * Theme.cs (DataGridPaintRow) add @clip parameter.
2014
2015         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
2016         XplatUI.ScrollWindow.
2017         (ScrollToRow): same.
2018
2019         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
2020         with last column which was causing a gray swath to appear with the
2021         XplatUI.ScrollWindow code.
2022
2023 2006-05-15  Chris Toshok  <toshok@ximian.com>
2024
2025         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
2026         use XplatUI.ScrollWindow.
2027         (VerticalScrollEvent): use XplatUI.ScrollWindow.
2028
2029 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
2030
2031         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
2032
2033 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
2034
2035         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
2036           file since there are no equivalent X11 cursors
2037
2038 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
2039
2040         * MonthCalendar.cs : DateTimePicker should reflect selected date
2041           on mouse*up*, not mouse*down*. Fixed originally reported part of
2042           bug #76474.
2043
2044 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
2045
2046         * TabControl.cs : When argument index is equal or more than tab
2047           count, just ignore. Fixed bug #78395.
2048
2049 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
2050
2051         * Control.cs: Dispose all child controls when control is diposed (#78394)
2052
2053 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
2054
2055         * ColorDialog.cs: Finally it is possible to select the color with
2056           the text boxes
2057
2058 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
2059
2060         * PrintDialog.cs: Fix typo
2061
2062 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
2063
2064         * PrintDialog.cs: PrintDialog is not resizable
2065         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
2066           color. Made some ToolBar drawing methods protected virtual.
2067
2068 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
2069
2070         * PrintDialog.cs: Implementation of the PrintDialog
2071
2072 2006-05-12  Chris Toshok  <toshok@ximian.com>
2073
2074         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
2075         thumb, instead use MoveThumb.  This has the side effect of making
2076         most of the other thumb moving machinery use MoveThumb as well.
2077         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
2078         need to actually invalidate the rectangle where the new thumb will
2079         go.
2080         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
2081         We force an Update() after, so it's not as fast as it could be,
2082         but at least there's zero flicker and no droppings.
2083         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
2084         (UpdateThumbPos): add another argument (dirty), which says whether
2085         or not to calculate/add dirty regions which we later invalidate.
2086         For cases where we know we're going to use MoveThumb, we pass
2087         false for this.  Otherwise, pass true.
2088
2089 2006-05-12  Jackson Harper  <jackson@ximian.com>
2090
2091         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
2092         the status bar.
2093         
2094 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
2095
2096         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
2097           and GetClipRegion methods and UserClipWontExposeParent property.
2098         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
2099           overriding UserClipWontExposeParent property, setting to false, since
2100           Win32 handles the required expose messages to draw our clipped parent
2101           areas internally
2102         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
2103           PaintEventStart to set the user clip region if set.
2104         * Control.cs: 
2105           - Now internally tracking the Region for the control since we need to
2106             store it if the handle is not yet created and only set it when it
2107             becomes created. Before setting the region forced handle creation
2108           - Added code to draw the parents underneath a user-clipped region
2109         * Hwnd.cs: Added UserClip property
2110
2111 2006-05-12  Chris Toshok  <toshok@ximian.com>
2112
2113         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
2114         (set_Maximum): same.
2115         (set_Minimum): same.
2116         (set_SmallChange): same.
2117         (OnMouseUpSB): remove the call to refresh when releasing the
2118         thumb.  We shouldn't need it.
2119         
2120 2006-05-12  Miguel de Icaza  <miguel@novell.com>
2121
2122         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
2123         AutoSize set to None, we do not need to relayout everything, we
2124         just need to invalidate the current region.
2125
2126         (Draw): Do not draw the entire ClientArea, just redraw the
2127         clip area being passed.
2128
2129         * MdiClient.cs: Make MdiClient constructor with the Form argument
2130         internal. 
2131
2132 2006-05-12  Jackson Harper  <jackson@ximian.com>
2133
2134         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
2135         parents background image,  but strangely not their own.
2136         - (DrawStatusBarPanel): Take into account horizontal alignment
2137         when drawing the strings and icons.
2138
2139 2006-05-12  Mike Kestner  <mkestner@novell.com>
2140
2141         * ListBox.cs: avoid invalidations for focus when the collection is
2142         empty. 
2143
2144 2006-05-12  Chris Toshok  <toshok@ximian.com>
2145
2146         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
2147         invalidate the entire thumb area.  Call InvalidateDirty which
2148         limits the redraw to the thumb itself and surrounding pixels.
2149
2150         * XplatUIX11.cs (ScrollWindow): optimize copying.
2151         
2152 2006-05-12  Chris Toshok  <toshok@ximian.com>
2153
2154         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
2155         Figure out the positioning/layout in a single pass instead of
2156         multiple recursive invocations.  Speeds up the initial display of
2157         the data grid.  Also, make many things private that were
2158         originally public but unused outside this class.
2159
2160 2006-05-11  Jackson Harper  <jackson@ximian.com>
2161
2162         * MdiClient.cs: Improved layout code.
2163
2164 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
2165
2166         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
2167           not SelectedObject.
2168
2169 2006-05-11  Chris Toshok  <toshok@ximian.com>
2170
2171         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
2172         union of that will always be {0,0,width,height}.
2173
2174 2006-05-11  Jackson Harper  <jackson@ximian.com>
2175
2176         * Form.cs: Match MS's DefaultSize for forms (they must have
2177         changed the size in sp2).
2178
2179 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
2180
2181         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
2182
2183 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
2184
2185         * TextControl.cs : Fixed bug #78109. This incorrect position
2186           comparison caused crash on automatic line split.
2187         * TextBoxBase.cs : reduce duplicate code.
2188
2189 2006-05-10  Jackson Harper  <jackson@ximian.com>
2190
2191         * MdiClient.cs: Active form is only sent to the back when using
2192         the Next form functionality, when a form is clicked the current
2193         active shouldn't be sent to the back.
2194         - Layout the mdi windows when the container is first made visible.
2195         * Form.cs: Give the MdiClient a ref to the containing form when we
2196         create it.
2197         
2198 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
2199
2200         * LinkLabel.cs : link_font could be uninitialized, so populate one
2201           before actual use. Fixed bug #78340.
2202
2203 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
2204
2205         * XplatUIX11.cs : clipboard format native value is IntPtr.
2206           Fixed bug #78283.
2207
2208 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
2209
2210         * Control.cs: 
2211           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
2212             which is passed up the parent chain by DefWndProc
2213           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
2214             to DefWndProc (#77956)
2215         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
2216
2217 2006-05-10  Jackson Harper  <jackson@ximian.com>
2218
2219         * MdiClient.cs: We need to remove the controls from the mdi
2220         collection, when we close the window.
2221         * MdiWindowManager.cs: Special handling of closing mdi windows.
2222         * InternalWindowManager.cs: Make the close method virtual so the
2223         mdi window manager can handle it specially.
2224
2225 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
2226
2227         * DataGrid.cs:
2228           - Recalculate grid when the data source has changed
2229           - Matches styles provided by user from all data sources types
2230         * DataGridTableStyle.cs: For columns that provided by the user set the
2231         with the preferred value is there was unassigned.
2232         * CurrencyManager.cs: throw OnItemChanged event
2233
2234 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
2235
2236         * PictureBox.cs: Don't animate until handle is created. Start animation
2237           when handle is created.
2238
2239 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
2240
2241         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
2242           current codebase.
2243         * XEventQueue.cs: We don't need to provide the extra info
2244
2245 2006-05-10  Jackson Harper  <jackson@ximian.com>
2246
2247         * MdiClient.cs: If the mdi clients parent form has a background
2248         image set, we draw that background image for the mdi area's
2249         background.
2250
2251 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
2252
2253         * TextBoxBase.cs: Set IBeam cursor (#78347)
2254
2255 2006-05-10  Mike Kestner  <mkestner@novell.com>
2256
2257         * ToolBar.cs: fix some text padding issues with ButtonSize
2258         calculation. Update the default size to match MS documentation.
2259         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
2260         button size. Fixes #78296.
2261
2262 2006-05-10  Mike Kestner  <mkestner@novell.com>
2263
2264         * ListBox.cs: use is_visible for scrollbar positioning in case the
2265         control isn't on screen yet.  Fix off by one with Right vs Width
2266         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
2267         
2268 2006-05-10  Jackson Harper  <jackson@ximian.com>
2269
2270         * X11Dnd.cs: Drop to a control with another control on top of it.
2271         * ToolBar.cs: Work on a copy of the buttons list, so that it can
2272         be modified in click handlers. TODO: Look for similar problems in
2273         other controls.
2274
2275 2006-05-09  Jackson Harper  <jackson@ximian.com>
2276
2277         * Form.cs: Window managers need the old window state when setting
2278         window state now.
2279         * InternalWindowManager.cs: Allow the base mdi window manager to
2280         handle more of the MDI only stuff (like maximize buttons).
2281         * MdiWindowManager.cs: Fix some snafus in changing the window
2282         state.  Add all the menu functionality, for both popup and
2283         maximized menus.
2284         * MdiClient.cs: When a new form is selected the currently
2285         activated form is sent to the back, this matches MS.
2286         - Implement a new method to activate the next mdi child window.
2287
2288 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
2289
2290         * Control.cs: 
2291           - Added new InternalCapture method to allow controls to prevent
2292             the capture behaviour on the click handlers
2293           - Switched to use InternalCapture
2294         * ComboBox.cs:
2295           - Using InternalCapture to prevent mouse captures from being released
2296             on mouse button release (Fixes #78100)
2297         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
2298           returns Form borders if a caption is present. (Fixes #78310)
2299
2300 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
2301
2302         * TreeNode.cs: Changed serialization .ctor to not require every field
2303           to be present. (#78265)
2304         * OwnerDrawPropertyBag.cs: Added serialization .ctor
2305
2306 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
2307
2308         * MimeIcon.cs: for is faster than foreach for strings.
2309
2310 2006-05-05  Mike Kestner  <mkestner@novell.com>
2311
2312         * CheckedListBox.cs: update check handling code to not use selected.
2313         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
2314         behavior for visual feedback, motion response, shift/ctrl handling,
2315         and properly deal with all 4 selection modes. Updates to bounds
2316         handling logic.  Add scroll wheel support. [Fixes #77842]
2317
2318 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
2319
2320         * ListView.cs:
2321           - Moved adding of Implicit controls into .ctor. That way, subsequent
2322             creation of the controls will not cause them to think they are 
2323             toplevel windows (fixes #78200 header problem)
2324           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
2325           - Switched visibility setting of header control to use internal field
2326             to avoid triggering handle creation
2327           - Now checking if handle is created before causing a refresh when items
2328             are added (This makes us now match handle creation time with MS)
2329         * Splitter.cs: Removed loading of private splitter cursor, switched to
2330           Cursors version now that that is loading the right ones
2331         * Cursors.cs: Load proper splitter cursors from resources
2332         * Cursor.cs: Added second method of loading resource cursors for the 
2333           VS.Net users amongst us
2334
2335 2006-05-05  Mike Kestner  <mkestner@novell.com>
2336
2337         * ListView.cs: give header_control a minimum size based on the
2338         ListView size.
2339
2340 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
2341
2342         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
2343           window seems to do that with metacity, so set that type. (#78120)
2344
2345 2006-05-05  Mike Kestner  <mkestner@novell.com>
2346
2347         * ListViewItem.cs: fix Details mode checkbox layout bug.
2348         * ThemeWin32Classic.cs: draw a ListView column header for unused space
2349         at the end of the header, if it exists. [Fixes for #78200]
2350
2351 2006-05-04  Jackson Harper  <jackson@ximian.com>
2352
2353         * MdiClient.cs: Add a helper property to get the container form.
2354         * MdiWindowManager.cs: We have to make sure to use the menu origin
2355         when drawing the icons and buttons, this fixes maximized window
2356         icons/buttons on win32.
2357         * InternalWindowManager.cs: Reset the restore captions when a
2358         window goes from Maximized to Minimized and vice versa. Move the
2359         DrawMaximizedButtons into the MdiWindowManager source, tool
2360         windows can't be maximized. NOTE: This could use a little
2361         refactoring if time ever permits.
2362         
2363 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
2364
2365         * TextBox.cs: Add MWFCategoryAttributes
2366         * TextBoxBase.cs: Add MWFCategoryAttributes
2367         * Form.cs: Add MWFCategoryAttributes
2368
2369 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
2370
2371         * Control.cs: Add MWFCategoryAttributes
2372         * ScrollableControl.cs: Add MWFCategoryAttributes
2373
2374 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
2375
2376         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
2377           Divider is true. Fix a little glitch in PropertyToolBar
2378           drawing code
2379
2380 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
2381
2382         * Control.cs:
2383           - Dispose: Call base.Dispose, this causes the disposed event
2384             to be fired (and probably other, more important stuff)
2385           - SetVisibleCore: Set is_visible to true after creating the
2386             window so that the window still gets created invisible (if
2387             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
2388             to generate a WM_ACTIVE message
2389         * Form.cs: Call Dispose when we want to destroy the window, instead of
2390           just destroying the handle (Dispose will do that for us)
2391         * XplatUIX11.cs:
2392           - RootWindow also needs a queue, so we can properly process the
2393             property change events from RootWindow (like Activate)
2394           - Generatic synthetic WM_ACTIVE message when the active window is
2395             being destroyed
2396
2397 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
2398
2399         * LinkLabel.cs: Trigger a recalc of our label dimensions when
2400           bounds are changed
2401
2402 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
2403
2404         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
2405           for determining width and height (image might not be assigned if
2406           we're drawing an imagelist)
2407
2408 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
2409
2410         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
2411         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
2412           height from system
2413         * Theme.cs: No longer returns hardcoded menu height, instead calls
2414           new driver method
2415         * Form.cs (OnLoad): Scaling happens before triggering Load events 
2416           on MS (# 78257)
2417
2418 2006-05-01  Mike Kestner  <mkestner@novell.com>
2419
2420         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
2421
2422 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
2423
2424         * TextBoxBase.cs: Removed Fixme
2425         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
2426
2427 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
2428
2429         * XplatUIX11.cs:
2430           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
2431             the rectangle relative to the parent, considering borders. We
2432             don't really want that.
2433           - ScrollWindow: Fixed warning to be more understandable
2434         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
2435           scrollbars and scroll only the visible area
2436         * RichTextBox.cs: Removed debug output
2437
2438 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
2439
2440         * NumericUpDown.cs (Text): Just use base
2441         * UpDownBase.cs: Ensure txtView is created before using it
2442
2443 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
2444
2445         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
2446           casting to IntPtr to avoid 64bit overflow errors
2447
2448 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
2449
2450         * Control.cs:
2451           - AllowDrop: Don't force handle creation.
2452           - CreateHandle: Added call to tell driver if we're allowed to drop
2453
2454 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
2455
2456         * FileDialog.cs: Remember the last directory not only for the
2457           current instance but also for new FileDialog instances.
2458
2459 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
2460         
2461         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
2462           broke sending async messages
2463
2464 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
2465
2466         * XplatUIX11.cs:
2467           - ScrollWindow: Fixed method. We finally generate expose events again
2468             for scrolled areas. This was causing 'garbage' when scrolling
2469             textbox and other controls that used ScrollWindow
2470           - Switched from using the regular queue for paint events to the MS 
2471             model of 'generating' paint events when the queue is empty.
2472             We use the new XQueueEvent.Paint subclass to store which windows
2473             need painting.
2474           - AddExpose now takes the x/y/width/height of the exposed area
2475             and inserts the window into the paint queue if not already there
2476           - InvalidateWholeWindow: Switched to use new AddExpose method
2477           - UpdateMessageQueue: Added which queue to monitor for paint events
2478           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
2479             the unlikely case nothing above handles it. We reset the expose
2480             pending states to get them off the queue.
2481           - GetMessage: Now pulls a paint event if no other events are in the
2482             queue
2483           - Invalidate: Switched to new AddExpose method
2484           - PeekMessage: Updated to understand pending paint events
2485           - UpdateWindow: Fixed logic bug. We were only updating if the window
2486             didn't need updating. Also switched to sending WM_PAINT directly,
2487             like MS does.
2488         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
2489           and random access Remove(). The random access is needed to handle
2490           UpdateWindow() where a WM_PAINT is sent directly without accessing
2491           the queue.
2492         * ScrollBar.cs: Added Update() calls to cause immediate updates to
2493           allow for better feedback when scrolling. Scrollbars are small and
2494           the immediate update should make it 'feel' more responsive without
2495           slowing things down. ScrollBar still needs it's invaliate logic
2496           updated to not always invalidate the whole bar on certain changes.
2497
2498 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2499
2500         * Control.cs:
2501         (BackColor): if the control does not support a transparent background,
2502         return the default backcolor when the parent backcolor is transparent.
2503
2504 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
2505
2506         * Application.cs: Updated to new StartLoop/GetMessage API
2507         * RichTextBox.cs: Provide some output on RTF parsing errors
2508         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
2509           new queue_id argument to GetMessage and PeekMessage to allow faster
2510           handling of per-thread queues in drivers.
2511         * Hwnd.cs: Added Queue tracking and property
2512         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
2513         * XEventQueue.cs: Added thread trackingA
2514         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
2515         * XplatUIX11.cs:
2516           - Implemented new per-thread queue
2517           - GetMessage: Fixed return/break behaviour on several cases. We were
2518             returning stale messages in some cases, instead of just processing
2519             the next message
2520
2521 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
2522
2523         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
2524
2525 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
2526
2527         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
2528           fixed off-by-one comparisons between Width/Height and Right/Bottom.
2529
2530 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
2531
2532         * PropertyGridView.cs: Fix drop down width.
2533
2534 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
2535
2536         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
2537           a mess in DrawToolBar, so I removed one of them.
2538
2539 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
2540
2541         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
2542           needed (clip). Otherwise we get artifacts.
2543
2544 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
2545
2546         * FixedSizeTextBox.cs: Added constructor to allow specifying which
2547           dimension is fixed
2548         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
2549           and switched FixedSizeTextBox to only be fixed vertical (#78116)
2550         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
2551           if it matches the scale base font (avoids unneeded scaling)
2552
2553 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
2554
2555         * X11DesktopColors.cs: One gtk_init_check should be enough
2556
2557 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
2558
2559         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
2560           match MS behaviour
2561
2562 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
2563
2564         * TextBoxBase.cs: 
2565           - Generate OnTextChanged for Backspace even if we're only deleting
2566             the current selection
2567           - When setting the Text property, only select all text if the
2568             control does not have focus when it is being set. Otherwise
2569             just place the cursor at the beginning of the control
2570
2571 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
2572
2573         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
2574           Added a little helper to draw PropertyGrid ToolBar with a different
2575           border and a different BackColor.
2576         * PropertyGrid.cs: Some background parts didn't get painted with the
2577           correct background color. Added a class that helps us to draw the
2578           correct border for PropertyGridView and a class that helps us to
2579           draw ToolBars with a different backcolor
2580         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
2581
2582 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
2583
2584         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
2585         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
2586
2587 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
2588
2589         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
2590           into the palette entries. Also, since we're working on a copy
2591           we needed to copy the palette back onto the bitmap.
2592         * Cursor.cs: Same fix as XplatUIWin32.cs.
2593
2594 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
2595
2596         * ImageListStreamer.cs: Need to read the var (or we're off)
2597
2598 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
2599
2600         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
2601           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
2602           TextBoxBase.cs: Unused var fixes
2603         * AxHost.cs: Small 2.0 fix
2604         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
2605           as it seems that is what at least Metacity expects. This will make
2606           icons show up on 64bit platforms. We still have some 64bit size
2607           issues, though, since the startup app window size still won't match.
2608
2609 2006-04-25  Mike Kestner  <mkestner@novell.com>
2610
2611         * *.cs: cleanup newly reported exception var unused warnings.
2612
2613 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
2614
2615         * ThemeWin32Classic.cs: Button image alignment now matches exactly
2616           ms
2617
2618 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
2619
2620         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
2621           image. The image position is always the same, no matter if the
2622           button is pressed or not.
2623
2624 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
2625
2626         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
2627           selection and set the correct filename for SaveFileDialog.
2628           Patch by Emery Conrad.
2629
2630 2006-04-24  Mike Kestner  <mkestner@novell.com>
2631
2632         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
2633         check for item.X outside the ClientRect instead of item.Y. Fixes
2634         #78151.
2635
2636 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2637
2638         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
2639         trust that value blindly and do some sanity check. Fixes bug #77814.
2640
2641 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2642
2643         * ImageListStreamer.cs: save the mask as a 1bpp image.
2644
2645 2006-04-21  Mike Kestner  <mkestner@novell.com>
2646
2647         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
2648         pass Checked and Indeterminate to the Theme Engine. Improve
2649         encapsulation with ListBox.
2650         * ListBox.cs: Keep a StringFormat instead of calculating it every item
2651         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
2652         nested types.  Move all CheckState functionality to CheckedListBox.
2653         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
2654         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
2655         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
2656         single base list. Fix scrollbar sizing and placement to mirror MS.
2657         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
2658         used.
2659         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
2660         for CheckedListBox by using new DrawItemState info.  Center the
2661         checkboxes on the items. Use new StringFormat property.
2662
2663 2006-04-18  Jackson Harper  <jackson@ximian.com>
2664
2665         * Form.cs: MdiChildren don't do default locations the same way as
2666         regular forms.  This prevents a crash when trying to position the
2667         mdi windows.
2668
2669 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
2670
2671         * PropertyGridTextBox.cs: Formatting, copyright
2672         * PropertiesTab.cs: Formatting
2673         * PropertyGrid.cs: Formatting
2674         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
2675           click toggling of values
2676           
2677 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
2678
2679         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
2680         * Control.cs (.ctor): verify_thread_handle is static, don't reset
2681           every time a control is created
2682         * Application.cs: Removed obsolete EnableRTLMirroring method
2683
2684 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
2685
2686         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
2687         SelectedIndex to -1. Fixes bug #78121.
2688
2689 2006-04-17  Jackson Harper  <jackson@ximian.com>
2690
2691         * Binding.cs: Handle null values for Current and BindingContext.
2692         This occurs when binding is a little delayed.
2693         * CurrencyManager.cs: return null for Current when there are no
2694         items in the list.
2695         - Hookup to the listchanged event on the DataView and update
2696         bindings when the list is changed.  This fixes late binding of
2697         controls.
2698
2699 2006-04-17  Jackson Harper  <jackson@ximian.com>
2700
2701         * X11Dnd.cs:
2702         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
2703         Ringenbach.
2704
2705 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
2706
2707         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
2708           place
2709         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
2710           with the correct ButtonState
2711
2712 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
2713
2714         * XplatUIX11.cs: Improved distinguishing between window types to
2715           tell the WM a type closer to what the app wants (Fixes #78107)
2716
2717 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
2718
2719         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
2720           GrabHandle
2721
2722 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
2723
2724         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
2725           drawing code to reflect the size grip changes
2726
2727 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2728
2729         * ImageListStreamer.cs: fix handling of the mask that follows the main
2730         bitmap when deserializing and serialize it properly. The generated mask
2731         should better be a 1bpp image, but I'll do that later.
2732
2733 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
2734
2735         * FileDialog.cs: Show something in the DirComboBox on *nix if the
2736           path doesn't fit into some of our Current.Places
2737
2738 2006-04-13  Jackson Harper  <jackson@ximian.com>
2739
2740         * ComboBox.cs: Use borders instead of drawing our own decorations,
2741         try to obey correct rules for heights.
2742         * Theme.cs:
2743         * ThemeNice.cs:
2744         * ThemeClearLooks.cs:
2745         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
2746         this is now handled by borders.
2747         - Remove unused DrawListBoxDecorationSize method.
2748         
2749 2006-04-13  Mike Kestner  <mkestner@novell.com>
2750
2751         * MenuAPI.cs: null guarding for the disbled click check fixes crash
2752         reported by Alex.
2753
2754 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
2755
2756         * ThemeWin32Classic.cs: 
2757           - Fixed CPDrawStringDisabled
2758           - Corrected drawing of disabled menu items
2759           - Fixed drawing of disabled radio buttons (bug #78095)
2760           - Draw check in a disabled CheckBox with color ControlDark 
2761
2762 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
2763
2764         * Form.cs: Use the provided width when calculating the menu size;
2765           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
2766           and ClientSize.Width won't be updated yet
2767         * Application.cs: Use Visible instead of Show() to make form visible,
2768           this way we create the handle later and menusize is considered
2769
2770 2006-04-12  Mike Kestner  <mkestner@novell.com>
2771
2772         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
2773         reporting.
2774
2775 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
2776
2777         * TextBox.cs: Implemented context menu
2778
2779 2006-04-12  Mike Kestner  <mkestner@novell.com>
2780
2781         * ListView.cs: implement box selection. fixes #77838.
2782         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
2783
2784 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
2785
2786         * XplatUIX11.cs: Added setting of window type when transient window
2787           is created (metacity would move it otherwise)
2788         * X11Structs.cs: Added WINDOW_TYPE atoms
2789         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
2790           background (the control is Opaque but still wants transparent
2791           backgrounds)
2792
2793 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
2794
2795         * Control.cs: Added OnPaintBackgroundInternal to allow controls
2796           that set Opaque but don't mean it (like all ButtonBase-derived
2797           controls) to still draw their background
2798         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
2799           the background
2800
2801 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
2802
2803         * Control.cs (PaintControlBackground): Set the graphics object
2804           on our PaintEvent to null to prevent it from being disposed
2805           when the PaintEvent gets disposed
2806
2807 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
2808
2809         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
2810         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
2811
2812 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
2813
2814         * Control.cs: 
2815           - Added transparency check to BackColor property. Transparent
2816             backgrounds are only allowed if the control styles permit it
2817           - Added recursive painting of parent control background and
2818             foreground if a control with a transparent backcolor is drawn
2819             (Thanks to Tim Ringenback for providing his 'hack' as a base
2820              for this patch) Fixes #77985 and #78026.
2821           - Added Opaque style check before calling OnPaintBackground, no
2822             need to draw the background if the control is opaque
2823           - Removed ControlAccessibleObject owner variable (inherited from
2824             base, no need to define again)
2825           - Added some documentation links explaining the drawing events
2826             and styles
2827
2828 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
2829
2830         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
2831           that the affected control is the located at the left border of our
2832           parent (Fixes #77936)
2833
2834 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
2835
2836         * TextBoxBase.cs: When rendering disabled or readonly controls,
2837           draw the background with 'Control' instead of 'Window' color as
2838           long as the user hasn't specifically set a color
2839
2840 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
2841
2842         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
2843           since that won't be updated if the user types text (only if it's
2844           programatically set)
2845
2846 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
2847
2848         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
2849           layout changes do to app-triggered resizes will have the proper
2850           display rectangle for layout
2851
2852 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
2853
2854         * ThemeWin32Classic.cs:
2855           - Make use of the SystemBrushes and SystemPens wherever possible
2856           - Corrected some highlight colors
2857           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
2858             drawing
2859         * Theme.cs: Added Empty field to CPColor struct
2860
2861 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
2862
2863         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
2864           is displayed when calculating the display rectangle. Thanks to Mike
2865           for teaching me the err of my ways.
2866
2867 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
2868
2869         * ScrollableControl.cs:
2870           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
2871             (instead of 0,0) and we now return the real width/height instead of
2872             just the clientrectangle, adjusted for padding. The rectangle is
2873             now cached and created by the new CalculateDisplayRectangle method.
2874           - Created new CalculateDisplayRectange method, which basically does
2875             what get_DisplayRectangle() did originally, but now using the 
2876             right edge instead of DisplayRectangle to determine the size of
2877             our scrollbars
2878           - get_Canvas(): Fixed it to properly calculate canvas for 
2879             right/bottom controls which seem to be placed to the right/bottom
2880             of any controls that have a fixed location
2881           - Removed TODO that's taken care of
2882           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
2883             and SetDisplayRectLocation according to new MSDN2 docs
2884           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
2885             event when that is called, this is added for compatibility
2886           - ScrollControlIntoView(): Implemented.
2887           - Switched scrollbars to be implicit, they shouldn't be selectable
2888         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
2889           call it when the active control is set/changed
2890         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
2891         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
2892           implicit_control variable (used for native Win32 message generation)
2893         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
2894           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
2895         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
2896         * XplatUIStructs.cs: Added ScrollBarCommands enum
2897
2898 2006-04-10  Jackson Harper  <jackson@ximian.com>
2899
2900         * ButtonBase.cs:
2901         * CheckedListBox.cs:
2902         * ComboBox.cs:
2903         * DataGrid.cs:
2904         * DataGridView.cs:
2905         * Form.cs:
2906         * GroupBox.cs:
2907         * ListBox.cs:
2908         * PrintPreviewControl.cs:
2909         * ProgressBar.cs:
2910         * PropertyGrid.cs:
2911         * Splitter.cs:
2912         * StatusBar.cs:
2913         * TrackBar.cs:
2914         * UpDownBase.cs: Fixup base event overrides.
2915         
2916 2006-04-06  Mike Kestner  <mkestner@novell.com>
2917
2918         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
2919         all user-initiated value changes to min <= value <= max-thumbsz+1.
2920         (set_Value): check for vert/horiz when calculating new thumb position.
2921         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
2922         like MS does.
2923         (OnMouseMoveSB): refactor the thumb dragging code and refine
2924         invalidation logic to reduce flicker.
2925         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
2926         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
2927         (UpdateThumbPosition): small code readability cleanup
2928
2929 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
2930
2931         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
2932           different
2933
2934 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
2935
2936         * ThemeNice.cs: Use a better graphics effect when a button is pressed
2937
2938 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
2939
2940         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
2941         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
2942           This dramatically reduces the number of Pen.Dispose calls. 
2943           Where possible call ResPool methods only once instead of calling it
2944           over and over again (for example for the same color).
2945
2946 2006-04-06  Mike Kestner  <mkestner@novell.com>
2947
2948         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
2949         Also remove an unused private field on the collection. Fixes #77972.
2950
2951 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
2952
2953         * ThemeNice.cs: Added ToolBar drawing code
2954
2955 2006-04-06  Mike Kestner  <mkestner@novell.com>
2956
2957         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
2958         I'm assuming that means we need to look up the toplevel for the
2959         provided control. Fixes the crash trace in #77911 but exposes another
2960         crash in some strange reflection usage in NDocGui.
2961
2962 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
2963
2964         * ThemeNice.cs: Gave it a little silver touch and added Images
2965           method
2966         * FontDialog.cs: FontDialog is not resizable
2967         * FileDialg.cs: Added SizeGripStyle.Show
2968
2969 2006-04-05  Jackson Harper  <jackson@ximian.com>
2970
2971         * KeyboardLayouts.cs: Remove warning.
2972
2973 2006-04-05  Jackson Harper  <jackson@ximian.com>
2974
2975         * Control.cs: Enable OnPaintInternal so we can use it for drawing
2976         all of our controls instead of Paint +=.
2977         * ListBox.cs:
2978         * ListView.cs:
2979         * MenuAPI.cs:
2980         * MessageBox.cs:
2981         * NotifyIcon.cs:
2982         * ProgressBar.cs:
2983         * ScrollBar.cs:
2984         * Splitter.cs:
2985         * StatusBar.cs:
2986         * TabControl.cs:
2987         * TextBoxBase.cs:
2988         * ToolBar.cs:
2989         * TrackBar.cs:
2990         * UpDownBase.cs:
2991         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
2992         use OnPaintInternal. Remove Width/Height and Visible checks in
2993         paint handler, this is done at a higher level now.
2994         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
2995         * PaintEventArgs.cs: Add a handled flag so controls that don't
2996         want anymore painting after OnPaintInternal can make sure OnPaint
2997         isn't called.
2998
2999 2006-04-05  Mike Kestner  <mkestner@novell.com>
3000
3001         * Form.cs: fix the menu WndProc hacks to respect the native enabled
3002         state of the form, so that we don't process events when Modal dialogs
3003         are up. Fixes #77922.
3004
3005 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
3006
3007         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
3008           checking is done.
3009
3010 2006-04-05  Mike Kestner  <mkestner@novell.com>
3011
3012         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
3013
3014 2006-04-05  Mike Kestner  <mkestner@novell.com>
3015
3016         * ListView.cs (HeaderMouseMove): null guarding for the over column
3017         when setting up the drag_to_index.  Fixes #78015.
3018
3019 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
3020
3021         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
3022           in the taskbar. Transient windows seem to accomplish that.
3023
3024 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
3025
3026         * Form.cs:
3027           - Re-enabled CreateParams.X/Y code for FormStartPosition
3028           - Added code for manual placement when creating the Control
3029           - Incomplete patch to treat MDI forms differently when
3030             setting the ClientSizeCore. (Still need to figure out handling
3031             x/y coords there)
3032         * XplatUIX11.cs:
3033           - When we're explicitly setting the X/Y position of a non-Child
3034             window, let the WM know. Metacity really wants this.
3035
3036 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
3037
3038         * ThemeNice.cs: Added CPDrawButton
3039
3040 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
3041
3042         * ThemeNice.cs: Changed the color for focused buttons and activated
3043           the arrows for small scroll buttons.
3044
3045 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
3046
3047         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
3048           anymore. Changed some method modifiers to protected (virtual)
3049         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
3050           changes
3051         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
3052           Updated drawing of menus, buttons and progressbars; added
3053           CPDrawBorder3D 
3054
3055 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3056
3057         * ImageListStreamer.cs: implemented serialization/deserialization
3058         of the images.
3059
3060 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
3061
3062         * ThemeWin32Classic.cs:
3063           - Removed all the DrawFrameControl stuff; CPDrawButton,
3064             CPDrawCheckBox and CPDrawRadioButton are now handled directly
3065             inside the methods
3066           - Updated and corrected the drawing code of CPDrawButton,
3067             CPDrawCheckBox and CPDrawRadioButton to better match ms
3068           - Updated theme checkbox and radiobutton code to use the CP*
3069             methods
3070
3071 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
3072
3073         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
3074           bug is fixed
3075
3076 2006-03-31  Jackson Harper  <jackson@ximian.com>
3077
3078         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
3079         sometimes.
3080         * UpDownBase.cs: Don't CreateGraphics manually, use a
3081         Refresh. Ideally we would invalidate the correct areas here.
3082
3083 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
3084
3085         * XplatUIX11.cs: 
3086           - We now track the mapping state of windows. If a window (or 
3087             one of it's parents) is not mapped we no longer permit
3088             WM_PAINT messages to be generated since we'd otherwise get 
3089             lots of BadMatch X errors. Jackson did all the work figuring
3090             out the problem.
3091           - Destroying the caret if the window it's contained in is 
3092             destroyed. Can't use regular DestroyCaret method since it
3093             might fall into a drawing function (trying to remove the
3094             caret) and with that generate new BadMatch errors. Again,
3095             Jackson tracked this down.
3096           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
3097             make sure we send the messages to all windows. (The old code
3098             would send the WM_DESTROY to the window, and then all child
3099             windows would be 'gone' because the WM_DESTROY handle lookup
3100             would no longer find the destroyed window)
3101         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
3102         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
3103
3104 2006-03-31  Jackson Harper  <jackson@ximian.com>
3105
3106         * ScrollableControl.cs: Dont recalc if we are not visible.
3107
3108 2006-03-31  Mike Kestner  <mkestner@novell.com>
3109
3110         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
3111         the visibility branch.
3112
3113 2006-03-31  Jackson Harper  <jackson@ximian.com>
3114
3115         * ScrollBar.cs: Cap values when incrementing/decrementing.
3116
3117 2006-03-31  Mike Kestner  <mkestner@novell.com>
3118
3119         * MenuAPI.cs: setup menu.tracker for popup/context menus.
3120         * ToolTip.cs: guard against timer expirations with no active control.
3121         Not sure why it happened.
3122
3123 2006-03-31  Mike Kestner  <mkestner@novell.com>
3124
3125         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
3126         text.
3127         * ToolTip.cs: Position the tooltip based on where the cursor is at
3128         popup time, not at MouseEnter time.  Add a Down state so that we don't
3129         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
3130         positioning offset. Lookup DisplaySize at positioning time, since it
3131         can theoretically change during invocation.
3132         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
3133         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
3134
3135 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
3136
3137         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
3138           Fixes behaviour when the Text property of the box is String.Empty
3139
3140 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
3141
3142         * XplatUIX11.cs: Only send mouseleave for our client windows, not
3143           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
3144           a window)
3145
3146 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
3147
3148         * FileDialog.cs: Visual enhancement for the popup buttons in 
3149           PopupButtonPanel
3150
3151 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
3152
3153         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
3154           code
3155
3156 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
3157
3158         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
3159           highlighted menu items to match ms
3160
3161 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
3162
3163         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
3164
3165 2006-03-30  Mike Kestner  <mkestner@novell.com>
3166
3167         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
3168         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
3169         go active to account for HotLight to Selected transition.
3170         * MenuItem.cs: add internal Selected prop. Fill out the Status
3171         property by calculating it from item info. Add HotLight,
3172         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
3173
3174 2006-03-30  Mike Kestner  <mkestner@novell.com>
3175
3176         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
3177
3178 2006-03-29  Jackson Harper  <jackson@ximian.com>
3179
3180         * Form.cs: Implement TODO.
3181
3182 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
3183
3184         * PrintPreviewDialog.cs: Implemented missing methods and events; still
3185           missing proper dialog setup in the constructor
3186
3187 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
3188
3189         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
3190         * Control.cs:
3191           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
3192           - Fixed ResetBindings and removed TODO
3193           - Added check for cross-thread calls to get_Handle()
3194           - Added Marshaller attribute for set_Font to satisfy class status
3195         * FontDialog.cs: Removed TODOs that seemed implemented
3196         * UpDownBase.cs: Removed unneeded TODO and Fixme
3197         * MessageBox.cs: Implemented support for Default button and removed TODO
3198         * FileDialog.cs: Removed obsolete TODO
3199         * DomainUpDown.cs: Removed obsolete TODO
3200         * ButtonBase.cs: Removed obsolete TODO
3201         * XplatUIWin32.cs: Removed obsolete TODO
3202         * Form.cs:
3203           - Removed obsolete TODO
3204           - Calling CheckAcceptButton when the acceptbutton is changed to allow
3205             internal status updates
3206           - Making sure the active control is selected when the control is created
3207         * CurrencyManager.cs: Removed obsolete TODO
3208
3209 2006-03-29  Mike Kestner  <mkestner@novell.com>
3210
3211         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
3212         of PrintPreviewDialog and RichTextBox.
3213
3214 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
3215
3216         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
3217           DarkDark, Light and LightLight colors for a specific color
3218         * ThemeWin32Classic.cs:
3219           - Use Button drawing code to draw RadioButtons and CheckBoxes with
3220             Appearance = Button 
3221           - Make use of the new ResPool helper CPColor
3222           - Draw ProgressBar and StatusBar with correct 3D borders
3223
3224 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
3225
3226         * ColorDialog.cs: Return selected color. Fixes bug #77940.
3227
3228 2006-03-28  Mike Kestner  <mkestner@novell.com>
3229
3230         * ListView.cs: fix Icon layout to plan for scrollbar widths when
3231         calculating col/row counts.
3232
3233 2006-03-28  Mike Kestner  <mkestner@novell.com>
3234
3235         * ColumnHeader.cs:
3236         * ListView.cs:
3237         * ListViewItem.cs:
3238         * Menu.cs: 
3239         switch to explicit interface method implementation for some methods
3240         corcompare identifies as inconsistent with MS.
3241
3242 2006-03-28  Mike Kestner  <mkestner@novell.com>
3243
3244         * MainMenu.cs: 
3245         * Menu.cs:
3246         add a few missing methods from the class status output.
3247
3248 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
3249
3250         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
3251           correct.
3252
3253 2006-03-28  Mike Kestner  <mkestner@novell.com>
3254
3255         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
3256
3257 2006-03-27  Mike Kestner  <mkestner@novell.com>
3258
3259         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
3260         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
3261
3262 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
3263
3264         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
3265
3266 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
3267
3268         * ThemeWin32Classic.cs:
3269           - GroupBox: Inserted a little gap between the text and the lines
3270             on the right side
3271           - Made the code in CPDrawBorder3D more readable
3272           - Corrected the drawing location of the up and down arrows in 
3273             CPDrawScrollButton
3274
3275 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
3276
3277         * ControlPaint.cs: Corrected line widths in DrawBorder for
3278           ButtonBorderStyle Inset and Outset
3279
3280 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
3281
3282         * ThemeWin32Classic.cs:
3283           - Rewrote the totally broken CPDrawBorder3D method. That was
3284             one of the main problems for the terrific ThemeWin32Classic
3285             look
3286           - Updated and corrected Button drawing
3287           - Correct the dimensions of the SizeGrip to match ms ones
3288           - Removed a small drawing glitch in DrawComboBoxEditDecorations
3289         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
3290           Border3DStyle.Sunken to match ms.
3291
3292 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
3293
3294         * ThemeWin32Classic.cs: First small part of the "de-uglify
3295           ThemeWin32Classic" effort, SizeGrip
3296
3297 2006-03-24  Jackson Harper  <jackson@ximian.com>
3298
3299         * XplatUIX11.cs: Give a max idle time of one second, this matches
3300         MS and forces an Idle event every second when there are no other
3301         events in the queue.
3302
3303 2006-03-24  Mike Kestner  <mkestner@novell.com>
3304
3305         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
3306         * ListView.Item.cs: fix layout issues with null image lists and images
3307         smaller than checkbox size.
3308         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
3309         mode like MS does.  It's weird, but consistent.  ;-)
3310         Fixes #77890.
3311
3312 2006-03-24  Mike Kestner  <mkestner@novell.com>
3313
3314         * ListView.cs: Scroll wheel support for the item control.  Fixes
3315         #77839.
3316
3317 2006-03-23  Jackson Harper  <jackson@ximian.com>
3318
3319         * ScrollableControl.cs: Special case negative sized areas, not
3320         zero.
3321         * MonthCalendar.cs: Save the rect of the clicked date so we can
3322         use it for invalidation.
3323         - Try to cut down on the number of invalidates
3324         - Invalidate the rect the mouse is over and was over when moving
3325         the mouse, so we get the focus box following the cursor.
3326
3327 2006-03-23  Mike Kestner  <mkestner@novell.com>
3328
3329         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
3330         focus rectangle drawing. Fixes #77835.
3331
3332 2006-03-23  Mike Kestner  <mkestner@novell.com>
3333
3334         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
3335         the if and else if and reverting back to the original == check on the
3336         None conditional.
3337
3338 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
3339
3340         * FontDialog.cs: Update the example panel if the selected index of
3341           the fontListBox changes.
3342
3343 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
3344
3345         * FileDialog.cs: Make FileDialog remember which directory it was in
3346           last in the same execution.
3347
3348 2006-03-22  Mike Kestner  <mkestner@novell.com>
3349
3350         * FileDialog.cs: make the DropDownMenu on the toolbar display
3351         RadioChecks since they are mutually exclusive and that's what MS does.
3352
3353 2006-03-22  Mike Kestner  <mkestner@novell.com>
3354
3355         * Theme.cs: add Color param to CPDrawMenuGlyph.
3356         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
3357         checks and radio marks and arrows are visible on highlighted items.
3358         * ControlPaint.cs: update to use new Theme signature.
3359
3360 2006-03-22  Mike Kestner  <mkestner@novell.com>
3361
3362         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
3363         is active. Fixes #77870.
3364
3365 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
3366
3367         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
3368           to be focused/selected after startup
3369
3370 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
3371
3372         * ColorDialog.cs: 
3373           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
3374             CustomColors and ShowHelp properties
3375           - Some internal rewrites to get better results when using the
3376             ColorMatrix
3377
3378 2006-03-22  Mike Kestner  <mkestner@novell.com>
3379
3380         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
3381         HoverSelection.  Fixes #77836.
3382
3383 2006-03-22  Mike Kestner  <mkestner@novell.com>
3384
3385         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
3386         ToggleButtons.  (De)Sensitize the Back button around a stack count of
3387         1, not 0.  Update ButtonSize based on a pixel count of the win32
3388         control.  Adjust the toolbar size/location for new button size.
3389
3390 2006-03-22  Jackson Harper  <jackson@ximian.com>
3391
3392         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
3393         true.
3394         * ScrollBar.cs: When doing increments and decrements we need to
3395         set the Value property so that ValueChanged gets raised. A
3396         possible optimization here would be to make an internal SetValue
3397         that doesn't invalidate immediately.
3398         * ToolTip.cs: Tooltips get added to their container (when
3399         supplied) so they get disposed when the container is disposed.
3400         - Don't create tooltips for String.Empty. This prevents all these
3401         little 2-3 pixel windows from showing up when running nunit-gui
3402         and driving me mad.
3403         * Form.cs: Don't set topmost when setting the owner if the handles
3404         haven't been created yet.  The topmost set will happen when the
3405         handles are created.
3406
3407 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
3408
3409         * XplatUIX11.cs:
3410           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
3411           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
3412             visible (to allow them to recalculate their sizes)
3413
3414 2006-03-21  Mike Kestner  <mkestner@novell.com>
3415
3416         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
3417         methods. Removed a ton of redundant code.  Still not really happy with
3418         the border rendering, but I think that's mainly because of the
3419         ControlDarkDark being black instead of a dark grey. Depending on how 
3420         close we want to be, we might want to revisit those color choices.
3421         Among the new features added during the refactor were DropDownArrow
3422         pressed rendering, Disabled image rendering.  Proper flat appearance
3423         boundary rendering.  Removed the Divider and Wrapping dividers since I
3424         can't figure out any combination of themes and conditions to make the
3425         MS control draw a horizontal line on a toolbar despite what the
3426         Divider property docs indicate.
3427         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
3428         conditions and incorrect layout.  Updated to coding standard.
3429         * ToolBarButton.cs: refactored layout and positioning code from
3430         ToolBar to here.  Invalidate wherever possible instead of forcing
3431         redraws of the whole toolbar. 
3432         (Known remaining issues: explicit ButtonSize smaller than provided
3433         images.)
3434
3435 2006-03-21  Mike Kestner  <mkestner@novell.com>
3436
3437         * ContextMenu.cs (Show): use the position parameter instead of just
3438         showing at the MousePosition.
3439
3440 2006-03-21  Jackson Harper  <jackson@ximian.com>
3441
3442         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
3443         control handle this.
3444         * TreeNodeCollection.cs: If we are clearing the root node we need
3445         to reset top_node so calcs can still happen.
3446         * ThemeWin32Classic.cs: This is a Flags so we need to check
3447         properly.
3448         
3449 2006-03-21  Jackson Harper  <jackson@ximian.com>
3450
3451         * DataGrid.cs: Create columns when the binding context has been
3452         changed.
3453         * X11Structs.cs: Keysyms are uints.
3454         - Add size to fix build.
3455
3456 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
3457
3458         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
3459           XplatUIOSX.cs: 
3460           - Added ResetMouseHover method to allow controls to retrigger
3461             hovering if they need it more than once
3462           - Implemented MouseHoverTime and MouseHoverSize properties
3463         * Timer.cs: Start() must reset the interval
3464         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
3465           properties
3466
3467 2006-03-21  Jackson Harper  <jackson@ximian.com>
3468
3469         * X11Keyboard.cs: improved layout detection. Move the nonchar
3470         tables into this file.
3471         * KeyboardLayouts.cs: Move the tables into resource files.
3472
3473 2006-03-21  Mike Kestner  <mkestner@novell.com>
3474
3475         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
3476
3477 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
3478
3479         * Mime.cs: Various speed optimizations. Looking up mime types
3480           is now 2 times faster than before
3481
3482 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
3483
3484         * CreateParams.cs: Added internal menu field
3485         * Control.cs: 
3486           - Switched call order for UpdateBounds; now we always call
3487             the one that also takes ClientSize, and we're calculating the 
3488             client size via driver method in the others. The previous
3489             method of tracking client size by difference wasn't working
3490             for forms where even the starting client size wouldn't match
3491             the overall form size (due to borders) (Part of fix for #77729)
3492           - CreateParams(): Do not use parent.Handle unless the handle is
3493             already created. Causes havoc with Nexxia and throws off our
3494             creation of controls
3495         * XplatUIX11.cs:
3496           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
3497           - Switched handling of ConfigureNotify over to new PerformNCCalc 
3498             method (consolidates code)
3499           - Changed RequestNCRecalc to use new PerformNCCalc method
3500           - Added calls to RequestNCRecalc when menus and borders are changed
3501             to allow app to set NC size. (Part of fix for #77729) This matches
3502             when MS send a WM_NCRECALC on Win32 windows.
3503           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
3504             (Part of fix for #77729). This matches what MS does, they also
3505             send that message when the form is made visible.
3506           - XException.GetMessage: Improved usability of X errors by including
3507             a translation of the window into Hwnd and Control class
3508           - Improved debug info for window creation, reparenting and destruction
3509           - Created helper method WindowIsMapped() [Currently not used]
3510         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
3511         * Form.cs:
3512           - CreateParams: Now setting our menu on the new internal menu field
3513           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
3514             avoid calculating the same property twice
3515         * Hwnd.cs:
3516           - Improved usability of ToString() for debugging purposes
3517           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
3518             determine the height of the menu, instead of just the font. This
3519             required to also create a graphics context and to keep a bmp 
3520             around (for performance reasons)
3521
3522 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
3523
3524         * MenuAPI.cs: Added OnMouseUp method
3525         * Form.cs:
3526           - Now remembering the requested client size, avoids size errors
3527           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
3528             instead of base if the menu is active. This is required due to
3529             control now capturing and releasing on down/up and it would
3530             prematurely release our menu capture
3531
3532 2006-03-17  Jackson Harper  <jackson@ximian.com>
3533
3534         * KeyboardLayouts.cs: Add the czech layouts.
3535
3536 2006-03-16  Jackson Harper  <jackson@ximian.com>
3537
3538         * Control.cs: Use the viewport space when sizing not the controls
3539         client size, so things like ScrollableControl that effect the
3540         viewport size (when scrollbars are added) are computed correctly.
3541         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
3542         of ManagerEntrys.
3543         - Handle creating BindingManagers for null data sources.
3544         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
3545         source, otherwise when rows are added they are added to the 'fake'
3546         datasource and we will crash when trying to set the position in
3547         those rows.
3548         - Use Implicit scrollbars on the datagrid so they arent
3549         selectable.
3550         
3551 2006-03-16  Jackson Harper  <jackson@ximian.com>
3552
3553         * Binding.cs:
3554         * InternalWindowManager.cs:
3555         * MdiWindowManager.cs:
3556         * X11Keyboard.cs: I really want Mike to love me again (fix
3557         compiler warnings).
3558
3559 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
3560
3561         * DataGrid.cs:
3562           - OnMouseDown: Switch to editing mode when clicking on the cell
3563                          even if we're clicking on the cell that's currently 
3564                          selected
3565           - ProcessGridKey: Left/Right now wrap like MS.Net does
3566           - ProcessGridKey: Tab now knows to add a new row when tab is
3567                             pressed in the cell of the last column of the 
3568                             last row
3569           - ProcessGridKey: Enter now adds another row  if pressed in the last
3570                             row and selectes the new row, same column cell
3571           - ProcessGridKey: Home/End navigate columns, not rows, like 
3572                             originally implemented
3573           - Broke ProcessKeyPreview code out into an extra Internal method
3574             so it can be called from the edit code
3575         * DataGridTextBox.cs (ProcessKeyMessage):
3576           - Switched to accept Tab keypresses
3577           - Added F2 handling to allow jumping to the end of the edited cell
3578           - Added logic to allow moving caret left/right inside edited cell
3579             and making the edited cell jump when the caret hits cell borders
3580           - Tab and Enter are now passed to the datagrid after being handled
3581         * TextBoxBase.cs:
3582           - Removed capture code now that Control handles it
3583           - set_SelectionStart now ensures caret is visible
3584
3585 2006-03-16  Jackson Harper  <jackson@ximian.com>
3586
3587         * TrackBar.cs: Debackwards the increment/decrement for handling
3588         mouse clicks on the bar with vertical trackbars.
3589         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
3590         bottom to match MS.
3591
3592 2006-03-16  Mike Kestner  <mkestner@novell.com>
3593
3594         * ListView.cs: make shift/ctrl keyboard and mouse selection 
3595         consistent with the MS control. Fix a bug in
3596         SelectedListViewItemCollection.Clear that was pissing me off for the
3597         better part of a day because the collection was being altered
3598         underneath us as we walked the list.
3599
3600 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
3601
3602         * Control.cs: Not sure how we could miss this so long, but it seems
3603           that MS.Net has Capture set all the way from before calling 
3604           OnMouseDown through sending the mouse events until after
3605           OnMouseUp. This will fix DataGrid's selection being set to end
3606           at the location of the MouseUp.
3607
3608 2006-03-15  Jackson Harper  <jackson@ximian.com>
3609
3610         * BindingContext.cs: Check the binding after its added so that it
3611           can initialize the binding managers and hookup to events.
3612         * Binding.cs: Data members seem to sometimes include rows/cols in
3613           the format Row.Column we now take this into account.
3614           - Hookup to the position changed event so we can update the
3615           control when the position has changed in the data set.
3616         * CurrencyManager.cs: Take into account the row/col naming
3617           convention when creating dataset tables.
3618         * BindingContext.cs: Using a newer better way of storing
3619           datasource/datamember pairs.  Hopefully this better matches MS for
3620           looking up binding managers.
3621
3622
3623 2006-03-15  Jackson Harper  <jackson@ximian.com>
3624
3625         * BindingContext.cs: The currency manager needs the data member
3626         name, if the member is a data set we use the name to find the
3627         correct table.
3628         * CurrencyManager.cs: When creating the list prefer an IList over
3629         an IListSource.
3630         - Attempt to create a DataTable from a DataSet (TODO: might need
3631         some better error checking here, although MS doesn't seem to have much)
3632         - If we have a DataTable create a view and use it as our list.
3633
3634 2006-03-15  Mike Kestner  <mkestner@novell.com>
3635
3636         * ListView.cs: keep a matrix of the icon mode layout to facilitate
3637         keyboard navigation. Support Up/Down/Left/Right selection correctly
3638         for all 4 View modes.
3639         * ListViewItem.cs: add internal row/col fields for icon layouts.
3640
3641 2006-03-15  Jackson Harper  <jackson@ximian.com>
3642
3643         * TabControl.cs: Redraw the tabs when we resize so their newly
3644         calculated sizes are drawn on screen.
3645         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
3646         composite characters.
3647         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
3648         - filter events so that composite characters can be created
3649         patches by peter
3650         * X11Structs.cs: Add XIMProperties enum.
3651
3652 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
3653
3654         * Control.cs (BringToFront, SendToBack): Don't use window or handle
3655           unless it's created
3656
3657 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
3658
3659         * Control.cs (PerformLayout): We don't need to consider visiblity
3660           for anchoring, only for docking. This fixes 'whacky' alignment
3661           in listbox and other controls that use implicit scrollbars after
3662           the previous PerformLayout patch
3663         * ListBox.cs: Switched to use implicit scrollbars
3664           
3665 2006-03-14  Mike Kestner  <mkestner@novell.com>
3666
3667         * ToolBar.cs: 
3668         * VScrollBar.cs:
3669         - chain up the "new event" overrides to base and use
3670         OnEvent to raise them.  Part of fix for bug #76509.
3671
3672 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
3673
3674         * FileDialog.cs: Do not select an item in the parent directory
3675           on backspace
3676
3677 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
3678
3679         * Control.cs (PerformLayout): It would seem that we considered
3680           invisible windows for our layout. Not quite the right thing
3681           to do. Now we don't any longer, thereby fixing bug #76889.
3682
3683 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
3684
3685         * Control.cs (CanFocus): I goofed. A control can have focus 
3686           even though it's not selectable. Made it match MS docs.
3687
3688 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
3689
3690         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
3691           center by default (fixes #76895)
3692         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
3693           all uses of Border3DSides.All with the explicit ORd together
3694           Left|Right|Top|Bottom because I assume that nobody was aware 
3695           that All also implies a center fill. Most places I checked had
3696           a fill right above.
3697         * ProgressBarStyle.cs: Added
3698
3699 2006-03-13  Mike Kestner  <mkestner@novell.com>
3700
3701         * ListView.cs: fix breakage in drag shadow header positioning 
3702         from Peter's csc compilation fix.
3703
3704 2006-03-13  Mike Kestner  <mkestner@novell.com>
3705
3706         * ListView.cs: fix NRE produced by backspacing twice in a focused
3707         FileDialog.
3708
3709 2006-03-13  Mike Kestner  <mkestner@novell.com>
3710
3711         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
3712
3713 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
3714
3715         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
3716           be changed
3717         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
3718           the allowed size before making programmatic size changes
3719
3720 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
3721
3722         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
3723           set, metacity is broken and will still use the emty sizes in 
3724           the struct. (Fix for #77089)
3725
3726 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
3727
3728         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
3729           WindowExStyles and marked both enums as Flags
3730         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
3731           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
3732           to match WindowStyles split
3733         * XplatUIX11.cs:
3734           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
3735           - Updated to match WindowStyles split
3736         * XplatUIWin32.cs:
3737           - Fixed FosterParent creation, was using ExStyle on the Style field
3738             (This should help with Popup focus issues)
3739           - Updated to match WindowStyles split
3740
3741 2006-03-13  Jackson Harper  <jackson@ximian.com>
3742
3743         * MdiWindowManager.cs: Use the system menu height. Fixes some
3744         strange sizing issues.
3745
3746 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
3747
3748         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
3749         * TextBoxBase.cs:
3750           - Scroll to caret after inserting text (#77672)
3751           - Make scroll range one pixel higher, fixes off-by-one error (and
3752             makes underlines visible on the last line)
3753
3754 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
3755
3756         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
3757           the keyboard state from being stuck with keys in 'pressed' state when
3758           focus is switched away via keyboard
3759         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
3760           reset the keyboard if no X11 KeyUp events are expected to come
3761         * X11Structs.cs: Switched type of Visible to bool to match driver
3762
3763 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
3764
3765         * TextControl.cs:
3766           - Switched caret to be just 1 pixel wide, matches MS and looks less
3767             clunky
3768           - Moved caret display 1 pixel down from the top of the control
3769             to improve view
3770           - InsertCharAtCharet: Update the selection start if moving the caret
3771             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
3772           - No longer always creating the caret when the caret methods are
3773             called. Only the actual ShowCaret/HideCaret will do that now
3774           - Only setting caret visible if the owner control has focus
3775           - UpdateView: Added invalidation-shortcut logic for center and right 
3776             aligned text. Previously we'd update all according to the left
3777             logic which caused drawing errors. Also fixed height of invalidated
3778             areas, now properly invalidating the whole area (was off-by-one)
3779           - owner_HandleCreated: Always generate the document when the
3780             handle is created; this ensures that 
3781         * TextBoxBase.cs:
3782           - Fixed situation where caret would disappear under the right
3783             window border, also improved scrolling behaviour on left-
3784             aligned textboxes
3785           - Fixed right-aligned textboxes to have a border to the
3786             right instead of the caret being under the right border
3787         * XplatUIX11.cs:
3788           - Switched from 'nested' to simple visible/not visible tracking 
3789             for caret (part of fix for #77671)
3790           - No longer passing through translated FocusIn/FocusOut messages
3791             since we were notifying too often and the wrong windows. Instead
3792             we just notify our focussed window of receiving or loosing focus
3793         * XplatUIWin32.cs: Switched from 'nested' show/hide 
3794           counting for caret to simple visible yes/no behaviour (part of 
3795           fix for #77671)
3796
3797 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
3798
3799         * Mime.cs: Remove debug code...
3800
3801 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
3802
3803         * MimeGenerated.cs: Removed
3804         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
3805           and subclasses) from /usr/(local/)share/mime and
3806           $HOME/.local/share/mime.
3807
3808 2006-03-10  Jackson Harper  <jackson@ximian.com>
3809
3810         * MdiWindowManager.cs: Recalc the NC area when a window is
3811         maximized/restored so that the menu area is drawn on forms that
3812         don't have a menu.
3813
3814 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
3815
3816         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
3817           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
3818           us to force a WM_NCCALCRESIZE message being sent. This is needed
3819           for MDI maximizing.
3820
3821 2006-03-10  Jackson Harper  <jackson@ximian.com>
3822
3823         * Form.cs: We need to use the ActiveMenu when calculating menu
3824         height.
3825         - Fix nullref when the window manager hasn't been created yet.
3826         * Control.cs: Fix nullref when we try to bring a control to the
3827         front that has no parent.
3828         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
3829         height.
3830         - Add a dummy item to the maximized menu so it always has the
3831         correct height. Otherwise when there are no menus we don't get our
3832         icon and buttons.
3833         
3834
3835 2006-03-10  Jackson Harper  <jackson@ximian.com>
3836
3837         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
3838         stuff.
3839         * Form.cs: Make the window_state internal so the window managers
3840         can track it.
3841         - When an MDI child is maximized let its window manager create the
3842         main menu (so it can add its icon).
3843         - Notify the window managers of state changes
3844         - Let the window manager paint its buttons and handle button
3845         clicks on the menu when it is maximized.
3846         * InternalWindowManager.cs: Move the prev_bounds into the mdi
3847         window manager, since tool windows don't use it, only mdi windows.
3848         - Tell the main form that we don't want it to handle NCPAINT
3849         itself to avoid extra painting.
3850         - Handle clicks on a maximized windows menu.
3851         - Handle window state changes
3852         - Handle minimize/maximize clicks correctly by setting the window state.
3853         * MdiWindowManager.cs: Add an icon menu that (the menu you get
3854         when clicking on the forms icon).
3855         - New method to create a forms maximized menu. This is its normal
3856         menu + an icon.
3857         - Handle window state changes.
3858         - Handle sizing of maximized windows.  Maximized windows are just
3859         drawn bigger then the parent visible area. All controls are still
3860         there, they are just outside the visible area (this matches windows).
3861         * MdiClient.cs: No scrollbars when a child window is maximized.
3862         - Let the children windows figure out how big they should be when
3863         sizing maximized windows.
3864         - Implement a version of ArrangeIconicWindows somewhat similar to
3865         Windows version.  There are some little differences, but I don't
3866         think any app will rely on the layout of minimized mdi windows.
3867
3868 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
3869
3870         * Padding.cs: Several fixes to allow compiling with csc 2.0
3871
3872 2006-03-09  Jackson Harper  <jackson@ximian.com>
3873
3874         * Menu.cs:
3875         * MenuItem.cs: Cheap hack so we can add items to the list without
3876         the events being raised.  This allows adding mdi items during
3877         drawing. TODO: Should probably find a better time to add the items.
3878
3879 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
3880
3881         * ThemeWin32Classic.cs:
3882           - CheckBox_DrawText: Added logic to not wrap if not enough space
3883             is available (Fix for bug #77727)
3884           - RadioButton_DrawText: Added logic not to wrap if not enough
3885             space is available (Fix for bug #77727). Also removed some
3886             duplicate code, DrawString always drawing the regular text
3887             before hitting the if statement.
3888
3889 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
3890
3891         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
3892
3893 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
3894
3895         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
3896         * ContainerControl.cs: Partial implementation of some 2.0 scaling
3897           methods. Moved the new 2.0 properties into alphabetical order with
3898           other properties and added MonoTODO tags
3899
3900 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
3901
3902         * AutoScaleMode.cs: Added. Fix build.
3903
3904 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
3905
3906         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
3907           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
3908           and was requiring premature handle creation for calls from above
3909         * Form.cs, Control.cs: Removed handle arguments from calls to
3910           CalculateClientRect()
3911
3912 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
3913
3914         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
3915           drag_column.column_rect is MarshalByRef and can't be used that way
3916
3917 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
3918
3919         * AxHost.cs: Added deserialization constructor for 
3920           AxHost+State (fixes 77743)
3921
3922 2006-03-09  Mike Kestner  <mkestner@novell.com>
3923
3924         * ListView.cs: 
3925         - Added column drag reordering for details view.
3926         - fixed behavior when mouse is dragged off column and
3927         AllowColumnReorder is false.
3928         * ColumnHeader.cs: clone the format too in Clone.
3929         * Theme.cs: add DrawListViewHeaderDragDetails method.
3930         * ThemeWin32Classic.cs:
3931         - impl new method for drawing drag column shadows and targets.
3932         - support column offset for details mode in DrawListViewItem.
3933
3934 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
3935
3936         * TextControl.cs: Reset the char_count when the document is cleared
3937           (Fixes bug reported on mono-winforms mailing list)
3938
3939 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
3940
3941         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
3942           of calling base we simply process the key ourselves, since both
3943           DefWindowProc and the handled method would set m.Result. 
3944           (Fixes #77732)
3945
3946 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
3947
3948         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
3949           method also moves the window; instead implemented a copy of
3950           Control.ScaleCore (Part of fix for #77456)
3951         * TextBoxBase.cs: 
3952           - Created new CreateGraphicsInternal method to allow providing
3953             a graphics context when no handle is created without triggering
3954             handle creation. (Part of fix for #77456)
3955           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
3956         * TextControl.cs: 
3957           - Switched Constructor to require TextBoxBase instead of Control (to
3958             allow uncast access to CreateGraphicsInternal)
3959           - Safeguarded use of owner.Handle property. No longer accessing it
3960             unless the handle is already created.
3961           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
3962           - Now triggering a recalc when owning control becomes visible
3963         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
3964           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
3965           premature handle creation (Part of fix for #77456)
3966         * Control.cs:
3967           - We now only destroy our double-buffering buffers when the
3968             control is resized or disposed, but not when visibility
3969             changes. (The code even re-created them twice every time)
3970           - Now requiring a redraw of the buffer on visibility changes
3971             (fixes bug 77654 part 2)
3972           - Not passing OnParentVisibleChanged up unless the control
3973             is visible
3974           - CanFocus: Fixed to match MS documentation
3975           - Focus: Fixed to return actual focus state and to check if
3976             setting focus is legal before setting it
3977
3978 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
3979
3980         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
3981           when to draw focus rectangle by looking at parent focus and
3982           selected state instead. This fixes TabPages on Linux sometimes
3983           having none or multiple focus rectangles.
3984         * XplatUIX11.cs (SetFocus): 
3985           - Don't set the focus if the same window already has focus
3986           - Use SendMessage instead of PostMessage (like it's Win32
3987             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
3988             to match MS behaviour
3989         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
3990           are not selectable.
3991
3992 2006-03-07  Jackson Harper  <jackson@ximian.com>
3993
3994         * PictureBox.cs: Revert line I accidently committed last week.
3995
3996 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
3997
3998         * Control.cs: 
3999           - Added new IsRecreating and ParentIsRecreating properties to
4000             allow testing if RecreateHandle has been called on ourselves
4001             or one of our parents
4002           - WndProc(WM_DESTROY): If our control handle is being recreated
4003             we immediately need to create the handle when receiving the
4004             destroy, that way our child windows find a valid parent handle
4005             when they themselves are being recreated upon WM_DESTROY receipt
4006             (fix for bug #77654 part 1)
4007         * XplatUIX11.cs:
4008           - DestroyWindow: WM_DESTROY must be sent to our own window before
4009             notifying any child windows. MS documents that child windows
4010             are still valid when WM_DESTROY is received. (Control now relies on
4011             this behaviour)
4012           - Added some fine-grain debug options
4013
4014 2006-03-06  Jackson Harper  <jackson@ximian.com>
4015
4016         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
4017         box and base calculations off this.
4018         * MdiChildContext.cs:
4019         * MdiWindowManager.cs: Don't need to ensure scrollbars here
4020         anymore.
4021         
4022 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
4023
4024         * Splitter.cs: In situations where the affected control is added
4025           to the parent's control list after the splitter, we would not
4026           populate affected. Now we try populating it on mousedown, if
4027           it's not already set, and force it to be re-set whenever our
4028           parent changes.
4029
4030 2006-03-03  Matt Hargett  <matt@use.net>
4031
4032         * Control.cs: implement Control.Padding
4033         * Padding.cs: -Padding.All returns -1 when constructing with the
4034         implicit default ctor
4035         -Padding.ToString() matches MS.NET
4036         * ContainerControl.cs: implement
4037         ContainerControl.AutoScaleDimensions
4038         * ListControl.cs: implement ListControl.FormattingEnabled
4039         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
4040         * ButtonBase.cs:
4041         * TabPage.cs: Implement UseVisualStyleBackColor.
4042         * PictureBox.cs: Implement PictureBox.InitialImage.
4043
4044 2006-03-03  Mike Kestner  <mkestner@novell.com>
4045
4046         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
4047         event declarations to proxy to base event.
4048         * ListViewItem.cs: update to use ItemControl.
4049         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
4050         * ThemeWin32Classic.cs: update to new ListView theme API and fix
4051         column header label rendering for 0 width columns.
4052
4053 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
4054
4055         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
4056           that causes the control to be created. Fixes #77476.
4057
4058 2006-03-02  Jackson Harper  <jackson@ximian.com>
4059
4060         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
4061         expose_pending.
4062
4063 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
4064
4065         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
4066           passed in for the EventArgs (fixes #77690)
4067
4068 2006-03-01  Jackson Harper  <jackson@ximian.com>
4069
4070         * ScrollBar.cs: Refresh afterbeing resized.
4071
4072 2006-02-28  Mike Kestner  <mkestner@novell.com>
4073
4074         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
4075         Clean up a tracker compile warning.
4076         * MenuItem.cs: add internal PerformPopup method.
4077         [Fixes #77457]
4078
4079 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
4080
4081         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
4082           implicit expose) when the text is set to null
4083
4084 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
4085
4086         * RichTextBox.cs (FlushText): When newline is true, we always
4087           need to split the line, even if no text is on it and we may
4088           never eat newlines. (Fixes #77669)
4089
4090 2006-02-28  Mike Kestner  <mkestner@novell.com>
4091
4092         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
4093         and set Selected instead.
4094         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
4095         collections.
4096
4097 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
4098
4099         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
4100
4101 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
4102
4103         * FontDialog.cs:
4104           - Got rid of the panel. All controls are now directly added to
4105             the dialog form
4106           - It is now possible to set a font with the Font property
4107           - MinSize and MaxSize property do now what they should
4108           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
4109           - Searching and selecting a font with the font textbox works now,
4110             the same applies to the style and size textbox
4111           - Draw the correct 3D border in the example panel
4112           - Fixed a little mem leak (unused fonts didn't get disposed)
4113           - Many other internal updates/rewrites...
4114           - Fix typo
4115
4116 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
4117
4118         * TextControl.cs: 
4119           - InsertRTFFromStream: Added 'number of characters inserted' argument
4120           - set_SelectedRTF: Now using the number of characters to calculate
4121             the new location for the selection and cursor (x/y cannot be used
4122             due to potentially already wrapped text)
4123
4124 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
4125
4126         * TextControl.cs: Added property and implemented means to allow 
4127           disabling recalculation of a document (can be used to speed up
4128           multiple inserts and is needed to make RTF inserts predictable, see
4129           bug #77659)
4130         * RichTextBox.cs: Using the new NoRecalc property of Document to
4131           keep x/y insert locations predictable. Also makes it faster inserting
4132           large chunks of RTF
4133
4134 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
4135
4136         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
4137           it's easier for a child control to handle the other messages without
4138           having to duplicate the special functionality
4139         * TextBoxBase.cs
4140           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
4141             code to handle processing the key ourselves, in order to get 
4142             access to the result of KeyEventArgs.Handled. We now only call 
4143             ProcessKey if they key hasn't been handled already. Fixes #77526.
4144           - set_Text: If null or empty string is given, just clear the 
4145             document. Fixes part of #77526
4146
4147 2006-02-27  Jackson Harper  <jackson@ximian.com>
4148
4149         * SizeGrip.cs: Paint the background color before painting the grip
4150         so things look right.
4151         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
4152
4153 2006-02-27  Mike Kestner  <mkestner@novell.com>
4154
4155         * ListView.cs:
4156           - Restructure layout and invalidation model to remove a ton of
4157           flicker from the control and speed up performance in general.
4158           - Add manual column resize, flickers like crazy, but I already have
4159           some ideas on how I'll fix that. (#76822)
4160           - Merge the three Icon-based views into a single layout method.
4161           - Move item selection interaction logic from the item since 
4162           interaction with the collections is more appropriate to the view.
4163           - Deselection on non-item clicks.
4164         * ListViewItem.cs:
4165           - Encapsulate most of the layout. Add some internal props to trigger
4166           layout.  Move to a model where Items invalidate themselves instead
4167           of just invalidating the whole control every time something changes.
4168           - Invalidate on Text/Caption changes.
4169           - switch to an offset based layout model to avoid having to absolute
4170           position every element on item moves.
4171           - correct checkbox layout to conform to MS layout.
4172         * ThemeWin32Classic.cs:
4173           - refactor some column header drawing code.
4174           - fix string justification for column headers (#76821)
4175           - make SmallIcon labels top justified for compat with MS impl.
4176         * ThemeClearlooks.cs:
4177           - adjust to new ListViewItem internal checkbox bounds api.
4178
4179 2006-02-27  Jackson Harper  <jackson@ximian.com>
4180
4181         * Control.cs:  Change where implicit controls fall in the zorder.
4182         They are now on top of all children.
4183         - Synced AddImplicit code with Add
4184         - Removed unused enumerator.
4185         * SizeGrip.cs: Remove the TODO as its been TODONE.
4186
4187 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
4188
4189         * TextControl.cs(Insert): Combine the last lines unless the insertion
4190           string ends with \n\n, otherwise we leave one line too many (Fixes
4191           something I noticed with the testapp for #77526; the bug itself was
4192           already fixed in the previous checkin)
4193
4194 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
4195
4196         * RichTextBox.cs:
4197           - SelectionColor and SelectionFont methods no longer set absolute
4198             styles. Instead, the keep font or color respectively (This 
4199             resolves a long-standing FIXME in the code)
4200           - When flushing RTF text, the insert code now considers text trailing
4201             behind the insertion point (Fixes the bug where when replacing
4202             the selected text via SelectedRTF the remainder of the line behind 
4203             the selection would stay on the first insertion line)
4204         * TextBoxBase.cs:
4205           - AppendText now updates the selection points after inserting text
4206           - AppendText now ensures that the last tag (sometimes 0-length) of
4207             the document is used for the style information (Fixes part of 
4208             bug #77220)
4209         * TextControl.cs:
4210           - Created new FontDefiniton class to allow describing partial style
4211             changes
4212           - StreamLine() now takes a lines argument, to allow it to decide
4213             whether an encountered zero-length tag is the last in the document
4214             (which must be kept to not loose the font/color contained in it,
4215             for later appends)
4216           - Created Combine() and Split() methods for Marker structs, to 
4217             support marker updates due to reformatted documents (soft line
4218             wraps)
4219           - Implemented Document.CaretTag setter
4220           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
4221             of the last line (Not the cause, but also exposed by bug #77220)
4222           - Added LineTag argument to InsertString method, to allow callers
4223             to force a certain tag to be used (required to force use of the
4224             trailing zero-length tag of a document)
4225           - Now updating markers in Combine(), to avoid stale tag markers
4226           - Added some method descriptions to aid maintenance
4227           - Implemented new FormatText concept, allowing additive/subtractive
4228             formatting by only specifying the components that are to be 
4229             changed. This was needed for resolving the RTB.SelectedColor/
4230             RTB.SelectedFont fixmes
4231           - Added Break() support method to allow breaking up linetags (used
4232             for partial formatting)
4233           - Added GenerateTextFormat() method. It is used for partial 
4234             formatting and allows to generate a full font/color from given
4235             attributes and an existing tag.
4236
4237 2006-02-26  Jackson Harper  <jackson@ximian.com>
4238
4239         * XplatUIX11.cs:  Use the correct caption height.
4240         - Translate hittest coordinates to screen coords to match MS.
4241         * XplatUIWin32.cs: When we create MDI windows we need to reset
4242         some of the style flags, so we get a nice blank window, and can
4243         draw all the decorations ourselves.
4244         - Set a clipping rectangle on the non client paint event, the
4245         window manager drawing code needs one.
4246         * Form.cs: The window manager needs to know when the window state
4247         has been updated.
4248         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
4249         don't need to factor in border and title sizes in these
4250         methods. TODO: Remove the args and fix the call points.
4251         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
4252         properly.
4253         - Let the driver set the cursors.
4254         - Improve active window handling
4255         - Correct sizes for title bars and buttons.
4256         - Match MS drawing better
4257         * MdiWindowManager.cs: We don't need to handle border style
4258         updates specially anymore.
4259         - Check for scrollbars when windows are done moving
4260         - Handle Active properly.
4261         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
4262         correctly. I am spewing the exception though, so we don't hide the
4263         bugs.
4264         
4265 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
4266
4267         * DataGridViewRowPostPaintEventArgs.cs,
4268           DataGridViewCellPaintingEventArgs.cs,
4269           DataGridViewRowCollection.cs,
4270           DataGridViewRowPrePaintEventArgs.cs,
4271           DataGridViewCell.cs: Clear a few warnings and implement a few
4272           exceptions that should be thrown.
4273
4274 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
4275
4276         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
4277           'inheriting' our parent's (non-default) cursor. (Part of
4278            the fix for #77479)
4279
4280 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
4281
4282         * XplatUIX11.cs: Fixed cast to make csc happy
4283
4284 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
4285
4286         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
4287           it's for the client area (part of fix for #77479 and needed
4288           for MDI window cursor handling)
4289         * XplatUIX11.cs
4290           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
4291             the appropriate default cursors and also passing the message
4292             up the parent chain 
4293           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
4294             for non-client areas
4295
4296 2006-02-15  Jackson Harper  <jackson@ximian.com>
4297
4298         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
4299         is a real MDI window
4300
4301 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
4302
4303         * X11DesktopColors.cs: Instead of checking the desktop session
4304           string for "KDE" check if it starts with "KDE"
4305
4306 2006-02-10  Jackson Harper  <jackson@ximian.com>
4307
4308         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
4309         systems).
4310
4311 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
4312
4313         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
4314           errors
4315         * ColorDialog.cs:
4316           - Got rid of the panel. All controls are now directly added to
4317             the dialog form
4318           - Changed to mono coding style
4319
4320 2006-02-10  Jackson Harper  <jackson@ximian.com>
4321
4322         * InternalWindowManager.cs: We don't need the set visibility to
4323         false hack anymore now that peter has written beautiful shutdown
4324         code.
4325
4326 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
4327
4328         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
4329           where already explicitly destroyed
4330
4331 2006-02-10  Jackson Harper  <jackson@ximian.com>
4332
4333         * MdiClient.cs: Handle the case where windows are too high or to
4334         the left and we need scrollbars.
4335
4336 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
4337
4338         * MimeIcon.cs: Added some icons
4339         * FileDialog.cs:
4340           - Fixed bug #77477
4341           - Got rid of the panel. All controls are now directly added to
4342             the dialog form
4343           - Changed to mono coding style
4344           - On Linux "My Computer" and "My Network" will now show some
4345             more usefull information. A new class, MasterMount, gathers
4346             this information from /proc/mount. Updated MWFFileView to make
4347             use of this information
4348           - Fixed a bug that caused FileDialog to crash when
4349             ".recently_used" file had a zero size
4350           - FilterIndex does now what it should
4351           - Some Refactoring
4352         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
4353             FileDialog changes
4354
4355 2006-02-09  Jackson Harper  <jackson@ximian.com>
4356
4357         * ComboBox.cs: Don't touch if null.
4358
4359 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
4360
4361         * Cursor.cs: 64bit safeness fix
4362         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
4363
4364 2006-02-09  Jackson Harper  <jackson@ximian.com>
4365
4366         * Form.cs: If a form is made into an MDI form update the styles so
4367         all the props can get set correctly.
4368         - Kill the mdi_container when we dont need it anymore.
4369         * InternalWindowManager.cs: Add missing NOT
4370
4371 2006-02-08  Jackson Harper  <jackson@ximian.com>
4372
4373         * InternalWindowManager.cs: Respek clipping when drawing MDi
4374         decorations.
4375
4376 2006-02-08  Jackson Harper  <jackson@ximian.com>
4377
4378         * Hwnd.cs: Add bits to track non client expose events.
4379         * XplatUIX11.cs: Track non client expose events on the hwnd. This
4380         gives us a proper invalid rect and will allow for some nice
4381         optimizations with NC client drawing
4382         - MDI windows are children windows, so move their style handling
4383         into the child window block.
4384         * InternalWindowManager.cs: Remove a state reset that was
4385         getting invoked at the wrong time. Fixes managed windows getting
4386         into a 'stuck' captured state.
4387
4388 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
4389
4390         * TextControl.cs (Document.ctor): Now initializing 
4391           selection_anchor. Fixes #77493
4392
4393 2006-02-07  Jackson Harper  <jackson@ximian.com>
4394
4395         * TrackBar.cs: The increment/decrements were backwards.
4396
4397 2006-02-07  Mike Kestner  <mkestner@novell.com>
4398
4399         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
4400         to the instance itself.
4401
4402 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
4403
4404         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
4405           on ulongs and pointers, the size differs between 32bit and 64bit
4406           systems. 
4407
4408 2006-02-07  Mike Kestner  <mkestner@novell.com>
4409
4410         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
4411         for 64 bit platforms to work around a metacity bug. 
4412
4413 2006-02-07  Jackson Harper  <jackson@ximian.com>
4414
4415         * TrackBar.cs: Process the input keys we need, and hookup to
4416         KeyDown instead of using WndProc, so we get key messages.
4417
4418 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
4419
4420         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
4421           machine we're on. 
4422         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
4423           we need to translate the XdndVersion atoms array before sending it
4424
4425 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
4426
4427         * XplatUIX11.cs: 
4428           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
4429             number of bits for the property, not the number of bytes. The
4430             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
4431             but would not crash since it specified 8 bits instead of 4 bits)
4432           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
4433             defined as XID -> long in the C headers)
4434           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
4435             references since those are now IntPtr to begin with
4436           - Switched all Atom.XXX 'int' casts to IntPtr casts
4437           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
4438           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
4439           - Added XChangeActivePointerGrab DllImport (for X11DnD)
4440         * X11Structs.cs:
4441           - Changed 'int' type for Atoms in XEvent structures to IntPtr
4442           - Changed atom in HoverStruct to be IntPtr
4443         * X11DnD.cs:
4444           - Removed local DllImports, switched code to use those from XplatUIX11
4445           - Removed/fixed casts related to the switch of Atom to be a IntPtr
4446
4447 2006-02-06  Mike Kestner  <mkestner@novell.com>
4448
4449         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
4450         method signatures in the import region.  There may still be some
4451         lingering struct marshaling issues, as I didn't drill down into those.
4452         Yet.
4453
4454 2006-02-06  Jackson Harper  <jackson@ximian.com>
4455
4456         * ComboBox.cs: Dont manually set the top_item, this is computed
4457         when the scrollbar position is set.
4458
4459 2006-02-06  Mike Kestner  <mkestner@novell.com>
4460
4461         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
4462         startup crashes on amd64.  There's other fixes needed.  All pinvoke
4463         usage of Atom needs to be mapped to IntPtr for example.  And there are
4464         likely other int/long issues to be addressed.
4465
4466 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
4467
4468         * FileDialog.cs: One more...
4469
4470 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
4471
4472         * FileDialog.cs: Next try
4473
4474 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
4475
4476         * FileDialog.cs: First part of fix for #77464
4477
4478 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
4479
4480         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
4481           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
4482           AcceptButton border drawing.
4483
4484 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
4485
4486         * Form.cs: Moved positioning of form after auto scaling is applied,
4487           otherwise it would possibly use wrong form size.
4488
4489 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
4490
4491         * Control.cs (RecreateHandle): No need to re-create any child
4492           controls, the child windows will get destroyed automatically by
4493           the windowing system or driver, and re-created when the handle
4494           is being accessed the first time. Fixes #77456
4495         * Form.cs: No longer setting the form to closing if the handle is 
4496           being recreated. This seems like the right thing to do, don't
4497           have a bug or testcase for this, though.
4498
4499 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
4500
4501         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
4502           controls to avoid unwanted side effects
4503
4504 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
4505
4506         * Control.cs: 
4507           - ScaleCore needs to scale the bounds, not the ClientSize of the 
4508             control. Fixes #77416.
4509           - DefaultSize is 0,0 for control
4510         * TextBoxBase.cs: 
4511           - DefaultSize is 100, 20
4512           - SetBoundsCore: Now enforcing the height, no matter if the provided
4513             height is more or less than the preferred one, as long as AutoSize
4514             is on
4515         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
4516
4517 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
4518
4519         * Control.cs:
4520           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
4521             call unless both performLayout is true *and* we have a pending
4522             layout change
4523           - ResumeLayout: MS does not completely nest Suspend and Resume,
4524             they bottom out at 0, fixed our code to match that.
4525           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
4526             SetBoundsCore, we were updating even when we shouldn't. This fixes
4527             swf-anchors mis-anchoring when resizing the app fast and lots.
4528           - UpdateDistances: Now only setting the left and top distance if 
4529             we have a parent and are not suspended, this is based on
4530             a suggestion by Don Edvaldson in bug #77355.
4531           - OnVisibleChanged: Fixed logic when to create the control. We may
4532             not create the control if we have no parent or if it's not visible;
4533             switched to using Visible property instead of is_visible field 
4534             since the property also considers parent states. This fixes a bug
4535             when starting Paint.Net
4536
4537 2006-02-02  Jackson Harper  <jackson@ximian.com>
4538
4539         * Form.cs: If the forms handle hasn't been created yet don't call
4540         into xplatui to make it top most, just set the topmost flag on the
4541         form in CreateParams
4542         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
4543
4544 2006-02-01  Jackson Harper  <jackson@ximian.com>
4545
4546         * ScrollableControl.cs: Refactored the Recalculate method a
4547         little, this wasn't handling all the variants of bottom and right
4548         bars needed to be added and added/removed based on their
4549         counterparts being added/removed (which changes the drawable
4550         size). Also we special case client widths and heights of 0 and
4551         don't add the scrollbar for those.
4552
4553 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
4554
4555         * XplatUIX11.cs: 
4556           - Added method to get AbsoluteGeometry(); currently unused, but might
4557             be used in the future, if we try again to figure out toplevel
4558             coordinates with some more crappy window managers
4559           - Added FrameExtents() method to retrieve the WM set decoration size
4560           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
4561             to deal with at least KDE, FVWM and metacity (Fixes #77092)
4562         * Hwnd.cs: 
4563           - Added whacky_wm tracking var for metacity
4564           - Added logic to have default menu height if the actual menu height
4565             has not yet been calculated (part of fix for #77426)
4566         * Form.cs: Keep track whether client size has been set and re-set 
4567           it if a menu is added/removed afterwards (Fixes #77426)
4568
4569 2006-01-31  Jackson Harper  <jackson@ximian.com>
4570
4571         * Control.cs: When a new Site is set on the component attempt to
4572         pull the AmbientProperties from it.
4573
4574 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
4575
4576         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
4577           in the background of the owning form. Fixes #77332
4578
4579 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
4580
4581         * MimeIcon.cs: Fix for #77409
4582
4583 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
4584
4585         * XplatUIX11GTK.cs: Initial import
4586
4587 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
4588
4589         * FixedSizeTextBox: fixes class signature
4590
4591 2006-01-30  Jackson Harper  <jackson@ximian.com>
4592
4593         * FixedSizeTextBox.cs: New internal class that represents a
4594         textBox that will not be scaled.
4595         * TreeView.cs:
4596         * ComboBox.cs:
4597         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
4598         standard TextBox.
4599                 
4600 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
4601
4602         * XplatUIX11.cs: Retrieve default screen number instead of
4603           assuming 0. Attempted fix for #77318
4604
4605 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
4606
4607         * XplatUIWin32.cs: 
4608           - GetWindowPos: When a window is parented by FosterParent, use 
4609             the desktop instead of FosterParent as the base to get coordinates
4610           - CreateWindow: Don't make FosterParent the parent window for Popups
4611             if we don't want a taskbar entry, Popups automatically don't get one
4612         * Hwnd.cs: Need to call remove to actually remove the key from the
4613           hash table
4614
4615 2006-01-30  Mike Kestner  <mkestner@novell.com>
4616
4617         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
4618
4619 2006-01-30  Jackson Harper  <jackson@ximian.com>
4620
4621         * TreeView.cs:
4622         * TreeNode.cs: Raise events no matter how the treenode is
4623         checked. Patch by Don Edvalson.
4624
4625 2006-01-30  Jackson Harper  <jackson@ximian.com>
4626
4627         * TreeNode.cs: Signature fix.
4628
4629 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
4630
4631         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
4632
4633 2006-01-20  Mike Kestner  <mkestner@novell.com>
4634
4635         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
4636         event forwarding when menus are active.
4637         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
4638         Most of the patch is pdb's with a little rework.
4639
4640 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
4641
4642         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
4643           Removed GetMenuDC and ReleaseMenuDC methods; replaced
4644           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
4645         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
4646         * InternalWindowManager.cs: Added use of PaintEventStart/End to
4647           handling of WM_NCPAINT message, now passing the PaintEventArgs to
4648           the PaintWindowDecorations method
4649         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
4650         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
4651         * MenuAPI.cs: Made tracker window invisible
4652         * XplatUIWin32.cs:
4653           - Removed GetMenuDC and ReleaseMenuDC methods
4654           - Implemented the client=false path for PaintEventStart and
4655             PaintEventEnd
4656
4657 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
4658
4659         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
4660         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
4661           styles
4662         * Form.cs: 
4663           - MaximizeBox, MinimizeBox: Recreate the handle when setting
4664             the style
4665           - CreateParams: Reworked the styles to match MS look'n'feel,
4666             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
4667             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
4668
4669 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
4670
4671         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
4672           window is not mapped, since otherwise every form that's being 
4673           created is considered minimized, which is wrong.
4674         * Form.cs: Catching the exception and returning our internal value
4675           instead
4676
4677 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
4678
4679         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
4680           SetWindowMinMax() to have means to tell the driver about the minimum,
4681           maximum and maximized state window sizes. (Part of the fix for #76485)
4682         * Form.cs:
4683           - Implemented tracking of minimum and maximum window size, now calling
4684             new SetWindowMinMax() driver method to tell the driver (Part of the
4685             fix for #76485)
4686           - Finished handling of WM_GETMINMAXINFO method, now setting all values
4687             (Completes fix for #76485)
4688           - Calling new SetWindowMinMax driver method when the handle for a 
4689             form is created, to make sure the driver knows about it even if
4690             the values have been set before the window was created
4691           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
4692             to avoid messing up our anchoring calculations (partial fix
4693             for #77355)
4694         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
4695         * XplatUIX11.cs:
4696           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
4697           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
4698             (and presumably other freedesktop.org compliant WMs). Left the
4699             assumption unmapped=minimized, needed for SetVisible to work.
4700           - Now setting the window state when creating windows
4701           - Fixed SetVisible to consider/set the window state when mapping
4702             a Form. We cannot set the state before it's mapped, and we cannot
4703             use Form.WindowState once it's mapped (since it would ask the
4704             driver and get 'normal'. Therefore, we grab the state before
4705             mapping, map, and then set state.
4706           - Implmemented SetWindowMinMax method; Metacity does not seem to
4707             honor the ZoomHints, though.
4708         * XplatUIWin32.cs:
4709           - Removed MINMAXINFO (moved to XplatUIStructs)
4710           - Added SetWindowMinMax stub (on Win32 the only way to set that
4711             information is in response to the WM_GETMINMAXINFO message, which
4712             is handled in Form.cs)
4713           - Added logic to SetVisible to set the proper window state when a 
4714             form is made visible (fixes #75720)
4715
4716 2006-01-26  Jackson Harper  <jackson@ximian.com>
4717
4718         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
4719         same way we handle them with Invoke.
4720
4721 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
4722
4723         * Form.cs:
4724           - Added tracking of window state so CreateParams can return
4725             the appropriate style
4726           - Moved setting of WS_CAPTION style in CreateParams to allow
4727             styles without caption
4728         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
4729           control if the TextBox property is accessed. Fixes #77345
4730         * Control.cs:
4731           - get_Created: now uses is_disposed and is_created to determine
4732             return value (suggested by Jackson)
4733           - CreateHandle: No longer exits if the handle is being recreated
4734           - RecreateHandle: If the handle is not yet created call the 
4735             appropriate method to create either control or handle. If the
4736             control is already created CreateHandle will simply exit instead
4737             of just creating the handle
4738         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
4739           now SendMessage WM_DESTROY directly to the control when DestroyWindow
4740           is called.
4741         * XplatUIX11.cs: 
4742           - When DestroyWindow is called, instead of waiting for the 
4743             DestroyNotification from X11, we directly post it to the WndProc
4744             and immediately dispose the hwnd object.
4745             Same applies to DestroyChildWindows, and this obsoletes the
4746             expose_pending tracking. Contrary to Win32 behaviour we destroy our
4747             child windows before our own, to avoid X11 errors.
4748           - Removed the direct sending of WM_PAINT on UpdateWindow
4749         * XplatUIWin32.cs:
4750           - Reworked DoEvents and GetMessage to allow access to internal queue
4751             even when trying non-blocking access to the queue.  Fixes #77335. 
4752             Based on a patch suggestion by Don Edvalson. The new private
4753             GetMessage can now also be used as a backend for a PeekMessage
4754             frontend version.
4755         * XplatUI.cs: Improved debug output for CreateWindow
4756
4757 2006-01-25  Jackson Harper  <jackson@ximian.com>
4758
4759         * Help.cs: Allow param to be null. Patch by Don Edvalson.
4760
4761 2006-01-24  Jackson Harper  <jackson@ximian.com>
4762
4763         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
4764         when we have a MaxDropItems lower then the selected index.
4765
4766 2006-01-24  Jackson Harper  <jackson@ximian.com>
4767
4768         * Control.cs: Don't allow selection of non visible controls, allow
4769         selection of controls without parents.
4770
4771 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
4772
4773         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
4774         * DataGridDrawingLogic.cs: Add editing row only when is necessary
4775
4776 2006-01-23  Jackson Harper  <jackson@ximian.com>
4777
4778         * UpDownBase.cs: Make the textbox handle all the selection and
4779         tabbing. This fixes tabing to updown controls.
4780
4781 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
4782
4783         * TextBoxBase.cs: fixes exception thown the object was null
4784
4785 2006-01-23  Jackson Harper  <jackson@ximian.com>
4786
4787         * ButtonBase.cs: Just use the base CreateParams. They set
4788         visibility and enabled correctly.
4789         * ComboBox.cs:
4790         * TrackBar.cs:
4791         * MonthCalendar.cs: Lets let the base set as much of the
4792         createparams as possible so we don't have duplicate code all over
4793         the place.
4794
4795 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
4796
4797         * ThemeGtk.cs: Added TrackBar and some experimental code to
4798           get double buffering back
4799
4800 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
4801
4802         * DataGrid.cs: Allows row number set internally higher than the last
4803         when creating a new row. Restores the editing functionality.
4804
4805 2006-01-20  Mike Kestner  <mkestner@novell.com>
4806
4807         * MimeIcon.cs: delay Image creation until the icons are accessed
4808         instead of creating 190 scaled images on GnomeHandler startup.
4809
4810 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
4811
4812         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
4813           first call base before processing the event. Fixes #77279
4814
4815 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
4816
4817         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
4818           that the stride for the GDI bitmap would match the stride of
4819           a DIB or a Cursor.
4820
4821 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
4822
4823         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
4824
4825 2006-01-19  Jackson Harper  <jackson@ximian.com>
4826
4827         * ComboBox.cs: Hookup the text controls keydown event so we get
4828         those when the text control has the focus.
4829
4830 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
4831
4832         * Label.cs: Now using the base events instead of defining new ones;
4833           this allows us to just call the base properties without having to
4834           duplicate all base property logic 
4835
4836 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
4837
4838         * Label.cs: A label by default is not a tabstop (Fixes one of our
4839           failing nunit tests)
4840
4841 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
4842
4843         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
4844         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
4845
4846 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
4847
4848         * Cursor.cs: Reimplemented creating cursor bitmaps without using
4849           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
4850           This fixes #77218
4851         * XplatUIWin32.cs: 
4852           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
4853             constructor creates images that can't be saved. Part of the fix
4854             for #76103
4855           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
4856           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
4857             bug fix for handling window state in forms properly)
4858
4859 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
4860
4861         * ThemeGtk.cs: Simplify ScrollBar drawing
4862
4863 2006-01-18  Jackson Harper  <jackson@ximian.com>
4864
4865         * Splitter.cs: Set the default dock style for the splitter control
4866         in the constructor.
4867
4868 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
4869
4870         * ThemeGtk.cs: Corrected StateType and ShadowType for
4871           gtk_paint_box
4872
4873 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
4874
4875         * Control.cs: Make use of Theme.DoubleBufferingSupported
4876         * ThemeGtk.cs:
4877           - Added drawing for flat style buttons
4878           - Added ScrollBar drawing
4879
4880 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
4881
4882         * ThemeClearlooks.cs: Removed some unneeded code.
4883         * ThemeGtk.cs: First part of ThemeGtk enhancements.
4884
4885 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
4886
4887         * LinkLabel.cs: We need to update the hover drawing when
4888           leaving the control as well.
4889
4890 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
4891
4892         * DataGrid.cs: Clicking on non empty areas in the columns
4893            area was giving an exception
4894
4895 2006-01-17  Jackson Harper  <jackson@ximian.com>
4896
4897         * ThemeWin32Classic.cs:
4898         * ListView.cs: Do not draw/clip the headers when the header style
4899         is None.
4900
4901 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
4902
4903         * DataGrid.cs: Fixes 77260
4904         
4905 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
4906
4907         * DataGrid.cs: Clicking on a column on a empty grid was giving
4908           an exception
4909
4910 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
4911
4912         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
4913           or any keypress will crash the grid.
4914
4915 2006-01-17  Mike Kestner  <mkestner@novell.com>
4916
4917         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
4918         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
4919         invisible/previously-visible items.
4920         [Fixes #76909]
4921
4922 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
4923
4924         * ThemeClearlooks.cs:
4925         - Added CL_Draw_Button method; now other theme controls that are 
4926           not derived from button or do not have a button can draw buttons
4927           too
4928         - Updated ComboBox drawing
4929         - Beautified RadioButton drawing
4930         - Corrected drawing of bottom and left tabs
4931         - Beautified DateTimePicker and MonthCalendar
4932         - Added CPDrawButton and CPDrawRadioButton
4933
4934 2006-01-16  Jackson Harper  <jackson@ximian.com>
4935
4936         * ComboBox.cs: Set the initial value of the scrollbar to the
4937         current index. Reduce the numbers of refreshs and IndexOfs called.
4938
4939 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
4940
4941         * FileDialog.cs: When the file listview is focused hitting the
4942           backspace key moves the fileview to the parent directory
4943
4944 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
4945
4946         * Form.cs: 
4947           - Added RecreateHandle call when changing taskbar visibility to 
4948             trigger reparenting in Win32 driver (Fixes #75719)
4949           - If a window has minimize or maximize buttons, it cannot have
4950             a help button
4951         * XplatUIWin32.cs:
4952           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
4953             the toplevel form with FosterParent (A toolwindow not on the
4954             taskbar) (Fixes #75719)
4955           - Made FosterParent a toolwindow
4956
4957 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
4958
4959         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
4960
4961 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
4962
4963         * ToolTip.cs: If SetToolTip is called from a control and the mouse
4964           is currently over that control, make sure that tooltip_window.Text
4965           gets updated
4966
4967 2006-01-13  Mike Kestner  <mkestner@novell.com>
4968
4969         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
4970
4971 2006-01-13  Jackson Harper  <jackson@ximian.com>
4972
4973         * TreeView.cs: On MS GetNodeAt never actually factors in the X
4974         value passed.  Also redraw the selected node when we recieve
4975         focus, so tabbing between trees works correctly.
4976
4977 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
4978
4979         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
4980           ~/.gconf/%gconf-tree.xml, so use
4981           .gconf/desktop/gnome/interface/%gconf.xml
4982
4983 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
4984
4985         * TextControl.cs: Draw text in gray if control is disabled
4986
4987 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
4988
4989         * TreeView.cs: Draw the focus rectangle outside the highlight, to
4990           make sure it's always visible. Fixes #76680.
4991
4992 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
4993
4994         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
4995
4996 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
4997
4998         * PageSetupDialog.cs: Added.
4999         * PrintDialog.cs: Attributes.
5000         * PrintPreviewControl.cs: Updates.
5001         * PrintPreviewDialog.cs: Updates.
5002         
5003 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
5004
5005         * Control.cs: Undid my selection check fix, since it's not needed
5006         * TextBoxBase.cs:
5007           - Now considering the presence of hscroll/vscroll when sizing
5008             vscroll/hscroll respectively. Fixed bug #77077
5009           - Added Left/Up/Down/Right to IsInputKey list to prevent
5010             ContainerControl from stealing them. This fixes what I broke
5011             with my last checkin.
5012
5013 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
5014
5015         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
5016           I finally understand how the property can be set without a setter :-)
5017
5018 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
5019
5020         * Application.cs:
5021           - Switched RunLoop to use static Message.Create to create a 
5022             Message object
5023           - Added PreProcessMessage call in runloop for keyboard events; this
5024             is part of the fix for #77219, I overlooked this originally in the
5025             MSDN doc for PreProcessMessage
5026         * Control.cs:
5027           - Removed call to PreProcessMessage from handling of keyboard 
5028             messages; it's supposed to be done in the message pump
5029           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
5030             per MSDN documentation.
5031           - IsInputChar: All chars are input chars by default; removed the 
5032             parent calling chain, MS does not document that
5033           - PreProcessMessage: If IsInputChar is true, we want to return false
5034             to allow dispatching of the message
5035           - When selecting the next control, now also check that we're not
5036             selecting ourselves again and therefore return a false positive.
5037         * TextBoxBase.cs:
5038           - Tried to match return values for IsInputKey and ProcessDialogKey
5039             to what MS returns; moved processing of our special keys outside
5040             ProcessDialogKey since MS does not seem to return true on those.
5041           - Moved code that previously was in ProcessDialogKey into new private
5042             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
5043           - Reworked handling of WM_CHAR to not have to duplicate code from
5044             Control.cs anymore, instead we simply call down to base.
5045            
5046 2006-01-12  Jackson Harper  <jackson@ximian.com>
5047
5048         * ComboBox.cs: We always need to refresh the text area when
5049         EndUpdate is called. Fixes the combobox in the file dialog.
5050         * Control.cs: Don't create the creator_thread until the controls
5051         handle is created.  Also in InvokeRequired we check if the
5052         creator_thread is null. This gives the effect of InvokeRequired
5053         returning true if the controls handle is not created yet, and
5054         matches MS.
5055
5056 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
5057
5058         * XplatUI.cs:
5059           - Added StartLoop() driver method. This is used to allow drivers to
5060             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
5061             loop for a particular thread
5062           - Added EndLoop() driver method. This is called once the message
5063             pump for the thread is shut down
5064           - Added SupportsTransparency method to allow the driver to indicate
5065             opacity support for windows
5066         * Form.cs:
5067           - Removed TODO attribute, completed AllowTransparency property
5068           - Added documented logic to Opacity
5069         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
5070           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
5071           versions of CompatibleTextRendering
5072         * X11Structs.cs: Added opacity atom to our atom enumeration
5073         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
5074           of a form might be set before it's reparented by the WM, and we need
5075           the opacity value without calling up to Form)
5076         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
5077           SupportsTransparency() driver methods
5078         * Application.cs: Now calling StartLoop and EndLoop driver methods
5079         * XplatUIX11.cs:
5080           - Added opacity atom registration
5081           - Added StartLoop()/EndLoop() methods. They're empty right now but
5082             will need to get implemented when we switch to a per-thread queue
5083           - Implemented SupportsTransparency() method
5084           - Implemented SetWindowTransparency() method
5085           - Added support for setting the opacity value when a window is
5086             reparented (since the opacity needs to be set on the WM frame)
5087         * XplatUIOSX.cs, XplatUIWin32.cs:
5088           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
5089
5090 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
5091
5092         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
5093
5094 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
5095
5096         * FileDialog.cs: Added ToolTip for MWFFileView
5097         * MimeIcon.cs: Rewrote GnomeHandler.
5098           - Get currently used gnome icon theme from
5099             ($HOME)/.gconf/%gconf-tree.xml
5100           - Make use of inherited icon themes
5101           - Support SVG icon themes like Tango via librsvg
5102
5103 2006-01-12  Miguel de Icaza  <miguel@novell.com>
5104
5105         Revert's Jackson's revert which broke 2.0 builds.   Fix both
5106         builds. 
5107         
5108         * Application.cs: Move the use_compatible_text_rendering outside
5109         the NET_2_0 define.  If we ever need to use the
5110         use_compatible_text_rendering on the individual controls they will
5111         access the variable from the common shared code paths.
5112
5113 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
5114
5115         * XplatUI.cs:
5116           - Added more granular debug options
5117           - Added method to print both window text and id
5118           - Switched debug output to use new Window() debug method
5119           - Added IsEnabled() driver method
5120           - Added EnableWindow() driver method
5121         * Form.cs:
5122           - Removed end_modal; no longer needed, new loop handles termination
5123             via 'closing' variable
5124           - If form is modal, setting DialogResult will now initiate loop
5125             termination via 'closing' variable
5126           - Added support for is_enabled/WS_DISABLED to CreateParams
5127           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
5128             does all the work
5129           - Removed code that's now in RunLoop from ShowDialog()
5130           - Added various documented sanity checks to ShowDialog()
5131           - Added handling of WM_DESTROY message; we set 'closing' on getting
5132             the message to indicate the message pump to terminate
5133           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
5134             send by the Application.ExitThread method. (We send the message
5135             to destroy the window after all other events have been
5136             processed through the queue, instead of destroying the handle 
5137             directly)
5138           - Moved code from Close() method to WM_CLOSE handler; added logic
5139             to only send close-related events if the form is not displayed
5140             modal
5141         * Splitter.cs (..ctor): Fixed typo in resource name
5142         * Control.cs:
5143           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
5144             brush now
5145           - set_Cursor: Now only setting calling into XplatUI if the handle for
5146             the control is already created; this avoids implict handle creation
5147             or crashes if it's not created
5148           - set_Enabled: Now setting the enabled state via the new driver method
5149             instead of just tracking it
5150           - CreateParams: Added logic to set WS_DISABLED based on enabled state
5151           - CreateControl: Reordered event firing and method calls to more
5152             closely fire events in the order MS does. Now setting the
5153             enabled state in the driver when creating the control.
5154           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
5155             match MS order
5156         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
5157           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
5158         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
5159         * Hwnd.cs:
5160           - Added tracking of window enabled state (get_Enabled/set_Enabled)
5161           - Added EnabledHwnd property to easily allow a driver to find the
5162             handle of the first enabled window in the parent chain (this is
5163             used by drivers to pass up input events of disabled windows)
5164         * XplatUIDriver.cs: Added IsEnabled() method
5165         * Application.cs:
5166           - Removed crude and obsolete exiting tracking variable
5167           - Removed internal ModalRun(); replaced by RunLoop()
5168           - Implemented private CloseForms() method to allow closing all 
5169             windows owned by a particular (or all) threads
5170           - Exit() now properly closes all windows without forcing the message
5171             pump to quit
5172           - Removed obsolete InternalExit() method
5173           - Changed Run() methods to use new RunLoop() message pump
5174           - Implemented new RunLoop() method for both modal and non-modal forms
5175         * CommonDialog.cs:
5176           - get_CreateParams: Added setting of WS_DISABLED
5177           - Simplified ShowDialog(); now all the work is done in RunLoop(),
5178             invoked via Form.ShowDialog()
5179         * NativeWindow.cs: We don't remove the window from the collection when
5180           the handle is destroyed; there might still be messages for it in the
5181           queue (mainly the resulting WM_DESTROY); instead it will be removed
5182           when Control calls InvalidateHandle in the WM_DESTROY handler
5183         * XplatUIX11.cs:
5184           - CreateWindow: Added logic to handle the WS_DISABLED window style
5185           - EnableWindow: Implemented based on Hwnd.Enabled
5186           - GetMessage: Reset PostQuitState so the method can be called again
5187           - Implemented support for disabled windows (passing messages to the
5188             first enabled parent) in handling all input messages
5189           - Added optimizations for handling Expose events
5190           - Implemeted new driver method IsEnabled()
5191           - Now always resetting paint pending tracking vars when we start paint
5192           - Re-implemented UpdateWindow via just sending a WM_PAINT message
5193         * XplatUIOSX.cs: Added IsEnabled method stub
5194         * XplatUIWin32.cs: Implemented new IsEnabled() method
5195
5196 2006-01-11  Jackson Harper  <jackson@ximian.com>
5197
5198         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
5199         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
5200         variables a little.
5201         * ColorDialog.cs: Clear out the old form before adding the new
5202         panel.  
5203
5204 2006-01-11  Jackson Harper  <jackson@ximian.com>
5205
5206         * X11Dnd.cs: Make sure to add all the text formats when adding
5207         strings to the data object.
5208         * TreeNodeCollection.cs: When adding to a sorted tree we need to
5209         do some redrawing too.  Also change the UpdateNode to an
5210         UpdateBelow so the newly added node gets painted.
5211         
5212 2006-01-11  Miguel de Icaza  <miguel@novell.com>
5213
5214         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
5215         LinkLabel.cs, PropertyGrid.cs: Implement the
5216         UseCompatibleTextRendering property for 2.x
5217
5218         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
5219
5220 2006-01-11  Jackson Harper  <jackson@ximian.com>
5221
5222         * TreeView.cs: Use the property for setting the selected node so
5223         the correct events get raised.
5224         * TreeNode.cs: Update the tree when the fore/back colours of a
5225         node are set.
5226
5227 2006-01-10  Jackson Harper  <jackson@ximian.com>
5228
5229         * TreeView.cs: Allow setting SelectedNode to null.
5230
5231 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
5232
5233         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
5234
5235 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
5236
5237         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
5238
5239 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
5240
5241         * PrintDialog.cs: Added attributes and set default property values.
5242
5243 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
5244
5245         * PrintControllerWithStatusDialog.cs: 
5246         Added PrintControllerWithStatusDialog.
5247
5248 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
5249
5250         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
5251         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
5252
5253 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
5254
5255         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
5256
5257 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
5258
5259         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
5260         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
5261
5262 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
5263
5264         * MimeIcon.cs: Added internal class SVGUtil.
5265
5266 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
5267
5268         * FileDialog.cs: Don't crash if there are two files with the
5269           same name but different locations.
5270
5271 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
5272
5273         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
5274         dates across multiple month grids. Used to not highlight entire 
5275         month, but does now.
5276         
5277 2006-01-06  Jackson Harper  <jackson@ximian.com>
5278
5279         * MonthCalendar.cs: Removed DoEvents call to prevent a running
5280         message loop. Change timer intervals to numbers that seem more
5281         natural.
5282
5283 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
5284
5285         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
5286           object for location info since screen object is now implemented.
5287
5288 2006-01-05  Jackson Harper  <jackson@ximian.com>
5289
5290         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
5291         * AsyncMethodResult.cs: We no longer use a WeakReference for the
5292         AsyncMethodResult, this is because we ALWAYS want the
5293         ManualResetEvent to get set.
5294         * Control.cs: When disposing use an async invoke to call shutdown
5295         code, so that thigns don't block on the finalizer thread.  Also
5296         check if we even have a message loop before trying to send
5297         messages, if we don't then don't bother sending messages.
5298         - No more weak references for async methods
5299         * XplatUIDriver.cs: No more weak references for async methods.
5300
5301 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
5302
5303         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
5304           returns two FontFamily with the same name
5305
5306 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
5307
5308         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
5309           drawing disabled text. Instead using the ColorGrayText color
5310
5311 2006-01-04  Jackson Harper  <jackson@ximian.com>
5312
5313         * TreeNode.cs: redraw the node when its image index is changed.
5314
5315 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
5316
5317         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
5318           time I checked there are no others like it.
5319
5320 2006-01-04  Jackson Harper  <jackson@ximian.com>
5321
5322         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
5323         this gives the behavoir I was looking for.
5324         * Control.cs: Special case Invoking EventHandlers, this matches MS
5325         and fixes part of bug #76326.
5326
5327 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
5328
5329         * ThemeClearlooks.cs, FileDialog.cs:
5330           - Reflect the latest Theme class changes
5331           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
5332             with DateTime
5333             
5334 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
5335
5336         * Theme.cs: Cache UI resource images and resize them if needed
5337
5338 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
5339
5340         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
5341           is called. This fixes the crash in Nexxia when setting the font
5342           attributes in the chat. [However, RTF needs a look-over to make sure
5343           that all SelectionXXX methods handle the special case that selection
5344           is empty and therefore the change must be applied to all text starting
5345           at the cursor/selection start]
5346
5347 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
5348
5349         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
5350           XplatUIOSX.cs: Added SendMessage and PostMessage methods
5351         * X11Keyboard.cs: Switched to new way of calling PostMessage
5352
5353 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
5354
5355         * Theme.cs: Added theme interface for images to allow the theme to
5356           control what images are used for things like FileDialog, MessageBox
5357           icons, etc.
5358         * MessageBox.cs: Now uses the new Theme icon/image interfaces
5359
5360 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
5361
5362         * FileDialog.cs:
5363           - Removed some dead code
5364           - Opening a recently used file does work now
5365           - Small UI enhancements
5366           - Refactoring
5367
5368 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
5369
5370         * FileDialog.cs: Forgot too add __MonoCS__
5371
5372 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
5373
5374         * FileDialog.cs: We are able to read recently used files now let's
5375           go on and write them.
5376
5377 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
5378
5379         * FileDialog.cs: Breathe some life into "last open"/"recently used"
5380           button
5381         * MimeIcon.cs: Do a check for the top level media type also
5382
5383 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
5384
5385         * ThemeClearlooks.cs:
5386           - Added CPDrawStringDisabled
5387           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
5388             some chars if the text doesn't fit into text_rect
5389           - DrawListViewItem: If View = View.LargeIcon center the image;
5390             rewrote the drawing of ListViewItem.Text if View = 
5391             View.LargeIcon
5392
5393 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
5394
5395         * MimeIcon.cs: Use default KDE icon theme if there is no
5396           "48x48" directory for the current icon theme, fixes #77114
5397         * Mime.cs: Disable not working and actually not used code. 
5398         * ThemeWin32Classic.cs:
5399           - Replace "new SolidBrush" in GetControlBackBrush and
5400             GetControlForeBrush with ResPool.GetSolidBrush
5401           - Changed DrawListViewItem from private to protected virtual
5402         * FileDialog.cs:
5403           - Added form.MaximizeBox = true
5404           - Don't throw an exception if there is a broken symbolic link
5405
5406 2005-12-23  Jackson Harper  <jackson@ximian.com>
5407
5408         * TabControl.cs: Give the panels focus, keyboard navigation is
5409         fixed so this works correctly now.
5410         - We need these key events also.
5411         * ToolBar.cs: Remove some of the poor mans double buffering.
5412         
5413 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
5414
5415         * ComboBox.cs: The internal TextBox now returns the focus.
5416
5417 2005-12-23  Jackson Harper  <jackson@ximian.com>
5418
5419         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
5420
5421 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
5422
5423         * Control.cs: Removed debug code
5424         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
5425           implicit children
5426
5427 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
5428
5429         * Control.cs: When creating the control, update the Z-order after
5430           all it's children are created, too. (Fixes nexxia not showing
5431           picturebox bug)
5432
5433 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
5434
5435         * Control.cs: Do not update the anchoring distances if layout is
5436           suspended, instead do it once layout is resumed
5437
5438 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
5439
5440         * Control.cs: 
5441           - After many hours of debugging, for both Jackson and
5442             myself, it turns out that it helps to set the parent of a control
5443             if you want to actually see it onscreen. In the spirit of that
5444             discovery, we're now setting the parent of the control and
5445             it's children when the control's handle is created. This fix
5446             will make Lutz Roeder's Reflector run happily. 
5447           - now just creating the handle instead of the whole control when
5448             getting a graphics context for the control.
5449
5450 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
5451
5452         * ScrollableControl.cs: When calculating the canvas, don't consider
5453           the scrollbar widths. Instead, predict if horizontal scrollbar
5454           will affect canvas when deciding on vertical display and vice versa.
5455
5456 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
5457
5458         * RichTextBox.cs: Set default RTF font for documents that don't
5459           have a font table (Fixes #77076)
5460
5461 2005-12-22  Jackson Harper  <jackson@ximian.com>
5462
5463         * TextBoxBase.cs: It's difficult to do, but you can have an empty
5464         clipboard. This prevents a NullRef in that case.
5465         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
5466         clipboard. PRIMARY is for the currently selected text only. (We
5467         should implement PRIMARY at some point.
5468
5469 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
5470
5471         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
5472           a Unicode function with a structure that was defined in Ansi way.
5473           This fixes #76942.
5474
5475 2005-12-21  Jackson Harper  <jackson@ximian.com>
5476
5477         * StatusBar.cs: Statusbar handles its fore/back colours on it's
5478         on. Because thats how it rolls. (and this avoids it using ambient
5479         colours).
5480         * ThemeWin32Classic.cs: Use the proper back color for filling.
5481         * Menu.cs: Use the system menu bar color for drawing menu
5482         bars. Using the window back color will bring ambient colours into
5483         the picture.
5484
5485 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
5486
5487         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
5488           Bitmaps were created and not disposed.
5489
5490 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
5491
5492         * Control.cs (CreateControl): Don't do anything if the control is
5493           already created, otherwise we'd fire the OnCreated event more than
5494           once
5495
5496 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
5497
5498         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
5499           will always match. Instead return -1. Fixes #76464.
5500
5501 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
5502
5503         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
5504           neither the beginning nor the end of the line (Fixes bug #76479)
5505
5506 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
5507
5508         * Control.cs:
5509           - ControlNativeWindow.ControlFromHandle(): Now handling situation
5510             where handle is invalid
5511           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
5512             instead of slower linear search
5513         * NativeWindow.cs: Don't remove the window from the hashtable until
5514           after the driver has destroyed it (since the driver might use
5515           Control.FromHandle to lookup the control object
5516         * Hwnd.cs: Added DestroyPending property to track if a window is 
5517           already destroyed as far as the driver is concerned and only hasn't
5518           yet notified the control
5519         * XplatUIX11.cs:
5520           - Activate(): Check if the window is still valid before using the 
5521             handle
5522           - Implemented DestroyChildWindow() method to mark child windows as
5523             destroyed when a window is destroyed. This prevents situations 
5524             where we might call an X method based on queued events for a
5525             window that already has been destroyed but we haven't yet pulled
5526             the destroy method from the queue.
5527           - Added a call to the new DestroyChildWindow() method to the drivers
5528             DestroyWindow code. Also now marking the destroyed window itself
5529             as pending
5530
5531 2005-12-20  Jackson Harper  <jackson@ximian.com>
5532
5533         * StatusBar.cs:
5534         * StatusBarPanel.cs: Don't calculate panel sizes on draw
5535         anymore. Just do them when needed, also track the rects of panels
5536         so that we can optimize refreshing more in the future.
5537
5538 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
5539
5540         * ColorDialog.cs: Fixed focus drawing in small color controls
5541
5542 2005-12-19  Jackson Harper  <jackson@ximian.com>
5543
5544         * InternalWindowManager.cs:
5545         * MdiWindowManager.cs: Cleanup some coordinate system changes so
5546         moving windows works properly.
5547
5548 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
5549
5550         * Control.cs: 
5551           - Removed call to InitLayout() from SetBoundsCore(); doc says
5552             it's only called when a control is added to a container
5553           - Split InitLayout logic, moved to separate UpdateDistances() method
5554             since we need to perform those calculations more often than just
5555             when adding the control to a container. (Needed to fix #77022)
5556           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
5557           - Reduced the OnBindingContextChanged events count, don't send them
5558             unless the control is created, we still aren't totally matching
5559             MS, but I can't quite figure out some of their rules
5560
5561 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
5562
5563         * ThemeClearlooks.cs: Corrected distance between ProgressBar
5564           stripes
5565
5566 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
5567
5568         * ThemeClearlooks.cs:
5569           - Updated ProgressBar drawing
5570           - Corrected drawing of ScrollBars and scroll buttons
5571           - Some temporary fixes for minor pixel artefacts
5572
5573 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
5574
5575         * Control.cs:
5576           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
5577             cause events to be sent in the same order as MS does.
5578           - Added ChangeParent() method to trigger various OnXXXChanged events
5579             that need to be fired when a parent changes (This is a reworking
5580             of the patch from r54254, with the X11 errors fixed)
5581           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
5582             since on MS we get OnLayoutChanged events when calling Clear()
5583           - Changed Enabled property to consider parent state as well, if a
5584             parent is not enabled, the control will not be either
5585           - Changed Parent property to simply call Controls.Add() since that
5586             now does all the work required, this way we avoid code duplication
5587           - Threw in a few OnBindingsContextChanged calls to try and match
5588             when MS sends them. We seem to send a few too many, though.
5589           - Added call to CreateControl when adding the control to a parent.
5590             We were never calling CreateControl. Still needs some work, in
5591             some places we treat HandleCreated and ControlCreated as equal, 
5592             which is wrong
5593           - Removed obsolete commented out code from UpdateZOrder()
5594
5595 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
5596
5597         * ThemeClearlooks.cs: Updated TrackBar drawing.
5598
5599 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
5600
5601         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
5602
5603 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
5604
5605         * FileDialog.cs: Add the Help button and the open readonly
5606           checkbox only if needed
5607
5608 2005-12-16  Jackson Harper  <jackson@ximian.com>
5609
5610         * Control.cs: Make sure we have an active menu before trying to
5611         process commands on it. Prevents menu-less forms from crashing
5612         when Alt is pressed.
5613         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
5614         Dieter Bremes.
5615         * RichTextBox.cs: Expand statement to help out gmcs and fix the
5616         2.0 build.
5617
5618 2005-12-16  Jackson Harper  <jackson@ximian.com>
5619
5620         * InternalWindowManager.cs: Don't translate tool windows screen
5621         coordinates. This fixes windows 'bouncing' around when being moved.
5622
5623 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
5624
5625         * TextBoxBase.cs:
5626           - MaxLength now treats 2^31-1 equal to unlimited length (this is
5627             not quite MS compatible, MS uses that number only for single line
5628             and 2^32-1 for multi-line, but I figure it won't hurt keeping
5629             the limit at 2GB)
5630           - Now enforcing the MaxLength limit when entering characters
5631           - Added argument to internal Paste() method to track if it's called
5632             from programatically or via keyboard, since keyboard driven pastes
5633             need to enforce max-length
5634           - Added logic to Paste to only paste as many chars as MaxLength 
5635             allows
5636         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
5637         * TextControl.cs:
5638           - Added Length property to return number of characters in document
5639           - Added private CharCount property which only tracks actual chars
5640             in the document (no linefeeds) and fires event when CharCount
5641             changes
5642           - Added tracking of character count to all methods that alter it
5643           - Added LengthChanged event to allow applications to subscribe
5644             to any changes to the document
5645
5646 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
5647
5648         * TextBox.cs: 
5649           - Removed local password_char field (moved to TextBoxBase)
5650           - Now setting the document's password var when password is
5651             set
5652         * TextBoxBase.cs:
5653           - Added password_char field (needed here so MultiLine can
5654             access it)
5655           - Added logic to MultiLine property setter to set the document's
5656             variable when password display is allowed
5657           - Removed debug code and made some debug code conditional
5658         * TextControl.cs:
5659           - Added RecalculatePasswordLine() method to handle special password
5660             char only lines
5661           - Added PasswordChar property, also added related tracking vars
5662           - Draw() method now uses local text var for grabbing text to draw,
5663             this var is set to line.text unless we're doing password display,
5664             then it is set to the pre-generated all-password-chars line
5665           - Added calling RecalculatePasswordLine() method for password lines
5666
5667 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
5668
5669         * Hwnd.cs: 
5670           - Added Reparented property to allow tracking of Window Manager
5671             reparenting actions (which affect X/Y calculations of toplevel 
5672             windows)
5673           - Made ToString() print window handles in hex
5674         * XplatUIX11.cs:
5675           - AddConfigureNotify(): Now uses reparented state off Hwnd to
5676             determine if X/Y needs offsetting
5677           - AddConfigureNotify(): Fixed offset calculations
5678           - Now adds ReparentNotify messages into the queue
5679           - Now processes ReparentNotify messages and causes a 
5680             WM_WINDOWPOSCHANGED message to be sent upstream if a window
5681             is reparented (as most likely it's X/Y coordinates are changed
5682             due to that)
5683
5684 2005-12-14  Jackson Harper  <jackson@ximian.com>
5685
5686         * XplatUIX11.cs: Tool windows still need to respek focus.
5687
5688 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
5689
5690         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
5691           have a working release
5692
5693 2005-12-13  Jackson Harper  <jackson@ximian.com>
5694
5695         * Form.cs: Update styles after setting the border style regardless
5696         of whether or not the window is using a window manager.
5697
5698 2005-12-13  Jackson Harper  <jackson@ximian.com>
5699
5700         * Form.cs: We now hook into an internal window manager instead of just an
5701         MDI subsystem, this is so we can have properly behaving tool windows.
5702         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
5703         * InternalWindowManager.cs: New internal class that acts as a
5704         window manager for tool windows and as a base for mdi windows.
5705         * MdiWindowManager.cs: New class that acts as a window manager for
5706         mdi windows.
5707
5708 2005-12-12  Jackson Harper  <jackson@ximian.com>
5709
5710         * Control.cs: Updates so we match behavoir for for implicit
5711         controls. Fixes explosions in MDI.
5712
5713 2005-12-12  Jackson Harper  <jackson@ximian.com>
5714
5715         * Control.cs: Implement Invalidate (Region).
5716
5717 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
5718
5719         * Control.cs: 
5720           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
5721             the same events as MS does. MS fires events for each property 
5722             except, for unknown reasons, Cursor, when the control is reparented. 
5723             I can't seem to totally match add/remove since MS also fires some 
5724             VisibleChanged events, which makes no sense. Consolidated the
5725             parenting code into a separate method so it can be called from
5726             both Add and Remove. set_Parent no longer needs any special logic
5727             as it calls the parent's add method which implicitly fires
5728             all events
5729           - Removed some obsolete code and debug output
5730           - Enabled state is inherited from parents, if this is enabled
5731
5732 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
5733
5734         * Form.cs: Removed commented out code
5735
5736 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
5737
5738         * Control.cs:
5739           - Added internal version of Invoke, with additional argument 
5740             indicating if we're calling it from a Dispose() handler. That
5741             way we can avoid BeginInvoke throwing an exception if we're
5742             calling for an already destroyed window.
5743           - Added a dispose argument to BeginInvokeInternal, and made the
5744             check if a valid window handle chain exists conditional on
5745             it not being a dispose call
5746           - Removed code in DestroyHandle to destroy our children. Since we
5747             now handle the WM_DESTROY message we will catch all our children
5748             being destroyed.
5749           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
5750         * Form.cs:
5751           - Added a field to track the application context of the form.
5752           - No need to set closing variable as response to WM_CLOSE, instead
5753             we destroy the window. We also call PostQuitMessage if the form
5754             has an application context (which makes it the main app form,
5755             which, when closed terminates the app)
5756         * XplatUI.cs:
5757           - Dropped Exit() method, it's naming was confusing
5758           - Added PostQuitMessage() which causes GetMessage to return false
5759             once the message queue is empty
5760         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
5761           PostQuitMessage()
5762         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
5763           no longer a valid XplatUI method, but left it in since it's used
5764           internally. Added empty PostQuitMessage() method.
5765         * MenuAPI.cs: Replaced call to Exit() with call to
5766           PostQuitMessage, even though this is probably no longer needed.
5767         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
5768         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
5769         * Application.cs:
5770           - Replaced call to XplatUI.Exit() with PostQuitMessage()
5771           - Removed old debug code that would call XplatUI for exception
5772             display, enabled standard exception handling (Still not enabled
5773             though, until NativeWindow's ExternalExceptionHandler define
5774             is removed
5775         * NativeWindow.cs:
5776           - Added internal method to allow control to update NativeWindow
5777             after a window has been destroyed
5778           - Added handling of already destroyed windows when calling i
5779             DestroyWindow
5780           - Added removal of handle from list on ReleaseHandle
5781         * XplatUIX11.cs:
5782           - Dropped GetMessageResult var and related code
5783           - Added PostQuitState to field to track if PostQuitMessage has been
5784             called
5785           - Dropped Exit() method
5786           - Added PostQuitMessage() method
5787           - GetMessage now will return false if PostQuitState is set and no
5788             more messages are in the queue.
5789           - Expose handler will no longer generate WM_PAINT messages if we are
5790             in PostQuitState since it's very likely any windows have already
5791             been destroyed, and since Hwnd won't get updated until we have
5792             processed the DestroyNotify we'd be causing X errors.
5793         
5794 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
5795
5796         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
5797           Thanks to Mike for pointing out the err of my ways.
5798
5799 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
5800
5801         * Control.cs(PreProcessMessage): Moved menu handling back, but
5802           after all other key handling, to match MS (who handles Menu in
5803           DefWndProc)
5804         * Menu.cs (WndProc): Removed my brainfart
5805
5806 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
5807
5808         * Control.cs(PreProcessMessage): Removed special menu handling 
5809         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
5810
5811 2005-12-07  Mike Kestner  <mkestner@novell.com>
5812
5813         * Control.cs : special case SYSKEYUP so that we can adjust keynav
5814         state according in tracker.
5815         * Menu.cs : promote tracker field to base class and provide a tracker
5816         lookup capability.  Add/Remove shortcuts dynamically if the top menu
5817         has a tracker. Unparent items that are removed from the collection.
5818         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
5819         * Theme*.cs: add always_show_hotkeys field to support configurability
5820         of mnemonic display.  win32 doesn't show mnemonics until Alt is
5821         pressed.
5822
5823 2005-12-07  Jackson Harper  <jackson@ximian.com>
5824
5825         * MdiChildContext.cs: Use Control.ResetCursor.
5826         * Control.cs: ResetCursor needs to set the property so that the
5827         correct XplatUI call gets made.
5828
5829 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
5830
5831         * Control.cs: More fixes to make our key events match MS. We
5832           were not setting the modifier state on KeyData, and we were
5833           not generating any events when Alt was pressed with a key
5834           since handling of WM_SYSxxx was missing for the OnKey methods.
5835
5836 2005-12-07  Jackson Harper  <jackson@ximian.com>
5837
5838         * MdiChildContext.cs: reenable the sizing code.
5839         - When the mouse leaves a window reset its cursor.
5840
5841 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
5842
5843         * ThemeClearlooks.cs: Reflect latest Hwnd changes
5844
5845 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
5846
5847         * Hwnd.cs: Now using the theme 3d bordersize to calculate
5848           widths of Fixed3D borders
5849
5850 2005-12-07  Jackson Harper  <jackson@ximian.com>
5851
5852         * MdiClient.cs: Fix warnings. Earn Mike's love.
5853
5854 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
5855
5856         * ThemeClearlooks.cs:
5857           - Adjusted mouse over button color
5858           - Added first parts of CheckBox drawing
5859           - Added correct color for selected text background
5860           - Fixed ComboBox drawing
5861           - Added CPDrawBorder3D and CPDrawBorder
5862
5863 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
5864
5865         * XplatUIX11.cs: Added call to XBell for AudibleAlert
5866
5867 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
5868
5869         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
5870           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
5871           alert users via sound. We could add an enum arg with different
5872           types of alerts in the future
5873
5874 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
5875
5876         * Control.cs: Fix behaviour problems pointed out by Mike
5877
5878 2005-12-05  Mike Kestner  <mkestner@novell.com>
5879
5880         * StatusBarPanel.cs: add Invalidate method and hook it into all the
5881         prop setters.  Calls parent.Refresh for now, but could be maybe be
5882         optimized with an internal method on StatusBar at some point.
5883         [Fixes #76513]
5884
5885 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
5886
5887         * RichTextBox.cs: Implemented get_SelectionColor
5888
5889 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
5890
5891         * ThemeClearlooks.cs:
5892           - Removed dead code
5893           - Draw black button border only if button is Form.AcceptButton
5894           - Draw correct button color for pressed RadioButton if the mouse 
5895             has entered the button
5896           - Updated ProgressBar drawing!
5897           - Updated CPDrawSizeGrip drawing
5898           - Updated StatusBarPanel drawing
5899
5900 2005-12-05  Mike Kestner  <mkestner@novell.com>
5901
5902         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
5903         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
5904
5905 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
5906
5907         * ThemeClearlooks.cs: Initial check-in, activate with
5908           export MONO_THEME=clearlooks
5909         * ThemeEngine.cs: Added ThemeClearlooks
5910
5911 2005-12-03  Mike Kestner  <mkestner@novell.com>
5912
5913         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
5914         [Fixes #76897]
5915
5916 2005-12-02  Jackson Harper  <jackson@ximian.com>
5917
5918         * Form.cs: If the child form has no menu the default main menu is
5919         used as the active menu.
5920
5921 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
5922
5923         * ListBox.cs: Check if any items exist before trying to resolve 
5924           coordinates into items
5925
5926 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
5927
5928         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
5929           as the second color for the background hatch
5930
5931 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
5932
5933         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
5934         * RichTextBox.cs: FormatText position arguments are 1-based, now making
5935           sure that what we pass to FormatText is always 1-based. Fixes #76885
5936
5937 2005-11-29  Miguel de Icaza  <miguel@novell.com>
5938
5939         * NumericUpDown.cs (EndInit): When we are done initializing,
5940         reflect any updates on the UI.
5941
5942 2005-12-02  Jackson Harper  <jackson@ximian.com>
5943
5944         * ImplicitHScrollBar.cs:
5945         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
5946         their container controls.
5947         * TreeView.cs: Use the new implicit scrollbars.
5948
5949 2005-12-02  Jackson Harper  <jackson@ximian.com>
5950
5951         * TreeView.cs: Make top_node internal so the TreeNodeCollections
5952         can play with it.
5953         * TreeNodeCollection.cs: If we remove the topnode we need to
5954         update topnode to the next node in line.
5955         - When clearing nodes go through the same process as removing
5956         them, so they get depareneted and checked if they are top node.
5957
5958 2005-12-01  Jackson Harper  <jackson@ximian.com>
5959
5960         * TreeView.cs: When imagelists are used the image area is
5961         selectable as well as the text.
5962         - If there are no selected nodes select the first one.
5963         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
5964         so don't do it more then we need to.
5965
5966 2005-12-01  Jackson Harper  <jackson@ximian.com>
5967
5968         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
5969         that arrows can be scaled.
5970
5971 2005-12-01  Jackson Harper  <jackson@ximian.com>
5972
5973         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
5974         fail. Patch by Dieter Bremes
5975
5976 2005-11-30  Jackson Harper  <jackson@ximian.com>
5977
5978         * Form.cs: Property is 2.0 only
5979         * PrintDialog.cs: Signature fix.
5980
5981 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
5982
5983         * TextControl.cs: 
5984           - No longer artificially moves text 2 pixels down (now that we have
5985             borders this is no longer needed)
5986           - Added calcs for left, hanging and right indent
5987
5988 2005-11-23  Mike Kestner  <mkestner@novell.com>
5989
5990         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
5991
5992 2005-11-30  Jackson Harper  <jackson@ximian.com>
5993
5994         * MdiChildContext.cs: Set the cloned menus forms, as these don't
5995         get cloned as part of CloneMenu ().
5996         * Menu.cs: Make sure the parent of the items get set correctly
5997         when they are added.  And the owners are notified of the changes.
5998         * Form.cs: Create an ActiveMenu property, so that when MDI is used
5999         we can change the menu being displayed/handled by the form without
6000         changing the menu assosciated with the form.
6001         - Don't let Mdi children draw/handle menus.
6002         
6003 2005-11-30  Jackson Harper  <jackson@ximian.com>
6004
6005         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
6006         a MenuChanged event. Just to make the API a little more
6007         consistent.
6008         * MainMenu.cs:
6009         * MenuItem.cs: Use the new OnMenuChanged
6010         * MdiChildContext.cs: Handle menu merging.
6011         * Form.cs: Implement MergedMenu.
6012         
6013 2005-11-30  Jackson Harper  <jackson@ximian.com>
6014
6015         * Menu.cs: We were misusing Add. Add goes behind the specified
6016         index according to the docs, and does not replace the specified
6017         index. So I added an Insert method.
6018
6019 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
6020
6021         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
6022           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
6023           is for Jackson
6024         * RichTextBox.cs: Added calls to base for DnD events
6025
6026 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
6027
6028         * TextControl.cs:
6029           - Fixed drag-selection related crash; style fixes
6030           - Implemented undo class
6031             o Implemented method to capture document state for specified
6032               range in document tree
6033             o Implemented method to restore captured document state
6034             o Implemented cursor tracking
6035             o Implemented basic undo stack
6036           - Added undo cursor tracking to methods altering cursor location
6037           - Added undo tracking to selection deletion (still missing
6038             other text-altering hookups)
6039         * RichTextBox.cs:
6040           - Added SelectionLength property
6041           - Implemented CanPaste()
6042           - Implemented Paste()
6043           - Added missing protected methods
6044           - Fixed RTF->Document conversion; now uses font index 0 and color 
6045             index 0 as the default font for the parsed text
6046           - Fixed RTF<->Document font size translation
6047           - Fixed RTF generation, now properly handles cross-tag boundaries
6048             for single line selection
6049           - No longer always appends blank line to generated RTF
6050           - Removed TODOs
6051           - Added missing attributes
6052           - Hooked up undo-related methods
6053         * TextBoxBase.cs:
6054           - Implemented Copy()
6055           - Implemented Paste()
6056           - Implemented Cut()
6057           - Fixed caret mis-behaviour on backspace across line-boundaries
6058
6059 2005-11-29  Jackson Harper  <jackson@ximian.com>
6060
6061         * MdiClient.cs: Add a method for activating mdi children. Very
6062         basic right now. I imagine someday it might need more girth.
6063         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
6064         children windows names are added to the menu item.
6065         * ThemeWin32Classic.cs: Draw the arrow if the item is an
6066         mdilist. This happens regardless of whether or not there are any
6067         mdi windows to see in the list, and according to my tests happens
6068         before the items are even added. Also happens if there isn't even
6069         an mdi client to get windows from.
6070
6071 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
6072
6073         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
6074         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
6075
6076 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
6077
6078         * DataGridTableStyle.cs:
6079           - Create always the styles for the missing columns even if they are
6080             provided by the user (not default table style)
6081         * DataGrid.cs:
6082           - Fixes bug 76770
6083           - Fixes SetDataBinding (always re-attach source)
6084           - Fixes SetNewDataSource (only clear styles if they are not for 
6085             this source)
6086          -  Expands OnTableStylesCollectionChanged to handle style refresh 
6087             and remove properly
6088
6089 2005-11-29  Jackson Harper  <jackson@ximian.com>
6090
6091         * FileDialog.cs: Implement missing bits, remove some dead
6092         code.
6093         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
6094         creation of the panel so that the options set on the dialog are
6095         seen when the panel is created.
6096         * TreeView.cs: raise a click when items are clicked.
6097         
6098 2005-11-29  Jackson Harper  <jackson@ximian.com>
6099
6100         * MdiClient.cs: Pass some signature methods through to base.
6101
6102 2005-11-28  Jackson Harper  <jackson@ximian.com>
6103
6104         * ListView.cs: Raise the click event when items are clicked.
6105
6106 2005-11-28  Jackson Harper  <jackson@ximian.com>
6107
6108         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
6109         a nullref.
6110
6111 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
6112
6113         * ThemeNice.cs: - Removed 1 pixel bitmaps
6114           - Use SmoothingMode.AntiAlias where it makes sense
6115             (ScrollButton arrow for example)
6116           - Enhanced Button focus drawing
6117           - Fixed ComboBox drawing (no artefacts anymore, focus
6118             rectangle is back again, reduced size of ComboButton, etc.)
6119           - Fixed RadioButton focus drawing for Appearence.Button
6120           - Slight ScrollButton redesign
6121           - Some LinearGradientBrush size fixes
6122           - GroupBoxes have now rounded edges
6123           - Fixed StatusBar drawing
6124
6125 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
6126
6127         * ThemeNice.cs: - Remove dead code
6128           - use correct background colors for menus, etc.
6129           - Fake pixel drawing with 1 pixel bitmaps
6130
6131 2005-11-24  Jackson Harper  <jackson@ximian.com>
6132
6133         * MdiClient.cs: Size the scrollbars when resizing the window.
6134         - Resize the maximized windows when the client is resized
6135         * Form.cs: Make the child context available
6136         
6137 2005-11-23  Jackson Harper  <jackson@ximian.com>
6138
6139         * MdiChildContext.cs: Don't size windows if they are maximized.
6140
6141 2005-11-23  Mike Kestner  <mkestner@novell.com>
6142
6143         * ContextMenu.cs: use MenuTracker.
6144         * Control.cs: remove menu handle usage.
6145         * Form.cs: remove menu handle usage.
6146         * Hwnd.cs: remove menu handle usage.
6147         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
6148         motion and clicks to the new Tracker handlers.
6149         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
6150         and handle usage.
6151         * MenuAPI.cs: refactored to combine popup and menubar event handling.
6152         Killed the MENU and MENUITEM data types and associated collections
6153         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
6154         MenuTracker class that exposes the leftovers from the old MenuAPI
6155         static methods. Restructured Capture handling so that only one grab is
6156         done for the entire menu hierarchy instead of handing off grabs to
6157         submenus. Tracker now has an invisible control to Capture when active.
6158         * MenuItem.cs: add sizing accessors, kill Create
6159         and handle usage.
6160         * Theme.cs: remove menu handle and MENU(ITEM) usage.
6161         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
6162         MENU(ITEM). remove menu handle usage, use Menu directly.
6163         * XplatUIDriver.cs: remove menu handle usage.
6164         * XplatUIOSX.cs: remove menu handle usage.
6165         * XplatUIWin32.cs: remove menu handle usage.
6166         * XplatUIX11.cs: remove menu handle usage.
6167
6168 2005-11-22  Jackson Harper  <jackson@ximian.com>
6169
6170         * Hwnd.cs: Don't compute the menu size for
6171         DefaultClientRectangle.
6172         - Reenable menu sizes being computed for GetClienRectangle.
6173         * Form.cs: Remove comment of trechery
6174         
6175 2005-11-22  Jackson Harper  <jackson@ximian.com>
6176
6177         * Hwnd.cs: The adjustments for the menu bar are made when it is
6178         attached to the form.
6179
6180 2005-11-19  Jackson Harper  <jackson@ximian.com>
6181
6182         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
6183         (just like on windows).
6184
6185 2005-11-19  Jackson Harper  <jackson@ximian.com>
6186
6187         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
6188         use real buttons anymore because they are in non client area. The
6189         one TODO here is that I need to somehow invalidate a section of
6190         the non client area.
6191
6192 2005-11-18  Jackson Harper  <jackson@ximian.com>
6193
6194         * Control.cs: Put the enum check back in now that MDI doesnt have
6195         to use this to set border styles.
6196         * Form.cs: Only set mdi child windows borders if the handle has
6197         been created.
6198         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
6199         this directly on to the driver.
6200         - Get the move start position before adjusting for the titlebar
6201         height, this fixes the windows "skipping" when they are first
6202         moved.
6203
6204 2005-11-18  Jackson Harper  <jackson@ximian.com>
6205
6206         * XplatUIX11.cs: Just compute the mdi borders separately as they
6207         don't totally match up with normal form borders.
6208
6209 2005-11-18  Jackson Harper  <jackson@ximian.com>
6210
6211         * Control.cs: Set WS_ styles for borders, so that the driver does
6212         not have to retrieve the control instance to figure out what kind
6213         of borders it should have.
6214         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
6215         driver can know its an mdi child easily.
6216         * XplatUIX11.cs: Get the border styles and whether the window is
6217         MDI from the Styles and ExStyles params instead of having to get a
6218         control. This prevents a chicken and egg problem.       
6219
6220 2005-11-18  Jackson Harper  <jackson@ximian.com>
6221
6222         * MdiClient.cs: Fix typo so scrollbars show up correctly.
6223
6224 2005-11-18  Jackson Harper  <jackson@ximian.com>
6225
6226         * MdiClient.cs: Calculate when to add and remove scrollbars
6227         correctly.
6228         * MdiChildContext.cs: Adjust the y position to take the titlebar
6229         into account.
6230         - No height for FormBorderStyle.None
6231
6232 2005-11-18  Jackson Harper  <jackson@ximian.com>
6233
6234         * Control.cs: Allow non enum values to be used for
6235         InternalBorderStyle.  MDI does this to set a special border style.
6236         - New utility methods for converting points to/from client coords
6237         - Add the newly created control to the Controls collection before
6238         updating its style. This way UpdateStyle can walk the control
6239         heirarchy to find the control if needed.
6240         so I don't need to create a new Point object all the time.
6241         * Form.cs: Let MDI windows handle their border styles.
6242         - Set styles on MDI windows so the correct title style is derived.
6243         * MdiChildContext.cs: Move all the painting and window handling
6244         into the non client area.
6245         - Use correct sizing and put correct buttons on frames based on
6246         the FormBorderStyle.
6247         - Notify the mdi client about scrolling
6248         - Need to handle the buttons ourselves now, because they are all
6249         in non client areas and we can't add controls there.
6250         * MdiClient.cs: Halfway to scrolling, this implementation is
6251         somewhat broken though, we need to check to make sure other
6252         windows aren't causing scrolling before removing the bars. Also
6253         the bars need to be drawn on top, maybe I can switch implicit
6254         controls to be on top.
6255         * Hwnd.cs: caption_height and tool_caption_height are now
6256         properties of an hwnd, this way they can be set by the driver
6257         based on the type of window they are.  In X11 the window manager
6258         handles the decorations so caption_height is zero unless its an
6259         MDI window.
6260         - Add 3 pixel borders for MDI windows (0xFFFF).
6261         - Get rid of some code duplication, have DefaultClientRectanle
6262         just call GetClientRectangle.
6263         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
6264         Hwnd now.
6265         - Set border styles differently for mdi windows.
6266         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
6267         Hwnd now.
6268         
6269 2005-11-15  Mike Kestner  <mkestner@novell.com>
6270
6271         * Menu.cs: when adding an item to the collection, if item is already 
6272         parented, remove it from the parent.
6273
6274 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
6275
6276         * X11DesktopColors.cs: Added KDE support
6277
6278 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
6279
6280         * XplatUIWin32.cs: 
6281           - Clipboard methods now can translate Rtf format
6282           - No longer removes clipboard contents whenever a new format is added
6283             to allow placing multiple formats on the clipboard
6284         * Clipboard.cs: Clipboard now supports getting a IDataObject and
6285           will place all formats contained in it onto the clipboard. Also
6286           now cleans the clipboard before placing a new object onto it
6287         * RichTextBox.cs:
6288           - Implemented set_Rtf
6289           - Implemented set_SelectedRtf
6290           - Created InsertRTFFromStream() method to allow single code base
6291             for all properties and methods that insert RTF into document
6292           - Removed debug output
6293         * TextControl.cs:
6294           - Fixed Delete(int) to fix up line numbers
6295           - Fixed ReplaceSelection to combine start and end line
6296           - Fixed serious DeleteChars bug that would leave the document tree
6297             broken
6298           - Improved DumpTree with several logic checks to detect broken
6299             document trees
6300           - Removed debug lines
6301           - Fixed Caret.WordForward/WordBack moving code, now always also 
6302             updates caret.tag (fixes crash when word-selecting across tag
6303             boundaries via keyboard)
6304           - Added Insert() method for inserting multiline text into documents
6305           - Fixed DeleteChars() calculation errors that would cause a broken
6306             tag chain with multiple tag lines
6307           - DeleteChars() no longer crashes on multi-tag lines if not all tags
6308           - Split() no longer moves caret if split is at caret location
6309           - ReplaceSelection() now updates the cursor and re-displays it
6310           - ReplaceSelection() now uses new Insert() method to avoid code
6311             duplication
6312           - FormatText() can now handle formatting partial lines
6313         * TextBoxBase.cs:
6314           - Append now uses new TextControl.Insert() method (this avoids 
6315             duplicate code)
6316           - Implemented Ctrl-X (Cut) (
6317           - Implemented Ctrl-C (Copy)
6318           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
6319             regeneration when pasting text; roundtripping Copy&Paste within
6320             edit control still fails due to some calculation bugs in GenerateRTF)
6321           - The Delete key will now remove the current selection if it is visible
6322         * TextBox.cs: Removed debug lines
6323         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
6324           driver to be initialized and can't therefore be done via a static ctor)
6325
6326 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
6327
6328         * TextControl.cs: Added backend code for finding char arrays and strings
6329         * TextBoxBase.cs:
6330           - Added mouse wheel scroll support
6331           - Added support for VScroll and HScroll events
6332         * RichTextBox.cs:
6333           - Implemented all seven Find() variants
6334           - Implemented GetCharFromPosition()
6335           - Implemented GetCharIndexFromPosition()
6336           - Implemented GetLineFromIndex()
6337           - Implemented GetPositionFromCharIndex();
6338           - Implemented SaveFile for PlainText and UnicodeText
6339           - Fixed set_Font, now setting a new font applies that font to
6340             the whole document
6341           - Implemented generic Document to RTF converter
6342           - Implemented SaveFile for RichText format (still missing unicode
6343             conversion for non-ansi chars)
6344           - Implemented get_Rtf
6345           - Implemented get_SelectedRtf
6346
6347 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
6348
6349         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
6350           to allow any captures to be released before triggering OnClick. This
6351           way a click handler may capture the mouse without interference.
6352         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
6353           This way we send them even though X may not allow a grab (if the window
6354           isn't visible, for example)
6355
6356 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
6357
6358         * DataGridViewRowEventArgs.cs: DataGridView implementation
6359         * DataGridViewElement.cs: DataGridView implementation
6360         * DataGridViewComboBoxCell.cs: DataGridView implementation
6361         * DataGridViewDataErrorContexts.cs: DataGridView implementation
6362         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
6363         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
6364         * ImageLayout.cs: DataGridView implementation
6365         * DataGridViewComboBoxColumn.cs: DataGridView implementation
6366         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
6367         * DataGridViewSelectionMode.cs: DataGridView implementation
6368         * IDataGridViewEditingControl.cs: DataGridView implementation
6369         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
6370         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
6371         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
6372         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
6373         * DataGridViewColumnSortMode.cs: DataGridView implementation
6374         * DataGridView.cs: DataGridView implementation
6375         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
6376         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
6377         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
6378         * Padding.cs: DataGridView implementation
6379         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
6380         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
6381         * DataGridViewRowEventHandler.cs: DataGridView implementation
6382         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
6383         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
6384         * DataGridViewButtonCell.cs: DataGridView implementation
6385         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
6386         * DataGridViewEditMode.cs: DataGridView implementation
6387         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
6388         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
6389         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
6390         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
6391         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
6392         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
6393         * DataGridViewCellEventHandler.cs: DataGridView implementation
6394         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
6395         * DataGridViewCellStyleConverter.cs: DataGridView implementation
6396         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
6397         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
6398         * DataGridViewColumnEventArgs.cs: DataGridView implementation
6399         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
6400         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
6401         * QuestionEventArgs.cs: DataGridView implementation
6402         * IDataGridViewEditingCell.cs: DataGridView implementation
6403         * DataGridViewTriState.cs: DataGridView implementation
6404         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
6405         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
6406         * DataGridViewColumnCollection.cs: DataGridView implementation
6407         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
6408         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
6409         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
6410         * DataGridViewColumn.cs: DataGridView implementation
6411         * DataGridViewCellBorderStyle.cs: DataGridView implementation
6412         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
6413         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
6414         * DataGridViewRow.cs: DataGridView implementation
6415         * DataGridViewImageCellLayout.cs: DataGridView implementation
6416         * DataGridViewImageCell.cs: DataGridView implementation
6417         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
6418         * DataGridViewCheckBoxCell.cs: DataGridView implementation
6419         * DataGridViewHeaderCell.cs: DataGridView implementation
6420         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
6421         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
6422         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
6423         * DataGridViewTextBoxColumn.cs: DataGridView implementation
6424         * QuestionEventHandler.cs: DataGridView implementation
6425         * DataGridViewCellStyleScopes.cs: DataGridView implementation
6426         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
6427         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
6428         * DataGridViewCell.cs: DataGridView implementation
6429         * DataGridViewCellEventArgs.cs: DataGridView implementation
6430         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
6431         * DataGridViewCellStyle.cs: DataGridView implementation
6432         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
6433         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
6434         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
6435         * TextFormatFlags.cs: DataGridView implementation
6436         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
6437         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
6438         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
6439         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
6440         * DataGridViewButtonColumn.cs: DataGridView implementation
6441         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
6442         * HandledMouseEventArgs.cs: DataGridView implementation
6443         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
6444         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
6445         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
6446         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
6447         * DataGridViewRowCollection.cs: DataGridView implementation
6448         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
6449         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
6450         * DataGridViewHitTestType.cs: DataGridView implementation
6451         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
6452         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
6453         * DataGridViewColumnEventHandler.cs: DataGridView implementation
6454         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
6455         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
6456         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
6457         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
6458         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
6459         * DataGridViewContentAlignment.cs: DataGridView implementation
6460         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
6461         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
6462         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
6463         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
6464         * DataGridViewPaintParts.cs: DataGridView implementation
6465         * DataGridViewCellCollection.cs: DataGridView implementation
6466         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
6467         * DataGridViewImageColumn.cs: DataGridView implementation
6468         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
6469         * DataGridViewElementStates.cs: DataGridView implementation
6470         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
6471         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
6472         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
6473         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
6474         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
6475         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
6476         * DataGridViewRowHeaderCell.cs: DataGridView implementation
6477         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
6478         * DataGridViewTextBoxCell.cs: DataGridView implementation
6479         * DataGridViewBand.cs: DataGridView implementation
6480         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
6481         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
6482         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
6483         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
6484         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
6485         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
6486         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
6487         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
6488         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
6489         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
6490         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
6491
6492 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
6493
6494         * ThemeWin32Classic.cs: 
6495           - Draw the outside focus rectangle around buttons
6496           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
6497             doesn't use end caps for every dash of a line anymore. This
6498             workaround ignores the forecolor.
6499
6500 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
6501
6502         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
6503           endian safe.
6504
6505 2005-11-07  Jackson Harper  <jackson@ximian.com>
6506
6507         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
6508
6509 2005-11-07  Jackson Harper  <jackson@ximian.com>
6510
6511         * ScrollableControl.cs: Calculate the maximum and change vars
6512         (more) correctly so that scrollbars appear as a sensible size.
6513
6514 2005-11-04  Jackson Harper  <jackson@ximian.com>
6515
6516         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
6517         collection.
6518         * TreeView.cs: When the tree is sorted null out the top_node so
6519         that it is recalculated.
6520         - Use dotted lines instead of dashed lines to match MS better.
6521
6522 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
6523
6524         * ListView.cs: 
6525           - Implements key search for items. Useful when browsing files with FileDialog
6526           - When changing view mode or when clear the items reset scrollbar positions
6527
6528 2005-11-04  Jackson Harper  <jackson@ximian.com>
6529
6530         * CurrencyManager.cs: Implement the MetaDataChanged event, the
6531         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
6532         as to what the method may do as there is no real way of creating a
6533         derived CurrencyManager and calling the method. 
6534
6535 2005-11-03  Jackson Harper  <jackson@ximian.com>
6536
6537         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
6538         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
6539         method which seems to just be used internally to refresh the tabs.
6540
6541 2005-11-03  Jackson Harper  <jackson@ximian.com>
6542
6543         * TabControl.cs: Implement the remove method. Fix some broken
6544         comments.
6545
6546 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
6547
6548         * DateTimePicker.cs:
6549           - Added missing DateTimePickerAccessibleObject class
6550           - Added missing events
6551           - Added OnFontChanged method
6552         * Form.cs: Added missing attributes
6553         * TreeView.cs: Added missing attributes
6554
6555 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
6556
6557         * GridItemCollection.cs: Fix signatures
6558
6559 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
6560
6561         * XplatUI.cs: Updated build rev/date
6562         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
6563           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
6564         * Application.cs: Trigger context-specific ExitThread events
6565
6566 2005-11-03  Jackson Harper  <jackson@ximian.com>
6567
6568         * Menu.cs:
6569         * MainMenu.cs:
6570         * GridTableStylesCollection.cs:
6571         * Timer.cs:
6572         * TabPage.cs:
6573         * HelpProvider.cs:
6574         * StatusBar.cs:
6575         * MonthCalendar.cs: Signature fixes
6576
6577 2005-11-03  Jackson Harper  <jackson@ximian.com>
6578
6579         * TreeNodeCollection.cs: Remove should not be virtual.
6580         * TreeView.cs: Implement the last of the missing methods.
6581
6582 2005-11-03  Jackson Harper  <jackson@ximian.com>
6583
6584         * TreeNodeConverter.cs: Implement to get off my class-status back.
6585
6586 2005-11-03  Jackson Harper  <jackson@ximian.com>
6587
6588         * TreeView.cs: Hookup the bits for drag and drop.
6589         * TreeNode.cs: Don't cache the tree_view or index anymore, now
6590         that nodes can be moved from tree to tree easily this just causes
6591         all sorts of problems.
6592         * TreeNodeCollection: Don't need to give treenodes an index and
6593         treeview anymore when they are added, these are computed on the
6594         fly. Also make sure to remove a node before its added.
6595
6596 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
6597
6598         * TextControl.cs:
6599           - Added CaretSelection enum
6600           - Added comparison methods to Marker struct, makes selection code
6601             more readable
6602           - Added SelectionStart and SelectionEnd as 'moveable' location for
6603             the CaretDirection enum and handler
6604           - Added selection_prev variable to track optimized invalidation for
6605             word and line selection
6606           - Added SelectionVisible property (returns true if there is a valid 
6607             selection)
6608           - Switched CaretHasFocus to only display the caret if there is no
6609             visible selection
6610           - Avoiding StringBuilder.ToString to retrieve a single char, instead
6611             using the direct character index; should be much faster
6612           - Added various conditional debug statements
6613           - Fixed invalidation calculation for selection ranges
6614           - Added ExpandSelection() method to support word and line selection
6615           - Switched SetSelectionToCaret to use new Marker compare overloads
6616           - Added central IsWordSeparator() method to determine word 
6617             separators/whitespace and FindWordSeparator() to streamline common
6618             usage of IsWordSeparator()
6619         * TextBoxBase.cs:
6620           - Removed unneeded grabbed variable, it was just mirroring
6621             Control.Capture
6622           - No longer firing OnTextChanged event when Text setter is called,
6623             since the base will fire the event for us
6624           - Added handling of Ctrl-Up/Down selection
6625           - Added handling of Shift-Cursorkey selection
6626           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
6627             words
6628           - Added handling of Shift and Ctrl-Shift-Home/End selection
6629           - Removed some debug output
6630           - Added handling for single/double/tripple-click to place caret/
6631             select word/select line respectively (Fixes bug #76031)
6632           - Added support for drag expansion of word/line selection
6633         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
6634           current selection
6635
6636 2005-11-02  Jackson Harper  <jackson@ximian.com>
6637
6638         * X11Dnd.cs: If the drag is going to and from a MWF window just
6639         copy the data instead of sending it out through the X Selection
6640         mechanism.
6641
6642 2005-11-02  Jackson Harper  <jackson@ximian.com>
6643
6644         * X11Dnd.cs:
6645         * XplatUIX11.cs: When in a drag we don't want motion notify
6646         messages to get passed on to the other controls. This prevents
6647         mouse move messages from showing up in the drag source.
6648
6649 2005-11-02  Jackson Harper  <jackson@ximian.com>
6650
6651         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
6652         the correct button is release to end a drag.
6653         * XplatUIX11.cs: Make the button state internal so the drag system
6654         can access it.  Dragging needs to know about all button releases,
6655         not just left button.
6656
6657 2005-11-02  Miguel de Icaza  <miguel@novell.com>
6658
6659         * Form.cs (Icon): If the icon is null, reset the icon to the
6660         default value. 
6661
6662         * Cursor.cs: When writing the AND-mask bitmap do not include the
6663         number of colors, but hardcode those to two (black and white),
6664         fixes the loading of color cursors (Paint Dot Net).
6665
6666         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
6667         turn off autoscaling.
6668
6669         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
6670
6671 2005-11-02  Jackson Harper  <jackson@ximian.com>
6672
6673         * X11Dnd.cs: Make sure to send a status message if the pointer
6674         enters a control that can not accept a drop, otherwise the cursor
6675         isn't updated correctly. Also tried to compress the lines of code
6676         a bit.
6677
6678 2005-11-02  Jackson Harper  <jackson@ximian.com>
6679
6680         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
6681         set actions correctly.  This isn't perfect as XDND and win32 have
6682         some differences on how you allow actions. I'll clear this up by
6683         adding a path for drag from MWF to MWF windows.
6684         * XplatUIX11.cs: Hook into the dnd system.
6685
6686 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
6687
6688         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
6689         previously shown but they are no longer need it. Very obvious when 
6690         browsing files with FileDialog.
6691
6692 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
6693
6694         * Control.cs: We always need to call OnPaintBackground. We pretty much
6695           ignore AllPaintingInWmPaint and always do the painting there, whether 
6696           it's set or not, since we always ignore the WM_ERASEBKGND message 
6697           (which we don't generate on X11). This fixes #76616.
6698         * Panel.cs: Removed unneeded background painting. This happens properly
6699           in Control.cs already
6700
6701 2005-10-31  Mike Kestner  <mkestner@novell.com>
6702
6703         * Menu.cs: Add items to collection before setting their index.
6704         * MenuItem.cs : add range checking with ArgumentException like MS.
6705         [Fixes #76510]
6706
6707 2005-10-31  Jackson Harper  <jackson@ximian.com>
6708
6709         * ListBox.cs: Invalidate if the area is visible at all not just
6710         contained in the visible rect. Fixes unselection of semi visible
6711         items.
6712
6713 2005-10-31  Jackson Harper  <jackson@ximian.com>
6714
6715         * Control.cs: Consistently name the dnd methods. Make them
6716         internal so we can override them to match some MS behavoir
6717         internally.
6718         * Win32DnD.cs: Use the new consistent names.
6719
6720 2005-10-31  Jackson Harper  <jackson@ximian.com>
6721
6722         * TreeView.cs: Don't draw the selected node when we lose focus.
6723
6724 2005-10-31  Jackson Harper  <jackson@ximian.com>
6725
6726         * X11Dnd.cs: We still need to reset the state even though a full
6727         reset isn't being done, otherwise status's still get sent all over
6728         the place.
6729
6730 2005-10-31  Jackson Harper  <jackson@ximian.com>
6731
6732         * Control.cs: Make the dnd_aware flag internal so the dnd
6733         subsystem can check it. Catch exceptions thrown in dnd handlers to
6734         match MS behavoir.
6735         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
6736         * X11Dnd.cs: Handle null data in the converters. Set the XDND
6737         version when sending a XdndEnter. Use the control/hwnd dnd_aware
6738         flags to reduce the number of dnd enters/status's sent.
6739
6740 2005-10-31  Jackson Harper  <jackson@ximian.com>
6741
6742         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
6743
6744 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
6745
6746         * PictureBox.cs: Fixes 76512
6747
6748 2005-10-28  Jackson Harper  <jackson@ximian.com>
6749
6750         * X11Dnd.cs: Early implementation to support winforms being a drag
6751         source for data on X11. Also restructured the converters so they
6752         can go both ways now.
6753         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
6754         
6755 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
6756
6757         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
6758           clipboard requests
6759
6760 2005-10-27  Jackson Harper  <jackson@ximian.com>
6761
6762         * TreeNode.cs: Implement serialization so my DnD examples will work.
6763
6764 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
6765
6766         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
6767           TreeView.cs: Don't dispose objects that are not owned.
6768           
6769 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
6770
6771         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
6772           should retrieve the current cursor and report that, but XplatUI
6773           doesn't (yet) have an interface for that (and I'm not sure I even
6774           can, on X11)
6775         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
6776           until any message loop processing is done (and the WM_SETCURSOR
6777           replaces the cursor to the proper one)
6778         * XplatUIX11.cs: 
6779           - Fixed override behaviour, we can't set the cursor globally on X11, 
6780             just for our windows.
6781           - Invalidating the System.Drawing X11 display handle when we are
6782             shutting down
6783         * Control.cs: Fix to make csc happy
6784
6785 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
6786
6787         * TextBoxBase.cs: 
6788           - get_Text: Add last line (without trailing newline) to returned
6789             value (Fixes 76212)
6790           - get_TextLength: Count last line in returned length
6791           - ToString: Call Text property instead of duplicating code
6792
6793 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
6794
6795         * ImageList.cs: Dispose ImageAttributes objects.
6796
6797 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
6798
6799         * ImageList.cs: Use attribute constructors with less arguments where
6800           possible.
6801
6802 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
6803
6804         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
6805           Use typeof instead of strings when assembly is referenced. Added
6806           some more comments.
6807
6808 2005-10-21  Jackson Harper  <jackson@ximian.com>
6809
6810         * ListView.cs: Raise a double click event. Also tried to somewhat
6811         fix when the selectedindexchanged event is raised. Its still
6812         broken though.
6813
6814 2005-10-21  Jackson Harper  <jackson@ximian.com>
6815
6816         * TreeView.cs: New method to invalidate the plus minus area of a
6817         node without invalidating the whole node (maybe this can be used
6818         in some more places).
6819         * TreeNodeCollection.cs: When adding to an empty node we need to
6820         invalidate its plus minus area so the little block shows up.
6821         
6822 2005-10-21  Jackson Harper  <jackson@ximian.com>
6823
6824         * TreeView.cs: Make sure that when we invalidate a node the bounds
6825         are big enough to cover the selected box and the focus
6826         rectangle. Use a different colour for the lines connecting nodes
6827         so they show up with all themes.
6828
6829 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
6830
6831         * NativeWindow.cs: Don't call anything that could call into the driver,
6832           we might be on a different thread.
6833
6834 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
6835
6836         * Control.cs(Dispose): Since Dispose might run on a different thread,
6837           make sure that we call methods that could call into the driver via
6838           invoke, to avoid thread issues
6839
6840 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
6841
6842         * XplatUI.cs: Removed finalizer
6843         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
6844           not allowing to be called on the finalizer thread.
6845
6846 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
6847
6848         * ImageList.cs:
6849           - Reverted r51889 and r51891.
6850           - Added ImageListItem class that stores unmodified image items and image
6851             properties required to create list images until handle is created.
6852           - Added AddItem and moved image creation logic to AddItemInternal.
6853           - Added CreateHandle method that creates images based on unmodified items.
6854           - Added DestroyHandle that changes state to store unmodified items.
6855           - Add and AddStrip methods no more create handle.
6856           - ReduceColorDepth has no return value.
6857           - Dispose destroys handle.
6858           - Modified other methods to reflect the above changes.
6859           - Implemented key support.
6860           - Added profile 2.0 members and attributes.
6861           - Added private Reset and ShouldSerialize methods that provide the same
6862             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
6863             them as they are private.
6864           - Added some more comments about implementation details.
6865
6866 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
6867
6868         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
6869
6870 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
6871
6872         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
6873
6874 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
6875
6876         * DataGridDrawingLogic.cs: Fixes column hit calcultation
6877         * DataGridColumnStyle.cs: Remove debug message
6878
6879 2005-10-20  Jackson Harper  <jackson@ximian.com>
6880
6881         * TreeView.cs: We can always get input keys regardless of whether
6882         or not editing is enabled. They are used for navigation.
6883
6884 2005-10-20  Jackson Harper  <jackson@ximian.com>
6885
6886         * TreeNode.cs: Use the viewport rect for determining if a node
6887         needs to be moved for visibility. Don't use Begin/End edit. This
6888         calls a full refresh when its done.
6889         * TreeView.cs: New SetBottom works correctly.  Make the viewport
6890         rect property internal so the treenodes can see it. When clicking
6891         on a node we need to ensure that its visible because it might just
6892         be partly visible when clicked.
6893
6894 2005-10-20  Jackson Harper  <jackson@ximian.com>
6895
6896         * TreeNodeCollection.cs: Remove debug code.
6897
6898 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
6899
6900         * Datagrid.cs: Implements column sorting in Datagrid
6901         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
6902
6903 2005-10-20  Jackson Harper  <jackson@ximian.com>
6904
6905         * TreeNodeCollection.cs: Remove items properly. Update the correct
6906         area after removing them.
6907
6908 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
6909
6910         * Datagrid.cs: Should not call base.OnPaintBackground
6911
6912 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
6913
6914         * XplatUIX11.cs (GetMessage):
6915           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
6916             window instead of client window
6917           - Now properly calculates NC_xBUTTONUP message coordinates
6918           - ScreenToMenu now properly calculates it's coordinates of whole 
6919             window, since menus are in the whole window, not in the client
6920             window
6921           - Added WholeToScreen coordinate translation method
6922
6923 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
6924
6925         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
6926           want to return a message, loop back to the beginning of the function
6927           and grab the next real message to process instead.
6928
6929 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
6930
6931         * Splitter.cs: Properly set limits if no filler control is used
6932
6933 2005-10-19  Jackson Harper  <jackson@ximian.com>
6934
6935         * ColorDialog.cs: Don't show the help button if it is not enabled
6936         instead of disabling it (this is what MS does). Don't create the
6937         panel until the dialog is run, otherwise the vars (such as
6938         ShowHelp) are not set yet.
6939
6940 2005-10-19  Jackson Harper  <jackson@ximian.com>
6941
6942         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
6943         are reduced when adding nodes.
6944         * TreeNode.cs:
6945         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
6946         tree.
6947         
6948 2005-10-19  Jackson Harper  <jackson@ximian.com>
6949
6950         * FolderBrowserDialog.cs: End editing our treeview so the window
6951         actually gets refreshed.
6952
6953 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
6954
6955         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
6956           Obsoleted handling of WM_ERASEBKGND, now always draws our background
6957           inside of WM_PAINT
6958
6959 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
6960
6961         * MenuAPI.cs: Returns after Hidding window
6962         * XplatUIX11.cs: Added TODO found while debugging menu issues
6963
6964 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
6965
6966         * XplatUIX11.cs: Do not re-map the whole window when it's size
6967           becomes non-zero unless it's supposed to be actually visible
6968
6969 2005-10-18  Jackson Harper  <jackson@ximian.com>
6970
6971         * TreeView.cs: We don't need to keep a count anymore.
6972         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
6973         use the Grow method.
6974
6975 2005-10-18  Jackson Harper  <jackson@ximian.com>
6976
6977         * TreeNodeCollection.cs: Insert is not supported on arrays, so
6978         implement it manually here.
6979
6980 2005-10-18  Jackson Harper  <jackson@ximian.com>
6981
6982         * ImageList.cs: Dont kill the list when the colour depth is
6983         changed, just change the colour depth of all the images.
6984         - Same goes for setting the image size. Just resize them all
6985         instead of killing the list softly.
6986
6987 2005-10-18  Jackson Harper  <jackson@ximian.com>
6988
6989         * Control.cs: Don't invalidate empty rectangles.
6990
6991 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
6992
6993         * ListViewItem.cs:
6994           - Adds checked item to the Checked/Item lists (where empty before)
6995           - Do not add items to the Selected lists if they are already present
6996         * ListView.cs:
6997           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
6998           - When deleting items make sure that we delete them for the Selected
6999           and Checked list also.
7000
7001 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
7002
7003         * Label.cs: Dispose objects no longer used
7004         * ThemeWin32Classic.cs: Dispose objects no longer used
7005
7006 2005-10-18  Jackson Harper  <jackson@ximian.com>
7007
7008         * TabControl.cs: Don't refresh the whole control when the tabs are
7009         scrolled, we just need to refresh the tab area.
7010
7011 2005-10-17  Jackson Harper  <jackson@ximian.com>
7012
7013         * XplatUIX11.cs: Compress code a little bit. Only calculate the
7014         after handle when we need it.
7015
7016 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
7017
7018         * Control.cs: When the parent size changes, recalculate anchor 
7019           positions. Partial fix for #76462
7020
7021 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
7022
7023         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
7024           drawn. Fixes #76462
7025
7026 2005-10-17  Jackson Harper  <jackson@ximian.com>
7027
7028         * MonthCalendar.cs: Don't create the numeric up down until our
7029         handle is created. Otherwise our handle is created in the
7030         constructor and we don't know if we are a WS_CHILD or WS_POPUP
7031         yet.
7032
7033 2005-10-17  Jackson Harper  <jackson@ximian.com>
7034
7035         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
7036         correctly.
7037
7038 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
7039         * TreeNode.cs : small logical fix (was using local var instead of field)
7040         
7041 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
7042
7043         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
7044
7045 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
7046
7047         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
7048
7049 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
7050
7051         * Control.cs: 
7052           - Re-implemented anchoring code. My first version was really broken.
7053             This fixes bug #76033. Unlike the previous implementation we will
7054             no longer have round errors since all numbers are calculated from
7055             scratch every time. Removed various anchor-related obsolete vars.
7056           - InitLayout no longer causes layout event firing and layout to be 
7057             performed
7058
7059 2005-10-16  Jackson Harper  <jackson@ximian.com>
7060
7061         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
7062         which was broken).
7063
7064 2005-10-16  Jackson Harper  <jackson@ximian.com>
7065
7066         * TabControl.cs: Remove debug code.
7067
7068 2005-10-16  Jackson Harper  <jackson@ximian.com>
7069
7070         * XEventQueue.cs: Increase the default queue size (very simple
7071         apps needed to grow the queue).
7072         * Hwnd.cs: No finalizer so we don't need to suppress
7073         finalization. Compute the invalid area manually so a new rectangle
7074         does not newto be created.
7075         * ScrollableControl.cs: Don't set any params (otherwise visibility
7076         isn't set correctly).
7077         * MdiChildContext.cs: New constructor takes the mdi parent so it
7078         doesn't have to be computed and avoids a crash on windows. Draw
7079         the window icon properly, and allow the text to be seen.
7080         * Form.cs: Use new MdiChildContext constructor. Make sure the
7081         child context isn't null in wndproc.
7082         * TabControl.cs: Don't set focus, this is muddling keyboard
7083         behavoir. Expand the tab rows when a window size increase will
7084         allow extra tabs to be seen. Don't allow tabs smaller than the
7085         width of a window to be scrolled out of view.
7086         * TreeNode.cs:
7087         * TreeView.cs: Use measure string to calculate a nodes width, the
7088         width is cached and only updated when the text or the font is
7089         changed. Don't check for expand/collapse clicks on the first level
7090         nodes if root lines are disabled.
7091         
7092 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
7093
7094         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
7095
7096 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
7097
7098         * DataGridBoolColumn.cs: fixes warning
7099
7100 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
7101
7102         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
7103         to match more to match more precisely the MS Net behavior
7104
7105 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
7106
7107         * Hwnd.cs: Added field to track if window is mapped
7108         * XplatUIX11.cs: 
7109           - Unmap windows if they become 0-size, re-map when 
7110             they are >0 again; fixes #76035
7111           - Re-set our error handler after initializing X11Desktop
7112             to override any error handlers Gtk or whatever was called
7113             may have set.
7114
7115 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
7116
7117         * CheckedListBox.cs: Removed unused vars
7118         * ListView.cs: Fixed signatures
7119         * RichTextBox.cs: Removed unused vars
7120         * TextBoxBase.cs: Removed unused vars
7121         * XplatUIWin32.cs: Removed unused vars
7122         * XplatUIX11.cs: Removed unused vars
7123         * XplatUI.cs: Updated version and date to latest published
7124
7125 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
7126
7127         * Cursor.cs: Added private .ctor to work around a bug in
7128           resourceset (Thanks to Geoff Norton for the help on this)
7129         * SplitterEventArgs.cs: Made fields accessible so we don't
7130           waste boatloads of objects and can reuse the same one
7131           in Splitter
7132         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
7133           any captions and borders when generating screen coordinates
7134         * Splitter.cs: Reimplemented control, now fully complete, uses
7135           rubberband drawing, supports and obeys all properties, has
7136           proper cursors
7137
7138 2005-10-13  Miguel de Icaza  <miguel@novell.com>
7139
7140         * Form.cs (Form): Setup default values for autoscale and
7141         autoscale_base_size;  Make these instance variables, not static
7142         variables. 
7143
7144         (OnLoad): on the first load, adjust the size of the form.
7145
7146 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
7147
7148         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
7149           width argument to DrawReversibleRectangle()
7150         * XplatUIWin32.cs, XplatUIX11.cs: 
7151           - Implemented width for DrawReversibleRectangle()
7152           - Added logic to DrawReversibleRectangle that recognizes a zero
7153             width or height and only draws a line in that situation
7154         
7155 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
7156
7157         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
7158         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
7159         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
7160           method (it uses our FosterParent window to get a graphics context)
7161
7162 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
7163
7164         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
7165           and SetWindowBackground methods
7166         * Control.cs:
7167           - Setting proper ControlStyles
7168           - We no longer call XplatUI.SetWindowBackground and XplatUI.
7169             EraseWindowBackground, instead we draw the window background
7170             ourselves in PaintControlBackground. This behaviour is
7171             required to match MS, where, when OnPaintBackground is not
7172             called, the background is not drawn.
7173           - Removed unneeded Refresh() in set_Text
7174         * Hwnd.cs: Dropped the ErasePending support. No longer needed
7175         * XplatUIX11.cs:
7176           - Created DeriveStyles method to translate from CreateParams to
7177             FormBorderStyle and TitleStyle, also handles BorderStyle (which
7178             matches FormBorderStyle enum values)
7179           - Consolidated SetHwndStyles and CalculateWindowRect border/title
7180             style calculations into single DeriveStyles method
7181           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
7182             from redrawing the whole window on any resize or expose.
7183           - Fixed CreateWindow usage of SetWindowValuemask. Before not
7184             all styles were applied to our whole/client window appropriately
7185           - Removed EraseWindowBackground() and SetWindowBackground() methods
7186           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
7187             no longer clear/redraw the background through X
7188           - Removed handling of erase_pending bit, we have no use for it (or
7189             so it seems)
7190         * XplatUIOSX.cs:
7191           - Removed generation and handling of WM_ERASEBKGND message
7192           - Removed EraseWindowBackground() and SetWindowBackground() methods
7193           - Removed handling of hwnd.ErasePending flag
7194         * XplatUIWin32.cs:
7195           - Removed EraseWindowBackground() and SetWindowBackground() methods
7196           - We no longer call EraseWindowBackground on PaintEventStart, we 
7197             ignore the fErase flag, erasing is handled in Control in the
7198             background handler
7199         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
7200           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
7201           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
7202           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
7203           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
7204           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
7205           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
7206
7207 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
7208
7209         * PropertyGrids.cs: Get sub properties
7210         * PropertyGridView.cs: Fix drawing code
7211
7212 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
7213
7214         * ListBox.cs: Fixes 76383
7215
7216 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
7217
7218         * DataGridTextBoxColumn.cs: Sets location and size before attachment
7219         * ThemeWin32Classic.cs: Fixes border drawing and calculations
7220         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
7221
7222
7223 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
7224
7225         * ComboBox.cs: Fixes border drawing
7226
7227 2005-10-10  Miguel de Icaza  <miguel@novell.com>
7228
7229         * MimeIcon.cs: Ignore errors if the file can not be read.
7230
7231 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
7232
7233         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
7234          - Fixed border calculations
7235          - Fixed horizontal scrolling in single column listboxes
7236          - Fixed drawing issues
7237
7238 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
7239
7240         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
7241           FormBorderStyle enum
7242         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
7243           code to determine FormBorderStyles from CreateParams
7244         * Form.cs:
7245           - Fixed bug where we'd set the wrong window styles if we were
7246             not creating an MDI window
7247           - Added call to XplatUI.SetBorderStyle when form borders are set
7248         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
7249         * Hwnd.cs:
7250           - Removed obsolete edge style
7251           - Switched from BorderStyle to FormBorderStyle
7252         
7253 2005-10-10  Jackson Harper  <jackson@ximian.com>
7254
7255         * Form.cs: Use the property to get the window handle instead of
7256         accessing it directly. Prevents a null reference exception.
7257
7258 2005-10-10  Jackson Harper  <jackson@ximian.com>
7259
7260         * TreeView.cs: Don't adjust the rect given to DrawString now that
7261         our libgdiplus draws correctly.
7262
7263 2005-10-08  Jackson Harper  <jackson@ximian.com>
7264
7265         * TreeView.cs: Don't try to find the clicked on node if there are
7266         no nodes in the tree.
7267
7268 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
7269
7270         * RichTextBox.cs:
7271
7272           restore
7273
7274 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
7275
7276         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
7277           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
7278           ErrorProvider.cs:
7279           Use ResPool for brushes and dispose System.Drawing objects that
7280           are not used anymore.
7281
7282 2005-10-07  Jackson Harper  <jackson@ximian.com>
7283
7284         * MdiChildContext.cs: Use the new borders instead of drawing them
7285         ourselves.
7286
7287 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
7288
7289         * Calling UpdateBounds after changing the window's BorderStyle 
7290         since the style can change the ClientSize
7291
7292 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
7293
7294         * Control.cs: Made PaintControlBackground virtual
7295         * Panel.cs: Overriding PaintControlBackground instead of using paint
7296           event; paint event method was interfering with 'real' users of the
7297           event.
7298
7299 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
7300
7301         * ThemeWin32Classic.cs: remove border drawing since it is handled
7302         by the base control class now and was causing double border drawing.
7303
7304 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
7305
7306         * Panel.cs: Redraw our background on paint. Not a pretty solution,
7307           but it does seem to match MS behaviour. This fixes bug #75324
7308
7309 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
7310
7311         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
7312           somewhat hackish looking
7313
7314 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
7315
7316         * TextBoxBase.cs:
7317           - We now accept Enter even if AcceptEnter is false, if the containing
7318             form does not have an AcceptButton configured (fixes bug #76355)
7319           - Calculations are now fixed to no longer use Width/Height, but
7320             ClientSize.Width/Height, since we now support borders (this was
7321             a result of fixing borders and therefore bug #76166)
7322           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
7323             true (fixes bug #76354)
7324         
7325 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
7326
7327         * Control.cs: 
7328           - Defaulting BorderStyle and setting it in XplatUI when our window 
7329             is created
7330           - Added enum check to InternalBorderStyle setter
7331         * XplatUIX11.cs: 
7332           - Added drawing of window borders
7333           - Now properly calculates WM decorations offset for toplevel 
7334             windows (fixes bug #74763)
7335         * XplatUIWin32.cs: 
7336           - Implemented BorderStyles for windows (we're letting win32 draw 
7337             the border for us)
7338           - Fixed the signature for SetWindowLong
7339         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
7340           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
7341           setting borders
7342         * UpDownBase.cs: Remove drawing of borders, this is handled by
7343           the driver, outside the client area
7344         * ListView.cs: Removed bogus border calculations. The control should
7345           be oblivious to borders, since those are not part of the client
7346           area. 
7347         * X11DesktopColors.cs: Commented out (currently) unneeded variables
7348         * ThemeWin32Classic.cs: Removed border calculations from ListView 
7349           drawing code
7350
7351 2005-10-06  Jackson Harper  <jackson@ximian.com>
7352
7353         * MdiChildContext.cs: Clear out the old virtual position remove
7354         all the unneeded calls to CreateGraphics.
7355
7356 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
7357
7358         * TextControl.cs: Use proper color for highlighted text; fixes #76350
7359
7360 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
7361
7362         * Form.cs: 
7363           - Added loading and setting of our new default icon
7364           - Only set icon if window is already created
7365
7366 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
7367
7368         * Label.cs:
7369           - Do not explicitly set the foreground and background colors, to
7370             allow inheriting from parents (fixes #76302)
7371           - Use Control's InternalBorderStyle property to deal with borders
7372
7373 2005-10-06  Jackson Harper  <jackson@ximian.com>
7374
7375         * MdiChildContext.cs: Use the new xplatui function to draw a
7376         reversible rect.
7377
7378 2005-10-06  Jackson Harper  <jackson@ximian.com>
7379
7380         * Form.cs: Add the parent before creating the child context cause
7381         we need the parent when setting up the child.
7382
7383 2005-10-06  Jackson Harper  <jackson@ximian.com>
7384
7385         * FolderBrowserDialog.cs: redo the tree population code so a
7386         second thread isn't used. Should be a lot faster and more stable
7387         now.
7388
7389 2005-10-05  Jackson Harper  <jackson@ximian.com>
7390
7391         * TreeView.cs: There are no expand/collapse boxes if the node has
7392         no children.
7393
7394 2005-10-05  Jackson Harper  <jackson@ximian.com>
7395
7396         * X11DesktopColors.cs: Get menu colours for the gtk theme.
7397
7398 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
7399
7400         * FileDialog.cs: Fix InitialDirectory
7401
7402 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
7403
7404         * ComboBox.cs:
7405                 - Fixes changing between styles
7406                 - Fixes simple mode
7407                 - Fixes last item crashing when navigating with keyboard
7408
7409 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
7410
7411         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
7412
7413 2005-10-05  Jackson Harper  <jackson@ximian.com>
7414
7415         * TreeView.cs: If updating the root node do a full refresh.
7416         * TreeNode.cs: The root node should be expanded by default. Also
7417         added a utility prop to tell if we are the root node.
7418         * TreeNodeCollection.cs: Only refresh if the node we are being
7419         added to is expanded. Also added a comment on a potential
7420         optimization.
7421         
7422 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
7423
7424         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
7425           in dispose method. Fixes #76330
7426
7427 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
7428
7429         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
7430
7431                 - Implements vertical and horizontal scrolling using XplatUI
7432                 - Fixes keyboard navagation
7433                 - Fixes EnsureVisible
7434                 - Drawing fixes
7435                 - Handles and draws focus properly
7436
7437
7438 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
7439
7440         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
7441           Create handle. NET_2_0: Destroy handle when value is null.
7442
7443 2005-10-03  Jackson Harper  <jackson@ximian.com>
7444
7445         * ScrollBar.cs: My last scrollbar patch was broken. This is a
7446         revert and a new patch to prevent the thumb from refreshing so
7447         much.
7448
7449 2005-10-02  Jackson Harper  <jackson@ximian.com>
7450
7451         * ScrollBar.cs: Don't update position if it hasn't actually
7452         changed. This occurs when you hold down the increment/decrement
7453         buttons and the thumb gets to the max/min.
7454
7455 2005-10-01  Jackson Harper  <jackson@ximian.com>
7456
7457         * Form.cs:
7458         * MdiChildContext.cs:
7459         * MdiClient.cs: Implement ActiveMdiChild in Form.
7460
7461 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
7462
7463         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
7464
7465 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
7466
7467         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
7468           be found
7469
7470 2005-09-30  Jackson Harper  <jackson@ximian.com>
7471
7472         * ListBox.cs: Don't do a full refresh unless some data has
7473         actually changed.
7474
7475 2005-09-30  Jackson Harper  <jackson@ximian.com>
7476
7477         * TreeView.cs: Make sure that the checkboxes size is factored in
7478         even when not visible.
7479
7480 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
7481
7482         * FileDialog.cs: Fix Jordi's build break
7483
7484 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
7485
7486         * FileDialog.cs: 
7487                 - Use standard the Windows colours for the combobox as espected
7488                 - Dispose objects that use resouces when no longer need them
7489
7490 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
7491
7492         * X11DesktopColors.cs: Initial incomplete implementation
7493         * XplatUIX11.cs: Added call to initialize X11DesktopColors
7494
7495 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
7496
7497         * Theme.cs: 
7498           - Switched Theme color names to match the names defined in 
7499             System.Drawing.KnownColors. Life's hard enough, no need to make 
7500             it harder.
7501           - Added setters to all theme color properties so themes can set
7502             their color schemes. The setters also propagate the color changes
7503             to System.Drawing.KnownColors via reflection
7504         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
7505           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
7506           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
7507           use the new, more logical theme color names
7508         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
7509           post-NT colors
7510         * ThemeWin32Classic.cs:
7511           - Removed code to set the old classic Windows colors. Instead it
7512             now relies on the colors returned by System.Drawing.KnownColors
7513             which will be either modern static colors (Unix) or colors
7514             read from the user's configuration (Win32)
7515           - Updated to use the new, more logical theme color names
7516           - Switched DataGrid drawing code to use only Theme colors instead of
7517             a mix of System.Drawing.KnownColors and Theme colors
7518           - DrawFrameControl(): Removed code that fills the button area, the
7519             fill would overwrite any previous fill done by a control. This
7520             fixes bug #75338 
7521           - Added DrawReversibleRectangle() stub
7522         * ScrollableControl.cs: Set visible state to false when scrollbars
7523           are removed (pdn fix)
7524         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
7525           DrawReversibleRectangle() method to allow drawing primitive 
7526           'rubber bands'
7527         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
7528
7529 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
7530
7531         * ImageList.cs: Add(Icon): Create handle.
7532
7533 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
7534
7535         * ListView.cs:
7536         * ThemeWin32Classic.cs:
7537                 - Fixes detail mode
7538                 - Sets clippings
7539                 - Issues with drawing
7540
7541 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
7542
7543         * ImageList.cs: Moved RecreateHandle back to ImageList as event
7544           source has to be the ImageList.
7545
7546 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
7547
7548         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
7549
7550 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
7551
7552         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
7553
7554 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
7555
7556         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
7557
7558 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
7559         * GridItem.cs: Fixed TODOs
7560         * GridItemCollection.cs: Added ICollection interface
7561
7562 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
7563
7564         * ImageList.cs: Resize icons when needed.
7565
7566 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
7567
7568         * ListViewItem.cs
7569                 - Fixes GetBounds and returns on screen rects
7570         * ListView.cs:
7571                 - Fixes vertical and horzintal scrolling of items
7572         * ThemeWin32Classic.cs:
7573                 - Fixes drawing
7574                 
7575 2005-09-29  Raja R Harinath  <harinath@gmail.com>
7576
7577         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
7578
7579 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
7580
7581         * ImageList.cs: Added comments about handle creation. Moved Handle,
7582           HandleCreated and OnRecreateHandle implementations to ImageCollection.
7583           Handle is created in Add methods.
7584
7585 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
7586          
7587         * DataGridDrawingLogic.cs: 
7588                 - Takes rows into account on Colum calculations
7589                 - Returns the column when clickig
7590         * DataGrid.cs:
7591                 - Fixes default HitTestInfo values
7592                 - Fixes HitTestInfo.ToString
7593                 - Fixes ResetBackColor          
7594         
7595 2005-09-28  Jackson Harper  <jackson@ximian.com>
7596
7597         * MdiChildContext.cs: Obey rules for fixed sized windows (no
7598         sizing or cursor changes). Also added some temp code to draw the
7599         titlebars text (Makes dev a little easier).
7600
7601 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
7602
7603         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
7604
7605 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
7606          
7607         * ListBox.cs: Fixes bug 76253
7608
7609 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
7610
7611         * ImageList.cs: Added comments about the current implementation. Added
7612           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
7613           Format32bppArgb to preserve transparency and can use Graphics.FromImage
7614           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
7615           with Bitmap.LockBits for better performance. Revised the whole file to
7616           match MS.NET behaviour and provide better performance. Non-public
7617           interface members are calling public members even when they throw
7618           NotSupportedException for better maintainability. Moved ColorDepth,
7619           ImageSize, ImageStream and TransparentColor implementations to
7620           ImageCollection for better performance as these properties are not used
7621           by ImageList.
7622         * ImageListStreamer.cs: Added a new internal constructor that takes an
7623           ImageList.ImageCollection and serializes Images based on
7624           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
7625           match ImageList property name.
7626
7627 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
7628
7629         * ListBox.cs: Fixes IndexFromPoint for last item
7630
7631 2005-09-27  Jackson Harper  <jackson@ximian.com>
7632
7633         * Form.cs: Set the position of new mdi children correctly.
7634
7635 2005-09-27  Jackson Harper  <jackson@ximian.com>
7636
7637         * MdiClient.cs: New mdi children need to be added to the back of
7638         the controls collection so the zorder is set correctly. Also add a
7639         count of all the child windows that have been created.
7640
7641 2005-09-27  Jackson Harper  <jackson@ximian.com>
7642
7643         * Form.cs (CreateParams): Setup MDI forms correctly.
7644
7645 2005-09-27  Jackson Harper  <jackson@ximian.com>
7646
7647         * MdiChildContext.cs:
7648         * MonthCalendar.cs:
7649         * UpDownBase.cs:
7650         * ListBox.cs:
7651         * ListView.cs:
7652         * TextBoxBase.cs:
7653         * TreeView.cs:
7654         * ScrollableControl.cs:
7655         * ComboBox.cs: Add implicit controls using the new implict control
7656         functionality in ControlCollection. Also try to block multiple
7657         control add in a suspend/resume layout to save some cycles.
7658         
7659 2005-09-27  Jackson Harper  <jackson@ximian.com>
7660
7661         * Control.cs: Add functionality to the controls collection to add
7662         'implicit controls' these are controls that are created by the
7663         containing control but should not be exposed to the user. Such as
7664         scrollbars in the treeview.
7665         * Form.cs: The list var of the ControlsCollection is no longer
7666         available because of the potential of implicit controls getting
7667         ignored by someone accessing the list directly.
7668
7669 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
7670
7671         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
7672           loose it's parent. (Fixed bug introduced in r49103 when we added
7673           setting the child parent to null on Remove)
7674
7675 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
7676
7677         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
7678         * Splitter.cs: Added missing attributes for BorderStyle property.
7679         * TextBoxBase.cs: Marked Calculate* methods internal.
7680         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
7681         MS.NET.
7682
7683 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
7684          
7685         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
7686
7687 2005-09-25  Jackson Harper  <jackson@ximian.com>
7688
7689         * TreeView.cs: Update the node bounds correctly regardless of
7690         whether the node is visible.
7691
7692 2005-09-25  Jackson Harper  <jackson@ximian.com>
7693
7694         * ImageList.cs: Don't dispose the image after it is added to the
7695         image list. Only reformat images that need to be resized.
7696
7697 2005-09-25  Jackson Harper  <jackson@ximian.com>
7698
7699         * ImageList.cs: Don't set the format when changing the image.
7700
7701 2005-09-25  Jackson Harper  <jackson@ximian.com>
7702
7703         * TreeView.cs: We can't just assume the node has a font. Use the
7704         treeviews font if no node font is available.
7705
7706 2005-09-25  Jackson Harper  <jackson@ximian.com>
7707
7708         * TreeView.cs: Allow the scrollbars to be reset with negative
7709         values.
7710         - Don't add scrollbars to negative sized windows.
7711
7712 2005-09-23  Jackson Harper  <jackson@ximian.com>
7713
7714         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
7715         old Mono.Posix. Also remove some stray code that shouldn't have
7716         been committed.
7717
7718 2005-09-23  Jackson Harper  <jackson@ximian.com>
7719
7720         * TreeView.cs: Attempt at proper sizing of the horizontal
7721         scrollbar. Also don't resize the scrollbars unless they are
7722         visible.
7723
7724 2005-09-23  Jackson Harper  <jackson@ximian.com>
7725
7726         * TreeView.cs: We don't need to expand the invalid area when the
7727         selection changes, as this is all drawn in the node's bounding
7728         box. The area needs to be expanded (previous typo was contracting
7729         it) when the focus rect moves.
7730
7731 2005-09-23  Jackson Harper  <jackson@ximian.com>
7732
7733         * TreeView.cs: Display the selection box under the correct
7734         circumstances. We were rendering white text with no selection box
7735         before.
7736
7737 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
7738
7739         * TextControl.cs(Split): Now updates selection start/end if it points 
7740           into a line that's being split. Fixes a FIXME and bug #75258
7741
7742 2005-09-23  Jackson Harper  <jackson@ximian.com>
7743
7744         * Binding.cs:
7745         * ListControl.cs: Don't use the path when retrieving binding
7746         managers from the binding context. My bat sense tells me that the
7747         path is only used on insertion.
7748
7749 2005-09-22  Jackson Harper  <jackson@ximian.com>
7750
7751         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
7752
7753 2005-09-22  Jackson Harper  <jackson@ximian.com>
7754
7755         * Splitter.cs: There are special cursors used for splitting.
7756         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
7757
7758 2005-09-22  Jackson Harper  <jackson@ximian.com>
7759
7760         * Splitter.cs: Change the cursor appropriately when the splitter
7761         is moused over, so the user actually knows there is a splitter
7762         there.
7763
7764 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
7765
7766        * Label.cs : Fix ToString method to give same output as MS.NET
7767
7768 2005-09-22  Jackson Harper  <jackson@ximian.com>
7769
7770         * TreeView.cs: Create the scrollbars when the handle is created
7771         and add them right away, just make them invisble. Also account for
7772         the window being shrunk vertically to the point that the vert
7773         scrollbar needs to be added.
7774         - Remove some 0.5 adjustments to get around anti aliasing issues.
7775         
7776 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
7777          
7778         * MainMenu.cs: Fixes default value
7779         * MenuItem.cs: Fixes default value
7780
7781 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
7782
7783         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
7784
7785 2005-09-21  Jackson Harper  <jackson@ximian.com>
7786
7787         * Control.cs: Don't try to set the border style on the window if
7788         it hasn't been created. When the window is created the border
7789         style will be used.
7790
7791 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
7792
7793         * Control.cs (Update): Don't call XplatUI if we don't have a
7794           window handle yet
7795
7796 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
7797
7798         * ContainerControl.cs: Instead of throwing an exception, print
7799           a one-time warning about Validate not being implemented
7800         * XplatUIWin32.cs: Removed debug output
7801
7802 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
7803
7804         * Control.cs: Only set XplatUI background if we expect the windowing
7805           system to handle the background. This stops controls that draw their
7806           own background from flickering
7807
7808         * XplatUIX11.cs: Support custom visuals and colormaps for window 
7809           creation. This allows, amongst other things, using MWF X11 windows 
7810           with OpenGL.
7811
7812 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
7813
7814         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
7815           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
7816           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
7817           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
7818           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
7819           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
7820           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
7821           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
7822           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
7823           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
7824           GridColumnStylesCollection.cs, 
7825           IDataGridColumnStyleEditingNotificationService.cs,
7826           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
7827           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
7828           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
7829           TreeNodeCollection.cs, AmbientProperties.cs, 
7830           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
7831           DataObject.cs, ErrorProvider.cs, Splitter.cs,
7832           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
7833           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
7834           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
7835           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
7836           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
7837           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
7838           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
7839           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
7840           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
7841           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
7842           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
7843           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
7844           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
7845           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
7846           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
7847           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
7848           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
7849           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
7850           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
7851           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
7852           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
7853           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
7854           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
7855           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
7856           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
7857           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
7858           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
7859           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
7860           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
7861           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
7862           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
7863           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
7864           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
7865           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
7866           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
7867
7868 2005-09-21  Jackson Harper  <jackson@ximian.com>
7869
7870         * TreeNode.cs: Call Before/After Expand not Collapse when
7871         expanding.
7872
7873 2005-09-20  Jackson Harper  <jackson@ximian.com>
7874         
7875         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
7876
7877 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
7878          
7879         * ListViewItem.cs:
7880                 - Fixes bug 76120
7881                 - Fixes proper storing of subitems
7882                 - Fixes not updated items
7883
7884 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
7885
7886         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
7887           things if our window handle isn't created yet. Also disabled 
7888           debug for TextBoxBase
7889
7890 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
7891
7892         * MenuAPI.cs: Remove filtering of events to allow menu usage
7893
7894 2005-09-20  Miguel de Icaza  <miguel@novell.com>
7895
7896         * Cursor.cs: Allow null to be passed to Cursor.Current.
7897
7898 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
7899
7900         * ThemeWin32Classic.cs:
7901           - Change some private methods/fields to protected virtual so that 
7902             they can be accessed and overriden in derived classes
7903           - First refactoring of some methods. Derived themes now don't 
7904             need to duplicate the complete code from ThemeWin32Classic
7905         * ThemeNice.cs:
7906           - Added nice StatusBar
7907           - Derive from ThemeWin32Classic and not Theme
7908           - Removed duplicate ThemeWin32Classic code
7909
7910 2005-09-20  Miguel de Icaza  <miguel@novell.com>
7911
7912         * Control.cs (ControlCollection.Add): If the value null is passed
7913         the control is ignored. 
7914
7915         Optimize this loop.
7916
7917 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
7918
7919         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
7920           PostQuitMessage state.
7921         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
7922
7923 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
7924
7925         * Application.cs: Our constructor will never get called, move 
7926           initialization to fields; fixes bug #75933
7927
7928 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
7929
7930         * FileDialog.cs :
7931                 - Allow files to be selected properly using file name
7932                 combo box.
7933                 - Add ability to change diretory (absolute / relative)
7934                 using file name combo box.
7935
7936 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
7937          
7938         * ListBox.cs: 
7939                 - Fixes Multicolumn listboxes item wrong calculations
7940                 - Allows to click when only one item is in the listbox
7941                 - Fixes crash when no items using keyboard navigation
7942
7943 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
7944
7945         * ComboBox.cs: Reverted almost everything from the latest patch which
7946           broke ComboBox
7947
7948 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
7949         
7950         * ToolTip.cs:
7951                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
7952         * ComboBox.cs:
7953                 - When DropDownStyle is Simple, it does not show scrollbar 
7954                 to the last item of the list.
7955                 - When DropDownStyle is Simple, it crashed when the list was 
7956                 scrolled down with the down cursor key.
7957                 - Fixed a bug that when DropDownStyle is DropDownList, the 
7958                 selected item was not shown.
7959                 - The position of the selected item was not preserved when 
7960                 the next dropdown happened.
7961         * ThemeWin32Classic.cs:
7962                 - Items were wrapped at the right end.
7963         * CheckedListBox.cs:
7964                 - Fixed Add method
7965         * ListBox.cs:
7966                 - Items should be fully shown.
7967                 - When resizing and vertical scrollbar disappeared, the item 
7968                 of index 0 should be on the top of the list.
7969                 - GetItemRectangle should consider the size of ver. scrollbar
7970         * StatusBar.cs:
7971                 - SizingGrip area should not be allocated when it is not 
7972                 displayed.
7973                 - Now it reflects MinWidth of the containing panel and 
7974                 fixed a crash that happens when its width becomes so small.
7975
7976 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
7977
7978         * CheckedListBox.cs: Fixes bug 76028
7979         * ListBox.cs: Fixes bug 76028
7980
7981 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
7982
7983         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
7984         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
7985
7986 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
7987
7988         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
7989
7990 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
7991
7992         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
7993
7994 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
7995
7996         * IRootGridEntry.cs: Added
7997         * PropertyGridCommands.cs: Added
7998         * PropertiesTab.cs: Added missing methods and property
7999         * PropertyGridView.cs: Made class internal
8000         * PropertyGridTextBox.cs: Made class internal
8001
8002 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
8003
8004         * MimeIcon.cs: Try to check some other environment variables
8005           if "DESKTOP_SESSION" returns "default"
8006
8007 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
8008
8009         * ThemeNice.cs: Corrected background colors (e.g. menus)
8010         * ColorDialog.cs: Use correct background colors for controls
8011
8012 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
8013
8014         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
8015
8016 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
8017
8018         * RichTextBox.cs: Added initial implementation
8019         * lang.cs: Removed. Was accidentally checked in long time ago
8020         * TODO: Removed. Contents were obsolete
8021
8022 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
8023                                                                                 
8024         * PropertiesTab.cs : Added
8025
8026 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
8027                                                                                 
8028         * PropertyGrid.cs : Update
8029         * PropertyGridView.cs : Update
8030         * System.Windows.Forms.resx : Added images and strings
8031
8032 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
8033
8034         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
8035  
8036 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
8037
8038         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
8039           a busy loop right after the Ungrab the X11 display is otherwise 
8040           blocked
8041
8042 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
8043
8044         * ThemeWin32Classic.cs: Optimise the use of clipping
8045
8046 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
8047
8048         * DataGrid.cs: fixes recursion bug
8049
8050 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
8051
8052         * ThemeNice.cs: 
8053           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
8054           - Cleanup
8055
8056 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
8057
8058         * ThemeNice.cs: Draw nice ProgressBars
8059
8060 2005-09-01  Miguel de Icaza  <miguel@novell.com>
8061
8062         * VScrollBar.cs: Another buglet found by Aaron's tool. 
8063
8064         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
8065         bug finder.
8066
8067 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
8068
8069         * ThemeNice.cs:
8070           - Added nicer menu drawing
8071           - Updated DrawTab
8072           - some refactoring
8073
8074 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
8075
8076         * CreateParams.cs (ToString): Made output match MS
8077         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
8078             handle is already created (to avoid forcing window creation)
8079         * XplatUIX11.cs: Set window text to caption after creating window,
8080           in case Text was set before window was created
8081         * Form.cs: Use this.Text instead of a static string as caption
8082
8083 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
8084
8085         * NotifyIcon.cs: Don't set the window to visible; this screws
8086           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
8087           OnPaint without a bitmap)
8088         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
8089           happen very often anyway; we could add the check to the WM_PAINT 
8090           event generation code
8091
8092 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
8093
8094         * NotifyIcon.cs: Fill the icon area with a background color, to 
8095           avoid 'residue' when transparent icons are drawn
8096         * XplatUIX11.cs:
8097           - Handle whole_window == client_window when destroying windows
8098           - SystrayAdd(): Set client_window to whole_window value to
8099             get mouse and other events passed to NotifyIcon
8100
8101 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
8102
8103         * Form.cs: Set proper default for Opacity property
8104         * NotifyIcon.cs:
8105           - ShowSystray(): Don't bother creating telling the OS
8106             about the systray item if no icon is provided
8107           - Now handles WM_NCPAINT message to deal with whole/client window
8108             split
8109           - Create window as visible to not get caught by Expose optimization
8110         * Hwnd.cs: Removed debug message
8111         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
8112           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
8113             PaintEventStart/End to use new client argument
8114         * TextBoxBase.cs:
8115           - Commented out debug messages
8116           - Switched PaintEventStart/End to use new client argument
8117         * XplatUI.cs: Added client window bool to PaintEventStart()/
8118           PaintEventEnd() calls, to support drawing in non-client areas
8119         * XplatUIDriver.cs: 
8120           - Added client window bool to PaintEventStart()/PaintEventEnd() 
8121             calls, to support drawing in non-client areas
8122           - Added conditional compile to allow using MWF BeginInvoke 
8123             on MS runtime
8124         * XplatUIX11.cs:
8125           - Added some conditional debug output
8126           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
8127             whole/client window split
8128           - Implemented handling of client argument to PaintEventStart()/End()
8129         * Control.cs:
8130           - Throw exception if BeginInvoke() is called and the window handle
8131             or one of the window's parent handles is not created
8132           - Added conditional compile to allow using MWF BeginInvoke on
8133             MS runtime
8134           - get_Parent(): Only sets parent if handle is created. This avoids
8135             forcing window handle creation when parent is set.
8136           - Now fires Layout and Parent changed events in proper order
8137           - Switched to use Handle instead of window.Handle for Z-Order setting,
8138             the get_Parent() patch above causes us to possibly get null for 'window'
8139           - Implemented handling of client argument to PaintEventStart()/End()
8140           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
8141             default handling)
8142           - Now sends a Refresh() to all child windows when Refresh() is called
8143
8144 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
8145
8146         * Form.cs: Added (non-functional) Opacity property
8147         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
8148
8149 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
8150         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
8151           use export MONO_THEME=nice to activate it.
8152           Currently supported controls:
8153           - Button
8154           - ComboBox
8155           - ScrollBar
8156           - TabControl (TabAlignment.Top only, other will follow)
8157         * ThemeEngine.cs: Add theme nice
8158         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
8159           if enabled
8160
8161 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
8162
8163         * Splitter.cs: Resize docked control and its neighbor.
8164
8165 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
8166         -- Making Windows with Menus layout correctly --
8167         * Form.cs : The first leg of the fix
8168                 Menu setter - adjust Client Size as needed to make space for the menu
8169                 SetClientSizeCore - doesn't call base version to be able to pass the 
8170                         menu handle to XplatUI.CalculateWindowRect
8171         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
8172         * XplatUIX11.cs: The critical second leg of the fix
8173                 GetWindowPos needs to use a recalculated client_rect
8174                 so that resizing the window doesn't break layout of child controls. 
8175                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
8176                 Lots of \t\n killed
8177
8178 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
8179
8180         * Label.cs: Now properly recalculates width and height on Font and Text
8181           changes if AutoSize is set
8182
8183 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
8184         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
8185
8186 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
8187
8188         * ImageList.cs: Makes ToString method compatible with MS
8189
8190 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
8191
8192         * MenuAPI.cs: fixes bug 75716
8193
8194 2005-08-11 Umadevi S <sumadevi@novell.com>
8195         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
8196
8197 2005-08-11 Umadevi S <sumadevi@novell.com>
8198         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
8199
8200 2005-08-10  Umadevi S <sumadevi@novell.com>
8201         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
8202
8203 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
8204
8205         * Menu.cs: fixes bug 75700
8206         * MenuAPI.cs: fixes navigation issues
8207
8208 2005-08-09  Umadevi S <sumadevi@novell.com>
8209         * CheckedListBox.cs - simple fix for GetItemChecked.
8210
8211 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
8212
8213         * ComboBox.cs: Serveral fixes
8214         * ListBox.cs: Serveral fixes
8215
8216 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
8217
8218         * ComboBox.cs: Fixes FindString methods and GetItemHeight
8219         * ListBox.cs: Fixes FindString methods
8220
8221 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
8222
8223         * DataGrid.cs: fixes bugs exposed by new tests
8224
8225 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
8226
8227         * Mime.cs: Compile Mono assembly references only if compiling
8228           with Mono (Allows to build with VS.Net again)
8229
8230 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
8231
8232         * Control.cs (PaintControlBackground): Draw background image
8233         corrrectly.
8234         (CheckForIllegalCrossThreadCalls): Stubbed.
8235         
8236         * Form.cs (OnCreateControl): Center when should be centered.
8237         
8238         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
8239
8240 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
8241
8242         * Binding.cs: Binding to properties should be case unsensitive
8243
8244 2005-07-18 vlindos@nucleusys.com
8245
8246         * DataGrid.cs: fixes setmember order
8247
8248 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
8249
8250         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
8251         * FileDialog.cs: FileDialog is now resizable and uses the new
8252           MimeIconEngine
8253
8254 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
8255
8256         * DataGridTextBoxColumn.cs: default value
8257         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
8258         * GridTableStylesCollection.cs: fixes checking MappingName
8259         * DataGridDrawingLogic.cs: fixes drawing logic issues
8260         * DataSourceHelper.cs: rewritten to make compatible with more data sources
8261         * DataGrid.cs: fixes    
8262
8263 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
8264
8265         * MimeGenerated.cs: Use case sensitive comparer for
8266           NameValueCollections
8267
8268 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
8269
8270         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
8271         * ThemeWin32Classic.cs: bug fixes, code refactoring
8272         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
8273         * DataGrid.cs: bug fixes, code refactoring
8274         * DataGridTextBox.cs: bug fixes, code refactoring
8275         * DataGridColumnStyle.cs:  bug fixes, code refactoring
8276         * Theme.cs:  bug fixes, code refactoring
8277
8278 2005-07-01  Peter Bartok  <pbartok@novell.com> 
8279
8280         * TextControl.cs: Quick fix for the reported crash on ColorDialog
8281           and other text box usage
8282
8283 2005-07-01  Jackson Harper  <jackson@ximian.com>
8284
8285         * TabControl.cs: Make sure the bottom of the tab covers the pages
8286         border.
8287
8288 2005-06-30  Peter Bartok  <pbartok@novell.com> 
8289
8290         * Form.cs (ShowDialog): Assign owner of the dialog
8291         * TextBoxBase.cs: Always refresh caret size when deleting, caret
8292           might have been moved to a tag with different height
8293
8294 2005-06-30  Jackson Harper  <jackson@ximian.com>
8295
8296         * Form.cs: Don't create an infinite loop when setting focus
8297         * MenuItem.cs: Don't dirty the parents if we don't have any
8298
8299 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
8300
8301         * LibSupport.cs: Rename
8302
8303 2005-06-29  Peter Bartok  <pbartok@novell.com>
8304
8305         * TextBoxBase.cs: Re-align caret after deleting a character
8306         * TextControl.cs:
8307           - DeleteChars(): Ensure that tag covers the provided position
8308           - StreamLine(): Drop reference for dropped tag
8309
8310 2005-06-29  Peter Bartok  <pbartok@novell.com> 
8311
8312         * TextControl.cs: 
8313           - Selections now work properly, anchoring at the initial location
8314             and properly extending in either direction (SetSelectionToCaret(),
8315             SetSelectionStart() and SetSelectionEnd())
8316           - No longer redraws the whole control on selection change, now
8317             calculates delta between previous and new selection and only
8318             invalidates/redraws that area
8319           - Fixed FindPos() math off-by-one errors
8320           - Changed DeleteChars() to verify the provided tag covers the
8321             provided position, selections may have a tag that doesn't cover
8322             the position if the selection is at a tag border
8323           - Fixed off-by-one errors in DeleteChars()
8324           - Added missing streamlining check in DeleteChars() to remove
8325             zero-length tags
8326           - Implemented Invalidate() method, now properly calculates exposures
8327             between two given lines/positions
8328           - Implemented SetSelection()
8329           - Obsoleted and removed FixupSelection()
8330           - Improved RecalculateDocument() logic, removing code duplication
8331
8332 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8333
8334         * LibSupport.cs: changes to match different input/output arguments.
8335
8336 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8337
8338         * LibSupport.cs: added libsupport.so init routine.
8339
8340 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
8341         
8342         * ControlBindingsCollection.cs
8343                 - Throws an exception on null datasource when adding
8344                 - Checks for duplicated bindings when adding
8345
8346 2005-06-28  Jackson Harper  <jackson@ximian.com>
8347
8348         * TreeView.cs (OnKeyDown): Support left and right properly
8349         (navigates as well as expanding and collapsing.
8350         - Add support for Multiply, this expands all the selected nodes
8351         children.
8352         - Fix some tabbing.
8353
8354 2005-06-28  Jackson Harper  <jackson@ximian.com>
8355
8356         * TreeView.cs: Implement keyboard navigation, currently supports,
8357         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
8358         support for toggling checkboxes with the space bar.
8359
8360 2005-06-28  Jackson Harper  <jackson@ximian.com>
8361
8362         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
8363         tree.
8364
8365 2005-06-28  Jackson Harper  <jackson@ximian.com>
8366
8367         * TreeView.cs: Add missing event.
8368
8369 2005-06-27  Peter Bartok  <pbartok@novell.com> 
8370
8371         * TextControl.cs:
8372           - Made line ending size configurable (now allows for counting 
8373             lineendings as \n or \r\n)
8374           - Added margin to viewport to keep caret visible on right side
8375           - Fixed translation routines for line/pos to documentpos to consider
8376             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
8377           - Fixed some line-endings to be unix style
8378           - Fixed Document.FormatText to perform it's calculations 1-based
8379           - Added descriptions for a few methods that might otherwise get 
8380             used wrong
8381           - Added NOTE section with some basic conventions to remember at 
8382             the top of the file
8383           - Major fixup for RichTextBox selection drawing:
8384             * Fixed crashes when multiple tags on a single line were selected
8385             * fixed selection box drawing not overlaying text
8386             * fixed bogus offset calculation for tags not starting at index 1
8387             * Switched behaviour from using multiple Substrings of a 
8388               StringBuilder.ToString() to using multiple 
8389               StringBuilder.ToString(start, length) statements, hoping this is
8390               faster (kept original version commented out in the code, in case
8391               original version was faster)
8392         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
8393           alignment != Left
8394         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
8395           call it as well
8396
8397 2005-06-27  Jackson Harper  <jackson@ximian.com>
8398
8399         * TabControl.cs: Move to the left and right with the arrow
8400         keys. These keys don't cycle beyond first and last like
8401         tab. Refresh all the tabs when scrolling them to the left or
8402         right.
8403
8404 2005-06-27  Jackson Harper  <jackson@ximian.com>
8405
8406         * TabControl.cs:
8407           - ToString: Added method
8408           - CreateParams: Remove TODO and comment
8409           - OnKeyDown: Cycle through bounds properly.
8410           - SelectedIndex: Scroll to the right or left if we need to
8411           display the newly selected tab.
8412
8413 2005-06-23  Jackson Harper  <jackson@ximian.com>
8414
8415         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
8416         set.
8417
8418 2005-06-23  Jackson Harper  <jackson@ximian.com>
8419
8420         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
8421         CTRL-SHIFT-TAB, and HOME, END are there any others?
8422
8423 2005-06-23  Jackson Harper  <jackson@ximian.com>
8424
8425         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
8426
8427 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
8428         
8429         * DataGridTextBoxColumn.cs: fixes and enhancements
8430         * ThemeWin32Classic.cs: fixes and enhancements
8431         * DataGridBoolColumn.cs:  fixes and enhancements
8432         * DataGridDrawingLogic.cs:  fixes and enhancements
8433         * CurrencyManager.cs: fixes and enhancements
8434         * DataGrid.cs: fixes and enhancements
8435         * DataGridColumnStyle.cs:  fixes and enhancements
8436
8437 2005-06-22  Jackson Harper  <jackson@ximian.com>
8438
8439         * TabControl.cs: Add some missing methods that just call into the
8440         base. Make the TabPageCollection's IList interface behave in the
8441         same manner as the MS implementation.
8442
8443 2005-06-22  Peter Bartok  <pbartok@novell.com> 
8444
8445         * TextControl.cs: Added sanity check
8446         * TextBoxBase.cs: 
8447           - Fixed wrapping behaviour, don't set wrap on single line controls
8448             (this fixes the breakage of colordialog introduced in an earlier
8449              checkin)
8450           - Added rudimentary support for autoscrolling right-aligned controls
8451             (still needs fixing, also, center alignment scroll is missing)
8452
8453 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
8454         
8455         * ScrollBar.cs: Fixes thumbpos on Maximum values
8456
8457 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
8458         
8459         * PropertyGridView.cs: Pass context information to UITypeEditors 
8460
8461 2005-06-21  Peter Bartok  <pbartok@novell.com> 
8462
8463         * TextBoxBase.cs:
8464           - Now calling PositionCaret with absolute space coordinates
8465           - Enabled vertical scrolling
8466           - Better tracking of scrollbar changes, tied into WidthChange
8467             event
8468           - Improved cursor tracking
8469           - Removed debug output
8470         * TextControl.cs:
8471           - PositionCaret coordinates are now works in absolute space, not 
8472             the canvas
8473           - Improved tracking of document size
8474           - Added events for width and height changes
8475
8476 2005-06-21  Peter Bartok  <pbartok@novell.com>
8477
8478         * Form.cs: Set focus to active control when form is activated
8479         * TextControl.cs: 
8480           - Added word-wrap functionality to RecalculateLine() 
8481           - Added some short function descriptions for VS.Net to aid in
8482             writing dependent controls
8483           - Added Caret property, returning the current coords of the caret
8484           - Added ViewPortWidth and ViewPortHeight properties
8485           - Added Wrap property
8486           - Added CaretMoved event
8487           - Removed some old debug code
8488           - Split() can now create soft splits
8489           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
8490           - Added method to format existing text
8491           - Fixed size/alignment calculations to use viewport
8492           - RecalculateDocument now can handle changing line-numbers while
8493             calculating lines
8494
8495         * TextBox.cs:
8496           - Added some wrap logic, we don't wrap if alignment is not left
8497           - Added casts for scrollbar var, base class switched types to
8498             also support RichTextBoxA
8499           - Implemented handling of scrollbar visibility flags
8500
8501         * TextBoxBase.cs:
8502           - Switched scrollbars type to RichTextBoxScrollBars to support
8503             RichTextBox
8504           - Added tracking of canvas width/height
8505           - Switched scrollbars to be not selectable (to keep focus on text)
8506           - Added central CalculateDocument() method to handle all redraw
8507             requirements
8508           - Added ReadOnly support
8509           - Added WordWrap support
8510           - Fixed handling of Enter key (we now treat it as a DialogKey)
8511           - Fixed caret positioning when h or v scroll is not zero
8512           - Fixed placing/generation of vertical scrollbar
8513           - Added CalculateScrollBars() method to allow updating scrollbar
8514             limits and visibility
8515           - Fixed handling of horizontal scroll
8516           - Added handling of vertical scroll
8517           - Implemented auto-'jump' when caret moves to close to a left or
8518             right border and there is text to be scrolled into view (currently
8519             there's the potential for a stack overflow, until a bug in
8520             scrollbar is fixed)
8521
8522 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
8523         
8524         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
8525
8526 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
8527
8528         * Mime.cs:
8529         - added inodes.
8530         - return application/x-zerosize for files with size zero
8531           (if no extension pattern matches).
8532         - check matches collection for strings too.
8533         - return only the first mime type if the name value
8534           collection has more than one mime type.
8535
8536 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
8537         
8538         * PropertyGrid.cs: Cleaned up some TODOs
8539         * PropertyGridView.cs: Added support for UITypeEditors
8540
8541 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
8542         
8543         * DataGrid.cs: clears cached value
8544
8545 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
8546
8547         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
8548         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
8549         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
8550         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
8551         
8552 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
8553
8554         * ThemeWin32Classic.cs: fixes colour
8555
8556 2005-06-15  Peter Bartok  <pbartok@novell.com>
8557
8558         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
8559         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
8560         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
8561         * Control.cs: Added some MWFCategory and MWFDescription attributes
8562         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
8563
8564 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
8565
8566         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
8567         usage
8568
8569 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
8570
8571         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
8572         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
8573         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
8574         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
8575         * DataGrid.cs: default datagrid settings for Default Styles, fixes
8576         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
8577
8578 2005-06-13  Jackson Harper  <jackson@ximian.com>
8579
8580         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
8581         isn't printed when the user enables dropping. (X11 does accept
8582         drops).
8583         
8584 2005-06-13  Jackson Harper  <jackson@ximian.com>
8585
8586         * TreeView.cs: Remove some TODOS.
8587
8588 2005-06-13  Jackson Harper  <jackson@ximian.com>
8589
8590         * Form.cs: Hook into the mdi framework.
8591         * MdiClient.cs: Use the base control collections add method so
8592         parents get setup correctly. Set the default back colour and dock
8593         style.
8594         * MdiChildContext.cs: New class, this bad actor handles an
8595         instance of an MDI window. Right now there is only basic
8596         support. You can drag, close, and resize windows. Minimize and
8597         Maximize are partially implemented.
8598
8599 2005-06-13  Jackson Harper  <jackson@ximian.com>
8600
8601         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
8602         freaky when both vals are negative. NOTE: There are probably other
8603         places in XplatUIX11 that this needs to be done.
8604
8605 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
8606
8607         * DataGrid.cs: implement missing methods, move KeyboardNavigation
8608         * DataGridColumnStyle.cs: fixes signature
8609
8610 2005-06-12  Jackson Harper  <jackson@ximian.com>
8611
8612         * XplatUIX11.cs: Use sizing cursors similar to the ones on
8613         windows.
8614
8615 2005-06-11  Jackson Harper  <jackson@ximian.com>
8616
8617         * StatusBarPanel.cs: Signature cleanups. Implement
8618         BeginInit/EndInit.
8619
8620 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
8621
8622         * DataGridTextBoxColumn.cs: Honors aligment
8623         * GridColumnStylesCollection.cs: Contains is case unsensitive
8624         * GridTableStylesCollection.cs: several fixes
8625         * DataGridTableStyle.cs: default column creation
8626         * DataGridDrawingLogic.cs: fixes
8627         * CurrencyManager.cs: ListName property
8628         * DataGrid.cs: multiple styles support
8629         * DataGridColumnStyle.cs: fixes
8630         
8631
8632 2005-06-10  Peter Bartok  <pbartok@novell.com>
8633
8634         * Control.cs(Select): Moved SetFocus call to avoid potential
8635           loops if controls change the active control when getting focus
8636         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
8637           the up/down buttons
8638
8639 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
8640
8641         * ImageListConverter.cs: Implemented
8642
8643 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
8644
8645         * MonthCalendar.cs: Wired in NumericUpDown control for year
8646
8647 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
8648
8649         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
8650           DoubleClick events, since they are not meant to be fired.
8651
8652 2005-06-09  Peter Bartok  <pbartok@novell.com>
8653
8654         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
8655           Jonathan's standalone controls into MWF, implemented missing
8656           events, attributes and methods; added xxxAccessible classes
8657         * AccessibleObject.cs: Made fields internal so other classes
8658           can change them if needed
8659
8660 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
8661
8662         * UpDownBase.cs: Complete implementation
8663         * NumericUpDown.cs: Complete implementation
8664         * DomainUpDown.cs: Complete implementation
8665
8666 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
8667
8668         * DataGridTextBoxColumn.cs: drawing fixes
8669         * DataGridCell.cs: fixes ToString method to match MSNet
8670         * DataGridTableStyle.cs: fixes
8671         * DataGridBoolColumn.cs: fixes, drawing
8672         * DataGridDrawingLogic.cs: fixes, new methods
8673         * DataGridTextBox.cs: Keyboard and fixes
8674         * DataGrid.cs:
8675                 - Keyboard navigation
8676                 - Scrolling fixes
8677                 - Row selection (single, multiple, deletion, etc)
8678                 - Lots of fixes
8679         
8680 2005-06-07  Jackson Harper  <jackson@ximian.com>
8681
8682         * ThemeWin32Classic.cs: Clear the background area when drawing
8683         buttons.
8684
8685 2005-06-06  Peter Bartok  <pbartok@novell.com>
8686
8687         * ImageListStreamer.cs: Fixed signature for GetData
8688         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
8689         * ComboBox.cs:
8690           - Added missing ChildAccessibleObject class
8691           - Added missing OnXXXFocus overrides, switched to using those
8692             instead of the event handler
8693         * Control.cs:
8694           - Added Parent property for ControlAccessibleObject
8695           - Fixed signatures
8696           - Fixed attributes
8697           - Added ResetBindings()
8698         * ListBindingConverter.cs: Implemented some methods
8699         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
8700         * ImageList.cs: Implemented basic handle scheme, removed TODOs
8701         * ContainerControl.cs: Fixed signature, now subscribing to the
8702           ControlRemoved event instead of overriding the handler, LAMESPEC
8703         * CurrencyManager.cs: Added missing attribute
8704         * MonthCalendar.cs: Added missing properties
8705
8706 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
8707
8708         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
8709         
8710 2005-06-06  Gaurav Vaish and Ankit Jain
8711
8712         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
8713         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
8714         
8715 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
8716
8717         * Control.cs: fixes CreateParams Width / Height.
8718
8719 2005-06-05  Peter Bartok  <pbartok@novell.com>
8720
8721         * Win32DnD.cs: Removed compilation warnings
8722
8723 2005-06-05  Peter Bartok  <pbartok@novell.com>
8724
8725         * Control.cs (CreateParams): Since we don't know if one of the
8726           properties we use is overridden, lets make sure if we fail accessing
8727           we continue with a backup plan
8728
8729 2005-06-05  Peter Bartok  <pbartok@novell.com>
8730
8731         * Win32DnD.cs:
8732           - Removed debug output
8733           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
8734             struct
8735           - Plugged resource leak
8736         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
8737           MS size
8738
8739 2005-06-05  Peter Bartok  <pbartok@novell.com>
8740
8741         * XplatUIWin32.cs: Removed DnD code
8742         * Win32DnD.cs: Implemented drop source and drop target functionality
8743
8744 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8745
8746         * UpDownBase.cs: remove duplicate addition of event, enable some code
8747         that was commented out.
8748         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
8749         Validate input when a key is pressed. It works fine now for every
8750         combination of Hexadecimal. Only missing some drawing love when sharing
8751         space with other controls.
8752
8753 2005-06-04  Peter Bartok  <pbartok@novell.com>
8754
8755         * Control.cs:
8756           - We need to pass a window for DragDrop, so enable callback events
8757           - Added DnD callback events when being a DragSource
8758         * XplatUI.cs (StartDrag): Added window handle argument
8759         * XplatUIDriver.cs (StartDrag): Added window handle argument
8760         * QueryContinueDragEventArgs: Made fields internally accessible so
8761           drivers can set them
8762         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
8763           can set them
8764
8765 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
8766
8767         * DataGridTextBoxColumn.cs: column text editing
8768         * DataGridTableStyle.cs: Respect columns styles created by the user
8769         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
8770         * DataGridBoolColumn.cs: bool column editing
8771         * DataGrid.cs: fixes to scrolling, properties, etc
8772         * DataGridTextBox.cs: handle keyboard
8773         * DataGridColumnStyle.cs: fixes
8774
8775 2005-06-02  Jackson Harper  <jackson@ximian.com>
8776
8777         * ImageListStreamer.cs: Somewhat broken implementation of
8778         GetObjectData. The RLE needs some work to match MS properly.
8779
8780 2005-06-02  Jackson Harper  <jackson@ximian.com>
8781
8782         * X11Dnd.cs: Attempting to keep at least one file in MWF
8783         monostyled.
8784
8785 2005-06-02  Peter Bartok  <pbartok@novell.com>
8786
8787         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
8788           that way
8789
8790 2005-06-02  Peter Bartok  <pbartok@novell.com>
8791
8792         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
8793         * XplatUI.cs: Added DoDragDrop() method
8794         * XplatUIDriver.cs: Added DoDragDrop() method
8795
8796 2005-06-02  Jackson Harper  <jackson@ximian.com>
8797
8798         * Splitter.cs: Implement BorderStyle.
8799
8800 2005-06-02  Jackson Harper  <jackson@ximian.com>
8801
8802         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
8803         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
8804         X11 using XDND.
8805
8806 2005-06-02  Peter Bartok  <pbartok@novell.com>
8807
8808         * DataObject.cs:
8809           - Added Data setter
8810           - Fixed broken insertion code for SetData, now also
8811             overwrites any existing entry of the same format name
8812         * Hwnd.cs: Added list of pointers that automatically gets
8813           freed when the window is disposed
8814         * XplatUI.cs: Call driver initialization method when loading
8815           a driver
8816         * Control.cs:
8817           - OnDragLeave takes EventArgs, not DragEventArgs
8818           - Added setting of WS_EX_ACCEPTFILES style when dropping is
8819             supported
8820           - Forces style update when drop state changes
8821         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
8822           not perfect since we cannot (yet) call the IDataObject.GetData()
8823           method, we keep getting 0x80004005 error, dunno why)
8824
8825 2005-06-02  Peter Bartok  <pbartok@novell.com>
8826
8827         * DragEventArgs.cs: Make fields internal so we can cache the
8828           object and re-set the fields from XplatUI
8829
8830 2005-06-02  Jackson Harper  <jackson@ximian.com>
8831
8832         * Control.cs: Add some internal methods so the DnD subsystem can
8833         raise DnD events. Also call into the driver when AllowDrop is set.
8834         * XplatUI.cs:
8835         * XplatUIDriver.cs: New method for setting whether or not a window
8836         is allowed to accept drag and drop messages.
8837                 
8838 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
8839         
8840         * ScrollBar.cs: Make sure that values sent in Scroll events
8841         are always between Maximum and Minimum.
8842
8843 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
8844
8845         * Menu.cs: Call MenuChanged when menuitem visibility has been
8846         changed.
8847         * MenuItem.cs: Rebuild menu when item is (not) visible.
8848         * MainMenu.cs: MainMenu has special MenuChanged.
8849         * Theme.cs: Caption and FrameBorderSize are not fixed.
8850         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
8851         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
8852         * XplatUIX11.cs,
8853         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
8854         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
8855
8856 2005-05-30  Jackson Harper  <jackson@ximian.com>
8857
8858         * DataFormat.cs: We can't statically initialize this stuff because
8859         it calls into the xplatui and could create a loop. So we lazy init
8860         it.
8861
8862 2005-05-28  Jackson Harper  <jackson@ximian.com>
8863
8864         * Control.cs: Proper implementation of Product(Name/Version).
8865
8866 2005-05-27  Jackson Harper  <jackson@ximian.com>
8867
8868         * DataObject.cs: Dont crash if no data is found.
8869
8870 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
8871         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
8872                 as per status page, guessing it should be set to true
8873
8874 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
8875
8876         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
8877         * DataGridTableStyle.cs: set proper formatting text, def header text
8878         * ThemeWin32Classic.cs: new themable paramaters
8879         * DataGridBoolColumn.cs: paint check box, get data, fixes
8880         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
8881         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
8882         * DataGridColumnStyle.cs: fixes
8883         * Theme.cs: new themable paramaters
8884                 
8885 2005-05-26  Peter Bartok  <pbartok@novell.com>
8886
8887         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
8888
8889 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
8890         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
8891
8892 2005-05-24  Peter Bartok  <pbartok@novell.com>
8893
8894         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
8895           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
8896           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
8897           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
8898           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
8899           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
8900           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
8901           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
8902           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
8903           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
8904           missing attributes, etc
8905         * DataGridPreferredColumnWidthTypeConverter.cs: Added
8906
8907 2005-05-24  Peter Bartok  <pbartok@novell.com>
8908
8909         * Help.cs: Added, implemented trivial functions, throws up MessageBox
8910           when user tries to get help
8911         * DataObject.cs, DataFormats.cs, LinkArea.cs,
8912           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
8913           to suppress warnings
8914         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
8915           avoid unreachable code warning
8916
8917 2005-05-20  Peter Bartok  <pbartok@novell.com>
8918
8919         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
8920
8921 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
8922
8923         * DataGridTextBoxColumn.cs: Basic painting methods
8924         * DataGridTableStyle.cs: Set table style in the column
8925         * ThemeWin32Classic.cs: Use Theme for colors
8926         * DataGridDrawingLogic.cs: Implement more drawing
8927         * DataGrid.cs: drawing, theming, enhacements, fixes
8928         * DataGridColumnStyle.cs: fixes, drawing
8929         * Theme.cs: theming for Datagrid
8930
8931 2005-05-20  Peter Bartok  <pbartok@novell.com>
8932
8933         * Cursor.cs: Implemented GetObjectData() method
8934
8935 2005-05-20  Peter Bartok  <pbartok@novell.com>
8936
8937         * Cursors.cs: Added setting of cursor name
8938         * Cursor.cs:
8939           - Implemented constructors
8940           - Implemented Draw and DrawStretched
8941           - Implemented Current property
8942           - Implemented == and != operators
8943           - Implemented Dispose()
8944           - Implemented ToString
8945           - Added missing attributes
8946         * XplatUIX11.cs:
8947           - Added missing reset for OverrideCursor when DoEvents is called
8948           - Fixed creation of cursor, logic was wrong
8949         * XplatUIWin32.cs:
8950           - Added missing reset for OverrideCursor when DoEvents is called
8951           - Fixed creation of cursor, bit arrays were swapped
8952         * Clipboard.cs: Removed obsolete MonoTODO attribute
8953
8954 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
8955
8956         * ComboBox.cs: fixes OnSelectedItemChanged
8957         * ControlBindingsCollection.cs: fixes item range check
8958
8959 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
8960
8961         * UpDownBase.cs:
8962                 - Calc preferred height properly
8963                 - Implement missing properties
8964                 
8965         * NumericUpDown.cs: Implement missing events
8966
8967 2005-05-19  Jackson Harper  <jackson@ximian.com>
8968
8969         * TabControl.cs: New method that resizes the tab pages before
8970         redrawing them. This as needed as the control is double buffered
8971         and sizing will not be recalculated unless ResizeTabPages is
8972         called.
8973         * TabPage.cs: Set base.Text instead of Text in the constructor so
8974         that UpdateOwner does not get called. Use the new Redraw method of
8975         TabControl instead of Refresh so the sizing is recalculated.
8976         * ThemeWin32Classic.cs: Draw the text for button tabs.
8977
8978 2005-05-19  Jackson Harper  <jackson@ximian.com>
8979
8980         * Control.cs: Paint control background images. Fix typo where
8981         PaintControlBackground was not getting called correctly.
8982
8983 2005-05-19  Peter Bartok  <pbartok@novell.com>
8984
8985         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
8986           I can investigate, apparently I broke FileDialog
8987
8988 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
8989
8990         * AxHost.cs: Some simple properties.
8991         * Control.cs: window must be accessible after ctor.
8992         * Form.cs: Added TransparencyKey property.
8993         * TextBoxBase.cs: Implemented Clear. Text property can be null.
8994         * XplatUIWin32.cs: SetBorderStyle implemented.
8995
8996 2005-05-18  Peter Bartok  <pbartok@novell.com>
8997
8998         * DataObject.cs: Entries are not global but particular to the
8999           DataObject, now it behaves that way
9000         * XplatUIWin32.cs: Implemented Clipboard methods
9001         * Clipboard.cs: Implemented
9002         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
9003         * XplatUIOSX.cs: Updated to final clipboard prototypes
9004         * XplatUIX11.cs: Implemented Clipboard methods
9005         * XplatUIDriver.cs: Updated to final clipboard prototypes
9006         * XplatUIStructs.cs:
9007           - Added BITMAPINFOHEADER struct
9008           - Added ClipboardFormats enum
9009         * X11Structs.cs:
9010           - Added ClipboardStruct
9011           - Added Atom enum items for clipboard types
9012           - Fixed atom types for Selection event structures
9013         * DataFormats.cs:
9014           - Added internal properties and methods for drivers to enumerate
9015             all known formats
9016           - Switched initialization method to allow drivers to assign their
9017             own IDs even for the MS predefined clipboard IDs
9018         * XplatUI.cs: Updated to final clipboard interface
9019
9020 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
9021         * PropertyGridView.cs: Fixed compiler warnings.
9022
9023 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
9024         * PropertyGrid.cs: Added some event calls
9025         * PropertyGridView.cs: Change drawing code to use double buffering
9026         * PropertyGridTextBox.cs: Changed Text property name
9027         * GridItem.cs: Added Bounds property.
9028         * GridEntry.cs: Added Bounds property.
9029
9030 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
9031
9032         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
9033         since GetType() may not return the correct type if the object is
9034         a remoting proxy.
9035
9036 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
9037
9038         * TreeNodeCollection.cs: fixes get/set item ranges
9039         
9040 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
9041
9042         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
9043                 
9044 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
9045
9046         * ComboBox.cs: Fix item range comparation
9047         * ListView.cs: Fix item range comparation
9048
9049 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
9050
9051         * FontDialog.cs:
9052           - Clear example panel when OnPaint is called
9053           - Better solution for displaying the example panel text
9054           - Select default indexes in the ListBoxes
9055
9056 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
9057
9058         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
9059
9060 2005-05-11  Peter Bartok  <pbartok@novell.com>
9061
9062         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
9063         * SelectionRangeConverter.cs: Implemented
9064         * PropertyGrid.cs: Fixed attribute value
9065         * Control.cs:
9066           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
9067           - Added Sebastien Pouliot's CAS Stack Propagation fixes
9068         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
9069           that's common to all drivers. First methods to go there are
9070           Sebastien Pouliot's CAS Stack Propagation helper methods
9071         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
9072           Sebastien Pouliot for CAS Stack Propagation
9073
9074 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
9075
9076         * OSXStructs.cs:
9077           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
9078
9079 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
9080
9081         * DataGridTextBoxColumn.cs: fixed some members
9082         * GridColumnStylesCollection.cs: indexed column is case insensitive
9083         * DataGridTableStyle.cs: fixes
9084         * ThemeWin32Classic.cs: add new theme parameter
9085         * Theme.cs: add new theme parameter
9086         * DataGridDrawingLogic.cs: Datagrid's drawing logic
9087         * DataGrid.cs: fixes, new internal properties, etc.
9088         * DataGridColumnStyle.cs: allows to set grid value
9089         *
9090
9091 2005-05-10  Peter Bartok  <pbartok@novell.com>
9092
9093         * AccessibleObject.cs:
9094           - Removed MonoTODO attribute on help, method is correct
9095           - Fixed Bounds property
9096         * AxHost.cs: Moved MonoTODO
9097         * ButtonBase.cs: Now setting AccessibleObject properties
9098         * RadioButton.cs: Setting proper AccessibleObject role
9099         * CheckBox.cs: Setting proper AccessibleObject role
9100         * ControlBindingsCollection.cs: Added properties, methods and attributes
9101         * DataFormats.cs: Fixed awkward internal API, and changed to enable
9102           userdefined DataFormats.Format items as well
9103         * ListControl.cs: Removed data_member from the public eye
9104         * OpenFileDialog.cs:
9105           - Made class sealed
9106           - Added missing attributes
9107         * SaveFileDialog.cs: Added missing attributes
9108         * ImageListStreamer.cs: Fixed code that caused warnings
9109         * LinkLabel.cs: Removed unreachable code
9110         * TreeView.cs: Fixed code that caused warnings
9111         * PropertyGridView.cs: Fixed code that caused warnings
9112         * GridColumnStylesCollection.cs: Added missing attributes
9113         * GridTableStylesCollection: Added missing attribute
9114         * PropertyManager: Added .ctor
9115         * SecurityIDType: Added
9116         * DataObject.cs: Implemented class
9117         * LinkArea.cs: Added missing attribute
9118
9119 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
9120
9121         * RadioButton.cs: call base method to allow to fire OnClick event
9122         * UpDownBase.cs: OnMouseUp call base method
9123         * CheckedListBox.cs: call base method before returning
9124         * TrackBar.cs: call base method before returning
9125         
9126
9127 2005-05-10  Peter Bartok  <pbartok@novell.com>
9128
9129         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
9130           for messages
9131
9132 2005-05-10  Peter Bartok  <pbartok@novell.com>
9133
9134         * DataFormats.cs: Implemented
9135         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
9136           XplatUIX11.cs: Added Clipboard APIs
9137         * XplatUIWin32.cs: Implemented Clipboard APIs
9138         * FolderBrowserDialog.cs: Added missing event, attributes
9139
9140 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
9141
9142         * CheckBox.cs: call base method to allow to fire OnClick event
9143
9144 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
9145
9146         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
9147
9148 2005-05-06  Peter Bartok  <pbartok@novell.com>
9149
9150         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
9151         * Screen.cs: Implemented
9152         * HelpNavigator.cs: Added
9153         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
9154           property
9155         * HelpProvider.cs: Implemented all we can do until we have a CHM
9156           help library (which means that "What's This" does work now)
9157
9158 2005-05-06  Jackson Harper  <jackson@ximian.com>
9159
9160         * XplatUIX11.cs: Fix waking up the main loop.
9161                 
9162 2005-05-05  Peter Bartok  <pbartok@novell.com>
9163
9164         * XplatUI.cs: Updated revision
9165         * Form.cs: Removed enless loop
9166         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
9167         * Label.cs (OnPaint): Added call to base.OnPaint()
9168         * ToolTip.cs: Made ToolTipWindow reusable for other controls
9169         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
9170         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
9171         * AxHost.cs: Added
9172         * ButtonBase.cs: Moved base.OnPaint() call to end of method
9173         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
9174           to ToolTip.ToolTipWindow for drawing and size methods; this allows
9175           reuse of ToolTipWindow by other controls
9176         * SizeGrip.cs: Moved base.OnPaint() call to end of method
9177         * XplatUIX11.cs: Now clipping drawing area (experimental)
9178         * PictureBox.cs: Moved base.OnPaint() call to end of method
9179         * Theme.cs: Fixed ToolTip abstracts to match new format
9180         * ErrorProvider.cs: Implemented
9181
9182 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
9183
9184         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
9185         * LinkLabel.cs:
9186                 - Adds cursors
9187                 - Handles focus
9188                 - Implements LinkBehavior
9189                 - Fixes many issues
9190
9191 2005-05-03  Jackson Harper  <jackson@ximian.com>
9192
9193         * ListView.cs: Calculate the scrollbar positioning on resize and
9194         paint, so they get put in the correct place.
9195
9196 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
9197
9198         * ColorDialogs.cs: The small color panels are now handled by
9199           SmallColorControl. This fixes drawing of the focus rectangle
9200           and adds a 3D border.
9201
9202 2005-05-03  Peter Bartok  <pbartok@novell.com>
9203
9204         * Control.cs: Modified version of Jonathan Chamber's fix for
9205           double-buffering
9206
9207 2005-05-03  Jackson Harper  <jackson@ximian.com>
9208
9209         * ListView.cs: Remove redraw variable. Control now handles whether
9210         or not a redraw needs to be done, and will only raise the paint
9211         event if redrawing is needed.
9212
9213 2005-05-03  Jackson Harper  <jackson@ximian.com>
9214
9215         * Splitter.cs: No decorations for the splitter form. Cache the
9216         hatch brush.
9217
9218 2005-05-03  Jackson Harper  <jackson@ximian.com>
9219
9220         * TreeView.cs: Use dashed lines to connect nodes. Use the
9221         ControlPaint method for drawing the focus rect instead of doing
9222         that in treeview.
9223
9224 2005-05-02  Peter Bartok  <pbartok@novell.com>
9225
9226         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
9227
9228 2005-04-29  Jackson Harper  <jackson@ximian.com>
9229
9230         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
9231         entire image buffer. Just clear the clipping rectangle.
9232
9233 2005-04-29  Jackson Harper  <jackson@ximian.com>
9234
9235         * ThemeWin32Classic.cs: Don't draw list view items that are
9236         outside the clipping rectangle.
9237
9238 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
9239
9240         * ListBox.cs: added horizontal item scroll
9241
9242 2005-04-29  Jackson Harper  <jackson@ximian.com>
9243
9244         * ThemeWin32Classic.cs: Remove some old debug code that was
9245         causing flicker with the new double buffering code.
9246
9247 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
9248
9249         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
9250         behave like combobox and comboboxlist (still not sure if this is
9251         correct though).
9252
9253 2005-04-28  Jackson Harper  <jackson@ximian.com>
9254
9255         * ThemeWin32Classic.cs: Don't fill the middle of progress
9256         bars. This fills areas outside of the clip bounds that don't need
9257         to be filled.
9258
9259 2005-04-28  Jackson Harper  <jackson@ximian.com>
9260
9261         * Control.cs: Don't expose functionality to touch the image buffers.
9262         * ProgressBar.cs:
9263         * ListView.cs: We do not need to (and no longer can) manipulate
9264         the image buffers directly. All of this is handled by Control.
9265
9266 2005-04-28  Peter Bartok  <pbartok@novell.com>
9267
9268         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
9269           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
9270           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
9271
9272 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
9273
9274         * Combobox:
9275                 - Adjust control's height for non-simple comboboxes (bug fix)
9276                 - Remove dead code
9277         * MenuAPI.cs: remove unused var
9278         * ScrollBar.cs: remove unsed var
9279                  
9280         * ListBox.cs: unselect items when clearing
9281
9282 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
9283
9284         * ListControl.cs: honors OnPositionChanged and default Selected Item
9285         * ListBox.cs: unselect items when clearing
9286
9287 2005-04-27  Jackson Harper  <jackson@ximian.com>
9288
9289         * X11Keyboard.cs: Initialize a default keyboard and give a warning
9290         if a "correct" keyboard is not found. This will make us not crash,
9291         but might give some users bad keyboard layouts...seems to be the
9292         same thing rewind does.
9293
9294 2005-04-27  Jackson Harper  <jackson@ximian.com>
9295
9296         * BindingManagerBase.cs: Attach the current/position changed
9297         handlers to their respective events.
9298
9299 2005-04-27  Jackson Harper  <jackson@ximian.com>
9300
9301         * Control.cs: Make sure that the first WM_PAINT does a full draw,
9302         not just a blit.
9303         * ThemeWin32Classic.cs: Don't fill the background for picture
9304         boxes. This could overright user drawing.
9305         * ComboBox.cs: Just fill the clipping rect not the entire client
9306         rect when drawing the background. This prevents pieces of the
9307         image buffer from getting overwritten and is theoretically faster.
9308
9309 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
9310
9311         * ComboBox.cs: Databinding support fixes, fire missing events
9312         * ListControl.cs: implement missing methods and properties, fixes
9313         * ThemeWin32Classic.cs: Databiding support on Drawing
9314         * CheckedListBox.cs: Databinding support fixes, fire missing events
9315         * ListBox.cs: Databinding support fixes, fire missing events
9316         
9317 2005-04-25  Peter Bartok  <pbartok@novell.com>
9318
9319         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
9320
9321 2005-04-25  Jackson Harper  <jackson@ximian.com>
9322
9323         * TreeView.cs: Use the horizontal scrollbars height not width when
9324         determining how much of the client area is available.
9325
9326 2005-04-25  Jackson Harper  <jackson@ximian.com>
9327
9328         * Control.cs: Double buffering is handled differently now. As per
9329         the spec, the extra buffer is created in the WM_PAINT message and
9330         passed down to the control's drawing code.
9331         * GroupBox.cs:
9332         * Label.cs:
9333         * CheckBox.cs:
9334         * ProgressBar.cs:
9335         * RadioButton.cs:
9336         * ColorDialog.cs:
9337         * ComboBox.cs:
9338         * PropertyGridView.cs:
9339         * UpDownBase.cs:
9340         * MessageBox.cs:
9341         * MenuAPI.cs:
9342         * ListView.cs:
9343         * ButtonBase.cs:
9344         * SizeGrip.cs:
9345         * ScrollBar.cs:
9346         * ListBox.cs:
9347         * TrackBar.cs:
9348         * ToolBar.cs:
9349         * PictureBox.cs:
9350         * DateTimePicker.cs:
9351         * StatusBar.cs:
9352         * TreeView.cs: Update to new double buffering system.
9353         * MonthCalendar.cs: Uncomment block, as Capture is now
9354         working. Update to new double buffering
9355         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
9356         * PaintEventArgs.cs: New internal method allows us to set the
9357         graphics object. This is used for double buffering.
9358         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
9359         rectangle. The internal paint_area var has been removed from
9360         StatusBar. The clipping rect should be used instead.
9361         * Theme.cs: Give the PictureBox drawing method a clipping rect.
9362         * TabPage.cs: The RefreshTabs method was removed, so just call the
9363         tab controls Refresh method now.
9364         * TabControl.cs: Update to new double buffering. Make sure the
9365         handle is created before sizing the tab pages, otherwise we will
9366         get stuck in a loop.
9367
9368 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
9369
9370         * LinkLabel.cs: Fix typo, bug #74719; patch
9371           from Borja Sanchez Zamorano
9372
9373 2005-04-22  Jackson Harper  <jackson@ximian.com>
9374
9375         * TreeNode.cs: Implement Handle stuff.
9376         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
9377
9378 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
9379
9380         * DataGridTextBoxColumn.cs: call base constructors, fixes
9381         * GridColumnStylesCollection.cs: missing events, methods, and functionality
9382         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
9383         * DataGridTableStyle.cs: implements create default column styles
9384         * DataGridBoolColumn.cs: which types can handle
9385         * DataGrid.cs: missing methods, fixes, new functionality
9386         * DataGridColumnStyle.cs: fixes
9387
9388 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
9389         * FolderBrowserDialog.cs:
9390         - Use a thread to fill the TreeView
9391         - Adjusted some sizes
9392
9393 2005-04-19  Peter Bartok  <pbartok@novell.com>
9394
9395         * LinkLabel.cs: (Re-)create the pieces when setting the Text
9396           property. Fixes #74360.
9397
9398 2005-04-19  Jackson Harper  <jackson@ximian.com>
9399
9400         * XEventQueue.cs: Lock when getting the lockqueue size.
9401         * PictureBox.cs: Call base OnPaint
9402         
9403 2005-04-19  Peter Bartok  <pbartok@novell.com>
9404
9405         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
9406           messages were no longer being processed (this broke BeginInvoke)
9407
9408           
9409 2005-04-18  Jackson Harper  <jackson@ximian.com>
9410
9411         * TreeView.cs: buglet that caused node images to get drawn
9412         regardless of whether or not they were in the clipping rectangle.
9413
9414 2005-04-18  Jackson Harper  <jackson@ximian.com>
9415
9416         * CurrencyManager.cs: There are four rules for GetItemProperties:
9417         - If the type is an array use the element type of the array
9418         - If the type is a typed list, use the type
9419         - If the list contains an Item property that is not an object, use
9420         that property
9421         - use the first element of the list if there are any elements in
9422         the list.
9423         
9424 2005-04-17  Jackson Harper  <jackson@ximian.oom>
9425
9426         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
9427         click. This handles offsets for scrolling properly and reduces
9428         memory. Also fixed GetNode to not offset now that TopNode works
9429         properly.
9430         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
9431         
9432 2005-04-17  Jackson Harper  <jackson@ximian.com>
9433
9434         * CursorConverter.cs: Initial implementation.
9435
9436 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
9437
9438         * ListControl.cs: work towards complex data binding support on ListControl
9439         * CurrencyManager.cs: work towards complex data binding support on ListControl
9440         * ListBox.cs: work towards complex data binding support on ListControl
9441
9442
9443 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
9444
9445         * GridTableStylesCollection.cs: fixes name and constructor
9446         * DataGridTableStyle.cs: fixes
9447         * DataGridBoolColumn.cs: fixes names and constructors
9448         * DataGrid.cs: define methods and properties. Some init implementations
9449         * DataGridCell.cs: define methods and properties. Some init implementations
9450         * GridTablesFactory.cs: Define methods and properties
9451
9452 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
9453
9454         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
9455         graphics port changes.  We still want the coordinates in global screen
9456         coordinates.
9457
9458 2005-04-14  Jackson Harper  <jackson@ximian.com>
9459
9460         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
9461         check plus minus or checkbox clicks unless those features are enabled.
9462
9463 2005-04-14  Jackson Harper  <jackson@ximian.com>
9464
9465         * TreeView.cs: Add methods for setting the top and bottom visible
9466         nodes. TreeNode::EnsureVisible uses these methods.
9467         * TreeNode.cs: Implement EnsureVisible
9468
9469 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
9470
9471         * Form.cs: Pospone menu assignation if the window has not been created yet
9472         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
9473         size and position
9474
9475 2005-04-12  Jackson Harper  <jackson@ximian.com>
9476
9477         * TreeView.cs: Set the TopNode properly when scrolling
9478         occurs. This has the added benifit of reducing the amount of
9479         walking that needs to be done when drawing. Also removed an old
9480         misleading TODO.
9481         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
9482         
9483 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
9484
9485         * Timer.cs: fixes interval setting when the timer is already enabled
9486         
9487 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
9488
9489         * FolderBrowserDialog.cs: First approach
9490
9491 2005-04-09  Peter Bartok  <pbartok@novell.com>
9492
9493         * FolderBrowserDialog: Added
9494
9495 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
9496
9497         * LinkLabel.cs: move drawing code into the theme
9498         * ThemeWin32Classic.cs: drawing code and painting background bugfix
9499         * Theme.cs: define DrawLinkLabel method
9500
9501 2005-04-05  Jackson Harper  <jackson@ximian.com>
9502
9503         * BindingContext.cs: Use weak references so these bad actors don't
9504         stay alive longer then they need to.
9505
9506 2005-04-05  Jackson Harper  <jackson@ximian.com>
9507
9508         * ListControl.cs: Basic implementation of complex databinding.
9509         * ComboBox.cs:
9510         * ListBox.cs: Add calls to ListControl databinding methods.
9511
9512 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
9513
9514         * FileDialog.cs:
9515           - Don't change PopupButtonState to Normal when the
9516             PopupButton gets pressed several times.
9517           - Renamed ButtonPanel to PopupButtonPanel
9518
9519 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
9520
9521         * ColorDialog.cs: Use cached objects instead of creating them
9522         * LinkLabel.cs: Use cached objects instead of creating them
9523         * Splitter.cs: Use cached objects instead of creating them
9524         * FontDialog.cs: Use cached objects instead of creating them
9525         * PropertyGridView.cs: Use cached objects instead of creating them
9526         * MessageBox.cs: Use cached objects instead of creating them
9527         * FileDialog.cs: Use cached objects instead of creating them
9528         * ThemeWin32Classic.cs: Use cached objects instead of creating them
9529         * TreeView.cs: Use cached objects instead of creating them
9530         
9531 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
9532
9533         * Control.cs: use Equals to compare the font since no == op
9534         * ScrollBar.cs: use Equals to compare the font since no == op
9535
9536 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
9537
9538         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
9539
9540 2005-04-01  Jackson Harper  <jackson@ximian.com>
9541
9542         * Binding.cs: Implement IsBinding.
9543         * BindingManagerBase.cs:
9544         * PropertyManager.cs:
9545         * CurrencyManager.cs: Add IsSuspended property.
9546
9547 2005-04-01  Jackson Harper  <jackson@ximian.com>
9548
9549         * Binding.cs: Had some IsAssignableFrom calls backwards.
9550
9551 2005-04-01  Jackson Harper  <jackson@ximian.com>
9552
9553         * Binding.cs: Handle null data members when pulling data.
9554         * PropertyManager.cs: Handle the data member being a property that
9555         does not exist.
9556
9557 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
9558
9559         * DataGridTextBoxColumn.cs: fixes signature
9560         * DataGrid.cs: calls right constructor
9561
9562 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
9563
9564         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
9565         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
9566         * GridTableStylesCollection.cs: implements GridTableStylesCollection
9567         * DataGridTableStyle.cs: implements DataGridTableStyle
9568         * DataGridBoolColumn.cs: implements DataGridBoolColumn
9569         * DataGridTextBox.cs: implements DataGridTextBox
9570         * DataGridColumnStyle.cs: implements DataGridColumnStyle
9571
9572 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
9573
9574         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
9575
9576 2005-03-29  Peter Bartok  <pbartok@novell.com>
9577
9578         * Application.cs:
9579           - Properly implemented CompanyName property
9580           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
9581             returns a path that includes CompanyName, ProductName and
9582             Version (fixes bug #70330)
9583
9584 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
9585
9586         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
9587           fixes bug #72588.
9588
9589 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
9590
9591         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
9592         
9593           - Added ReadOnly CheckBox
9594           - Further refactoring: moved some code from Open-/SaveFileDialog
9595             to FileDialog
9596
9597 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
9598
9599         * OpenFileDialog.cs: Fixed CheckFileExists
9600         * FileDialog.cs:
9601           Moved FileView and DirComboBox outside FileDialog class.
9602           They can now be used outside FileDialog
9603
9604 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
9605
9606         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
9607         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
9608
9609 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
9610
9611         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
9612           - Added missing CreatePrompt property in SaveDialog
9613           - Overall SaveDialog handling should be better now
9614           - Added non standard ShowHiddenFiles property
9615           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
9616           - Added InitialDirectory and RestoreDirectory support
9617
9618 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
9619
9620         * FileDialog.cs: Made dirComboBox usable
9621
9622 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
9623
9624         * FileDialog.cs: Added Filter support (case sensitiv)
9625
9626 2005-03-24  Jackson Harper  <jackson@ximian.com>
9627
9628         * TabControl.cs: Need a couple more pixels for the lines.
9629
9630 2005-03-23  Jackson Harper  <jackson@ximian.com>
9631
9632         * TabControl.cs: Give the tab page focus when it is selected.
9633
9634 2005-03-23  Jackson Harper  <jackson@ximian.com>
9635
9636         * TabControl.cs: Account for the drawing of tabs borders when
9637         invalidating. If the slider was clicked dont do click detection on
9638         the tabs.
9639
9640 2005-03-23  Jackson Harper  <jackson@ximian.com>
9641
9642         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
9643
9644 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
9645
9646         * CategoryGridEntry.cs: Added
9647         * GridItem.cs: Added helper properties
9648         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
9649         * GridEntry.cs: Updated code for collection
9650         * PropertyGrid.cs: Cleaned up some formatting
9651         * PropertyGridView.cs: Added drop down functionality for enums.
9652         * GridItemCollection.cs: Added enumerator logic
9653         * PropertyGridEntry.cs: Added
9654
9655 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
9656
9657         * FileDialog.cs:
9658           - Removed unnecessary commented code
9659           - Fixed handling for entering the filename manually in the combobox
9660
9661 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
9662
9663         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
9664
9665 2005-03-18  Peter Bartok  <pbartok@novell.com>
9666
9667         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
9668           them being touching the border
9669
9670 2005-03-18  Peter Bartok  <pbartok@novell.com>
9671
9672         * TextControl.cs: Quick hack to center text better
9673
9674 2005-03-18  Peter Bartok  <pbartok@novell.com>
9675
9676         * ControlPaint.cs:
9677           - Don't throw NotImplemented exceptions, just print a notice once
9678             instead (requested by Miguel). This makes running existing SWF
9679             apps a bit easier
9680         * Control.cs:
9681           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
9682           - Added context menu trigger on right click
9683         * Panel.cs: Trigger invalidate on resize
9684         * StatusBar.cs:
9685           - Removed old double-buffer drawing
9686           - Added ResizeRedraw style to force proper update of statusbar
9687         * ListView.cs:
9688           - Removed debug output
9689         * ThemeWin32Classic.cs:
9690           - Fixed drawing of status bar, now draws Text property if there
9691             are no defined panels
9692
9693 2005-03-18  Jackson Harper  <jackson@ximian.com>
9694
9695         * ImageList.cs: When the image stream is set pull all the images
9696         from it.
9697         * ImageListStreamer.cs: Implement reading image list streams.
9698
9699 2005-03-18  Peter Bartok  <pbartok@novell.com>
9700
9701         * ThemeWin32Classic.cs (DrawPictureBox):
9702           - Fixed calculations for centered drawing
9703           - Fixed drawing for normal mode, not scaling the image on normal
9704
9705 2005-03-18  Peter Bartok  <pbartok@novell.com>
9706
9707         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
9708           textbox
9709         * FileDialog.cs:
9710           - Made Open/Save button the accept button for FileDialog
9711           - Tied the cancel button to the IButtonControl cancel button
9712           - Save/Open now properly builds the pathname
9713           - Now handles user-entered text
9714           - Preventing crash on right-click if no item is selected
9715           - Fixed Text property, now uses contents of textbox
9716           - Fixed SelectedText property, now just returns the text part that
9717             is selected in the text box
9718
9719 2005-03-18  Jackson Harper  <jackson@ximian.com>
9720
9721         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
9722         rect, make sure to de-adjust the interior rect after drawing the
9723         tab text.
9724
9725 2005-03-18  Peter Bartok  <pbartok@novell.com>
9726
9727         * MenuAPI.cs: Remove menu *before* executing selected action to
9728           prevent the menu from 'hanging around'
9729           
9730 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
9731
9732         * XplatUIOSX.cs: Implemented WorkingArea property
9733
9734 2005-03-17  Peter Bartok  <pbartok@novell.com>
9735
9736         * XplatUIX11.cs: Fixed menu coord calculations
9737         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
9738           for calculating offsets
9739
9740 2005-03-17  Peter Bartok  <pbartok@novell.com>
9741
9742         * Hwnd.cs: Do not consider menu presence for default client
9743           rectangle location/size
9744         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
9745           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
9746           translation functions
9747         * FileDialog.cs: Fixed (what I presume is a) typo
9748
9749 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
9750
9751         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
9752           X access (avoids X-Async errors)
9753
9754 2005-03-16  Jackson Harper  <jackson@ximian.com>
9755
9756         * TabControl.cs: Raise the SelectedIndexChanged event.
9757
9758 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
9759
9760         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
9761           - Removed vertical ToolBar and replaced it with a custom panel
9762             (desktop and home button already work)
9763           - Added Help button (some controls get resized or relocated then)
9764           - Draw correct text depending on Open or Save.
9765           - Fixed some typos...
9766
9767 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
9768
9769         * ScrollBar.cs:
9770           - Only change Maximum and Minimum when need it (bug fix)
9771
9772 2005-03-15  Peter Bartok  <pbartok@novell.com>
9773
9774         * Form.cs: Use Handle for icon, to trigger creation if
9775           the window does not yet exist
9776         * Control.cs:
9777           - CanSelect: Slight performance improvement
9778           - Focus(): Preventing possible recursion
9779           - Invalidate(): Removed ControlStyle based clear flag setting
9780           - WM_PAINT: fixed logic for calling OnPaintBackground
9781           - WM_ERASEBKGND: Fixed logic, added call to new driver method
9782             EraseWindowBackground if the control doesn't paint background
9783         * XplatUIWin32.cs:
9784           - Moved EraseWindowBackground() method to internal methods
9785           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
9786             is sent via SendMessage on BeginPaint call on Win32
9787         * XplatUIX11.cs:
9788           - Added EraseWindowBackground() method
9789           - No longer sends WM_ERASEBKGND on .Expose, but on call to
9790             PaintEventStart, which more closely matches Win32 behaviour
9791           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
9792           - Fixed SetFocus() to properly deal with client and whole windows
9793         * Hwnd.cs: Added ErasePending property
9794         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
9795         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
9796
9797 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
9798
9799         * XplatUIOSX.cs:
9800           - Fix hard loop when timers exist.
9801           - Fix bugs with middle and right click for 3 button mice.
9802
9803 2005-03-11  Peter Bartok  <pbartok@novell.com>
9804
9805         * XplatUIX11.cs:
9806           - get_WorkingArea: Need to call X directly, GetWindowPos only
9807             returns cached data now
9808           - Added sanity check to GetWindowPos hwnd usage
9809
9810 2005-03-11  Jackson Harper  <jackson@ximian.com>
9811
9812         * BindingManagerBase.cs: This method isn't used anymore as
9813         PullData now updates the data in the control.
9814
9815 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
9816
9817         * Form.cs: fixes menu drawing on X11
9818         * MenuAPI.cs:  fixes menu drawing on X11
9819
9820 2005-03-11  Peter Bartok  <pbartok@novell.com>
9821
9822         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
9823           from Jonathan Gilbert; should fix bug #73606
9824         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
9825           in Screen coordinates. Thanks, Jordi.
9826         * Form.cs: Added missing attribute
9827
9828 2005-03-11  Peter Bartok  <pbartok@novell.com>
9829
9830         * Form.cs:
9831           - Rudimentary Mdi support
9832           - Removed outdated FormParent code
9833           - Implemented lots of missing properties and methods, still missing
9834             transparency support
9835           - Added missing attributes
9836           - Implemented support for MaximumBounds
9837           - Added firing of various events
9838         * XplatUI.cs: Added SetIcon() method
9839         * XplatUIDriver.cs: Added SetIcon() abstract
9840         * XplatUIOSX.cs: Stubbed out SetIcon() method
9841         * XplatUIX11.cs:
9842           - Implemented SetIcon() support
9843           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
9844           - Switched to unix line endings
9845         * XplatUIWin32.cs:
9846           - Made POINT internal so for can access it as part of MINMAX
9847           - Implemented SetIcon() support
9848           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
9849             native Mdi support again, might have to go managed)
9850         * Control.cs: Now fires the StyleChanged event
9851         * MdiClient.cs: Added; still mostly empty
9852
9853 2005-03-10  Peter Bartok  <pbartok@novell.com>
9854
9855         * SaveFileDialog.cs: Added emtpy file
9856
9857 2005-03-08  Peter Bartok  <pbartok@novell.com>
9858
9859         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
9860           in turn triggers OnCreateContro) when creating a handle for the
9861           first time.
9862         * TextControl.cs: Fixed endless loop in certain cases when
9863           replacing the current selection
9864
9865 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
9866
9867         * ScrollBar.cs:
9868           - Honors NewValue changes in Scroll events allowing apps to change it
9869           - Adds First and Last Scroll events
9870           - Fixes Thumb events
9871
9872 2005-03-07  Peter Bartok  <pbartok@novell.com>
9873
9874         * Hwnd.cs: Added DefaultClientRectangle property
9875         * XplatUI.cs: Now using the X11 driver Where() method, which provides
9876           more detailed debug information
9877         * XplatUIX11.cs:
9878           - Fixed size-change feedback loop, where we would pull an old size
9879             off the queue and mistakenly change our window's size to an
9880             earlier value
9881           - Now compressing ConfigureNotify events, to reduce looping and
9882             redraw issues
9883         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
9884           is called
9885
9886 2005-03-07  Jackson Harper  <jackson@ximian.com>
9887
9888         * Binding.cs: Push data pushes from data -> property. Check if the
9889         property is readonly when attempting to set it.
9890
9891 2005-03-07  Jackson Harper  <jackson@ximian.com>
9892
9893         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
9894         instead of IsSubclassOf. Pulling data now sets the value on the
9895         control.
9896         * PropertyManager.cs:
9897         * CurrencyManager.cs: Just need to pull data when updating now,
9898         because PullData will set the value on the control.
9899
9900 2005-03-04  Jackson Harper  <jackson@ximian.com>
9901
9902         * Binding.cs: Implement data type parsing and converting on pulled
9903         data. TODO: Are there more ways the data can be converted?
9904
9905 2005-03-04  Jackson Harper  <jackson@ximian.com>
9906
9907         * Binding.cs: Support <Property>IsNull checks. Also bind to the
9908         controls Validating method so we can repull the data when the
9909         control loses focus.
9910
9911 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
9912
9913         * ColumnHeader.cs:
9914           - Fixes null string format
9915           
9916         * ListView.cs:
9917           - Adds enum type checks
9918           - Fixes redrawing and recalc need after changing some properties
9919           - Fixes on focus_item set after the event
9920           - Fixes adding columns after the control has been created
9921           
9922         * ThemeWin32Classic.cs:
9923           - Fixes CheckBox focus rectangle
9924           - Fixes ColumnHeader drawing
9925
9926
9927 2005-03-03  Jackson Harper  <jackson@ximian.com>
9928
9929         * Binding.cs: Bind to <Property>Changed events so we can detect
9930         when properties are changed and update the data.
9931
9932 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
9933
9934         * ImageList.cs:
9935           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
9936           - Fixes ImageList constructor with ImageList container
9937           - Fixes image scaling (wrong parameters at DrawImage)
9938
9939 2005-02-02  Jackson Harper  <jackson@ximian.com>
9940
9941         * Binding.cs: Make property searches case-insensitive. Eliminate
9942         some duplicated code.
9943
9944 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
9945
9946         * ComboBox.cs:
9947                 - Handle focus event
9948                 - Fix scrollbar events
9949                 - Discard highlighted item if remove it
9950                 - Fixes SelectedItem with strings
9951
9952 2005-03-01  Peter Bartok  <pbartok@novell.com>
9953
9954         * Control.cs:
9955           - Fixed Visible property, now follows (once again) parent chain
9956             to return false if any control in the chain is visible=false
9957           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
9958           - Fixed several places where is_visible instead of Visible was used
9959           - Implemented FIXME related to focus selection when setting focused
9960             control to be invisible
9961
9962         * XplatUIWin32.cs: Now using proper method to find out if window is
9963           visible. Thanks to Jordi for pointing it out
9964
9965 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
9966
9967         * ComboBox.cs: show/hide scrollbar instead of creating it
9968
9969 2005-02-27  Jackson Harper  <jackson@ximian.com>
9970
9971         * CurrencyManager.cs: Add PositionChanged stuff.
9972
9973 2005-02-27  Peter Bartok  <pbartok@novell.com>
9974
9975         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
9976         * XplatUIOSX.cs: Added GetMenuOrigin() stub
9977         * XplatUIWin32.cs: Implemented GetMenuOrigin()
9978         * XplatUIX11.cs:
9979           - Implemented GetMenuDC()
9980           - Implemented GetMenuOrigin()
9981           - Implemented ReleaseMenuDC()
9982           - Implemented generation of WM_NCPAINT message
9983           - Implemented generation and handling of WM_NCCALCSIZE message
9984         * Form.cs: Added debug helper message for Jordi's menu work
9985         * Hwnd.cs:
9986           - Modified ClientRect property; added setter, fixed getter to handle
9987             setting of ClientRect
9988           - Added MenuOrigin property
9989
9990 2005-02-26  Peter Bartok  <pbartok@novell.com>
9991
9992         * XplatUIX11.cs:
9993           - Destroys the caret if a window that's being destroyed contains it
9994           - Ignores expose events coming from the X11 queue for windows that
9995             already are destroyed
9996           - Now uses the proper variable for handling DestroyNotify, before we
9997             marked the wrong window as destroyed
9998           - Improved/added some debug output
9999
10000 2005-02-26  Peter Bartok  <pbartok@novell.com>
10001
10002         * X11Keyboard.cs: Fixes to work on 64bit systems
10003
10004 2005-02-26  Peter Bartok  <pbartok@novell.com>
10005
10006         * Control.cs:
10007           - Now calling OnHandleDestroyed from DestroyHandle()
10008             instead of Dispose()
10009           - Removed bogus call to controls.Remove() from DestroyHandle()
10010
10011 2005-02-26  Peter Bartok  <pbartok@novell.com>
10012
10013         * Control.cs: Properly destroy child windows when our handle is
10014           destroyed
10015
10016 2005-02-25  Peter Bartok  <pbartok@novell.com>
10017
10018         * XplatUI.cs:
10019           - Added 'DriverDebug' define to allow tracing XplatUI API calls
10020           - Alphabetized Static Methods and Subclasses
10021
10022         * XplatUIX11.cs:
10023           - Added XException class to allow custom handling of X11 exceptions
10024           - Created custom X11 error handler, tied into XException class
10025           - Added support for MONO_XEXCEPTIONS env var to allow the user
10026             to either throw an exception on X errors or continue running
10027             after displaying the error
10028           - Added handling of DestroyNotify message
10029           - Added handler for CreateNotify message (still disabled)
10030           - Improved (tried to at least) Where method to provide file and lineno
10031         * X11Structs.cs:
10032           - Added XErrorHandler delegate
10033           - Added XRequest enumeration (to suppor translation of errors)
10034
10035 2005-02-25  Jackson Harper  <jackson@ximian.com>
10036
10037         * PropertyManager.cs: Implement editing features
10038         * CurrencyManager.cs:
10039         * Binding.cs: First attempt at UpdateIsBinding
10040         * BindingManagerBase.cs: Call UpdateIsBinding before
10041         pushing/pulling data.
10042
10043 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
10044
10045         * MenuAPI.cs: Respect disabled items
10046         * ThemeWin32Classic.cs
10047                 - Caches ImageAttributes creation for DrawImageDisabled
10048                 - Fixes vertical menu line drawing
10049                 - Draws disabled arrows in disable menu items
10050
10051 2005-02-24  Peter Bartok  <pbartok@novell.com>
10052
10053         * Hwnd.cs:
10054           - Added UserData property to allow associating arbitrary objects
10055             with the handle
10056           - Fixed leak; now removing Hwnd references from static windows array
10057         * XplatUIWin32.cs:
10058           - Fixed Graphics leak in PaintEventEnd
10059           - Removed usage of HandleData, switched over to Hwnd class
10060         * HandleData.cs: Removed, obsoleted by Hwnd.cs
10061
10062 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
10063
10064         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
10065         * ScrollBar.cs: Fixes bug
10066         * TrackBar.cs: removes death code, clipping, mimize refreshes,
10067          keyboard navigation enhancements
10068
10069 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
10070
10071         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
10072         * GroupBox.cs: Add control styles
10073         * Label.cs: Add control styles
10074         * UpDownBase.cs: Add control styles
10075         * ListBox.cs: Add control styles
10076         * XplatUIWin32.cs: Fixes wrong parameter order
10077
10078
10079 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
10080
10081         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
10082
10083 2005-02-23  Jackson Harper  <jackson@ximian.com>
10084
10085         * PropertyManager.cs: Implement property binding. This doesn't
10086         seem to work yet though as (I think) there are some bugs in
10087         System.ComponentModel.PropertyDescriptor.
10088         * BindingContext.cs: Use new PropertyManager constructor.
10089
10090 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
10091
10092         * ProgressBar.cs: use clip region in ProgressBar
10093         * ThemeWin32Classic.cs: use clip region in ProgressBar
10094
10095 2004-02-22  Jackson Harper  <jackson@ximian.com>
10096
10097         * BindingsCollection.cs: Remove some debug code.
10098
10099 2005-02-22  Jackson Harper  <jackson@ximian.com>
10100
10101         * BindingContext.cs:
10102         * ControlBindingsCollection.cs:
10103         * CurrencyManager.cs:
10104         * Binding.cs:
10105         * BindingManagerBase.cs: Initial implementation
10106         * BindingsCollection.cs: Add an internal contains method that the
10107         BindingManagerBase uses to ensure bindings aren't added twice to
10108         the collection.
10109         * PropertyManager.cs: Stubbed out.
10110         * Control.cs:
10111         * ContainerControl.cs: Hook up databinding
10112         
10113 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
10114
10115         * XplatUIOSX.cs:
10116           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
10117           Fixed Invalidate/Update chain.
10118           Fixed tons of other minor bugs (this is almost a complete rewrite).
10119
10120 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
10121
10122         * ComboBox.cs: do subcontrol creation when the control is created
10123
10124 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
10125
10126         * Label.cs: fixes image drawing (image and imagelist)
10127         * ThemeWin32Classic.cs: cache brushes
10128         
10129 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
10130
10131         * Form.cs: Move menu drawing code to Theme class
10132         * ComboBox.cs: Move ComboBox drawing code to Theme class
10133         * MenuItem.cs: Move menu drawing code to Theme class
10134         * MenuAPI.cs: Move menu drawing code to Theme class
10135         * ThemeWin32Classic.cs: New methods
10136         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
10137         * ListBox.cs: Move Listbox drawing code to Theme class
10138         * Theme.cs: New methods
10139
10140 2005-02-20  Peter Bartok  <pbartok@novell.com>
10141
10142         * Control.cs:
10143           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
10144             only process mnemonics on those)
10145           - Fixed event sequence for key handling; first calling
10146             ProcessKeyEventArgs now
10147         * TextBoxBase.cs:
10148           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
10149             for processing non-character keys
10150           - Fixed WM_CHAR to generate proper event sequence before processing
10151         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
10152           generation
10153
10154 2005-02-19  Peter Bartok  <pbartok@novell.com>
10155
10156         * UserControl.cs: Added TextChanged event; added attributes
10157         * SizeGrip.cs: Implemented resizing and optional display of grip
10158         * Form.cs: Fixed attribute
10159         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
10160           Changed meaning of ScrollWindow bool argument; instead of the
10161           clear attribute (which will be true usually anyway), it gives the
10162           option of moving child controls as well.
10163         * XplatUIX11.cs:
10164           - Changed to match new ScrollWindow argument
10165           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
10166             now handles the implicit parent window a WM puts around us
10167         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
10168           to work)
10169         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
10170         * TreeView.cs: Adjusted to new ScrollWindow arguments
10171
10172 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
10173
10174         * Form.cs: Menu integration with non-client area
10175         * MenuItem.cs: Menu integration with non-client area
10176         * MenuAPI.cs: Menu integration with non-client area
10177
10178 2005-02-18  Peter Bartok  <pbartok@novell.com>
10179
10180         * MethodInvoker.cs: Added
10181         * MdiLayout.cs: Added
10182         * SendKeys.cs: Started implementation
10183         * ErrorIconAlignment.cs: Added
10184
10185 2005-02-18  Peter Bartok  <pbartok@novell.com>
10186
10187         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
10188         * Form.cs: Added handling for Menu-related Non-client messages
10189
10190 2005-02-17  Peter Bartok  <pbartok@novell.com>
10191
10192         * UpDownBase.cs: Fixed typo, compilation errors
10193         * DomainUpDown.cs: Fixed attribute value
10194
10195 2005-02-16  Miguel de Icaza  <miguel@novell.com>
10196
10197         * UpDownBase.cs: Attach entry events.
10198         Propagate events.
10199         Add ForeColor property, Focused, InterceptArrowKeys (interception
10200         does not work yet).
10201
10202 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
10203
10204         * Form.cs:
10205                 - Redraw non client are on Setmenu
10206                 - Calc proper menu starting point
10207
10208 2005-02-17  Peter Bartok  <pbartok@novell.com>
10209
10210         * Application.cs: Fixed message_filter check
10211
10212 2005-02-17  Peter Bartok  <pbartok@novell.com>
10213
10214         * Application.cs: Now calls registered message filters
10215         * DockStyle.cs: Fixed attribute
10216         * Form.cs: Fixed attribute
10217         * Menu.cs: Fixed attribute
10218         * ToolTip.cs: Fixed attribute
10219         * TreeNode.cs: Added missing attributes and arranged in regions
10220         * PropertyGrid.cs: Fixed signatures
10221         * TreeNodeCollection.cs: Added attributes
10222         * Splitter.cs: Added missing attributes; arranged into regions
10223         * TabPage.cs: Added missing attributes; arranged into regions
10224         * TextBoxBase.cs: Added missing attributes
10225         * TextBox.cs: Added missing attributes
10226         * ArrangeDirection.cs: Added missing attributes
10227         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
10228         * ToolBarButton.cs: Fixed attributes
10229         * AnchorStyles.cs: Fixed attribute
10230         * TrackBar.cs: Fixed attributes
10231         * TabControl.cs: Added missing attributes and arranged into regions
10232         * ToolBar.cs: Fixed attribute
10233         * StatusBar.cs: Fixed signature, organized into regions and added
10234           attributes
10235         * StatusBarPanel.cs: Fixed attributes
10236         * ContentsResizedEventArgs.cs: Implemented
10237         * ContentsResizedEventHandler.cs: Implemented
10238         * DateBoldEventArgs.cs: Implemented
10239         * DateBoldEventHandler.cs: Implemented
10240         * UpDownEventArgs.cs: Implemented
10241         * UpDownEventHandler.cs: Implemented
10242         
10243 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
10244
10245         * Form.cs: first Menu NC refactoring
10246         * MenuAPI.cs: first Menu NC refactoring
10247         
10248 2005-02-16  Peter Bartok  <pbartok@novell.com>
10249
10250         * ImeMode.cs: Added missing attributes
10251         * Menu.cs: Fixed attribute
10252         * GroupBox.cs: Fixed attribute
10253         * Label.cs: Fixed attribute
10254         * ColorDialog.cs (RunDialog): Removed TODO attribute
10255         * ComboBox.cs: Fixed attributes
10256         * ListControl.cs: Added missing attributes
10257         * PropertyGrid.cs: Fixed attributes
10258         * Control.cs: Fixed attributes
10259         * ListViewItem.cs: Added TypeConverter attribute
10260         * NotifyIcon.cs: Fixed attributes
10261         * ListView.cs: Fixed attributes
10262         * ButtonBase.cs: Fixed attribute
10263         * ImageList.cs: Added missing attributes
10264         * ContainerControl.cs: Fixed signature
10265         * CheckedListBox.cs: Fixed attribute; added missing attributes
10266         * Panel.cs: Fixed attributes
10267         * PropertyTabChangedEventArgs.cs: Added missing attribute
10268         * PropertyValueChangedEventArgs.cs: Added missing attribute
10269         * Binding.cs: Fixed attribute
10270         * ListViewItemConverter: Implemented ListViewSubItemConverter class
10271         * ListBox.cs: Fixed attribute; added missing attributes;
10272         * ScrollableControl.cs: Added missing attributes
10273         * PictureBox.cs: Added missing attributes; implemented missing property
10274         * DateTimePicker.cs: Added missing attributes
10275         * Theme.cs (ToolWindowCaptionHeight): Fixed type
10276         * MonthCalendar.cs: Fixed attributes
10277         * StatusBarPanel.cs: Added missing attributes
10278         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
10279
10280 2005-02-16  Peter Bartok  <pbartok@novell.com>
10281
10282         * TextBoxBase.cs: The previous method to enforce height yet remember
10283           the requested high was less than ideal, this is an attempt to do
10284           it better.
10285         * Control.cs: Added comment about possible problem
10286         * Copyright: Updated format
10287         * GridItemType.cs: Fixed swapped values
10288
10289 2005-02-15  Jackson Harper  <jackson@ximian.com>
10290
10291         * BaseCollection.cs: Use property so we never access an
10292         uninitialized list. Also initialize the list in the property.
10293
10294 2005-02-15  Peter Bartok  <pbartok@novell.com>
10295
10296         * GroupBox.cs (ProcessMnemonic): Implemented
10297         * Label.cs (ProcessMnemonic): Implemented
10298         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
10299           hotkeys
10300
10301 2005-02-15  Peter Bartok  <pbartok@novell.com>
10302
10303         * RadioButton.cs (ProcessMnemonic): Implemented
10304         * CheckBox.cs (ProcessMnemonic): Implemented
10305         * Control.cs:
10306           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
10307             handling
10308           - Added internal method to allow calling ProcessMnemonic from other
10309             controls
10310         * ContainerControl.cs:
10311           - Started support for handling validation chain handling
10312           - Implemented ProcessMnemonic support
10313           - Added Select() call to Active, to make sure the active control
10314             receives focus
10315         * Form.cs: Setting toplevel flag for Forms (this was lost in the
10316           FormParent rewrite)
10317         * ThemeWin32Classic.cs:
10318           - DrawCheckBox(): Fixed stringformat to show hotkeys
10319           - DrawRadioButton(): Fixed stringformat to show hotkeys
10320         * CommonDialog.cs: Removed WndProc override, not needed
10321
10322 2005-02-14  Peter Bartok  <pbartok@novell.com>
10323
10324         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
10325           missed those in the rewrite
10326
10327 2005-02-14  Miguel de Icaza  <miguel@novell.com>
10328
10329         * NumericUpDown.cs (Increment, ToString): Add.
10330         (DecimalPlaces): implement.
10331         
10332         Add attributes.
10333         
10334         * UpDownBase.cs: Add the designer attributes.
10335
10336 2005-02-13  Peter Bartok  <pbartok@novell.com>
10337
10338         * Panel.cs: Removed border_style, now in Control
10339         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
10340           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
10341
10342 2005-02-13  Peter Bartok  <pbartok@novell.com>
10343
10344         * MouseButtons.cs: Added missing attributes
10345         * XplatUIStructs.cs: Added enumeration for title styles
10346         * LeftRightAlignment.cs: Added missing attributes
10347         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
10348           it compatible with Graphics.FromHwnd()
10349         * SelectedGridItemChangedEventArgs.cs: Fixed property type
10350         * Keys.cs: Added missing attributes
10351         * SelectionRange.cs: Added missing attributes
10352         * SelectionRangeConverter.cs: Added
10353         * XplatUI.cs:
10354           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
10355             ReleaseMenuDC methods
10356           - Renamed ReleaseWindow to UngrabWindow
10357           - Added proper startup notice to allow version identification
10358         * Form.cs:
10359           - Added missing attributes
10360           - Removed FormParent concept
10361         * Label.cs: Removed border_style field, now in Control
10362         * RadioButton.cs: Now properly selects RadioButton when focus is
10363           received
10364         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
10365         * Control.cs:
10366           - Added missing attributes
10367           - Added borderstyle handling
10368           - Removed FormParent concept support
10369           - Fixed calls to XplatUI to match changed APIs
10370           - Fixed bug that would case us to use disposed Graphics objects
10371           - Removed unneeded internal methods
10372           - PerformLayout(): Fixed to handle DockStyle.Fill properly
10373           - SelectNextControl(): Fixed to properly check common parents
10374         * TextBoxBase.cs: Removed border_style field (now in Control)
10375         * MessageBox.cs:
10376           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
10377             fixed calculations for form size
10378           - Added support for localized strings and icons
10379           - Improved form size calculations, added border
10380         * ListView.cs: Removed border_style field (now in Control)
10381         * X11Structs.cs: Moved several structs from X11 driver here
10382         * X11Keyboard.cs: Changed debug message
10383         * Application.cs: Removed FormParent concept support
10384         * CommonDialog.cs:
10385           - Resetting end_modal flag
10386           - Removed FormParent concept support
10387         * NativeWindow.cs: Removed FormParent concept support
10388         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
10389           Client area and Non-Client whole window to allow support for WM_NC
10390           messages
10391         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
10392           prevent using it until it supports Hwnd as per Geoff Norton's request
10393         * ToolBar.cs: Fixed drawing, was not doing proper drawing
10394         * PictureBox.cs: Removed border_style field, now in Control
10395         * XplatUIWin32.cs: Added new driver methods
10396
10397 2005-02-12  Peter Bartok  <pbartok@novell.com>
10398
10399         * OpacityConverter.cs: Implemented
10400         * Hwnd.cs: Internal class to support drivers that need to emulate
10401           client area/non-client area window behaviour
10402
10403 2005-02-11  Peter Bartok  <pbartok@novell.com>
10404
10405         * KeysConverter.cs: Implemented
10406
10407 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
10408
10409         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
10410         * LinkLabel: Added missing attributes
10411         * MainMenu.cs: fixes ToString
10412         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
10413         * ListBox.cs: fixes event position
10414         * TrackBar.cs: adds missing attributes and events
10415         
10416 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
10417
10418         * MenuItem.cs: Use SystemInformation and bug fixes
10419         * MenuAPI.cs: Use SystemInformation and bug fixes
10420
10421 2005-02-09  Jackson Harper  <jackson@ximian.com>
10422
10423         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
10424         their keystate otherwise things like VK_MENU get stuck "on".
10425
10426 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
10427
10428         * ListBox.cs: Fixes AddRange bug
10429         
10430 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
10431
10432         * ProgressBar.cs
10433                 - Add missing attributes
10434                 - Add missing method
10435                 
10436         * CheckedListBox.cs: Added missing attributes
10437                 - Add missing attributes
10438                 - Remove extra method
10439         
10440         * ComboBox.cs: Added missing attributes
10441         * VScrollBar.cs: Added missing attributes
10442         * ScrollBar.cs:  Added missing attributes
10443         * ListBox.cs: Fixes signature, add missing consts
10444         * LinkArea.cs:   Added missing attributes
10445         
10446
10447 2005-02-08  Peter Bartok  <pbartok@novell.com>
10448
10449         * Menu.cs: Added missing attributes
10450         * MainMenu.cs: Added missing attributes
10451         * GroupBox.cs: Added missing attributes
10452         * Label.cs: Added missing attributes
10453         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
10454         * ColorDialog.cs:
10455           - Added Instance and Options properties
10456           - Added missing attributes
10457         * Cursor.cs: Made Serializable
10458         * NotifyIcon: Added missing attributes
10459         * MenuItem.cs: Added missing attributes
10460         * TextBoxBase.cs: Implemented AppendText() and Select() methods
10461         * Panel.cs: Added Missing attributes
10462         * MonthCalendar.cs: Fixed CreateParams
10463
10464 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
10465         
10466         * LinkLabel.cs:
10467                 - Fixes signature
10468                 - Fixes issues with links
10469                 - Adds the class attributes
10470
10471 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
10472         
10473         * ComboBox.cs:
10474                 - Fixes button when no items available in dropdown
10475                 - Fixes repainting problems
10476                 - Adds the class attributes
10477                 
10478 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
10479
10480         * XplatUIOSX.cs: Detect the menu bar and title bar height from
10481         the current theme.  Cache these on startup.
10482
10483 2005-02-07  Jackson Harper  <jackson@ximian.com>
10484
10485         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
10486         the scrollbar buttons when they are depressed.
10487
10488 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
10489
10490         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
10491         Get the display size from the main displayid.  We currently dont
10492         support multiple display configurations.
10493
10494 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
10495
10496         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
10497
10498 2005-02-07  Miguel de Icaza  <miguel@novell.com>
10499
10500         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
10501
10502 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
10503
10504         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
10505
10506 2005-02-04  Jackson Harper  <jackson@ximian.com>
10507
10508         * ThemeWin32Classic.cs: Respect the clipping rect when
10509         drawing. Only fill the intersection of clips and rects so there
10510         isn't a lot of large fills.
10511         * ScrollBar.cs: Pass the correct clipping rect to the theme
10512         engine. Remove some debug code.
10513
10514 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
10515         
10516         * DateTimePicker.cs:
10517                 - Fixed crash on DateTime.Parse, use Constructor instead
10518
10519 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
10520         
10521         * MenuItem.cs:
10522         * MenuAPI.cs:
10523                 - Owner draw support (MeasureItem and DrawItem)
10524
10525 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
10526         
10527         *  Menu.cs:
10528                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
10529                 - Fixes MenuItems.Add range
10530         * MenuItem.cs:
10531                 - MergeMenu and Clone and CloneMenu functions
10532
10533 2005-02-03  Jackson Harper  <jackson@ximian.com>
10534
10535         * ScrollBar.cs: Make abstract
10536         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
10537         is abstract.
10538
10539 2005-02-03  Jackson Harper  <jackson@ximian.com>
10540
10541         * ScrollBar.cs: First part of my scrollbar fixups. This removes
10542         all the unneeded refreshes and uses invalidates with properly
10543         computed rects.
10544
10545 2005-02-03  Peter Bartok  <pbartok@novell.com>
10546
10547         * ComponentModel.cs: Added
10548         * IDataGridEditingService.cs: Added
10549         * Timer.cs: Added missing attributes
10550         * ToolTip.cs: Added missing attributes
10551
10552 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
10553
10554         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
10555
10556 2005-02-03  Peter Bartok  <pbartok@novell.com>
10557
10558         * ListBox.cs: Added missing attributes
10559
10560 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
10561         
10562         * ListBox.cs:
10563                 - Fixes font height after font change
10564                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
10565                 
10566 2005-02-02  Peter Bartok  <pbartok@novell.com>
10567
10568         * HandleData.cs: Introduced static methods to allow class
10569           to be more self-contained and track it's own HandleData objects
10570         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
10571           HandleData to use new static methods
10572
10573 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
10574
10575         * Combobox.cs:
10576                 - Fixes default size and PreferredHeight
10577                 - Missing events
10578                 - ObjectCollection.Insert implementation
10579                 
10580         * ListControl.cs
10581                 - Fixes signature
10582         * ListBox.cs:
10583                 - Several fixes
10584                 - ObjectCollection.Insert implementation
10585                 - No selection after clean
10586                 - Small fixes
10587
10588 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
10589
10590         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
10591
10592 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
10593
10594         * Combobox.cs:
10595                 - Caches ItemHeight calculation for OwnerDrawVariable
10596                 - Handles dropdown properly
10597                 - Fixes several minor bugs
10598
10599 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
10600
10601         * ListBox.cs:
10602                 - Fixes 71946 and 71950
10603                 - Fixes changing Multicolumn on the fly
10604                 - Fixes keyboard navigation on Multicolumn listboxes
10605
10606 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
10607         
10608         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
10609         crash reporter log.
10610
10611 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
10612
10613         * XplatUIOSX.cs: Allow applications to actually exit.
10614
10615 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
10616
10617         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
10618         their parent at creation time rather than lazily later.  Fixes a major
10619         regression we were experiencing.
10620
10621 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
10622
10623         * ThemeWin32Classic.cs: more date time picker painting fixes
10624         * DateTimePicker.cs: more monthcalendar drop down fixes
10625         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
10626
10627 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
10628
10629         * ScrollBar.cs:
10630                 - When moving the thumb going outside the control should stop the moving
10631                 - Adds the firing of missing events
10632                 - Fixes no button show if Size is not specified
10633                 - End / Home keys for keyboard navigation
10634
10635 2005-01-30  Peter Bartok  <pbartok@novell.com>
10636
10637         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
10638           sanity check to prevent theoretical loop
10639         * XplatUIWin32.cs (SetVisible): Removed debug output
10640         * XplatUIX11.cs (SystrayChange): Added sanity check
10641         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
10642         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
10643           behaviour, valid until the X11 client window rewrite is done
10644         * TextBox.cs (ctor): Setting proper default foreground and background
10645           colors
10646
10647 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
10648
10649         * Theme: Added DrawDateTimePicker to interface
10650         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
10651         * DateTimePicker.cs: Created (still needs keys and painting code)
10652         * DateTimePickerFormat.cs: added
10653         * MonthCalendar.cs: fixed CreateParams for popup window mode
10654           
10655 2005-01-29  Peter Bartok  <pbartok@novell.com>
10656
10657         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
10658           this should also the calculations for ligher/darker
10659         * Theme.cs: Fixed defaults for ScrollBar widths/heights
10660
10661 2005-01-29  Peter Bartok  <pbartok@novell.com>
10662
10663         * ArrangeDirection.cs: Added
10664         * ArrangeStartingPositon.cs: Added
10665         * SystemInformation.cs: Implemented
10666         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
10667           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
10668           used by SystemInformation class
10669         * X11Strucs.cs: Added XSizeHints structure
10670         * MenuAPI.cs:
10671           - Fixed CreateParams to make sure the menu window is always visible
10672           - TrackPopupMenu: Added check to make sure we don't draw the
10673             menu offscreen
10674
10675 2005-01-29  Peter Bartok  <pbartok@novell.com>
10676
10677         * HandleData.cs: Added method for altering invalid area
10678         * TextBoxBase.cs: Implemented TextLength
10679
10680 2005-01-28  Peter Bartok  <pbartok@novell.com>
10681
10682         * XplatUIX11.cs: Improvement over last patch, not sending
10683           the WM_PAINT directly anymore, instead we scroll any pending
10684           exposed areas and let the system pick out the WM_PAINT later
10685
10686 2005-01-28  Peter Bartok  <pbartok@novell.com>
10687
10688         * SWF.csproj: Deleted, no longer used. Instead,
10689           Managed.Windows.Forms/SWF.csproj should be used
10690         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
10691           directly, to avoid a potential race condition with the next
10692           scroll
10693
10694 2005-01-28  Peter Bartok  <pbartok@novell.com>
10695
10696         * XplatUI.cs: Made class internal
10697
10698 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
10699
10700         * CheckedListBox.cs:
10701                 - Draw focus
10702                 - Fixed Drawing
10703                 - Missing methods and events
10704
10705 2005-01-27  Peter Bartok  <pbartok@novell.com>
10706
10707         * Application.cs (Run): Don't use form if we don't have one
10708
10709 2005-01-27  Peter Bartok  <pbartok@novell.com>
10710
10711         * TextBoxBase.cs (get_Lines): Fixed index off by one error
10712
10713 2005-01-27  Peter Bartok  <pbartok@novell.com>
10714
10715         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
10716         * GridItem.cs: Added; Patch by Jonathan S. Chambers
10717         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
10718         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
10719         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
10720         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
10721         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
10722         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
10723         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
10724         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
10725         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
10726         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
10727
10728 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
10729
10730         * Combobox.cs:
10731                 - Draw focus on Simple Combobox
10732                 - Fixes drawing issues
10733                 - fixes 71834
10734
10735 2005-01-27  Peter Bartok  <pbartok@novell.com>
10736
10737         * Form.cs:
10738           - Place window in default location, instead of hardcoded 0/0
10739           - Send initial LocationChanged event
10740         * Control.cs:
10741           - UpdateBounds after creation to find out where the WM placed us
10742           - Make sure that if the ParentForm changes location the Form
10743             is notified
10744         * XplatUIX11.cs: XGetGeometry will not return the coords relative
10745             to the root, but to whatever the WM placed around us.
10746             Translate to root coordinates before returning toplevel
10747             coordinates
10748         * XplatUIWin32.cs: Removed debug output
10749         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
10750           flag to GetWindowPos, to allow translation of coordinates on X11
10751
10752 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
10753
10754         * ListBox.cs: connect LostFocus Event
10755
10756 2005-01-27  Peter Bartok  <pbartok@novell.com>
10757
10758         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
10759           XplatUIX11.cs: Extended the Systray API
10760         * Form.cs: Removed debug output
10761         * Application.cs: Fixed focus assignment, always need to call
10762           XplatUI.Activate() since Form.Activate() has rules that may
10763           prevent activation
10764         * NotifyIcon.cs: Should be complete now
10765         * ToolTip.cs: Worked around possible timer bug
10766
10767 2005-01-27  Jackson Harper  <jackson@ximian.com>
10768
10769         * TabControl.cs:
10770         - Only invalidate the effected tabs when the
10771         selected index changes. This reduces drawing and gets rid of some
10772         flicker.
10773         - Only refresh if the tabs need to be shifted, otherwise only
10774         invalidate the slider button.
10775         - On windows the tabs are not filled to right if the slider is
10776         visible.
10777         
10778 2005-01-27  Jackson Harper  <jackson@ximian.com>
10779
10780         * TabControl.cs: Only refresh on mouseup if we are showing the
10781         slider. Also only invalidate the button whose state has changed.
10782
10783 2005-01-26  Peter Bartok  <pbartok@novell.com>
10784
10785         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
10786         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
10787           and SystrayRemove() methods
10788         * XplatUIOSX.cs: Stubbed Systray methods
10789         * XplatUIX11.cs:
10790           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
10791             methods
10792           - Fixed broken XChangeProperty calls (marshalling messed up things)
10793         * X11Structs.cs: Added enums and structs required for Size hinting
10794         * NotifyIcon.cs: Added & implemented
10795
10796 2005-01-26  Jackson Harper  <jackson@ximian.com>
10797
10798         * TabControl.cs: Space vertically layed out tabs properly.
10799
10800 2005-01-26  Peter Bartok  <pbartok@novell.com>
10801
10802         * Form.cs (CreateClientParams): Always set the location to 0,0
10803           since we're a child window.
10804
10805         * Control.cs (SetVisibleCore): Always explicitly setting the location
10806           of a toplevel window, apparently X11 doesn't like to move windows
10807           while they're not mapped.
10808
10809 2005-01-26  Jackson Harper  <jackson@ximian.com>
10810
10811         * TabControl.cs: Implement FillToRight size mode with vertically
10812         rendered tabs.
10813
10814 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
10815
10816         * ControlPaint.cs, ThemeWin32Classic.cs
10817                 - Fixes DrawFocusRectangle
10818
10819 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
10820
10821         * MenuAPI.cs:
10822                 - MenuBar tracking only starts when item is first clicked
10823                 - Fixes menu hidding for multiple subitems
10824                 - Unselect item in MenuBar when item Executed
10825                 - Fixes bug 71495
10826
10827 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
10828
10829         * ListControl.cs:
10830                 - IsInputKey for ListBox
10831         * ListBox.cs:
10832                 - Focus item
10833                 - Shift and Control item selection
10834                 - Implement SelectionMode.MultiExtended
10835                 - Fixes RightToLeft
10836         * ComboBox.cs:
10837                 - IsInputKey implemented
10838                 - Do not generate OnTextChangedEdit on internal txt changes
10839                 
10840 2005-01-23  Peter Bartok  <pbartok@novell.com>
10841
10842         * AccessibleObject.cs: Partially implemented Select()
10843         * MonthCalendar.cs: Added missing attributes and events
10844         * Form.cs: Fixed CreateParams behaviour, now controls derived from
10845           form can properly override CreateParams.
10846         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
10847           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
10848           Control performs Invalidate & Update
10849         * NativeWindow (CreateHandle): Added special handling for Form
10850           and Form.FormParent classes to allow overriding of From.CreateParams
10851         * Control.cs:
10852           - ControlNativeWindow: Renamed 'control' variable to more intuitive
10853             name 'owner'
10854           - ControlNativeWindow: Added Owner property
10855           - Removed usage of Refresh() on property changes, changed into
10856             Invalidate(), we need to wait until the queue is processed for
10857             updates, direct calls might cause problems if not all vars for
10858             Paint are initialized
10859           - Added call to UpdateStyles() when creating the window, to set any
10860             styles that CreateWindow might have ignored.
10861           - Added support for Form CreateParent overrides to UpdateStyles()
10862         * MessageBox.cs: Removed no longer needed FormParent override stuff,
10863           CreateParams are now properly overridable
10864         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
10865           CreateParams are now properly overridable
10866
10867 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
10868
10869         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
10870         OnTextBoxChanged.
10871
10872         Capture LostFocus and OnTextBoxChanged.  The later introduces a
10873         recursive invocation that I have not figured out yet.
10874
10875         Reset the timer when not using (it was accumulating).
10876
10877
10878         (OnTextBoxChanged): Set UserEdit to true here to track whether the
10879         user has made changes that require validation.
10880
10881         Reset changing to avoid loops.
10882
10883 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
10884
10885         * NumericUpDown.cs: Display value at startup.
10886
10887         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
10888         ValidateEditText.
10889
10890         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
10891         filled in.  Added some basic parsing of text.
10892
10893         Still missing the OnXXX method overrides, and figuring out the
10894         events that must be emitted.
10895
10896         * UpDownBase.cs: Handle UserEdit on the Text property.
10897         
10898 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
10899
10900         * ComboBox.cs:
10901           - Fixes IntegralHeight
10902           - ToString method
10903
10904 2005-01-21  Jackson Harper  <jackson@ximian.com>
10905
10906         * TabControl.cs: Set the SelectedIndex property when SelectedTab
10907         is set so that the page visibility is updated and the tabs are
10908         sized correctly.
10909
10910 2005-01-21  Jackson Harper  <jackson@ximian.com>
10911
10912         * TabControl.cs: Use cliping rectangle for blitting. Give the
10913         theme the clipping rect so we can do clipping while
10914         drawing. Remove some debug code.
10915
10916 2005-01-21  Jackson Harper  <jackson@ximian.com>
10917
10918         * TabPage.cs: Add a new method so tab pages can force the tab
10919         control to recalculate the tab page sizes.
10920         * TabControl.cs: UpdateOwner needs to make the tab control recalc
10921         sizes.
10922
10923 2005-01-20  Jackson Harper  <jackson@ximian.com>
10924
10925         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
10926
10927 2005-01-20  Jackson Harper  <jackson@ximian.com>
10928
10929         * TreeView.cs: Set the bounds for nodes properly. They were
10930         getting screwed up when checkboxes were not enabled, but images
10931         were.
10932
10933 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
10934
10935         * ListBox.cs:
10936                 - Owner draw support
10937                 - Fixes
10938                 
10939 2005-01-20  Jackson Harper  <jackson@ximian.com>
10940
10941         * XplatUIStructs.cs: More misc keys
10942         * X11Keyboard.cs: Ignore some control keys.
10943
10944 2005-01-20  Jackson Harper  <jackson@ximian.com>
10945
10946         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
10947         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
10948
10949 2005-01-19  Peter Bartok  <pbartok@novell.com>
10950
10951         * Control.cs: Un-selecting the control when it is loosing focus
10952
10953 2005-01-19  Jackson Harper  <jackson@ximian.com>
10954
10955         * TreeView.cs: Hook up to the text controls leave event so we can
10956         end editing when the users clicks outside the text box.
10957         
10958 2005-01-19  Jackson Harper  <jackson@ximian.com>
10959
10960         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
10961         get set in the conversion array.
10962
10963 2005-01-19  Peter Bartok  <pbartok@novell.com>
10964
10965         * Application.cs (ModalRun): Added a call to CreateControl to ensure
10966           focus is properly set
10967         * Button.cs:
10968           - Added missing attributes
10969           - removed styles, those are already set in the base class
10970         * ButtonBase.cs:
10971           - Added missing attributes
10972           - Added clip window styles
10973         * CheckBox.cs: Added missing attributes
10974         * CommonDialog.cs:
10975           - FormParentWindow.CreateParams: Added required clip styles
10976         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
10977           also filters modifier keys
10978         * MessageBox.cs:
10979           - Added assignment of Accept and Cancel button to enable Enter
10980             and Esc keys in MessageBox dialogs
10981           - FormParentWindow.CreateParams: Added required clip styles
10982         * RadioButton.cs: Added missing attributes
10983         * TextControl.cs: No longer draws selection if control does not
10984           have focus
10985         * TextBoxBase.cs:
10986           - Now draws simple rectangle around test area to make it obvious
10987             there's a control. This is a hack until we properly support borders
10988           - A few simple fixes to support selections better, now erases selected
10989             text when typing, and resets selection when using movement keys
10990
10991 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
10992
10993         * UpDownBase.cs: Added some new properties.
10994
10995         * DomainUpDown.cs: Implement a lot to get my test working.
10996
10997 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
10998
10999         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
11000
11001 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
11002
11003         * OSXStructs (WindowAttributes): Fixed csc complaints
11004
11005 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
11006
11007         * XplayUIOSX.cs:
11008           OSXStructs.cs: Initial refactor to move enums and consts into
11009           OSXStructs and use them in the driver for greater readability.
11010
11011 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
11012
11013         * XplatUIOSX.cs: Initial support for Standard Cursors.
11014         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
11015
11016 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
11017
11018         * ComboBox.cs: ability to change style when the ctrl is already
11019         created, missing methods and events, bug fixes, signature fixes
11020
11021 2005-01-19  Peter Bartok  <pbartok@novell.com>
11022
11023         * Cursors.cs (ctor): Added ctor to fix signature
11024
11025 2005-01-18  Peter Bartok  <pbartok@novell.com>
11026
11027         * Button.cs: Implemented DoubleClick event
11028         * ButtonBase.cs:
11029           - Fixed keyboard handling to behave like MS, where the press of
11030             Spacebar is equivalent to a mousedown, and the key release is
11031             equivalent to mouseup. Now a spacebar push will give the same
11032             visual feedback like a mouse click.
11033           - Added missing attributes
11034           - Added ImeModeChanged event
11035           - Added support for generating DoubleClick event for derived classes
11036         * CheckBox.cs:
11037           - Implemented DoubleClick event
11038           - Added missing attributes
11039         * CommonDialog.cs: Added missing attribute
11040         * ContextMenu.cs: Added missing attributes
11041         * RadioButton.cs:
11042           - AutoChecked buttons do not allow to be unselected when clicked
11043             (otherwise we might end up with no selected buttons in a group)
11044           - Added missing attributes
11045           - Implemented DoubleClickEvent
11046         * ThreadExceptionDialog.cs: Enabled TextBox code
11047
11048 2005-01-18  Peter Bartok  <pbartok@novell.com>
11049
11050         * Form.cs: Removed debug output
11051         * Button.cs: Added support for DoubleClick method
11052
11053 2005-01-18  Peter Bartok  <pbartok@novell.com>
11054
11055         * Form.cs:
11056           - Added method to parent window that allows triggering size
11057             calculations when a menu is added/removed
11058           - set_Menu: Cleaned up mess from early days of Form and Control,
11059             now properly triggers a recalc when a menu is added/removed
11060           - Added case to select form itself as focused form if no child
11061             controls exist
11062           - Added PerformLayout call when showing dialog, to ensure properly
11063             placed controls
11064         * Control.cs:
11065           - Select(): Made internal so Form can access it
11066           - Focus(): Only call Xplat layer if required (avoids loop), and sets
11067             status
11068         * Application.cs (Run): Removed hack and calls PerformLayout instead
11069           to trigger calculation when Form becomes visible
11070
11071 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
11072
11073         * ComboBox.cs: fixes for ownerdraw
11074
11075 2005-01-18  Peter Bartok  <pbartok@novell.com>
11076
11077         * TextControl.cs:
11078           - Sentinel is no longer static, each Document gets it's own, this
11079             avoids locking or alternatively overwrite problems when more
11080             than one text control is used simultaneously.
11081           - Switched to use Hilight and HilightText brushes for text selection
11082
11083         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
11084
11085 2005-01-18  Peter Bartok  <pbartok@novell.com>
11086
11087         * Control.cs:
11088           - Hooked up the following events:
11089                 o ControlAdded
11090                 o ControlRemoved
11091                 o HandleDestroyed
11092                 o ImeModeChanged
11093                 o ParentChanged
11094                 o TabStopChanged
11095                 o Invalidated
11096                 o SystemColorsChanged
11097                 o ParentFontChanged
11098                 o Move
11099           - Removed debug output
11100           - Added a call to the current theme's ResetDefaults when a color change
11101             is detected
11102         * Form.cs: Now setting the proper ImeMode
11103         * Theme.cs: Defined a method to force recreation of cached resources
11104           and rereading of system defaults (ResetDefaults())
11105         * ThemeWin32Classic.cs: Added ResetDefaults() stub
11106
11107 2005-01-17  Peter Bartok  <pbartok@novell.com>
11108
11109         * Control.cs: Added missing attributes
11110
11111 2005-01-17  Jackson Harper  <jackson@ximian.com>
11112
11113         * TreeNode.cs: Implement editing. Add missing properties selected
11114         and visible.
11115         * TreeView.cs: Implement node editing. Also some fixes to use
11116         Invalidate (invalid area) instead of Refresh when selecting.
11117
11118 2005-01-17  Peter Bartok  <pbartok@novell.com>
11119
11120         * Control.cs:
11121           - Implemented InvokeGotFocus() method
11122           - Implemented InvokeLostFocus() method
11123           - Implemented InvokePaint() method
11124           - Implemented InvokePaintBackground() method
11125           - Implemented InvokeClick() method
11126           - Implemented FindForm() method
11127           - Implemented RectangleToClient() method
11128           - Implemented ClientToRectangle() method
11129           - Implemented ResetBackColor() method
11130           - Implemented ResetCursor() method
11131           - Implemented ResetFont() method
11132           - Implemented ResteForeColor() method
11133           - Implemented ResetImeMode() method
11134           - Implemented ResetLeftToRight() method
11135           - Implemented ResetText() method
11136           - Implemented Scale() methods
11137           - Implemented ScaleCore() method
11138           - Implemented Update() method
11139           - Removed unused variables
11140           - Stubbed AccessibilityNotifyClients and
11141             ControlAccessibleObject.NotifyClients() methods (dunno what to do
11142             with those yet)
11143           - Now setting proper default for RightToLeft property
11144           - Fixed bug in SetClientSizeCore that would cause windows to get
11145             really big
11146           - Now sending Click/DoubleClick events
11147           - Now selecting controls when left mouse button is clicked on
11148             selectable control
11149         * AccessibleEvents.cs: Added
11150         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
11151         * XplatUIOSX.cs: Stubbed UpdateWindow() method
11152         * XplatUIWin32.cs: Implemented UpdateWindow() method
11153         * XplatUIX11.cs: Implemented UpdateWindow() method
11154         * Form.cs: Removed stray semicolon causing CS0162 warning
11155         * ThemeWin32Classic.cs: Fixed unused variable warnings
11156         * ScrollableControl.cs: Now calls base method for ScaleCore
11157         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
11158           style to avoid interference with internal click handler (which is
11159           different than standard Control click handling)
11160         * RadioButton.cs:
11161           - Now unchecks all sibling radio buttons when control is
11162             selected (Fixes #68756)
11163           - Removed internal tabstop variable, using the one inherited from
11164             Control
11165
11166 2005-01-17  Jackson Harper  <jackson@ximian.com>
11167
11168         * NavigateEventArgs.cs: Fix base type.
11169         * LinkLabel.cs: Sig fix
11170         
11171 2005-01-17  Jackson Harper  <jackson@ximian.com>
11172
11173         * TreeView.cs: Only invalidate the effected nodes bounds when
11174         selecting nodes.
11175
11176 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
11177
11178         * XplatUIWin32.cs: fixes Win32 marshaling
11179         * XplatUIX11.cs: fixes method signature
11180
11181 2005-01-17  Peter Bartok  <pbartok@novell.com>
11182
11183         * XplatUIX11.cs: Clean up resources when we no longer need them
11184
11185 2005-01-17  Peter Bartok  <pbartok@novell.com>
11186
11187         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
11188           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
11189           and DestroyCursor() methods.
11190         * Cursor.cs: Partially implemented, now supports standard cursors;
11191           still contains some debug code
11192         * Cursors.cs: Implemented class
11193         * Control.cs:
11194           - WndProc(): Added handling of WM_SETCURSOR message, setting the
11195             appropriate cursor
11196           - Implemented Cursor property
11197           - Replaced break; with return; more straightforwar and possibly
11198             faster
11199           - Now properly setting the result for WM_HELP
11200         * X11Structs.cs: Added CursorFontShape enum
11201         * XplatUIStructs.cs:
11202           - Added StdCursor enum (to support DefineStdCursor() method)
11203           - Added HitTest enum (to support sending WM_SETCURSOR message)
11204         * XplatUIX11.cs:
11205           - Now sends the WM_SETCURSOR message
11206           - Implemented new cursor methods
11207         * XplatUIOSX.cs: Stubbed new cursor methods
11208         * XplatUIWin32.cs:
11209           - Implemented new cursor methods
11210           - Added GetSystemMetrics function and associated enumeration
11211
11212 2005-01-15  Peter Bartok  <pbartok@novell.com>
11213
11214         * Control.cs:
11215           - WndProc(): Now handles EnableNotifyMessage
11216           - SelectNextControl(): Fixed bug where if no child or sibling
11217             controls exist we looped endlessly
11218
11219 2005-01-14  Jackson Harper  <jackson@ximian.com>
11220
11221         * TreeView.cs: Recalculate the tab pages when a new one is added
11222         so that the proper bounding rects are created.
11223
11224 2005-01-14  Jackson Harper  <jackson@ximian.com>
11225
11226         * TreeView.cs: Draw a gray box instead of a grip in the lower
11227         right hand corner when there are both horizontal and vertical
11228         scroll bars.
11229
11230 2005-01-14  Jackson Harper  <jackson@ximian.com>
11231
11232         * Control.cs: When erasing backgrounds use FromHwnd instead of
11233         FromHdc when there is a NULL wparam. This occurs on the X driver.
11234         * XplatUIX11.cs: Set the wparam to NULL.
11235
11236 2005-01-13  Jackson Harper  <jackson@ximian.com>
11237
11238         * PictureBox.cs: Implement missing methods (except ToString, need
11239         to test that on windows) and events. When visibility is changed we
11240         need to redraw the image because the buffers are killed. When size
11241         is changed refresh if the sizemode needs it.
11242
11243 2005-01-13  Peter Bartok  <pbartok@novell.com>
11244
11245         * Control.cs (SelectNextControl): Was using wrong method to select
11246           a control
11247
11248 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
11249
11250         * ComboBox.cs: fixes dropstyle
11251
11252 2005-01-13  Peter Bartok  <pbartok@novell.com>
11253
11254         * Form.cs:
11255           - Implemented Select() override
11256           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
11257           - Now sets keyboard focus on startup
11258         * Control.cs (SelectNextControl): Now properly handles directed=true
11259         * TextBoxBase.cs:
11260           - WndProc: Now passes tab key on to base if AcceptTabChar=false
11261           - Added (really bad) focus rectangle (mostly for testing)
11262         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
11263           to enforce redraw on focus changes
11264         * ContainerControl.cs:
11265           - Fixed detection of Shift-Tab key presses
11266           - Fixed traversal with arrow keys
11267         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
11268           gonna keep this or if it's complete yet
11269         
11270 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
11271
11272         * ComboBox.cs: missing properties, fixes
11273
11274 2005-01-13  Peter Bartok  <pbartok@novell.com>
11275
11276         * Panel.cs (ctor): Setting Selectable window style to off
11277         * Splitter.cs (ctor): Setting Selectable window style to off
11278         * GroupBox.cs (ctor): Setting Selectable window style to off
11279         * Label.cs (ctor): Setting Selectable window style to off
11280
11281 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
11282
11283         * UpDownBase.cs (InitTimer): If the timer has been already
11284         created, enable it.
11285
11286         Use a TextBox instead of a Label.
11287
11288 2005-01-12  Jackson Harper  <jackson@ximian.com>
11289
11290         * TreeView.cs: Refresh the tree after sorting the nodes. Always
11291         draw the connecting node lines (when ShowLines is true).
11292         * TreeNode.cs: The nodes index can now be updated. This is used
11293         when a node collection is sorted.
11294         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
11295         insert or an existing unsorted node collection can be sorted.
11296         
11297 2005-01-12  Peter Bartok  <pbartok@novell.com>
11298
11299         * ContainerControl.cs: Implemented ProcessDialogKeys()
11300
11301 2005-01-12  Peter Bartok  <pbartok@novell.com>
11302
11303         * Control.cs:
11304           - Implemented SelectNextControl() method
11305           - Several focus related bug fixes
11306           - Fixed Docking calculations to match MS documentation and
11307             behaviour
11308
11309 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
11310
11311         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
11312         bug fixes
11313
11314 2005-01-12  Peter Bartok  <pbartok@novell.com>
11315
11316         * Control.cs:
11317           - Fixed broken Contains() method
11318           - Implemented GetNextControl() method. Finally. This is the pre-
11319             requisite for focus handling.
11320
11321 2005-01-12  Peter Bartok  <pbartok@novell.com>
11322
11323         * OSXStrucs.cs: Added
11324
11325 2005-01-12  Peter Bartok  <pbartok@novell.com>
11326
11327         * XplatUIWin32.cs:
11328           - Removed PeekMessageFlags
11329           - Implemented SetWindowStyle() method
11330         * XplatUIStructs.cs: Added PeekMessageFlags
11331         * X11Structs: Added missing border_width field to XWindowChanges struct
11332         * XplatUIX11.cs:
11333           - PeekMessage: Now throws exception if flags which are not yet
11334             supported are passed
11335           - Implemented SetWindowStyle() method
11336           - Fixed SetZOrder to handle AfterHwnd properly
11337         * XplatUI.cs: Added SetWindowStyle() method
11338         * XplatUIDriver.cs: Added SetWindowStyle() abstract
11339         * Control.cs:
11340           - Implemented UpdateStyles() method
11341           - Implemented UpdateZOrder() method
11342         * XplatUIOSX.cs: Added SetWindowStyle() stub
11343
11344 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
11345
11346         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
11347         button mouse).
11348
11349
11350 2005-01-11  Jackson Harper  <jackson@ximian.com>
11351
11352         * TreeView.cs: Still need to draw lines to siblings even if out of
11353         the current node is out of the clip.
11354
11355 2005-01-11  Jackson Harper  <jackson@ximian.com>
11356
11357         * TreeView.cs: When setting the hbar/vbar/grip position use
11358         SetBounds so that perform layout is only called once. Also suspend
11359         and resume layout so layout is only done once for all controls.
11360         - Removed some debug fluff
11361         * SizeGrip.cs: Call base implmentation in overriding methods.
11362         - When visibility is changed the drawing buffers are killed so we
11363         need to redraw.
11364
11365 2005-01-11  Jackson Harper  <jackson@ximian.com>
11366
11367         * TreeView.cs: Calculate the open node count while drawing. This
11368         saves us an entire tree traversal for every paint operation. Use
11369         a member var for the open node count so less vars are passed around.
11370
11371 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
11372
11373         * MonthCalendar.cs:
11374         - fixed selection to use mousemove, not mouse polling on timer
11375         * ThemeWin32Classic.cs
11376         - removed redundant unused variable "no_more_content"
11377         
11378 2005-01-11  Peter Bartok  <pbartok@novell.com>
11379
11380         * XplatUIX11.cs (DoEvents): Needs to return when no more events
11381           are pending, so it now calls PeekMessage instead of GetMessage;
11382           implemented a incomplete version of PeekMessage
11383         
11384 2005-01-11  Peter Bartok  <pbartok@novell.com>
11385
11386         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
11387           I18n issues
11388         * TextBoxBase.cs: Added sending of TextChanged event
11389
11390 2005-01-10  Jackson Harper  <jackson@ximian.com>
11391
11392         * TreeView.cs: Try not to draw outside the clipping rectangle on
11393         each node element.
11394
11395 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
11396
11397         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
11398
11399 2005-01-10  Jackson Harper  <jackson@ximian.com>
11400
11401         * TreeView.cs:
11402         - Implement fast scrolling. Now only the newly
11403         exposed nodes are drawn and the old image is moved using the
11404         XplatUI::ScrollWindow method.
11405         - Factor in height of nodes when calculating whether or not the
11406         node is in the clipping rect.
11407
11408 2005-01-10  Jackson Harper  <jackson@ximian.com>
11409
11410         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
11411
11412 2005-01-10  Peter Bartok  <pbartok@novell.com>
11413
11414         * Application.cs: Added temporary hack to resolve all our resize
11415           required issues on startup. This will get fixed properly at
11416           some point in the future
11417
11418 2005-01-10  Jackson Harper  <jackson@ximian.com>
11419
11420         * SizeGrip.cs: New internal class that is used as a sizing
11421         grip control...hence the name.
11422
11423 2005-01-10  Peter Bartok  <pbartok@novell.com>
11424
11425         * Control.cs: Implemented proper TabIndex handling, now assigning
11426           a tabindex when a control is added to a container
11427         * GroupBox.cs (ctor): Now sets the Container style bit, required
11428           for Control.GetNextControl()
11429
11430 2005-01-09  Jackson Harper  <jackson@ximian.com>
11431
11432         * TextBoxBase.cs: Clear window when scrolling (fixes build).
11433
11434 2005-01-09  Peter Bartok <pbartok@novell.com>
11435
11436         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
11437           XplatUIX11.cs: Added ability to control ScrollWindow expose and
11438           an overload for ScrollWindow to allow only scrolling a rectangle
11439
11440 2005-01-09  Peter Bartok <pbartok@novell.com>
11441
11442         * Form.cs:
11443           - Implemented SetDesktopBounds method
11444           - Implemented SetDesktopLocation method
11445
11446 2005-01-08  Jackson Harper  <jackson@ximian.com>
11447
11448         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
11449         the node count has changed, this removes to VScroll::Refresh calls
11450         when drawing.
11451
11452 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
11453
11454         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
11455
11456 2005-01-07  Jackson Harper  <jackson@ximian.com>
11457
11458         * TreeNode.cs: Just update the single node when it is
11459         checked. Don't refresh after toggling, the Expand/Collapse already
11460         handles this.
11461         * TreeView.cs: Respect clipping a little more when drawing. Try
11462         not to redraw things that don't need to be redrawn. Just hide the
11463         scrollbars when they are no longer needed instead of removing
11464         them, so they don't have to be created again and again.
11465         
11466 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
11467
11468         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
11469         coordinates to window space to place the caret properly, FIXED.
11470         Implement GetWindowState & SetWindowState
11471
11472 2005-01-06  Peter Bartok <pbartok@novell.com>
11473
11474         * Form.cs:
11475           - Implemented ClientSize property
11476           - Implemented DesktopBounds property
11477           - Implemented DesktopLocation property
11478           - Implemented IsRestrictedWindow property
11479           - Implemented Size property
11480           - Implemented TopLevel property
11481           - Implemented FormWindowState property
11482         * Control.cs:
11483           - Implemented GetTopLevel() method
11484           - Implemented SetTopLevel() method
11485         * X11Structs.cs (Atom):
11486           - Added AnyPropertyType definition
11487           - Added MapState definiton and updated XWindowAttribute struct
11488         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
11489         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
11490         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
11491         * XplatUIWin32.cs:
11492           - Implemented GetWindowState() and SetWindowState() methods
11493           - Fixed Win32GetWindowLong return type
11494         * XplatUIX11.cs:
11495           - Introduced central function for sending NET_WM messages
11496           - Implemented GetWindowState() and SetWindowState() methods
11497         * TextBoxBase.cs (set_Lines):
11498           - Now uses Foreground color for text added via Text property (Duh!)
11499           - Added code to remember programmatically requested size (fixes
11500             behaviour when Multiline is set after Size)
11501           - Added AutoSize logic
11502
11503 2005-01-06  Jackson Harper  <jackson@ximian.com>
11504
11505         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
11506
11507 2005-01-06  Jackson Harper  <jackson@ximian.com>
11508
11509         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
11510         set to less then 0.
11511
11512 2005-01-06  Jackson Harper  <jackson@ximian.com>
11513
11514         * ScrollableControl.cs: Lazy init the scrollbars.
11515         
11516 2005-01-06  Jackson Harper  <jackson@ximian.com>
11517
11518         * Theme.cs: Speed up getting pens and solid brushes, by using
11519         their ARGB as a hash instead of tostring and not calling Contains.
11520
11521 2005-01-06  Peter Bartok <pbartok@novell.com>
11522
11523         * Form.cs:
11524           - Implemented OnActivated and OnDeactivate event trigger
11525           - Implemented Activate() method
11526           - Fixed ShowDialog() to activate the form that was active before
11527             the dialog was shown
11528         * XplatUIX11.cs:
11529           - Added global active_window var that tracks the currently active
11530             X11 window
11531           - Now always grabs Property changes from the root window to always
11532             catch changes on the active window property
11533           - Added code to PropertyNotify handler to send Active/Inactive
11534             messages when state changes. This puts X11 and Win32 en par on
11535             WM_ACTIVATE notifications (except for double notifications when
11536             the user clicks away from our modal window to another one of our
11537             windows)
11538
11539 2005-01-05  Jackson Harper  <jackson@ximian.com>
11540
11541         * ImageList.cs: Implment ctor
11542
11543 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
11544
11545         * XplatUIOSX.cs: Implement Activate/SetTopmost
11546
11547 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
11548
11549         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
11550
11551 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
11552
11553         * XplatUIOSX.cs: Implement GetActive/SetFocus.
11554
11555 2005-01-05  Peter Bartok <pbartok@novell.com>
11556
11557         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
11558           XplatUIOSX.cs: Added GetActive method to return the currently
11559           active window for the application (or null, if none is active)
11560         * Form.cs:
11561           - Implemented ActiveForm
11562           - Commented out owner assignment for modal dialogs (causes problems
11563             on Win32, since the owner will be disabled)
11564           - Reworked some Active/Focus handling (still incomplete)
11565         * CommonDialog.cs: Commented out owner assignment for modal dialogs
11566           (causes problems on Win32, since the owner will be disabled)
11567         * IWin32Window: Added ComVisible attribute
11568
11569 2005-01-05  Peter Bartok <pbartok@novell.com>
11570
11571         * ToolTip.cs (WndProc): Enable setting focus now that we have the
11572           required XplatUI functions.
11573
11574 2005-01-05  Peter Bartok <pbartok@novell.com>
11575
11576         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
11577           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
11578           to implement focus and activation handling; still incomplete and
11579           with debug output
11580
11581 2005-01-04  Peter Bartok <pbartok@novell.com>
11582
11583         * TextBoxBase.cs: Changed access level for Document property to
11584           match switch to internal for TextControl
11585
11586 2005-01-04  Peter Bartok <pbartok@novell.com>
11587
11588         * AccessibleObject: Added ComVisible attribute
11589
11590 2005-01-04  Jackson Harper  <jackson@ximian.com>
11591
11592         * X11Keyboard.cs: Remove unneeded var.
11593
11594 2005-01-04  Jackson Harper  <jackson@ximian.com>
11595
11596         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
11597         but PAINT.
11598         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
11599         ClientMessage. This makes apps exit cleanly (more often).
11600         
11601 2005-01-04  Jackson Harper  <jackson@ximian.com>
11602
11603         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
11604         handling focus, return correct colors and fonts,
11605         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
11606         handle selection, horizontal scrolling, and mouse interaction.
11607
11608 2005-01-04  Peter Bartok <pbartok@novell.com>
11609
11610         * ICommandExecutor.cs: Added
11611         * IDataGridColumnStyleEditingNotificationService.cs: Added
11612         * IFeatureSupport.cs: Added
11613         * IFileReaderService.cs: Added
11614         * IDataObject.cs: Added ComVisible attribute
11615         * AmbientProperties.cs: Added
11616         * BaseCollection.cs: Added missing attributes
11617         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
11618         * BaseCollection.cs: Added missing attributes
11619         * Binding.cs: Added TypeConverter attribute
11620         * BindingContext.cs: Added DefaultEvent attribute
11621         * BindingsCollection.cs: Added DefaultEvent attribute
11622         * Button.cs: Added DefaultValue attribute
11623         * DragEventArgs.cs: Added ComVisible attribute
11624         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
11625         * KeyEventArgs.cs: Added ComVisible attribute
11626         * KeyPressEventArgs.cs: Added ComVisible attribute
11627         * MouseEventArgs.cs: Added ComVisible attribute
11628         * NavigateEventArgs.cs: Added
11629         * NavigateEventHandler.cs: Added
11630         * FeatureSupport.cs: Added
11631         * OSFeature.cs: Added
11632         * Theme.cs: Added abstract Version property to support OSFeature
11633         * ThemeWin32Classic.cs: Added Version property to
11634           support OSFeature.Themes
11635         * ProgressBar.cs: Removed OnPaintBackground override, not required since
11636           the proper styles to avoid background drawing are set, also doesn't
11637           match MS signature
11638         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
11639         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
11640         * ScrollEventArgs.cs: Added ComVisible attribute
11641         * SplitterEventArgs.cs: Added ComVisible attribute
11642         * AccessibleSelection.cs: Added Flags attribute
11643         * Appearance.cs: Added ComVisible attribute
11644         * Border3DSide.cs: Added ComVisible attribute
11645         * Border3DStyle.cs: Added ComVisible attribute
11646         * BorderStyle.cs: Added ComVisible attribute
11647         * DragAction.cs: Added ComVisible attribute
11648         * ErrorBlinkStyle.cs: Added
11649         * ScrollEventType.cs: Added ComVisible attribute
11650         * AnchorStyles.cs: Added Editor attribute
11651         * DockStyle.cs: Added Editor attribute
11652         * HorizontalAlignment.cs: Added ComVisible attribute
11653         * HelpEventArgs.cs: Added ComVisible attribute
11654         * PaintEventArgs.cs: Added IDisposable
11655
11656 2005-01-04  Peter Bartok <pbartok@novell.com>
11657
11658         * TextControl.cs: Switched Line, LineTag and Document classes to
11659           internal
11660
11661 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
11662
11663         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
11664         Simple mode, fixes, IntegralHeight, etc.
11665
11666 2005-01-04  Peter Bartok <pbartok@novell.com>
11667
11668         * TextBoxBase.cs: Using proper font variable now
11669
11670 2005-01-04  Peter Bartok <pbartok@novell.com>
11671
11672         * Form.cs (ShowDialog): Set parent to owner, if provided
11673         * GroupBox.cs: Removed unused vars
11674         * TextControl.cs:
11675           - Added GetHashCode() for Document and LineTag classes
11676           - Removed unused variables
11677           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
11678             to allow translation between continuous char position and line/pos
11679         * CheckBox.cs: Removed vars that are provided by base class
11680         * RadioButton.cs: Removed vars that are provided by base class, added
11681           new keyword where required
11682         * LinkLabel.cs: Added new keyword where required
11683         * Control.cs (WndProc): Removed unused variable
11684         * TextBoxBase.cs:
11685           - Finished SelectionLength property
11686           - Implemented SelectionStart property
11687           - Implemented Text property
11688           - Removed unused vars
11689         * MessageBox.cs: Added new keyword where required
11690         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
11691           WndProc signature
11692         * MenuAPI.cs: Added new keyword where required
11693         * ButtonBase.cs: Removed vars that are provided by base class, added
11694           new keyword where required
11695         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
11696           argument to double, to allow compiling with csc 2.0 (Atsushi ran
11697           into this)
11698         * Application.cs (Run): Now triggers the ThreadExit event
11699         * CommonDialog.cs: Added new keyword where required; now properly sets
11700           parent (owner) for dialog
11701         * XplatUIX11.cs: Commented out unused vars
11702         * StatusBar.cs: Fixed signature for Text property
11703         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
11704
11705 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
11706
11707         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
11708         TrackBar.cs, MonthCalendar.cs: remove unused vars
11709
11710 2005-01-03  Jackson Harper  <jackson@ximian.com>
11711
11712         * ThemeWin32Classic.cs:
11713         * X11Keyboard.cs: Remove unused vars.
11714
11715 2005-01-03  Peter Bartok  <pbartok@novell.com>
11716
11717         * TextBox.cs:
11718           - set_Text: Tied into TextControl
11719           - set_TextAlignment: Tied into TextControl
11720         * TextControl.cs:
11721           - Added alignment properties and implemented alignment handling
11722             and drawing (still has a bug, not generating proper expose events)
11723           - Added new Line() constructor to allow passing the line alignment
11724           - Fixed selection setting, properly handling end<start now
11725           - Added aligment considerations to RecalculateDocument()
11726         * TextBoxBase.cs:
11727           - Now properly enforces control height for single line controls
11728           - Added support for CharacterCasing
11729           - Added IsInputKey override
11730           - Fixed Keys.Enter logic
11731           - Added SetBoundsCore override
11732           - Fixed mouse selection handling
11733
11734 2005-01-03  Jackson Harper  <jackson@ximian.com>
11735
11736         * TreeView.cs:
11737           - Collapse and uncheck all nodes when CheckBoxes is disabled.
11738           - Checkboxes are always aligned to the bottom of the node,
11739           regardless of item height.
11740           - Use the node bounds to draw the text so we can center it when
11741           the item height is greater then the font height.
11742           - Node::Bounds are only the text part of the node.
11743         * TreeNode.cs: New method to combine collapsing and unchecking all
11744           nodes recursively.
11745
11746 2005-01-02  Jackson Harper  <jackson@ximian.com>
11747
11748         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
11749         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
11750         tree when a check is changed. TODO: Only refresh the checked node.
11751
11752 2004-12-30  Jackson Harper  <jackson@ximian.com>
11753
11754         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
11755         * TreeNode.cs: When collapsing make sure to never collapse the
11756         root node.
11757
11758 2004-12-29  Jackson Harper  <jackson@ximian.com>
11759
11760         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
11761         
11762 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
11763
11764         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
11765
11766 2004-12-28  Peter Bartok  <pbartok@novell.com>
11767
11768         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
11769           not yet assigned
11770
11771 2004-12-28  Peter Bartok  <pbartok@novell.com>
11772
11773         * Control.cs (WndProc): Added WM_HELP handler, now generates
11774           HelpRequested event
11775         * Form.cs: Added HelpButton property and required support code
11776         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
11777
11778 2004-12-28  Peter Bartok  <pbartok@novell.com>
11779
11780         * CommonDialog.cs:
11781           - Made DialogForm.owner variable internal
11782           - Added check to ensure owner form is set before setting
11783             owner properties in CreateParams
11784
11785 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
11786
11787         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
11788           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
11789           GetCursorPos.  Fix major visibility issues.  Rework the windowing
11790           system to support borderless/titleless windows (implements menus).
11791           Fix GetWindowPos.  Implement initial background color support for
11792           views.
11793
11794 2004-12-28  Peter Bartok  <pbartok@novell.com>
11795
11796         * Form.cs (get_CreateParams): Make sure we have an owner before using
11797           the owner variable. Implement proper default if no owner exists
11798
11799 2004-12-28  Peter Bartok  <pbartok@novell.com>
11800
11801         * In preparation for making Managed.Windows.Forms the default build target
11802           for System.Windows.Forms, the following stubbed files were added.
11803           Dialogs are currently being implemented by contributors and are only
11804           short-term place holders.
11805         * ColorDialog.cs: Initial check-in (minmal stub)
11806         * DataGrid.cs: Initial check-in (minimal stub)
11807         * DataGridLineStyle.cs: Initial check-in (minimal stub)
11808         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
11809         * DataGridTableStyle.cs: Initial check-in (minimal stub)
11810         * FontDialog.cs: Initial check-in (minimal stub)
11811         * FileDialog.cs: Initial check-in (minimal stub)
11812         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
11813         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
11814         * OpenFileDialog: Initial check-in (minimal stub)
11815         * IComponentEditorPageSite.cs: Initial check-in
11816         * Splitter.cs: Initial check-in (for Jackson)
11817         * SplitterEventArgs.cs: Initial check-in (for Jackson)
11818         * SplitterEventHandler.cs: Initial check-in (for Jackson)
11819         * TextBox.cs: Initial check-in; still needs some wiring to
11820           TextControl backend
11821         * Form.cs: Implemented ControlBox property
11822         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
11823         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
11824         * TextControl.cs: Added selection functionality; added todo header
11825         * TextBoxBase.cs:
11826           - Implemented Lines property
11827           - Implemented TextHeight property
11828           - Implemented SelectedText property
11829           - Implemented SelectionLength property
11830           - Implemented SelectAll method
11831           - Implemented ToString method
11832           - Removed and cleaned up some debug code
11833           - Implemented (still buggy) mouse text selection
11834
11835 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
11836
11837         * ComboBox.cs: Complete DropDownList implementation, fixes.
11838
11839 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
11840
11841         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
11842         * ComboBoxStyle.cs: ComboBoxStyle enum
11843         * ComboBox.cs: Initial work on ComboBox control
11844
11845 2004-12-21  Peter Bartok  <pbartok@novell.com>
11846
11847         * Control.cs (ctor, CreateParams): Moved setting of is_visible
11848           forward so that anything that creates a window gets the default,
11849           also no longer uses Visible property in CreateParams to avoid
11850           walking up the parent chain and possibly get the wrong visible
11851           status. Fixed IsVisible to no longer walk up to the parent.
11852
11853 2004-12-21  Peter Bartok  <pbartok@novell.com>
11854
11855         * Form.cs (ShowDialog): Unset modality for the proper window
11856  
11857 2004-12-20  Peter Bartok  <pbartok@novell.com>
11858
11859         * CommonDialog.cs: Initial check-in
11860
11861 2004-12-20  Peter Bartok  <pbartok@novell.com>
11862
11863         * Control.cs (Visible): Now uses the parent window instead of the
11864           client area window for the property
11865
11866         * Form.cs
11867           - ShowDialog(): Now uses the proper window for modality
11868           - The default visibility state for the form parent is now false. This
11869             will prevent the user from seeing all the changes to the form and
11870             its controls before the application hits Application.Run()
11871           - Removed some stale commented out code
11872
11873         * NativeWindow.cs:
11874           - Added FindWindow() method to have a method to check for existence
11875             of a window handle
11876           - Added ability to override default exception handling (for example
11877             when debugging with VS.Net; to do this the ExternalExceptionHandler
11878             define must be set
11879           - Removed some useless debug output
11880
11881         * XplatUIX11.cs:
11882           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
11883             not working as expected
11884           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
11885             property to allow switching back to the modal window if focus is
11886             given to another one of our windows (Application Modal)
11887           - Now only sets override_redirect if we create a window
11888             without WS_CAPTION
11889           - Moved EventMask selection before mapping of newly created window
11890             so we can catch the map event as well
11891           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
11892           - Added various Atom related DllImports
11893           - Implemented Exit() method
11894           - .ctor() : No longer shows window if WS_VISIBLE is not defined
11895             in the CreateParams
11896
11897         * MessageBox.cs: Now properly deals with the FormParent window by
11898           providing an override the FormParent CreateParams property to
11899           set as POPUP instead of OVERLAPPED window.
11900
11901 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
11902
11903         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
11904         Minor code cleanup.
11905
11906 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
11907         
11908         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
11909
11910 2004-12-18  Peter Bartok  <pbartok@novell.com>
11911
11912         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
11913           implementing SetModal() method
11914
11915 2004-12-18  Peter Bartok  <pbartok@novell.com>
11916
11917         * X11Structs.cs (XGCValues): Fixed type of function element
11918         * XplatUI.cs: Added ScrollWindow() method
11919         * XplatUIDriver.cs: Added ScrollWindow() abstract
11920         * XplatUIWin32.cs: Implemented ScrollWindow() method
11921         * XplatUIX11.cs: Implemented ScrollWindow() method
11922         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
11923
11924 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
11925
11926         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
11927         Some more keyboard support (INCOMPLETE)
11928
11929 2004-12-17  Peter Bartok  <pbartok@novell.com>
11930
11931         * TextControl.cs:
11932         - Added color attribute to line tags.
11933         - Added color argument to all functions dealing with tags
11934         - Added color argument support to various functions
11935         - Fixed miss-calculation of baseline/shift in certain circumstances
11936
11937         * TextBoxBase.cs: Added new color option to test code
11938
11939 2004-12-17  Jackson Harper  <jackson@ximian.com>
11940
11941         * TreeNode.cs:
11942         * MonthCalendar.cs: Signature fixes
11943
11944 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
11945
11946         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
11947         keyboard event moved it.  Create a new graphics context for each paint resolves this
11948
11949 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
11950
11951         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
11952         Make caret exist and go blink blink.  Initial keyboard support.
11953         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
11954         works.
11955
11956 2004-12-17  Jackson Harper  <jackson@ximian.com>
11957
11958         * XplatUIStructs.cs: Updated set of virtual keycodes.
11959         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
11960
11961 2004-12-17  Jackson Harper  <jackson@ximian.com>
11962
11963         * XplatUIX11.cs: Prune old keyboard code.
11964
11965 2004-12-17  Jackson Harper  <jackson@ximian.com>
11966
11967         * XplatUIX11.cs: When generating mouse wparams get the modifier
11968         keys from the ModifierKeys property.
11969
11970 2004-12-17  Jackson Harper  <jackson@ximian.com>
11971
11972         * X11Keyboard.cs: Send up/down input when generating
11973         messages. Remove some unused vars.
11974
11975 2004-12-17  Jackson Harper  <jackson@ximian.com>
11976
11977         * TabControl.cs:
11978         * TreeView.cs: get rid of warnings.
11979
11980 2004-12-17  Jackson Harper  <jackson@ximian.com>
11981
11982         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
11983
11984 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
11985
11986         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
11987           CheckedListBox.cs: Implementation
11988
11989 2004-12-17  Peter Bartok  <pbartok@novell.com>
11990
11991         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
11992
11993 2004-12-16  Peter Bartok  <pbartok@novell.com>
11994
11995         * TextControl.cs:
11996           - InsertCharAtCaret(): Fixed start pos fixup
11997           - CaretLine_get: No longer derives the line from the tag, the tag
11998             could be stale if lines in the document have been added or deleted
11999           - RebalanceAfterDelete(): Fixed bug in balancing code
12000           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
12001           - Line.Streamline(): Now can also elminate leading empty tags
12002           - DumpTree(): Added a few more tests and prevented exception on
12003             uninitialized data
12004           - Added Debug section for Combining lines
12005           - Delete(): Now copies all remaining properties of a line
12006           
12007         * TextBoxBase.cs:
12008           - Left mousebutton now sets the caret (and middle button still acts
12009             as formatting tester, which must go away soon)
12010           - Added Debug section for Deleting/Combining lines
12011           - Fixed calculations for UpdateView after Combining lines
12012
12013 2004-12-16  Peter Bartok  <pbartok@novell.com>
12014
12015         * TextControl.cs: Now properly aligns text on a baseline, using the
12016           new XplatUI.GetFontMetrics() method. Simplified several calculations
12017         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
12018           defined
12019
12020 2004-12-16  Peter Bartok  <pbartok@novell.com>
12021
12022         * XplatUI.cs: Added GetFontMetrics() method
12023         * XplatUIDriver.cs: Added GetFontMetrics() abstract
12024         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
12025           into libgdiplus, our private GetFontMetrics function
12026         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
12027         * XplatUIWin32.cs: Implemented GetFontMetrics() method
12028
12029 2004-12-16  Jackson Harper  <jackson@ximain.com>
12030
12031         * XplatUIStruct.cs: Add enum for dead keys
12032         * X11Keyboard.cs: Map and unmap dead keys.
12033
12034 2004-12-16  Jackson Harper  <jackson@ximian.com>
12035
12036         * X11Keyboard.cs: Detect and use the num lock mask.
12037
12038 2004-12-16  Peter Bartok  <pbartok@novell.com>
12039
12040         * Control.cs (CreateGraphics): Added check to make sure the
12041           handle of the window exists before calling Graphics.FromHwnd()
12042
12043 2004-12-16  Peter Bartok  <pbartok@novell.com>
12044
12045         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
12046           contains a lot of code that's not supposed to be there for the
12047           real thing, but required for developing/testing the textbox
12048           backend.
12049
12050 2004-12-16  Peter Bartok  <pbartok@novell.com>
12051
12052         * TextControl.cs:
12053         - Fixed Streamline method
12054         - Added FindTag method to Line
12055         - Added DumpTree method for debugging
12056         - Added DecrementLines() method for deleting lines
12057         - Fixed UpdateView to update the cursor to end-of-line on single-line
12058           updates
12059         - Added PositionCaret() method
12060         - Fixed MoveCaret(LineDown) to move into the last line, too
12061         - Added InsertChar overload
12062         - Fixed InsertChar tag offset calculations
12063         - Added DeleteChar() method
12064         - Added Combine() method for folding lines
12065         - Fixed Delete() method, no longer allocates wasted Line object and
12066           now copies all properties when swapping nodes
12067         - Delete() method now updates document line counter
12068
12069 2004-12-15  Jackson Harper  <jackson@ximian.com>
12070
12071         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
12072         * X11Keyboard.cs: Expose the currently selected modifier keys
12073         through a property.
12074
12075 2004-12-15  Peter Bartok  <pbartok@novell.com>
12076
12077         * TextControl.cs: Initial check-in. Still incomplete
12078
12079 2004-12-15  Jackson Harper  <jackson@ximian.com>
12080
12081         * TreeNode.cs:
12082         * TreeView.cs: Fix build on csc (second time today ;-))
12083
12084 2004-12-15  Jackson Harper  <jackson@ximian.com>
12085
12086         * TreeView.cs: Store the treenodes plus/minus box bounds when it
12087         is calculated and use this for click testing.
12088         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
12089
12090 2004-12-15  Jackson Harper  <jackson@ximian.com>
12091
12092         * TreeView.cs: Pass the nodes image index to the image list when
12093         drawing that image.
12094
12095 2004-12-15  Jackson Harper  <jackson@ximian.com>
12096
12097         * X11Keyboard.cs: Set messages hwnd.
12098         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
12099         post_message calls.
12100
12101 2004-12-15  Jackson Harper  <jackson@ximian.com>
12102
12103         * X11Keyboard.cs: Fix to compile with csc.
12104         
12105 2004-12-15  Jackson Harper  <jackson@ximian.com>
12106
12107         * X11Structs.cs: Add key mask values
12108         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
12109         * X11Keyboard.cs: New file - Extrapolates and interpolates key
12110         down/up foo into WM_CHAR foo
12111         * KeyboardLayouts.cs: Common keyboard layouts
12112         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
12113         post messages into the main queue.
12114
12115 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
12116
12117         * Button.cs: implement ProcessMnemonic
12118         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
12119           brushes everytime
12120         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
12121         * ButtonBase.cs: Show HotkeyPrefix (not the &)
12122
12123 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
12124         
12125         * MonthCalendar.cs: Implemented click-hold for next/previous month
12126           and date selection
12127           
12128 2004-12-11  Peter Bartok  <pbartok@novell.com>
12129
12130         * X11Structs.cs:
12131           - Added XKeyboardState (moved from XplatUIX11.cs)
12132           - Added XCreateGC related enums and structures
12133           - Added GXFunction for XSetFunction
12134
12135         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
12136
12137         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
12138           CaretVisible() calls
12139
12140         * ToolTip.cs: Added code to prevent stealing focus from app windows
12141
12142         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
12143           DestroyCaret, SetCaretPos and CaretVisible)
12144
12145         * XplatUIX11.cs:
12146           - Added implementation for caret functions
12147           - Moved hover variables into a struct, to make it a bit easier
12148             on the eyes and to debug
12149           - Removed XKeyboardState (moved to XplatUIX11.cs)
12150           - Moved Keyboard properties into the properties region
12151
12152         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
12153           call to get a graphics context for our control
12154
12155         * XplatUIOSX.cs: Added empty overrides for the new caret functions
12156
12157         * TreeView.cs: Fixed bug. No matter what color was set it would always
12158           return SystemColors.Window
12159
12160         * XplatUIWin32.cs: Implemented caret overrides
12161
12162 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
12163
12164         * ListBox.cs: fire events, implement missing methods and properties,
12165         sorting.
12166
12167 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
12168
12169         * MonthCalendar.cs: invalidation bug fixing
12170         * ThemeWin32Classic.cs: paint fixing
12171
12172 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
12173
12174         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
12175         prepare the CGContextRef there now.
12176
12177 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
12178
12179         * MonthCalendar.cs:
12180           - optimisationL only invalidate areas that have changed
12181         * ThemeWin32Classic.cs:
12182           - only paint parts that intersect with clip_area
12183
12184 2004-12-09  Peter Bartok  <pbartok@novell.com>
12185
12186         * Application.cs: Undid changes from r37004 which cause problems
12187         on X11
12188
12189 2004-12-09  Ravindra  <rkumar@novell.com>
12190
12191         * ToolBar.cs: Added support for displaying ContextMenu
12192         attached to a button on ToolBar.
12193         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
12194         property.
12195
12196 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
12197
12198         * Label.cs: autosize works in text change and removes unnecessary
12199         invalidate
12200
12201 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
12202
12203         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
12204         remove warnings
12205
12206 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
12207
12208         * XplatUIOSX.cs: Added mouse move/click/grab support
12209         Remove some debugging WriteLines not needed anymore.
12210         Add window resizing/positioning.
12211         Fix visibility on reparenting.
12212
12213 2004-12-08  Peter Bartok  <pbartok@novell.com>
12214
12215         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
12216
12217 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
12218
12219         * XplatUIOSX.cs: Initial checkin
12220         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
12221
12222 2004-12-03  Ravindra <rkumar@novell.com>
12223
12224         * ListView.cs: Added some keybindings and fixed scrolling.
12225         ScrollBars listen to ValueChanged event instead of Scroll
12226         Event. This would let us take care of all changes being
12227         done in the scrollbars' values programmatically or manually.
12228         * ListView.cs (CanMultiselect): Added a check for shift key.
12229         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
12230         * ListViewItem.cs (Clone): Fixed. We need to make a copy
12231         of ListViewSubItemCollection as well.
12232
12233 2004-12-06  Peter Bartok <pbartok@novell.com>
12234
12235         * Control.cs (Parent): Added check and exception to prevent
12236         circular parenting
12237
12238 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
12239
12240         * ListBox.cs: implemented clipping, selection single and multiple,
12241         bug fixing
12242
12243 2004-12-03  Ravindra <rkumar@novell.com>
12244
12245         * ListView.cs (ListView_KeyDown):
12246         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
12247         when CTRL key is pressed.
12248         * ListViewItem.cs (Selected): Fixed setting the property.
12249
12250 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
12251
12252         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
12253
12254         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
12255         MinimizeBox, ShowInTaskbar, TopMost properties.
12256
12257         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
12258         will be implemented).
12259
12260 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
12261
12262         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
12263
12264         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
12265         tests.
12266         
12267         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
12268         
12269         * TreeView.cs: BackColor is Colors.Window.
12270
12271 2004-12-01  Jackson Harper  <jackson@ximian.com>
12272
12273         * TreeView.cs: When resizing the tree if the user is making it
12274         smaller we don't get expose events, so we need to handle adding
12275         the horizontal scrollbar in the size changed handler as well as
12276         the expose handler.
12277
12278 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
12279
12280         * DrawItemState.cs: fixes wrong enum values
12281
12282 2004-12-01  Jackson Harper  <jackson@ximian.com>
12283
12284         * TreeView.cs: Resize the hbar as well as the vbar on resize.
12285
12286 2004-12-01  Jackson Harper  <jackson@ximian.com>
12287
12288         * NodeLabelEditEventArgs.cs:
12289         * NodeLabelEditEventHandler.cs:
12290         * OpenTreeNodeEnumerator.cs:
12291         * TreeNode.cs:
12292         * TreeNodeCollection.cs:
12293         * TreeView.cs:
12294         * TreeViewAction.cs:
12295         * TreeViewCancelEventArgs.cs:
12296         * TreeViewCancelEventHandler.cs:
12297         * TreeViewEventArgs.cs:
12298         * TreeViewEventHandler.cs: Initial implementation.
12299
12300 2004-12-01  Ravindra <rkumar@novell.com>
12301
12302         * ListView.cs (CalculateListView): Fixed scrolling related
12303         calculations. Also, removed some debug statements from other
12304         places.
12305         * ListViewItem.cs: Changed access to 'selected' instance variable
12306         from private to internal.
12307         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
12308
12309 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
12310
12311         * ThemeWin32Classic.cs: remove cache of brush and pens for
12312         specific controls and use the global system, fixes scrollbutton
12313         bugs (for small sizes, disabled, etc)
12314         
12315         * ScrollBar.cs: does not show the thumb for very small controls
12316         (as MS) and allow smaller buttons that the regular size
12317
12318 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
12319
12320         * UpDownBase.cs: Add abstract methods for the interface.
12321         Add new virtual methods (need to be hooked up to TextEntry when it
12322         exists).
12323         Add override methods for most features.
12324         Computes the size, forces the height of the text entry.
12325
12326         * NumericUpDown.cs: Put here the current testing code.
12327
12328         * Set eol-style property on all files that do not have mixed line
12329         endings, to minimize the future problems.  There are still a few
12330         files with mixed endings, and someone should choose whether they
12331         want to move it or not.
12332
12333 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
12334
12335         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
12336         System.Colors
12337         
12338 2004-11-30  Ravindra <rkumar@novell.com>
12339
12340         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
12341         drawing and replaced use of SystemColors by theme colors.
12342         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
12343         * ListView.cs (ListViewItemCollection.Add): Throw exception when
12344         same ListViewItem is being added more than once.
12345
12346 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
12347
12348         * MonthCalendar.cs:
12349           - ControlStyles love to make the control not flicker
12350           
12351 2004-11-30  Peter Bartok  <pbartok@novell.com>
12352
12353         * CharacterCasing.cs: Added
12354
12355 2004-11-29  Peter Bartok  <pbartok@novell.com>
12356
12357         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
12358           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
12359           I am removing these files as they conflict with already completed
12360           work. While it is fantastic to get contributions to MWF, I
12361           respectfully ask that everyone please coordinate their contributions
12362           through mono-winforms-list or #mono-winforms at this time. We're
12363           explicitly avoiding stubbing and don't want controls that don't have
12364           their basic functionality implemented in svn. Please also see
12365           http://www.mono-project.com/contributing/winforms.html
12366
12367
12368 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
12369
12370         * Application.cs (ModalRun): Don't hang after exit.
12371
12372         * Theme.cs: New TreeViewDefaultSize property.
12373
12374         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
12375         with less hardcoded SystemColors constant.
12376         Implemented TreeViewDefaultSize.
12377
12378         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
12379         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
12380
12381
12382 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
12383
12384         * MonthCalendar.cs:
12385           - Fix NextMonthDate and PrevMonthDate click moving calendar
12386
12387 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
12388
12389         * MonthCalendar.cs:
12390           - Fix usage of ScrollChange Property when scrolling months
12391
12392 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
12393
12394         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
12395          - Fixes menu destroying
12396          - Support adding and removing items on already created menus
12397
12398 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
12399
12400         * MonthCalendar.cs:
12401           - Re-worked all bolded dates handling to match win32
12402         * ThemeWin32Classic.cs:
12403           - Fixed rendering with bolded dates
12404
12405 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
12406
12407         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
12408         - Horizontal scroolbar
12409         - Multicolumn
12410         - Fixes
12411
12412
12413 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
12414
12415         * MonthCalendar.cs:
12416           - Fix Usage of MaxSelectionCount from SelectionRange
12417           - Fixed Shift + Cursor Selection
12418           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
12419           - Fixed normal cursor selection to be compat with win32
12420           - Fixed Shift + Mouse Click selection
12421
12422 2004-11-24  Peter Bartok <pbartok@novell.com>
12423
12424         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
12425         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
12426         * XplatUIX11.cs:
12427           - CreatedKeyBoardMsg now updates keystate with Alt key
12428           - Added workaround for timer crash to CheckTimers, Jackson will
12429             develop a proper fix and check in later
12430           - Implemented DispatchMessage
12431           - Removed calling the native window proc from GetMessage (call
12432             now moved to DispatchMessage)
12433
12434         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
12435           the keydata (Fixes bug #69831)
12436
12437         * XplatUIWin32.cs:
12438           - (DispatchMessage): Switched to return IntPtr
12439           - Added DllImport for SetFocus
12440
12441 2004-11-24  Ravindra <rkumar@novell.com>
12442
12443         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
12444         background drawing.
12445         * ListViewItem.cs: Fixed various properties, calculations
12446         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
12447         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
12448         and some internal properties. Fixed MouseDown handler and Paint
12449         method.
12450
12451 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
12452
12453         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
12454
12455 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
12456
12457         * ContainerControl.cs: correct accidental check in of local changes
12458
12459 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
12460
12461         * ThemeWin32Classic.cs:
12462                 - Fixed Drawing Last month in grid (sometimes not showing)
12463         * MonthCalendar.cs:
12464                 - Fixed title width calculation bug (makeing title small)
12465
12466 2004-11-23  Peter Bartok <pbartok@novell.com>
12467
12468         * XplatUIX11.cs:
12469           - Added generation of WM_MOUSEHOVER event
12470           - Added missing assignment of async_method atom
12471           - Fixed WM_ERASEBKGND; now only redraws the exposed area
12472
12473 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
12474
12475         * ThemeWin32Classic.cs:
12476                 - Fixed Drawing of today circle when showtodaycircle not set
12477                 - fixed drawing of first and last month in the grid (gay dates)
12478         * MonthCalendar.cs:
12479                 - Fixed Drawing of today circle
12480                 - Fixed drawing of grady dates
12481                 - Fixed HitTest for today link when ShowToday set to false
12482                 - Fixed DefaultSize to obey ShowToday
12483
12484 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
12485
12486         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
12487         * System.Windows.Forms/Theme.cs
12488         * MonthCalendar.cs: added for MonthCalendar
12489         * SelectionRange.cs: added for MonthCalendar
12490         * Day.cs: added for MonthCalendar: added for MonthCalendar
12491         * DateRangeEventArgs.cs: added for MonthCalendar
12492         * DateRangeEventHandler.cs: added for MonthCalendar
12493
12494 2004-11-22  Ravindra <rkumar@novell.com>
12495
12496         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
12497         property.
12498
12499 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
12500
12501         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
12502         event handler.
12503         
12504         * NumericUpDown.cs: Added new implementation.
12505         * UpDownBase.cs: Added new implementation.
12506
12507         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
12508         implementations.
12509         
12510         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
12511         implementations.
12512
12513         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
12514         methods.
12515
12516 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
12517
12518         * Timer.cs  (Dispose): Should call the base dispose when
12519         overriding.
12520
12521 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
12522
12523         * ScrollBar.cs: updates thumb position when max, min or increment
12524         is changed
12525
12526 2004-11-21  Ravindra <rkumar@novell.com>
12527
12528         * ListView.cs: Implemented item selection, activation and
12529         column header style. Fixed properties to do a redraw, if
12530         required. Added support for MouseHover, DoubleClick, KeyDown
12531         and KeyUp event handling and some minor fixes.
12532         * ListViewItem.cs: Fixed constructor.
12533         * ThemeWin32Classic.cs: Improved drawing for ListView.
12534
12535 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
12536
12537         * ThemeWin32Classic.cs: initial listbox drawing code
12538         * DrawMode.cs: new enumerator
12539         * ListControl.cs: stubbed class
12540         * ListBox.cs: initial implementation
12541         * Theme.cs: new methods definitions
12542         * SelectionMode.cs: new enumerator
12543
12544 2004-11-17  Peter Bartok  <pbartok@novell.com>
12545
12546         * XplatUIWin32.cs: Added double-click events to the class style
12547         * Control.cs (WndProc):
12548           - Added handling of click-count to MouseDown/ MouseUp events.
12549           - Added handling of middle and right mouse buttons
12550           - Removed old debug code
12551
12552 2004-11-17  Jackson Harper  <jackson@ximian.com>
12553
12554         * XplatUIX11.cs: Use the new Mono.Unix namespace.
12555
12556 2004-11-17  Ravindra <rkumar@novell.com>
12557
12558         * ListView.cs: Added event handling for MouseMove/Up/Down.
12559         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
12560         * ThemeWin32Classic.cs: We need to clear the graphics context and
12561         draw column header in a proper state.
12562
12563
12564 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
12565
12566         *  Menu.cs: fixes signature
12567
12568 2004-11-16  Peter Bartok  <pbartok@novell.com>
12569
12570         * XplatUIX11.cs (GetMessage): Implemented generation of
12571           double click mouse messages
12572
12573 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
12574
12575         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
12576         not by menu
12577
12578 2004-11-11  Peter Bartok  <pbartok@novell.com>
12579
12580         * HandleData.cs: Added Visible property
12581         * XplatUIX11.cs (IsVisible): Now uses Visible property from
12582           HandleData
12583         * XplatUIX11.cs: Removed old debug leftovers
12584         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
12585         * Control.cs (WndProc): Removed old debug leftovers,
12586           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
12587           needed WM_SIZE handling
12588
12589 2004-11-11  Jackson Harper  <jackson@ximian.com>
12590
12591         * OwnerDrawPropertyBag.cs:
12592         * TreeViewImageIndexConverter.cs: Initial implementation
12593
12594 2004-11-10  Jackson Harper  <jackson@ximian.com>
12595
12596         * ThemeWin32Classic.cs:
12597         * TabControl.cs: instead of moving tabs by the slider pos just
12598         start drawing at the tab that is offset by the slider. This way
12599         scrolling always moves by exactly one tab.
12600
12601 2004-11-10  Jackson Harper  <jackson@ximian.com>
12602
12603         * TabControl.cs: You can only scroll left when the slider has
12604         already ben moved right.
12605         
12606 2004-11-10  Jackson Harper  <jackson@ximian.com>
12607
12608         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
12609         the clip area.
12610         
12611 2004-11-10  Jackson Harper  <jackson@ximian.com>
12612
12613         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
12614         clip area.
12615         
12616 2004-11-09  Jackson Harper  <jackson@ximian.com>
12617
12618         * TabControl.cs (CalcXPos): New helper method so we can determine
12619         the proper place to start drawing vertical tabs.
12620         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
12621         
12622 2004-11-09  Jackson Harper  <jackson@ximian.com>
12623
12624         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
12625         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
12626         and Bottom, left and right are illegal values for this and
12627         multiline is enabled when the alignment is set to left or right.
12628         (DrawTab): Each alignment block should draw the text itself now
12629         because Left requires special love. Also add rendering for Left
12630         aligned tabs.
12631         
12632 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
12633
12634         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
12635         does not destroy the windows, removes debugging messages
12636
12637 2004-11-09  jba  <jba-mono@optusnet.com.au>
12638
12639         * ThemeWin32Classic.cs
12640         (DrawButtonBase): Fix verticle text rect clipping in windows
12641         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
12642         rendering and incorrect text rect clipping
12643         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
12644         rendering and incorrect text rect clipping
12645         
12646 2004-11-08  Jackson Harper  <jackson@ximian.com>
12647
12648         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
12649         bottom when they are bottom aligned so the bottoms of the tabs get
12650         displayed.
12651         * TabControl.cs (DropRow): Move rows up instead of down when the
12652         tab control is bottom aligned.
12653
12654 2004-11-08 13:59  pbartok
12655
12656         * XplatUIX11.cs:
12657           - Added handling for various window styles
12658           - Added handling for popup windows
12659           - Added SetTopmost handling
12660
12661 2004-11-08 13:55  pbartok
12662
12663         * XplatUIWin32.cs:
12664           - Added argument to SetTopmost method
12665           - Fixed broken ClientToScreen function
12666
12667 2004-11-08 13:53  pbartok
12668
12669         * XplatUIStructs.cs:
12670           - Added missing WS_EX styles
12671
12672 2004-11-08 13:53  pbartok
12673
12674         * XplatUI.cs, XplatUIDriver.cs:
12675           - Added argument to SetTopmost
12676
12677 2004-11-08 13:52  pbartok
12678
12679         * X11Structs.cs:
12680           - Added XSetWindowAttributes structure
12681           - Improved XWindowAttributes structure
12682           - Added SetWindowValuemask enum
12683           - Added window creation arguments enum
12684           - Added gravity enum
12685           - Added Motif hints structure
12686           - Added various Motif flags and enums
12687           - Added PropertyMode enum for property functions
12688
12689 2004-11-08 13:50  pbartok
12690
12691         * Form.cs:
12692           - Fixed arguments for updated SetTopmost method
12693
12694 2004-11-08 13:49  pbartok
12695
12696         * ToolTip.cs:
12697           - Fixed arguments for updated SetTopmost function
12698           - Fixed usage of PointToClient
12699
12700 2004-11-08 13:44  pbartok
12701
12702         * MenuAPI.cs:
12703           - Added Clipping of children and siblings
12704
12705 2004-11-08 13:41  pbartok
12706
12707         * MainMenu.cs:
12708           - Removed SetMenuBarWindow call. We do this in Form.cs
12709
12710 2004-11-08 13:40  jackson
12711
12712         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
12713           scrolling jimmi in the correct location with bottom aligned tabs
12714
12715 2004-11-08 13:36  pbartok
12716
12717         * ContainerControl.cs:
12718           - Implemented BindingContext
12719           - Implemented ParentForm
12720
12721 2004-11-08 12:46  jackson
12722
12723         * TabControl.cs: Put bottom rendered tabs in the right location
12724
12725 2004-11-08 07:15  jordi
12726
12727         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
12728           removes dead code
12729
12730 2004-11-05 17:30  jackson
12731
12732         * TabControl.cs: When selected tabs are expanded make sure they
12733           don't go beyond the edges of the tab control
12734
12735 2004-11-05 14:57  jackson
12736
12737         * TabControl.cs: Reset show_slider so if the control is resized to
12738           a size where it is no longer needed it's not displayed anymore
12739
12740 2004-11-05 13:16  jackson
12741
12742         * TabControl.cs: Make tab pages non visible when added to the
12743           control
12744
12745 2004-11-05 12:42  jackson
12746
12747         * TabControl.cs: Implement SizeMode.FillToRight
12748
12749 2004-11-05 12:16  jackson
12750
12751         * Control.cs: Do not call CreateHandle if the handle is already
12752           created
12753
12754 2004-11-05 11:46  jackson
12755
12756         * TabControl.cs: Remove superflous call to CalcTabRows
12757
12758 2004-11-05 09:07  jackson
12759
12760         * XplatUIX11.cs: Update for Mono.Posix changes
12761
12762 2004-11-05 07:00  ravindra
12763
12764         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
12765           scrolling.
12766
12767 2004-11-04 22:47  jba
12768
12769         * ThemeWin32Classic.cs:
12770           - Fix Button rendering for FlatStyle = Flat or Popup
12771           - Fix RadioButton and CheckBox rendering when Appearance = Button
12772             (normal and flatstyle).
12773           - Correct outer rectangle color when drawing focus rectangle
12774           - Adjust button bounds to be 1 px smaller when focused
12775           - Make button not draw sunken 3d border when pushed (windows compat)
12776           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
12777           - Offset the text in RadioButton and Checkbox when being rendered as
12778           a button.
12779           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
12780           radiobuttons
12781           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
12782           - Fixed disabled text rendering for normally rendered radiobuttons
12783
12784 2004-11-04 10:26  jackson
12785
12786         * TabControl.cs: Recalculate tab rows when resizing
12787
12788 2004-11-04 07:47  jordi
12789
12790         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
12791           collection completion, drawing issues, missing features
12792
12793 2004-11-04 05:03  ravindra
12794
12795         * ScrollBar.cs:
12796                 - We need to recalculate the Thumb area when
12797                 LargeChange/maximum/minimum values are changed.
12798           - We set the 'pos' in UpdatePos() method to minimum, if it's less
12799                 than minimum. This is required to handle the case if large_change is
12800                 more than max, and use LargeChange property instead of large_change
12801                 variable.
12802           - We return max+1 when large_change is more than max, like MS does.
12803
12804 2004-11-04 04:29  ravindra
12805
12806         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
12807                 - Changed default value signatures (prefixed all with ListView).
12808                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
12809                 ListView.
12810           - Fixed calculations for ListViewItem and implemented Clone()
12811           method.
12812
12813 2004-11-04 04:26  ravindra
12814
12815         * Theme.cs, ThemeWin32Classic.cs:
12816                 - Changed default ListView values signatures (prefixed all with
12817                 ListView).
12818           - Fixed default size values for VScrollBar and HScrollBar.
12819                 - Fixed DrawListViewItem method.
12820
12821 2004-11-04 04:05  ravindra
12822
12823         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
12824
12825 2004-11-04 04:04  ravindra
12826
12827         * ImageList.cs: Implemented the missing overload for Draw method.
12828
12829 2004-11-03 19:29  jackson
12830
12831         * TabControl.cs: Handle dropping rows on selection properly
12832
12833 2004-11-03 11:59  jackson
12834
12835         * TabControl.cs: remove debug code
12836
12837 2004-11-03 11:52  jackson
12838
12839         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
12840           the scrolly widgerywoo
12841
12842 2004-11-02 13:52  jackson
12843
12844         * TabControl.cs: Resize the tab pages and tabs when the tab control
12845           is resized
12846
12847 2004-11-02 13:40  jackson
12848
12849         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
12850           selected tab to the bottom
12851
12852 2004-11-02 13:39  jackson
12853
12854         * TabPage.cs: Store the tab pages row
12855
12856 2004-11-02 12:33  jordi
12857
12858         * MenuItem.cs: fixes handle creation
12859
12860 2004-11-02 11:42  jackson
12861
12862         * TabControl.cs: signature fix
12863
12864 2004-11-02 08:56  jackson
12865
12866         * TabControl.cs: Calculate whether the tab is on an edge properly.
12867           Remove top secret debugging code
12868
12869 2004-11-01 19:57  jackson
12870
12871         * TabControl.cs: Add click handling, and proper sizing
12872
12873 2004-11-01 19:47  jackson
12874
12875         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
12876           tab controls
12877
12878 2004-11-01 19:39  jackson
12879
12880         * TabPage.cs: add internal property to store the bounds of a tab
12881           page
12882
12883 2004-10-30 04:23  ravindra
12884
12885         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
12886           values.
12887
12888 2004-10-30 04:21  ravindra
12889
12890         * ListView.cs, ListViewItem.cs: Added support for scrolling and
12891           fixed calculations.
12892
12893 2004-10-30 03:06  pbartok
12894
12895         * XplatUIX11.cs:
12896           - Removed extension of DllImported libs
12897
12898 2004-10-29 09:55  jordi
12899
12900         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
12901           navigation, itemcollection completion, menu fixes
12902
12903 2004-10-27 22:58  pbartok
12904
12905         * XplatUIX11.cs:
12906           - Now throws a nice error message when no X display could be opened
12907
12908 2004-10-26 13:51  jordi
12909
12910         * ListView.cs: removes warning
12911
12912 2004-10-26 03:55  ravindra
12913
12914         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
12915           ThemeWin32Classic.cs: Some formatting for my last checkins.
12916
12917 2004-10-26 03:36  ravindra
12918
12919         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
12920           control and default values.
12921
12922 2004-10-26 03:35  ravindra
12923
12924         * Theme.cs: Added some default values for ListView control.
12925
12926 2004-10-26 03:33  ravindra
12927
12928         * ToolBar.cs: ToolBar should use the user specified button size, if
12929           there is any. Added a size_specified flag for the same.
12930
12931 2004-10-26 03:33  ravindra
12932
12933         * ColumnHeader.cs: Added some internal members and calculations for
12934           ColumnHeader.
12935
12936 2004-10-26 03:32  ravindra
12937
12938         * ListViewItem.cs: Calculations for ListViewItem.
12939
12940 2004-10-26 03:31  ravindra
12941
12942         * ListView.cs: Added some internal members and calculations for
12943           ListView.
12944
12945 2004-10-22 13:31  jordi
12946
12947         * MenuAPI.cs: speedup menus drawing
12948
12949 2004-10-22 13:16  jackson
12950
12951         * XplatUIX11.cs: Make sure to update exposed regions when adding an
12952           expose event
12953
12954 2004-10-22 11:49  jackson
12955
12956         * Control.cs: oops
12957
12958 2004-10-22 11:41  jackson
12959
12960         * Control.cs: Check to see if the window should have its background
12961           repainted by X when drawing.
12962
12963 2004-10-22 11:31  jackson
12964
12965         * XplatUIX11.cs: When invalidating areas only use XClearArea if
12966           clear is true, this way we do not get flicker from X repainting the
12967           background
12968
12969 2004-10-22 11:28  jackson
12970
12971         * XEventQueue.cs: Queue properly
12972
12973 2004-10-21 09:38  jackson
12974
12975         * XEventQueue.cs: Fix access modifier
12976
12977 2004-10-21 09:36  jackson
12978
12979         * XEventQueue.cs: Don't loose messages
12980
12981 2004-10-21 09:22  jackson
12982
12983         * XEventQueue.cs: Don't loose messages
12984
12985 2004-10-20 04:15  jordi
12986
12987         * BootMode.cs: enum need it by SystemInfo
12988
12989 2004-10-19 21:58  pbartok
12990
12991         * XplatUIWin32.cs:
12992           - Small sanity check
12993
12994 2004-10-19 21:56  pbartok
12995
12996         * Form.cs:
12997           - Added private FormParentWindow class which acts as the container
12998             for our form and as the non-client area where menus are drawn
12999           - Added/Moved required tie-ins to Jordi's menus
13000           - Fixed/Implemented the FormStartPosition functionality
13001
13002 2004-10-19 21:52  pbartok
13003
13004         * Control.cs:
13005           - Removed unneeded locals
13006           - Added code to all size and location properties to understand and
13007             deal with the parent container of Form
13008
13009 2004-10-19 21:33  pbartok
13010
13011         * Application.cs:
13012           - Fixed to deal with new Form subclasses for menus
13013
13014 2004-10-19 17:48  jackson
13015
13016         * XEventQueue.cs: commit correct version of file
13017
13018 2004-10-19 16:50  jackson
13019
13020         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
13021
13022 2004-10-19 16:15  jordi
13023
13024         * MenuAPI.cs: MenuBarCalcSize returns the height
13025
13026 2004-10-19 08:31  pbartok
13027
13028         * Control.cs:
13029           - Added missing call to PreProcessMessage before calling OnXXXKey
13030           methods
13031
13032 2004-10-19 00:04  ravindra
13033
13034         * ToolTip.cs: Fixed constructor.
13035
13036 2004-10-18 09:31  jordi
13037
13038         * MenuAPI.cs: menuitems in menubars do not have shortcuts
13039
13040 2004-10-18 09:26  jordi
13041
13042         * MenuItem.cs: fixes MenuItem class signature
13043
13044 2004-10-18 08:56  jordi
13045
13046         * MenuAPI.cs: prevents windows from showing in the taskbar
13047
13048 2004-10-18 00:28  ravindra
13049
13050         * ToolTip.cs: Suppressed a warning message.
13051
13052 2004-10-18 00:27  ravindra
13053
13054         * Control.cs: Default value of visible property must be true.
13055
13056 2004-10-17 23:19  pbartok
13057
13058         * ToolTip.cs:
13059           - Complete implementation
13060
13061 2004-10-17 23:19  pbartok
13062
13063         * XplatUIX11.cs:
13064           - Added EnableWindow method
13065           - Added SetModal stub
13066           - Added generation of WM_ACTIVATE message (still needs testing)
13067           - Added SetTopMost stub
13068           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
13069
13070 2004-10-17 23:17  pbartok
13071
13072         * XplatUIWin32.cs:
13073           - Removed VirtualKeys to XplatUIStructs
13074           - Implemented SetTopMost method
13075           - Implemented EnableWindow method
13076           - Bugfix in ScreenToClient()
13077           - Bugfixes in ClientToScreen()
13078
13079 2004-10-17 22:51  pbartok
13080
13081         * XplatUIStructs.cs:
13082           - Added WS_EX styles to WindowStyles enumeration
13083
13084 2004-10-17 22:50  pbartok
13085
13086         * XplatUI.cs, XplatUIDriver.cs:
13087           - Added method for enabling/disabling windows
13088           - Added method for setting window modality
13089           - Added method for setting topmost window
13090
13091 2004-10-17 22:49  pbartok
13092
13093         * ThemeWin32Classic.cs:
13094           - Added ToolTip drawing code
13095
13096 2004-10-17 22:49  pbartok
13097
13098         * Theme.cs:
13099           - Added ToolTip abstracts
13100
13101 2004-10-17 22:47  pbartok
13102
13103         * Form.cs:
13104           - Fixed Form.ControlCollection to handle owner relations
13105           - Added Owner/OwnedForms handling
13106           - Implemented Z-Ordering for owned forms
13107           - Removed unneeded private overload of ShowDialog
13108           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
13109             so I hope)
13110           - Fixed Close(), had wrong default
13111           - Added firing of OnLoad event
13112           - Added some commented out debug code for Ownership handling
13113
13114 2004-10-17 22:16  pbartok
13115
13116         * Control.cs:
13117           - Fixed/implemented flat list of controls
13118
13119 2004-10-17 22:14  pbartok
13120
13121         * Application.cs:
13122           - Added code to simulate modal dialogs on Win32
13123
13124 2004-10-17 16:11  jordi
13125
13126         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
13127           mouse event
13128
13129 2004-10-17 13:39  jordi
13130
13131         * MenuAPI.cs: menu drawing fixes
13132
13133 2004-10-15 09:10  ravindra
13134
13135         * StructFormat.cs: General Enum.
13136
13137 2004-10-15 09:09  ravindra
13138
13139         * SizeGripStyle.cs: Enum for Form.
13140
13141 2004-10-15 09:08  ravindra
13142
13143         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
13144           in Theme for ListView.
13145
13146 2004-10-15 09:06  ravindra
13147
13148         * ColumnHeader.cs: Flushing some formatting changes.
13149
13150 2004-10-15 09:05  ravindra
13151
13152         * ListViewItem.cs: Implemented GetBounds method and fixed coding
13153           style.
13154
13155 2004-10-15 09:03  ravindra
13156
13157         * ListView.cs: Implemented Paint method and fixed coding style.
13158
13159 2004-10-15 07:34  jordi
13160
13161         * MenuAPI.cs: fix for X11
13162
13163 2004-10-15 07:32  ravindra
13164
13165         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
13166                 - Renamed Paint() method to Draw() for clarity. Also, moved
13167                 DrawImage() to OnPaint().
13168
13169 2004-10-15 07:25  ravindra
13170
13171         * CheckBox.cs, RadioButton.cs:
13172                 - Removed Redraw (), we get it from ButtonBase.
13173                 - Implemented Paint (), to do class specific painting.
13174
13175 2004-10-15 07:16  ravindra
13176
13177         * ButtonBase.cs:
13178                 - Redraw () is not virtual now.
13179                 - Added an internal virtual method Paint (), so that
13180                 derived classes can do their painting on their own.
13181                 - Modified OnPaint () to call Paint ().
13182
13183 2004-10-15 06:43  jordi
13184
13185         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
13186           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
13187
13188 2004-10-15 00:30  ravindra
13189
13190         * MessageBox.cs:
13191                 - MessageBox on windows does not have min/max buttons.
13192                 This change in CreateParams fixes this on Windows. We
13193                 still need to implement this windowstyle behavior in
13194                 our X11 driver.
13195
13196 2004-10-14 05:14  ravindra
13197
13198         * ToolBar.cs:
13199                 - Changed Redraw () to do a Refresh () always.
13200                 - Fixed the MouseMove event handling when mouse is pressed,
13201                 ie drag event handling.
13202                 - Replaced the usage of ToolBarButton.Pressed property to
13203                 ToolBarButton.pressed internal variable.
13204
13205 2004-10-14 05:10  ravindra
13206
13207         * ToolBarButton.cs:
13208                 - Added an internal member 'inside' to handle mouse move
13209                 with mouse pressed ie mouse drag event.
13210                 - Changed 'Pressed' property to return true only when
13211                 'inside' and 'pressed' are both true.
13212                 - Some coding style love.
13213
13214 2004-10-14 00:17  ravindra
13215
13216         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
13217           public method.
13218
13219 2004-10-14 00:15  ravindra
13220
13221         * ButtonBase.cs: Redraw () related improvements.
13222
13223 2004-10-14 00:14  ravindra
13224
13225         * MessageBox.cs: Moved InitFormSize () out of Paint method and
13226           removed unnecessary calls to Button.Show () method.
13227
13228 2004-10-13 17:50  pbartok
13229
13230         * XplatUIX11.cs:
13231           - Formatting fix
13232           - Removed destroying of window until we solve the problem of X
13233             destroying the window before us on shutdown
13234
13235 2004-10-13 16:32  pbartok
13236
13237         * ButtonBase.cs:
13238           - Now Redraws on MouseUp for FlatStyle Flat and Popup
13239
13240 2004-10-13 14:18  pbartok
13241
13242         * XplatUIX11.cs:
13243           - Added code to destroy the X window
13244
13245 2004-10-13 14:18  pbartok
13246
13247         * XplatUIWin32.cs:
13248           - Added code to destroy a window
13249
13250 2004-10-13 14:12  pbartok
13251
13252         * ButtonBase.cs:
13253           - Added the Redraw on Resize that got dropped in the last rev
13254
13255 2004-10-13 09:06  pbartok
13256
13257         * ThemeWin32Classic.cs:
13258           - Path from John BouAntoun:
13259             * Fix check rendering (centre correctly for normal style, offset
13260               correctly for FlatStyle).
13261             * Fix border color usage (use backcolor) for FlatStyle.Popup
13262             * Use checkbox.Capture instead of checkbox.is_pressed when
13263               rendering flatstyle states.
13264
13265 2004-10-12 21:48  pbartok
13266
13267         * ThemeWin32Classic.cs:
13268           - Removed all occurences of SystemColors and replaced them with the
13269             matching theme color
13270
13271 2004-10-12 21:41  pbartok
13272
13273         * ThemeWin32Classic.cs:
13274           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
13275             him using the function for flatstyle drawing
13276           - Changed functions to use the new version of CPDrawBorder3D
13277
13278 2004-10-12 21:15  pbartok
13279
13280         * ControlPaint.cs:
13281           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
13282             match MS documentation. They need to return defined colors if the
13283             passed color matches the configured control color. Thanks to John
13284             BouAntoun for pointing this out.
13285
13286 2004-10-12 20:57  pbartok
13287
13288         * Control.cs:
13289           - Fix from John BouAntoun: Raise ForeColorChanged event when text
13290             color is changed
13291
13292 2004-10-12 20:46  pbartok
13293
13294         * CheckBox.cs:
13295           - Fix from John BouAntoun: Now properly sets the Appearance property
13296
13297 2004-10-12 20:45  pbartok
13298
13299         * ThemeWin32Classic.cs:
13300           - Fixes from John BouAntoun: now handles forecolors and backcolors
13301             for flatstyle rendered controls much better; It also fixes normal
13302             checkbox rendering when pushed or disabled.
13303
13304 2004-10-08 02:50  jordi
13305
13306         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
13307           work
13308
13309 2004-10-07 08:56  jordi
13310
13311         * ThemeWin32Classic.cs: Removes deletion of cached brushes
13312
13313 2004-10-06 03:59  jordi
13314
13315         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
13316           XplatUIWin32.cs: removes warnings from compilation
13317
13318 2004-10-05 12:23  jackson
13319
13320         * RadioButton.cs: Fix ctor
13321
13322 2004-10-05 11:10  pbartok
13323
13324         * MessageBox.cs:
13325           - Partial implementation by Benjamin Dasnois
13326
13327 2004-10-05 10:15  jackson
13328
13329         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
13330           by John BouAntoun
13331
13332 2004-10-05 03:07  ravindra
13333
13334         * ToolBar.cs:
13335                 - Removed a private method, Draw ().
13336                 - Fixed the ButtonDropDown event handling.
13337                 - Fixed MouseMove event handling.
13338
13339 2004-10-05 03:04  ravindra
13340
13341         * ThemeWin32Classic.cs:
13342                 - Added DrawListView method and ListViewDefaultSize property.
13343                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
13344                 - Changed DOS style CRLF to Unix format (dos2unix).
13345
13346 2004-10-05 03:03  ravindra
13347
13348         * Theme.cs:
13349                 - Added DrawListView method and ListViewDefaultSize property.
13350
13351 2004-10-05 02:42  ravindra
13352
13353         * ToolBarButton.cs: Added an internal member dd_pressed to handle
13354           clicks on DropDown arrow.
13355
13356 2004-10-04 22:56  jackson
13357
13358         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
13359           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
13360           Control handle the buffers, derived classes should not have to
13361           CreateBuffers themselves.
13362
13363 2004-10-04 21:20  jackson
13364
13365         * StatusBar.cs: The control handles resizing the buffers now.
13366
13367 2004-10-04 21:18  jackson
13368
13369         * Control.cs: When resizing the buffers should be invalidated. This
13370           should be handled in Control not in derived classes.
13371
13372 2004-10-04 14:45  jackson
13373
13374         * TabPage.cs: oops
13375
13376 2004-10-04 02:14  pbartok
13377
13378         * LeftRightAlignment.cs:
13379           - Initial check-in
13380
13381 2004-10-04 01:09  jordi
13382
13383         * ThemeWin32Classic.cs: fixes right button position causing right
13384           button not showing on horizontal scrollbars
13385
13386 2004-10-02 13:12  pbartok
13387
13388         * XplatUIX11.cs:
13389           - Simplified the Invalidate method by using an X call instead of
13390             generating the expose ourselves
13391           - Added an expose when the window background is changed
13392           - Implemented ClientToScreen method
13393
13394 2004-10-02 13:08  pbartok
13395
13396         * XplatUIWin32.cs:
13397           - Added Win32EnableWindow method (test for implementing modal
13398           dialogs)
13399           - Added ClientToScreen method and imports
13400
13401 2004-10-02 13:07  pbartok
13402
13403         * XplatUI.cs, XplatUIDriver.cs:
13404           - Added ClientToScreen coordinate translation method
13405
13406 2004-10-02 13:06  pbartok
13407
13408         * KeyPressEventArgs.cs:
13409           - Fixed access level for constructor
13410
13411 2004-10-02 13:06  pbartok
13412
13413         * NativeWindow.cs:
13414           - Changed access level for the window_collection hash table
13415
13416 2004-10-02 13:05  pbartok
13417
13418         * Form.cs:
13419           - Added KeyPreview property
13420           - Added Menu property (still incomplete, pending Jordi's menu work)
13421           - Implemented ProcessCmdKey
13422           - Implemented ProcessDialogKey
13423           - Implemented ProcessKeyPreview
13424
13425 2004-10-02 13:02  pbartok
13426
13427         * Control.cs:
13428           - Added private method to get the Control object from the window
13429           handle
13430           - Implemented ContextMenu property
13431           - Implemented PointToScreen
13432           - Implemented PreProcessMessage
13433           - Implemented IsInputChar
13434           - Implemented IsInputKey
13435           - Implemented ProcessCmdKey
13436           - Completed ProcessKeyEventArgs
13437           - Fixed message loop to call the proper chain of functions on key
13438           events
13439           - Implemented ProcessDialogChar
13440           - Implemented ProcessDialogKey
13441           - Implemented ProcessKeyMessage
13442           - Implemented ProcessKeyPreview
13443           - Added RaiseDragEvent stub (MS internal method)
13444           - Added RaiseKeyEvent stub (MS internal method)
13445           - Added RaiseMouseEvent stub (MS Internal method)
13446           - Added RaisePaintEvent stub (MS Internal method)
13447           - Added ResetMouseEventArgs stub (MS Internal method)
13448           - Implemented RtlTranslateAlignment
13449           - Implemented RtlTranslateContent
13450           - Implemented RtlTranslateHorizontal
13451           - Implemented RtlTranslateLeftRight
13452           - Added generation of KeyPress event
13453
13454 2004-10-02 05:57  ravindra
13455
13456         * ListViewItem.cs: Added attributes.
13457
13458 2004-10-02 05:32  ravindra
13459
13460         * ListView.cs: Added attributes.
13461
13462 2004-10-01 11:53  jackson
13463
13464         * Form.cs: Implement the Close method so work on MessageBox can
13465           continue.
13466
13467 2004-09-30 14:06  pbartok
13468
13469         * XplatUIX11.cs:
13470           - Bug fixes
13471
13472 2004-09-30 11:34  jackson
13473
13474         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
13475
13476 2004-09-30 07:26  ravindra
13477
13478         * ListViewItemConverter.cs: Converter for ListViewItem.
13479
13480 2004-09-30 07:26  ravindra
13481
13482         * SortOrder.cs: Enum for ListView control.
13483
13484 2004-09-30 07:25  ravindra
13485
13486         * ColumnHeader.cs: Supporting class for ListView control.
13487
13488 2004-09-30 07:24  ravindra
13489
13490         * ListView.cs, ListViewItem.cs: Initial implementation.
13491
13492 2004-09-30 07:20  ravindra
13493
13494         * ItemActivation.cs: Enum for ListView Control.
13495
13496 2004-09-29 20:29  pbartok
13497
13498         * XplatUIX11.cs:
13499           - Added lookup of pixel value for background color; tries to get a
13500             color 'close' to the requested color, it avoids having to create a
13501             colormap.  Depending on the display this could mean the used color
13502             is slightly off the desired color. Might have to change it to a more
13503             resource intensive colormap approach, but it will work as a
13504           workaround to avoid red screens.
13505
13506 2004-09-29 14:27  jackson
13507
13508         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
13509
13510 2004-09-28 12:44  pbartok
13511
13512         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
13513           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
13514           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
13515           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
13516           TrackBar.cs, VScrollBar.cs:
13517           - Streamlined Theme interfaces:
13518             * Each DrawXXX method for a control now is passed the object for
13519               the control to be drawn in order to allow accessing any state the
13520               theme might require
13521
13522             * ControlPaint methods for the theme now have a CP prefix to avoid
13523               name clashes with the Draw methods for controls
13524
13525             * Every control now retrieves it's DefaultSize from the current
13526             theme
13527
13528 2004-09-28 12:17  jackson
13529
13530         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
13531           drawing
13532
13533 2004-09-24 14:57  jackson
13534
13535         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
13536           Gives us a nice little performance boost.
13537
13538 2004-09-24 12:02  jackson
13539
13540         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
13541           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
13542           Control and supporting classes. Initial checkin
13543
13544 2004-09-23 13:08  jackson
13545
13546         * Form.cs: Temp build fixage
13547
13548 2004-09-23 01:39  ravindra
13549
13550         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
13551           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
13552           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
13553           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
13554           EventHandlers needed by ListView Control.
13555
13556 2004-09-22 14:12  pbartok
13557
13558         * ScrollableControl.cs:
13559           - Implemented DockPadding property
13560           - Implemented AutoScroll property
13561           - Implemented AutoScrollMargin property
13562           - Implemented AutoScrollMinSize property
13563           - Implemented AutoScrollPosition property
13564           - Implemented DisplayRectangle property (still incomplete)
13565           - Implemented CreateParams property
13566           - Implemented HScroll property
13567           - Implemented VScroll property
13568           - Implemented OnVisibleChanged property
13569
13570 2004-09-22 14:09  pbartok
13571
13572         * Form.cs:
13573           - Added Form.ControllCollection class
13574           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
13575             RemoveOwnedForm (still incomplete, missing on-top and common
13576             minimize/maximize behaviour)
13577           - Added StartPosition property (still incomplete, does not use when
13578             creating the form)
13579           - Added ShowDialog() methods (still incomplete, missing forcing the
13580             dialog modal)
13581
13582 2004-09-22 14:05  pbartok
13583
13584         * Application.cs:
13585           - Added message loop for modal dialogs
13586
13587 2004-09-22 14:02  pbartok
13588
13589         * GroupBox.cs:
13590           - Fixed wrong types for events
13591
13592 2004-09-22 14:00  pbartok
13593
13594         * Shortcut.cs, FormWindowState.cs:
13595           - Fixed wrong values
13596
13597 2004-09-22 12:01  jackson
13598
13599         * Control.cs: Text is never null
13600
13601 2004-09-20 22:14  pbartok
13602
13603         * XplatUIWin32.cs:
13604           - Fixed accessibility level for Idle handler
13605
13606 2004-09-20 18:54  jackson
13607
13608         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
13609           XplatUIX11.cs: New message loop that uses poll so we don't get a
13610           busy loop
13611
13612 2004-09-17 10:43  pbartok
13613
13614         * ScrollBar.cs:
13615           - Fixed behaviour of arrow buttons. Now properly behaves like
13616             Buttons (and like Microsoft's scrollbar arrow buttons)
13617
13618 2004-09-17 10:14  pbartok
13619
13620         * ScrollBar.cs:
13621           - Added missing release of keyboard/mouse capture
13622
13623 2004-09-17 06:18  jordi
13624
13625         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
13626           Theme.cs: Very early menu support
13627
13628 2004-09-16 17:45  pbartok
13629
13630         * XplatUIWin32.cs:
13631           - Fixed sending a window to the front
13632           - Added overload for SetWindowPos to avoid casting
13633
13634 2004-09-16 17:44  pbartok
13635
13636         * Control.cs:
13637           - Added SendToBack and BringToFront methods
13638
13639 2004-09-16 07:00  ravindra
13640
13641         * Copyright: Added Novell URL.
13642
13643 2004-09-16 07:00  ravindra
13644
13645         * ToolBar.cs: Invalidate should be done before redrawing.
13646
13647 2004-09-15 21:19  ravindra
13648
13649         * ColumnHeaderStyle.cs: Enum for ListView Control.
13650
13651 2004-09-15 21:18  ravindra
13652
13653         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
13654           ListView Control.
13655
13656 2004-09-13 18:26  jackson
13657
13658         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
13659           properly
13660
13661 2004-09-13 18:13  jackson
13662
13663         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
13664           a second thread and post messages into the main threads message
13665           queue. This makes timing much more consistent. Both win2K and XP
13666           have a minimum timer value of 15 milliseconds, so we now do this
13667           too.
13668
13669 2004-09-13 15:18  pbartok
13670
13671         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
13672           XplatUIX11.cs:
13673           - Added Z-Ordering methods
13674
13675 2004-09-13 10:56  pbartok
13676
13677         * Form.cs:
13678           - Fixed #region names
13679           - Moved properties and methods into their proper #regions
13680
13681 2004-09-13 10:51  pbartok
13682
13683         * Form.cs:
13684           - Added Accept and CancelButton properties
13685           - Added ProcessDialogKey() method
13686
13687 2004-09-13 08:18  pbartok
13688
13689         * IWindowTarget.cs:
13690           - Initial check-in
13691
13692 2004-09-10 21:50  pbartok
13693
13694         * Control.cs:
13695           - Added DoDragDrop() [incomplete]
13696           - Properly implemented 'Visible' handling
13697           - Added SetVisibleCore()
13698           - Implemented FindChildAtPoint()
13699           - Implemented GetContainerControl()
13700           - Implemented Hide()
13701
13702 2004-09-10 19:28  pbartok
13703
13704         * Control.cs:
13705           - Moved methods into their appropriate #regions
13706           - Reordered methods within regions alphabetically
13707
13708 2004-09-10 18:57  pbartok
13709
13710         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
13711           - Added method to retrieve text from window
13712
13713 2004-09-10 18:56  pbartok
13714
13715         * Control.cs:
13716           - Moved some internal functions into the internal region
13717           - Implemented FontHeight
13718           - Implemented RenderRightToLeft
13719           - Implemented ResizeRedraw
13720           - Implemented ShowFocusCues
13721           - Implemented ShowKeyboardCues
13722           - Implemented FromChildHandle
13723           - Implemented FromHandle
13724           - Implemented IsMnemonic
13725           - Implemented ReflectMessage
13726           - All public and protected Static Methods are now complete
13727
13728 2004-09-10 16:54  pbartok
13729
13730         * Control.cs:
13731           - Implemented remaining missing public instance properties
13732           - Alphabetized some out of order properties
13733
13734 2004-09-10 05:51  ravindra
13735
13736         * PictureBox.cs: Added a check for null image.
13737
13738 2004-09-10 00:59  jordi
13739
13740         * GroupBox.cs: remove cvs tag
13741
13742 2004-09-09 05:25  ravindra
13743
13744         * ToolBar.cs: Make redraw accessible from ToolBarButton.
13745
13746 2004-09-09 05:23  ravindra
13747
13748         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
13749           parent redraw.
13750
13751 2004-09-09 02:28  pbartok
13752
13753         * ThemeWin32Classic.cs:
13754           - Improve disabled string look
13755
13756 2004-09-09 01:15  jordi
13757
13758         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
13759           args and handler
13760
13761 2004-09-08 23:56  ravindra
13762
13763         * ItemBoundsPortion.cs: It's enum, not a class!
13764
13765 2004-09-08 23:47  ravindra
13766
13767         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
13768           Enums for Form.
13769
13770 2004-09-08 21:13  ravindra
13771
13772         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
13773           ListView control.
13774
13775 2004-09-08 21:03  ravindra
13776
13777         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
13778           avoid crash.
13779
13780 2004-09-08 21:01  ravindra
13781
13782         * ScrollableControl.cs: Removed unreachable code.
13783
13784 2004-09-08 06:45  jordi
13785
13786         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
13787
13788 2004-09-08 01:00  jackson
13789
13790         * XplatUIX11.cs: Only run the timers when updating the message
13791           queue. This effectively gives X messages a higher priority then
13792           timer messages. Timers still need love though
13793
13794 2004-09-07 14:01  jackson
13795
13796         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
13797           this for us and the handle is no longer valid.
13798
13799 2004-09-07 13:59  jackson
13800
13801         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
13802           loop that manages to not crash. TODO: Add poll and cleanup timers
13803
13804 2004-09-07 11:12  jordi
13805
13806         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
13807
13808 2004-09-07 03:40  jordi
13809
13810         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
13811           fixes, methods, multiple links
13812
13813 2004-09-06 06:55  jordi
13814
13815         * Control.cs: Caches ClientRectangle rectangle value
13816
13817 2004-09-05 02:03  jordi
13818
13819         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
13820           certain situations
13821
13822 2004-09-04 11:10  jordi
13823
13824         * Label.cs: Refresh when font changed
13825
13826 2004-09-02 16:24  pbartok
13827
13828         * Control.cs:
13829           - Added sanity check to creation of double buffer bitmap
13830
13831 2004-09-02 16:24  pbartok
13832
13833         * ButtonBase.cs:
13834           - Fixed selection of text color
13835           - Fixed handling of resize event; now properly recreates double
13836             buffering bitmap
13837           - Added missing assignment of TextAlignment
13838           - Added proper default for TextAlignment
13839
13840 2004-09-02 14:26  pbartok
13841
13842         * RadioButton.cs:
13843           - Added missing RadioButton.RadioButtonAccessibleObject class
13844
13845 2004-09-02 14:26  pbartok
13846
13847         * Control.cs:
13848           - Added missing Control.ControlAccessibleObject class
13849           - Started to implement Select()ion mechanisms, still very incomplete
13850
13851 2004-09-02 14:25  pbartok
13852
13853         * AccessibleObject.cs:
13854           - Added missing methods
13855
13856 2004-09-02 14:23  pbartok
13857
13858         * AccessibleNavigation.cs, AccessibleSelection.cs:
13859           - Initial check-in
13860
13861 2004-09-02 10:32  jordi
13862
13863         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
13864           pool for pens, brushes, and hatchbruses
13865
13866 2004-09-01 15:30  jackson
13867
13868         * StatusBar.cs: Fix typo
13869
13870 2004-09-01 14:44  pbartok
13871
13872         * RadioButton.cs:
13873           - Fixed state
13874
13875 2004-09-01 14:39  pbartok
13876
13877         * Button.cs, RadioButton.cs:
13878           - Functional initial check-in
13879
13880 2004-09-01 14:01  pbartok
13881
13882         * CheckBox.cs:
13883           - Added missing default
13884           - Added missing region mark
13885
13886 2004-09-01 09:10  jordi
13887
13888         * Label.cs: fixes method signatures, new methods, events, fixes
13889           autosize
13890
13891 2004-09-01 07:19  jordi
13892
13893         * Control.cs: Init string variables with an empty object
13894
13895 2004-09-01 04:20  jordi
13896
13897         * Control.cs: fires OnFontChanged event
13898
13899 2004-08-31 20:07  pbartok
13900
13901         * ButtonBase.cs:
13902           - Enabled display of strings
13903
13904 2004-08-31 20:05  pbartok
13905
13906         * Form.cs:
13907           - Added (partial) implementation of DialogResult; rest needs to be
13908             implemented when the modal loop code is done
13909
13910 2004-08-31 19:55  pbartok
13911
13912         * CheckBox.cs:
13913           - Fixed to match the removal of the needs_redraw concept
13914
13915 2004-08-31 19:55  pbartok
13916
13917         * ButtonBase.cs:
13918           - Removed the rather odd split between 'needs redraw' and redrawing
13919           - Now handles the events that require regeneration (ambient
13920             properties and size)
13921
13922 2004-08-31 19:41  pbartok
13923
13924         * Control.cs:
13925           - Added firing of BackColorChanged event
13926           - Added TopLevelControl property
13927           - Fixed handling of WM_ERASEBKGRND message
13928
13929 2004-08-31 12:49  pbartok
13930
13931         * ButtonBase.cs:
13932           - Removed debug
13933           - Minor fixes
13934
13935 2004-08-31 12:48  pbartok
13936
13937         * CheckBox.cs:
13938           - Finished (famous last words)
13939
13940 2004-08-31 04:35  jordi
13941
13942         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
13943           scrolling bugs, adds new methods
13944
13945 2004-08-30 14:42  pbartok
13946
13947         * CheckBox.cs:
13948           - Implemented CheckBox drawing code
13949
13950 2004-08-30 14:42  pbartok
13951
13952         * ButtonBase.cs:
13953           - Made Redraw() and CheckRedraw() virtual
13954           - Improved mouse up/down/move logic to properly track buttons
13955
13956 2004-08-30 09:44  pbartok
13957
13958         * CheckBox.cs:
13959           - Updated to fix broken build. Not complete yet.
13960
13961 2004-08-30 09:28  pbartok
13962
13963         * CheckState.cs:
13964           - Initial checkin
13965
13966 2004-08-30 09:17  pbartok
13967
13968         * Appearance.cs:
13969           - Initial check-in
13970
13971 2004-08-27 16:12  ravindra
13972
13973         * ToolBarButton.cs: Added TypeConverter attribute.
13974
13975 2004-08-27 16:07  ravindra
13976
13977         * ImageIndexConverter.cs: Implemented.
13978
13979 2004-08-27 14:17  pbartok
13980
13981         * Control.cs:
13982           - Removed unneeded stack vars
13983           - First attempt to fix sizing issues when layout is suspended
13984
13985 2004-08-25 15:35  jordi
13986
13987         * ScrollBar.cs: more fixes to scrollbar
13988
13989 2004-08-25 14:04  ravindra
13990
13991         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
13992           Added the missing divider code and grip for ToolBar Control.
13993
13994 2004-08-25 13:20  pbartok
13995
13996         * Control.cs:
13997           - Control now properly passes the ambient background color to child
13998             controls
13999
14000 2004-08-25 13:20  jordi
14001
14002         * ScrollBar.cs: small bug fix regarding bar position
14003
14004 2004-08-25 12:33  pbartok
14005
14006         * Timer.cs:
14007           - Now only calls SetTimer or KillTimer if the enabled state has
14008           changed
14009
14010 2004-08-25 12:33  pbartok
14011
14012         * XplatUIWin32.cs:
14013           - Fixed timer handling, now seems to work
14014           - Improved error message for window creation
14015
14016 2004-08-25 12:32  pbartok
14017
14018         * Control.cs:
14019           - Fixed generation of MouseUp message
14020
14021 2004-08-25 12:29  jordi
14022
14023         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
14024           and fixes for progressbar
14025
14026 2004-08-24 18:43  ravindra
14027
14028         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
14029           in ToolBar control.
14030
14031 2004-08-24 17:15  pbartok
14032
14033         * Panel.cs:
14034           - Added #region
14035           - Added missing events
14036           - Alphabetized
14037
14038 2004-08-24 17:14  pbartok
14039
14040         * StatusBar.cs, PictureBox.cs:
14041           - Now uses Control's CreateParams
14042
14043 2004-08-24 16:36  pbartok
14044
14045         * XplatUIX11.cs:
14046           - Fixed background color handling
14047           - Fixed sending of enter/leave events on a grab
14048
14049 2004-08-24 16:35  pbartok
14050
14051         * X11Structs.cs:
14052           - Refined definitions for CrossingEvent
14053
14054 2004-08-24 12:37  jordi
14055
14056         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
14057           formmating, methods signature, and adds missing events
14058
14059 2004-08-24 12:24  jordi
14060
14061         * Control.cs: fire OnEnabledChanged event
14062
14063 2004-08-24 11:17  pbartok
14064
14065         * XplatUIWin32.cs:
14066           - Implemented SetTimer() and KillTimer()
14067
14068 2004-08-24 11:16  pbartok
14069
14070         * XplatUIX11.cs:
14071           - Now uses Remove instead of Add to kill the timer
14072
14073 2004-08-24 10:16  jackson
14074
14075         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
14076           picture boxes in the theme now. Draw picture box borders and obey
14077           sizing modes
14078
14079 2004-08-24 05:49  jackson
14080
14081         * Timer.cs: Remove top secret debugging code
14082
14083 2004-08-24 05:34  jackson
14084
14085         * PictureBox.cs: Temp hack to make picture boxes draw their full
14086           image
14087
14088 2004-08-24 05:29  jackson
14089
14090         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
14091           XplatUIX11.cs: Move timers to the driver level. On X they are
14092           queued by the driver and checked on idle.
14093
14094 2004-08-24 01:07  jackson
14095
14096         * XplatUIX11.cs: Use a queue for async messages instead of passing
14097           them as ClientMessages since that was totally broken. Also simply
14098           check for events and return an idle message if none are found. This
14099           gives us an idle handler, and prevents deadlocking when no messages
14100           are in the queue.
14101
14102 2004-08-23 18:19  ravindra
14103
14104         * XplatUIWin32.cs: Removed the unwanted destructor.
14105
14106 2004-08-23 17:27  pbartok
14107
14108         * ButtonBase.cs:
14109           - Finishing touches. Works now, just needs some optimizations.
14110
14111 2004-08-23 16:53  jordi
14112
14113         * ScrollBar.cs: small fix
14114
14115 2004-08-23 16:45  pbartok
14116
14117         * Application.cs:
14118           - Removed debug output
14119           - Simplifications
14120
14121 2004-08-23 16:43  jordi
14122
14123         * ScrollBar.cs: [no log message]
14124
14125 2004-08-23 16:10  pbartok
14126
14127         * Form.cs:
14128           - Fixed handling of WM_CLOSE message
14129           - Removed debug output
14130
14131 2004-08-23 16:09  pbartok
14132
14133         * Application.cs:
14134           - Added handling of Idle event
14135           - Added handling of form closing
14136           - Fixed reporting of MessageLoop property
14137           - Removed some unneeded code, should provide a bit of a speedup
14138
14139 2004-08-23 15:22  pbartok
14140
14141         * Control.cs:
14142           - Added InitLayout() method
14143           - Added code to properly perform layout when Anchor or Dock property
14144             is changed
14145           - Changed 'interpretation' of ResumeLayout. MS seems to have a
14146             LAMESPEC, tried to do it in a way that makes sense
14147
14148 2004-08-23 14:10  jordi
14149
14150         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
14151           properties and methods
14152
14153 2004-08-23 13:55  pbartok
14154
14155         * Control.cs:
14156           - Properly fixed Jordi's last fix
14157           - Now uses Cursor's Position property instead of calling XplatUI
14158           directly
14159
14160 2004-08-23 13:44  jordi
14161
14162         * PaintEventHandler.cs: Adding missing attribute
14163
14164 2004-08-23 13:39  pbartok
14165
14166         * Cursor.cs:
14167           - Implemented Position property
14168
14169 2004-08-23 13:39  pbartok
14170
14171         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
14172           - Added method to move mouse cursor
14173
14174 2004-08-23 13:39  pbartok
14175
14176         * XplatUIX11.cs:
14177           - Fixed setting of background color
14178           - Added method to move mouse cursor
14179
14180 2004-08-23 13:16  jordi
14181
14182         * Control.cs: avoids null exception
14183
14184 2004-08-22 17:46  jackson
14185
14186         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
14187           PictureBox
14188
14189 2004-08-22 17:40  jackson
14190
14191         * XplatUIX11.cs: Add some missing locks
14192
14193 2004-08-22 15:10  pbartok
14194
14195         * Control.cs, Form.cs:
14196           - Removed OverlappedWindow style from Control, instead it's default
14197             now is child
14198           - Made form windows OverlappedWindow by default
14199
14200 2004-08-22 13:34  jackson
14201
14202         * ScrollBar.cs: Update the position through the Value property so
14203           the OnValueChanged event is raised.
14204
14205 2004-08-22 12:04  pbartok
14206
14207         * SWF.csproj:
14208           - Added Cursor.cs and UserControl.cs
14209
14210 2004-08-22 12:03  pbartok
14211
14212         * Cursor.cs:
14213           - Started implementation, not usable yet
14214
14215 2004-08-22 12:00  pbartok
14216
14217         * UserControl.cs:
14218           - Implemented UserControl (complete)
14219
14220 2004-08-21 19:20  ravindra
14221
14222         * ToolBar.cs: Correcting the formatting mess of VS.NET.
14223
14224 2004-08-21 18:49  ravindra
14225
14226         * ToolBar.cs: Probably this completes the missing attributes in
14227           toolbar control.
14228
14229 2004-08-21 18:03  ravindra
14230
14231         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
14232           Fixed toolbar control signatures.
14233
14234 2004-08-21 16:32  pbartok
14235
14236         * LinkLabel.cs:
14237           - Signature Fixes
14238
14239 2004-08-21 16:30  pbartok
14240
14241         * Label.cs:
14242           - Signature fixes
14243
14244 2004-08-21 16:19  pbartok
14245
14246         * Control.cs, Label.cs:
14247           - Signature fixes
14248
14249 2004-08-21 15:57  pbartok
14250
14251         * ButtonBase.cs:
14252           - Added loads of debug output for development
14253           - Fixed typo in method name
14254
14255 2004-08-21 15:52  pbartok
14256
14257         * ToolBarButtonClickEventArgs.cs:
14258           - Added missing base class
14259
14260 2004-08-21 14:53  pbartok
14261
14262         * Control.cs:
14263           - Updated to match new GrabWindow signature
14264
14265 2004-08-21 14:51  pbartok
14266
14267         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
14268           - Added method to get default display size
14269
14270 2004-08-21 14:23  pbartok
14271
14272         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
14273           - Added method to query current grab state
14274           - Added argument to allow confining a grab to a window
14275
14276 2004-08-21 14:22  pbartok
14277
14278         * Keys.cs:
14279           - Added [Flags] attribute so that modifiers can be used in bitwise
14280           ops
14281
14282 2004-08-21 14:21  pbartok
14283
14284         * TrackBar.cs, ScrollBar.cs:
14285           - Replaced direct XplatUI calls with their Control counterpart
14286
14287 2004-08-21 13:32  pbartok
14288
14289         * Control.cs:
14290           - Implemented Created property
14291
14292 2004-08-21 13:28  pbartok
14293
14294         * Control.cs:
14295           - Implemented ContainsFocus
14296
14297 2004-08-21 13:26  pbartok
14298
14299         * Control.cs:
14300           - Implemented CausesValidation
14301
14302 2004-08-21 13:21  pbartok
14303
14304         * Control.cs:
14305           - Implemented CanFocus
14306           - Implemented CanSelect
14307           - Implemented Capture
14308
14309 2004-08-21 12:35  pbartok
14310
14311         * XplatUIWin32.cs:
14312           - Fixed bug with Async message handling
14313           - Implemented getting the ModifierKeys
14314
14315 2004-08-21 12:32  jackson
14316
14317         * AsyncMethodResult.cs: Make sure we have the mutex before we
14318           release it. Fixes BeginInvoke on windows
14319
14320 2004-08-21 11:31  pbartok
14321
14322         * XplatUIWin32.cs, XplatUIX11.cs:
14323           - Drivers now return proper mouse state
14324
14325 2004-08-21 10:54  jackson
14326
14327         * Control.cs: Implement EndInvoke
14328
14329 2004-08-21 10:48  jackson
14330
14331         * Timer.cs: Remove unneeded finalizer
14332
14333 2004-08-20 19:52  ravindra
14334
14335         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
14336           in mouse event handling in the ToolBar control.
14337
14338 2004-08-20 19:50  ravindra
14339
14340         * ImageList.cs: Changed draw method to use the arguments passed in
14341           to draw the image.
14342
14343 2004-08-20 18:58  pbartok
14344
14345         * XplatUIStructs.cs:
14346           - Added private message for async communication
14347
14348 2004-08-20 17:38  ravindra
14349
14350         * Control.cs: Made RightToLeft property virtual and removed a
14351           Console.WriteLine.
14352
14353 2004-08-20 14:39  jordi
14354
14355         * ThemeGtk.cs: use style_attach
14356
14357 2004-08-20 14:39  pbartok
14358
14359         * XplatUIWin32.cs:
14360           - Added jackson's Async code from X11 to Win32
14361
14362 2004-08-20 14:09  pbartok
14363
14364         * SWF.csproj:
14365           - Added all new files
14366
14367 2004-08-20 14:09  pbartok
14368
14369         * Control.cs:
14370           - Added call to set window background color
14371
14372 2004-08-20 14:03  pbartok
14373
14374         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
14375           - Added method for setting the window background
14376
14377 2004-08-20 14:02  pbartok
14378
14379         * XplatUIWin32.cs:
14380           - Added method for setting the background color
14381           - Added handling for erasing the window background
14382
14383 2004-08-20 13:45  jordi
14384
14385         * TrackBar.cs: fixes timer, new properties and methods
14386
14387 2004-08-20 13:34  jackson
14388
14389         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
14390           correct thread
14391
14392 2004-08-20 13:22  jackson
14393
14394         * Timer.cs: Timer Tick events are now handed through Controls Async
14395           mechanism so the callbacks are executed in the same thread as X
14396
14397 2004-08-20 13:19  jackson
14398
14399         * XplatUIDriver.cs: Expose functionality to send async messages
14400           through the driver
14401
14402 2004-08-20 13:18  jackson
14403
14404         * Control.cs: Implement Begininvoke
14405
14406 2004-08-20 13:14  jackson
14407
14408         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
14409           messages through the driver
14410
14411 2004-08-20 13:12  jackson
14412
14413         * XplatUIX11.cs: Lock before all X operations. Also added Async
14414           method functionality through XSendEvent
14415
14416 2004-08-20 13:11  jackson
14417
14418         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
14419           This will screw up on 64 bit systems)
14420
14421 2004-08-20 13:10  jackson
14422
14423         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
14424           Async messages through X/Win32
14425
14426 2004-08-19 19:39  pbartok
14427
14428         * XplatUIX11.cs:
14429           - Updated code to match new HandleData.DeviceContext type
14430
14431 2004-08-19 19:38  pbartok
14432
14433         * HandleData.cs:
14434           - Made DeviceContext a generic object to allow usage from various
14435           drivers
14436           - Added support for queueing Windows messages
14437
14438 2004-08-19 19:37  pbartok
14439
14440         * XplatUIWin32.cs:
14441           - Added generation of MouseEnter, MouseLeave and MouseHover events
14442           - Added cleanup on EndPaint
14443
14444 2004-08-19 19:17  pbartok
14445
14446         * Control.cs:
14447           - Added handling of WM_MOUSEHOVER
14448           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
14449           code
14450
14451 2004-08-19 18:55  jordi
14452
14453         * ThemeGtk.cs: fixes button order
14454
14455 2004-08-19 18:12  jordi
14456
14457         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
14458
14459 2004-08-19 17:09  pbartok
14460
14461         * Control.cs:
14462           - Added Right property
14463           - Added RightToLeft property
14464
14465 2004-08-19 16:27  jordi
14466
14467         * ThemeGtk.cs: experimental GTK theme support
14468
14469 2004-08-19 16:26  jordi
14470
14471         * ITheme.cs, Theme.cs: move themes from an interface to a class
14472
14473 2004-08-19 16:25  jordi
14474
14475         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
14476           theme enhancaments
14477
14478 2004-08-19 16:04  pbartok
14479
14480         * XplatUIX11.cs:
14481           - Added colormap basics
14482           - Added a way to re-initialize with a different display handle
14483           - Fixed setting of the window background color
14484           - Added various X11 imports related to colors and colormaps
14485
14486 2004-08-19 15:51  pbartok
14487
14488         * X11Structs.cs:
14489           - Removed packing hints (Paolo suggested this a while back)
14490           - fixed colormap type
14491           - Added default Atom types
14492           - Added Screen and color structs and enums
14493
14494 2004-08-19 15:39  pbartok
14495
14496         * ImageList.cs:
14497           - Added missing Draw() method
14498           - Added missing RecreateHandle event
14499
14500 2004-08-19 15:30  pbartok
14501
14502         * Form.cs:
14503           - Added handling of WM_CLOSE
14504
14505 2004-08-18 13:16  jordi
14506
14507         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
14508           a table
14509
14510 2004-08-18 09:56  jordi
14511
14512         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
14513
14514 2004-08-17 15:31  ravindra
14515
14516         * SWF.csproj: Updated project.
14517
14518 2004-08-17 15:25  pbartok
14519
14520         * Control.cs:
14521           - Drawing improvement; don't call UpdateBounds if we are not visible
14522             (or have been minimized)
14523
14524 2004-08-17 15:24  pbartok
14525
14526         * XplatUIWin32.cs:
14527           - Finished IsVisible
14528           - Added Win32GetWindowPlacement
14529
14530 2004-08-17 15:08  jackson
14531
14532         * Panel.cs: Initial checkin of the Panel
14533
14534 2004-08-17 14:25  pbartok
14535
14536         * Control.cs:
14537           - Fixed broken handling of default window sizes
14538
14539 2004-08-17 13:29  jackson
14540
14541         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
14542           has a large startup time.
14543
14544 2004-08-17 10:25  jackson
14545
14546         * HandleData.cs: union areas properly
14547
14548 2004-08-17 10:12  jackson
14549
14550         * HandleData.cs: union areas properly
14551
14552 2004-08-16 20:00  ravindra
14553
14554         * ToolBar.cs, ToolBarButton.cs: Added attributes.
14555
14556 2004-08-16 18:48  ravindra
14557
14558         * ToolBar.cs: Added attributes.
14559
14560 2004-08-16 17:17  ravindra
14561
14562         * SWF.csproj: Updated project.
14563
14564 2004-08-16 17:16  jackson
14565
14566         * XplatUIX11.cs: Check for more expose events before sending a
14567           WM_PAINT so they can all be grouped together. This makes dragging a
14568           window across another window redraw in a sane way.
14569
14570 2004-08-16 15:47  pbartok
14571
14572         * Control.cs:
14573           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
14574             support OnMouseEnter/Leave()
14575           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
14576             exposure handling
14577
14578 2004-08-16 15:46  pbartok
14579
14580         * XplatUIStructs.cs, XplatUIX11.cs:
14581           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
14582           OnMouseEnter/Leave()
14583
14584 2004-08-16 15:34  jackson
14585
14586         * XplatUIX11.cs: Group multiple expose events in HandleData, make
14587           sure messages get the message field set to WM_NULL if they are not
14588           handled.
14589
14590 2004-08-16 15:24  jackson
14591
14592         * HandleData.cs: HandleData is used for storing message information
14593           for window handles
14594
14595 2004-08-15 17:23  ravindra
14596
14597         * ColorDepth.cs: Added attribute.
14598
14599 2004-08-15 17:23  ravindra
14600
14601         * SWF.csproj: Updated project for ToolBar Control.
14602
14603 2004-08-15 17:20  ravindra
14604
14605         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
14606           control and also dos2unix format.
14607
14608 2004-08-15 17:13  ravindra
14609
14610         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
14611           ToolBarButtonClickEventArgs.cs,
14612           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
14613           ToolBarTextAlign.cs: First Implementation of ToolBar control.
14614
14615 2004-08-15 15:31  pbartok
14616
14617         * ButtonBase.cs:
14618           - First (mostly) working version
14619
14620 2004-08-13 16:15  pbartok
14621
14622         * Control.cs:
14623           - Fixed Anchor default
14624
14625 2004-08-13 15:43  pbartok
14626
14627         * Control.cs:
14628           - Changed GetCursorPos signature
14629
14630 2004-08-13 15:42  pbartok
14631
14632         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
14633           - Changed signature for GetCursorPos
14634
14635 2004-08-13 15:25  pbartok
14636
14637         * XplatUIX11.cs:
14638           - Cleanup
14639           - Fixed resizing/exposure handling
14640
14641 2004-08-13 15:22  jordi
14642
14643         * ThemeWin32Classic.cs: removes redundant code and fixes issues
14644           with tickposition
14645
14646 2004-08-13 14:55  jordi
14647
14648         * TrackBar.cs: change from wndproc to events
14649
14650 2004-08-13 13:00  jordi
14651
14652         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
14653           XplatUIX11.cs: implements PointToClient (ScreenToClient)
14654
14655 2004-08-13 12:53  pbartok
14656
14657         * XplatUIWin32.cs:
14658           - Changed GetWindowPos to also provide client area size
14659           - Fixed broken prototypes for several win32 functions
14660
14661 2004-08-13 12:53  pbartok
14662
14663         * XplatUI.cs, XplatUIDriver.cs:
14664           - Changed GetWindowPos to also provide client area size
14665
14666 2004-08-13 12:52  pbartok
14667
14668         * XplatUIX11.cs:
14669           - Added generation of WM_POSCHANGED
14670           - Changed GetWindowPos to also provide client area size
14671
14672 2004-08-13 12:52  pbartok
14673
14674         * Control.cs:
14675           - Added Dispose() and destructor
14676           - Fixed resizing and bounds calculation
14677           - Fixed Layout
14678           - Added memory savings for invisible windows
14679
14680 2004-08-13 12:46  jordi
14681
14682         * TrackBar.cs: adds timer and grap window
14683
14684 2004-08-13 10:25  jackson
14685
14686         * Timer.cs: SWF Timer
14687
14688 2004-08-12 16:59  pbartok
14689
14690         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
14691           - Implemented method to get current mouse position
14692
14693 2004-08-12 14:29  jordi
14694
14695         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
14696           enhancement, fix mouse problems, highli thumb, etc
14697
14698 2004-08-12 13:31  pbartok
14699
14700         * Control.cs:
14701           - Fixed Anchoring bugs
14702
14703 2004-08-12 13:01  jackson
14704
14705         * StatusBar.cs: Don't forget things
14706
14707 2004-08-12 12:54  jackson
14708
14709         * ThemeWin32Classic.cs: Handle owner draw status bars
14710
14711 2004-08-12 12:54  jackson
14712
14713         * StatusBar.cs: Implement missing properties, events, and methods.
14714           Handle mouse clicking
14715
14716 2004-08-12 10:19  jackson
14717
14718         * StatusBarPanelClickEventArgs.cs,
14719           StatusBarPanelClickEventHandler.cs: Classes for handling status
14720           bar panel click events
14721
14722 2004-08-12 10:10  jackson
14723
14724         * Control.cs: Add missing properties
14725
14726 2004-08-12 09:46  pbartok
14727
14728         * BindingsManagerBase.cs:
14729           - Name changed to BindingManagerBase.cs
14730
14731 2004-08-12 09:25  jordi
14732
14733         * ScrollableControl.cs: calls ctrlbase instead of exeception
14734
14735 2004-08-11 16:28  pbartok
14736
14737         * InputLanguageChangingEventArgs.cs:
14738           - Never check in before compiling. Fixes the last check-in
14739
14740 2004-08-11 16:26  pbartok
14741
14742         * InputLanguageChangingEventArgs.cs:
14743           - More signature fixes
14744
14745 2004-08-11 16:20  pbartok
14746
14747         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
14748           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
14749           ImageListStreamer.cs, InputLanguage.cs,
14750           InputLanguageChangedEventArgs.cs,
14751           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
14752           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
14753           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
14754           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
14755           - Signature fixes
14756
14757 2004-08-11 16:16  pbartok
14758
14759         * Application.cs:
14760           - Fixed Signature
14761           - Added .Net 1.1 method
14762
14763 2004-08-11 15:25  pbartok
14764
14765         * SWF.csproj:
14766           - Fixed BindingManagerBase.cs filename
14767
14768 2004-08-11 15:22  pbartok
14769
14770         * BindingManagerBase.cs:
14771           - Was checked in with wrong filename
14772
14773 2004-08-11 14:50  pbartok
14774
14775         * SWF.csproj:
14776           - Updated
14777
14778 2004-08-11 13:41  jordi
14779
14780         * XplatUIWin32.cs: Fixes ClientRect
14781
14782 2004-08-11 13:19  pbartok
14783
14784         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
14785           XplatUIX11.cs:
14786           - We had SetWindowPos and MoveWindow to set window positions and
14787             size, removed MoveWindow. We have GetWindowPos, so it made sense to
14788             keep SetWindowPos as matching counterpart
14789           - Added some X11 sanity checking
14790
14791 2004-08-11 12:59  pbartok
14792
14793         * Control.cs:
14794           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
14795             (It seems that SetBounds is just a front for SetBoundsCore and
14796              SetBoundsCore updates the underlying window system and
14797              UpdateBounds is responsible for updating the variables associated
14798              with the Control and sending the events)
14799           - Major cleanup of Size handling; we now have two sizes, client_size
14800             and bounds. Bounds defines the window with decorations, client_size
14801             without them.
14802
14803 2004-08-11 12:55  pbartok
14804
14805         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
14806           - Added method to calculate difference between decorated window and
14807             raw client area
14808
14809 2004-08-11 12:54  pbartok
14810
14811         * Label.cs:
14812           - Forcing redraw on resize
14813
14814 2004-08-11 11:43  pbartok
14815
14816         * ImageList.cs:
14817           - Removed disposing of the actual images when the list is disposed
14818
14819 2004-08-11 09:13  pbartok
14820
14821         * Control.cs:
14822           - Now properly reparents windows
14823
14824 2004-08-11 08:37  pbartok
14825
14826         * Control.cs:
14827           - Duh!
14828
14829 2004-08-11 07:47  pbartok
14830
14831         * Control.cs:
14832           - Rewrote the collection stuff. Might not be as fast now, not
14833             keeping the number of children around and accessible directly, but
14834             it's more straightforward
14835
14836 2004-08-11 07:44  pbartok
14837
14838         * AccessibleObject.cs:
14839           - Fixed to match ControlCollection rewrite
14840
14841 2004-08-11 07:43  pbartok
14842
14843         * ImageList.cs:
14844           - Added missing creation of the collection list
14845
14846 2004-08-10 20:08  jackson
14847
14848         * StatusBar.cs: Get the paint message from WndProc
14849
14850 2004-08-10 19:31  jackson
14851
14852         * ThemeWin32Classic.cs: Create Brushes as little as possible
14853
14854 2004-08-10 19:20  jackson
14855
14856         * UICues.cs: Add Flags attribute
14857
14858 2004-08-10 19:19  jackson
14859
14860         * StatusBarPanel.cs: Signature cleanup
14861
14862 2004-08-10 19:10  jackson
14863
14864         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
14865           Initial implementation of status bar item drawing
14866
14867 2004-08-10 17:27  jordi
14868
14869         * TrackBar.cs: add missing methods, properties, and restructure to
14870           hide extra ones
14871
14872 2004-08-10 16:24  jackson
14873
14874         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
14875           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
14876           attribute
14877
14878 2004-08-10 13:21  jordi
14879
14880         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
14881           enhancements and standarize on win colors defaults
14882
14883 2004-08-10 12:52  jackson
14884
14885         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
14886           ThemeWin32Classic.cs: Implement DrawItem functionality
14887
14888 2004-08-10 12:47  jordi
14889
14890         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
14891
14892 2004-08-10 12:32  jordi
14893
14894         * Control.cs: throw ontextchange event
14895
14896 2004-08-10 11:43  pbartok
14897
14898         * Control.cs:
14899           - Added more to the still unfinished Dock/Anchor layout code
14900
14901 2004-08-10 11:39  pbartok
14902
14903         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
14904           - Added GetWindowPos method
14905
14906 2004-08-10 11:36  pbartok
14907
14908         * XplatUIWin32.cs:
14909           - Implemented several methods
14910
14911 2004-08-10 09:47  jackson
14912
14913         * TrackBar.cs: Allow control to handle buffering
14914
14915 2004-08-10 09:41  jackson
14916
14917         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
14918
14919 2004-08-10 09:24  jackson
14920
14921         * Label.cs, LinkLabel.cs: Let Control handle buffering.
14922
14923 2004-08-10 09:09  jackson
14924
14925         * StatusBar.cs: Let Control handle all the buffering.
14926
14927 2004-08-10 09:08  jackson
14928
14929         * Control.cs: Control will now handle the buffering code, so each
14930           control does not have to implement this.
14931
14932 2004-08-10 08:34  jackson
14933
14934         * XplatUIDriver.cs: Use default colors from the theme
14935
14936 2004-08-09 17:12  pbartok
14937
14938         * ImageList.cs:
14939           - Fixed several bugs Ravindra pointed out
14940
14941 2004-08-09 16:11  pbartok
14942
14943         * Control.cs:
14944           - Added incomplete dock layout code
14945           - Added support for mouse wheel
14946
14947 2004-08-09 16:09  pbartok
14948
14949         * XplatUIX11.cs:
14950           - Added handling for middle and right mousebutton
14951           - Added handling for mouse wheel
14952           - Added handling for key state and mouse state and position
14953           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
14954           messages
14955
14956 2004-08-09 15:40  jackson
14957
14958         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
14959           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
14960           checkin
14961
14962 2004-08-09 15:37  jackson
14963
14964         * StatusBar.cs: Initial implementation of StatusBar
14965
14966 2004-08-09 15:36  jackson
14967
14968         * ITheme.cs: Add support for drawing status bar and getting status
14969           bar item sizes
14970
14971 2004-08-09 15:35  pbartok
14972
14973         * MouseButtons.cs:
14974           - Fixed values
14975
14976 2004-08-09 15:34  jackson
14977
14978         * ThemeWin32Classic.cs: Add support for drawing status bar and get
14979           status bar item sizes
14980
14981 2004-08-09 15:21  jackson
14982
14983         * ThemeWin32Classic.cs: Use known colors for default control
14984           colours
14985
14986 2004-08-09 15:12  jackson
14987
14988         * ThemeWin32Classic.cs: Make the default font static, it is static
14989           in control so this doesn't change functionality and creating fonts
14990           is sloooooow.
14991
14992 2004-08-09 14:56  pbartok
14993
14994         * X11Structs.cs:
14995           - Added GrabMode enum
14996
14997 2004-08-09 14:55  pbartok
14998
14999         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
15000           - Removed Run method, was only required for initial development
15001
15002 2004-08-09 14:51  pbartok
15003
15004         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
15005           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
15006           capture
15007
15008 2004-08-09 13:48  pbartok
15009
15010         * XplatUIX11.cs:
15011           - Fixed default sizing for child windows
15012
15013 2004-08-09 12:56  pbartok
15014
15015         * XplatUIX11.cs:
15016           - Added generation of WM_DESTROY message
15017           - Added handling of window manager induced shutdown
15018
15019 2004-08-09 11:31  jackson
15020
15021         * ThemeWin32Classic.cs: New names for control properties
15022
15023 2004-08-09 11:25  jackson
15024
15025         * Control.cs: Use new color names
15026
15027 2004-08-09 11:02  jackson
15028
15029         * XplatUI.cs: Get default window properties from the theme
15030
15031 2004-08-09 11:01  jackson
15032
15033         * ITheme.cs: The theme engine now controls default window
15034           properties
15035
15036 2004-08-09 11:00  jackson
15037
15038         * ThemeWin32Classic.cs: Add default window color properties
15039
15040 2004-08-09 10:17  jackson
15041
15042         * ThemeWin32Classic.cs: Use correct default back color
15043
15044 2004-08-09 10:05  jackson
15045
15046         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
15047           the theme now.
15048
15049 2004-08-09 09:56  jackson
15050
15051         * XplatUI.cs: Remove defaults, these are handled by the theme now.
15052
15053 2004-08-09 09:54  jackson
15054
15055         * Control.cs: Get default properties from the theme.
15056
15057 2004-08-09 09:53  jackson
15058
15059         * ITheme.cs: Themes now handle default control properties
15060
15061 2004-08-09 09:53  jackson
15062
15063         * ThemeWin32Classic.cs: Themes now handle default control
15064           properties so coloring will be consistent
15065
15066 2004-08-08 16:54  jordi
15067
15068         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
15069
15070 2004-08-08 15:08  jordi
15071
15072         * XplatUIX11.cs: fixes keyboard crash
15073
15074 2004-08-08 13:47  jordi
15075
15076         * Label.cs: add cvs header info
15077
15078 2004-08-08 12:09  jackson
15079
15080         * ThemeWin32Classic.cs: Add pen_buttonface
15081
15082 2004-08-08 11:52  jordi
15083
15084         * Label.cs, LinkLabel.cs: [no log message]
15085
15086 2004-08-08 11:34  jordi
15087
15088         * ThemeWin32Classic.cs: Use Windows Standard Colours
15089
15090 2004-08-07 17:32  jordi
15091
15092         * TrackBar.cs: throw exceptions of invalid enums values
15093
15094 2004-08-07 17:31  jordi
15095
15096         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
15097           draw method name
15098
15099 2004-08-07 16:56  jackson
15100
15101         * HorizontalAlignment.cs: Initial checkin
15102
15103 2004-08-07 13:16  jordi
15104
15105         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
15106           methods
15107
15108 2004-08-07 13:05  jordi
15109
15110         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
15111           GetSysColor defines
15112
15113 2004-08-06 18:01  pbartok
15114
15115         * ThemeWin32Classic.cs:
15116           - Fixed some rounding issues with float/int
15117
15118 2004-08-06 18:00  jackson
15119
15120         * DockStyle.cs, AnchorStyles.cs:
15121
15122                   Add flags and serializable attributes.
15123
15124 2004-08-06 17:46  pbartok
15125
15126         * XplatUIX11.cs:
15127           - Implemented GetParent
15128
15129 2004-08-06 17:18  pbartok
15130
15131         * TrackBar.cs:
15132           - Fixed some rounding issues with float/int
15133
15134 2004-08-06 17:17  pbartok
15135
15136         * X11Structs.cs, XplatUIX11.cs:
15137           - Fixed Refresh and Invalidate
15138
15139 2004-08-06 15:30  pbartok
15140
15141         * Control.cs, X11Structs.cs, XplatUIX11.cs:
15142           - Fixed recursive loop when resizing
15143           - Improved/fixed redrawing on expose messages
15144
15145 2004-08-06 09:53  jordi
15146
15147         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
15148           keyboard navigation
15149
15150 2004-08-06 08:02  pbartok
15151
15152         * X11Structs.cs, XplatUIX11.cs:
15153           - Fixed reparenting
15154           - Fixed window border creation
15155
15156 2004-08-05 15:38  pbartok
15157
15158         * XplatUIX11.cs:
15159           - Attempted fix for reparenting problems
15160
15161 2004-08-04 15:14  pbartok
15162
15163         * Control.cs:
15164           - Fixed Invalidation bug (calculated wrong client area)
15165           - Added ClientSize setter
15166
15167 2004-08-04 15:13  pbartok
15168
15169         * Form.cs:
15170           - Added AutoScale properties
15171
15172 2004-08-04 15:13  pbartok
15173
15174         * SWF.csproj:
15175           - Added latest files
15176
15177 2004-08-04 14:11  pbartok
15178
15179         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
15180           XplatUIX11.cs:
15181           - Added Invalidate handling
15182
15183 2004-08-03 17:09  jordi
15184
15185         * XplatUIDriver.cs: fixes spelling mistake
15186
15187 2004-07-27 09:53  jordi
15188
15189         * TrackBar.cs: fixes trackbar events, def classname, methods
15190           signature
15191
15192 2004-07-27 09:29  jordi
15193
15194         * ScrollBar.cs: fixes scrollbar events
15195
15196 2004-07-27 04:38  jordi
15197
15198         * Control.cs: changes to be able to run winforms samples
15199
15200 2004-07-26 11:42  jordi
15201
15202         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
15203           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
15204
15205 2004-07-26 05:41  jordi
15206
15207         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
15208           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
15209           implementation
15210
15211 2004-07-22 09:22  jordi
15212
15213         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
15214           check link overlapping, implement events, and fixes
15215
15216 2004-07-21 10:28  jordi
15217
15218         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
15219
15220 2004-07-21 10:19  jordi
15221
15222         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
15223           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
15224           LinkLabelLinkClickedEventArgs.cs,
15225           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
15226           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
15227           implementation
15228
15229 2004-07-19 13:09  jordi
15230
15231         * Control.cs, Label.cs: label control re-written: added missing
15232           functionlity, events, and properties
15233
15234 2004-07-19 10:49  jordi
15235
15236         * Control.cs: fixes SetBounds logic
15237
15238 2004-07-19 01:29  jordi
15239
15240         * Control.cs: Call RefreshWindow only if the window has created
15241
15242 2004-07-15 14:05  pbartok
15243
15244         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
15245           - Implemented ImageList and ImageList.ImageCollection classes
15246           - Added ColorDepth enumeration
15247           - Updated SWF VS.Net project
15248
15249 2004-07-15 11:06  jordi
15250
15251         * XplatUIStructs.cs: added MsgButons enum
15252
15253 2004-07-15 11:03  jordi
15254
15255         * Control.cs: added basic mouse handeling events
15256
15257 2004-07-15 03:38  jordi
15258
15259         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
15260           Vertical TrackBar control implementation
15261
15262 2004-07-13 09:33  jordi
15263
15264         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
15265
15266 2004-07-13 09:31  jordi
15267
15268         * Control.cs, Form.cs: commit: new properties and fixes form size
15269           problems
15270
15271 2004-07-09 14:13  miguel
15272
15273         * ProgressBar.cs: Spelling
15274
15275 2004-07-09 11:25  pbartok
15276
15277         * ProgressBar.cs:
15278           - Removed usage of Rectangle for drawing. Miguel pointed out it's
15279           faster
15280
15281 2004-07-09 11:17  miguel
15282
15283         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
15284
15285                 * ProgressBar.cs: Fixed spelling for `block'
15286
15287                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
15288                 style guidelines.
15289
15290                 Avoid using the += on rect.X, that exposed a bug in the compiler.
15291
15292 2004-07-08 23:21  pbartok
15293
15294         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
15295           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
15296           BaseCollection.cs, Binding.cs, BindingContext.cs,
15297           BindingMemberInfo.cs, BindingsCollection.cs,
15298           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
15299           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
15300           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
15301           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
15302           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
15303           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
15304           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
15305           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
15306           FrameStyle.cs, GiveFeedbackEventArgs.cs,
15307           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
15308           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
15309           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
15310           InputLanguageChangedEventArgs.cs,
15311           InputLanguageChangedEventHandler.cs,
15312           InputLanguageChangingEventArgs.cs,
15313           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
15314           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
15315           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
15316           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
15317           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
15318           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
15319           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
15320           QueryAccessibilityHelpEventArgs.cs,
15321           QueryAccessibilityHelpEventHandler.cs,
15322           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
15323           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
15324           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
15325           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
15326           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
15327           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
15328           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
15329           XplatUIX11.cs, lang.cs:
15330           - Initial check-in
15331