2006-07-14 Jonathan Pobst <monkey@ipobst.com>
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
2
3         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
4         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
5         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
6         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
7         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
8         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
9         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
10         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
11         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
12         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
13         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
14         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
15         ListViewItemSelectionChangedEventHandler.cs,
16         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
17         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
18         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
19         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
20         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
21         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
22         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
23         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
24         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
25         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
26         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
27         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
28         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
29         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
30         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
31         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
32         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
33         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
34         WebBrowserNavigatingEventHandler.cs, 
35         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
36
37 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
38
39         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
40         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
41         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
42         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
43         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
44         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
45         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
46         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
47         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
48         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
49         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
50         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
51         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
52         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
53         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
54         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
55         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
56         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
57         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
58         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
59         ListViewItemStates.cs, MaskFormat.cs: Added
60
61 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
62
63         * PropertyGridView.cs: Fix keyboard navigation of drop down.
64         Patch from eno for bug 78558.
65         
66 2006-07-13  Jackson Harper  <jackson@ximian.com>
67
68         * TreeView.cs: When an edit is finished make sure that the
69         selected node is visible.
70         - When setting the top/bottom use the scrollbars is_visible, so
71         everything will be set correctly even if the tree isn't visible
72         yet.
73
74 2006-07-13  Jackson Harper  <jackson@ximian.com>
75
76         * ComboBox.cs: Revert the item->index part of my previous patch.
77         * TreeView.cs: Use LostFocus instead of Leave for detecting when
78         the edit box has lost focus (duh).
79         - Just make the edit box not visible when we get return, that will
80         take the focus, which will call EndEdit
81         * TreeNode.cs When we start editing, notify the treeview.
82
83 2006-07-12  Jackson Harper  <jackson@ximian.com>
84
85         * ComboBox.cs: Clear out old items before setting the item list.
86         This prevents databound controls from having their items added
87         twice.
88         - Switch the combobox to use indices whereever possible instead of
89         using Item's.  This allows usto navigate through lists that have
90         more then one item with the same string value (ie a, b, b, a).
91         - Scroll the listboxes scrollbar when a non visible item is
92         highlighted
93         - Allow keypress to cycle through all the possible values. For
94         example if you have b1, b2, b3 and hold down the B key all the
95         values will be cycled through.
96         
97 2006-07-12  Jackson Harper  <jackson@ximian.com>
98
99         * TextBoxBase.cs:
100         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
101         this using the internal methods.
102         * Control.cs: Add OnGotFocusInternal.  A new method that allows
103         controls to "override" OnGotFocus and change focus behavior if
104         needed.
105         - Same thing for LostFocus
106         * ComboBox.cs: Pass off focus to the text control properly.
107
108 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
109
110         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
111         * FolderBrowserDialog.cs: Almost a complete rewrite.
112           - Better support for Environment.Specialfolders
113           - Added support for MWFVFS
114           - Made setting SelectedPath work
115
116 2006-07-12  Jackson Harper  <jackson@ximian.com>
117
118         * Control.cs: Optimze getting all the controls.
119
120 2006-07-11  Jackson Harper  <jackson@ximian.com>
121
122         * ContainerControl.cs: Override SETFOCUS in the container control,
123         so that it is not selected on mouse click.
124
125 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
126
127         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
128           Hopefully we will have a better way once all of focus is complete.
129
130 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
131
132         * ThemeWin32Classic.cs: Commented out some debug code and fixed
133           a compile error with csc.
134
135 2006-07-11  Jackson Harper  <jackson@ximian.com>
136
137         * Control.cs: When hiding a control only select the next control
138         if the current control was focused.
139         - Don't handle enter/leave when setting/killing focus, this is
140         done by the container control.
141         - Remove is_selected, it's not needed anymore.
142         - Add utility methods for selecting a child control, and for
143         firing the Enter/Leave events.
144         * ContainerControl.cs: When a control is activated fire the
145         enter/leave events.
146         - Don't wrap when processing the tab key, so that focus can be
147         moved outside of the container.
148         - Use the correct active control
149
150 2006-07-11  Jackson Harper  <jackson@ximian.com>
151
152         * ComboBox.cs: Remove some debug code that was blinding me.
153         * UpDownBase.cs: These controls actually aren't implicit, they are
154         visible to the user.
155
156 2006-07-10  Chris Toshok  <toshok@ximian.com>
157
158         * DataGridTableStyle.cs: just check if the property type is bool.
159         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
160         Don't use CanRenderType.
161
162         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
163         if our text == NullText.  Remove CanRenderType.
164
165         * DataGridBoolColumn.cs: nuke CanRenderType.
166
167         * DataGrid.cs: reenable some code to end the current edit inside
168         of set_CurrentCell.  This fixes the other 1.1.16 regression.
169         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
170         Also, remove the visible_row_count arg from CalcRowHeaders, since
171         we don't need to worry about the actual height of the area.
172
173 2006-07-10  Chris Toshok  <toshok@ximian.com>
174
175         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
176         mode, just return.
177
178         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
179         the real sense of the IsInEditOrNavigateMode property (true =
180         navigate, false = edit).  Also, update OnKeyPress to reflect this.
181
182         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
183         column style exists, we still need to set its property descriptor
184         to match up with our list manager.
185
186 2006-07-10  Chris Toshok  <toshok@ximian.com>
187
188         * ThemeWin32Classic.cs: implement the new row/header painting
189         approach.  The parent row painting will likely go away and
190         replaced with label controls, but the rest seems to work ok (and
191         efficiently).
192
193         * Theme.cs: change the way we draw datagrid rows.  we don't draw
194         the row headers as a block now.  Instead we draw them in the
195         normal draw-row loop.  Add some calls for drawing parent rows and
196         relation rows.
197
198         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
199         a default table style.  Set the defaults from ThemeEngine.Current,
200         not SystemColors.  Fix lots of misc issues with property setters.
201
202         * DataGrid.cs: move loads of style information out of this class
203         as it's being duplicated with DataGridTableStyle.  keep track of a
204         special DataGridTableStyle for the properties we used to mirror
205         here.  Switch all the style properties to access this table style
206         instead of instance fields of this class.  Also add a internal
207         class to represent parent rows (more needs to be stored here, like
208         the selection state from the parent table, as well as the
209         expansion state.)  Also, for datasources with relations, do the
210         right thing for collapse/expand, and add support for the
211         navigation/parent row buttons.
212
213         Lastly, fix the crash in the 1.1.16 build.
214
215         * GridTableStylesCollection.cs: make the explicit interface
216         implementations call the class's methods as opposed to duplicating
217         them.
218
219         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
220         0 so the text doesn't jump around when we move the cursor.
221
222 2006-07-10  Jackson Harper  <jackson@ximian.com>
223
224         * TextBoxBase.cs:
225         * ListBox.cs: Match MS's ToString (this makes debugging focus
226         stuff infinitely easier).
227
228 2006-07-10  Jackson Harper  <jackson@ximian.com>
229
230         * Control.cs (SelectNextControl): When checking the control's
231         parent use this instead of ctrl.parent so that null can be passed
232         to SelectNextControl. (I have unit tests for this).
233         - Remove unused var.
234
235 2006-07-10  Chris Toshok  <toshok@ximian.com>
236
237         * CurrencyManager.cs: correct one regression, the removal of the
238         finalType field.  Also, add a MonoTODO on CanAddRows, implement
239         Refresh() correctly, and fix some event emission in
240         ListChangedHandler.
241
242 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
243
244         * FileDialog.cs: Don't use brackets for new folders if they exist
245           under *nix. Instead use -(number of existing folders +1).
246
247 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
248
249         * FileDialog.cs:
250           - Fixed really nasty bug #78771
251           - Don't block the whole GUI when reading directories with a lot of
252             entries. Use an other thread instead and call BeginInvoke to
253             update the ListView in MWFFileView
254
255 2006-07-07  Chris Toshok  <toshok@ximian.com>
256
257         * Control.cs (Dispose): release any Capture when disposing.
258
259 2006-07-07  Chris Toshok  <toshok@ximian.com>
260
261         * LinkLabel.cs (Select): if we chain up to the parent, set
262         focused_index to -1 so we'll search for the first available link
263         the next time the user tabs into us.  Also, if the direction is
264         backward and focused_index == -1, start the search from the last
265         element.
266
267 2006-07-07  Chris Toshok  <toshok@ximian.com>
268
269         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
270         is beyond the end of the text, don't do anything.
271         (CreateLinkPieces): set our ControlStyles.Selectable based on
272         whether or not we have any links.
273         (Link.Invalidate): use a loop instead of foreach.
274         (Link.set_Start): null out owner.sorted_links so it'll be
275         recreated by CreateLinkPieces.
276
277 2006-07-06  Chris Toshok  <toshok@ximian.com>
278
279         * LinkLabel.cs: revert the SetStyle change.
280
281 2006-07-06  Chris Toshok  <toshok@ximian.com>
282
283         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
284         (OnEnableChanged): s/Refresh/Invalidate
285         (OnGotFocus): if we have a focused index already, refocus it (so
286         if we mouse out/in to the window it'll focus the right link).
287         (OnKeyDown): move the tab handling out of here.
288         (OnLostFocus): don't set focused_index to -1, so we can refocus it
289         when we lose focus.
290         (OnMouseDown): don't Capture here - Control handles it.  Also,
291         focus the active link.
292         (OnMouseUp): don't deal with Capture.
293         (OnPaintBackgroundInternal): remove.
294         (OnTextAlignChanged): CreateLinkPieces before calling the
295         superclass's method.
296         (OnTextChanged): call CreateLinkPieces before calling superclass's
297         method.
298         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
299         move around.
300         (Select): implement this, moving the selection between different
301         links, and call parent.SelectNextControl if we don't have another
302         link to focus in the given direction.
303         (CreateLinkPieces): call Invalidate instead of Refresh.
304         
305 2006-07-06  Chris Toshok  <toshok@ximian.com>
306
307         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
308         new LinkLabel internals.
309
310         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
311         over pieces looking for active/focused/etc links.  also, deal with
312         runs of text (and links) with embedded \n's in them, and use
313         MeasureCharacterRanges instead of MeasureString to figure out the
314         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
315         two-step.
316
317 2006-07-04  Jackson Harper  <jackson@ximian.com>
318
319         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
320         XKB or key auto repeat, do it manually.  Without key auto repeat,
321         when a key is held down we get key press, key release, key press,
322         key release, ... with auto repeat we get key press, key press, key
323         press ..., and then a release when the key is actually released.
324
325 2006-07-03  Jackson Harper  <jackson@ximian.com>
326
327         * TabControl.cs:
328         * ThemeWin32Classic.cs: Tabs do not obey normal background color
329         rules, they are always control color regardless of the background
330         color.
331
332 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
333
334         * FileDialog.cs: Added internal class MWFConfig.
335           Removed Registry support and replaced it with support for the new
336           MWFConfig class. See MWFConfig comments for more information.
337
338 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
339
340         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
341           rectangle. Added some patches from eno from bug #78490 and fixed
342           the arrow position for small up and down CPDrawScrollButtons.
343
344 2006-06-30  Jackson Harper  <jackson@ximian.com>
345
346         * InternalWindowManager.cs: Remove some debug code.
347         * Form.cs: When an MdiParent is set to null, the window is
348         "detatched" and becomes a normal window.
349         * MdiClient.cs: Don't bring the new child form to the front until
350         it is activated (setting it as active does this), this makes the
351         previously active forms titlebar get redrawn as inactive.
352
353 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
354
355         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
356           with later controls
357
358 2006-06-29  Mike Kestner  <mkestner@novell.com>
359
360         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
361         arrow in keynav state.  Fixes #78682.
362
363 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
364
365         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
366           order (fixes #78393)
367
368 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
369
370         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
371           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
372           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
373           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
374           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
375           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
376           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
377           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
378           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
379           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
380           enumerations (FlagsAttribute, SerializableAttribute, added/removed
381           values)
382
383 2006-06-28  Mike Kestner  <mkestner@novell.com>
384
385         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
386
387 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
388
389         * PropertyGrid.cs,
390           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
391           item lines from other area (It also makes BackColor consistent and
392           compatible with .NET). Fixed bug #78564.
393
394 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
395
396         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
397         Patch from Eno for #78555.
398
399 2006-06-27  Chris Toshok  <toshok@ximian.com>
400
401         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
402
403         * DataGridColumnStyle.cs: same.
404
405         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
406         
407         * DataGridDrawingLogic.cs: nuke.
408
409 2006-06-27  Chris Toshok  <toshok@ximian.com>
410
411         * DataGridTableStyle.cs: clean up the constructors, and build the
412         list of child relations for this table.  I have no idea if this is
413         where we should be doing it (it probably isn't), but since we're
414         already iterating over the properties..
415
416         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
417         struct and array for keeping track of row information, similar to
418         what's shown in a hack on
419         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
420
421         * Theme.cs: be consistent about the naming of DataGrid methods,
422         prefering ColumnWidths and RowHeights over columnsWidths and
423         RowsHeights.
424
425         * ThemeWin32Classic.cs: same, and also add support for variable
426         sized rows (and the +/- expansion icons for related rows).
427
428 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
429
430         * TextBoxBase.cs: Applied Eno's patch from #78660
431
432 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
433
434         * Form.cs (ScaleCore): We don't want to scale our form if it's
435           state is minimized or maximized, but we still need to scale our
436           child windows. Also, added try/finally block to ensure layout
437           gets reset (Fixes #78697)
438
439 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
440
441         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
442
443 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
444
445         * Form.cs: Fixed c+p error and added check to resize form if minimum
446           size is bigger than current size (Fixes #78709)
447
448 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
449
450         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
451
452 2006-06-26  Mike Kestner  <mkestner@novell.com>
453
454         * ComboBox.cs: only do Keypress handling in the combo when there  
455         are items in the collection. Fixes #78710.
456
457 2006-06-26  Chris Toshok  <toshok@ximian.com>
458
459         * Binding.cs: make this work bi-directionally.  also, clear up
460         other mixups between Push/Pull Data (e.g. we're supposed to pull
461         data when validating).
462
463         * BindingManagerBase.cs: trim some fully qualified collection
464         types.
465
466         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
467
468 2006-06-23  Chris Toshok  <toshok@ximian.com>
469
470         * PropertyManager.cs: It appears (according to the unit tests)
471         that PropertyManager doesn't use
472         PropertyDescriptor.AddValueChanged to track propery value changes
473         in its datasource, but uses the same scheme as Binding, where it
474         looks for a <Property>Changed event and binds to it.
475
476         Also, according to the docs, IsSuspended always returns false for
477         a property manager with a non-null datasource.
478
479 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
480
481         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
482           need to update the actual DialogResult. (Fixes #78613)
483
484 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
485
486         * Form.cs (ShowDialog): Release any captures before running the
487           new message pump (fixes #78680)
488
489 2006-06-22  Mike Kestner  <mkestner@novell.com>
490
491         * ListView.cs: Layout column widths properly in details mode even 
492         if HeaderStyle.None is set.  Fixes #78691.
493
494 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
495
496         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
497
498 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
499
500         * Control.cs (ContainsFocus): Using new driver method to get focused
501           window, instead of trying to use internal tracking var, which can
502           recursion issues (Fixes #78685)
503         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
504           XplatUIWin32.cs: Added GetFocus method to return focused window
505
506 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
507
508         * ColorDialog.cs: when the mouse button is pressed inside the color
509         matrix, don't let the cursor move out of it until the button is
510         released, which is the behavior on windows. Changed 'colours' by
511         'colors' to use the same word consistently.
512
513 2006-06-21  Chris Toshok  <toshok@ximian.com>
514
515         * DataGrid.cs: add in some basic navigation stuff (navigating to a
516         child relation and back, using a stack).  Also, remove
517         GetDataSource and the code that calls it - it's not needed.  Also,
518         track CurrencyManager.ListName's removal.
519
520 2006-06-21  Chris Toshok  <toshok@ximian.com>
521
522         * CurrencyManager.cs: push some of the original type checking from
523         BindingContext.CreateBindingManager to here, and remove some of
524         the finalType stuff.  Need more tests to make sure I've got the
525         ListName part right, and we might need more in SetDataSource.
526
527         * PropertyManager.cs: add a ctor that takes just the datasource,
528         and no property name.  Make SetDataSource work with a null
529         property_name, and make Current return the data_source if the
530         property descriptor is null.  this makes 'string foo = "hi";
531         BindingContext[foo].Current' return "hi" as it should.
532
533         * RelatedCurrencyManager.cs: make this code more generic - there's
534         no reason the parent manager has to be CurrencyManager, and
535         there's no reason to pass the DataRelation.  It suffices to use a
536         BindingManagerBase and PropetyDescriptor.
537
538         * RelatedPropertyManager.cs: make a similar change here.
539         
540         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
541         flower I knew it could be.
542
543 2006-06-20  Chris Toshok  <toshok@ximian.com>
544
545         * PropertyManager.cs: the PropertyChangedHandler is invoked when
546         data in the source has changed and we need to update the control,
547         so s/PullData/PushData.
548
549         * CurrencyManager.cs: Refresh is meant to update the control from
550         data in the datasource.  So, s/PullData/PushData.
551
552         * BindingContext.cs: add more ugliness (we weren't handling the
553         case where data_source = DataTable and data_member = column_name).
554
555         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
556         from the perspective of the datasource.  PullData pulls from the
557         control, PushData pushes to the control.
558
559 2006-06-20  Chris Toshok  <toshok@ximian.com>
560
561         * BindingContext.cs: rewrite the CreateBindingManager code to
562         handle navigation paths more or less properly.  This could
563         definitely stand some more work, in particular to push the
564         recursion up to the toplevel.  But that relies on fixes in other
565         places (System.Data comes to mind).
566
567         Also, move to a flat hashtable (and encode the twolevel nature of
568         the dictionary into the hash key).  This lets us implement the
569         IEnumerable.GetEnumerator method.
570
571         * RelatedCurrencyManager.cs: new class.  Update our view based on
572         our relation and our parent CurrencyManager's position.
573
574         * CurrencyManager.cs: split out some logic from the ctor into
575         SetView, so it can be called from the new RelatedCurrencyManager
576         subclass.
577
578         * RelatedPropertyManager.cs: new class.  Update our datasource
579         based on the position of our parent CurrencyManager.
580
581         * PropertyManager.cs: split out some logic from the ctor into
582         SetDataSource, so it can be called from the new RelatedDataSource
583         subclass.  Also, make the Current getter return the value
584         of the PropertyDescriptor, not the data_source.
585
586         * Binding.cs: no need to duplicate the string splitting code here.
587
588 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
589
590         * Control.cs:
591           - set_Enabled: OnEnabledChanged is not called if the inherited state 
592             of the control is not altered, even though  we might be changing the
593             internal state of the control (#78458)
594           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
595             OnEnabledChanged, to allow easy altering of any child window state
596           - OnEnabledChanged: Added code to enable/disable driver window state
597           - OnParentEnabledChanged: Instead of firing the event, call 
598             OnEnabledChanged, which will fire the event and also a) set driver
599             window state and pass the enabled state to any grandchildren (#78458)
600
601 2006-06-19  Jackson Harper  <jackson@ximian.com>
602
603         * InternalWindowManager.cs: We don't set the cursor explicitly
604         thats done via the response to NCHITTESTs.
605         - Don't need to adjust for titlebar heights anymore, the
606         coordinates are coming in the correct coordinates now (see peters
607         last patch).
608
609
610 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
611
612         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
613           being translated relative to whole window, instead of client window.
614           That caused broken offsets on mouseclick (and caused gas for our
615           InternalWindowManager)
616
617 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
618
619         * TextControl.cs:
620           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
621           - Undo(): Added replay of cursor move on DeleteChars action; added
622             calling Undo() again if a recorded cursor move is invalid (to
623             ensure that some action is performed on Undo)
624         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
625
626 2006-06-16  Jackson Harper  <jackson@ximian.com>
627
628         * MdiClient.cs: Instead of just sizing maximized windows when
629         there is a resize we also have to adjust the Y of minimized
630         windows, so they stay pinned to the bottom of the mdi container.
631         - Eliminate separate tracking of the active control, we can just
632         get this from the controls collection.
633         - Paint the decorations for the newly activated titlebar so we get
634         a pretty blue bar.
635         * InternalWindowManager.cs:
636         * ThemeWin32Classic.cs: Minimized windows get all three buttons
637         even if they are a tool window.
638         
639 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
640
641         * TextControl.cs (Undo): Handle non-existent cursor locations in the
642           undo buffer, these can happen when text was deleted and the cursor
643           was recorded first. Since we will also have a recorded cursor
644           after the delete this is not an issue. (Fixes #78651)
645
646 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
647
648         * AccessibleObject.cs: Remove dependence on Control.is_selected;
649           instead properly track control states internally (allows us to
650           remove is_selected from Control)
651
652 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
653
654         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
655         whose width is not a multiple of 8.
656
657 2006-06-13  Jackson Harper  <jackson@ximian.com>
658
659         * MdiClient.cs:  Only maximize the next child if the current one
660         is maximized.
661
662 2006-06-13  Chris Toshok  <toshok@ximian.com>
663
664         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
665         modified.  Also, guard against grid or grid_drawing being null in
666         Invalidate.
667
668         * DataGrid.cs: Reformat tons of getters/setters.  In the
669         DataMember setter, just call SetNewDataSource instead of
670         duplicating some of its functionality.  In SetNewDataSource, don't
671         check ListManager for null, since the property getter creates the
672         object if needed.
673
674         * DataGridTableStyle.cs: don't set TableStyle or call
675         SetDataGridInternal on the column here, it's done in
676         GridColumnStylesCollection.Add.
677
678         * GridColumnStylesCollection.cs: fix all the explicit interface
679         implementations to just call our methods.  Nuke AddInternal() and
680         move the body of it to Add().  Also, add a call to
681         column.SetDataGridInternal to Add().
682
683         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
684         base()+duplicate code.  Also, use the Format property instead of
685         format to generate an Invalidate ala MS.  Lastly, create the
686         textbox here, unconditionally.
687         (set_Format): call Invalidate.
688         (get_TextBox): no need to call EnsureTextBox.
689         (Commit): remove the message box.
690         (Edit) remove the call to EnsureTextBox.
691         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
692         (EnterNullValue): no need to check textbox for null.
693         (HideEditBox): no need to check textbox for null.
694         (SetDataGridInColumn): add the textbox to the grid's controls.
695         (EnsureTextBox): nuke.
696         
697 2006-06-13  Jackson Harper  <jackson@ximian.com>
698
699         * MdiWindowManager.cs: Hook up to the maximized menus paint event
700         and redraw the buttons when needed. Unhook when the window is
701         unmaximized.
702         * MainMenu.cs: Add an internal Paint event, the mdi window manager
703         needs this so that it can redraw its buttons when the menu is
704         repainted.
705         * InternalWindowManager.cs:
706         * Form.cs: The method order has changed for DrawMaximizedButtons,
707         so that it can be a PaintEventHandler.
708         
709 2006-06-13  Jackson Harper  <jackson@ximian.com>
710
711         * MdiClient.cs: When we close a maximized mdi window, the next mdi
712         window is activated and maximized, even if it wasn't before.
713         - When  a new window is activated repaint the decorations of the
714         old one, so that it no longer has the Active "look" (the blue
715         titlebar).
716         * InternalWindowManager.cs: Open up CreateButtons to base classes
717         so they can recreate the buttons on state changes.
718         - If a window is maximized give it all three buttons
719         * MdiWindowManager.cs: Create the titlebar buttons when the state
720         is changed, this is needed because a toolwindow will not have all
721         three buttons until it is maximized.
722
723 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
724
725         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
726           Fixed bug #78609.
727
728 2006-06-12  Jackson Harper  <jackson@ximian.com>
729
730         * KeysConverter.cs: Make sure we handle the Ctrl special case
731         if its the only key.
732         
733 2006-06-12  Jackson Harper  <jackson@ximian.com>
734
735         * Theme.cs: Add a method to get the size of a managed window
736         toolbar button.
737         * InternalWindowManager.cs: Remove the ButtonSize property, this
738         should be retrieved from the theme.
739         * MdiWindowManager.cs: Get the button size from the theme
740         * ThemeWin32Classic.cs: Make the method to get the managed window
741         titlebar button size public.
742         - Handle the different button sizes of maximized toolwindows
743         (should match any maximized window).
744         - Get the titlebar height from the theme, not the WM (which gets
745         it from the theme).
746
747 2006-06-12  Jackson Harper  <jackson@ximian.com>
748
749         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
750         event down to the mdi window manager.
751         - Expose some extra stuff to base classes
752         - Make sure to end the Capture on an NC Mouse up, so that we can
753         get double clicks properly, and the sizing doens't stick.
754         - When doing PointToClient contain it in the workable desktop
755         area, this prevents windows from changing size when the cursor is
756         pulled outside of the working area while sizing.
757         * MdiWindowManager.cs: When we get a double click maximize the
758         window.
759         - Reset the cursor after handling mode changes.
760
761 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
762
763         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
764           current desktop, instead of just assuming a 0, 0 origin. This
765           is needed for our internal window manager, to know the top
766           margin of the desktop
767
768 2006-06-12  Chris Toshok  <toshok@ximian.com>
769
770         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
771         we need this to get rid of the selected background in the bool
772         column.
773         (CancelEditing): move the ConcedeFocus call to above the Abort
774         call.  Also, set is_changing to false and invalidate the row
775         header if we were changing before.
776         (ProcessKeyPreviewInternal): remove, since noone outside this
777         class calls it anymore.  Roll the code into ProcessKeyPreview.
778         (EndEdit): remove the internal version.
779         (InvalidateCurrentRowHeader): make private.
780
781         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
782         Keys.Escape handling (and with it the last call to
783         DataGrid.EndEdit from outside the class.)
784
785
786 2006-06-12  Chris Toshok  <toshok@ximian.com>
787
788         * DataGridTextBox.cs (.ctor): isedit defaults to false.
789         (OnKeyPress): set isedit to true.
790         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
791         already handled by the grid.
792
793         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
794         right.  ugh.
795         (set_DataSource): SetDataSource always returns true, so stop
796         putting it in an if statement.
797         (EndEdit): get rid of some {}'s
798         (ProcessGridKey): return true in case Keys.Escape.
799         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
800         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
801         PositionChanged, stopped connecting to CurrentChanged.
802         (GetDataSource): simplify this a bunch.
803         (SetDataSource): change return type from bool to void.
804         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
805         to this, and make sure we don't set ListManager.Position inside
806         set_CurrentCell.
807         (OnListManagerItemChanged): if we're passed an actual index,
808         redraw that row.
809
810         * CurrencyManager.cs (set_Position): don't call PullData here.
811
812 2006-06-09  Jackson Harper  <jackson@ximian.com>
813
814         * TreeNode.cs:  Recalculate the visible order before doing the
815         Expand/Collapse Below calls, because those calls generate an
816         expose.
817         - Reduce calls to the TreeView property, which is mildly expensive
818         by using a local var.
819         * Form.cs: Layout the MDI child windows when creating the parent
820         form.
821         - Don't use the internal constructor anymore
822         * MdiClient.cs: use the parent form width/height (if available)
823         when laying out the child windows, we do this because the
824         mdiclient isn't docked yet when the initial layout is done.
825         - Don't need an internal constructor anymore.
826
827 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
828
829         * FileDialog.cs: handle access errors when trying to create a folder
830         or changing to a directory. No need to initialize out parameters.
831
832 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
833
834         * FileDialog.cs: Append a number when creating a new folder if the
835           folder already exists (use parenthesis instead of square brackets)
836
837 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
838
839         * FileDialog.cs:
840           - Disabled registry support for windows and added better registry
841             error checking for other systems (need to investigate why it
842             works perfectly on my system)
843           - If a folder already exist show an error MessageBox instead of
844             trying to create an indexed name.
845           - Fixed a non intentional typo.
846
847 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
848
849         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
850
851 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
852
853         * FileDialog.cs: When creating a new folder don't crash if the
854           folder already exists.
855
856 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
857
858         * FileDialog.cs: Allmost a complete rewrite.
859           - added a "virtual" file system that handles the differences
860             between unix and windows file systems (especially the directory
861             structure). Moved most of the directory and file handling code
862             into the vfs.
863             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
864             UnixFileSystem and FSEntry.
865           - Recently used folder/directory, size, location and used file names
866             (file name ComboBox) are now stored in the registry and get read
867             before the dialog shows up (fixes part 6 of bug #78446).
868           - Creation of new folders/directories is now possible (context menu
869             or ToolBar). Added TextEntryDialog for this that fills in the gap
870             until ListView.LabelEdit works.
871           - Fixed cursor handling (bug #78527) and focus handling for
872             PopupButtonPanel
873           - Various "Search in" ComboBox enhancements. The content of the
874             dropdown listbox now almost matches ms.
875           - Changed the behaviour when the user switches to SpecialFolder
876             Recent to show the ListView in View.Details.
877           - Beside using the ToolBar to change the View property of the
878             file ListView it is now possible to use the context menu too.
879
880 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
881
882         * ComboBox.cs: Don't create a new ObjectCollection when an item
883           gets inserted. Just insert the item in the existing object_items
884           ArrayList.
885
886 2006-06-08  Jackson Harper  <jackson@ximian.com>
887
888         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
889         that the treeview and root node checks are done also, this fixes a
890         regression i caused in the unit tests.
891
892 2006-06-07  Wade Berrier <wberrier@novell.com> 
893
894         * RichTextBox.cs: More ISO8859-1 -> unicode
895
896 2006-06-07  Mike Kestner  <mkestner@novell.com>
897
898         * ComboBox.cs : use items to hold highlight/selection so that
899         collection insertions don't require synchronization.
900
901 2006-06-07  Jackson Harper  <jackson@ximian.com>
902
903         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
904         routine.  We now always keep the sized edge at the cursor instead
905         of computing movement and adjusting rects.  There is one buglet
906         with this method though when the cursor is moved over area that
907         the window can not expand too (such as the toolbars on the desktop).
908
909 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
910
911         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
912         here. Fixes crash on startup in AlbumSurfer.
913
914 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
915
916         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
917           values
918
919 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
920
921         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
922         statement to avoid calling XNextEvent which will block if another thread
923         took the event that we were expecting. Fixes bug #78605.
924
925 2006-06-07  Mike Kestner  <mkestner@novell.com>
926
927         * ListView.cs : isolated checkbox clicking from the selection logic.
928         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
929
930 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
931
932         * Form.cs: Check that the value passed to Form.DialogResult
933         is a valid enum value.
934
935 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
936
937         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
938         Computer'. Clicking it in the network view goes to 'My Computer'.
939         Added CIFS filesystem type. Display the mount point of filesystems.
940         Avoid duplicate mount points (happens for me with CIFS);
941
942 2006-06-06  Jackson Harper  <jackson@ximian.com>
943
944         * InternalWindowManager.cs: Draw the maximized windows buttons
945         when resizing.
946
947 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
948
949         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
950         all other dialogs. Fixes bug #78585.
951
952 2006-06-06  Mike Kestner  <mkestner@novell.com>
953
954         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
955         Only invalidate checkbox on checkstate changes to avoid flicker.
956         * ListBox.cs : avoid unselect/select when clicking selected item.
957         avoid reselection flicker for already multiselected items.
958         Fixes #78382.
959
960 2006-06-06  Jackson Harper  <jackson@ximian.com>
961
962         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
963         the parent form so that the menu is removed if needed.
964
965 2006-06-06  Mike Kestner  <mkestner@novell.com>
966
967         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
968         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
969
970 2006-06-06  Mike Kestner  <mkestner@novell.com>
971
972         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
973
974
975 2006-06-06  Jackson Harper  <jackson@ximian.com>
976
977         * Control.cs: Use the property (instead of the field) to get the
978         default cursor so it is instantiated correctly.
979         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
980         resizes so we need to manually repaint the window decorations here.
981         - Set the titlebar button locations as soon as they are created,
982         otherwise they are not set correctly on win32.
983         
984 2006-06-06  Chris Toshok  <toshok@ximian.com>
985
986         * CurrencyManager.cs (set_Position): call PullData before
987         OnCurrentChanged.
988         (AddNew): after calling IBindingList.AddNew, update our
989         listposition, and call OnCurrentChanged/OnPositionChanged (without
990         calling PullData).
991         (OnCurrentChanged): remove the call to PullData from here.
992         (OnItemChanged): remove the call to PushData from here.
993         (OnPositionChanged): change the test from == null to != null to
994         match the other methods.
995         (ListChangedHandler): the grossest part of the patch.  Implement
996         this such that it passes the unit tests in CurrencyManagerTest and
997         the output more or less matches that of MS's implementation.
998  
999 2006-06-06  Mike Kestner  <mkestner@novell.com>
1000
1001         * ListView.cs : only update check state on single click.
1002         * ThemeWin32Classic.cs : fix focus drawing for details view without
1003         fullrowselect.  Fixes #78454.
1004         * XplatUIX11.cs : fix for double click emission.
1005
1006 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
1007
1008         * PropertyGridView.cs : Applied Atsushi's patch to fix
1009         font dialog bug  (#78197).
1010
1011 2006-06-05  Jackson Harper  <jackson@ximian.com>
1012
1013         * TreeNode.cs: Compute the next node for expanding/collapsing
1014         correctly. We now factor in nodes without a NextNode
1015         correctly. (Fixes somes cases in nunit-gui).
1016         * InternalWindowManager.cs: Set the bounds when updating the
1017         virtual position of a tool window.
1018         
1019 2006-06-05  Chris Toshok  <toshok@ximian.com>
1020
1021         * DataGrid.cs: rename cached_currencymgr to list_manager.
1022         (set_CurrentCell): move SetCurrentCell code here, and clean it up
1023         some.
1024         (CurrentRow, CurrentColumn): single accessors so we can make the
1025         cursor movement code a lot easier to understand.
1026         (CurrentRowIndex): implement this in terms of CurrentRow.
1027         (BeginEdit): clean this up a bit.
1028         (CancelEditing): sort out the is_editing/is_changing/is_adding
1029         stuff a little.
1030         (EndEdit): minor changes.
1031         (OnKeyDown): add a comment about a (most likely) unnecessary
1032         check.
1033         (OnMouseDown): cancel editing when we click on a row header.  And
1034         use the CurrentRow setter, not CurrentCell.
1035         (ProcessDialogKey): directly call ProcessGridKey.
1036         (UpdateSelectionAfterCursorMove): factor out this common block of
1037         code (it's used everywhere that we move the cursor by updating row
1038         or column).
1039         (ProcessGridKey): pretty substantial overhaul.  Use the
1040         CurrentRow/CurrentColumn properties to make the code a lot more
1041         readable.  Only use the CurrentCell property when we have to
1042         modify both row and column at once.  Tab behavior is still broken,
1043         and Delete is untested.
1044         (Select): if we have no selected rows, set selection_start to
1045         @row.
1046         (EditCurrentCell): rename EditCell this.  It was only ever invoked
1047         with CurrentCell as the arg, so drop the arg and rename it.
1048
1049         * DataGridColumnStyle.cs: clean up the constructors a little, and
1050         drop CommonConstructor().
1051
1052         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
1053         actually get notified when the user hits it.
1054         (ProcessKeyMessage): *substantially* simplify this method.
1055         There's no reason (that I can see) for the textbox to be making
1056         calls into the datagrid at all.  Remove all of them but the ones
1057         for Enter handling.  those will take some more work.
1058
1059         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
1060         calling HideEditBox.
1061         (HideEditBox): if we have an active textbox, render it invisible
1062         without causing a re-layout of the datagrid.
1063
1064 2006-06-05  Mike Kestner  <mkestner@novell.com>
1065
1066         * ListView.cs : fix NRE crasher when focuseditem is cleared by
1067         collection changes by resetting it to Items[0].  Fixes #78587.
1068
1069 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1070
1071         * MessageBox.cs: if the height of the text is larger than the icon_size,
1072         use that. Fixes bug #78575.
1073
1074 2006-06-05  Jackson Harper  <jackson@ximian.com>
1075
1076         * TreeView.cs: Fix line drawing when scrolling.  To do this each
1077         node is basically responsible for drawing its entire horizontal
1078         area.  When drawing a node it draws its parent node lines if
1079         needed.
1080         - Adjust the clip area to the viewport rectangle
1081         - Fix Left/Right key handling to match MS. (It expand/collapses
1082         and moves to parents/first child but does not move selection to
1083         sibling nodes).
1084         - Fix SetTop to work with new bound calculation code
1085         - When scrollbars are no longer needed we need to reset scrolling
1086         vars and recalculate the visible order so the redraw is correct
1087         * TreeNode.cs: We can't expand/collapse nodes with no children.
1088
1089 2006-06-03  John Luke  <john.luke@gmail.com> 
1090
1091         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
1092         so the colors work without dev packages
1093         
1094 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
1095
1096         * Control.cs 
1097           - Select: Implemented to just use activate. Seems to match MS 
1098             behaviour closest. Documented to only do actual control walking 
1099             based on it's parameters if in a container control so I moved 
1100             the code there.
1101           - Removed selection check logic from our internal Select() method
1102         * ContainerControl.cs:
1103           - Select: Moved selection logic from Control here, since MS documents
1104             that containers obey the bool arguments. No longer calling base
1105
1106 2006-06-02  Jackson Harper  <jackson@ximian.com>
1107
1108         * TreeView.cs: If the selected node isn't changed when we get
1109         focus update the previously selected node so that we see the
1110         selection box.
1111
1112 2006-06-02  Mike Kestner  <mkestner@novell.com>
1113
1114         * ComboBox.cs: restructure grab and general mouse event handling.
1115         Make the composite control raise mouse events like it was a single
1116         control for leaves/enters/motion/up/down events.  fix dropdown list
1117         coordinate mangling and refactor it into the scrollbar subclass to
1118         reduce code duplication.  Fixes #78282 #78361 and #78457.
1119
1120 2006-06-02  Mike Kestner  <mkestner@novell.com>
1121
1122         * ScrollBar.cs: remove Capture setting/clearing, as it happens
1123         automatically in the Control.WndProc.
1124
1125 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1126
1127         * FileDialog.cs: fix crash when running SharpChess, which sets the
1128         FilterIndex to 2 with only one Filter.
1129
1130 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1131
1132         * ToolBar.cs: add SizeSpecified property.
1133         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
1134         try to figure out our real size, otherwise fallback to what the
1135         container says.
1136
1137 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
1138
1139         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
1140         * Control.cs (WndProc): MS always calls the DefWndProc to pass
1141           up the event
1142
1143 2006-06-01  Mike Kestner  <mkestner@novell.com>
1144
1145         * ListView.cs: revamp the focus management in ListView.  It still
1146         causes churn of LostFocus/GotFocus emissions on clicks, but it's
1147         better than not handling focus at all.  Will revisit when pdb feels
1148         the general focus handling is solid.  Fixes #78526.
1149
1150 2006-06-01  Jackson Harper  <jackson@ximian.com>
1151
1152         * TreeView.cs: Set the default border style in the constructor.
1153         - Move painting to use OnPaintInternal instead of capturing
1154         WM_PAINT, this is the correct way of doing things
1155         - UpdateBelow shouldn't invalidate the scrollbar area
1156         - Cap the top on update below in case the node was above the top
1157         of the viewport rectangle.
1158         - ExpandBelow and Collapse below need to obey Begin/End Update.
1159         * TreeNode.cs: Make is_expanded internal so the treenode
1160         collection can change it without firing the whole event chain.
1161         * TreeNodeCollection.cs: When clearing all the child nodes make
1162         sure to recalc the visible order.
1163         - Improve algo for remove the top node
1164
1165 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
1166
1167         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
1168           SendMessage directly calling window procedures, which in turn might
1169           call SetFocus()
1170
1171 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
1172
1173         * Control.cs: Don't handle WM_SETFOCUS if the same window already
1174           has focus (works around X11 sending a FocusIn after our SetFocus)
1175         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
1176
1177 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
1178
1179         * Mime.cs: Fix for the NET_2_0 build.
1180           NameValueCollection needs StringComparer now.
1181
1182 2006-05-31  Chris Toshok  <toshok@ximian.com>
1183
1184         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
1185         return (via an out parameter) the starting X of the column.
1186         (UpdateVisibleColumn): track change to FromPixelToColumn.
1187         (HitTest): add a ColumnResize case here.
1188         (DrawResizeLine): new function, probably poorly named.
1189
1190         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
1191         only need to keep one reference.
1192         (set_ListManager): same.
1193         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
1194         Also, add support for HitTestType.ColumnResize.
1195         (OnMouseMove): add column resize behavior here, and change the
1196         cursor to the correct one as we move around the datagrid.
1197         (OnMouseUp): terminate the column resize if we're resizing.
1198         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
1199         for the current cell.
1200         (ConnectListManagerEvents): use cached_currencymgr.
1201         (DisconnectListManagerEvents): fill this in, using
1202         cached_currencymgr.
1203         (SetCurrentCell): remove cached_currencymgr_events handling.
1204         (SetDataMember): only call DisconnectListManagerEvents if
1205         cached_currencymgr is != null.
1206         (SetDataSource): same.
1207         (OnListManagerCurrentChanged): cached_currencymgr_events ->
1208         cached_currencymgr.
1209
1210 2006-05-31  Jackson Harper  <jackson@ximian.com>
1211
1212         * BindingManagerBase.cs: Remove somedebug code that creeped into
1213         SVN.
1214         * TreeNode.cs: We get the indent level dynamically right now, so
1215         don't track it as a member.
1216         * TreeNodeCollection.cs: Make sure all nodes added to the list
1217         have parents, treeviews/topnodes setup properly.
1218         - Don't attempt to track indent level.
1219
1220 2006-05-30  Jackson Harper  <jackson@ximian.com>
1221
1222         * BindingContext.cs: Create the currency manager tables here.
1223         This allows us to more easily create null tables (when bad data
1224         members are used), and more easily create related currency
1225         managers.
1226         * CurrencyManager.cs: All the table creation stuff is done by the
1227         binding context now.
1228         - Current should throw an exception if listposition is -1.
1229         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
1230         been bound yet.
1231
1232 2006-05-30  Mike Kestner  <mkestner@novell.com>
1233
1234         * ListView.cs: allow reexpansion of zero-width column headers.
1235         Fixes #78528.
1236
1237 2006-05-28  Chris Toshok  <toshok@ximian.com>
1238
1239         * CurrencyManager.cs (get_Current): after the late binding
1240         listposition = -1 fix, we need to guard against it here and return
1241         null, otherwise we raise an exception (which is swallowed
1242         elsewhere, and breaks datagrid databinding.)
1243
1244 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
1245
1246         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
1247           than WM_SYSKEY, don't throw if get something unexpected (#78507)
1248
1249 2006-05-26  Jackson Harper  <jackson@ximian.com>
1250
1251         * ControlPaint.cs:
1252         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
1253         values, it's faster and it's all we care about (we don't care if
1254         the names aren't equal).
1255         * KeyboardLayouts.cs: Eliminate some dead code.
1256         - Lazy init things
1257         * X11Keyboard.cs: Lazy init keyboard detection.
1258         - Cleanup access modifiers a little.
1259
1260 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
1261
1262         * XplatUIX11.cs: Once again, attempting to get layout just right.
1263
1264 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
1265
1266         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
1267           the sizes of each link section, that will result in sizes that
1268           match DrawString's layout (Fixes #78391)
1269
1270 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
1271
1272         * FileDialog.cs: If AddExtension property is true autocomplete the
1273           extensions in SaveFileDialog correctly. Fixes bug #78453.
1274           Set MyNetwork and MyComputer to "C:\" for windows. This should
1275           fix part 8 of bug #78446 for now.
1276
1277 2006-05-26  Chris Toshok  <toshok@ximian.com>
1278
1279         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
1280         invalidate the current row header if we need to, but presumably
1281         we'll invalidate the row corrsponding to the bounds or
1282         editingControl.
1283         (GridHScrolled): switch back to this method, as it's part of the
1284         public api.  *sigh*.
1285         (GridVScrolled): same.
1286         (OnMouseWheel): hack up something that more or less works.  Call
1287         GridHScrolled/GridVScrolled directly, instead of duplicating much
1288         of their code here.
1289         (EnsureCellVisibility): reinstate a bunch of this code, since we
1290         can't just set the scrollbar Value and expect to do all the work
1291         in the ValueChanged handler.  Also, Call Update() after scrolling
1292         in one direction so the other XplatX11.ScrollWindow call has the
1293         proper stuff in the proper places.
1294         (EditCell): set is_editing to true before calling .Edit.
1295
1296         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
1297         don't bother comparing first.
1298         (OnKeyPress): call grid.ColumnStartedEditing before calling
1299         base.OnKeyPress.  this will set is_changing and invalidate the row
1300         header if necessary.
1301         (ProcessKeyMessage): for WM_CHAR messages, call
1302         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
1303         and WM_KEYDOWN.
1304         
1305         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
1306         it's done in the DataGrid.
1307         (NextState): call grid.ColumnStartedEditing, which takes care of
1308         invalidating the row header (and setting is_changing).
1309
1310         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
1311         here.  it's done in the DataGrid.
1312
1313 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1314
1315         * Control.cs: allow changing the cursor when the mouse position is
1316         out of bounds but Capture is set.
1317         * LinkLabel.cs: handle the case when the mouse button is pressed on the
1318         linklabel but released somewhere else.
1319
1320 2006-05-25  Jackson Harper  <jackson@ximian.com>
1321
1322         * TreeView.cs: When we get focus if there is no selected node make
1323         it the top node
1324         - Remove some uneeded setup code from Draw.
1325         * TreeNodeCollection.cs: If the tree doesn't have a top node when
1326         a new node is inserted make the new node the top.
1327         * XplatUIX11.cs:
1328         * Timer.cs: Use Utc time so that no local time zone stuff needs to
1329         be used (should be faster).
1330         
1331 2006-05-25  Chris Toshok  <toshok@ximian.com>
1332
1333         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
1334         problem with the last commit.
1335
1336 2006-05-25  Chris Toshok  <toshok@ximian.com>
1337
1338         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
1339         need the invalidate call here, while scrolling right-to-left via
1340         the left arrow key (i.e. moving the editing cell while scrolling).
1341
1342         * DataGrid.cs (.ctor): remove the initialization of
1343         ctrl_pressed/shift_pressed.  We no longer track them using key
1344         up/down handlers, but by using Control.ModifierKeys.  Also, switch
1345         to using ValueChanged handlers on the scrollbars instead of
1346         Scrolled event handlers.  This simplifies a bunch of the scrolling
1347         code.
1348         (GridHValueChanged): rename from GridHScrolled, and change it to
1349         work with the new event args.
1350         (GridVValueChanged): same.
1351         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
1352         (OnMouseWheel): actually scroll the datagrid.  Don't change the
1353         selected cell.
1354         (ProcessGridKey): correct all the keyboard navigation stuff I
1355         could find.  Ctrl up/down/left/right/home/end work now.
1356         (EnsureCellVisibility): correct method name spelling.  Also,
1357         simplify this a touch by not explicitly calling the
1358         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
1359         scrollbar value.
1360         (OnKeyUpDG): no need for this method now.
1361         
1362 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1363
1364         * LinkLabel.cs: display the OverrideCursor when hovering the label.
1365         Fixes bug #78392.
1366
1367 2006-05-25  Chris Toshok  <toshok@ximian.com>
1368
1369         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
1370         r61019.
1371
1372 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
1373
1374         * Application.cs: Moved setting of is_modal and closing to before
1375           we create the control, to allow the event handlers called as a
1376           result of creation affect closing. Also removed Gonzalo's previous
1377           change to setting DialogResult, the behaviour has been moved to 
1378           Form.ShowDialog()
1379         * Form.cs: 
1380           - ShowDialog(): Removed explicit creation of the form, let RunLoop
1381             handle it instead
1382           - ShowDialog(): If no dialog result is set, we need to return Cancel
1383           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
1384             the close is cancelled
1385
1386 2006-05-25  Jackson Harper  <jackson@ximian.com>
1387
1388         * StatusBar.cs: We only need to update the sizes of the other
1389         panels when we have auto size contents.  Also we are only updating
1390         the contents of the panel, not the borders, so compensate for the
1391         border width (TODO: get this width from the theme somehow).
1392         * TreeView.cs: Scrollable is true by default
1393         - Use invalidate instead of refresh where needed
1394         - Factor the scrollable value into scrollbar updating
1395         - Update the scrollbars if the Scrollable property is altered
1396         - Update the selected node if its ImageIndex is changed
1397         - Handle null nodes in UpdateNode (mainly so we don't have to
1398         check if selected is null when updating it
1399         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
1400         are factored into the visible count
1401         - Use VisibleCount for clarity in the code
1402         - When the font is changed we need to recurse through all the
1403         nodes and invalidate their sizes
1404         
1405 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1406
1407         * Application.cs: set the DialogResult to fixed when the main form is
1408         hidden or destroyed while being modal.
1409
1410 2006-05-25  Miguel de Icaza  <miguel@novell.com>
1411
1412         * Theme.cs: Use Tangoified messagebox icons. 
1413
1414         (GetSizedResourceImage): Also cope with width = 0 and do not
1415         trigger a warning in that case (0 means "give me your icon from
1416         the resouce, no special size needed).
1417
1418 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
1419
1420         * Application.cs: Leave runloop if the the main modal form is 
1421           hidden (fixes #78484)
1422
1423 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
1424
1425         * BindingContext.cs : reject null datasource in Contains() and
1426           Item[].
1427         * CurrencyManager.cs : check data_member validity when data_source
1428           is dataset. When it is late binding, the initial position is -1.
1429
1430 2006-05-24  Jackson Harper  <jackson@ximian.com>
1431
1432         * TreeNodeCollection.cs: Dont't recalculate the visible order on
1433         inserted nodes that aren't visible.  This changes the
1434         max_visible_order which confuses scrollbar settings.
1435         - Use the enumerator to get the prev node instead of duplicating
1436         code.
1437         * TreeView.cs: Use new method for setting scrollbar values
1438         - Don't set the bounds every time the scrollbar is updated
1439         - When updating below the root node use an invalidate instead of a
1440         refresh to prevent the child controls (scrollbars) from being
1441         refreshed. (UpdateBelow still needs to be reworked anyways).
1442         - Reenable SetBottom now that visible orders are set correctly,
1443         added some debug code incase we ever get bad values there again.
1444         - Set the scrollbar max to 2 less then the max value, this
1445         compensates for the max value being one above the node count, and
1446         for scrollbars adding one extra "notch".
1447         - When drawing image nodes if there is an imagelist we draw the
1448         first image in the list if the supplied image index is out of the
1449         image list's bounds.
1450         
1451 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
1452
1453         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
1454           we receive a size change from the WM (Fixes #78503)
1455
1456 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
1457
1458         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
1459           rectangle (Fixes #78501)
1460
1461 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
1462
1463         * ButtonBase.cs: 
1464           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
1465             as a bitfield.
1466           - Fixed MouseMove to no longer switch pressed state unless the left
1467             mouse button is pressed. Atsushi provided the original patch (#78485)
1468           
1469 2006-05-24  Jackson Harper  <jackson@ximian.com>
1470
1471         * ScrollBar.cs: New internal methods that allow us to change a
1472         couple values on the scrollbar (the most common case is maximum
1473         and large change) without getting multiple invalidates.
1474
1475 2006-05-24  Chris Toshok  <toshok@ximian.com>
1476
1477         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
1478         (Edit): save off the original state in oldState, and set
1479         grid.is_editing to true.
1480         (OnKeyDown): abort editing if escape is pressed.  also, call
1481         NextState if space is pressed.
1482         (OnMouseDown): call NextState.
1483         (NextState): factor out shared code from OnKeyDown and OnMouseDown
1484         here.  Also, only invalidate the row header once (on the initial
1485         is_changing switch) to save on redraws.
1486
1487 2006-05-24  Chris Toshok  <toshok@ximian.com>
1488
1489         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
1490         if the value in the cell is different than it was before.  This
1491         keeps us from triggering a layout when we move around a datarid
1492         with a highlighted cell.
1493         (Edit): suspend layout when creating/positining the text box, and
1494         resume passing false so we don't ever actually re-layout.
1495         (ReleaseHostedControl): same.
1496         (EnsureTextBox): reformat slightly, and set WordWrap to false.
1497
1498         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
1499         control-key sequences should go to the datagrid - remove that
1500         lock.  Also, modify the conditions under which we move between
1501         cells when moving the cursor within a cell, and remove the "this"
1502         and "base" from field accesses.  We weren't even consistent, given
1503         they all were in the base class.
1504
1505 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
1506
1507         * Binding.cs : (.ctor)
1508           An obvious NRE fix for BindingTest.CtorNullTest().
1509
1510 2006-05-23  Chris Toshok  <toshok@ximian.com>
1511
1512         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
1513         them between lines.  This fixes some quirks editing cells in the
1514         datagrid.
1515
1516 2006-05-23  Jackson Harper  <jackson@ximian.com>
1517
1518         * TreeView.cs: Use begin/end update when doing expand/collapse all
1519         so that we don't get flicker on the scrollbar.
1520
1521 2006-05-23  Jackson Harper  <jackson@ximian.com>
1522
1523         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
1524         treenode calculations to be independant of the painting code. To
1525         do this nodes track a visible order which is calculated by the
1526         treeview.
1527         - Call new methods for expanding/collapsing nodes.  These methods
1528         use scrollwindow so we don't have to update everything below the
1529         node.
1530         * TreeView.cs: Refactored drawing and scrolling code.  We don't
1531         need to update nodes when drawing anymore or calculate scrollbar
1532         stuff.
1533         - Added new methods for expanding/collapsing nodes. These methods
1534         use ScrollWindow so as to not have to redraw all the nodes below.
1535         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
1536         we add/remove nodes or sort.
1537         - Handle removing the selected and the top node properly.
1538
1539 2006-05-23  Chris Toshok  <toshok@ximian.com>
1540
1541         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
1542         maybe this should actually happen in the datagrid code?
1543         (EndEdit): no need to invalidate anything, given that
1544         ReleaseHostedControl causes the datagrid to relayout, which
1545         invalidates everything anyway.
1546
1547         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
1548         in SetCurrentCell).
1549         (set_SelectionBackColor): call InvalidateSelection instead of
1550         Refresh.
1551         (set_SelectionForeColor): same.
1552         (BeginEdit): Flesh this out a bit.
1553         (CancelEditing): only do any of this if we're editing/adding.
1554         (EndEdit): same.
1555         (OnMouseDown): there's no need to cancel editing here, it's done
1556         in SetCurrentCell.
1557         (SetCurrentCell): only invalidate the current row header if it's a
1558         different row than the new one.
1559         (ShiftSelection): fix this to work like MS does.
1560         (ResetSelection): factor out the invalidation of selected_rows to
1561         InvalidateSelection.
1562         (SetDataSource): cancel any editing that's going on.
1563
1564         * DataGridColumnStyle.cs
1565         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
1566         call the non-interface version.
1567
1568         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
1569         header rectangle with the clip rectangle so we don't redraw the
1570         entire header for just a small area.  Gets rid of the last flicker
1571         when horizontally scrolling.
1572         (DataGridPaintRow): same.
1573
1574 2006-05-23  Mike Kestner  <mkestner@novell.com>
1575
1576         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
1577         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
1578         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
1579         Critical bug report.
1580
1581 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
1582
1583         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
1584           and this fixes #78493
1585
1586 2006-05-23  Miguel de Icaza  <miguel@novell.com>
1587
1588         * Theme.cs (GetSizedResourceImage): Scale images if the proper
1589         size is not found.  
1590         
1591         * FileDialog.cs: Do not change the background for the side bar as
1592         it wont work nicely with the theme, and also reduces the artifacts
1593         in rendering the icons (which I want to fix too).
1594
1595         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
1596         resources, not resgen resources. 
1597
1598         (PlatformDefaultHandler): Pull images using the new API.
1599
1600 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
1601
1602         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
1603           a reference to the hwnd and will not remove it unless there are
1604           no pending exposures (fixes #78341)
1605         * XplatUI.cs: Improved debug
1606
1607 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
1608
1609         * MenuAPI.cs : don't handle OnClick event when it was not the left
1610           button. Fixed bug #78487.
1611
1612 2006-05-23  Mike Kestner  <mkestner@novell.com>
1613
1614         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
1615         prefer submenus to the top menu for item lookup, to avoid popping down
1616         top-row items.
1617
1618 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
1619
1620         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
1621           Graphics.FillRectangle as the visual results are really bad (even
1622           on win). We now draw perfect arrows (and perfect shadows when the
1623           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
1624           Pen.DashPattern to draw the dots of each line.
1625
1626 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
1627
1628         * FileDialog.cs: Update the filename combobox when navigating through
1629           the ListView with the cursor keys. Fixes part 7 of bug #78446.
1630
1631 2006-05-22  Mike Kestner  <mkestner@novell.com>
1632
1633         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
1634         Fixes #78463.
1635
1636 2006-05-22  Mike Kestner  <mkestner@novell.com>
1637
1638         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
1639         requests. Fix a misspelled parameter and a copy paste exception error
1640         in Select.
1641
1642 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
1643
1644         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
1645           to get the same width/height (5/13) on X11 as the default font has on
1646           win32. This means that our DefaultFont emSize is smaller than the 
1647           the MS SWF equivalent (even thought the width/height stays the same)
1648
1649 2006-05-20  Jackson Harper  <jackson@ximian.com>
1650
1651         * MdiClient.cs:
1652         * MdiWindowManager.cs:
1653         * InternalWindowManager.cs: Make sure to use the border width from
1654         the theme.
1655
1656 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
1657
1658         * PrintDialog.cs: Implements printer details
1659
1660 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
1661
1662         * FileDialog.cs: Added focus handling for PopupButtonPanel.
1663           Fixes part 1 and 2 of bug #78446
1664
1665 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
1666
1667         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
1668           instead of sticking to the first ever calculated value
1669
1670 2006-05-19  Mike Kestner  <mkestner@novell.com>
1671
1672         * ComboBox.cs: fix mouse motion selection to use MousePosition and
1673         PointToClient, since Capture is set. Fixes #78344.
1674
1675 2006-05-19  Mike Kestner  <mkestner@novell.com>
1676
1677         * ListView.cs: match MS behavior in Details view where items are not
1678         drawn if Columns.Count == 0. 
1679         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
1680         Use a separate pen to draw the check, since changing the width affects
1681         the box as well.  Fixes #78454.
1682
1683 2006-05-18  Miguel de Icaza  <miguel@novell.com>
1684
1685         * ListView.cs: ArgumentOutOfRangeException, single versions of the
1686         exception should throw the name of the invalid argument.
1687
1688         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
1689         there are no files listed. 
1690
1691 2006-05-18  Jackson Harper  <jackson@ximian.com>
1692
1693         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
1694         up.
1695
1696 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
1697
1698         * Control.cs: Brought back our old UpdateZOrder method as a private
1699           function and switched our calls from UpdateZOrder to the new one.
1700           This fixes the Paint.Net canvas disappearing bug.
1701
1702 2006-05-18  Jackson Harper  <jackson@ximian.com>
1703
1704         * Theme.cs:
1705         * ThemeWin32Classic.cs:
1706         * InternalWindowManager.cs: Move the drawing into the theme,
1707         expose everything the theme should need from the window manager.
1708
1709 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
1710
1711         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
1712           from the call to NativeWindow to avoid walking up the parent chain
1713           further than needed (speeds up setting cursors and avoids setting
1714           the wrong cursor if a parent has another cursor defined)
1715         * Cursor.cs: When loading an icon as cursor, MS uses the center of
1716           the icon as hotspot, not what's contained as hotspot in the icon
1717           file. This fixes the perceived drawing offset seen with Paint.Net
1718         
1719 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
1720
1721         * XplatUIX11.cs: 
1722           - Store the calculated rectangle in Hwnd object and use it when 
1723             setting the client size
1724           - Force Toolwindows to always be type Dock, to ensure they're on top
1725
1726 2006-05-18  Mike Kestner  <mkestner@novell.com>
1727
1728         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
1729         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
1730         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
1731         Substantial refactoring to remove confusing nested classes. Coding
1732         standard and Get+Set->property refactorings.  Shift to index based
1733         highlighting in ComboListBox instead of constantly using IndexOf and
1734         Items[]. Add invalidations on resize for DropDownList to fix ugliness
1735         in FileDialog growth.  Draw borders manually since Simple mode needs
1736         to look like two independent controls.  Make listbox border
1737         conditional to DropDownStyle.  Improved OwnerDraw support.
1738
1739 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
1740
1741         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
1742         Don't set the disposed graphics to null, so we can throw the "right"
1743         exception if the graphics is reused later (added a flag to avoid 
1744         double disposing). Some behaviours are different under 2.0 and are
1745         filled under bug #78448.
1746
1747 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
1748
1749         * Control.cs: When double-buffering is enabled, we need to reset
1750           our graphics context between paint calls. Otherwise, any 
1751           transformations and other alterations on the context will 
1752           become cumulative (#77734)
1753
1754 2006-05-18  Mike Kestner  <mkestner@novell.com>
1755
1756         * ListView.cs: do focused item selection like MS on clicks. 
1757         Rework focus handling for ItemControl so LostFocus invalidates as
1758         well.
1759         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
1760         the ListView ItemControl has focus.
1761
1762 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
1763
1764         * XplatUIX11.cs: If client_window ends up being width or height zero
1765           due to border settings, move it off window inside whole_window (#78433)
1766
1767 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
1768
1769         * Mime.cs: Shrink the mime file cache correctly.
1770
1771 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
1772
1773         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
1774
1775 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
1776
1777         * XplatUIX11.cs (AddExpose): More sanity checks
1778
1779 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
1780
1781         * XplatUIX11.cs:
1782           - AddExpose: Don't add expose ranges outside the size of our
1783             window
1784           - Cast opacity values to Int32 to avoid crashes with certain
1785             values
1786           - Added disabled code paths that protect against illegal cross-
1787             thread painting (Developers.exe)
1788
1789 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
1790
1791         * ProgressBar.cs: Invalidate the control when it's resized
1792           since block size is based on control size. (#78388)
1793
1794 2006-05-16  Miguel de Icaza  <miguel@novell.com>
1795
1796         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
1797         of setting the incoming argument to the "reset" value, we set the
1798         this.datamember to string.empty (before we were invalidating the
1799         incoming data).   
1800
1801         Fixes 78420
1802
1803 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
1804
1805         * Form.cs: Only apply transparency settings after the form
1806           is created. (Fixes #77800)
1807
1808 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
1809
1810         * ApplicationContext.cs: Grab the HandleDestroyed event so
1811           we know when to fire OnMainFormClosed 
1812
1813 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
1814
1815         * Application.cs: Introduced sub-class to allow tracking of
1816           threads and centralized triggering of the event mess for
1817           ThreadExit, AppExit, etc..  (#76156)
1818
1819 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
1820
1821         * MimeIcon.cs:
1822           - Do not return a null icon index value for a mime subclass.
1823             Instead try the main mime type class too.
1824           - Seems that some newer distributions don't have a link to some
1825             gnome default icons anymore. So check the default gnome dir too.
1826           
1827
1828 2006-05-16  Jackson Harper  <jackson@ximian.com>
1829
1830         * MdiClient.cs: Don't paint the parent background image if we have
1831         our own background image.
1832
1833 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
1834
1835         * Control.cs:
1836           - PerformLayout: Do not shrink space filled by DockStyle.Fill
1837             controls, all filled controls are supposed to overlap (#78080)
1838           - UpdateZOrder is supposed to update the control's z-order in the
1839             parent's z-order chain. Fixed to behave like that
1840           - BringToFront: Removed obsolete code
1841           - SendToBack: Simplyfied
1842           - SetChildIndex: Trigger layout calculations when Z-order changes
1843             since layout is done by z-order
1844
1845 2006-05-16  Chris Toshok  <toshok@ximian.com>
1846
1847         [ fixes bug #78410 ]
1848         * DataGrid.cs (set_AlternatingBackColor): use
1849         grid_drawing.InvalidateCells instead of Refresh().
1850         (set_BackColor): call grid_drawing.InvalidateCells.
1851         (set_BackgroundColor): use Invalidate instead of Refresh.
1852
1853         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
1854         invalidate the cell area.
1855
1856 2006-05-15  Chris Toshok  <toshok@ximian.com>
1857
1858         [ fixes bug #78011 ]
1859         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
1860         on to DataGridPaintRow.
1861         (DataGridPaintRow): take a clip argument, and only draw the cells
1862         which intersect it.  same with the not_usedarea.
1863
1864         * Theme.cs (DataGridPaintRow) add @clip parameter.
1865
1866         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
1867         XplatUI.ScrollWindow.
1868         (ScrollToRow): same.
1869
1870         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
1871         with last column which was causing a gray swath to appear with the
1872         XplatUI.ScrollWindow code.
1873
1874 2006-05-15  Chris Toshok  <toshok@ximian.com>
1875
1876         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
1877         use XplatUI.ScrollWindow.
1878         (VerticalScrollEvent): use XplatUI.ScrollWindow.
1879
1880 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
1881
1882         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
1883
1884 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
1885
1886         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
1887           file since there are no equivalent X11 cursors
1888
1889 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
1890
1891         * MonthCalendar.cs : DateTimePicker should reflect selected date
1892           on mouse*up*, not mouse*down*. Fixed originally reported part of
1893           bug #76474.
1894
1895 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
1896
1897         * TabControl.cs : When argument index is equal or more than tab
1898           count, just ignore. Fixed bug #78395.
1899
1900 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
1901
1902         * Control.cs: Dispose all child controls when control is diposed (#78394)
1903
1904 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
1905
1906         * ColorDialog.cs: Finally it is possible to select the color with
1907           the text boxes
1908
1909 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
1910
1911         * PrintDialog.cs: Fix typo
1912
1913 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
1914
1915         * PrintDialog.cs: PrintDialog is not resizable
1916         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
1917           color. Made some ToolBar drawing methods protected virtual.
1918
1919 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
1920
1921         * PrintDialog.cs: Implementation of the PrintDialog
1922
1923 2006-05-12  Chris Toshok  <toshok@ximian.com>
1924
1925         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
1926         thumb, instead use MoveThumb.  This has the side effect of making
1927         most of the other thumb moving machinery use MoveThumb as well.
1928         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
1929         need to actually invalidate the rectangle where the new thumb will
1930         go.
1931         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
1932         We force an Update() after, so it's not as fast as it could be,
1933         but at least there's zero flicker and no droppings.
1934         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
1935         (UpdateThumbPos): add another argument (dirty), which says whether
1936         or not to calculate/add dirty regions which we later invalidate.
1937         For cases where we know we're going to use MoveThumb, we pass
1938         false for this.  Otherwise, pass true.
1939
1940 2006-05-12  Jackson Harper  <jackson@ximian.com>
1941
1942         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
1943         the status bar.
1944         
1945 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
1946
1947         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
1948           and GetClipRegion methods and UserClipWontExposeParent property.
1949         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
1950           overriding UserClipWontExposeParent property, setting to false, since
1951           Win32 handles the required expose messages to draw our clipped parent
1952           areas internally
1953         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
1954           PaintEventStart to set the user clip region if set.
1955         * Control.cs: 
1956           - Now internally tracking the Region for the control since we need to
1957             store it if the handle is not yet created and only set it when it
1958             becomes created. Before setting the region forced handle creation
1959           - Added code to draw the parents underneath a user-clipped region
1960         * Hwnd.cs: Added UserClip property
1961
1962 2006-05-12  Chris Toshok  <toshok@ximian.com>
1963
1964         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
1965         (set_Maximum): same.
1966         (set_Minimum): same.
1967         (set_SmallChange): same.
1968         (OnMouseUpSB): remove the call to refresh when releasing the
1969         thumb.  We shouldn't need it.
1970         
1971 2006-05-12  Miguel de Icaza  <miguel@novell.com>
1972
1973         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
1974         AutoSize set to None, we do not need to relayout everything, we
1975         just need to invalidate the current region.
1976
1977         (Draw): Do not draw the entire ClientArea, just redraw the
1978         clip area being passed.
1979
1980         * MdiClient.cs: Make MdiClient constructor with the Form argument
1981         internal. 
1982
1983 2006-05-12  Jackson Harper  <jackson@ximian.com>
1984
1985         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
1986         parents background image,  but strangely not their own.
1987         - (DrawStatusBarPanel): Take into account horizontal alignment
1988         when drawing the strings and icons.
1989
1990 2006-05-12  Mike Kestner  <mkestner@novell.com>
1991
1992         * ListBox.cs: avoid invalidations for focus when the collection is
1993         empty. 
1994
1995 2006-05-12  Chris Toshok  <toshok@ximian.com>
1996
1997         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
1998         invalidate the entire thumb area.  Call InvalidateDirty which
1999         limits the redraw to the thumb itself and surrounding pixels.
2000
2001         * XplatUIX11.cs (ScrollWindow): optimize copying.
2002         
2003 2006-05-12  Chris Toshok  <toshok@ximian.com>
2004
2005         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
2006         Figure out the positioning/layout in a single pass instead of
2007         multiple recursive invocations.  Speeds up the initial display of
2008         the data grid.  Also, make many things private that were
2009         originally public but unused outside this class.
2010
2011 2006-05-11  Jackson Harper  <jackson@ximian.com>
2012
2013         * MdiClient.cs: Improved layout code.
2014
2015 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
2016
2017         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
2018           not SelectedObject.
2019
2020 2006-05-11  Chris Toshok  <toshok@ximian.com>
2021
2022         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
2023         union of that will always be {0,0,width,height}.
2024
2025 2006-05-11  Jackson Harper  <jackson@ximian.com>
2026
2027         * Form.cs: Match MS's DefaultSize for forms (they must have
2028         changed the size in sp2).
2029
2030 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
2031
2032         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
2033
2034 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
2035
2036         * TextControl.cs : Fixed bug #78109. This incorrect position
2037           comparison caused crash on automatic line split.
2038         * TextBoxBase.cs : reduce duplicate code.
2039
2040 2006-05-10  Jackson Harper  <jackson@ximian.com>
2041
2042         * MdiClient.cs: Active form is only sent to the back when using
2043         the Next form functionality, when a form is clicked the current
2044         active shouldn't be sent to the back.
2045         - Layout the mdi windows when the container is first made visible.
2046         * Form.cs: Give the MdiClient a ref to the containing form when we
2047         create it.
2048         
2049 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
2050
2051         * LinkLabel.cs : link_font could be uninitialized, so populate one
2052           before actual use. Fixed bug #78340.
2053
2054 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
2055
2056         * XplatUIX11.cs : clipboard format native value is IntPtr.
2057           Fixed bug #78283.
2058
2059 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
2060
2061         * Control.cs: 
2062           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
2063             which is passed up the parent chain by DefWndProc
2064           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
2065             to DefWndProc (#77956)
2066         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
2067
2068 2006-05-10  Jackson Harper  <jackson@ximian.com>
2069
2070         * MdiClient.cs: We need to remove the controls from the mdi
2071         collection, when we close the window.
2072         * MdiWindowManager.cs: Special handling of closing mdi windows.
2073         * InternalWindowManager.cs: Make the close method virtual so the
2074         mdi window manager can handle it specially.
2075
2076 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
2077
2078         * DataGrid.cs:
2079           - Recalculate grid when the data source has changed
2080           - Matches styles provided by user from all data sources types
2081         * DataGridTableStyle.cs: For columns that provided by the user set the
2082         with the preferred value is there was unassigned.
2083         * CurrencyManager.cs: throw OnItemChanged event
2084
2085 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
2086
2087         * PictureBox.cs: Don't animate until handle is created. Start animation
2088           when handle is created.
2089
2090 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
2091
2092         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
2093           current codebase.
2094         * XEventQueue.cs: We don't need to provide the extra info
2095
2096 2006-05-10  Jackson Harper  <jackson@ximian.com>
2097
2098         * MdiClient.cs: If the mdi clients parent form has a background
2099         image set, we draw that background image for the mdi area's
2100         background.
2101
2102 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
2103
2104         * TextBoxBase.cs: Set IBeam cursor (#78347)
2105
2106 2006-05-10  Mike Kestner  <mkestner@novell.com>
2107
2108         * ToolBar.cs: fix some text padding issues with ButtonSize
2109         calculation. Update the default size to match MS documentation.
2110         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
2111         button size. Fixes #78296.
2112
2113 2006-05-10  Mike Kestner  <mkestner@novell.com>
2114
2115         * ListBox.cs: use is_visible for scrollbar positioning in case the
2116         control isn't on screen yet.  Fix off by one with Right vs Width
2117         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
2118         
2119 2006-05-10  Jackson Harper  <jackson@ximian.com>
2120
2121         * X11Dnd.cs: Drop to a control with another control on top of it.
2122         * ToolBar.cs: Work on a copy of the buttons list, so that it can
2123         be modified in click handlers. TODO: Look for similar problems in
2124         other controls.
2125
2126 2006-05-09  Jackson Harper  <jackson@ximian.com>
2127
2128         * Form.cs: Window managers need the old window state when setting
2129         window state now.
2130         * InternalWindowManager.cs: Allow the base mdi window manager to
2131         handle more of the MDI only stuff (like maximize buttons).
2132         * MdiWindowManager.cs: Fix some snafus in changing the window
2133         state.  Add all the menu functionality, for both popup and
2134         maximized menus.
2135         * MdiClient.cs: When a new form is selected the currently
2136         activated form is sent to the back, this matches MS.
2137         - Implement a new method to activate the next mdi child window.
2138
2139 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
2140
2141         * Control.cs: 
2142           - Added new InternalCapture method to allow controls to prevent
2143             the capture behaviour on the click handlers
2144           - Switched to use InternalCapture
2145         * ComboBox.cs:
2146           - Using InternalCapture to prevent mouse captures from being released
2147             on mouse button release (Fixes #78100)
2148         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
2149           returns Form borders if a caption is present. (Fixes #78310)
2150
2151 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
2152
2153         * TreeNode.cs: Changed serialization .ctor to not require every field
2154           to be present. (#78265)
2155         * OwnerDrawPropertyBag.cs: Added serialization .ctor
2156
2157 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
2158
2159         * MimeIcon.cs: for is faster than foreach for strings.
2160
2161 2006-05-05  Mike Kestner  <mkestner@novell.com>
2162
2163         * CheckedListBox.cs: update check handling code to not use selected.
2164         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
2165         behavior for visual feedback, motion response, shift/ctrl handling,
2166         and properly deal with all 4 selection modes. Updates to bounds
2167         handling logic.  Add scroll wheel support. [Fixes #77842]
2168
2169 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
2170
2171         * ListView.cs:
2172           - Moved adding of Implicit controls into .ctor. That way, subsequent
2173             creation of the controls will not cause them to think they are 
2174             toplevel windows (fixes #78200 header problem)
2175           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
2176           - Switched visibility setting of header control to use internal field
2177             to avoid triggering handle creation
2178           - Now checking if handle is created before causing a refresh when items
2179             are added (This makes us now match handle creation time with MS)
2180         * Splitter.cs: Removed loading of private splitter cursor, switched to
2181           Cursors version now that that is loading the right ones
2182         * Cursors.cs: Load proper splitter cursors from resources
2183         * Cursor.cs: Added second method of loading resource cursors for the 
2184           VS.Net users amongst us
2185
2186 2006-05-05  Mike Kestner  <mkestner@novell.com>
2187
2188         * ListView.cs: give header_control a minimum size based on the
2189         ListView size.
2190
2191 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
2192
2193         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
2194           window seems to do that with metacity, so set that type. (#78120)
2195
2196 2006-05-05  Mike Kestner  <mkestner@novell.com>
2197
2198         * ListViewItem.cs: fix Details mode checkbox layout bug.
2199         * ThemeWin32Classic.cs: draw a ListView column header for unused space
2200         at the end of the header, if it exists. [Fixes for #78200]
2201
2202 2006-05-04  Jackson Harper  <jackson@ximian.com>
2203
2204         * MdiClient.cs: Add a helper property to get the container form.
2205         * MdiWindowManager.cs: We have to make sure to use the menu origin
2206         when drawing the icons and buttons, this fixes maximized window
2207         icons/buttons on win32.
2208         * InternalWindowManager.cs: Reset the restore captions when a
2209         window goes from Maximized to Minimized and vice versa. Move the
2210         DrawMaximizedButtons into the MdiWindowManager source, tool
2211         windows can't be maximized. NOTE: This could use a little
2212         refactoring if time ever permits.
2213         
2214 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
2215
2216         * TextBox.cs: Add MWFCategoryAttributes
2217         * TextBoxBase.cs: Add MWFCategoryAttributes
2218         * Form.cs: Add MWFCategoryAttributes
2219
2220 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
2221
2222         * Control.cs: Add MWFCategoryAttributes
2223         * ScrollableControl.cs: Add MWFCategoryAttributes
2224
2225 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
2226
2227         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
2228           Divider is true. Fix a little glitch in PropertyToolBar
2229           drawing code
2230
2231 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
2232
2233         * Control.cs:
2234           - Dispose: Call base.Dispose, this causes the disposed event
2235             to be fired (and probably other, more important stuff)
2236           - SetVisibleCore: Set is_visible to true after creating the
2237             window so that the window still gets created invisible (if
2238             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
2239             to generate a WM_ACTIVE message
2240         * Form.cs: Call Dispose when we want to destroy the window, instead of
2241           just destroying the handle (Dispose will do that for us)
2242         * XplatUIX11.cs:
2243           - RootWindow also needs a queue, so we can properly process the
2244             property change events from RootWindow (like Activate)
2245           - Generatic synthetic WM_ACTIVE message when the active window is
2246             being destroyed
2247
2248 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
2249
2250         * LinkLabel.cs: Trigger a recalc of our label dimensions when
2251           bounds are changed
2252
2253 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
2254
2255         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
2256           for determining width and height (image might not be assigned if
2257           we're drawing an imagelist)
2258
2259 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
2260
2261         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
2262         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
2263           height from system
2264         * Theme.cs: No longer returns hardcoded menu height, instead calls
2265           new driver method
2266         * Form.cs (OnLoad): Scaling happens before triggering Load events 
2267           on MS (# 78257)
2268
2269 2006-05-01  Mike Kestner  <mkestner@novell.com>
2270
2271         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
2272
2273 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
2274
2275         * TextBoxBase.cs: Removed Fixme
2276         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
2277
2278 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
2279
2280         * XplatUIX11.cs:
2281           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
2282             the rectangle relative to the parent, considering borders. We
2283             don't really want that.
2284           - ScrollWindow: Fixed warning to be more understandable
2285         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
2286           scrollbars and scroll only the visible area
2287         * RichTextBox.cs: Removed debug output
2288
2289 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
2290
2291         * NumericUpDown.cs (Text): Just use base
2292         * UpDownBase.cs: Ensure txtView is created before using it
2293
2294 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
2295
2296         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
2297           casting to IntPtr to avoid 64bit overflow errors
2298
2299 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
2300
2301         * Control.cs:
2302           - AllowDrop: Don't force handle creation.
2303           - CreateHandle: Added call to tell driver if we're allowed to drop
2304
2305 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
2306
2307         * FileDialog.cs: Remember the last directory not only for the
2308           current instance but also for new FileDialog instances.
2309
2310 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
2311         
2312         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
2313           broke sending async messages
2314
2315 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
2316
2317         * XplatUIX11.cs:
2318           - ScrollWindow: Fixed method. We finally generate expose events again
2319             for scrolled areas. This was causing 'garbage' when scrolling
2320             textbox and other controls that used ScrollWindow
2321           - Switched from using the regular queue for paint events to the MS 
2322             model of 'generating' paint events when the queue is empty.
2323             We use the new XQueueEvent.Paint subclass to store which windows
2324             need painting.
2325           - AddExpose now takes the x/y/width/height of the exposed area
2326             and inserts the window into the paint queue if not already there
2327           - InvalidateWholeWindow: Switched to use new AddExpose method
2328           - UpdateMessageQueue: Added which queue to monitor for paint events
2329           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
2330             the unlikely case nothing above handles it. We reset the expose
2331             pending states to get them off the queue.
2332           - GetMessage: Now pulls a paint event if no other events are in the
2333             queue
2334           - Invalidate: Switched to new AddExpose method
2335           - PeekMessage: Updated to understand pending paint events
2336           - UpdateWindow: Fixed logic bug. We were only updating if the window
2337             didn't need updating. Also switched to sending WM_PAINT directly,
2338             like MS does.
2339         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
2340           and random access Remove(). The random access is needed to handle
2341           UpdateWindow() where a WM_PAINT is sent directly without accessing
2342           the queue.
2343         * ScrollBar.cs: Added Update() calls to cause immediate updates to
2344           allow for better feedback when scrolling. Scrollbars are small and
2345           the immediate update should make it 'feel' more responsive without
2346           slowing things down. ScrollBar still needs it's invaliate logic
2347           updated to not always invalidate the whole bar on certain changes.
2348
2349 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2350
2351         * Control.cs:
2352         (BackColor): if the control does not support a transparent background,
2353         return the default backcolor when the parent backcolor is transparent.
2354
2355 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
2356
2357         * Application.cs: Updated to new StartLoop/GetMessage API
2358         * RichTextBox.cs: Provide some output on RTF parsing errors
2359         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
2360           new queue_id argument to GetMessage and PeekMessage to allow faster
2361           handling of per-thread queues in drivers.
2362         * Hwnd.cs: Added Queue tracking and property
2363         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
2364         * XEventQueue.cs: Added thread trackingA
2365         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
2366         * XplatUIX11.cs:
2367           - Implemented new per-thread queue
2368           - GetMessage: Fixed return/break behaviour on several cases. We were
2369             returning stale messages in some cases, instead of just processing
2370             the next message
2371
2372 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
2373
2374         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
2375
2376 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
2377
2378         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
2379           fixed off-by-one comparisons between Width/Height and Right/Bottom.
2380
2381 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
2382
2383         * PropertyGridView.cs: Fix drop down width.
2384
2385 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
2386
2387         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
2388           a mess in DrawToolBar, so I removed one of them.
2389
2390 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
2391
2392         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
2393           needed (clip). Otherwise we get artifacts.
2394
2395 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
2396
2397         * FixedSizeTextBox.cs: Added constructor to allow specifying which
2398           dimension is fixed
2399         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
2400           and switched FixedSizeTextBox to only be fixed vertical (#78116)
2401         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
2402           if it matches the scale base font (avoids unneeded scaling)
2403
2404 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
2405
2406         * X11DesktopColors.cs: One gtk_init_check should be enough
2407
2408 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
2409
2410         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
2411           match MS behaviour
2412
2413 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
2414
2415         * TextBoxBase.cs: 
2416           - Generate OnTextChanged for Backspace even if we're only deleting
2417             the current selection
2418           - When setting the Text property, only select all text if the
2419             control does not have focus when it is being set. Otherwise
2420             just place the cursor at the beginning of the control
2421
2422 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
2423
2424         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
2425           Added a little helper to draw PropertyGrid ToolBar with a different
2426           border and a different BackColor.
2427         * PropertyGrid.cs: Some background parts didn't get painted with the
2428           correct background color. Added a class that helps us to draw the
2429           correct border for PropertyGridView and a class that helps us to
2430           draw ToolBars with a different backcolor
2431         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
2432
2433 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
2434
2435         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
2436         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
2437
2438 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
2439
2440         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
2441           into the palette entries. Also, since we're working on a copy
2442           we needed to copy the palette back onto the bitmap.
2443         * Cursor.cs: Same fix as XplatUIWin32.cs.
2444
2445 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
2446
2447         * ImageListStreamer.cs: Need to read the var (or we're off)
2448
2449 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
2450
2451         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
2452           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
2453           TextBoxBase.cs: Unused var fixes
2454         * AxHost.cs: Small 2.0 fix
2455         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
2456           as it seems that is what at least Metacity expects. This will make
2457           icons show up on 64bit platforms. We still have some 64bit size
2458           issues, though, since the startup app window size still won't match.
2459
2460 2006-04-25  Mike Kestner  <mkestner@novell.com>
2461
2462         * *.cs: cleanup newly reported exception var unused warnings.
2463
2464 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
2465
2466         * ThemeWin32Classic.cs: Button image alignment now matches exactly
2467           ms
2468
2469 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
2470
2471         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
2472           image. The image position is always the same, no matter if the
2473           button is pressed or not.
2474
2475 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
2476
2477         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
2478           selection and set the correct filename for SaveFileDialog.
2479           Patch by Emery Conrad.
2480
2481 2006-04-24  Mike Kestner  <mkestner@novell.com>
2482
2483         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
2484         check for item.X outside the ClientRect instead of item.Y. Fixes
2485         #78151.
2486
2487 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2488
2489         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
2490         trust that value blindly and do some sanity check. Fixes bug #77814.
2491
2492 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2493
2494         * ImageListStreamer.cs: save the mask as a 1bpp image.
2495
2496 2006-04-21  Mike Kestner  <mkestner@novell.com>
2497
2498         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
2499         pass Checked and Indeterminate to the Theme Engine. Improve
2500         encapsulation with ListBox.
2501         * ListBox.cs: Keep a StringFormat instead of calculating it every item
2502         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
2503         nested types.  Move all CheckState functionality to CheckedListBox.
2504         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
2505         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
2506         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
2507         single base list. Fix scrollbar sizing and placement to mirror MS.
2508         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
2509         used.
2510         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
2511         for CheckedListBox by using new DrawItemState info.  Center the
2512         checkboxes on the items. Use new StringFormat property.
2513
2514 2006-04-18  Jackson Harper  <jackson@ximian.com>
2515
2516         * Form.cs: MdiChildren don't do default locations the same way as
2517         regular forms.  This prevents a crash when trying to position the
2518         mdi windows.
2519
2520 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
2521
2522         * PropertyGridTextBox.cs: Formatting, copyright
2523         * PropertiesTab.cs: Formatting
2524         * PropertyGrid.cs: Formatting
2525         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
2526           click toggling of values
2527           
2528 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
2529
2530         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
2531         * Control.cs (.ctor): verify_thread_handle is static, don't reset
2532           every time a control is created
2533         * Application.cs: Removed obsolete EnableRTLMirroring method
2534
2535 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
2536
2537         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
2538         SelectedIndex to -1. Fixes bug #78121.
2539
2540 2006-04-17  Jackson Harper  <jackson@ximian.com>
2541
2542         * Binding.cs: Handle null values for Current and BindingContext.
2543         This occurs when binding is a little delayed.
2544         * CurrencyManager.cs: return null for Current when there are no
2545         items in the list.
2546         - Hookup to the listchanged event on the DataView and update
2547         bindings when the list is changed.  This fixes late binding of
2548         controls.
2549
2550 2006-04-17  Jackson Harper  <jackson@ximian.com>
2551
2552         * X11Dnd.cs:
2553         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
2554         Ringenbach.
2555
2556 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
2557
2558         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
2559           place
2560         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
2561           with the correct ButtonState
2562
2563 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
2564
2565         * XplatUIX11.cs: Improved distinguishing between window types to
2566           tell the WM a type closer to what the app wants (Fixes #78107)
2567
2568 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
2569
2570         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
2571           GrabHandle
2572
2573 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
2574
2575         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
2576           drawing code to reflect the size grip changes
2577
2578 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2579
2580         * ImageListStreamer.cs: fix handling of the mask that follows the main
2581         bitmap when deserializing and serialize it properly. The generated mask
2582         should better be a 1bpp image, but I'll do that later.
2583
2584 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
2585
2586         * FileDialog.cs: Show something in the DirComboBox on *nix if the
2587           path doesn't fit into some of our Current.Places
2588
2589 2006-04-13  Jackson Harper  <jackson@ximian.com>
2590
2591         * ComboBox.cs: Use borders instead of drawing our own decorations,
2592         try to obey correct rules for heights.
2593         * Theme.cs:
2594         * ThemeNice.cs:
2595         * ThemeClearLooks.cs:
2596         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
2597         this is now handled by borders.
2598         - Remove unused DrawListBoxDecorationSize method.
2599         
2600 2006-04-13  Mike Kestner  <mkestner@novell.com>
2601
2602         * MenuAPI.cs: null guarding for the disbled click check fixes crash
2603         reported by Alex.
2604
2605 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
2606
2607         * ThemeWin32Classic.cs: 
2608           - Fixed CPDrawStringDisabled
2609           - Corrected drawing of disabled menu items
2610           - Fixed drawing of disabled radio buttons (bug #78095)
2611           - Draw check in a disabled CheckBox with color ControlDark 
2612
2613 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
2614
2615         * Form.cs: Use the provided width when calculating the menu size;
2616           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
2617           and ClientSize.Width won't be updated yet
2618         * Application.cs: Use Visible instead of Show() to make form visible,
2619           this way we create the handle later and menusize is considered
2620
2621 2006-04-12  Mike Kestner  <mkestner@novell.com>
2622
2623         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
2624         reporting.
2625
2626 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
2627
2628         * TextBox.cs: Implemented context menu
2629
2630 2006-04-12  Mike Kestner  <mkestner@novell.com>
2631
2632         * ListView.cs: implement box selection. fixes #77838.
2633         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
2634
2635 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
2636
2637         * XplatUIX11.cs: Added setting of window type when transient window
2638           is created (metacity would move it otherwise)
2639         * X11Structs.cs: Added WINDOW_TYPE atoms
2640         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
2641           background (the control is Opaque but still wants transparent
2642           backgrounds)
2643
2644 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
2645
2646         * Control.cs: Added OnPaintBackgroundInternal to allow controls
2647           that set Opaque but don't mean it (like all ButtonBase-derived
2648           controls) to still draw their background
2649         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
2650           the background
2651
2652 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
2653
2654         * Control.cs (PaintControlBackground): Set the graphics object
2655           on our PaintEvent to null to prevent it from being disposed
2656           when the PaintEvent gets disposed
2657
2658 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
2659
2660         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
2661         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
2662
2663 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
2664
2665         * Control.cs: 
2666           - Added transparency check to BackColor property. Transparent
2667             backgrounds are only allowed if the control styles permit it
2668           - Added recursive painting of parent control background and
2669             foreground if a control with a transparent backcolor is drawn
2670             (Thanks to Tim Ringenback for providing his 'hack' as a base
2671              for this patch) Fixes #77985 and #78026.
2672           - Added Opaque style check before calling OnPaintBackground, no
2673             need to draw the background if the control is opaque
2674           - Removed ControlAccessibleObject owner variable (inherited from
2675             base, no need to define again)
2676           - Added some documentation links explaining the drawing events
2677             and styles
2678
2679 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
2680
2681         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
2682           that the affected control is the located at the left border of our
2683           parent (Fixes #77936)
2684
2685 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
2686
2687         * TextBoxBase.cs: When rendering disabled or readonly controls,
2688           draw the background with 'Control' instead of 'Window' color as
2689           long as the user hasn't specifically set a color
2690
2691 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
2692
2693         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
2694           since that won't be updated if the user types text (only if it's
2695           programatically set)
2696
2697 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
2698
2699         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
2700           layout changes do to app-triggered resizes will have the proper
2701           display rectangle for layout
2702
2703 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
2704
2705         * ThemeWin32Classic.cs:
2706           - Make use of the SystemBrushes and SystemPens wherever possible
2707           - Corrected some highlight colors
2708           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
2709             drawing
2710         * Theme.cs: Added Empty field to CPColor struct
2711
2712 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
2713
2714         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
2715           is displayed when calculating the display rectangle. Thanks to Mike
2716           for teaching me the err of my ways.
2717
2718 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
2719
2720         * ScrollableControl.cs:
2721           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
2722             (instead of 0,0) and we now return the real width/height instead of
2723             just the clientrectangle, adjusted for padding. The rectangle is
2724             now cached and created by the new CalculateDisplayRectangle method.
2725           - Created new CalculateDisplayRectange method, which basically does
2726             what get_DisplayRectangle() did originally, but now using the 
2727             right edge instead of DisplayRectangle to determine the size of
2728             our scrollbars
2729           - get_Canvas(): Fixed it to properly calculate canvas for 
2730             right/bottom controls which seem to be placed to the right/bottom
2731             of any controls that have a fixed location
2732           - Removed TODO that's taken care of
2733           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
2734             and SetDisplayRectLocation according to new MSDN2 docs
2735           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
2736             event when that is called, this is added for compatibility
2737           - ScrollControlIntoView(): Implemented.
2738           - Switched scrollbars to be implicit, they shouldn't be selectable
2739         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
2740           call it when the active control is set/changed
2741         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
2742         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
2743           implicit_control variable (used for native Win32 message generation)
2744         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
2745           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
2746         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
2747         * XplatUIStructs.cs: Added ScrollBarCommands enum
2748
2749 2006-04-10  Jackson Harper  <jackson@ximian.com>
2750
2751         * ButtonBase.cs:
2752         * CheckedListBox.cs:
2753         * ComboBox.cs:
2754         * DataGrid.cs:
2755         * DataGridView.cs:
2756         * Form.cs:
2757         * GroupBox.cs:
2758         * ListBox.cs:
2759         * PrintPreviewControl.cs:
2760         * ProgressBar.cs:
2761         * PropertyGrid.cs:
2762         * Splitter.cs:
2763         * StatusBar.cs:
2764         * TrackBar.cs:
2765         * UpDownBase.cs: Fixup base event overrides.
2766         
2767 2006-04-06  Mike Kestner  <mkestner@novell.com>
2768
2769         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
2770         all user-initiated value changes to min <= value <= max-thumbsz+1.
2771         (set_Value): check for vert/horiz when calculating new thumb position.
2772         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
2773         like MS does.
2774         (OnMouseMoveSB): refactor the thumb dragging code and refine
2775         invalidation logic to reduce flicker.
2776         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
2777         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
2778         (UpdateThumbPosition): small code readability cleanup
2779
2780 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
2781
2782         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
2783           different
2784
2785 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
2786
2787         * ThemeNice.cs: Use a better graphics effect when a button is pressed
2788
2789 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
2790
2791         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
2792         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
2793           This dramatically reduces the number of Pen.Dispose calls. 
2794           Where possible call ResPool methods only once instead of calling it
2795           over and over again (for example for the same color).
2796
2797 2006-04-06  Mike Kestner  <mkestner@novell.com>
2798
2799         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
2800         Also remove an unused private field on the collection. Fixes #77972.
2801
2802 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
2803
2804         * ThemeNice.cs: Added ToolBar drawing code
2805
2806 2006-04-06  Mike Kestner  <mkestner@novell.com>
2807
2808         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
2809         I'm assuming that means we need to look up the toplevel for the
2810         provided control. Fixes the crash trace in #77911 but exposes another
2811         crash in some strange reflection usage in NDocGui.
2812
2813 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
2814
2815         * ThemeNice.cs: Gave it a little silver touch and added Images
2816           method
2817         * FontDialog.cs: FontDialog is not resizable
2818         * FileDialg.cs: Added SizeGripStyle.Show
2819
2820 2006-04-05  Jackson Harper  <jackson@ximian.com>
2821
2822         * KeyboardLayouts.cs: Remove warning.
2823
2824 2006-04-05  Jackson Harper  <jackson@ximian.com>
2825
2826         * Control.cs: Enable OnPaintInternal so we can use it for drawing
2827         all of our controls instead of Paint +=.
2828         * ListBox.cs:
2829         * ListView.cs:
2830         * MenuAPI.cs:
2831         * MessageBox.cs:
2832         * NotifyIcon.cs:
2833         * ProgressBar.cs:
2834         * ScrollBar.cs:
2835         * Splitter.cs:
2836         * StatusBar.cs:
2837         * TabControl.cs:
2838         * TextBoxBase.cs:
2839         * ToolBar.cs:
2840         * TrackBar.cs:
2841         * UpDownBase.cs:
2842         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
2843         use OnPaintInternal. Remove Width/Height and Visible checks in
2844         paint handler, this is done at a higher level now.
2845         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
2846         * PaintEventArgs.cs: Add a handled flag so controls that don't
2847         want anymore painting after OnPaintInternal can make sure OnPaint
2848         isn't called.
2849
2850 2006-04-05  Mike Kestner  <mkestner@novell.com>
2851
2852         * Form.cs: fix the menu WndProc hacks to respect the native enabled
2853         state of the form, so that we don't process events when Modal dialogs
2854         are up. Fixes #77922.
2855
2856 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
2857
2858         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
2859           checking is done.
2860
2861 2006-04-05  Mike Kestner  <mkestner@novell.com>
2862
2863         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
2864
2865 2006-04-05  Mike Kestner  <mkestner@novell.com>
2866
2867         * ListView.cs (HeaderMouseMove): null guarding for the over column
2868         when setting up the drag_to_index.  Fixes #78015.
2869
2870 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
2871
2872         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
2873           in the taskbar. Transient windows seem to accomplish that.
2874
2875 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
2876
2877         * Form.cs:
2878           - Re-enabled CreateParams.X/Y code for FormStartPosition
2879           - Added code for manual placement when creating the Control
2880           - Incomplete patch to treat MDI forms differently when
2881             setting the ClientSizeCore. (Still need to figure out handling
2882             x/y coords there)
2883         * XplatUIX11.cs:
2884           - When we're explicitly setting the X/Y position of a non-Child
2885             window, let the WM know. Metacity really wants this.
2886
2887 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
2888
2889         * ThemeNice.cs: Added CPDrawButton
2890
2891 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
2892
2893         * ThemeNice.cs: Changed the color for focused buttons and activated
2894           the arrows for small scroll buttons.
2895
2896 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
2897
2898         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
2899           anymore. Changed some method modifiers to protected (virtual)
2900         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
2901           changes
2902         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
2903           Updated drawing of menus, buttons and progressbars; added
2904           CPDrawBorder3D 
2905
2906 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2907
2908         * ImageListStreamer.cs: implemented serialization/deserialization
2909         of the images.
2910
2911 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
2912
2913         * ThemeWin32Classic.cs:
2914           - Removed all the DrawFrameControl stuff; CPDrawButton,
2915             CPDrawCheckBox and CPDrawRadioButton are now handled directly
2916             inside the methods
2917           - Updated and corrected the drawing code of CPDrawButton,
2918             CPDrawCheckBox and CPDrawRadioButton to better match ms
2919           - Updated theme checkbox and radiobutton code to use the CP*
2920             methods
2921
2922 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
2923
2924         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
2925           bug is fixed
2926
2927 2006-03-31  Jackson Harper  <jackson@ximian.com>
2928
2929         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
2930         sometimes.
2931         * UpDownBase.cs: Don't CreateGraphics manually, use a
2932         Refresh. Ideally we would invalidate the correct areas here.
2933
2934 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
2935
2936         * XplatUIX11.cs: 
2937           - We now track the mapping state of windows. If a window (or 
2938             one of it's parents) is not mapped we no longer permit
2939             WM_PAINT messages to be generated since we'd otherwise get 
2940             lots of BadMatch X errors. Jackson did all the work figuring
2941             out the problem.
2942           - Destroying the caret if the window it's contained in is 
2943             destroyed. Can't use regular DestroyCaret method since it
2944             might fall into a drawing function (trying to remove the
2945             caret) and with that generate new BadMatch errors. Again,
2946             Jackson tracked this down.
2947           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
2948             make sure we send the messages to all windows. (The old code
2949             would send the WM_DESTROY to the window, and then all child
2950             windows would be 'gone' because the WM_DESTROY handle lookup
2951             would no longer find the destroyed window)
2952         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
2953         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
2954
2955 2006-03-31  Jackson Harper  <jackson@ximian.com>
2956
2957         * ScrollableControl.cs: Dont recalc if we are not visible.
2958
2959 2006-03-31  Mike Kestner  <mkestner@novell.com>
2960
2961         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
2962         the visibility branch.
2963
2964 2006-03-31  Jackson Harper  <jackson@ximian.com>
2965
2966         * ScrollBar.cs: Cap values when incrementing/decrementing.
2967
2968 2006-03-31  Mike Kestner  <mkestner@novell.com>
2969
2970         * MenuAPI.cs: setup menu.tracker for popup/context menus.
2971         * ToolTip.cs: guard against timer expirations with no active control.
2972         Not sure why it happened.
2973
2974 2006-03-31  Mike Kestner  <mkestner@novell.com>
2975
2976         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
2977         text.
2978         * ToolTip.cs: Position the tooltip based on where the cursor is at
2979         popup time, not at MouseEnter time.  Add a Down state so that we don't
2980         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
2981         positioning offset. Lookup DisplaySize at positioning time, since it
2982         can theoretically change during invocation.
2983         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
2984         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
2985
2986 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
2987
2988         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
2989           Fixes behaviour when the Text property of the box is String.Empty
2990
2991 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
2992
2993         * XplatUIX11.cs: Only send mouseleave for our client windows, not
2994           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
2995           a window)
2996
2997 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
2998
2999         * FileDialog.cs: Visual enhancement for the popup buttons in 
3000           PopupButtonPanel
3001
3002 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
3003
3004         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
3005           code
3006
3007 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
3008
3009         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
3010           highlighted menu items to match ms
3011
3012 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
3013
3014         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
3015
3016 2006-03-30  Mike Kestner  <mkestner@novell.com>
3017
3018         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
3019         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
3020         go active to account for HotLight to Selected transition.
3021         * MenuItem.cs: add internal Selected prop. Fill out the Status
3022         property by calculating it from item info. Add HotLight,
3023         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
3024
3025 2006-03-30  Mike Kestner  <mkestner@novell.com>
3026
3027         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
3028
3029 2006-03-29  Jackson Harper  <jackson@ximian.com>
3030
3031         * Form.cs: Implement TODO.
3032
3033 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
3034
3035         * PrintPreviewDialog.cs: Implemented missing methods and events; still
3036           missing proper dialog setup in the constructor
3037
3038 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
3039
3040         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
3041         * Control.cs:
3042           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
3043           - Fixed ResetBindings and removed TODO
3044           - Added check for cross-thread calls to get_Handle()
3045           - Added Marshaller attribute for set_Font to satisfy class status
3046         * FontDialog.cs: Removed TODOs that seemed implemented
3047         * UpDownBase.cs: Removed unneeded TODO and Fixme
3048         * MessageBox.cs: Implemented support for Default button and removed TODO
3049         * FileDialog.cs: Removed obsolete TODO
3050         * DomainUpDown.cs: Removed obsolete TODO
3051         * ButtonBase.cs: Removed obsolete TODO
3052         * XplatUIWin32.cs: Removed obsolete TODO
3053         * Form.cs:
3054           - Removed obsolete TODO
3055           - Calling CheckAcceptButton when the acceptbutton is changed to allow
3056             internal status updates
3057           - Making sure the active control is selected when the control is created
3058         * CurrencyManager.cs: Removed obsolete TODO
3059
3060 2006-03-29  Mike Kestner  <mkestner@novell.com>
3061
3062         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
3063         of PrintPreviewDialog and RichTextBox.
3064
3065 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
3066
3067         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
3068           DarkDark, Light and LightLight colors for a specific color
3069         * ThemeWin32Classic.cs:
3070           - Use Button drawing code to draw RadioButtons and CheckBoxes with
3071             Appearance = Button 
3072           - Make use of the new ResPool helper CPColor
3073           - Draw ProgressBar and StatusBar with correct 3D borders
3074
3075 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
3076
3077         * ColorDialog.cs: Return selected color. Fixes bug #77940.
3078
3079 2006-03-28  Mike Kestner  <mkestner@novell.com>
3080
3081         * ListView.cs: fix Icon layout to plan for scrollbar widths when
3082         calculating col/row counts.
3083
3084 2006-03-28  Mike Kestner  <mkestner@novell.com>
3085
3086         * ColumnHeader.cs:
3087         * ListView.cs:
3088         * ListViewItem.cs:
3089         * Menu.cs: 
3090         switch to explicit interface method implementation for some methods
3091         corcompare identifies as inconsistent with MS.
3092
3093 2006-03-28  Mike Kestner  <mkestner@novell.com>
3094
3095         * MainMenu.cs: 
3096         * Menu.cs:
3097         add a few missing methods from the class status output.
3098
3099 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
3100
3101         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
3102           correct.
3103
3104 2006-03-28  Mike Kestner  <mkestner@novell.com>
3105
3106         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
3107
3108 2006-03-27  Mike Kestner  <mkestner@novell.com>
3109
3110         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
3111         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
3112
3113 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
3114
3115         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
3116
3117 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
3118
3119         * ThemeWin32Classic.cs:
3120           - GroupBox: Inserted a little gap between the text and the lines
3121             on the right side
3122           - Made the code in CPDrawBorder3D more readable
3123           - Corrected the drawing location of the up and down arrows in 
3124             CPDrawScrollButton
3125
3126 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
3127
3128         * ControlPaint.cs: Corrected line widths in DrawBorder for
3129           ButtonBorderStyle Inset and Outset
3130
3131 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
3132
3133         * ThemeWin32Classic.cs:
3134           - Rewrote the totally broken CPDrawBorder3D method. That was
3135             one of the main problems for the terrific ThemeWin32Classic
3136             look
3137           - Updated and corrected Button drawing
3138           - Correct the dimensions of the SizeGrip to match ms ones
3139           - Removed a small drawing glitch in DrawComboBoxEditDecorations
3140         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
3141           Border3DStyle.Sunken to match ms.
3142
3143 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
3144
3145         * ThemeWin32Classic.cs: First small part of the "de-uglify
3146           ThemeWin32Classic" effort, SizeGrip
3147
3148 2006-03-24  Jackson Harper  <jackson@ximian.com>
3149
3150         * XplatUIX11.cs: Give a max idle time of one second, this matches
3151         MS and forces an Idle event every second when there are no other
3152         events in the queue.
3153
3154 2006-03-24  Mike Kestner  <mkestner@novell.com>
3155
3156         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
3157         * ListView.Item.cs: fix layout issues with null image lists and images
3158         smaller than checkbox size.
3159         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
3160         mode like MS does.  It's weird, but consistent.  ;-)
3161         Fixes #77890.
3162
3163 2006-03-24  Mike Kestner  <mkestner@novell.com>
3164
3165         * ListView.cs: Scroll wheel support for the item control.  Fixes
3166         #77839.
3167
3168 2006-03-23  Jackson Harper  <jackson@ximian.com>
3169
3170         * ScrollableControl.cs: Special case negative sized areas, not
3171         zero.
3172         * MonthCalendar.cs: Save the rect of the clicked date so we can
3173         use it for invalidation.
3174         - Try to cut down on the number of invalidates
3175         - Invalidate the rect the mouse is over and was over when moving
3176         the mouse, so we get the focus box following the cursor.
3177
3178 2006-03-23  Mike Kestner  <mkestner@novell.com>
3179
3180         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
3181         focus rectangle drawing. Fixes #77835.
3182
3183 2006-03-23  Mike Kestner  <mkestner@novell.com>
3184
3185         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
3186         the if and else if and reverting back to the original == check on the
3187         None conditional.
3188
3189 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
3190
3191         * FontDialog.cs: Update the example panel if the selected index of
3192           the fontListBox changes.
3193
3194 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
3195
3196         * FileDialog.cs: Make FileDialog remember which directory it was in
3197           last in the same execution.
3198
3199 2006-03-22  Mike Kestner  <mkestner@novell.com>
3200
3201         * FileDialog.cs: make the DropDownMenu on the toolbar display
3202         RadioChecks since they are mutually exclusive and that's what MS does.
3203
3204 2006-03-22  Mike Kestner  <mkestner@novell.com>
3205
3206         * Theme.cs: add Color param to CPDrawMenuGlyph.
3207         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
3208         checks and radio marks and arrows are visible on highlighted items.
3209         * ControlPaint.cs: update to use new Theme signature.
3210
3211 2006-03-22  Mike Kestner  <mkestner@novell.com>
3212
3213         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
3214         is active. Fixes #77870.
3215
3216 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
3217
3218         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
3219           to be focused/selected after startup
3220
3221 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
3222
3223         * ColorDialog.cs: 
3224           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
3225             CustomColors and ShowHelp properties
3226           - Some internal rewrites to get better results when using the
3227             ColorMatrix
3228
3229 2006-03-22  Mike Kestner  <mkestner@novell.com>
3230
3231         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
3232         HoverSelection.  Fixes #77836.
3233
3234 2006-03-22  Mike Kestner  <mkestner@novell.com>
3235
3236         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
3237         ToggleButtons.  (De)Sensitize the Back button around a stack count of
3238         1, not 0.  Update ButtonSize based on a pixel count of the win32
3239         control.  Adjust the toolbar size/location for new button size.
3240
3241 2006-03-22  Jackson Harper  <jackson@ximian.com>
3242
3243         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
3244         true.
3245         * ScrollBar.cs: When doing increments and decrements we need to
3246         set the Value property so that ValueChanged gets raised. A
3247         possible optimization here would be to make an internal SetValue
3248         that doesn't invalidate immediately.
3249         * ToolTip.cs: Tooltips get added to their container (when
3250         supplied) so they get disposed when the container is disposed.
3251         - Don't create tooltips for String.Empty. This prevents all these
3252         little 2-3 pixel windows from showing up when running nunit-gui
3253         and driving me mad.
3254         * Form.cs: Don't set topmost when setting the owner if the handles
3255         haven't been created yet.  The topmost set will happen when the
3256         handles are created.
3257
3258 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
3259
3260         * XplatUIX11.cs:
3261           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
3262           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
3263             visible (to allow them to recalculate their sizes)
3264
3265 2006-03-21  Mike Kestner  <mkestner@novell.com>
3266
3267         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
3268         methods. Removed a ton of redundant code.  Still not really happy with
3269         the border rendering, but I think that's mainly because of the
3270         ControlDarkDark being black instead of a dark grey. Depending on how 
3271         close we want to be, we might want to revisit those color choices.
3272         Among the new features added during the refactor were DropDownArrow
3273         pressed rendering, Disabled image rendering.  Proper flat appearance
3274         boundary rendering.  Removed the Divider and Wrapping dividers since I
3275         can't figure out any combination of themes and conditions to make the
3276         MS control draw a horizontal line on a toolbar despite what the
3277         Divider property docs indicate.
3278         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
3279         conditions and incorrect layout.  Updated to coding standard.
3280         * ToolBarButton.cs: refactored layout and positioning code from
3281         ToolBar to here.  Invalidate wherever possible instead of forcing
3282         redraws of the whole toolbar. 
3283         (Known remaining issues: explicit ButtonSize smaller than provided
3284         images.)
3285
3286 2006-03-21  Mike Kestner  <mkestner@novell.com>
3287
3288         * ContextMenu.cs (Show): use the position parameter instead of just
3289         showing at the MousePosition.
3290
3291 2006-03-21  Jackson Harper  <jackson@ximian.com>
3292
3293         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
3294         control handle this.
3295         * TreeNodeCollection.cs: If we are clearing the root node we need
3296         to reset top_node so calcs can still happen.
3297         * ThemeWin32Classic.cs: This is a Flags so we need to check
3298         properly.
3299         
3300 2006-03-21  Jackson Harper  <jackson@ximian.com>
3301
3302         * DataGrid.cs: Create columns when the binding context has been
3303         changed.
3304         * X11Structs.cs: Keysyms are uints.
3305         - Add size to fix build.
3306
3307 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
3308
3309         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
3310           XplatUIOSX.cs: 
3311           - Added ResetMouseHover method to allow controls to retrigger
3312             hovering if they need it more than once
3313           - Implemented MouseHoverTime and MouseHoverSize properties
3314         * Timer.cs: Start() must reset the interval
3315         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
3316           properties
3317
3318 2006-03-21  Jackson Harper  <jackson@ximian.com>
3319
3320         * X11Keyboard.cs: improved layout detection. Move the nonchar
3321         tables into this file.
3322         * KeyboardLayouts.cs: Move the tables into resource files.
3323
3324 2006-03-21  Mike Kestner  <mkestner@novell.com>
3325
3326         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
3327
3328 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
3329
3330         * Mime.cs: Various speed optimizations. Looking up mime types
3331           is now 2 times faster than before
3332
3333 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
3334
3335         * CreateParams.cs: Added internal menu field
3336         * Control.cs: 
3337           - Switched call order for UpdateBounds; now we always call
3338             the one that also takes ClientSize, and we're calculating the 
3339             client size via driver method in the others. The previous
3340             method of tracking client size by difference wasn't working
3341             for forms where even the starting client size wouldn't match
3342             the overall form size (due to borders) (Part of fix for #77729)
3343           - CreateParams(): Do not use parent.Handle unless the handle is
3344             already created. Causes havoc with Nexxia and throws off our
3345             creation of controls
3346         * XplatUIX11.cs:
3347           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
3348           - Switched handling of ConfigureNotify over to new PerformNCCalc 
3349             method (consolidates code)
3350           - Changed RequestNCRecalc to use new PerformNCCalc method
3351           - Added calls to RequestNCRecalc when menus and borders are changed
3352             to allow app to set NC size. (Part of fix for #77729) This matches
3353             when MS send a WM_NCRECALC on Win32 windows.
3354           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
3355             (Part of fix for #77729). This matches what MS does, they also
3356             send that message when the form is made visible.
3357           - XException.GetMessage: Improved usability of X errors by including
3358             a translation of the window into Hwnd and Control class
3359           - Improved debug info for window creation, reparenting and destruction
3360           - Created helper method WindowIsMapped() [Currently not used]
3361         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
3362         * Form.cs:
3363           - CreateParams: Now setting our menu on the new internal menu field
3364           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
3365             avoid calculating the same property twice
3366         * Hwnd.cs:
3367           - Improved usability of ToString() for debugging purposes
3368           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
3369             determine the height of the menu, instead of just the font. This
3370             required to also create a graphics context and to keep a bmp 
3371             around (for performance reasons)
3372
3373 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
3374
3375         * MenuAPI.cs: Added OnMouseUp method
3376         * Form.cs:
3377           - Now remembering the requested client size, avoids size errors
3378           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
3379             instead of base if the menu is active. This is required due to
3380             control now capturing and releasing on down/up and it would
3381             prematurely release our menu capture
3382
3383 2006-03-17  Jackson Harper  <jackson@ximian.com>
3384
3385         * KeyboardLayouts.cs: Add the czech layouts.
3386
3387 2006-03-16  Jackson Harper  <jackson@ximian.com>
3388
3389         * Control.cs: Use the viewport space when sizing not the controls
3390         client size, so things like ScrollableControl that effect the
3391         viewport size (when scrollbars are added) are computed correctly.
3392         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
3393         of ManagerEntrys.
3394         - Handle creating BindingManagers for null data sources.
3395         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
3396         source, otherwise when rows are added they are added to the 'fake'
3397         datasource and we will crash when trying to set the position in
3398         those rows.
3399         - Use Implicit scrollbars on the datagrid so they arent
3400         selectable.
3401         
3402 2006-03-16  Jackson Harper  <jackson@ximian.com>
3403
3404         * Binding.cs:
3405         * InternalWindowManager.cs:
3406         * MdiWindowManager.cs:
3407         * X11Keyboard.cs: I really want Mike to love me again (fix
3408         compiler warnings).
3409
3410 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
3411
3412         * DataGrid.cs:
3413           - OnMouseDown: Switch to editing mode when clicking on the cell
3414                          even if we're clicking on the cell that's currently 
3415                          selected
3416           - ProcessGridKey: Left/Right now wrap like MS.Net does
3417           - ProcessGridKey: Tab now knows to add a new row when tab is
3418                             pressed in the cell of the last column of the 
3419                             last row
3420           - ProcessGridKey: Enter now adds another row  if pressed in the last
3421                             row and selectes the new row, same column cell
3422           - ProcessGridKey: Home/End navigate columns, not rows, like 
3423                             originally implemented
3424           - Broke ProcessKeyPreview code out into an extra Internal method
3425             so it can be called from the edit code
3426         * DataGridTextBox.cs (ProcessKeyMessage):
3427           - Switched to accept Tab keypresses
3428           - Added F2 handling to allow jumping to the end of the edited cell
3429           - Added logic to allow moving caret left/right inside edited cell
3430             and making the edited cell jump when the caret hits cell borders
3431           - Tab and Enter are now passed to the datagrid after being handled
3432         * TextBoxBase.cs:
3433           - Removed capture code now that Control handles it
3434           - set_SelectionStart now ensures caret is visible
3435
3436 2006-03-16  Jackson Harper  <jackson@ximian.com>
3437
3438         * TrackBar.cs: Debackwards the increment/decrement for handling
3439         mouse clicks on the bar with vertical trackbars.
3440         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
3441         bottom to match MS.
3442
3443 2006-03-16  Mike Kestner  <mkestner@novell.com>
3444
3445         * ListView.cs: make shift/ctrl keyboard and mouse selection 
3446         consistent with the MS control. Fix a bug in
3447         SelectedListViewItemCollection.Clear that was pissing me off for the
3448         better part of a day because the collection was being altered
3449         underneath us as we walked the list.
3450
3451 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
3452
3453         * Control.cs: Not sure how we could miss this so long, but it seems
3454           that MS.Net has Capture set all the way from before calling 
3455           OnMouseDown through sending the mouse events until after
3456           OnMouseUp. This will fix DataGrid's selection being set to end
3457           at the location of the MouseUp.
3458
3459 2006-03-15  Jackson Harper  <jackson@ximian.com>
3460
3461         * BindingContext.cs: Check the binding after its added so that it
3462           can initialize the binding managers and hookup to events.
3463         * Binding.cs: Data members seem to sometimes include rows/cols in
3464           the format Row.Column we now take this into account.
3465           - Hookup to the position changed event so we can update the
3466           control when the position has changed in the data set.
3467         * CurrencyManager.cs: Take into account the row/col naming
3468           convention when creating dataset tables.
3469         * BindingContext.cs: Using a newer better way of storing
3470           datasource/datamember pairs.  Hopefully this better matches MS for
3471           looking up binding managers.
3472
3473
3474 2006-03-15  Jackson Harper  <jackson@ximian.com>
3475
3476         * BindingContext.cs: The currency manager needs the data member
3477         name, if the member is a data set we use the name to find the
3478         correct table.
3479         * CurrencyManager.cs: When creating the list prefer an IList over
3480         an IListSource.
3481         - Attempt to create a DataTable from a DataSet (TODO: might need
3482         some better error checking here, although MS doesn't seem to have much)
3483         - If we have a DataTable create a view and use it as our list.
3484
3485 2006-03-15  Mike Kestner  <mkestner@novell.com>
3486
3487         * ListView.cs: keep a matrix of the icon mode layout to facilitate
3488         keyboard navigation. Support Up/Down/Left/Right selection correctly
3489         for all 4 View modes.
3490         * ListViewItem.cs: add internal row/col fields for icon layouts.
3491
3492 2006-03-15  Jackson Harper  <jackson@ximian.com>
3493
3494         * TabControl.cs: Redraw the tabs when we resize so their newly
3495         calculated sizes are drawn on screen.
3496         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
3497         composite characters.
3498         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
3499         - filter events so that composite characters can be created
3500         patches by peter
3501         * X11Structs.cs: Add XIMProperties enum.
3502
3503 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
3504
3505         * Control.cs (BringToFront, SendToBack): Don't use window or handle
3506           unless it's created
3507
3508 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
3509
3510         * Control.cs (PerformLayout): We don't need to consider visiblity
3511           for anchoring, only for docking. This fixes 'whacky' alignment
3512           in listbox and other controls that use implicit scrollbars after
3513           the previous PerformLayout patch
3514         * ListBox.cs: Switched to use implicit scrollbars
3515           
3516 2006-03-14  Mike Kestner  <mkestner@novell.com>
3517
3518         * ToolBar.cs: 
3519         * VScrollBar.cs:
3520         - chain up the "new event" overrides to base and use
3521         OnEvent to raise them.  Part of fix for bug #76509.
3522
3523 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
3524
3525         * FileDialog.cs: Do not select an item in the parent directory
3526           on backspace
3527
3528 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
3529
3530         * Control.cs (PerformLayout): It would seem that we considered
3531           invisible windows for our layout. Not quite the right thing
3532           to do. Now we don't any longer, thereby fixing bug #76889.
3533
3534 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
3535
3536         * Control.cs (CanFocus): I goofed. A control can have focus 
3537           even though it's not selectable. Made it match MS docs.
3538
3539 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
3540
3541         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
3542           center by default (fixes #76895)
3543         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
3544           all uses of Border3DSides.All with the explicit ORd together
3545           Left|Right|Top|Bottom because I assume that nobody was aware 
3546           that All also implies a center fill. Most places I checked had
3547           a fill right above.
3548         * ProgressBarStyle.cs: Added
3549
3550 2006-03-13  Mike Kestner  <mkestner@novell.com>
3551
3552         * ListView.cs: fix breakage in drag shadow header positioning 
3553         from Peter's csc compilation fix.
3554
3555 2006-03-13  Mike Kestner  <mkestner@novell.com>
3556
3557         * ListView.cs: fix NRE produced by backspacing twice in a focused
3558         FileDialog.
3559
3560 2006-03-13  Mike Kestner  <mkestner@novell.com>
3561
3562         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
3563
3564 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
3565
3566         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
3567           be changed
3568         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
3569           the allowed size before making programmatic size changes
3570
3571 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
3572
3573         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
3574           set, metacity is broken and will still use the emty sizes in 
3575           the struct. (Fix for #77089)
3576
3577 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
3578
3579         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
3580           WindowExStyles and marked both enums as Flags
3581         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
3582           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
3583           to match WindowStyles split
3584         * XplatUIX11.cs:
3585           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
3586           - Updated to match WindowStyles split
3587         * XplatUIWin32.cs:
3588           - Fixed FosterParent creation, was using ExStyle on the Style field
3589             (This should help with Popup focus issues)
3590           - Updated to match WindowStyles split
3591
3592 2006-03-13  Jackson Harper  <jackson@ximian.com>
3593
3594         * MdiWindowManager.cs: Use the system menu height. Fixes some
3595         strange sizing issues.
3596
3597 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
3598
3599         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
3600         * TextBoxBase.cs:
3601           - Scroll to caret after inserting text (#77672)
3602           - Make scroll range one pixel higher, fixes off-by-one error (and
3603             makes underlines visible on the last line)
3604
3605 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
3606
3607         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
3608           the keyboard state from being stuck with keys in 'pressed' state when
3609           focus is switched away via keyboard
3610         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
3611           reset the keyboard if no X11 KeyUp events are expected to come
3612         * X11Structs.cs: Switched type of Visible to bool to match driver
3613
3614 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
3615
3616         * TextControl.cs:
3617           - Switched caret to be just 1 pixel wide, matches MS and looks less
3618             clunky
3619           - Moved caret display 1 pixel down from the top of the control
3620             to improve view
3621           - InsertCharAtCharet: Update the selection start if moving the caret
3622             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
3623           - No longer always creating the caret when the caret methods are
3624             called. Only the actual ShowCaret/HideCaret will do that now
3625           - Only setting caret visible if the owner control has focus
3626           - UpdateView: Added invalidation-shortcut logic for center and right 
3627             aligned text. Previously we'd update all according to the left
3628             logic which caused drawing errors. Also fixed height of invalidated
3629             areas, now properly invalidating the whole area (was off-by-one)
3630           - owner_HandleCreated: Always generate the document when the
3631             handle is created; this ensures that 
3632         * TextBoxBase.cs:
3633           - Fixed situation where caret would disappear under the right
3634             window border, also improved scrolling behaviour on left-
3635             aligned textboxes
3636           - Fixed right-aligned textboxes to have a border to the
3637             right instead of the caret being under the right border
3638         * XplatUIX11.cs:
3639           - Switched from 'nested' to simple visible/not visible tracking 
3640             for caret (part of fix for #77671)
3641           - No longer passing through translated FocusIn/FocusOut messages
3642             since we were notifying too often and the wrong windows. Instead
3643             we just notify our focussed window of receiving or loosing focus
3644         * XplatUIWin32.cs: Switched from 'nested' show/hide 
3645           counting for caret to simple visible yes/no behaviour (part of 
3646           fix for #77671)
3647
3648 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
3649
3650         * Mime.cs: Remove debug code...
3651
3652 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
3653
3654         * MimeGenerated.cs: Removed
3655         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
3656           and subclasses) from /usr/(local/)share/mime and
3657           $HOME/.local/share/mime.
3658
3659 2006-03-10  Jackson Harper  <jackson@ximian.com>
3660
3661         * MdiWindowManager.cs: Recalc the NC area when a window is
3662         maximized/restored so that the menu area is drawn on forms that
3663         don't have a menu.
3664
3665 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
3666
3667         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
3668           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
3669           us to force a WM_NCCALCRESIZE message being sent. This is needed
3670           for MDI maximizing.
3671
3672 2006-03-10  Jackson Harper  <jackson@ximian.com>
3673
3674         * Form.cs: We need to use the ActiveMenu when calculating menu
3675         height.
3676         - Fix nullref when the window manager hasn't been created yet.
3677         * Control.cs: Fix nullref when we try to bring a control to the
3678         front that has no parent.
3679         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
3680         height.
3681         - Add a dummy item to the maximized menu so it always has the
3682         correct height. Otherwise when there are no menus we don't get our
3683         icon and buttons.
3684         
3685
3686 2006-03-10  Jackson Harper  <jackson@ximian.com>
3687
3688         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
3689         stuff.
3690         * Form.cs: Make the window_state internal so the window managers
3691         can track it.
3692         - When an MDI child is maximized let its window manager create the
3693         main menu (so it can add its icon).
3694         - Notify the window managers of state changes
3695         - Let the window manager paint its buttons and handle button
3696         clicks on the menu when it is maximized.
3697         * InternalWindowManager.cs: Move the prev_bounds into the mdi
3698         window manager, since tool windows don't use it, only mdi windows.
3699         - Tell the main form that we don't want it to handle NCPAINT
3700         itself to avoid extra painting.
3701         - Handle clicks on a maximized windows menu.
3702         - Handle window state changes
3703         - Handle minimize/maximize clicks correctly by setting the window state.
3704         * MdiWindowManager.cs: Add an icon menu that (the menu you get
3705         when clicking on the forms icon).
3706         - New method to create a forms maximized menu. This is its normal
3707         menu + an icon.
3708         - Handle window state changes.
3709         - Handle sizing of maximized windows.  Maximized windows are just
3710         drawn bigger then the parent visible area. All controls are still
3711         there, they are just outside the visible area (this matches windows).
3712         * MdiClient.cs: No scrollbars when a child window is maximized.
3713         - Let the children windows figure out how big they should be when
3714         sizing maximized windows.
3715         - Implement a version of ArrangeIconicWindows somewhat similar to
3716         Windows version.  There are some little differences, but I don't
3717         think any app will rely on the layout of minimized mdi windows.
3718
3719 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
3720
3721         * Padding.cs: Several fixes to allow compiling with csc 2.0
3722
3723 2006-03-09  Jackson Harper  <jackson@ximian.com>
3724
3725         * Menu.cs:
3726         * MenuItem.cs: Cheap hack so we can add items to the list without
3727         the events being raised.  This allows adding mdi items during
3728         drawing. TODO: Should probably find a better time to add the items.
3729
3730 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
3731
3732         * ThemeWin32Classic.cs:
3733           - CheckBox_DrawText: Added logic to not wrap if not enough space
3734             is available (Fix for bug #77727)
3735           - RadioButton_DrawText: Added logic not to wrap if not enough
3736             space is available (Fix for bug #77727). Also removed some
3737             duplicate code, DrawString always drawing the regular text
3738             before hitting the if statement.
3739
3740 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
3741
3742         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
3743
3744 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
3745
3746         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
3747         * ContainerControl.cs: Partial implementation of some 2.0 scaling
3748           methods. Moved the new 2.0 properties into alphabetical order with
3749           other properties and added MonoTODO tags
3750
3751 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
3752
3753         * AutoScaleMode.cs: Added. Fix build.
3754
3755 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
3756
3757         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
3758           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
3759           and was requiring premature handle creation for calls from above
3760         * Form.cs, Control.cs: Removed handle arguments from calls to
3761           CalculateClientRect()
3762
3763 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
3764
3765         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
3766           drag_column.column_rect is MarshalByRef and can't be used that way
3767
3768 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
3769
3770         * AxHost.cs: Added deserialization constructor for 
3771           AxHost+State (fixes 77743)
3772
3773 2006-03-09  Mike Kestner  <mkestner@novell.com>
3774
3775         * ListView.cs: 
3776         - Added column drag reordering for details view.
3777         - fixed behavior when mouse is dragged off column and
3778         AllowColumnReorder is false.
3779         * ColumnHeader.cs: clone the format too in Clone.
3780         * Theme.cs: add DrawListViewHeaderDragDetails method.
3781         * ThemeWin32Classic.cs:
3782         - impl new method for drawing drag column shadows and targets.
3783         - support column offset for details mode in DrawListViewItem.
3784
3785 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
3786
3787         * TextControl.cs: Reset the char_count when the document is cleared
3788           (Fixes bug reported on mono-winforms mailing list)
3789
3790 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
3791
3792         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
3793           of calling base we simply process the key ourselves, since both
3794           DefWindowProc and the handled method would set m.Result. 
3795           (Fixes #77732)
3796
3797 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
3798
3799         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
3800           method also moves the window; instead implemented a copy of
3801           Control.ScaleCore (Part of fix for #77456)
3802         * TextBoxBase.cs: 
3803           - Created new CreateGraphicsInternal method to allow providing
3804             a graphics context when no handle is created without triggering
3805             handle creation. (Part of fix for #77456)
3806           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
3807         * TextControl.cs: 
3808           - Switched Constructor to require TextBoxBase instead of Control (to
3809             allow uncast access to CreateGraphicsInternal)
3810           - Safeguarded use of owner.Handle property. No longer accessing it
3811             unless the handle is already created.
3812           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
3813           - Now triggering a recalc when owning control becomes visible
3814         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
3815           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
3816           premature handle creation (Part of fix for #77456)
3817         * Control.cs:
3818           - We now only destroy our double-buffering buffers when the
3819             control is resized or disposed, but not when visibility
3820             changes. (The code even re-created them twice every time)
3821           - Now requiring a redraw of the buffer on visibility changes
3822             (fixes bug 77654 part 2)
3823           - Not passing OnParentVisibleChanged up unless the control
3824             is visible
3825           - CanFocus: Fixed to match MS documentation
3826           - Focus: Fixed to return actual focus state and to check if
3827             setting focus is legal before setting it
3828
3829 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
3830
3831         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
3832           when to draw focus rectangle by looking at parent focus and
3833           selected state instead. This fixes TabPages on Linux sometimes
3834           having none or multiple focus rectangles.
3835         * XplatUIX11.cs (SetFocus): 
3836           - Don't set the focus if the same window already has focus
3837           - Use SendMessage instead of PostMessage (like it's Win32
3838             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
3839             to match MS behaviour
3840         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
3841           are not selectable.
3842
3843 2006-03-07  Jackson Harper  <jackson@ximian.com>
3844
3845         * PictureBox.cs: Revert line I accidently committed last week.
3846
3847 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
3848
3849         * Control.cs: 
3850           - Added new IsRecreating and ParentIsRecreating properties to
3851             allow testing if RecreateHandle has been called on ourselves
3852             or one of our parents
3853           - WndProc(WM_DESTROY): If our control handle is being recreated
3854             we immediately need to create the handle when receiving the
3855             destroy, that way our child windows find a valid parent handle
3856             when they themselves are being recreated upon WM_DESTROY receipt
3857             (fix for bug #77654 part 1)
3858         * XplatUIX11.cs:
3859           - DestroyWindow: WM_DESTROY must be sent to our own window before
3860             notifying any child windows. MS documents that child windows
3861             are still valid when WM_DESTROY is received. (Control now relies on
3862             this behaviour)
3863           - Added some fine-grain debug options
3864
3865 2006-03-06  Jackson Harper  <jackson@ximian.com>
3866
3867         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
3868         box and base calculations off this.
3869         * MdiChildContext.cs:
3870         * MdiWindowManager.cs: Don't need to ensure scrollbars here
3871         anymore.
3872         
3873 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
3874
3875         * Splitter.cs: In situations where the affected control is added
3876           to the parent's control list after the splitter, we would not
3877           populate affected. Now we try populating it on mousedown, if
3878           it's not already set, and force it to be re-set whenever our
3879           parent changes.
3880
3881 2006-03-03  Matt Hargett  <matt@use.net>
3882
3883         * Control.cs: implement Control.Padding
3884         * Padding.cs: -Padding.All returns -1 when constructing with the
3885         implicit default ctor
3886         -Padding.ToString() matches MS.NET
3887         * ContainerControl.cs: implement
3888         ContainerControl.AutoScaleDimensions
3889         * ListControl.cs: implement ListControl.FormattingEnabled
3890         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
3891         * ButtonBase.cs:
3892         * TabPage.cs: Implement UseVisualStyleBackColor.
3893         * PictureBox.cs: Implement PictureBox.InitialImage.
3894
3895 2006-03-03  Mike Kestner  <mkestner@novell.com>
3896
3897         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
3898         event declarations to proxy to base event.
3899         * ListViewItem.cs: update to use ItemControl.
3900         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
3901         * ThemeWin32Classic.cs: update to new ListView theme API and fix
3902         column header label rendering for 0 width columns.
3903
3904 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
3905
3906         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
3907           that causes the control to be created. Fixes #77476.
3908
3909 2006-03-02  Jackson Harper  <jackson@ximian.com>
3910
3911         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
3912         expose_pending.
3913
3914 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
3915
3916         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
3917           passed in for the EventArgs (fixes #77690)
3918
3919 2006-03-01  Jackson Harper  <jackson@ximian.com>
3920
3921         * ScrollBar.cs: Refresh afterbeing resized.
3922
3923 2006-02-28  Mike Kestner  <mkestner@novell.com>
3924
3925         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
3926         Clean up a tracker compile warning.
3927         * MenuItem.cs: add internal PerformPopup method.
3928         [Fixes #77457]
3929
3930 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
3931
3932         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
3933           implicit expose) when the text is set to null
3934
3935 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
3936
3937         * RichTextBox.cs (FlushText): When newline is true, we always
3938           need to split the line, even if no text is on it and we may
3939           never eat newlines. (Fixes #77669)
3940
3941 2006-02-28  Mike Kestner  <mkestner@novell.com>
3942
3943         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
3944         and set Selected instead.
3945         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
3946         collections.
3947
3948 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
3949
3950         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
3951
3952 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
3953
3954         * FontDialog.cs:
3955           - Got rid of the panel. All controls are now directly added to
3956             the dialog form
3957           - It is now possible to set a font with the Font property
3958           - MinSize and MaxSize property do now what they should
3959           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
3960           - Searching and selecting a font with the font textbox works now,
3961             the same applies to the style and size textbox
3962           - Draw the correct 3D border in the example panel
3963           - Fixed a little mem leak (unused fonts didn't get disposed)
3964           - Many other internal updates/rewrites...
3965           - Fix typo
3966
3967 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
3968
3969         * TextControl.cs: 
3970           - InsertRTFFromStream: Added 'number of characters inserted' argument
3971           - set_SelectedRTF: Now using the number of characters to calculate
3972             the new location for the selection and cursor (x/y cannot be used
3973             due to potentially already wrapped text)
3974
3975 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
3976
3977         * TextControl.cs: Added property and implemented means to allow 
3978           disabling recalculation of a document (can be used to speed up
3979           multiple inserts and is needed to make RTF inserts predictable, see
3980           bug #77659)
3981         * RichTextBox.cs: Using the new NoRecalc property of Document to
3982           keep x/y insert locations predictable. Also makes it faster inserting
3983           large chunks of RTF
3984
3985 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
3986
3987         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
3988           it's easier for a child control to handle the other messages without
3989           having to duplicate the special functionality
3990         * TextBoxBase.cs
3991           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
3992             code to handle processing the key ourselves, in order to get 
3993             access to the result of KeyEventArgs.Handled. We now only call 
3994             ProcessKey if they key hasn't been handled already. Fixes #77526.
3995           - set_Text: If null or empty string is given, just clear the 
3996             document. Fixes part of #77526
3997
3998 2006-02-27  Jackson Harper  <jackson@ximian.com>
3999
4000         * SizeGrip.cs: Paint the background color before painting the grip
4001         so things look right.
4002         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
4003
4004 2006-02-27  Mike Kestner  <mkestner@novell.com>
4005
4006         * ListView.cs:
4007           - Restructure layout and invalidation model to remove a ton of
4008           flicker from the control and speed up performance in general.
4009           - Add manual column resize, flickers like crazy, but I already have
4010           some ideas on how I'll fix that. (#76822)
4011           - Merge the three Icon-based views into a single layout method.
4012           - Move item selection interaction logic from the item since 
4013           interaction with the collections is more appropriate to the view.
4014           - Deselection on non-item clicks.
4015         * ListViewItem.cs:
4016           - Encapsulate most of the layout. Add some internal props to trigger
4017           layout.  Move to a model where Items invalidate themselves instead
4018           of just invalidating the whole control every time something changes.
4019           - Invalidate on Text/Caption changes.
4020           - switch to an offset based layout model to avoid having to absolute
4021           position every element on item moves.
4022           - correct checkbox layout to conform to MS layout.
4023         * ThemeWin32Classic.cs:
4024           - refactor some column header drawing code.
4025           - fix string justification for column headers (#76821)
4026           - make SmallIcon labels top justified for compat with MS impl.
4027         * ThemeClearlooks.cs:
4028           - adjust to new ListViewItem internal checkbox bounds api.
4029
4030 2006-02-27  Jackson Harper  <jackson@ximian.com>
4031
4032         * Control.cs:  Change where implicit controls fall in the zorder.
4033         They are now on top of all children.
4034         - Synced AddImplicit code with Add
4035         - Removed unused enumerator.
4036         * SizeGrip.cs: Remove the TODO as its been TODONE.
4037
4038 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
4039
4040         * TextControl.cs(Insert): Combine the last lines unless the insertion
4041           string ends with \n\n, otherwise we leave one line too many (Fixes
4042           something I noticed with the testapp for #77526; the bug itself was
4043           already fixed in the previous checkin)
4044
4045 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
4046
4047         * RichTextBox.cs:
4048           - SelectionColor and SelectionFont methods no longer set absolute
4049             styles. Instead, the keep font or color respectively (This 
4050             resolves a long-standing FIXME in the code)
4051           - When flushing RTF text, the insert code now considers text trailing
4052             behind the insertion point (Fixes the bug where when replacing
4053             the selected text via SelectedRTF the remainder of the line behind 
4054             the selection would stay on the first insertion line)
4055         * TextBoxBase.cs:
4056           - AppendText now updates the selection points after inserting text
4057           - AppendText now ensures that the last tag (sometimes 0-length) of
4058             the document is used for the style information (Fixes part of 
4059             bug #77220)
4060         * TextControl.cs:
4061           - Created new FontDefiniton class to allow describing partial style
4062             changes
4063           - StreamLine() now takes a lines argument, to allow it to decide
4064             whether an encountered zero-length tag is the last in the document
4065             (which must be kept to not loose the font/color contained in it,
4066             for later appends)
4067           - Created Combine() and Split() methods for Marker structs, to 
4068             support marker updates due to reformatted documents (soft line
4069             wraps)
4070           - Implemented Document.CaretTag setter
4071           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
4072             of the last line (Not the cause, but also exposed by bug #77220)
4073           - Added LineTag argument to InsertString method, to allow callers
4074             to force a certain tag to be used (required to force use of the
4075             trailing zero-length tag of a document)
4076           - Now updating markers in Combine(), to avoid stale tag markers
4077           - Added some method descriptions to aid maintenance
4078           - Implemented new FormatText concept, allowing additive/subtractive
4079             formatting by only specifying the components that are to be 
4080             changed. This was needed for resolving the RTB.SelectedColor/
4081             RTB.SelectedFont fixmes
4082           - Added Break() support method to allow breaking up linetags (used
4083             for partial formatting)
4084           - Added GenerateTextFormat() method. It is used for partial 
4085             formatting and allows to generate a full font/color from given
4086             attributes and an existing tag.
4087
4088 2006-02-26  Jackson Harper  <jackson@ximian.com>
4089
4090         * XplatUIX11.cs:  Use the correct caption height.
4091         - Translate hittest coordinates to screen coords to match MS.
4092         * XplatUIWin32.cs: When we create MDI windows we need to reset
4093         some of the style flags, so we get a nice blank window, and can
4094         draw all the decorations ourselves.
4095         - Set a clipping rectangle on the non client paint event, the
4096         window manager drawing code needs one.
4097         * Form.cs: The window manager needs to know when the window state
4098         has been updated.
4099         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
4100         don't need to factor in border and title sizes in these
4101         methods. TODO: Remove the args and fix the call points.
4102         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
4103         properly.
4104         - Let the driver set the cursors.
4105         - Improve active window handling
4106         - Correct sizes for title bars and buttons.
4107         - Match MS drawing better
4108         * MdiWindowManager.cs: We don't need to handle border style
4109         updates specially anymore.
4110         - Check for scrollbars when windows are done moving
4111         - Handle Active properly.
4112         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
4113         correctly. I am spewing the exception though, so we don't hide the
4114         bugs.
4115         
4116 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
4117
4118         * DataGridViewRowPostPaintEventArgs.cs,
4119           DataGridViewCellPaintingEventArgs.cs,
4120           DataGridViewRowCollection.cs,
4121           DataGridViewRowPrePaintEventArgs.cs,
4122           DataGridViewCell.cs: Clear a few warnings and implement a few
4123           exceptions that should be thrown.
4124
4125 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
4126
4127         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
4128           'inheriting' our parent's (non-default) cursor. (Part of
4129            the fix for #77479)
4130
4131 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
4132
4133         * XplatUIX11.cs: Fixed cast to make csc happy
4134
4135 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
4136
4137         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
4138           it's for the client area (part of fix for #77479 and needed
4139           for MDI window cursor handling)
4140         * XplatUIX11.cs
4141           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
4142             the appropriate default cursors and also passing the message
4143             up the parent chain 
4144           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
4145             for non-client areas
4146
4147 2006-02-15  Jackson Harper  <jackson@ximian.com>
4148
4149         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
4150         is a real MDI window
4151
4152 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
4153
4154         * X11DesktopColors.cs: Instead of checking the desktop session
4155           string for "KDE" check if it starts with "KDE"
4156
4157 2006-02-10  Jackson Harper  <jackson@ximian.com>
4158
4159         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
4160         systems).
4161
4162 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
4163
4164         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
4165           errors
4166         * ColorDialog.cs:
4167           - Got rid of the panel. All controls are now directly added to
4168             the dialog form
4169           - Changed to mono coding style
4170
4171 2006-02-10  Jackson Harper  <jackson@ximian.com>
4172
4173         * InternalWindowManager.cs: We don't need the set visibility to
4174         false hack anymore now that peter has written beautiful shutdown
4175         code.
4176
4177 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
4178
4179         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
4180           where already explicitly destroyed
4181
4182 2006-02-10  Jackson Harper  <jackson@ximian.com>
4183
4184         * MdiClient.cs: Handle the case where windows are too high or to
4185         the left and we need scrollbars.
4186
4187 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
4188
4189         * MimeIcon.cs: Added some icons
4190         * FileDialog.cs:
4191           - Fixed bug #77477
4192           - Got rid of the panel. All controls are now directly added to
4193             the dialog form
4194           - Changed to mono coding style
4195           - On Linux "My Computer" and "My Network" will now show some
4196             more usefull information. A new class, MasterMount, gathers
4197             this information from /proc/mount. Updated MWFFileView to make
4198             use of this information
4199           - Fixed a bug that caused FileDialog to crash when
4200             ".recently_used" file had a zero size
4201           - FilterIndex does now what it should
4202           - Some Refactoring
4203         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
4204             FileDialog changes
4205
4206 2006-02-09  Jackson Harper  <jackson@ximian.com>
4207
4208         * ComboBox.cs: Don't touch if null.
4209
4210 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
4211
4212         * Cursor.cs: 64bit safeness fix
4213         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
4214
4215 2006-02-09  Jackson Harper  <jackson@ximian.com>
4216
4217         * Form.cs: If a form is made into an MDI form update the styles so
4218         all the props can get set correctly.
4219         - Kill the mdi_container when we dont need it anymore.
4220         * InternalWindowManager.cs: Add missing NOT
4221
4222 2006-02-08  Jackson Harper  <jackson@ximian.com>
4223
4224         * InternalWindowManager.cs: Respek clipping when drawing MDi
4225         decorations.
4226
4227 2006-02-08  Jackson Harper  <jackson@ximian.com>
4228
4229         * Hwnd.cs: Add bits to track non client expose events.
4230         * XplatUIX11.cs: Track non client expose events on the hwnd. This
4231         gives us a proper invalid rect and will allow for some nice
4232         optimizations with NC client drawing
4233         - MDI windows are children windows, so move their style handling
4234         into the child window block.
4235         * InternalWindowManager.cs: Remove a state reset that was
4236         getting invoked at the wrong time. Fixes managed windows getting
4237         into a 'stuck' captured state.
4238
4239 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
4240
4241         * TextControl.cs (Document.ctor): Now initializing 
4242           selection_anchor. Fixes #77493
4243
4244 2006-02-07  Jackson Harper  <jackson@ximian.com>
4245
4246         * TrackBar.cs: The increment/decrements were backwards.
4247
4248 2006-02-07  Mike Kestner  <mkestner@novell.com>
4249
4250         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
4251         to the instance itself.
4252
4253 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
4254
4255         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
4256           on ulongs and pointers, the size differs between 32bit and 64bit
4257           systems. 
4258
4259 2006-02-07  Mike Kestner  <mkestner@novell.com>
4260
4261         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
4262         for 64 bit platforms to work around a metacity bug. 
4263
4264 2006-02-07  Jackson Harper  <jackson@ximian.com>
4265
4266         * TrackBar.cs: Process the input keys we need, and hookup to
4267         KeyDown instead of using WndProc, so we get key messages.
4268
4269 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
4270
4271         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
4272           machine we're on. 
4273         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
4274           we need to translate the XdndVersion atoms array before sending it
4275
4276 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
4277
4278         * XplatUIX11.cs: 
4279           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
4280             number of bits for the property, not the number of bytes. The
4281             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
4282             but would not crash since it specified 8 bits instead of 4 bits)
4283           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
4284             defined as XID -> long in the C headers)
4285           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
4286             references since those are now IntPtr to begin with
4287           - Switched all Atom.XXX 'int' casts to IntPtr casts
4288           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
4289           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
4290           - Added XChangeActivePointerGrab DllImport (for X11DnD)
4291         * X11Structs.cs:
4292           - Changed 'int' type for Atoms in XEvent structures to IntPtr
4293           - Changed atom in HoverStruct to be IntPtr
4294         * X11DnD.cs:
4295           - Removed local DllImports, switched code to use those from XplatUIX11
4296           - Removed/fixed casts related to the switch of Atom to be a IntPtr
4297
4298 2006-02-06  Mike Kestner  <mkestner@novell.com>
4299
4300         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
4301         method signatures in the import region.  There may still be some
4302         lingering struct marshaling issues, as I didn't drill down into those.
4303         Yet.
4304
4305 2006-02-06  Jackson Harper  <jackson@ximian.com>
4306
4307         * ComboBox.cs: Dont manually set the top_item, this is computed
4308         when the scrollbar position is set.
4309
4310 2006-02-06  Mike Kestner  <mkestner@novell.com>
4311
4312         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
4313         startup crashes on amd64.  There's other fixes needed.  All pinvoke
4314         usage of Atom needs to be mapped to IntPtr for example.  And there are
4315         likely other int/long issues to be addressed.
4316
4317 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
4318
4319         * FileDialog.cs: One more...
4320
4321 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
4322
4323         * FileDialog.cs: Next try
4324
4325 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
4326
4327         * FileDialog.cs: First part of fix for #77464
4328
4329 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
4330
4331         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
4332           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
4333           AcceptButton border drawing.
4334
4335 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
4336
4337         * Form.cs: Moved positioning of form after auto scaling is applied,
4338           otherwise it would possibly use wrong form size.
4339
4340 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
4341
4342         * Control.cs (RecreateHandle): No need to re-create any child
4343           controls, the child windows will get destroyed automatically by
4344           the windowing system or driver, and re-created when the handle
4345           is being accessed the first time. Fixes #77456
4346         * Form.cs: No longer setting the form to closing if the handle is 
4347           being recreated. This seems like the right thing to do, don't
4348           have a bug or testcase for this, though.
4349
4350 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
4351
4352         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
4353           controls to avoid unwanted side effects
4354
4355 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
4356
4357         * Control.cs: 
4358           - ScaleCore needs to scale the bounds, not the ClientSize of the 
4359             control. Fixes #77416.
4360           - DefaultSize is 0,0 for control
4361         * TextBoxBase.cs: 
4362           - DefaultSize is 100, 20
4363           - SetBoundsCore: Now enforcing the height, no matter if the provided
4364             height is more or less than the preferred one, as long as AutoSize
4365             is on
4366         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
4367
4368 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
4369
4370         * Control.cs:
4371           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
4372             call unless both performLayout is true *and* we have a pending
4373             layout change
4374           - ResumeLayout: MS does not completely nest Suspend and Resume,
4375             they bottom out at 0, fixed our code to match that.
4376           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
4377             SetBoundsCore, we were updating even when we shouldn't. This fixes
4378             swf-anchors mis-anchoring when resizing the app fast and lots.
4379           - UpdateDistances: Now only setting the left and top distance if 
4380             we have a parent and are not suspended, this is based on
4381             a suggestion by Don Edvaldson in bug #77355.
4382           - OnVisibleChanged: Fixed logic when to create the control. We may
4383             not create the control if we have no parent or if it's not visible;
4384             switched to using Visible property instead of is_visible field 
4385             since the property also considers parent states. This fixes a bug
4386             when starting Paint.Net
4387
4388 2006-02-02  Jackson Harper  <jackson@ximian.com>
4389
4390         * Form.cs: If the forms handle hasn't been created yet don't call
4391         into xplatui to make it top most, just set the topmost flag on the
4392         form in CreateParams
4393         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
4394
4395 2006-02-01  Jackson Harper  <jackson@ximian.com>
4396
4397         * ScrollableControl.cs: Refactored the Recalculate method a
4398         little, this wasn't handling all the variants of bottom and right
4399         bars needed to be added and added/removed based on their
4400         counterparts being added/removed (which changes the drawable
4401         size). Also we special case client widths and heights of 0 and
4402         don't add the scrollbar for those.
4403
4404 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
4405
4406         * XplatUIX11.cs: 
4407           - Added method to get AbsoluteGeometry(); currently unused, but might
4408             be used in the future, if we try again to figure out toplevel
4409             coordinates with some more crappy window managers
4410           - Added FrameExtents() method to retrieve the WM set decoration size
4411           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
4412             to deal with at least KDE, FVWM and metacity (Fixes #77092)
4413         * Hwnd.cs: 
4414           - Added whacky_wm tracking var for metacity
4415           - Added logic to have default menu height if the actual menu height
4416             has not yet been calculated (part of fix for #77426)
4417         * Form.cs: Keep track whether client size has been set and re-set 
4418           it if a menu is added/removed afterwards (Fixes #77426)
4419
4420 2006-01-31  Jackson Harper  <jackson@ximian.com>
4421
4422         * Control.cs: When a new Site is set on the component attempt to
4423         pull the AmbientProperties from it.
4424
4425 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
4426
4427         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
4428           in the background of the owning form. Fixes #77332
4429
4430 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
4431
4432         * MimeIcon.cs: Fix for #77409
4433
4434 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
4435
4436         * XplatUIX11GTK.cs: Initial import
4437
4438 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
4439
4440         * FixedSizeTextBox: fixes class signature
4441
4442 2006-01-30  Jackson Harper  <jackson@ximian.com>
4443
4444         * FixedSizeTextBox.cs: New internal class that represents a
4445         textBox that will not be scaled.
4446         * TreeView.cs:
4447         * ComboBox.cs:
4448         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
4449         standard TextBox.
4450                 
4451 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
4452
4453         * XplatUIX11.cs: Retrieve default screen number instead of
4454           assuming 0. Attempted fix for #77318
4455
4456 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
4457
4458         * XplatUIWin32.cs: 
4459           - GetWindowPos: When a window is parented by FosterParent, use 
4460             the desktop instead of FosterParent as the base to get coordinates
4461           - CreateWindow: Don't make FosterParent the parent window for Popups
4462             if we don't want a taskbar entry, Popups automatically don't get one
4463         * Hwnd.cs: Need to call remove to actually remove the key from the
4464           hash table
4465
4466 2006-01-30  Mike Kestner  <mkestner@novell.com>
4467
4468         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
4469
4470 2006-01-30  Jackson Harper  <jackson@ximian.com>
4471
4472         * TreeView.cs:
4473         * TreeNode.cs: Raise events no matter how the treenode is
4474         checked. Patch by Don Edvalson.
4475
4476 2006-01-30  Jackson Harper  <jackson@ximian.com>
4477
4478         * TreeNode.cs: Signature fix.
4479
4480 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
4481
4482         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
4483
4484 2006-01-20  Mike Kestner  <mkestner@novell.com>
4485
4486         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
4487         event forwarding when menus are active.
4488         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
4489         Most of the patch is pdb's with a little rework.
4490
4491 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
4492
4493         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
4494           Removed GetMenuDC and ReleaseMenuDC methods; replaced
4495           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
4496         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
4497         * InternalWindowManager.cs: Added use of PaintEventStart/End to
4498           handling of WM_NCPAINT message, now passing the PaintEventArgs to
4499           the PaintWindowDecorations method
4500         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
4501         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
4502         * MenuAPI.cs: Made tracker window invisible
4503         * XplatUIWin32.cs:
4504           - Removed GetMenuDC and ReleaseMenuDC methods
4505           - Implemented the client=false path for PaintEventStart and
4506             PaintEventEnd
4507
4508 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
4509
4510         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
4511         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
4512           styles
4513         * Form.cs: 
4514           - MaximizeBox, MinimizeBox: Recreate the handle when setting
4515             the style
4516           - CreateParams: Reworked the styles to match MS look'n'feel,
4517             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
4518             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
4519
4520 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
4521
4522         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
4523           window is not mapped, since otherwise every form that's being 
4524           created is considered minimized, which is wrong.
4525         * Form.cs: Catching the exception and returning our internal value
4526           instead
4527
4528 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
4529
4530         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
4531           SetWindowMinMax() to have means to tell the driver about the minimum,
4532           maximum and maximized state window sizes. (Part of the fix for #76485)
4533         * Form.cs:
4534           - Implemented tracking of minimum and maximum window size, now calling
4535             new SetWindowMinMax() driver method to tell the driver (Part of the
4536             fix for #76485)
4537           - Finished handling of WM_GETMINMAXINFO method, now setting all values
4538             (Completes fix for #76485)
4539           - Calling new SetWindowMinMax driver method when the handle for a 
4540             form is created, to make sure the driver knows about it even if
4541             the values have been set before the window was created
4542           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
4543             to avoid messing up our anchoring calculations (partial fix
4544             for #77355)
4545         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
4546         * XplatUIX11.cs:
4547           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
4548           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
4549             (and presumably other freedesktop.org compliant WMs). Left the
4550             assumption unmapped=minimized, needed for SetVisible to work.
4551           - Now setting the window state when creating windows
4552           - Fixed SetVisible to consider/set the window state when mapping
4553             a Form. We cannot set the state before it's mapped, and we cannot
4554             use Form.WindowState once it's mapped (since it would ask the
4555             driver and get 'normal'. Therefore, we grab the state before
4556             mapping, map, and then set state.
4557           - Implmemented SetWindowMinMax method; Metacity does not seem to
4558             honor the ZoomHints, though.
4559         * XplatUIWin32.cs:
4560           - Removed MINMAXINFO (moved to XplatUIStructs)
4561           - Added SetWindowMinMax stub (on Win32 the only way to set that
4562             information is in response to the WM_GETMINMAXINFO message, which
4563             is handled in Form.cs)
4564           - Added logic to SetVisible to set the proper window state when a 
4565             form is made visible (fixes #75720)
4566
4567 2006-01-26  Jackson Harper  <jackson@ximian.com>
4568
4569         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
4570         same way we handle them with Invoke.
4571
4572 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
4573
4574         * Form.cs:
4575           - Added tracking of window state so CreateParams can return
4576             the appropriate style
4577           - Moved setting of WS_CAPTION style in CreateParams to allow
4578             styles without caption
4579         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
4580           control if the TextBox property is accessed. Fixes #77345
4581         * Control.cs:
4582           - get_Created: now uses is_disposed and is_created to determine
4583             return value (suggested by Jackson)
4584           - CreateHandle: No longer exits if the handle is being recreated
4585           - RecreateHandle: If the handle is not yet created call the 
4586             appropriate method to create either control or handle. If the
4587             control is already created CreateHandle will simply exit instead
4588             of just creating the handle
4589         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
4590           now SendMessage WM_DESTROY directly to the control when DestroyWindow
4591           is called.
4592         * XplatUIX11.cs: 
4593           - When DestroyWindow is called, instead of waiting for the 
4594             DestroyNotification from X11, we directly post it to the WndProc
4595             and immediately dispose the hwnd object.
4596             Same applies to DestroyChildWindows, and this obsoletes the
4597             expose_pending tracking. Contrary to Win32 behaviour we destroy our
4598             child windows before our own, to avoid X11 errors.
4599           - Removed the direct sending of WM_PAINT on UpdateWindow
4600         * XplatUIWin32.cs:
4601           - Reworked DoEvents and GetMessage to allow access to internal queue
4602             even when trying non-blocking access to the queue.  Fixes #77335. 
4603             Based on a patch suggestion by Don Edvalson. The new private
4604             GetMessage can now also be used as a backend for a PeekMessage
4605             frontend version.
4606         * XplatUI.cs: Improved debug output for CreateWindow
4607
4608 2006-01-25  Jackson Harper  <jackson@ximian.com>
4609
4610         * Help.cs: Allow param to be null. Patch by Don Edvalson.
4611
4612 2006-01-24  Jackson Harper  <jackson@ximian.com>
4613
4614         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
4615         when we have a MaxDropItems lower then the selected index.
4616
4617 2006-01-24  Jackson Harper  <jackson@ximian.com>
4618
4619         * Control.cs: Don't allow selection of non visible controls, allow
4620         selection of controls without parents.
4621
4622 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
4623
4624         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
4625         * DataGridDrawingLogic.cs: Add editing row only when is necessary
4626
4627 2006-01-23  Jackson Harper  <jackson@ximian.com>
4628
4629         * UpDownBase.cs: Make the textbox handle all the selection and
4630         tabbing. This fixes tabing to updown controls.
4631
4632 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
4633
4634         * TextBoxBase.cs: fixes exception thown the object was null
4635
4636 2006-01-23  Jackson Harper  <jackson@ximian.com>
4637
4638         * ButtonBase.cs: Just use the base CreateParams. They set
4639         visibility and enabled correctly.
4640         * ComboBox.cs:
4641         * TrackBar.cs:
4642         * MonthCalendar.cs: Lets let the base set as much of the
4643         createparams as possible so we don't have duplicate code all over
4644         the place.
4645
4646 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
4647
4648         * ThemeGtk.cs: Added TrackBar and some experimental code to
4649           get double buffering back
4650
4651 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
4652
4653         * DataGrid.cs: Allows row number set internally higher than the last
4654         when creating a new row. Restores the editing functionality.
4655
4656 2006-01-20  Mike Kestner  <mkestner@novell.com>
4657
4658         * MimeIcon.cs: delay Image creation until the icons are accessed
4659         instead of creating 190 scaled images on GnomeHandler startup.
4660
4661 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
4662
4663         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
4664           first call base before processing the event. Fixes #77279
4665
4666 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
4667
4668         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
4669           that the stride for the GDI bitmap would match the stride of
4670           a DIB or a Cursor.
4671
4672 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
4673
4674         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
4675
4676 2006-01-19  Jackson Harper  <jackson@ximian.com>
4677
4678         * ComboBox.cs: Hookup the text controls keydown event so we get
4679         those when the text control has the focus.
4680
4681 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
4682
4683         * Label.cs: Now using the base events instead of defining new ones;
4684           this allows us to just call the base properties without having to
4685           duplicate all base property logic 
4686
4687 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
4688
4689         * Label.cs: A label by default is not a tabstop (Fixes one of our
4690           failing nunit tests)
4691
4692 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
4693
4694         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
4695         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
4696
4697 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
4698
4699         * Cursor.cs: Reimplemented creating cursor bitmaps without using
4700           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
4701           This fixes #77218
4702         * XplatUIWin32.cs: 
4703           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
4704             constructor creates images that can't be saved. Part of the fix
4705             for #76103
4706           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
4707           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
4708             bug fix for handling window state in forms properly)
4709
4710 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
4711
4712         * ThemeGtk.cs: Simplify ScrollBar drawing
4713
4714 2006-01-18  Jackson Harper  <jackson@ximian.com>
4715
4716         * Splitter.cs: Set the default dock style for the splitter control
4717         in the constructor.
4718
4719 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
4720
4721         * ThemeGtk.cs: Corrected StateType and ShadowType for
4722           gtk_paint_box
4723
4724 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
4725
4726         * Control.cs: Make use of Theme.DoubleBufferingSupported
4727         * ThemeGtk.cs:
4728           - Added drawing for flat style buttons
4729           - Added ScrollBar drawing
4730
4731 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
4732
4733         * ThemeClearlooks.cs: Removed some unneeded code.
4734         * ThemeGtk.cs: First part of ThemeGtk enhancements.
4735
4736 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
4737
4738         * LinkLabel.cs: We need to update the hover drawing when
4739           leaving the control as well.
4740
4741 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
4742
4743         * DataGrid.cs: Clicking on non empty areas in the columns
4744            area was giving an exception
4745
4746 2006-01-17  Jackson Harper  <jackson@ximian.com>
4747
4748         * ThemeWin32Classic.cs:
4749         * ListView.cs: Do not draw/clip the headers when the header style
4750         is None.
4751
4752 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
4753
4754         * DataGrid.cs: Fixes 77260
4755         
4756 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
4757
4758         * DataGrid.cs: Clicking on a column on a empty grid was giving
4759           an exception
4760
4761 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
4762
4763         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
4764           or any keypress will crash the grid.
4765
4766 2006-01-17  Mike Kestner  <mkestner@novell.com>
4767
4768         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
4769         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
4770         invisible/previously-visible items.
4771         [Fixes #76909]
4772
4773 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
4774
4775         * ThemeClearlooks.cs:
4776         - Added CL_Draw_Button method; now other theme controls that are 
4777           not derived from button or do not have a button can draw buttons
4778           too
4779         - Updated ComboBox drawing
4780         - Beautified RadioButton drawing
4781         - Corrected drawing of bottom and left tabs
4782         - Beautified DateTimePicker and MonthCalendar
4783         - Added CPDrawButton and CPDrawRadioButton
4784
4785 2006-01-16  Jackson Harper  <jackson@ximian.com>
4786
4787         * ComboBox.cs: Set the initial value of the scrollbar to the
4788         current index. Reduce the numbers of refreshs and IndexOfs called.
4789
4790 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
4791
4792         * FileDialog.cs: When the file listview is focused hitting the
4793           backspace key moves the fileview to the parent directory
4794
4795 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
4796
4797         * Form.cs: 
4798           - Added RecreateHandle call when changing taskbar visibility to 
4799             trigger reparenting in Win32 driver (Fixes #75719)
4800           - If a window has minimize or maximize buttons, it cannot have
4801             a help button
4802         * XplatUIWin32.cs:
4803           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
4804             the toplevel form with FosterParent (A toolwindow not on the
4805             taskbar) (Fixes #75719)
4806           - Made FosterParent a toolwindow
4807
4808 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
4809
4810         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
4811
4812 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
4813
4814         * ToolTip.cs: If SetToolTip is called from a control and the mouse
4815           is currently over that control, make sure that tooltip_window.Text
4816           gets updated
4817
4818 2006-01-13  Mike Kestner  <mkestner@novell.com>
4819
4820         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
4821
4822 2006-01-13  Jackson Harper  <jackson@ximian.com>
4823
4824         * TreeView.cs: On MS GetNodeAt never actually factors in the X
4825         value passed.  Also redraw the selected node when we recieve
4826         focus, so tabbing between trees works correctly.
4827
4828 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
4829
4830         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
4831           ~/.gconf/%gconf-tree.xml, so use
4832           .gconf/desktop/gnome/interface/%gconf.xml
4833
4834 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
4835
4836         * TextControl.cs: Draw text in gray if control is disabled
4837
4838 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
4839
4840         * TreeView.cs: Draw the focus rectangle outside the highlight, to
4841           make sure it's always visible. Fixes #76680.
4842
4843 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
4844
4845         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
4846
4847 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
4848
4849         * PageSetupDialog.cs: Added.
4850         * PrintDialog.cs: Attributes.
4851         * PrintPreviewControl.cs: Updates.
4852         * PrintPreviewDialog.cs: Updates.
4853         
4854 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
4855
4856         * Control.cs: Undid my selection check fix, since it's not needed
4857         * TextBoxBase.cs:
4858           - Now considering the presence of hscroll/vscroll when sizing
4859             vscroll/hscroll respectively. Fixed bug #77077
4860           - Added Left/Up/Down/Right to IsInputKey list to prevent
4861             ContainerControl from stealing them. This fixes what I broke
4862             with my last checkin.
4863
4864 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
4865
4866         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
4867           I finally understand how the property can be set without a setter :-)
4868
4869 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
4870
4871         * Application.cs:
4872           - Switched RunLoop to use static Message.Create to create a 
4873             Message object
4874           - Added PreProcessMessage call in runloop for keyboard events; this
4875             is part of the fix for #77219, I overlooked this originally in the
4876             MSDN doc for PreProcessMessage
4877         * Control.cs:
4878           - Removed call to PreProcessMessage from handling of keyboard 
4879             messages; it's supposed to be done in the message pump
4880           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
4881             per MSDN documentation.
4882           - IsInputChar: All chars are input chars by default; removed the 
4883             parent calling chain, MS does not document that
4884           - PreProcessMessage: If IsInputChar is true, we want to return false
4885             to allow dispatching of the message
4886           - When selecting the next control, now also check that we're not
4887             selecting ourselves again and therefore return a false positive.
4888         * TextBoxBase.cs:
4889           - Tried to match return values for IsInputKey and ProcessDialogKey
4890             to what MS returns; moved processing of our special keys outside
4891             ProcessDialogKey since MS does not seem to return true on those.
4892           - Moved code that previously was in ProcessDialogKey into new private
4893             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
4894           - Reworked handling of WM_CHAR to not have to duplicate code from
4895             Control.cs anymore, instead we simply call down to base.
4896            
4897 2006-01-12  Jackson Harper  <jackson@ximian.com>
4898
4899         * ComboBox.cs: We always need to refresh the text area when
4900         EndUpdate is called. Fixes the combobox in the file dialog.
4901         * Control.cs: Don't create the creator_thread until the controls
4902         handle is created.  Also in InvokeRequired we check if the
4903         creator_thread is null. This gives the effect of InvokeRequired
4904         returning true if the controls handle is not created yet, and
4905         matches MS.
4906
4907 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
4908
4909         * XplatUI.cs:
4910           - Added StartLoop() driver method. This is used to allow drivers to
4911             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
4912             loop for a particular thread
4913           - Added EndLoop() driver method. This is called once the message
4914             pump for the thread is shut down
4915           - Added SupportsTransparency method to allow the driver to indicate
4916             opacity support for windows
4917         * Form.cs:
4918           - Removed TODO attribute, completed AllowTransparency property
4919           - Added documented logic to Opacity
4920         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
4921           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
4922           versions of CompatibleTextRendering
4923         * X11Structs.cs: Added opacity atom to our atom enumeration
4924         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
4925           of a form might be set before it's reparented by the WM, and we need
4926           the opacity value without calling up to Form)
4927         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
4928           SupportsTransparency() driver methods
4929         * Application.cs: Now calling StartLoop and EndLoop driver methods
4930         * XplatUIX11.cs:
4931           - Added opacity atom registration
4932           - Added StartLoop()/EndLoop() methods. They're empty right now but
4933             will need to get implemented when we switch to a per-thread queue
4934           - Implemented SupportsTransparency() method
4935           - Implemented SetWindowTransparency() method
4936           - Added support for setting the opacity value when a window is
4937             reparented (since the opacity needs to be set on the WM frame)
4938         * XplatUIOSX.cs, XplatUIWin32.cs:
4939           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
4940
4941 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
4942
4943         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
4944
4945 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
4946
4947         * FileDialog.cs: Added ToolTip for MWFFileView
4948         * MimeIcon.cs: Rewrote GnomeHandler.
4949           - Get currently used gnome icon theme from
4950             ($HOME)/.gconf/%gconf-tree.xml
4951           - Make use of inherited icon themes
4952           - Support SVG icon themes like Tango via librsvg
4953
4954 2006-01-12  Miguel de Icaza  <miguel@novell.com>
4955
4956         Revert's Jackson's revert which broke 2.0 builds.   Fix both
4957         builds. 
4958         
4959         * Application.cs: Move the use_compatible_text_rendering outside
4960         the NET_2_0 define.  If we ever need to use the
4961         use_compatible_text_rendering on the individual controls they will
4962         access the variable from the common shared code paths.
4963
4964 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
4965
4966         * XplatUI.cs:
4967           - Added more granular debug options
4968           - Added method to print both window text and id
4969           - Switched debug output to use new Window() debug method
4970           - Added IsEnabled() driver method
4971           - Added EnableWindow() driver method
4972         * Form.cs:
4973           - Removed end_modal; no longer needed, new loop handles termination
4974             via 'closing' variable
4975           - If form is modal, setting DialogResult will now initiate loop
4976             termination via 'closing' variable
4977           - Added support for is_enabled/WS_DISABLED to CreateParams
4978           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
4979             does all the work
4980           - Removed code that's now in RunLoop from ShowDialog()
4981           - Added various documented sanity checks to ShowDialog()
4982           - Added handling of WM_DESTROY message; we set 'closing' on getting
4983             the message to indicate the message pump to terminate
4984           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
4985             send by the Application.ExitThread method. (We send the message
4986             to destroy the window after all other events have been
4987             processed through the queue, instead of destroying the handle 
4988             directly)
4989           - Moved code from Close() method to WM_CLOSE handler; added logic
4990             to only send close-related events if the form is not displayed
4991             modal
4992         * Splitter.cs (..ctor): Fixed typo in resource name
4993         * Control.cs:
4994           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
4995             brush now
4996           - set_Cursor: Now only setting calling into XplatUI if the handle for
4997             the control is already created; this avoids implict handle creation
4998             or crashes if it's not created
4999           - set_Enabled: Now setting the enabled state via the new driver method
5000             instead of just tracking it
5001           - CreateParams: Added logic to set WS_DISABLED based on enabled state
5002           - CreateControl: Reordered event firing and method calls to more
5003             closely fire events in the order MS does. Now setting the
5004             enabled state in the driver when creating the control.
5005           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
5006             match MS order
5007         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
5008           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
5009         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
5010         * Hwnd.cs:
5011           - Added tracking of window enabled state (get_Enabled/set_Enabled)
5012           - Added EnabledHwnd property to easily allow a driver to find the
5013             handle of the first enabled window in the parent chain (this is
5014             used by drivers to pass up input events of disabled windows)
5015         * XplatUIDriver.cs: Added IsEnabled() method
5016         * Application.cs:
5017           - Removed crude and obsolete exiting tracking variable
5018           - Removed internal ModalRun(); replaced by RunLoop()
5019           - Implemented private CloseForms() method to allow closing all 
5020             windows owned by a particular (or all) threads
5021           - Exit() now properly closes all windows without forcing the message
5022             pump to quit
5023           - Removed obsolete InternalExit() method
5024           - Changed Run() methods to use new RunLoop() message pump
5025           - Implemented new RunLoop() method for both modal and non-modal forms
5026         * CommonDialog.cs:
5027           - get_CreateParams: Added setting of WS_DISABLED
5028           - Simplified ShowDialog(); now all the work is done in RunLoop(),
5029             invoked via Form.ShowDialog()
5030         * NativeWindow.cs: We don't remove the window from the collection when
5031           the handle is destroyed; there might still be messages for it in the
5032           queue (mainly the resulting WM_DESTROY); instead it will be removed
5033           when Control calls InvalidateHandle in the WM_DESTROY handler
5034         * XplatUIX11.cs:
5035           - CreateWindow: Added logic to handle the WS_DISABLED window style
5036           - EnableWindow: Implemented based on Hwnd.Enabled
5037           - GetMessage: Reset PostQuitState so the method can be called again
5038           - Implemented support for disabled windows (passing messages to the
5039             first enabled parent) in handling all input messages
5040           - Added optimizations for handling Expose events
5041           - Implemeted new driver method IsEnabled()
5042           - Now always resetting paint pending tracking vars when we start paint
5043           - Re-implemented UpdateWindow via just sending a WM_PAINT message
5044         * XplatUIOSX.cs: Added IsEnabled method stub
5045         * XplatUIWin32.cs: Implemented new IsEnabled() method
5046
5047 2006-01-11  Jackson Harper  <jackson@ximian.com>
5048
5049         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
5050         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
5051         variables a little.
5052         * ColorDialog.cs: Clear out the old form before adding the new
5053         panel.  
5054
5055 2006-01-11  Jackson Harper  <jackson@ximian.com>
5056
5057         * X11Dnd.cs: Make sure to add all the text formats when adding
5058         strings to the data object.
5059         * TreeNodeCollection.cs: When adding to a sorted tree we need to
5060         do some redrawing too.  Also change the UpdateNode to an
5061         UpdateBelow so the newly added node gets painted.
5062         
5063 2006-01-11  Miguel de Icaza  <miguel@novell.com>
5064
5065         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
5066         LinkLabel.cs, PropertyGrid.cs: Implement the
5067         UseCompatibleTextRendering property for 2.x
5068
5069         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
5070
5071 2006-01-11  Jackson Harper  <jackson@ximian.com>
5072
5073         * TreeView.cs: Use the property for setting the selected node so
5074         the correct events get raised.
5075         * TreeNode.cs: Update the tree when the fore/back colours of a
5076         node are set.
5077
5078 2006-01-10  Jackson Harper  <jackson@ximian.com>
5079
5080         * TreeView.cs: Allow setting SelectedNode to null.
5081
5082 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
5083
5084         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
5085
5086 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
5087
5088         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
5089
5090 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
5091
5092         * PrintDialog.cs: Added attributes and set default property values.
5093
5094 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
5095
5096         * PrintControllerWithStatusDialog.cs: 
5097         Added PrintControllerWithStatusDialog.
5098
5099 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
5100
5101         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
5102         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
5103
5104 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
5105
5106         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
5107
5108 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
5109
5110         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
5111         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
5112
5113 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
5114
5115         * MimeIcon.cs: Added internal class SVGUtil.
5116
5117 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
5118
5119         * FileDialog.cs: Don't crash if there are two files with the
5120           same name but different locations.
5121
5122 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
5123
5124         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
5125         dates across multiple month grids. Used to not highlight entire 
5126         month, but does now.
5127         
5128 2006-01-06  Jackson Harper  <jackson@ximian.com>
5129
5130         * MonthCalendar.cs: Removed DoEvents call to prevent a running
5131         message loop. Change timer intervals to numbers that seem more
5132         natural.
5133
5134 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
5135
5136         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
5137           object for location info since screen object is now implemented.
5138
5139 2006-01-05  Jackson Harper  <jackson@ximian.com>
5140
5141         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
5142         * AsyncMethodResult.cs: We no longer use a WeakReference for the
5143         AsyncMethodResult, this is because we ALWAYS want the
5144         ManualResetEvent to get set.
5145         * Control.cs: When disposing use an async invoke to call shutdown
5146         code, so that thigns don't block on the finalizer thread.  Also
5147         check if we even have a message loop before trying to send
5148         messages, if we don't then don't bother sending messages.
5149         - No more weak references for async methods
5150         * XplatUIDriver.cs: No more weak references for async methods.
5151
5152 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
5153
5154         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
5155           returns two FontFamily with the same name
5156
5157 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
5158
5159         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
5160           drawing disabled text. Instead using the ColorGrayText color
5161
5162 2006-01-04  Jackson Harper  <jackson@ximian.com>
5163
5164         * TreeNode.cs: redraw the node when its image index is changed.
5165
5166 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
5167
5168         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
5169           time I checked there are no others like it.
5170
5171 2006-01-04  Jackson Harper  <jackson@ximian.com>
5172
5173         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
5174         this gives the behavoir I was looking for.
5175         * Control.cs: Special case Invoking EventHandlers, this matches MS
5176         and fixes part of bug #76326.
5177
5178 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
5179
5180         * ThemeClearlooks.cs, FileDialog.cs:
5181           - Reflect the latest Theme class changes
5182           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
5183             with DateTime
5184             
5185 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
5186
5187         * Theme.cs: Cache UI resource images and resize them if needed
5188
5189 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
5190
5191         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
5192           is called. This fixes the crash in Nexxia when setting the font
5193           attributes in the chat. [However, RTF needs a look-over to make sure
5194           that all SelectionXXX methods handle the special case that selection
5195           is empty and therefore the change must be applied to all text starting
5196           at the cursor/selection start]
5197
5198 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
5199
5200         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
5201           XplatUIOSX.cs: Added SendMessage and PostMessage methods
5202         * X11Keyboard.cs: Switched to new way of calling PostMessage
5203
5204 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
5205
5206         * Theme.cs: Added theme interface for images to allow the theme to
5207           control what images are used for things like FileDialog, MessageBox
5208           icons, etc.
5209         * MessageBox.cs: Now uses the new Theme icon/image interfaces
5210
5211 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
5212
5213         * FileDialog.cs:
5214           - Removed some dead code
5215           - Opening a recently used file does work now
5216           - Small UI enhancements
5217           - Refactoring
5218
5219 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
5220
5221         * FileDialog.cs: Forgot too add __MonoCS__
5222
5223 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
5224
5225         * FileDialog.cs: We are able to read recently used files now let's
5226           go on and write them.
5227
5228 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
5229
5230         * FileDialog.cs: Breathe some life into "last open"/"recently used"
5231           button
5232         * MimeIcon.cs: Do a check for the top level media type also
5233
5234 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
5235
5236         * ThemeClearlooks.cs:
5237           - Added CPDrawStringDisabled
5238           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
5239             some chars if the text doesn't fit into text_rect
5240           - DrawListViewItem: If View = View.LargeIcon center the image;
5241             rewrote the drawing of ListViewItem.Text if View = 
5242             View.LargeIcon
5243
5244 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
5245
5246         * MimeIcon.cs: Use default KDE icon theme if there is no
5247           "48x48" directory for the current icon theme, fixes #77114
5248         * Mime.cs: Disable not working and actually not used code. 
5249         * ThemeWin32Classic.cs:
5250           - Replace "new SolidBrush" in GetControlBackBrush and
5251             GetControlForeBrush with ResPool.GetSolidBrush
5252           - Changed DrawListViewItem from private to protected virtual
5253         * FileDialog.cs:
5254           - Added form.MaximizeBox = true
5255           - Don't throw an exception if there is a broken symbolic link
5256
5257 2005-12-23  Jackson Harper  <jackson@ximian.com>
5258
5259         * TabControl.cs: Give the panels focus, keyboard navigation is
5260         fixed so this works correctly now.
5261         - We need these key events also.
5262         * ToolBar.cs: Remove some of the poor mans double buffering.
5263         
5264 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
5265
5266         * ComboBox.cs: The internal TextBox now returns the focus.
5267
5268 2005-12-23  Jackson Harper  <jackson@ximian.com>
5269
5270         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
5271
5272 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
5273
5274         * Control.cs: Removed debug code
5275         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
5276           implicit children
5277
5278 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
5279
5280         * Control.cs: When creating the control, update the Z-order after
5281           all it's children are created, too. (Fixes nexxia not showing
5282           picturebox bug)
5283
5284 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
5285
5286         * Control.cs: Do not update the anchoring distances if layout is
5287           suspended, instead do it once layout is resumed
5288
5289 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
5290
5291         * Control.cs: 
5292           - After many hours of debugging, for both Jackson and
5293             myself, it turns out that it helps to set the parent of a control
5294             if you want to actually see it onscreen. In the spirit of that
5295             discovery, we're now setting the parent of the control and
5296             it's children when the control's handle is created. This fix
5297             will make Lutz Roeder's Reflector run happily. 
5298           - now just creating the handle instead of the whole control when
5299             getting a graphics context for the control.
5300
5301 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
5302
5303         * ScrollableControl.cs: When calculating the canvas, don't consider
5304           the scrollbar widths. Instead, predict if horizontal scrollbar
5305           will affect canvas when deciding on vertical display and vice versa.
5306
5307 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
5308
5309         * RichTextBox.cs: Set default RTF font for documents that don't
5310           have a font table (Fixes #77076)
5311
5312 2005-12-22  Jackson Harper  <jackson@ximian.com>
5313
5314         * TextBoxBase.cs: It's difficult to do, but you can have an empty
5315         clipboard. This prevents a NullRef in that case.
5316         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
5317         clipboard. PRIMARY is for the currently selected text only. (We
5318         should implement PRIMARY at some point.
5319
5320 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
5321
5322         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
5323           a Unicode function with a structure that was defined in Ansi way.
5324           This fixes #76942.
5325
5326 2005-12-21  Jackson Harper  <jackson@ximian.com>
5327
5328         * StatusBar.cs: Statusbar handles its fore/back colours on it's
5329         on. Because thats how it rolls. (and this avoids it using ambient
5330         colours).
5331         * ThemeWin32Classic.cs: Use the proper back color for filling.
5332         * Menu.cs: Use the system menu bar color for drawing menu
5333         bars. Using the window back color will bring ambient colours into
5334         the picture.
5335
5336 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
5337
5338         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
5339           Bitmaps were created and not disposed.
5340
5341 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
5342
5343         * Control.cs (CreateControl): Don't do anything if the control is
5344           already created, otherwise we'd fire the OnCreated event more than
5345           once
5346
5347 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
5348
5349         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
5350           will always match. Instead return -1. Fixes #76464.
5351
5352 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
5353
5354         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
5355           neither the beginning nor the end of the line (Fixes bug #76479)
5356
5357 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
5358
5359         * Control.cs:
5360           - ControlNativeWindow.ControlFromHandle(): Now handling situation
5361             where handle is invalid
5362           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
5363             instead of slower linear search
5364         * NativeWindow.cs: Don't remove the window from the hashtable until
5365           after the driver has destroyed it (since the driver might use
5366           Control.FromHandle to lookup the control object
5367         * Hwnd.cs: Added DestroyPending property to track if a window is 
5368           already destroyed as far as the driver is concerned and only hasn't
5369           yet notified the control
5370         * XplatUIX11.cs:
5371           - Activate(): Check if the window is still valid before using the 
5372             handle
5373           - Implemented DestroyChildWindow() method to mark child windows as
5374             destroyed when a window is destroyed. This prevents situations 
5375             where we might call an X method based on queued events for a
5376             window that already has been destroyed but we haven't yet pulled
5377             the destroy method from the queue.
5378           - Added a call to the new DestroyChildWindow() method to the drivers
5379             DestroyWindow code. Also now marking the destroyed window itself
5380             as pending
5381
5382 2005-12-20  Jackson Harper  <jackson@ximian.com>
5383
5384         * StatusBar.cs:
5385         * StatusBarPanel.cs: Don't calculate panel sizes on draw
5386         anymore. Just do them when needed, also track the rects of panels
5387         so that we can optimize refreshing more in the future.
5388
5389 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
5390
5391         * ColorDialog.cs: Fixed focus drawing in small color controls
5392
5393 2005-12-19  Jackson Harper  <jackson@ximian.com>
5394
5395         * InternalWindowManager.cs:
5396         * MdiWindowManager.cs: Cleanup some coordinate system changes so
5397         moving windows works properly.
5398
5399 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
5400
5401         * Control.cs: 
5402           - Removed call to InitLayout() from SetBoundsCore(); doc says
5403             it's only called when a control is added to a container
5404           - Split InitLayout logic, moved to separate UpdateDistances() method
5405             since we need to perform those calculations more often than just
5406             when adding the control to a container. (Needed to fix #77022)
5407           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
5408           - Reduced the OnBindingContextChanged events count, don't send them
5409             unless the control is created, we still aren't totally matching
5410             MS, but I can't quite figure out some of their rules
5411
5412 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
5413
5414         * ThemeClearlooks.cs: Corrected distance between ProgressBar
5415           stripes
5416
5417 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
5418
5419         * ThemeClearlooks.cs:
5420           - Updated ProgressBar drawing
5421           - Corrected drawing of ScrollBars and scroll buttons
5422           - Some temporary fixes for minor pixel artefacts
5423
5424 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
5425
5426         * Control.cs:
5427           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
5428             cause events to be sent in the same order as MS does.
5429           - Added ChangeParent() method to trigger various OnXXXChanged events
5430             that need to be fired when a parent changes (This is a reworking
5431             of the patch from r54254, with the X11 errors fixed)
5432           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
5433             since on MS we get OnLayoutChanged events when calling Clear()
5434           - Changed Enabled property to consider parent state as well, if a
5435             parent is not enabled, the control will not be either
5436           - Changed Parent property to simply call Controls.Add() since that
5437             now does all the work required, this way we avoid code duplication
5438           - Threw in a few OnBindingsContextChanged calls to try and match
5439             when MS sends them. We seem to send a few too many, though.
5440           - Added call to CreateControl when adding the control to a parent.
5441             We were never calling CreateControl. Still needs some work, in
5442             some places we treat HandleCreated and ControlCreated as equal, 
5443             which is wrong
5444           - Removed obsolete commented out code from UpdateZOrder()
5445
5446 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
5447
5448         * ThemeClearlooks.cs: Updated TrackBar drawing.
5449
5450 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
5451
5452         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
5453
5454 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
5455
5456         * FileDialog.cs: Add the Help button and the open readonly
5457           checkbox only if needed
5458
5459 2005-12-16  Jackson Harper  <jackson@ximian.com>
5460
5461         * Control.cs: Make sure we have an active menu before trying to
5462         process commands on it. Prevents menu-less forms from crashing
5463         when Alt is pressed.
5464         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
5465         Dieter Bremes.
5466         * RichTextBox.cs: Expand statement to help out gmcs and fix the
5467         2.0 build.
5468
5469 2005-12-16  Jackson Harper  <jackson@ximian.com>
5470
5471         * InternalWindowManager.cs: Don't translate tool windows screen
5472         coordinates. This fixes windows 'bouncing' around when being moved.
5473
5474 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
5475
5476         * TextBoxBase.cs:
5477           - MaxLength now treats 2^31-1 equal to unlimited length (this is
5478             not quite MS compatible, MS uses that number only for single line
5479             and 2^32-1 for multi-line, but I figure it won't hurt keeping
5480             the limit at 2GB)
5481           - Now enforcing the MaxLength limit when entering characters
5482           - Added argument to internal Paste() method to track if it's called
5483             from programatically or via keyboard, since keyboard driven pastes
5484             need to enforce max-length
5485           - Added logic to Paste to only paste as many chars as MaxLength 
5486             allows
5487         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
5488         * TextControl.cs:
5489           - Added Length property to return number of characters in document
5490           - Added private CharCount property which only tracks actual chars
5491             in the document (no linefeeds) and fires event when CharCount
5492             changes
5493           - Added tracking of character count to all methods that alter it
5494           - Added LengthChanged event to allow applications to subscribe
5495             to any changes to the document
5496
5497 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
5498
5499         * TextBox.cs: 
5500           - Removed local password_char field (moved to TextBoxBase)
5501           - Now setting the document's password var when password is
5502             set
5503         * TextBoxBase.cs:
5504           - Added password_char field (needed here so MultiLine can
5505             access it)
5506           - Added logic to MultiLine property setter to set the document's
5507             variable when password display is allowed
5508           - Removed debug code and made some debug code conditional
5509         * TextControl.cs:
5510           - Added RecalculatePasswordLine() method to handle special password
5511             char only lines
5512           - Added PasswordChar property, also added related tracking vars
5513           - Draw() method now uses local text var for grabbing text to draw,
5514             this var is set to line.text unless we're doing password display,
5515             then it is set to the pre-generated all-password-chars line
5516           - Added calling RecalculatePasswordLine() method for password lines
5517
5518 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
5519
5520         * Hwnd.cs: 
5521           - Added Reparented property to allow tracking of Window Manager
5522             reparenting actions (which affect X/Y calculations of toplevel 
5523             windows)
5524           - Made ToString() print window handles in hex
5525         * XplatUIX11.cs:
5526           - AddConfigureNotify(): Now uses reparented state off Hwnd to
5527             determine if X/Y needs offsetting
5528           - AddConfigureNotify(): Fixed offset calculations
5529           - Now adds ReparentNotify messages into the queue
5530           - Now processes ReparentNotify messages and causes a 
5531             WM_WINDOWPOSCHANGED message to be sent upstream if a window
5532             is reparented (as most likely it's X/Y coordinates are changed
5533             due to that)
5534
5535 2005-12-14  Jackson Harper  <jackson@ximian.com>
5536
5537         * XplatUIX11.cs: Tool windows still need to respek focus.
5538
5539 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
5540
5541         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
5542           have a working release
5543
5544 2005-12-13  Jackson Harper  <jackson@ximian.com>
5545
5546         * Form.cs: Update styles after setting the border style regardless
5547         of whether or not the window is using a window manager.
5548
5549 2005-12-13  Jackson Harper  <jackson@ximian.com>
5550
5551         * Form.cs: We now hook into an internal window manager instead of just an
5552         MDI subsystem, this is so we can have properly behaving tool windows.
5553         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
5554         * InternalWindowManager.cs: New internal class that acts as a
5555         window manager for tool windows and as a base for mdi windows.
5556         * MdiWindowManager.cs: New class that acts as a window manager for
5557         mdi windows.
5558
5559 2005-12-12  Jackson Harper  <jackson@ximian.com>
5560
5561         * Control.cs: Updates so we match behavoir for for implicit
5562         controls. Fixes explosions in MDI.
5563
5564 2005-12-12  Jackson Harper  <jackson@ximian.com>
5565
5566         * Control.cs: Implement Invalidate (Region).
5567
5568 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
5569
5570         * Control.cs: 
5571           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
5572             the same events as MS does. MS fires events for each property 
5573             except, for unknown reasons, Cursor, when the control is reparented. 
5574             I can't seem to totally match add/remove since MS also fires some 
5575             VisibleChanged events, which makes no sense. Consolidated the
5576             parenting code into a separate method so it can be called from
5577             both Add and Remove. set_Parent no longer needs any special logic
5578             as it calls the parent's add method which implicitly fires
5579             all events
5580           - Removed some obsolete code and debug output
5581           - Enabled state is inherited from parents, if this is enabled
5582
5583 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
5584
5585         * Form.cs: Removed commented out code
5586
5587 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
5588
5589         * Control.cs:
5590           - Added internal version of Invoke, with additional argument 
5591             indicating if we're calling it from a Dispose() handler. That
5592             way we can avoid BeginInvoke throwing an exception if we're
5593             calling for an already destroyed window.
5594           - Added a dispose argument to BeginInvokeInternal, and made the
5595             check if a valid window handle chain exists conditional on
5596             it not being a dispose call
5597           - Removed code in DestroyHandle to destroy our children. Since we
5598             now handle the WM_DESTROY message we will catch all our children
5599             being destroyed.
5600           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
5601         * Form.cs:
5602           - Added a field to track the application context of the form.
5603           - No need to set closing variable as response to WM_CLOSE, instead
5604             we destroy the window. We also call PostQuitMessage if the form
5605             has an application context (which makes it the main app form,
5606             which, when closed terminates the app)
5607         * XplatUI.cs:
5608           - Dropped Exit() method, it's naming was confusing
5609           - Added PostQuitMessage() which causes GetMessage to return false
5610             once the message queue is empty
5611         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
5612           PostQuitMessage()
5613         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
5614           no longer a valid XplatUI method, but left it in since it's used
5615           internally. Added empty PostQuitMessage() method.
5616         * MenuAPI.cs: Replaced call to Exit() with call to
5617           PostQuitMessage, even though this is probably no longer needed.
5618         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
5619         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
5620         * Application.cs:
5621           - Replaced call to XplatUI.Exit() with PostQuitMessage()
5622           - Removed old debug code that would call XplatUI for exception
5623             display, enabled standard exception handling (Still not enabled
5624             though, until NativeWindow's ExternalExceptionHandler define
5625             is removed
5626         * NativeWindow.cs:
5627           - Added internal method to allow control to update NativeWindow
5628             after a window has been destroyed
5629           - Added handling of already destroyed windows when calling i
5630             DestroyWindow
5631           - Added removal of handle from list on ReleaseHandle
5632         * XplatUIX11.cs:
5633           - Dropped GetMessageResult var and related code
5634           - Added PostQuitState to field to track if PostQuitMessage has been
5635             called
5636           - Dropped Exit() method
5637           - Added PostQuitMessage() method
5638           - GetMessage now will return false if PostQuitState is set and no
5639             more messages are in the queue.
5640           - Expose handler will no longer generate WM_PAINT messages if we are
5641             in PostQuitState since it's very likely any windows have already
5642             been destroyed, and since Hwnd won't get updated until we have
5643             processed the DestroyNotify we'd be causing X errors.
5644         
5645 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
5646
5647         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
5648           Thanks to Mike for pointing out the err of my ways.
5649
5650 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
5651
5652         * Control.cs(PreProcessMessage): Moved menu handling back, but
5653           after all other key handling, to match MS (who handles Menu in
5654           DefWndProc)
5655         * Menu.cs (WndProc): Removed my brainfart
5656
5657 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
5658
5659         * Control.cs(PreProcessMessage): Removed special menu handling 
5660         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
5661
5662 2005-12-07  Mike Kestner  <mkestner@novell.com>
5663
5664         * Control.cs : special case SYSKEYUP so that we can adjust keynav
5665         state according in tracker.
5666         * Menu.cs : promote tracker field to base class and provide a tracker
5667         lookup capability.  Add/Remove shortcuts dynamically if the top menu
5668         has a tracker. Unparent items that are removed from the collection.
5669         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
5670         * Theme*.cs: add always_show_hotkeys field to support configurability
5671         of mnemonic display.  win32 doesn't show mnemonics until Alt is
5672         pressed.
5673
5674 2005-12-07  Jackson Harper  <jackson@ximian.com>
5675
5676         * MdiChildContext.cs: Use Control.ResetCursor.
5677         * Control.cs: ResetCursor needs to set the property so that the
5678         correct XplatUI call gets made.
5679
5680 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
5681
5682         * Control.cs: More fixes to make our key events match MS. We
5683           were not setting the modifier state on KeyData, and we were
5684           not generating any events when Alt was pressed with a key
5685           since handling of WM_SYSxxx was missing for the OnKey methods.
5686
5687 2005-12-07  Jackson Harper  <jackson@ximian.com>
5688
5689         * MdiChildContext.cs: reenable the sizing code.
5690         - When the mouse leaves a window reset its cursor.
5691
5692 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
5693
5694         * ThemeClearlooks.cs: Reflect latest Hwnd changes
5695
5696 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
5697
5698         * Hwnd.cs: Now using the theme 3d bordersize to calculate
5699           widths of Fixed3D borders
5700
5701 2005-12-07  Jackson Harper  <jackson@ximian.com>
5702
5703         * MdiClient.cs: Fix warnings. Earn Mike's love.
5704
5705 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
5706
5707         * ThemeClearlooks.cs:
5708           - Adjusted mouse over button color
5709           - Added first parts of CheckBox drawing
5710           - Added correct color for selected text background
5711           - Fixed ComboBox drawing
5712           - Added CPDrawBorder3D and CPDrawBorder
5713
5714 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
5715
5716         * XplatUIX11.cs: Added call to XBell for AudibleAlert
5717
5718 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
5719
5720         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
5721           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
5722           alert users via sound. We could add an enum arg with different
5723           types of alerts in the future
5724
5725 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
5726
5727         * Control.cs: Fix behaviour problems pointed out by Mike
5728
5729 2005-12-05  Mike Kestner  <mkestner@novell.com>
5730
5731         * StatusBarPanel.cs: add Invalidate method and hook it into all the
5732         prop setters.  Calls parent.Refresh for now, but could be maybe be
5733         optimized with an internal method on StatusBar at some point.
5734         [Fixes #76513]
5735
5736 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
5737
5738         * RichTextBox.cs: Implemented get_SelectionColor
5739
5740 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
5741
5742         * ThemeClearlooks.cs:
5743           - Removed dead code
5744           - Draw black button border only if button is Form.AcceptButton
5745           - Draw correct button color for pressed RadioButton if the mouse 
5746             has entered the button
5747           - Updated ProgressBar drawing!
5748           - Updated CPDrawSizeGrip drawing
5749           - Updated StatusBarPanel drawing
5750
5751 2005-12-05  Mike Kestner  <mkestner@novell.com>
5752
5753         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
5754         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
5755
5756 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
5757
5758         * ThemeClearlooks.cs: Initial check-in, activate with
5759           export MONO_THEME=clearlooks
5760         * ThemeEngine.cs: Added ThemeClearlooks
5761
5762 2005-12-03  Mike Kestner  <mkestner@novell.com>
5763
5764         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
5765         [Fixes #76897]
5766
5767 2005-12-02  Jackson Harper  <jackson@ximian.com>
5768
5769         * Form.cs: If the child form has no menu the default main menu is
5770         used as the active menu.
5771
5772 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
5773
5774         * ListBox.cs: Check if any items exist before trying to resolve 
5775           coordinates into items
5776
5777 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
5778
5779         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
5780           as the second color for the background hatch
5781
5782 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
5783
5784         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
5785         * RichTextBox.cs: FormatText position arguments are 1-based, now making
5786           sure that what we pass to FormatText is always 1-based. Fixes #76885
5787
5788 2005-11-29  Miguel de Icaza  <miguel@novell.com>
5789
5790         * NumericUpDown.cs (EndInit): When we are done initializing,
5791         reflect any updates on the UI.
5792
5793 2005-12-02  Jackson Harper  <jackson@ximian.com>
5794
5795         * ImplicitHScrollBar.cs:
5796         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
5797         their container controls.
5798         * TreeView.cs: Use the new implicit scrollbars.
5799
5800 2005-12-02  Jackson Harper  <jackson@ximian.com>
5801
5802         * TreeView.cs: Make top_node internal so the TreeNodeCollections
5803         can play with it.
5804         * TreeNodeCollection.cs: If we remove the topnode we need to
5805         update topnode to the next node in line.
5806         - When clearing nodes go through the same process as removing
5807         them, so they get depareneted and checked if they are top node.
5808
5809 2005-12-01  Jackson Harper  <jackson@ximian.com>
5810
5811         * TreeView.cs: When imagelists are used the image area is
5812         selectable as well as the text.
5813         - If there are no selected nodes select the first one.
5814         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
5815         so don't do it more then we need to.
5816
5817 2005-12-01  Jackson Harper  <jackson@ximian.com>
5818
5819         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
5820         that arrows can be scaled.
5821
5822 2005-12-01  Jackson Harper  <jackson@ximian.com>
5823
5824         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
5825         fail. Patch by Dieter Bremes
5826
5827 2005-11-30  Jackson Harper  <jackson@ximian.com>
5828
5829         * Form.cs: Property is 2.0 only
5830         * PrintDialog.cs: Signature fix.
5831
5832 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
5833
5834         * TextControl.cs: 
5835           - No longer artificially moves text 2 pixels down (now that we have
5836             borders this is no longer needed)
5837           - Added calcs for left, hanging and right indent
5838
5839 2005-11-23  Mike Kestner  <mkestner@novell.com>
5840
5841         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
5842
5843 2005-11-30  Jackson Harper  <jackson@ximian.com>
5844
5845         * MdiChildContext.cs: Set the cloned menus forms, as these don't
5846         get cloned as part of CloneMenu ().
5847         * Menu.cs: Make sure the parent of the items get set correctly
5848         when they are added.  And the owners are notified of the changes.
5849         * Form.cs: Create an ActiveMenu property, so that when MDI is used
5850         we can change the menu being displayed/handled by the form without
5851         changing the menu assosciated with the form.
5852         - Don't let Mdi children draw/handle menus.
5853         
5854 2005-11-30  Jackson Harper  <jackson@ximian.com>
5855
5856         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
5857         a MenuChanged event. Just to make the API a little more
5858         consistent.
5859         * MainMenu.cs:
5860         * MenuItem.cs: Use the new OnMenuChanged
5861         * MdiChildContext.cs: Handle menu merging.
5862         * Form.cs: Implement MergedMenu.
5863         
5864 2005-11-30  Jackson Harper  <jackson@ximian.com>
5865
5866         * Menu.cs: We were misusing Add. Add goes behind the specified
5867         index according to the docs, and does not replace the specified
5868         index. So I added an Insert method.
5869
5870 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
5871
5872         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
5873           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
5874           is for Jackson
5875         * RichTextBox.cs: Added calls to base for DnD events
5876
5877 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
5878
5879         * TextControl.cs:
5880           - Fixed drag-selection related crash; style fixes
5881           - Implemented undo class
5882             o Implemented method to capture document state for specified
5883               range in document tree
5884             o Implemented method to restore captured document state
5885             o Implemented cursor tracking
5886             o Implemented basic undo stack
5887           - Added undo cursor tracking to methods altering cursor location
5888           - Added undo tracking to selection deletion (still missing
5889             other text-altering hookups)
5890         * RichTextBox.cs:
5891           - Added SelectionLength property
5892           - Implemented CanPaste()
5893           - Implemented Paste()
5894           - Added missing protected methods
5895           - Fixed RTF->Document conversion; now uses font index 0 and color 
5896             index 0 as the default font for the parsed text
5897           - Fixed RTF<->Document font size translation
5898           - Fixed RTF generation, now properly handles cross-tag boundaries
5899             for single line selection
5900           - No longer always appends blank line to generated RTF
5901           - Removed TODOs
5902           - Added missing attributes
5903           - Hooked up undo-related methods
5904         * TextBoxBase.cs:
5905           - Implemented Copy()
5906           - Implemented Paste()
5907           - Implemented Cut()
5908           - Fixed caret mis-behaviour on backspace across line-boundaries
5909
5910 2005-11-29  Jackson Harper  <jackson@ximian.com>
5911
5912         * MdiClient.cs: Add a method for activating mdi children. Very
5913         basic right now. I imagine someday it might need more girth.
5914         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
5915         children windows names are added to the menu item.
5916         * ThemeWin32Classic.cs: Draw the arrow if the item is an
5917         mdilist. This happens regardless of whether or not there are any
5918         mdi windows to see in the list, and according to my tests happens
5919         before the items are even added. Also happens if there isn't even
5920         an mdi client to get windows from.
5921
5922 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
5923
5924         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
5925         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
5926
5927 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
5928
5929         * DataGridTableStyle.cs:
5930           - Create always the styles for the missing columns even if they are
5931             provided by the user (not default table style)
5932         * DataGrid.cs:
5933           - Fixes bug 76770
5934           - Fixes SetDataBinding (always re-attach source)
5935           - Fixes SetNewDataSource (only clear styles if they are not for 
5936             this source)
5937          -  Expands OnTableStylesCollectionChanged to handle style refresh 
5938             and remove properly
5939
5940 2005-11-29  Jackson Harper  <jackson@ximian.com>
5941
5942         * FileDialog.cs: Implement missing bits, remove some dead
5943         code.
5944         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
5945         creation of the panel so that the options set on the dialog are
5946         seen when the panel is created.
5947         * TreeView.cs: raise a click when items are clicked.
5948         
5949 2005-11-29  Jackson Harper  <jackson@ximian.com>
5950
5951         * MdiClient.cs: Pass some signature methods through to base.
5952
5953 2005-11-28  Jackson Harper  <jackson@ximian.com>
5954
5955         * ListView.cs: Raise the click event when items are clicked.
5956
5957 2005-11-28  Jackson Harper  <jackson@ximian.com>
5958
5959         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
5960         a nullref.
5961
5962 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
5963
5964         * ThemeNice.cs: - Removed 1 pixel bitmaps
5965           - Use SmoothingMode.AntiAlias where it makes sense
5966             (ScrollButton arrow for example)
5967           - Enhanced Button focus drawing
5968           - Fixed ComboBox drawing (no artefacts anymore, focus
5969             rectangle is back again, reduced size of ComboButton, etc.)
5970           - Fixed RadioButton focus drawing for Appearence.Button
5971           - Slight ScrollButton redesign
5972           - Some LinearGradientBrush size fixes
5973           - GroupBoxes have now rounded edges
5974           - Fixed StatusBar drawing
5975
5976 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
5977
5978         * ThemeNice.cs: - Remove dead code
5979           - use correct background colors for menus, etc.
5980           - Fake pixel drawing with 1 pixel bitmaps
5981
5982 2005-11-24  Jackson Harper  <jackson@ximian.com>
5983
5984         * MdiClient.cs: Size the scrollbars when resizing the window.
5985         - Resize the maximized windows when the client is resized
5986         * Form.cs: Make the child context available
5987         
5988 2005-11-23  Jackson Harper  <jackson@ximian.com>
5989
5990         * MdiChildContext.cs: Don't size windows if they are maximized.
5991
5992 2005-11-23  Mike Kestner  <mkestner@novell.com>
5993
5994         * ContextMenu.cs: use MenuTracker.
5995         * Control.cs: remove menu handle usage.
5996         * Form.cs: remove menu handle usage.
5997         * Hwnd.cs: remove menu handle usage.
5998         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
5999         motion and clicks to the new Tracker handlers.
6000         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
6001         and handle usage.
6002         * MenuAPI.cs: refactored to combine popup and menubar event handling.
6003         Killed the MENU and MENUITEM data types and associated collections
6004         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
6005         MenuTracker class that exposes the leftovers from the old MenuAPI
6006         static methods. Restructured Capture handling so that only one grab is
6007         done for the entire menu hierarchy instead of handing off grabs to
6008         submenus. Tracker now has an invisible control to Capture when active.
6009         * MenuItem.cs: add sizing accessors, kill Create
6010         and handle usage.
6011         * Theme.cs: remove menu handle and MENU(ITEM) usage.
6012         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
6013         MENU(ITEM). remove menu handle usage, use Menu directly.
6014         * XplatUIDriver.cs: remove menu handle usage.
6015         * XplatUIOSX.cs: remove menu handle usage.
6016         * XplatUIWin32.cs: remove menu handle usage.
6017         * XplatUIX11.cs: remove menu handle usage.
6018
6019 2005-11-22  Jackson Harper  <jackson@ximian.com>
6020
6021         * Hwnd.cs: Don't compute the menu size for
6022         DefaultClientRectangle.
6023         - Reenable menu sizes being computed for GetClienRectangle.
6024         * Form.cs: Remove comment of trechery
6025         
6026 2005-11-22  Jackson Harper  <jackson@ximian.com>
6027
6028         * Hwnd.cs: The adjustments for the menu bar are made when it is
6029         attached to the form.
6030
6031 2005-11-19  Jackson Harper  <jackson@ximian.com>
6032
6033         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
6034         (just like on windows).
6035
6036 2005-11-19  Jackson Harper  <jackson@ximian.com>
6037
6038         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
6039         use real buttons anymore because they are in non client area. The
6040         one TODO here is that I need to somehow invalidate a section of
6041         the non client area.
6042
6043 2005-11-18  Jackson Harper  <jackson@ximian.com>
6044
6045         * Control.cs: Put the enum check back in now that MDI doesnt have
6046         to use this to set border styles.
6047         * Form.cs: Only set mdi child windows borders if the handle has
6048         been created.
6049         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
6050         this directly on to the driver.
6051         - Get the move start position before adjusting for the titlebar
6052         height, this fixes the windows "skipping" when they are first
6053         moved.
6054
6055 2005-11-18  Jackson Harper  <jackson@ximian.com>
6056
6057         * XplatUIX11.cs: Just compute the mdi borders separately as they
6058         don't totally match up with normal form borders.
6059
6060 2005-11-18  Jackson Harper  <jackson@ximian.com>
6061
6062         * Control.cs: Set WS_ styles for borders, so that the driver does
6063         not have to retrieve the control instance to figure out what kind
6064         of borders it should have.
6065         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
6066         driver can know its an mdi child easily.
6067         * XplatUIX11.cs: Get the border styles and whether the window is
6068         MDI from the Styles and ExStyles params instead of having to get a
6069         control. This prevents a chicken and egg problem.       
6070
6071 2005-11-18  Jackson Harper  <jackson@ximian.com>
6072
6073         * MdiClient.cs: Fix typo so scrollbars show up correctly.
6074
6075 2005-11-18  Jackson Harper  <jackson@ximian.com>
6076
6077         * MdiClient.cs: Calculate when to add and remove scrollbars
6078         correctly.
6079         * MdiChildContext.cs: Adjust the y position to take the titlebar
6080         into account.
6081         - No height for FormBorderStyle.None
6082
6083 2005-11-18  Jackson Harper  <jackson@ximian.com>
6084
6085         * Control.cs: Allow non enum values to be used for
6086         InternalBorderStyle.  MDI does this to set a special border style.
6087         - New utility methods for converting points to/from client coords
6088         - Add the newly created control to the Controls collection before
6089         updating its style. This way UpdateStyle can walk the control
6090         heirarchy to find the control if needed.
6091         so I don't need to create a new Point object all the time.
6092         * Form.cs: Let MDI windows handle their border styles.
6093         - Set styles on MDI windows so the correct title style is derived.
6094         * MdiChildContext.cs: Move all the painting and window handling
6095         into the non client area.
6096         - Use correct sizing and put correct buttons on frames based on
6097         the FormBorderStyle.
6098         - Notify the mdi client about scrolling
6099         - Need to handle the buttons ourselves now, because they are all
6100         in non client areas and we can't add controls there.
6101         * MdiClient.cs: Halfway to scrolling, this implementation is
6102         somewhat broken though, we need to check to make sure other
6103         windows aren't causing scrolling before removing the bars. Also
6104         the bars need to be drawn on top, maybe I can switch implicit
6105         controls to be on top.
6106         * Hwnd.cs: caption_height and tool_caption_height are now
6107         properties of an hwnd, this way they can be set by the driver
6108         based on the type of window they are.  In X11 the window manager
6109         handles the decorations so caption_height is zero unless its an
6110         MDI window.
6111         - Add 3 pixel borders for MDI windows (0xFFFF).
6112         - Get rid of some code duplication, have DefaultClientRectanle
6113         just call GetClientRectangle.
6114         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
6115         Hwnd now.
6116         - Set border styles differently for mdi windows.
6117         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
6118         Hwnd now.
6119         
6120 2005-11-15  Mike Kestner  <mkestner@novell.com>
6121
6122         * Menu.cs: when adding an item to the collection, if item is already 
6123         parented, remove it from the parent.
6124
6125 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
6126
6127         * X11DesktopColors.cs: Added KDE support
6128
6129 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
6130
6131         * XplatUIWin32.cs: 
6132           - Clipboard methods now can translate Rtf format
6133           - No longer removes clipboard contents whenever a new format is added
6134             to allow placing multiple formats on the clipboard
6135         * Clipboard.cs: Clipboard now supports getting a IDataObject and
6136           will place all formats contained in it onto the clipboard. Also
6137           now cleans the clipboard before placing a new object onto it
6138         * RichTextBox.cs:
6139           - Implemented set_Rtf
6140           - Implemented set_SelectedRtf
6141           - Created InsertRTFFromStream() method to allow single code base
6142             for all properties and methods that insert RTF into document
6143           - Removed debug output
6144         * TextControl.cs:
6145           - Fixed Delete(int) to fix up line numbers
6146           - Fixed ReplaceSelection to combine start and end line
6147           - Fixed serious DeleteChars bug that would leave the document tree
6148             broken
6149           - Improved DumpTree with several logic checks to detect broken
6150             document trees
6151           - Removed debug lines
6152           - Fixed Caret.WordForward/WordBack moving code, now always also 
6153             updates caret.tag (fixes crash when word-selecting across tag
6154             boundaries via keyboard)
6155           - Added Insert() method for inserting multiline text into documents
6156           - Fixed DeleteChars() calculation errors that would cause a broken
6157             tag chain with multiple tag lines
6158           - DeleteChars() no longer crashes on multi-tag lines if not all tags
6159           - Split() no longer moves caret if split is at caret location
6160           - ReplaceSelection() now updates the cursor and re-displays it
6161           - ReplaceSelection() now uses new Insert() method to avoid code
6162             duplication
6163           - FormatText() can now handle formatting partial lines
6164         * TextBoxBase.cs:
6165           - Append now uses new TextControl.Insert() method (this avoids 
6166             duplicate code)
6167           - Implemented Ctrl-X (Cut) (
6168           - Implemented Ctrl-C (Copy)
6169           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
6170             regeneration when pasting text; roundtripping Copy&Paste within
6171             edit control still fails due to some calculation bugs in GenerateRTF)
6172           - The Delete key will now remove the current selection if it is visible
6173         * TextBox.cs: Removed debug lines
6174         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
6175           driver to be initialized and can't therefore be done via a static ctor)
6176
6177 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
6178
6179         * TextControl.cs: Added backend code for finding char arrays and strings
6180         * TextBoxBase.cs:
6181           - Added mouse wheel scroll support
6182           - Added support for VScroll and HScroll events
6183         * RichTextBox.cs:
6184           - Implemented all seven Find() variants
6185           - Implemented GetCharFromPosition()
6186           - Implemented GetCharIndexFromPosition()
6187           - Implemented GetLineFromIndex()
6188           - Implemented GetPositionFromCharIndex();
6189           - Implemented SaveFile for PlainText and UnicodeText
6190           - Fixed set_Font, now setting a new font applies that font to
6191             the whole document
6192           - Implemented generic Document to RTF converter
6193           - Implemented SaveFile for RichText format (still missing unicode
6194             conversion for non-ansi chars)
6195           - Implemented get_Rtf
6196           - Implemented get_SelectedRtf
6197
6198 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
6199
6200         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
6201           to allow any captures to be released before triggering OnClick. This
6202           way a click handler may capture the mouse without interference.
6203         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
6204           This way we send them even though X may not allow a grab (if the window
6205           isn't visible, for example)
6206
6207 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
6208
6209         * DataGridViewRowEventArgs.cs: DataGridView implementation
6210         * DataGridViewElement.cs: DataGridView implementation
6211         * DataGridViewComboBoxCell.cs: DataGridView implementation
6212         * DataGridViewDataErrorContexts.cs: DataGridView implementation
6213         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
6214         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
6215         * ImageLayout.cs: DataGridView implementation
6216         * DataGridViewComboBoxColumn.cs: DataGridView implementation
6217         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
6218         * DataGridViewSelectionMode.cs: DataGridView implementation
6219         * IDataGridViewEditingControl.cs: DataGridView implementation
6220         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
6221         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
6222         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
6223         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
6224         * DataGridViewColumnSortMode.cs: DataGridView implementation
6225         * DataGridView.cs: DataGridView implementation
6226         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
6227         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
6228         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
6229         * Padding.cs: DataGridView implementation
6230         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
6231         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
6232         * DataGridViewRowEventHandler.cs: DataGridView implementation
6233         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
6234         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
6235         * DataGridViewButtonCell.cs: DataGridView implementation
6236         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
6237         * DataGridViewEditMode.cs: DataGridView implementation
6238         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
6239         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
6240         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
6241         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
6242         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
6243         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
6244         * DataGridViewCellEventHandler.cs: DataGridView implementation
6245         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
6246         * DataGridViewCellStyleConverter.cs: DataGridView implementation
6247         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
6248         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
6249         * DataGridViewColumnEventArgs.cs: DataGridView implementation
6250         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
6251         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
6252         * QuestionEventArgs.cs: DataGridView implementation
6253         * IDataGridViewEditingCell.cs: DataGridView implementation
6254         * DataGridViewTriState.cs: DataGridView implementation
6255         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
6256         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
6257         * DataGridViewColumnCollection.cs: DataGridView implementation
6258         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
6259         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
6260         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
6261         * DataGridViewColumn.cs: DataGridView implementation
6262         * DataGridViewCellBorderStyle.cs: DataGridView implementation
6263         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
6264         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
6265         * DataGridViewRow.cs: DataGridView implementation
6266         * DataGridViewImageCellLayout.cs: DataGridView implementation
6267         * DataGridViewImageCell.cs: DataGridView implementation
6268         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
6269         * DataGridViewCheckBoxCell.cs: DataGridView implementation
6270         * DataGridViewHeaderCell.cs: DataGridView implementation
6271         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
6272         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
6273         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
6274         * DataGridViewTextBoxColumn.cs: DataGridView implementation
6275         * QuestionEventHandler.cs: DataGridView implementation
6276         * DataGridViewCellStyleScopes.cs: DataGridView implementation
6277         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
6278         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
6279         * DataGridViewCell.cs: DataGridView implementation
6280         * DataGridViewCellEventArgs.cs: DataGridView implementation
6281         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
6282         * DataGridViewCellStyle.cs: DataGridView implementation
6283         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
6284         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
6285         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
6286         * TextFormatFlags.cs: DataGridView implementation
6287         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
6288         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
6289         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
6290         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
6291         * DataGridViewButtonColumn.cs: DataGridView implementation
6292         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
6293         * HandledMouseEventArgs.cs: DataGridView implementation
6294         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
6295         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
6296         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
6297         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
6298         * DataGridViewRowCollection.cs: DataGridView implementation
6299         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
6300         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
6301         * DataGridViewHitTestType.cs: DataGridView implementation
6302         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
6303         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
6304         * DataGridViewColumnEventHandler.cs: DataGridView implementation
6305         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
6306         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
6307         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
6308         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
6309         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
6310         * DataGridViewContentAlignment.cs: DataGridView implementation
6311         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
6312         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
6313         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
6314         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
6315         * DataGridViewPaintParts.cs: DataGridView implementation
6316         * DataGridViewCellCollection.cs: DataGridView implementation
6317         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
6318         * DataGridViewImageColumn.cs: DataGridView implementation
6319         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
6320         * DataGridViewElementStates.cs: DataGridView implementation
6321         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
6322         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
6323         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
6324         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
6325         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
6326         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
6327         * DataGridViewRowHeaderCell.cs: DataGridView implementation
6328         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
6329         * DataGridViewTextBoxCell.cs: DataGridView implementation
6330         * DataGridViewBand.cs: DataGridView implementation
6331         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
6332         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
6333         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
6334         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
6335         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
6336         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
6337         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
6338         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
6339         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
6340         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
6341         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
6342
6343 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
6344
6345         * ThemeWin32Classic.cs: 
6346           - Draw the outside focus rectangle around buttons
6347           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
6348             doesn't use end caps for every dash of a line anymore. This
6349             workaround ignores the forecolor.
6350
6351 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
6352
6353         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
6354           endian safe.
6355
6356 2005-11-07  Jackson Harper  <jackson@ximian.com>
6357
6358         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
6359
6360 2005-11-07  Jackson Harper  <jackson@ximian.com>
6361
6362         * ScrollableControl.cs: Calculate the maximum and change vars
6363         (more) correctly so that scrollbars appear as a sensible size.
6364
6365 2005-11-04  Jackson Harper  <jackson@ximian.com>
6366
6367         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
6368         collection.
6369         * TreeView.cs: When the tree is sorted null out the top_node so
6370         that it is recalculated.
6371         - Use dotted lines instead of dashed lines to match MS better.
6372
6373 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
6374
6375         * ListView.cs: 
6376           - Implements key search for items. Useful when browsing files with FileDialog
6377           - When changing view mode or when clear the items reset scrollbar positions
6378
6379 2005-11-04  Jackson Harper  <jackson@ximian.com>
6380
6381         * CurrencyManager.cs: Implement the MetaDataChanged event, the
6382         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
6383         as to what the method may do as there is no real way of creating a
6384         derived CurrencyManager and calling the method. 
6385
6386 2005-11-03  Jackson Harper  <jackson@ximian.com>
6387
6388         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
6389         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
6390         method which seems to just be used internally to refresh the tabs.
6391
6392 2005-11-03  Jackson Harper  <jackson@ximian.com>
6393
6394         * TabControl.cs: Implement the remove method. Fix some broken
6395         comments.
6396
6397 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
6398
6399         * DateTimePicker.cs:
6400           - Added missing DateTimePickerAccessibleObject class
6401           - Added missing events
6402           - Added OnFontChanged method
6403         * Form.cs: Added missing attributes
6404         * TreeView.cs: Added missing attributes
6405
6406 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
6407
6408         * GridItemCollection.cs: Fix signatures
6409
6410 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
6411
6412         * XplatUI.cs: Updated build rev/date
6413         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
6414           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
6415         * Application.cs: Trigger context-specific ExitThread events
6416
6417 2005-11-03  Jackson Harper  <jackson@ximian.com>
6418
6419         * Menu.cs:
6420         * MainMenu.cs:
6421         * GridTableStylesCollection.cs:
6422         * Timer.cs:
6423         * TabPage.cs:
6424         * HelpProvider.cs:
6425         * StatusBar.cs:
6426         * MonthCalendar.cs: Signature fixes
6427
6428 2005-11-03  Jackson Harper  <jackson@ximian.com>
6429
6430         * TreeNodeCollection.cs: Remove should not be virtual.
6431         * TreeView.cs: Implement the last of the missing methods.
6432
6433 2005-11-03  Jackson Harper  <jackson@ximian.com>
6434
6435         * TreeNodeConverter.cs: Implement to get off my class-status back.
6436
6437 2005-11-03  Jackson Harper  <jackson@ximian.com>
6438
6439         * TreeView.cs: Hookup the bits for drag and drop.
6440         * TreeNode.cs: Don't cache the tree_view or index anymore, now
6441         that nodes can be moved from tree to tree easily this just causes
6442         all sorts of problems.
6443         * TreeNodeCollection: Don't need to give treenodes an index and
6444         treeview anymore when they are added, these are computed on the
6445         fly. Also make sure to remove a node before its added.
6446
6447 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
6448
6449         * TextControl.cs:
6450           - Added CaretSelection enum
6451           - Added comparison methods to Marker struct, makes selection code
6452             more readable
6453           - Added SelectionStart and SelectionEnd as 'moveable' location for
6454             the CaretDirection enum and handler
6455           - Added selection_prev variable to track optimized invalidation for
6456             word and line selection
6457           - Added SelectionVisible property (returns true if there is a valid 
6458             selection)
6459           - Switched CaretHasFocus to only display the caret if there is no
6460             visible selection
6461           - Avoiding StringBuilder.ToString to retrieve a single char, instead
6462             using the direct character index; should be much faster
6463           - Added various conditional debug statements
6464           - Fixed invalidation calculation for selection ranges
6465           - Added ExpandSelection() method to support word and line selection
6466           - Switched SetSelectionToCaret to use new Marker compare overloads
6467           - Added central IsWordSeparator() method to determine word 
6468             separators/whitespace and FindWordSeparator() to streamline common
6469             usage of IsWordSeparator()
6470         * TextBoxBase.cs:
6471           - Removed unneeded grabbed variable, it was just mirroring
6472             Control.Capture
6473           - No longer firing OnTextChanged event when Text setter is called,
6474             since the base will fire the event for us
6475           - Added handling of Ctrl-Up/Down selection
6476           - Added handling of Shift-Cursorkey selection
6477           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
6478             words
6479           - Added handling of Shift and Ctrl-Shift-Home/End selection
6480           - Removed some debug output
6481           - Added handling for single/double/tripple-click to place caret/
6482             select word/select line respectively (Fixes bug #76031)
6483           - Added support for drag expansion of word/line selection
6484         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
6485           current selection
6486
6487 2005-11-02  Jackson Harper  <jackson@ximian.com>
6488
6489         * X11Dnd.cs: If the drag is going to and from a MWF window just
6490         copy the data instead of sending it out through the X Selection
6491         mechanism.
6492
6493 2005-11-02  Jackson Harper  <jackson@ximian.com>
6494
6495         * X11Dnd.cs:
6496         * XplatUIX11.cs: When in a drag we don't want motion notify
6497         messages to get passed on to the other controls. This prevents
6498         mouse move messages from showing up in the drag source.
6499
6500 2005-11-02  Jackson Harper  <jackson@ximian.com>
6501
6502         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
6503         the correct button is release to end a drag.
6504         * XplatUIX11.cs: Make the button state internal so the drag system
6505         can access it.  Dragging needs to know about all button releases,
6506         not just left button.
6507
6508 2005-11-02  Miguel de Icaza  <miguel@novell.com>
6509
6510         * Form.cs (Icon): If the icon is null, reset the icon to the
6511         default value. 
6512
6513         * Cursor.cs: When writing the AND-mask bitmap do not include the
6514         number of colors, but hardcode those to two (black and white),
6515         fixes the loading of color cursors (Paint Dot Net).
6516
6517         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
6518         turn off autoscaling.
6519
6520         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
6521
6522 2005-11-02  Jackson Harper  <jackson@ximian.com>
6523
6524         * X11Dnd.cs: Make sure to send a status message if the pointer
6525         enters a control that can not accept a drop, otherwise the cursor
6526         isn't updated correctly. Also tried to compress the lines of code
6527         a bit.
6528
6529 2005-11-02  Jackson Harper  <jackson@ximian.com>
6530
6531         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
6532         set actions correctly.  This isn't perfect as XDND and win32 have
6533         some differences on how you allow actions. I'll clear this up by
6534         adding a path for drag from MWF to MWF windows.
6535         * XplatUIX11.cs: Hook into the dnd system.
6536
6537 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
6538
6539         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
6540         previously shown but they are no longer need it. Very obvious when 
6541         browsing files with FileDialog.
6542
6543 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
6544
6545         * Control.cs: We always need to call OnPaintBackground. We pretty much
6546           ignore AllPaintingInWmPaint and always do the painting there, whether 
6547           it's set or not, since we always ignore the WM_ERASEBKGND message 
6548           (which we don't generate on X11). This fixes #76616.
6549         * Panel.cs: Removed unneeded background painting. This happens properly
6550           in Control.cs already
6551
6552 2005-10-31  Mike Kestner  <mkestner@novell.com>
6553
6554         * Menu.cs: Add items to collection before setting their index.
6555         * MenuItem.cs : add range checking with ArgumentException like MS.
6556         [Fixes #76510]
6557
6558 2005-10-31  Jackson Harper  <jackson@ximian.com>
6559
6560         * ListBox.cs: Invalidate if the area is visible at all not just
6561         contained in the visible rect. Fixes unselection of semi visible
6562         items.
6563
6564 2005-10-31  Jackson Harper  <jackson@ximian.com>
6565
6566         * Control.cs: Consistently name the dnd methods. Make them
6567         internal so we can override them to match some MS behavoir
6568         internally.
6569         * Win32DnD.cs: Use the new consistent names.
6570
6571 2005-10-31  Jackson Harper  <jackson@ximian.com>
6572
6573         * TreeView.cs: Don't draw the selected node when we lose focus.
6574
6575 2005-10-31  Jackson Harper  <jackson@ximian.com>
6576
6577         * X11Dnd.cs: We still need to reset the state even though a full
6578         reset isn't being done, otherwise status's still get sent all over
6579         the place.
6580
6581 2005-10-31  Jackson Harper  <jackson@ximian.com>
6582
6583         * Control.cs: Make the dnd_aware flag internal so the dnd
6584         subsystem can check it. Catch exceptions thrown in dnd handlers to
6585         match MS behavoir.
6586         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
6587         * X11Dnd.cs: Handle null data in the converters. Set the XDND
6588         version when sending a XdndEnter. Use the control/hwnd dnd_aware
6589         flags to reduce the number of dnd enters/status's sent.
6590
6591 2005-10-31  Jackson Harper  <jackson@ximian.com>
6592
6593         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
6594
6595 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
6596
6597         * PictureBox.cs: Fixes 76512
6598
6599 2005-10-28  Jackson Harper  <jackson@ximian.com>
6600
6601         * X11Dnd.cs: Early implementation to support winforms being a drag
6602         source for data on X11. Also restructured the converters so they
6603         can go both ways now.
6604         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
6605         
6606 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
6607
6608         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
6609           clipboard requests
6610
6611 2005-10-27  Jackson Harper  <jackson@ximian.com>
6612
6613         * TreeNode.cs: Implement serialization so my DnD examples will work.
6614
6615 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
6616
6617         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
6618           TreeView.cs: Don't dispose objects that are not owned.
6619           
6620 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
6621
6622         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
6623           should retrieve the current cursor and report that, but XplatUI
6624           doesn't (yet) have an interface for that (and I'm not sure I even
6625           can, on X11)
6626         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
6627           until any message loop processing is done (and the WM_SETCURSOR
6628           replaces the cursor to the proper one)
6629         * XplatUIX11.cs: 
6630           - Fixed override behaviour, we can't set the cursor globally on X11, 
6631             just for our windows.
6632           - Invalidating the System.Drawing X11 display handle when we are
6633             shutting down
6634         * Control.cs: Fix to make csc happy
6635
6636 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
6637
6638         * TextBoxBase.cs: 
6639           - get_Text: Add last line (without trailing newline) to returned
6640             value (Fixes 76212)
6641           - get_TextLength: Count last line in returned length
6642           - ToString: Call Text property instead of duplicating code
6643
6644 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
6645
6646         * ImageList.cs: Dispose ImageAttributes objects.
6647
6648 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
6649
6650         * ImageList.cs: Use attribute constructors with less arguments where
6651           possible.
6652
6653 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
6654
6655         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
6656           Use typeof instead of strings when assembly is referenced. Added
6657           some more comments.
6658
6659 2005-10-21  Jackson Harper  <jackson@ximian.com>
6660
6661         * ListView.cs: Raise a double click event. Also tried to somewhat
6662         fix when the selectedindexchanged event is raised. Its still
6663         broken though.
6664
6665 2005-10-21  Jackson Harper  <jackson@ximian.com>
6666
6667         * TreeView.cs: New method to invalidate the plus minus area of a
6668         node without invalidating the whole node (maybe this can be used
6669         in some more places).
6670         * TreeNodeCollection.cs: When adding to an empty node we need to
6671         invalidate its plus minus area so the little block shows up.
6672         
6673 2005-10-21  Jackson Harper  <jackson@ximian.com>
6674
6675         * TreeView.cs: Make sure that when we invalidate a node the bounds
6676         are big enough to cover the selected box and the focus
6677         rectangle. Use a different colour for the lines connecting nodes
6678         so they show up with all themes.
6679
6680 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
6681
6682         * NativeWindow.cs: Don't call anything that could call into the driver,
6683           we might be on a different thread.
6684
6685 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
6686
6687         * Control.cs(Dispose): Since Dispose might run on a different thread,
6688           make sure that we call methods that could call into the driver via
6689           invoke, to avoid thread issues
6690
6691 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
6692
6693         * XplatUI.cs: Removed finalizer
6694         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
6695           not allowing to be called on the finalizer thread.
6696
6697 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
6698
6699         * ImageList.cs:
6700           - Reverted r51889 and r51891.
6701           - Added ImageListItem class that stores unmodified image items and image
6702             properties required to create list images until handle is created.
6703           - Added AddItem and moved image creation logic to AddItemInternal.
6704           - Added CreateHandle method that creates images based on unmodified items.
6705           - Added DestroyHandle that changes state to store unmodified items.
6706           - Add and AddStrip methods no more create handle.
6707           - ReduceColorDepth has no return value.
6708           - Dispose destroys handle.
6709           - Modified other methods to reflect the above changes.
6710           - Implemented key support.
6711           - Added profile 2.0 members and attributes.
6712           - Added private Reset and ShouldSerialize methods that provide the same
6713             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
6714             them as they are private.
6715           - Added some more comments about implementation details.
6716
6717 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
6718
6719         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
6720
6721 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
6722
6723         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
6724
6725 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
6726
6727         * DataGridDrawingLogic.cs: Fixes column hit calcultation
6728         * DataGridColumnStyle.cs: Remove debug message
6729
6730 2005-10-20  Jackson Harper  <jackson@ximian.com>
6731
6732         * TreeView.cs: We can always get input keys regardless of whether
6733         or not editing is enabled. They are used for navigation.
6734
6735 2005-10-20  Jackson Harper  <jackson@ximian.com>
6736
6737         * TreeNode.cs: Use the viewport rect for determining if a node
6738         needs to be moved for visibility. Don't use Begin/End edit. This
6739         calls a full refresh when its done.
6740         * TreeView.cs: New SetBottom works correctly.  Make the viewport
6741         rect property internal so the treenodes can see it. When clicking
6742         on a node we need to ensure that its visible because it might just
6743         be partly visible when clicked.
6744
6745 2005-10-20  Jackson Harper  <jackson@ximian.com>
6746
6747         * TreeNodeCollection.cs: Remove debug code.
6748
6749 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
6750
6751         * Datagrid.cs: Implements column sorting in Datagrid
6752         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
6753
6754 2005-10-20  Jackson Harper  <jackson@ximian.com>
6755
6756         * TreeNodeCollection.cs: Remove items properly. Update the correct
6757         area after removing them.
6758
6759 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
6760
6761         * Datagrid.cs: Should not call base.OnPaintBackground
6762
6763 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
6764
6765         * XplatUIX11.cs (GetMessage):
6766           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
6767             window instead of client window
6768           - Now properly calculates NC_xBUTTONUP message coordinates
6769           - ScreenToMenu now properly calculates it's coordinates of whole 
6770             window, since menus are in the whole window, not in the client
6771             window
6772           - Added WholeToScreen coordinate translation method
6773
6774 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
6775
6776         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
6777           want to return a message, loop back to the beginning of the function
6778           and grab the next real message to process instead.
6779
6780 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
6781
6782         * Splitter.cs: Properly set limits if no filler control is used
6783
6784 2005-10-19  Jackson Harper  <jackson@ximian.com>
6785
6786         * ColorDialog.cs: Don't show the help button if it is not enabled
6787         instead of disabling it (this is what MS does). Don't create the
6788         panel until the dialog is run, otherwise the vars (such as
6789         ShowHelp) are not set yet.
6790
6791 2005-10-19  Jackson Harper  <jackson@ximian.com>
6792
6793         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
6794         are reduced when adding nodes.
6795         * TreeNode.cs:
6796         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
6797         tree.
6798         
6799 2005-10-19  Jackson Harper  <jackson@ximian.com>
6800
6801         * FolderBrowserDialog.cs: End editing our treeview so the window
6802         actually gets refreshed.
6803
6804 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
6805
6806         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
6807           Obsoleted handling of WM_ERASEBKGND, now always draws our background
6808           inside of WM_PAINT
6809
6810 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
6811
6812         * MenuAPI.cs: Returns after Hidding window
6813         * XplatUIX11.cs: Added TODO found while debugging menu issues
6814
6815 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
6816
6817         * XplatUIX11.cs: Do not re-map the whole window when it's size
6818           becomes non-zero unless it's supposed to be actually visible
6819
6820 2005-10-18  Jackson Harper  <jackson@ximian.com>
6821
6822         * TreeView.cs: We don't need to keep a count anymore.
6823         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
6824         use the Grow method.
6825
6826 2005-10-18  Jackson Harper  <jackson@ximian.com>
6827
6828         * TreeNodeCollection.cs: Insert is not supported on arrays, so
6829         implement it manually here.
6830
6831 2005-10-18  Jackson Harper  <jackson@ximian.com>
6832
6833         * ImageList.cs: Dont kill the list when the colour depth is
6834         changed, just change the colour depth of all the images.
6835         - Same goes for setting the image size. Just resize them all
6836         instead of killing the list softly.
6837
6838 2005-10-18  Jackson Harper  <jackson@ximian.com>
6839
6840         * Control.cs: Don't invalidate empty rectangles.
6841
6842 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
6843
6844         * ListViewItem.cs:
6845           - Adds checked item to the Checked/Item lists (where empty before)
6846           - Do not add items to the Selected lists if they are already present
6847         * ListView.cs:
6848           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
6849           - When deleting items make sure that we delete them for the Selected
6850           and Checked list also.
6851
6852 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
6853
6854         * Label.cs: Dispose objects no longer used
6855         * ThemeWin32Classic.cs: Dispose objects no longer used
6856
6857 2005-10-18  Jackson Harper  <jackson@ximian.com>
6858
6859         * TabControl.cs: Don't refresh the whole control when the tabs are
6860         scrolled, we just need to refresh the tab area.
6861
6862 2005-10-17  Jackson Harper  <jackson@ximian.com>
6863
6864         * XplatUIX11.cs: Compress code a little bit. Only calculate the
6865         after handle when we need it.
6866
6867 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
6868
6869         * Control.cs: When the parent size changes, recalculate anchor 
6870           positions. Partial fix for #76462
6871
6872 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
6873
6874         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
6875           drawn. Fixes #76462
6876
6877 2005-10-17  Jackson Harper  <jackson@ximian.com>
6878
6879         * MonthCalendar.cs: Don't create the numeric up down until our
6880         handle is created. Otherwise our handle is created in the
6881         constructor and we don't know if we are a WS_CHILD or WS_POPUP
6882         yet.
6883
6884 2005-10-17  Jackson Harper  <jackson@ximian.com>
6885
6886         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
6887         correctly.
6888
6889 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
6890         * TreeNode.cs : small logical fix (was using local var instead of field)
6891         
6892 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
6893
6894         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
6895
6896 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
6897
6898         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
6899
6900 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
6901
6902         * Control.cs: 
6903           - Re-implemented anchoring code. My first version was really broken.
6904             This fixes bug #76033. Unlike the previous implementation we will
6905             no longer have round errors since all numbers are calculated from
6906             scratch every time. Removed various anchor-related obsolete vars.
6907           - InitLayout no longer causes layout event firing and layout to be 
6908             performed
6909
6910 2005-10-16  Jackson Harper  <jackson@ximian.com>
6911
6912         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
6913         which was broken).
6914
6915 2005-10-16  Jackson Harper  <jackson@ximian.com>
6916
6917         * TabControl.cs: Remove debug code.
6918
6919 2005-10-16  Jackson Harper  <jackson@ximian.com>
6920
6921         * XEventQueue.cs: Increase the default queue size (very simple
6922         apps needed to grow the queue).
6923         * Hwnd.cs: No finalizer so we don't need to suppress
6924         finalization. Compute the invalid area manually so a new rectangle
6925         does not newto be created.
6926         * ScrollableControl.cs: Don't set any params (otherwise visibility
6927         isn't set correctly).
6928         * MdiChildContext.cs: New constructor takes the mdi parent so it
6929         doesn't have to be computed and avoids a crash on windows. Draw
6930         the window icon properly, and allow the text to be seen.
6931         * Form.cs: Use new MdiChildContext constructor. Make sure the
6932         child context isn't null in wndproc.
6933         * TabControl.cs: Don't set focus, this is muddling keyboard
6934         behavoir. Expand the tab rows when a window size increase will
6935         allow extra tabs to be seen. Don't allow tabs smaller than the
6936         width of a window to be scrolled out of view.
6937         * TreeNode.cs:
6938         * TreeView.cs: Use measure string to calculate a nodes width, the
6939         width is cached and only updated when the text or the font is
6940         changed. Don't check for expand/collapse clicks on the first level
6941         nodes if root lines are disabled.
6942         
6943 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
6944
6945         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
6946
6947 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
6948
6949         * DataGridBoolColumn.cs: fixes warning
6950
6951 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
6952
6953         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
6954         to match more to match more precisely the MS Net behavior
6955
6956 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
6957
6958         * Hwnd.cs: Added field to track if window is mapped
6959         * XplatUIX11.cs: 
6960           - Unmap windows if they become 0-size, re-map when 
6961             they are >0 again; fixes #76035
6962           - Re-set our error handler after initializing X11Desktop
6963             to override any error handlers Gtk or whatever was called
6964             may have set.
6965
6966 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
6967
6968         * CheckedListBox.cs: Removed unused vars
6969         * ListView.cs: Fixed signatures
6970         * RichTextBox.cs: Removed unused vars
6971         * TextBoxBase.cs: Removed unused vars
6972         * XplatUIWin32.cs: Removed unused vars
6973         * XplatUIX11.cs: Removed unused vars
6974         * XplatUI.cs: Updated version and date to latest published
6975
6976 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
6977
6978         * Cursor.cs: Added private .ctor to work around a bug in
6979           resourceset (Thanks to Geoff Norton for the help on this)
6980         * SplitterEventArgs.cs: Made fields accessible so we don't
6981           waste boatloads of objects and can reuse the same one
6982           in Splitter
6983         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
6984           any captions and borders when generating screen coordinates
6985         * Splitter.cs: Reimplemented control, now fully complete, uses
6986           rubberband drawing, supports and obeys all properties, has
6987           proper cursors
6988
6989 2005-10-13  Miguel de Icaza  <miguel@novell.com>
6990
6991         * Form.cs (Form): Setup default values for autoscale and
6992         autoscale_base_size;  Make these instance variables, not static
6993         variables. 
6994
6995         (OnLoad): on the first load, adjust the size of the form.
6996
6997 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
6998
6999         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
7000           width argument to DrawReversibleRectangle()
7001         * XplatUIWin32.cs, XplatUIX11.cs: 
7002           - Implemented width for DrawReversibleRectangle()
7003           - Added logic to DrawReversibleRectangle that recognizes a zero
7004             width or height and only draws a line in that situation
7005         
7006 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
7007
7008         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
7009         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
7010         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
7011           method (it uses our FosterParent window to get a graphics context)
7012
7013 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
7014
7015         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
7016           and SetWindowBackground methods
7017         * Control.cs:
7018           - Setting proper ControlStyles
7019           - We no longer call XplatUI.SetWindowBackground and XplatUI.
7020             EraseWindowBackground, instead we draw the window background
7021             ourselves in PaintControlBackground. This behaviour is
7022             required to match MS, where, when OnPaintBackground is not
7023             called, the background is not drawn.
7024           - Removed unneeded Refresh() in set_Text
7025         * Hwnd.cs: Dropped the ErasePending support. No longer needed
7026         * XplatUIX11.cs:
7027           - Created DeriveStyles method to translate from CreateParams to
7028             FormBorderStyle and TitleStyle, also handles BorderStyle (which
7029             matches FormBorderStyle enum values)
7030           - Consolidated SetHwndStyles and CalculateWindowRect border/title
7031             style calculations into single DeriveStyles method
7032           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
7033             from redrawing the whole window on any resize or expose.
7034           - Fixed CreateWindow usage of SetWindowValuemask. Before not
7035             all styles were applied to our whole/client window appropriately
7036           - Removed EraseWindowBackground() and SetWindowBackground() methods
7037           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
7038             no longer clear/redraw the background through X
7039           - Removed handling of erase_pending bit, we have no use for it (or
7040             so it seems)
7041         * XplatUIOSX.cs:
7042           - Removed generation and handling of WM_ERASEBKGND message
7043           - Removed EraseWindowBackground() and SetWindowBackground() methods
7044           - Removed handling of hwnd.ErasePending flag
7045         * XplatUIWin32.cs:
7046           - Removed EraseWindowBackground() and SetWindowBackground() methods
7047           - We no longer call EraseWindowBackground on PaintEventStart, we 
7048             ignore the fErase flag, erasing is handled in Control in the
7049             background handler
7050         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
7051           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
7052           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
7053           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
7054           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
7055           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
7056           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
7057
7058 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
7059
7060         * PropertyGrids.cs: Get sub properties
7061         * PropertyGridView.cs: Fix drawing code
7062
7063 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
7064
7065         * ListBox.cs: Fixes 76383
7066
7067 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
7068
7069         * DataGridTextBoxColumn.cs: Sets location and size before attachment
7070         * ThemeWin32Classic.cs: Fixes border drawing and calculations
7071         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
7072
7073
7074 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
7075
7076         * ComboBox.cs: Fixes border drawing
7077
7078 2005-10-10  Miguel de Icaza  <miguel@novell.com>
7079
7080         * MimeIcon.cs: Ignore errors if the file can not be read.
7081
7082 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
7083
7084         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
7085          - Fixed border calculations
7086          - Fixed horizontal scrolling in single column listboxes
7087          - Fixed drawing issues
7088
7089 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
7090
7091         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
7092           FormBorderStyle enum
7093         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
7094           code to determine FormBorderStyles from CreateParams
7095         * Form.cs:
7096           - Fixed bug where we'd set the wrong window styles if we were
7097             not creating an MDI window
7098           - Added call to XplatUI.SetBorderStyle when form borders are set
7099         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
7100         * Hwnd.cs:
7101           - Removed obsolete edge style
7102           - Switched from BorderStyle to FormBorderStyle
7103         
7104 2005-10-10  Jackson Harper  <jackson@ximian.com>
7105
7106         * Form.cs: Use the property to get the window handle instead of
7107         accessing it directly. Prevents a null reference exception.
7108
7109 2005-10-10  Jackson Harper  <jackson@ximian.com>
7110
7111         * TreeView.cs: Don't adjust the rect given to DrawString now that
7112         our libgdiplus draws correctly.
7113
7114 2005-10-08  Jackson Harper  <jackson@ximian.com>
7115
7116         * TreeView.cs: Don't try to find the clicked on node if there are
7117         no nodes in the tree.
7118
7119 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
7120
7121         * RichTextBox.cs:
7122
7123           restore
7124
7125 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
7126
7127         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
7128           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
7129           ErrorProvider.cs:
7130           Use ResPool for brushes and dispose System.Drawing objects that
7131           are not used anymore.
7132
7133 2005-10-07  Jackson Harper  <jackson@ximian.com>
7134
7135         * MdiChildContext.cs: Use the new borders instead of drawing them
7136         ourselves.
7137
7138 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
7139
7140         * Calling UpdateBounds after changing the window's BorderStyle 
7141         since the style can change the ClientSize
7142
7143 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
7144
7145         * Control.cs: Made PaintControlBackground virtual
7146         * Panel.cs: Overriding PaintControlBackground instead of using paint
7147           event; paint event method was interfering with 'real' users of the
7148           event.
7149
7150 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
7151
7152         * ThemeWin32Classic.cs: remove border drawing since it is handled
7153         by the base control class now and was causing double border drawing.
7154
7155 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
7156
7157         * Panel.cs: Redraw our background on paint. Not a pretty solution,
7158           but it does seem to match MS behaviour. This fixes bug #75324
7159
7160 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
7161
7162         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
7163           somewhat hackish looking
7164
7165 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
7166
7167         * TextBoxBase.cs:
7168           - We now accept Enter even if AcceptEnter is false, if the containing
7169             form does not have an AcceptButton configured (fixes bug #76355)
7170           - Calculations are now fixed to no longer use Width/Height, but
7171             ClientSize.Width/Height, since we now support borders (this was
7172             a result of fixing borders and therefore bug #76166)
7173           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
7174             true (fixes bug #76354)
7175         
7176 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
7177
7178         * Control.cs: 
7179           - Defaulting BorderStyle and setting it in XplatUI when our window 
7180             is created
7181           - Added enum check to InternalBorderStyle setter
7182         * XplatUIX11.cs: 
7183           - Added drawing of window borders
7184           - Now properly calculates WM decorations offset for toplevel 
7185             windows (fixes bug #74763)
7186         * XplatUIWin32.cs: 
7187           - Implemented BorderStyles for windows (we're letting win32 draw 
7188             the border for us)
7189           - Fixed the signature for SetWindowLong
7190         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
7191           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
7192           setting borders
7193         * UpDownBase.cs: Remove drawing of borders, this is handled by
7194           the driver, outside the client area
7195         * ListView.cs: Removed bogus border calculations. The control should
7196           be oblivious to borders, since those are not part of the client
7197           area. 
7198         * X11DesktopColors.cs: Commented out (currently) unneeded variables
7199         * ThemeWin32Classic.cs: Removed border calculations from ListView 
7200           drawing code
7201
7202 2005-10-06  Jackson Harper  <jackson@ximian.com>
7203
7204         * MdiChildContext.cs: Clear out the old virtual position remove
7205         all the unneeded calls to CreateGraphics.
7206
7207 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
7208
7209         * TextControl.cs: Use proper color for highlighted text; fixes #76350
7210
7211 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
7212
7213         * Form.cs: 
7214           - Added loading and setting of our new default icon
7215           - Only set icon if window is already created
7216
7217 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
7218
7219         * Label.cs:
7220           - Do not explicitly set the foreground and background colors, to
7221             allow inheriting from parents (fixes #76302)
7222           - Use Control's InternalBorderStyle property to deal with borders
7223
7224 2005-10-06  Jackson Harper  <jackson@ximian.com>
7225
7226         * MdiChildContext.cs: Use the new xplatui function to draw a
7227         reversible rect.
7228
7229 2005-10-06  Jackson Harper  <jackson@ximian.com>
7230
7231         * Form.cs: Add the parent before creating the child context cause
7232         we need the parent when setting up the child.
7233
7234 2005-10-06  Jackson Harper  <jackson@ximian.com>
7235
7236         * FolderBrowserDialog.cs: redo the tree population code so a
7237         second thread isn't used. Should be a lot faster and more stable
7238         now.
7239
7240 2005-10-05  Jackson Harper  <jackson@ximian.com>
7241
7242         * TreeView.cs: There are no expand/collapse boxes if the node has
7243         no children.
7244
7245 2005-10-05  Jackson Harper  <jackson@ximian.com>
7246
7247         * X11DesktopColors.cs: Get menu colours for the gtk theme.
7248
7249 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
7250
7251         * FileDialog.cs: Fix InitialDirectory
7252
7253 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
7254
7255         * ComboBox.cs:
7256                 - Fixes changing between styles
7257                 - Fixes simple mode
7258                 - Fixes last item crashing when navigating with keyboard
7259
7260 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
7261
7262         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
7263
7264 2005-10-05  Jackson Harper  <jackson@ximian.com>
7265
7266         * TreeView.cs: If updating the root node do a full refresh.
7267         * TreeNode.cs: The root node should be expanded by default. Also
7268         added a utility prop to tell if we are the root node.
7269         * TreeNodeCollection.cs: Only refresh if the node we are being
7270         added to is expanded. Also added a comment on a potential
7271         optimization.
7272         
7273 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
7274
7275         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
7276           in dispose method. Fixes #76330
7277
7278 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
7279
7280         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
7281
7282                 - Implements vertical and horizontal scrolling using XplatUI
7283                 - Fixes keyboard navagation
7284                 - Fixes EnsureVisible
7285                 - Drawing fixes
7286                 - Handles and draws focus properly
7287
7288
7289 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
7290
7291         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
7292           Create handle. NET_2_0: Destroy handle when value is null.
7293
7294 2005-10-03  Jackson Harper  <jackson@ximian.com>
7295
7296         * ScrollBar.cs: My last scrollbar patch was broken. This is a
7297         revert and a new patch to prevent the thumb from refreshing so
7298         much.
7299
7300 2005-10-02  Jackson Harper  <jackson@ximian.com>
7301
7302         * ScrollBar.cs: Don't update position if it hasn't actually
7303         changed. This occurs when you hold down the increment/decrement
7304         buttons and the thumb gets to the max/min.
7305
7306 2005-10-01  Jackson Harper  <jackson@ximian.com>
7307
7308         * Form.cs:
7309         * MdiChildContext.cs:
7310         * MdiClient.cs: Implement ActiveMdiChild in Form.
7311
7312 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
7313
7314         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
7315
7316 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
7317
7318         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
7319           be found
7320
7321 2005-09-30  Jackson Harper  <jackson@ximian.com>
7322
7323         * ListBox.cs: Don't do a full refresh unless some data has
7324         actually changed.
7325
7326 2005-09-30  Jackson Harper  <jackson@ximian.com>
7327
7328         * TreeView.cs: Make sure that the checkboxes size is factored in
7329         even when not visible.
7330
7331 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
7332
7333         * FileDialog.cs: Fix Jordi's build break
7334
7335 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
7336
7337         * FileDialog.cs: 
7338                 - Use standard the Windows colours for the combobox as espected
7339                 - Dispose objects that use resouces when no longer need them
7340
7341 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
7342
7343         * X11DesktopColors.cs: Initial incomplete implementation
7344         * XplatUIX11.cs: Added call to initialize X11DesktopColors
7345
7346 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
7347
7348         * Theme.cs: 
7349           - Switched Theme color names to match the names defined in 
7350             System.Drawing.KnownColors. Life's hard enough, no need to make 
7351             it harder.
7352           - Added setters to all theme color properties so themes can set
7353             their color schemes. The setters also propagate the color changes
7354             to System.Drawing.KnownColors via reflection
7355         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
7356           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
7357           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
7358           use the new, more logical theme color names
7359         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
7360           post-NT colors
7361         * ThemeWin32Classic.cs:
7362           - Removed code to set the old classic Windows colors. Instead it
7363             now relies on the colors returned by System.Drawing.KnownColors
7364             which will be either modern static colors (Unix) or colors
7365             read from the user's configuration (Win32)
7366           - Updated to use the new, more logical theme color names
7367           - Switched DataGrid drawing code to use only Theme colors instead of
7368             a mix of System.Drawing.KnownColors and Theme colors
7369           - DrawFrameControl(): Removed code that fills the button area, the
7370             fill would overwrite any previous fill done by a control. This
7371             fixes bug #75338 
7372           - Added DrawReversibleRectangle() stub
7373         * ScrollableControl.cs: Set visible state to false when scrollbars
7374           are removed (pdn fix)
7375         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
7376           DrawReversibleRectangle() method to allow drawing primitive 
7377           'rubber bands'
7378         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
7379
7380 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
7381
7382         * ImageList.cs: Add(Icon): Create handle.
7383
7384 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
7385
7386         * ListView.cs:
7387         * ThemeWin32Classic.cs:
7388                 - Fixes detail mode
7389                 - Sets clippings
7390                 - Issues with drawing
7391
7392 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
7393
7394         * ImageList.cs: Moved RecreateHandle back to ImageList as event
7395           source has to be the ImageList.
7396
7397 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
7398
7399         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
7400
7401 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
7402
7403         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
7404
7405 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
7406
7407         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
7408
7409 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
7410         * GridItem.cs: Fixed TODOs
7411         * GridItemCollection.cs: Added ICollection interface
7412
7413 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
7414
7415         * ImageList.cs: Resize icons when needed.
7416
7417 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
7418
7419         * ListViewItem.cs
7420                 - Fixes GetBounds and returns on screen rects
7421         * ListView.cs:
7422                 - Fixes vertical and horzintal scrolling of items
7423         * ThemeWin32Classic.cs:
7424                 - Fixes drawing
7425                 
7426 2005-09-29  Raja R Harinath  <harinath@gmail.com>
7427
7428         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
7429
7430 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
7431
7432         * ImageList.cs: Added comments about handle creation. Moved Handle,
7433           HandleCreated and OnRecreateHandle implementations to ImageCollection.
7434           Handle is created in Add methods.
7435
7436 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
7437          
7438         * DataGridDrawingLogic.cs: 
7439                 - Takes rows into account on Colum calculations
7440                 - Returns the column when clickig
7441         * DataGrid.cs:
7442                 - Fixes default HitTestInfo values
7443                 - Fixes HitTestInfo.ToString
7444                 - Fixes ResetBackColor          
7445         
7446 2005-09-28  Jackson Harper  <jackson@ximian.com>
7447
7448         * MdiChildContext.cs: Obey rules for fixed sized windows (no
7449         sizing or cursor changes). Also added some temp code to draw the
7450         titlebars text (Makes dev a little easier).
7451
7452 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
7453
7454         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
7455
7456 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
7457          
7458         * ListBox.cs: Fixes bug 76253
7459
7460 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
7461
7462         * ImageList.cs: Added comments about the current implementation. Added
7463           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
7464           Format32bppArgb to preserve transparency and can use Graphics.FromImage
7465           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
7466           with Bitmap.LockBits for better performance. Revised the whole file to
7467           match MS.NET behaviour and provide better performance. Non-public
7468           interface members are calling public members even when they throw
7469           NotSupportedException for better maintainability. Moved ColorDepth,
7470           ImageSize, ImageStream and TransparentColor implementations to
7471           ImageCollection for better performance as these properties are not used
7472           by ImageList.
7473         * ImageListStreamer.cs: Added a new internal constructor that takes an
7474           ImageList.ImageCollection and serializes Images based on
7475           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
7476           match ImageList property name.
7477
7478 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
7479
7480         * ListBox.cs: Fixes IndexFromPoint for last item
7481
7482 2005-09-27  Jackson Harper  <jackson@ximian.com>
7483
7484         * Form.cs: Set the position of new mdi children correctly.
7485
7486 2005-09-27  Jackson Harper  <jackson@ximian.com>
7487
7488         * MdiClient.cs: New mdi children need to be added to the back of
7489         the controls collection so the zorder is set correctly. Also add a
7490         count of all the child windows that have been created.
7491
7492 2005-09-27  Jackson Harper  <jackson@ximian.com>
7493
7494         * Form.cs (CreateParams): Setup MDI forms correctly.
7495
7496 2005-09-27  Jackson Harper  <jackson@ximian.com>
7497
7498         * MdiChildContext.cs:
7499         * MonthCalendar.cs:
7500         * UpDownBase.cs:
7501         * ListBox.cs:
7502         * ListView.cs:
7503         * TextBoxBase.cs:
7504         * TreeView.cs:
7505         * ScrollableControl.cs:
7506         * ComboBox.cs: Add implicit controls using the new implict control
7507         functionality in ControlCollection. Also try to block multiple
7508         control add in a suspend/resume layout to save some cycles.
7509         
7510 2005-09-27  Jackson Harper  <jackson@ximian.com>
7511
7512         * Control.cs: Add functionality to the controls collection to add
7513         'implicit controls' these are controls that are created by the
7514         containing control but should not be exposed to the user. Such as
7515         scrollbars in the treeview.
7516         * Form.cs: The list var of the ControlsCollection is no longer
7517         available because of the potential of implicit controls getting
7518         ignored by someone accessing the list directly.
7519
7520 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
7521
7522         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
7523           loose it's parent. (Fixed bug introduced in r49103 when we added
7524           setting the child parent to null on Remove)
7525
7526 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
7527
7528         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
7529         * Splitter.cs: Added missing attributes for BorderStyle property.
7530         * TextBoxBase.cs: Marked Calculate* methods internal.
7531         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
7532         MS.NET.
7533
7534 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
7535          
7536         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
7537
7538 2005-09-25  Jackson Harper  <jackson@ximian.com>
7539
7540         * TreeView.cs: Update the node bounds correctly regardless of
7541         whether the node is visible.
7542
7543 2005-09-25  Jackson Harper  <jackson@ximian.com>
7544
7545         * ImageList.cs: Don't dispose the image after it is added to the
7546         image list. Only reformat images that need to be resized.
7547
7548 2005-09-25  Jackson Harper  <jackson@ximian.com>
7549
7550         * ImageList.cs: Don't set the format when changing the image.
7551
7552 2005-09-25  Jackson Harper  <jackson@ximian.com>
7553
7554         * TreeView.cs: We can't just assume the node has a font. Use the
7555         treeviews font if no node font is available.
7556
7557 2005-09-25  Jackson Harper  <jackson@ximian.com>
7558
7559         * TreeView.cs: Allow the scrollbars to be reset with negative
7560         values.
7561         - Don't add scrollbars to negative sized windows.
7562
7563 2005-09-23  Jackson Harper  <jackson@ximian.com>
7564
7565         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
7566         old Mono.Posix. Also remove some stray code that shouldn't have
7567         been committed.
7568
7569 2005-09-23  Jackson Harper  <jackson@ximian.com>
7570
7571         * TreeView.cs: Attempt at proper sizing of the horizontal
7572         scrollbar. Also don't resize the scrollbars unless they are
7573         visible.
7574
7575 2005-09-23  Jackson Harper  <jackson@ximian.com>
7576
7577         * TreeView.cs: We don't need to expand the invalid area when the
7578         selection changes, as this is all drawn in the node's bounding
7579         box. The area needs to be expanded (previous typo was contracting
7580         it) when the focus rect moves.
7581
7582 2005-09-23  Jackson Harper  <jackson@ximian.com>
7583
7584         * TreeView.cs: Display the selection box under the correct
7585         circumstances. We were rendering white text with no selection box
7586         before.
7587
7588 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
7589
7590         * TextControl.cs(Split): Now updates selection start/end if it points 
7591           into a line that's being split. Fixes a FIXME and bug #75258
7592
7593 2005-09-23  Jackson Harper  <jackson@ximian.com>
7594
7595         * Binding.cs:
7596         * ListControl.cs: Don't use the path when retrieving binding
7597         managers from the binding context. My bat sense tells me that the
7598         path is only used on insertion.
7599
7600 2005-09-22  Jackson Harper  <jackson@ximian.com>
7601
7602         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
7603
7604 2005-09-22  Jackson Harper  <jackson@ximian.com>
7605
7606         * Splitter.cs: There are special cursors used for splitting.
7607         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
7608
7609 2005-09-22  Jackson Harper  <jackson@ximian.com>
7610
7611         * Splitter.cs: Change the cursor appropriately when the splitter
7612         is moused over, so the user actually knows there is a splitter
7613         there.
7614
7615 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
7616
7617        * Label.cs : Fix ToString method to give same output as MS.NET
7618
7619 2005-09-22  Jackson Harper  <jackson@ximian.com>
7620
7621         * TreeView.cs: Create the scrollbars when the handle is created
7622         and add them right away, just make them invisble. Also account for
7623         the window being shrunk vertically to the point that the vert
7624         scrollbar needs to be added.
7625         - Remove some 0.5 adjustments to get around anti aliasing issues.
7626         
7627 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
7628          
7629         * MainMenu.cs: Fixes default value
7630         * MenuItem.cs: Fixes default value
7631
7632 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
7633
7634         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
7635
7636 2005-09-21  Jackson Harper  <jackson@ximian.com>
7637
7638         * Control.cs: Don't try to set the border style on the window if
7639         it hasn't been created. When the window is created the border
7640         style will be used.
7641
7642 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
7643
7644         * Control.cs (Update): Don't call XplatUI if we don't have a
7645           window handle yet
7646
7647 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
7648
7649         * ContainerControl.cs: Instead of throwing an exception, print
7650           a one-time warning about Validate not being implemented
7651         * XplatUIWin32.cs: Removed debug output
7652
7653 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
7654
7655         * Control.cs: Only set XplatUI background if we expect the windowing
7656           system to handle the background. This stops controls that draw their
7657           own background from flickering
7658
7659         * XplatUIX11.cs: Support custom visuals and colormaps for window 
7660           creation. This allows, amongst other things, using MWF X11 windows 
7661           with OpenGL.
7662
7663 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
7664
7665         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
7666           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
7667           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
7668           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
7669           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
7670           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
7671           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
7672           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
7673           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
7674           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
7675           GridColumnStylesCollection.cs, 
7676           IDataGridColumnStyleEditingNotificationService.cs,
7677           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
7678           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
7679           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
7680           TreeNodeCollection.cs, AmbientProperties.cs, 
7681           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
7682           DataObject.cs, ErrorProvider.cs, Splitter.cs,
7683           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
7684           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
7685           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
7686           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
7687           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
7688           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
7689           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
7690           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
7691           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
7692           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
7693           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
7694           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
7695           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
7696           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
7697           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
7698           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
7699           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
7700           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
7701           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
7702           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
7703           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
7704           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
7705           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
7706           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
7707           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
7708           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
7709           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
7710           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
7711           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
7712           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
7713           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
7714           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
7715           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
7716           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
7717           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
7718
7719 2005-09-21  Jackson Harper  <jackson@ximian.com>
7720
7721         * TreeNode.cs: Call Before/After Expand not Collapse when
7722         expanding.
7723
7724 2005-09-20  Jackson Harper  <jackson@ximian.com>
7725         
7726         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
7727
7728 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
7729          
7730         * ListViewItem.cs:
7731                 - Fixes bug 76120
7732                 - Fixes proper storing of subitems
7733                 - Fixes not updated items
7734
7735 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
7736
7737         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
7738           things if our window handle isn't created yet. Also disabled 
7739           debug for TextBoxBase
7740
7741 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
7742
7743         * MenuAPI.cs: Remove filtering of events to allow menu usage
7744
7745 2005-09-20  Miguel de Icaza  <miguel@novell.com>
7746
7747         * Cursor.cs: Allow null to be passed to Cursor.Current.
7748
7749 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
7750
7751         * ThemeWin32Classic.cs:
7752           - Change some private methods/fields to protected virtual so that 
7753             they can be accessed and overriden in derived classes
7754           - First refactoring of some methods. Derived themes now don't 
7755             need to duplicate the complete code from ThemeWin32Classic
7756         * ThemeNice.cs:
7757           - Added nice StatusBar
7758           - Derive from ThemeWin32Classic and not Theme
7759           - Removed duplicate ThemeWin32Classic code
7760
7761 2005-09-20  Miguel de Icaza  <miguel@novell.com>
7762
7763         * Control.cs (ControlCollection.Add): If the value null is passed
7764         the control is ignored. 
7765
7766         Optimize this loop.
7767
7768 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
7769
7770         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
7771           PostQuitMessage state.
7772         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
7773
7774 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
7775
7776         * Application.cs: Our constructor will never get called, move 
7777           initialization to fields; fixes bug #75933
7778
7779 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
7780
7781         * FileDialog.cs :
7782                 - Allow files to be selected properly using file name
7783                 combo box.
7784                 - Add ability to change diretory (absolute / relative)
7785                 using file name combo box.
7786
7787 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
7788          
7789         * ListBox.cs: 
7790                 - Fixes Multicolumn listboxes item wrong calculations
7791                 - Allows to click when only one item is in the listbox
7792                 - Fixes crash when no items using keyboard navigation
7793
7794 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
7795
7796         * ComboBox.cs: Reverted almost everything from the latest patch which
7797           broke ComboBox
7798
7799 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
7800         
7801         * ToolTip.cs:
7802                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
7803         * ComboBox.cs:
7804                 - When DropDownStyle is Simple, it does not show scrollbar 
7805                 to the last item of the list.
7806                 - When DropDownStyle is Simple, it crashed when the list was 
7807                 scrolled down with the down cursor key.
7808                 - Fixed a bug that when DropDownStyle is DropDownList, the 
7809                 selected item was not shown.
7810                 - The position of the selected item was not preserved when 
7811                 the next dropdown happened.
7812         * ThemeWin32Classic.cs:
7813                 - Items were wrapped at the right end.
7814         * CheckedListBox.cs:
7815                 - Fixed Add method
7816         * ListBox.cs:
7817                 - Items should be fully shown.
7818                 - When resizing and vertical scrollbar disappeared, the item 
7819                 of index 0 should be on the top of the list.
7820                 - GetItemRectangle should consider the size of ver. scrollbar
7821         * StatusBar.cs:
7822                 - SizingGrip area should not be allocated when it is not 
7823                 displayed.
7824                 - Now it reflects MinWidth of the containing panel and 
7825                 fixed a crash that happens when its width becomes so small.
7826
7827 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
7828
7829         * CheckedListBox.cs: Fixes bug 76028
7830         * ListBox.cs: Fixes bug 76028
7831
7832 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
7833
7834         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
7835         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
7836
7837 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
7838
7839         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
7840
7841 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
7842
7843         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
7844
7845 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
7846
7847         * IRootGridEntry.cs: Added
7848         * PropertyGridCommands.cs: Added
7849         * PropertiesTab.cs: Added missing methods and property
7850         * PropertyGridView.cs: Made class internal
7851         * PropertyGridTextBox.cs: Made class internal
7852
7853 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
7854
7855         * MimeIcon.cs: Try to check some other environment variables
7856           if "DESKTOP_SESSION" returns "default"
7857
7858 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
7859
7860         * ThemeNice.cs: Corrected background colors (e.g. menus)
7861         * ColorDialog.cs: Use correct background colors for controls
7862
7863 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
7864
7865         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
7866
7867 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
7868
7869         * RichTextBox.cs: Added initial implementation
7870         * lang.cs: Removed. Was accidentally checked in long time ago
7871         * TODO: Removed. Contents were obsolete
7872
7873 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
7874                                                                                 
7875         * PropertiesTab.cs : Added
7876
7877 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
7878                                                                                 
7879         * PropertyGrid.cs : Update
7880         * PropertyGridView.cs : Update
7881         * System.Windows.Forms.resx : Added images and strings
7882
7883 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
7884
7885         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
7886  
7887 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
7888
7889         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
7890           a busy loop right after the Ungrab the X11 display is otherwise 
7891           blocked
7892
7893 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
7894
7895         * ThemeWin32Classic.cs: Optimise the use of clipping
7896
7897 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
7898
7899         * DataGrid.cs: fixes recursion bug
7900
7901 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
7902
7903         * ThemeNice.cs: 
7904           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
7905           - Cleanup
7906
7907 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
7908
7909         * ThemeNice.cs: Draw nice ProgressBars
7910
7911 2005-09-01  Miguel de Icaza  <miguel@novell.com>
7912
7913         * VScrollBar.cs: Another buglet found by Aaron's tool. 
7914
7915         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
7916         bug finder.
7917
7918 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
7919
7920         * ThemeNice.cs:
7921           - Added nicer menu drawing
7922           - Updated DrawTab
7923           - some refactoring
7924
7925 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
7926
7927         * CreateParams.cs (ToString): Made output match MS
7928         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
7929             handle is already created (to avoid forcing window creation)
7930         * XplatUIX11.cs: Set window text to caption after creating window,
7931           in case Text was set before window was created
7932         * Form.cs: Use this.Text instead of a static string as caption
7933
7934 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
7935
7936         * NotifyIcon.cs: Don't set the window to visible; this screws
7937           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
7938           OnPaint without a bitmap)
7939         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
7940           happen very often anyway; we could add the check to the WM_PAINT 
7941           event generation code
7942
7943 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
7944
7945         * NotifyIcon.cs: Fill the icon area with a background color, to 
7946           avoid 'residue' when transparent icons are drawn
7947         * XplatUIX11.cs:
7948           - Handle whole_window == client_window when destroying windows
7949           - SystrayAdd(): Set client_window to whole_window value to
7950             get mouse and other events passed to NotifyIcon
7951
7952 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
7953
7954         * Form.cs: Set proper default for Opacity property
7955         * NotifyIcon.cs:
7956           - ShowSystray(): Don't bother creating telling the OS
7957             about the systray item if no icon is provided
7958           - Now handles WM_NCPAINT message to deal with whole/client window
7959             split
7960           - Create window as visible to not get caught by Expose optimization
7961         * Hwnd.cs: Removed debug message
7962         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
7963           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
7964             PaintEventStart/End to use new client argument
7965         * TextBoxBase.cs:
7966           - Commented out debug messages
7967           - Switched PaintEventStart/End to use new client argument
7968         * XplatUI.cs: Added client window bool to PaintEventStart()/
7969           PaintEventEnd() calls, to support drawing in non-client areas
7970         * XplatUIDriver.cs: 
7971           - Added client window bool to PaintEventStart()/PaintEventEnd() 
7972             calls, to support drawing in non-client areas
7973           - Added conditional compile to allow using MWF BeginInvoke 
7974             on MS runtime
7975         * XplatUIX11.cs:
7976           - Added some conditional debug output
7977           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
7978             whole/client window split
7979           - Implemented handling of client argument to PaintEventStart()/End()
7980         * Control.cs:
7981           - Throw exception if BeginInvoke() is called and the window handle
7982             or one of the window's parent handles is not created
7983           - Added conditional compile to allow using MWF BeginInvoke on
7984             MS runtime
7985           - get_Parent(): Only sets parent if handle is created. This avoids
7986             forcing window handle creation when parent is set.
7987           - Now fires Layout and Parent changed events in proper order
7988           - Switched to use Handle instead of window.Handle for Z-Order setting,
7989             the get_Parent() patch above causes us to possibly get null for 'window'
7990           - Implemented handling of client argument to PaintEventStart()/End()
7991           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
7992             default handling)
7993           - Now sends a Refresh() to all child windows when Refresh() is called
7994
7995 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
7996
7997         * Form.cs: Added (non-functional) Opacity property
7998         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
7999
8000 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
8001         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
8002           use export MONO_THEME=nice to activate it.
8003           Currently supported controls:
8004           - Button
8005           - ComboBox
8006           - ScrollBar
8007           - TabControl (TabAlignment.Top only, other will follow)
8008         * ThemeEngine.cs: Add theme nice
8009         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
8010           if enabled
8011
8012 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
8013
8014         * Splitter.cs: Resize docked control and its neighbor.
8015
8016 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
8017         -- Making Windows with Menus layout correctly --
8018         * Form.cs : The first leg of the fix
8019                 Menu setter - adjust Client Size as needed to make space for the menu
8020                 SetClientSizeCore - doesn't call base version to be able to pass the 
8021                         menu handle to XplatUI.CalculateWindowRect
8022         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
8023         * XplatUIX11.cs: The critical second leg of the fix
8024                 GetWindowPos needs to use a recalculated client_rect
8025                 so that resizing the window doesn't break layout of child controls. 
8026                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
8027                 Lots of \t\n killed
8028
8029 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
8030
8031         * Label.cs: Now properly recalculates width and height on Font and Text
8032           changes if AutoSize is set
8033
8034 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
8035         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
8036
8037 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
8038
8039         * ImageList.cs: Makes ToString method compatible with MS
8040
8041 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
8042
8043         * MenuAPI.cs: fixes bug 75716
8044
8045 2005-08-11 Umadevi S <sumadevi@novell.com>
8046         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
8047
8048 2005-08-11 Umadevi S <sumadevi@novell.com>
8049         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
8050
8051 2005-08-10  Umadevi S <sumadevi@novell.com>
8052         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
8053
8054 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
8055
8056         * Menu.cs: fixes bug 75700
8057         * MenuAPI.cs: fixes navigation issues
8058
8059 2005-08-09  Umadevi S <sumadevi@novell.com>
8060         * CheckedListBox.cs - simple fix for GetItemChecked.
8061
8062 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
8063
8064         * ComboBox.cs: Serveral fixes
8065         * ListBox.cs: Serveral fixes
8066
8067 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
8068
8069         * ComboBox.cs: Fixes FindString methods and GetItemHeight
8070         * ListBox.cs: Fixes FindString methods
8071
8072 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
8073
8074         * DataGrid.cs: fixes bugs exposed by new tests
8075
8076 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
8077
8078         * Mime.cs: Compile Mono assembly references only if compiling
8079           with Mono (Allows to build with VS.Net again)
8080
8081 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
8082
8083         * Control.cs (PaintControlBackground): Draw background image
8084         corrrectly.
8085         (CheckForIllegalCrossThreadCalls): Stubbed.
8086         
8087         * Form.cs (OnCreateControl): Center when should be centered.
8088         
8089         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
8090
8091 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
8092
8093         * Binding.cs: Binding to properties should be case unsensitive
8094
8095 2005-07-18 vlindos@nucleusys.com
8096
8097         * DataGrid.cs: fixes setmember order
8098
8099 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
8100
8101         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
8102         * FileDialog.cs: FileDialog is now resizable and uses the new
8103           MimeIconEngine
8104
8105 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
8106
8107         * DataGridTextBoxColumn.cs: default value
8108         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
8109         * GridTableStylesCollection.cs: fixes checking MappingName
8110         * DataGridDrawingLogic.cs: fixes drawing logic issues
8111         * DataSourceHelper.cs: rewritten to make compatible with more data sources
8112         * DataGrid.cs: fixes    
8113
8114 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
8115
8116         * MimeGenerated.cs: Use case sensitive comparer for
8117           NameValueCollections
8118
8119 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
8120
8121         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
8122         * ThemeWin32Classic.cs: bug fixes, code refactoring
8123         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
8124         * DataGrid.cs: bug fixes, code refactoring
8125         * DataGridTextBox.cs: bug fixes, code refactoring
8126         * DataGridColumnStyle.cs:  bug fixes, code refactoring
8127         * Theme.cs:  bug fixes, code refactoring
8128
8129 2005-07-01  Peter Bartok  <pbartok@novell.com> 
8130
8131         * TextControl.cs: Quick fix for the reported crash on ColorDialog
8132           and other text box usage
8133
8134 2005-07-01  Jackson Harper  <jackson@ximian.com>
8135
8136         * TabControl.cs: Make sure the bottom of the tab covers the pages
8137         border.
8138
8139 2005-06-30  Peter Bartok  <pbartok@novell.com> 
8140
8141         * Form.cs (ShowDialog): Assign owner of the dialog
8142         * TextBoxBase.cs: Always refresh caret size when deleting, caret
8143           might have been moved to a tag with different height
8144
8145 2005-06-30  Jackson Harper  <jackson@ximian.com>
8146
8147         * Form.cs: Don't create an infinite loop when setting focus
8148         * MenuItem.cs: Don't dirty the parents if we don't have any
8149
8150 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
8151
8152         * LibSupport.cs: Rename
8153
8154 2005-06-29  Peter Bartok  <pbartok@novell.com>
8155
8156         * TextBoxBase.cs: Re-align caret after deleting a character
8157         * TextControl.cs:
8158           - DeleteChars(): Ensure that tag covers the provided position
8159           - StreamLine(): Drop reference for dropped tag
8160
8161 2005-06-29  Peter Bartok  <pbartok@novell.com> 
8162
8163         * TextControl.cs: 
8164           - Selections now work properly, anchoring at the initial location
8165             and properly extending in either direction (SetSelectionToCaret(),
8166             SetSelectionStart() and SetSelectionEnd())
8167           - No longer redraws the whole control on selection change, now
8168             calculates delta between previous and new selection and only
8169             invalidates/redraws that area
8170           - Fixed FindPos() math off-by-one errors
8171           - Changed DeleteChars() to verify the provided tag covers the
8172             provided position, selections may have a tag that doesn't cover
8173             the position if the selection is at a tag border
8174           - Fixed off-by-one errors in DeleteChars()
8175           - Added missing streamlining check in DeleteChars() to remove
8176             zero-length tags
8177           - Implemented Invalidate() method, now properly calculates exposures
8178             between two given lines/positions
8179           - Implemented SetSelection()
8180           - Obsoleted and removed FixupSelection()
8181           - Improved RecalculateDocument() logic, removing code duplication
8182
8183 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8184
8185         * LibSupport.cs: changes to match different input/output arguments.
8186
8187 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8188
8189         * LibSupport.cs: added libsupport.so init routine.
8190
8191 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
8192         
8193         * ControlBindingsCollection.cs
8194                 - Throws an exception on null datasource when adding
8195                 - Checks for duplicated bindings when adding
8196
8197 2005-06-28  Jackson Harper  <jackson@ximian.com>
8198
8199         * TreeView.cs (OnKeyDown): Support left and right properly
8200         (navigates as well as expanding and collapsing.
8201         - Add support for Multiply, this expands all the selected nodes
8202         children.
8203         - Fix some tabbing.
8204
8205 2005-06-28  Jackson Harper  <jackson@ximian.com>
8206
8207         * TreeView.cs: Implement keyboard navigation, currently supports,
8208         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
8209         support for toggling checkboxes with the space bar.
8210
8211 2005-06-28  Jackson Harper  <jackson@ximian.com>
8212
8213         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
8214         tree.
8215
8216 2005-06-28  Jackson Harper  <jackson@ximian.com>
8217
8218         * TreeView.cs: Add missing event.
8219
8220 2005-06-27  Peter Bartok  <pbartok@novell.com> 
8221
8222         * TextControl.cs:
8223           - Made line ending size configurable (now allows for counting 
8224             lineendings as \n or \r\n)
8225           - Added margin to viewport to keep caret visible on right side
8226           - Fixed translation routines for line/pos to documentpos to consider
8227             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
8228           - Fixed some line-endings to be unix style
8229           - Fixed Document.FormatText to perform it's calculations 1-based
8230           - Added descriptions for a few methods that might otherwise get 
8231             used wrong
8232           - Added NOTE section with some basic conventions to remember at 
8233             the top of the file
8234           - Major fixup for RichTextBox selection drawing:
8235             * Fixed crashes when multiple tags on a single line were selected
8236             * fixed selection box drawing not overlaying text
8237             * fixed bogus offset calculation for tags not starting at index 1
8238             * Switched behaviour from using multiple Substrings of a 
8239               StringBuilder.ToString() to using multiple 
8240               StringBuilder.ToString(start, length) statements, hoping this is
8241               faster (kept original version commented out in the code, in case
8242               original version was faster)
8243         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
8244           alignment != Left
8245         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
8246           call it as well
8247
8248 2005-06-27  Jackson Harper  <jackson@ximian.com>
8249
8250         * TabControl.cs: Move to the left and right with the arrow
8251         keys. These keys don't cycle beyond first and last like
8252         tab. Refresh all the tabs when scrolling them to the left or
8253         right.
8254
8255 2005-06-27  Jackson Harper  <jackson@ximian.com>
8256
8257         * TabControl.cs:
8258           - ToString: Added method
8259           - CreateParams: Remove TODO and comment
8260           - OnKeyDown: Cycle through bounds properly.
8261           - SelectedIndex: Scroll to the right or left if we need to
8262           display the newly selected tab.
8263
8264 2005-06-23  Jackson Harper  <jackson@ximian.com>
8265
8266         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
8267         set.
8268
8269 2005-06-23  Jackson Harper  <jackson@ximian.com>
8270
8271         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
8272         CTRL-SHIFT-TAB, and HOME, END are there any others?
8273
8274 2005-06-23  Jackson Harper  <jackson@ximian.com>
8275
8276         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
8277
8278 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
8279         
8280         * DataGridTextBoxColumn.cs: fixes and enhancements
8281         * ThemeWin32Classic.cs: fixes and enhancements
8282         * DataGridBoolColumn.cs:  fixes and enhancements
8283         * DataGridDrawingLogic.cs:  fixes and enhancements
8284         * CurrencyManager.cs: fixes and enhancements
8285         * DataGrid.cs: fixes and enhancements
8286         * DataGridColumnStyle.cs:  fixes and enhancements
8287
8288 2005-06-22  Jackson Harper  <jackson@ximian.com>
8289
8290         * TabControl.cs: Add some missing methods that just call into the
8291         base. Make the TabPageCollection's IList interface behave in the
8292         same manner as the MS implementation.
8293
8294 2005-06-22  Peter Bartok  <pbartok@novell.com> 
8295
8296         * TextControl.cs: Added sanity check
8297         * TextBoxBase.cs: 
8298           - Fixed wrapping behaviour, don't set wrap on single line controls
8299             (this fixes the breakage of colordialog introduced in an earlier
8300              checkin)
8301           - Added rudimentary support for autoscrolling right-aligned controls
8302             (still needs fixing, also, center alignment scroll is missing)
8303
8304 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
8305         
8306         * ScrollBar.cs: Fixes thumbpos on Maximum values
8307
8308 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
8309         
8310         * PropertyGridView.cs: Pass context information to UITypeEditors 
8311
8312 2005-06-21  Peter Bartok  <pbartok@novell.com> 
8313
8314         * TextBoxBase.cs:
8315           - Now calling PositionCaret with absolute space coordinates
8316           - Enabled vertical scrolling
8317           - Better tracking of scrollbar changes, tied into WidthChange
8318             event
8319           - Improved cursor tracking
8320           - Removed debug output
8321         * TextControl.cs:
8322           - PositionCaret coordinates are now works in absolute space, not 
8323             the canvas
8324           - Improved tracking of document size
8325           - Added events for width and height changes
8326
8327 2005-06-21  Peter Bartok  <pbartok@novell.com>
8328
8329         * Form.cs: Set focus to active control when form is activated
8330         * TextControl.cs: 
8331           - Added word-wrap functionality to RecalculateLine() 
8332           - Added some short function descriptions for VS.Net to aid in
8333             writing dependent controls
8334           - Added Caret property, returning the current coords of the caret
8335           - Added ViewPortWidth and ViewPortHeight properties
8336           - Added Wrap property
8337           - Added CaretMoved event
8338           - Removed some old debug code
8339           - Split() can now create soft splits
8340           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
8341           - Added method to format existing text
8342           - Fixed size/alignment calculations to use viewport
8343           - RecalculateDocument now can handle changing line-numbers while
8344             calculating lines
8345
8346         * TextBox.cs:
8347           - Added some wrap logic, we don't wrap if alignment is not left
8348           - Added casts for scrollbar var, base class switched types to
8349             also support RichTextBoxA
8350           - Implemented handling of scrollbar visibility flags
8351
8352         * TextBoxBase.cs:
8353           - Switched scrollbars type to RichTextBoxScrollBars to support
8354             RichTextBox
8355           - Added tracking of canvas width/height
8356           - Switched scrollbars to be not selectable (to keep focus on text)
8357           - Added central CalculateDocument() method to handle all redraw
8358             requirements
8359           - Added ReadOnly support
8360           - Added WordWrap support
8361           - Fixed handling of Enter key (we now treat it as a DialogKey)
8362           - Fixed caret positioning when h or v scroll is not zero
8363           - Fixed placing/generation of vertical scrollbar
8364           - Added CalculateScrollBars() method to allow updating scrollbar
8365             limits and visibility
8366           - Fixed handling of horizontal scroll
8367           - Added handling of vertical scroll
8368           - Implemented auto-'jump' when caret moves to close to a left or
8369             right border and there is text to be scrolled into view (currently
8370             there's the potential for a stack overflow, until a bug in
8371             scrollbar is fixed)
8372
8373 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
8374         
8375         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
8376
8377 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
8378
8379         * Mime.cs:
8380         - added inodes.
8381         - return application/x-zerosize for files with size zero
8382           (if no extension pattern matches).
8383         - check matches collection for strings too.
8384         - return only the first mime type if the name value
8385           collection has more than one mime type.
8386
8387 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
8388         
8389         * PropertyGrid.cs: Cleaned up some TODOs
8390         * PropertyGridView.cs: Added support for UITypeEditors
8391
8392 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
8393         
8394         * DataGrid.cs: clears cached value
8395
8396 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
8397
8398         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
8399         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
8400         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
8401         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
8402         
8403 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
8404
8405         * ThemeWin32Classic.cs: fixes colour
8406
8407 2005-06-15  Peter Bartok  <pbartok@novell.com>
8408
8409         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
8410         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
8411         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
8412         * Control.cs: Added some MWFCategory and MWFDescription attributes
8413         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
8414
8415 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
8416
8417         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
8418         usage
8419
8420 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
8421
8422         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
8423         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
8424         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
8425         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
8426         * DataGrid.cs: default datagrid settings for Default Styles, fixes
8427         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
8428
8429 2005-06-13  Jackson Harper  <jackson@ximian.com>
8430
8431         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
8432         isn't printed when the user enables dropping. (X11 does accept
8433         drops).
8434         
8435 2005-06-13  Jackson Harper  <jackson@ximian.com>
8436
8437         * TreeView.cs: Remove some TODOS.
8438
8439 2005-06-13  Jackson Harper  <jackson@ximian.com>
8440
8441         * Form.cs: Hook into the mdi framework.
8442         * MdiClient.cs: Use the base control collections add method so
8443         parents get setup correctly. Set the default back colour and dock
8444         style.
8445         * MdiChildContext.cs: New class, this bad actor handles an
8446         instance of an MDI window. Right now there is only basic
8447         support. You can drag, close, and resize windows. Minimize and
8448         Maximize are partially implemented.
8449
8450 2005-06-13  Jackson Harper  <jackson@ximian.com>
8451
8452         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
8453         freaky when both vals are negative. NOTE: There are probably other
8454         places in XplatUIX11 that this needs to be done.
8455
8456 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
8457
8458         * DataGrid.cs: implement missing methods, move KeyboardNavigation
8459         * DataGridColumnStyle.cs: fixes signature
8460
8461 2005-06-12  Jackson Harper  <jackson@ximian.com>
8462
8463         * XplatUIX11.cs: Use sizing cursors similar to the ones on
8464         windows.
8465
8466 2005-06-11  Jackson Harper  <jackson@ximian.com>
8467
8468         * StatusBarPanel.cs: Signature cleanups. Implement
8469         BeginInit/EndInit.
8470
8471 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
8472
8473         * DataGridTextBoxColumn.cs: Honors aligment
8474         * GridColumnStylesCollection.cs: Contains is case unsensitive
8475         * GridTableStylesCollection.cs: several fixes
8476         * DataGridTableStyle.cs: default column creation
8477         * DataGridDrawingLogic.cs: fixes
8478         * CurrencyManager.cs: ListName property
8479         * DataGrid.cs: multiple styles support
8480         * DataGridColumnStyle.cs: fixes
8481         
8482
8483 2005-06-10  Peter Bartok  <pbartok@novell.com>
8484
8485         * Control.cs(Select): Moved SetFocus call to avoid potential
8486           loops if controls change the active control when getting focus
8487         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
8488           the up/down buttons
8489
8490 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
8491
8492         * ImageListConverter.cs: Implemented
8493
8494 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
8495
8496         * MonthCalendar.cs: Wired in NumericUpDown control for year
8497
8498 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
8499
8500         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
8501           DoubleClick events, since they are not meant to be fired.
8502
8503 2005-06-09  Peter Bartok  <pbartok@novell.com>
8504
8505         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
8506           Jonathan's standalone controls into MWF, implemented missing
8507           events, attributes and methods; added xxxAccessible classes
8508         * AccessibleObject.cs: Made fields internal so other classes
8509           can change them if needed
8510
8511 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
8512
8513         * UpDownBase.cs: Complete implementation
8514         * NumericUpDown.cs: Complete implementation
8515         * DomainUpDown.cs: Complete implementation
8516
8517 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
8518
8519         * DataGridTextBoxColumn.cs: drawing fixes
8520         * DataGridCell.cs: fixes ToString method to match MSNet
8521         * DataGridTableStyle.cs: fixes
8522         * DataGridBoolColumn.cs: fixes, drawing
8523         * DataGridDrawingLogic.cs: fixes, new methods
8524         * DataGridTextBox.cs: Keyboard and fixes
8525         * DataGrid.cs:
8526                 - Keyboard navigation
8527                 - Scrolling fixes
8528                 - Row selection (single, multiple, deletion, etc)
8529                 - Lots of fixes
8530         
8531 2005-06-07  Jackson Harper  <jackson@ximian.com>
8532
8533         * ThemeWin32Classic.cs: Clear the background area when drawing
8534         buttons.
8535
8536 2005-06-06  Peter Bartok  <pbartok@novell.com>
8537
8538         * ImageListStreamer.cs: Fixed signature for GetData
8539         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
8540         * ComboBox.cs:
8541           - Added missing ChildAccessibleObject class
8542           - Added missing OnXXXFocus overrides, switched to using those
8543             instead of the event handler
8544         * Control.cs:
8545           - Added Parent property for ControlAccessibleObject
8546           - Fixed signatures
8547           - Fixed attributes
8548           - Added ResetBindings()
8549         * ListBindingConverter.cs: Implemented some methods
8550         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
8551         * ImageList.cs: Implemented basic handle scheme, removed TODOs
8552         * ContainerControl.cs: Fixed signature, now subscribing to the
8553           ControlRemoved event instead of overriding the handler, LAMESPEC
8554         * CurrencyManager.cs: Added missing attribute
8555         * MonthCalendar.cs: Added missing properties
8556
8557 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
8558
8559         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
8560         
8561 2005-06-06  Gaurav Vaish and Ankit Jain
8562
8563         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
8564         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
8565         
8566 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
8567
8568         * Control.cs: fixes CreateParams Width / Height.
8569
8570 2005-06-05  Peter Bartok  <pbartok@novell.com>
8571
8572         * Win32DnD.cs: Removed compilation warnings
8573
8574 2005-06-05  Peter Bartok  <pbartok@novell.com>
8575
8576         * Control.cs (CreateParams): Since we don't know if one of the
8577           properties we use is overridden, lets make sure if we fail accessing
8578           we continue with a backup plan
8579
8580 2005-06-05  Peter Bartok  <pbartok@novell.com>
8581
8582         * Win32DnD.cs:
8583           - Removed debug output
8584           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
8585             struct
8586           - Plugged resource leak
8587         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
8588           MS size
8589
8590 2005-06-05  Peter Bartok  <pbartok@novell.com>
8591
8592         * XplatUIWin32.cs: Removed DnD code
8593         * Win32DnD.cs: Implemented drop source and drop target functionality
8594
8595 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8596
8597         * UpDownBase.cs: remove duplicate addition of event, enable some code
8598         that was commented out.
8599         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
8600         Validate input when a key is pressed. It works fine now for every
8601         combination of Hexadecimal. Only missing some drawing love when sharing
8602         space with other controls.
8603
8604 2005-06-04  Peter Bartok  <pbartok@novell.com>
8605
8606         * Control.cs:
8607           - We need to pass a window for DragDrop, so enable callback events
8608           - Added DnD callback events when being a DragSource
8609         * XplatUI.cs (StartDrag): Added window handle argument
8610         * XplatUIDriver.cs (StartDrag): Added window handle argument
8611         * QueryContinueDragEventArgs: Made fields internally accessible so
8612           drivers can set them
8613         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
8614           can set them
8615
8616 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
8617
8618         * DataGridTextBoxColumn.cs: column text editing
8619         * DataGridTableStyle.cs: Respect columns styles created by the user
8620         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
8621         * DataGridBoolColumn.cs: bool column editing
8622         * DataGrid.cs: fixes to scrolling, properties, etc
8623         * DataGridTextBox.cs: handle keyboard
8624         * DataGridColumnStyle.cs: fixes
8625
8626 2005-06-02  Jackson Harper  <jackson@ximian.com>
8627
8628         * ImageListStreamer.cs: Somewhat broken implementation of
8629         GetObjectData. The RLE needs some work to match MS properly.
8630
8631 2005-06-02  Jackson Harper  <jackson@ximian.com>
8632
8633         * X11Dnd.cs: Attempting to keep at least one file in MWF
8634         monostyled.
8635
8636 2005-06-02  Peter Bartok  <pbartok@novell.com>
8637
8638         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
8639           that way
8640
8641 2005-06-02  Peter Bartok  <pbartok@novell.com>
8642
8643         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
8644         * XplatUI.cs: Added DoDragDrop() method
8645         * XplatUIDriver.cs: Added DoDragDrop() method
8646
8647 2005-06-02  Jackson Harper  <jackson@ximian.com>
8648
8649         * Splitter.cs: Implement BorderStyle.
8650
8651 2005-06-02  Jackson Harper  <jackson@ximian.com>
8652
8653         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
8654         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
8655         X11 using XDND.
8656
8657 2005-06-02  Peter Bartok  <pbartok@novell.com>
8658
8659         * DataObject.cs:
8660           - Added Data setter
8661           - Fixed broken insertion code for SetData, now also
8662             overwrites any existing entry of the same format name
8663         * Hwnd.cs: Added list of pointers that automatically gets
8664           freed when the window is disposed
8665         * XplatUI.cs: Call driver initialization method when loading
8666           a driver
8667         * Control.cs:
8668           - OnDragLeave takes EventArgs, not DragEventArgs
8669           - Added setting of WS_EX_ACCEPTFILES style when dropping is
8670             supported
8671           - Forces style update when drop state changes
8672         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
8673           not perfect since we cannot (yet) call the IDataObject.GetData()
8674           method, we keep getting 0x80004005 error, dunno why)
8675
8676 2005-06-02  Peter Bartok  <pbartok@novell.com>
8677
8678         * DragEventArgs.cs: Make fields internal so we can cache the
8679           object and re-set the fields from XplatUI
8680
8681 2005-06-02  Jackson Harper  <jackson@ximian.com>
8682
8683         * Control.cs: Add some internal methods so the DnD subsystem can
8684         raise DnD events. Also call into the driver when AllowDrop is set.
8685         * XplatUI.cs:
8686         * XplatUIDriver.cs: New method for setting whether or not a window
8687         is allowed to accept drag and drop messages.
8688                 
8689 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
8690         
8691         * ScrollBar.cs: Make sure that values sent in Scroll events
8692         are always between Maximum and Minimum.
8693
8694 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
8695
8696         * Menu.cs: Call MenuChanged when menuitem visibility has been
8697         changed.
8698         * MenuItem.cs: Rebuild menu when item is (not) visible.
8699         * MainMenu.cs: MainMenu has special MenuChanged.
8700         * Theme.cs: Caption and FrameBorderSize are not fixed.
8701         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
8702         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
8703         * XplatUIX11.cs,
8704         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
8705         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
8706
8707 2005-05-30  Jackson Harper  <jackson@ximian.com>
8708
8709         * DataFormat.cs: We can't statically initialize this stuff because
8710         it calls into the xplatui and could create a loop. So we lazy init
8711         it.
8712
8713 2005-05-28  Jackson Harper  <jackson@ximian.com>
8714
8715         * Control.cs: Proper implementation of Product(Name/Version).
8716
8717 2005-05-27  Jackson Harper  <jackson@ximian.com>
8718
8719         * DataObject.cs: Dont crash if no data is found.
8720
8721 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
8722         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
8723                 as per status page, guessing it should be set to true
8724
8725 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
8726
8727         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
8728         * DataGridTableStyle.cs: set proper formatting text, def header text
8729         * ThemeWin32Classic.cs: new themable paramaters
8730         * DataGridBoolColumn.cs: paint check box, get data, fixes
8731         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
8732         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
8733         * DataGridColumnStyle.cs: fixes
8734         * Theme.cs: new themable paramaters
8735                 
8736 2005-05-26  Peter Bartok  <pbartok@novell.com>
8737
8738         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
8739
8740 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
8741         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
8742
8743 2005-05-24  Peter Bartok  <pbartok@novell.com>
8744
8745         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
8746           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
8747           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
8748           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
8749           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
8750           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
8751           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
8752           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
8753           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
8754           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
8755           missing attributes, etc
8756         * DataGridPreferredColumnWidthTypeConverter.cs: Added
8757
8758 2005-05-24  Peter Bartok  <pbartok@novell.com>
8759
8760         * Help.cs: Added, implemented trivial functions, throws up MessageBox
8761           when user tries to get help
8762         * DataObject.cs, DataFormats.cs, LinkArea.cs,
8763           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
8764           to suppress warnings
8765         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
8766           avoid unreachable code warning
8767
8768 2005-05-20  Peter Bartok  <pbartok@novell.com>
8769
8770         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
8771
8772 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
8773
8774         * DataGridTextBoxColumn.cs: Basic painting methods
8775         * DataGridTableStyle.cs: Set table style in the column
8776         * ThemeWin32Classic.cs: Use Theme for colors
8777         * DataGridDrawingLogic.cs: Implement more drawing
8778         * DataGrid.cs: drawing, theming, enhacements, fixes
8779         * DataGridColumnStyle.cs: fixes, drawing
8780         * Theme.cs: theming for Datagrid
8781
8782 2005-05-20  Peter Bartok  <pbartok@novell.com>
8783
8784         * Cursor.cs: Implemented GetObjectData() method
8785
8786 2005-05-20  Peter Bartok  <pbartok@novell.com>
8787
8788         * Cursors.cs: Added setting of cursor name
8789         * Cursor.cs:
8790           - Implemented constructors
8791           - Implemented Draw and DrawStretched
8792           - Implemented Current property
8793           - Implemented == and != operators
8794           - Implemented Dispose()
8795           - Implemented ToString
8796           - Added missing attributes
8797         * XplatUIX11.cs:
8798           - Added missing reset for OverrideCursor when DoEvents is called
8799           - Fixed creation of cursor, logic was wrong
8800         * XplatUIWin32.cs:
8801           - Added missing reset for OverrideCursor when DoEvents is called
8802           - Fixed creation of cursor, bit arrays were swapped
8803         * Clipboard.cs: Removed obsolete MonoTODO attribute
8804
8805 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
8806
8807         * ComboBox.cs: fixes OnSelectedItemChanged
8808         * ControlBindingsCollection.cs: fixes item range check
8809
8810 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
8811
8812         * UpDownBase.cs:
8813                 - Calc preferred height properly
8814                 - Implement missing properties
8815                 
8816         * NumericUpDown.cs: Implement missing events
8817
8818 2005-05-19  Jackson Harper  <jackson@ximian.com>
8819
8820         * TabControl.cs: New method that resizes the tab pages before
8821         redrawing them. This as needed as the control is double buffered
8822         and sizing will not be recalculated unless ResizeTabPages is
8823         called.
8824         * TabPage.cs: Set base.Text instead of Text in the constructor so
8825         that UpdateOwner does not get called. Use the new Redraw method of
8826         TabControl instead of Refresh so the sizing is recalculated.
8827         * ThemeWin32Classic.cs: Draw the text for button tabs.
8828
8829 2005-05-19  Jackson Harper  <jackson@ximian.com>
8830
8831         * Control.cs: Paint control background images. Fix typo where
8832         PaintControlBackground was not getting called correctly.
8833
8834 2005-05-19  Peter Bartok  <pbartok@novell.com>
8835
8836         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
8837           I can investigate, apparently I broke FileDialog
8838
8839 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
8840
8841         * AxHost.cs: Some simple properties.
8842         * Control.cs: window must be accessible after ctor.
8843         * Form.cs: Added TransparencyKey property.
8844         * TextBoxBase.cs: Implemented Clear. Text property can be null.
8845         * XplatUIWin32.cs: SetBorderStyle implemented.
8846
8847 2005-05-18  Peter Bartok  <pbartok@novell.com>
8848
8849         * DataObject.cs: Entries are not global but particular to the
8850           DataObject, now it behaves that way
8851         * XplatUIWin32.cs: Implemented Clipboard methods
8852         * Clipboard.cs: Implemented
8853         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
8854         * XplatUIOSX.cs: Updated to final clipboard prototypes
8855         * XplatUIX11.cs: Implemented Clipboard methods
8856         * XplatUIDriver.cs: Updated to final clipboard prototypes
8857         * XplatUIStructs.cs:
8858           - Added BITMAPINFOHEADER struct
8859           - Added ClipboardFormats enum
8860         * X11Structs.cs:
8861           - Added ClipboardStruct
8862           - Added Atom enum items for clipboard types
8863           - Fixed atom types for Selection event structures
8864         * DataFormats.cs:
8865           - Added internal properties and methods for drivers to enumerate
8866             all known formats
8867           - Switched initialization method to allow drivers to assign their
8868             own IDs even for the MS predefined clipboard IDs
8869         * XplatUI.cs: Updated to final clipboard interface
8870
8871 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
8872         * PropertyGridView.cs: Fixed compiler warnings.
8873
8874 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
8875         * PropertyGrid.cs: Added some event calls
8876         * PropertyGridView.cs: Change drawing code to use double buffering
8877         * PropertyGridTextBox.cs: Changed Text property name
8878         * GridItem.cs: Added Bounds property.
8879         * GridEntry.cs: Added Bounds property.
8880
8881 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
8882
8883         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
8884         since GetType() may not return the correct type if the object is
8885         a remoting proxy.
8886
8887 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
8888
8889         * TreeNodeCollection.cs: fixes get/set item ranges
8890         
8891 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
8892
8893         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
8894                 
8895 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
8896
8897         * ComboBox.cs: Fix item range comparation
8898         * ListView.cs: Fix item range comparation
8899
8900 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
8901
8902         * FontDialog.cs:
8903           - Clear example panel when OnPaint is called
8904           - Better solution for displaying the example panel text
8905           - Select default indexes in the ListBoxes
8906
8907 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
8908
8909         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
8910
8911 2005-05-11  Peter Bartok  <pbartok@novell.com>
8912
8913         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
8914         * SelectionRangeConverter.cs: Implemented
8915         * PropertyGrid.cs: Fixed attribute value
8916         * Control.cs:
8917           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
8918           - Added Sebastien Pouliot's CAS Stack Propagation fixes
8919         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
8920           that's common to all drivers. First methods to go there are
8921           Sebastien Pouliot's CAS Stack Propagation helper methods
8922         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
8923           Sebastien Pouliot for CAS Stack Propagation
8924
8925 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
8926
8927         * OSXStructs.cs:
8928           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
8929
8930 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
8931
8932         * DataGridTextBoxColumn.cs: fixed some members
8933         * GridColumnStylesCollection.cs: indexed column is case insensitive
8934         * DataGridTableStyle.cs: fixes
8935         * ThemeWin32Classic.cs: add new theme parameter
8936         * Theme.cs: add new theme parameter
8937         * DataGridDrawingLogic.cs: Datagrid's drawing logic
8938         * DataGrid.cs: fixes, new internal properties, etc.
8939         * DataGridColumnStyle.cs: allows to set grid value
8940         *
8941
8942 2005-05-10  Peter Bartok  <pbartok@novell.com>
8943
8944         * AccessibleObject.cs:
8945           - Removed MonoTODO attribute on help, method is correct
8946           - Fixed Bounds property
8947         * AxHost.cs: Moved MonoTODO
8948         * ButtonBase.cs: Now setting AccessibleObject properties
8949         * RadioButton.cs: Setting proper AccessibleObject role
8950         * CheckBox.cs: Setting proper AccessibleObject role
8951         * ControlBindingsCollection.cs: Added properties, methods and attributes
8952         * DataFormats.cs: Fixed awkward internal API, and changed to enable
8953           userdefined DataFormats.Format items as well
8954         * ListControl.cs: Removed data_member from the public eye
8955         * OpenFileDialog.cs:
8956           - Made class sealed
8957           - Added missing attributes
8958         * SaveFileDialog.cs: Added missing attributes
8959         * ImageListStreamer.cs: Fixed code that caused warnings
8960         * LinkLabel.cs: Removed unreachable code
8961         * TreeView.cs: Fixed code that caused warnings
8962         * PropertyGridView.cs: Fixed code that caused warnings
8963         * GridColumnStylesCollection.cs: Added missing attributes
8964         * GridTableStylesCollection: Added missing attribute
8965         * PropertyManager: Added .ctor
8966         * SecurityIDType: Added
8967         * DataObject.cs: Implemented class
8968         * LinkArea.cs: Added missing attribute
8969
8970 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
8971
8972         * RadioButton.cs: call base method to allow to fire OnClick event
8973         * UpDownBase.cs: OnMouseUp call base method
8974         * CheckedListBox.cs: call base method before returning
8975         * TrackBar.cs: call base method before returning
8976         
8977
8978 2005-05-10  Peter Bartok  <pbartok@novell.com>
8979
8980         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
8981           for messages
8982
8983 2005-05-10  Peter Bartok  <pbartok@novell.com>
8984
8985         * DataFormats.cs: Implemented
8986         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
8987           XplatUIX11.cs: Added Clipboard APIs
8988         * XplatUIWin32.cs: Implemented Clipboard APIs
8989         * FolderBrowserDialog.cs: Added missing event, attributes
8990
8991 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
8992
8993         * CheckBox.cs: call base method to allow to fire OnClick event
8994
8995 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
8996
8997         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
8998
8999 2005-05-06  Peter Bartok  <pbartok@novell.com>
9000
9001         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
9002         * Screen.cs: Implemented
9003         * HelpNavigator.cs: Added
9004         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
9005           property
9006         * HelpProvider.cs: Implemented all we can do until we have a CHM
9007           help library (which means that "What's This" does work now)
9008
9009 2005-05-06  Jackson Harper  <jackson@ximian.com>
9010
9011         * XplatUIX11.cs: Fix waking up the main loop.
9012                 
9013 2005-05-05  Peter Bartok  <pbartok@novell.com>
9014
9015         * XplatUI.cs: Updated revision
9016         * Form.cs: Removed enless loop
9017         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
9018         * Label.cs (OnPaint): Added call to base.OnPaint()
9019         * ToolTip.cs: Made ToolTipWindow reusable for other controls
9020         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
9021         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
9022         * AxHost.cs: Added
9023         * ButtonBase.cs: Moved base.OnPaint() call to end of method
9024         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
9025           to ToolTip.ToolTipWindow for drawing and size methods; this allows
9026           reuse of ToolTipWindow by other controls
9027         * SizeGrip.cs: Moved base.OnPaint() call to end of method
9028         * XplatUIX11.cs: Now clipping drawing area (experimental)
9029         * PictureBox.cs: Moved base.OnPaint() call to end of method
9030         * Theme.cs: Fixed ToolTip abstracts to match new format
9031         * ErrorProvider.cs: Implemented
9032
9033 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
9034
9035         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
9036         * LinkLabel.cs:
9037                 - Adds cursors
9038                 - Handles focus
9039                 - Implements LinkBehavior
9040                 - Fixes many issues
9041
9042 2005-05-03  Jackson Harper  <jackson@ximian.com>
9043
9044         * ListView.cs: Calculate the scrollbar positioning on resize and
9045         paint, so they get put in the correct place.
9046
9047 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
9048
9049         * ColorDialogs.cs: The small color panels are now handled by
9050           SmallColorControl. This fixes drawing of the focus rectangle
9051           and adds a 3D border.
9052
9053 2005-05-03  Peter Bartok  <pbartok@novell.com>
9054
9055         * Control.cs: Modified version of Jonathan Chamber's fix for
9056           double-buffering
9057
9058 2005-05-03  Jackson Harper  <jackson@ximian.com>
9059
9060         * ListView.cs: Remove redraw variable. Control now handles whether
9061         or not a redraw needs to be done, and will only raise the paint
9062         event if redrawing is needed.
9063
9064 2005-05-03  Jackson Harper  <jackson@ximian.com>
9065
9066         * Splitter.cs: No decorations for the splitter form. Cache the
9067         hatch brush.
9068
9069 2005-05-03  Jackson Harper  <jackson@ximian.com>
9070
9071         * TreeView.cs: Use dashed lines to connect nodes. Use the
9072         ControlPaint method for drawing the focus rect instead of doing
9073         that in treeview.
9074
9075 2005-05-02  Peter Bartok  <pbartok@novell.com>
9076
9077         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
9078
9079 2005-04-29  Jackson Harper  <jackson@ximian.com>
9080
9081         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
9082         entire image buffer. Just clear the clipping rectangle.
9083
9084 2005-04-29  Jackson Harper  <jackson@ximian.com>
9085
9086         * ThemeWin32Classic.cs: Don't draw list view items that are
9087         outside the clipping rectangle.
9088
9089 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
9090
9091         * ListBox.cs: added horizontal item scroll
9092
9093 2005-04-29  Jackson Harper  <jackson@ximian.com>
9094
9095         * ThemeWin32Classic.cs: Remove some old debug code that was
9096         causing flicker with the new double buffering code.
9097
9098 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
9099
9100         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
9101         behave like combobox and comboboxlist (still not sure if this is
9102         correct though).
9103
9104 2005-04-28  Jackson Harper  <jackson@ximian.com>
9105
9106         * ThemeWin32Classic.cs: Don't fill the middle of progress
9107         bars. This fills areas outside of the clip bounds that don't need
9108         to be filled.
9109
9110 2005-04-28  Jackson Harper  <jackson@ximian.com>
9111
9112         * Control.cs: Don't expose functionality to touch the image buffers.
9113         * ProgressBar.cs:
9114         * ListView.cs: We do not need to (and no longer can) manipulate
9115         the image buffers directly. All of this is handled by Control.
9116
9117 2005-04-28  Peter Bartok  <pbartok@novell.com>
9118
9119         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
9120           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
9121           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
9122
9123 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
9124
9125         * Combobox:
9126                 - Adjust control's height for non-simple comboboxes (bug fix)
9127                 - Remove dead code
9128         * MenuAPI.cs: remove unused var
9129         * ScrollBar.cs: remove unsed var
9130                  
9131         * ListBox.cs: unselect items when clearing
9132
9133 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
9134
9135         * ListControl.cs: honors OnPositionChanged and default Selected Item
9136         * ListBox.cs: unselect items when clearing
9137
9138 2005-04-27  Jackson Harper  <jackson@ximian.com>
9139
9140         * X11Keyboard.cs: Initialize a default keyboard and give a warning
9141         if a "correct" keyboard is not found. This will make us not crash,
9142         but might give some users bad keyboard layouts...seems to be the
9143         same thing rewind does.
9144
9145 2005-04-27  Jackson Harper  <jackson@ximian.com>
9146
9147         * BindingManagerBase.cs: Attach the current/position changed
9148         handlers to their respective events.
9149
9150 2005-04-27  Jackson Harper  <jackson@ximian.com>
9151
9152         * Control.cs: Make sure that the first WM_PAINT does a full draw,
9153         not just a blit.
9154         * ThemeWin32Classic.cs: Don't fill the background for picture
9155         boxes. This could overright user drawing.
9156         * ComboBox.cs: Just fill the clipping rect not the entire client
9157         rect when drawing the background. This prevents pieces of the
9158         image buffer from getting overwritten and is theoretically faster.
9159
9160 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
9161
9162         * ComboBox.cs: Databinding support fixes, fire missing events
9163         * ListControl.cs: implement missing methods and properties, fixes
9164         * ThemeWin32Classic.cs: Databiding support on Drawing
9165         * CheckedListBox.cs: Databinding support fixes, fire missing events
9166         * ListBox.cs: Databinding support fixes, fire missing events
9167         
9168 2005-04-25  Peter Bartok  <pbartok@novell.com>
9169
9170         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
9171
9172 2005-04-25  Jackson Harper  <jackson@ximian.com>
9173
9174         * TreeView.cs: Use the horizontal scrollbars height not width when
9175         determining how much of the client area is available.
9176
9177 2005-04-25  Jackson Harper  <jackson@ximian.com>
9178
9179         * Control.cs: Double buffering is handled differently now. As per
9180         the spec, the extra buffer is created in the WM_PAINT message and
9181         passed down to the control's drawing code.
9182         * GroupBox.cs:
9183         * Label.cs:
9184         * CheckBox.cs:
9185         * ProgressBar.cs:
9186         * RadioButton.cs:
9187         * ColorDialog.cs:
9188         * ComboBox.cs:
9189         * PropertyGridView.cs:
9190         * UpDownBase.cs:
9191         * MessageBox.cs:
9192         * MenuAPI.cs:
9193         * ListView.cs:
9194         * ButtonBase.cs:
9195         * SizeGrip.cs:
9196         * ScrollBar.cs:
9197         * ListBox.cs:
9198         * TrackBar.cs:
9199         * ToolBar.cs:
9200         * PictureBox.cs:
9201         * DateTimePicker.cs:
9202         * StatusBar.cs:
9203         * TreeView.cs: Update to new double buffering system.
9204         * MonthCalendar.cs: Uncomment block, as Capture is now
9205         working. Update to new double buffering
9206         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
9207         * PaintEventArgs.cs: New internal method allows us to set the
9208         graphics object. This is used for double buffering.
9209         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
9210         rectangle. The internal paint_area var has been removed from
9211         StatusBar. The clipping rect should be used instead.
9212         * Theme.cs: Give the PictureBox drawing method a clipping rect.
9213         * TabPage.cs: The RefreshTabs method was removed, so just call the
9214         tab controls Refresh method now.
9215         * TabControl.cs: Update to new double buffering. Make sure the
9216         handle is created before sizing the tab pages, otherwise we will
9217         get stuck in a loop.
9218
9219 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
9220
9221         * LinkLabel.cs: Fix typo, bug #74719; patch
9222           from Borja Sanchez Zamorano
9223
9224 2005-04-22  Jackson Harper  <jackson@ximian.com>
9225
9226         * TreeNode.cs: Implement Handle stuff.
9227         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
9228
9229 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
9230
9231         * DataGridTextBoxColumn.cs: call base constructors, fixes
9232         * GridColumnStylesCollection.cs: missing events, methods, and functionality
9233         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
9234         * DataGridTableStyle.cs: implements create default column styles
9235         * DataGridBoolColumn.cs: which types can handle
9236         * DataGrid.cs: missing methods, fixes, new functionality
9237         * DataGridColumnStyle.cs: fixes
9238
9239 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
9240         * FolderBrowserDialog.cs:
9241         - Use a thread to fill the TreeView
9242         - Adjusted some sizes
9243
9244 2005-04-19  Peter Bartok  <pbartok@novell.com>
9245
9246         * LinkLabel.cs: (Re-)create the pieces when setting the Text
9247           property. Fixes #74360.
9248
9249 2005-04-19  Jackson Harper  <jackson@ximian.com>
9250
9251         * XEventQueue.cs: Lock when getting the lockqueue size.
9252         * PictureBox.cs: Call base OnPaint
9253         
9254 2005-04-19  Peter Bartok  <pbartok@novell.com>
9255
9256         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
9257           messages were no longer being processed (this broke BeginInvoke)
9258
9259           
9260 2005-04-18  Jackson Harper  <jackson@ximian.com>
9261
9262         * TreeView.cs: buglet that caused node images to get drawn
9263         regardless of whether or not they were in the clipping rectangle.
9264
9265 2005-04-18  Jackson Harper  <jackson@ximian.com>
9266
9267         * CurrencyManager.cs: There are four rules for GetItemProperties:
9268         - If the type is an array use the element type of the array
9269         - If the type is a typed list, use the type
9270         - If the list contains an Item property that is not an object, use
9271         that property
9272         - use the first element of the list if there are any elements in
9273         the list.
9274         
9275 2005-04-17  Jackson Harper  <jackson@ximian.oom>
9276
9277         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
9278         click. This handles offsets for scrolling properly and reduces
9279         memory. Also fixed GetNode to not offset now that TopNode works
9280         properly.
9281         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
9282         
9283 2005-04-17  Jackson Harper  <jackson@ximian.com>
9284
9285         * CursorConverter.cs: Initial implementation.
9286
9287 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
9288
9289         * ListControl.cs: work towards complex data binding support on ListControl
9290         * CurrencyManager.cs: work towards complex data binding support on ListControl
9291         * ListBox.cs: work towards complex data binding support on ListControl
9292
9293
9294 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
9295
9296         * GridTableStylesCollection.cs: fixes name and constructor
9297         * DataGridTableStyle.cs: fixes
9298         * DataGridBoolColumn.cs: fixes names and constructors
9299         * DataGrid.cs: define methods and properties. Some init implementations
9300         * DataGridCell.cs: define methods and properties. Some init implementations
9301         * GridTablesFactory.cs: Define methods and properties
9302
9303 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
9304
9305         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
9306         graphics port changes.  We still want the coordinates in global screen
9307         coordinates.
9308
9309 2005-04-14  Jackson Harper  <jackson@ximian.com>
9310
9311         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
9312         check plus minus or checkbox clicks unless those features are enabled.
9313
9314 2005-04-14  Jackson Harper  <jackson@ximian.com>
9315
9316         * TreeView.cs: Add methods for setting the top and bottom visible
9317         nodes. TreeNode::EnsureVisible uses these methods.
9318         * TreeNode.cs: Implement EnsureVisible
9319
9320 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
9321
9322         * Form.cs: Pospone menu assignation if the window has not been created yet
9323         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
9324         size and position
9325
9326 2005-04-12  Jackson Harper  <jackson@ximian.com>
9327
9328         * TreeView.cs: Set the TopNode properly when scrolling
9329         occurs. This has the added benifit of reducing the amount of
9330         walking that needs to be done when drawing. Also removed an old
9331         misleading TODO.
9332         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
9333         
9334 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
9335
9336         * Timer.cs: fixes interval setting when the timer is already enabled
9337         
9338 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
9339
9340         * FolderBrowserDialog.cs: First approach
9341
9342 2005-04-09  Peter Bartok  <pbartok@novell.com>
9343
9344         * FolderBrowserDialog: Added
9345
9346 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
9347
9348         * LinkLabel.cs: move drawing code into the theme
9349         * ThemeWin32Classic.cs: drawing code and painting background bugfix
9350         * Theme.cs: define DrawLinkLabel method
9351
9352 2005-04-05  Jackson Harper  <jackson@ximian.com>
9353
9354         * BindingContext.cs: Use weak references so these bad actors don't
9355         stay alive longer then they need to.
9356
9357 2005-04-05  Jackson Harper  <jackson@ximian.com>
9358
9359         * ListControl.cs: Basic implementation of complex databinding.
9360         * ComboBox.cs:
9361         * ListBox.cs: Add calls to ListControl databinding methods.
9362
9363 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
9364
9365         * FileDialog.cs:
9366           - Don't change PopupButtonState to Normal when the
9367             PopupButton gets pressed several times.
9368           - Renamed ButtonPanel to PopupButtonPanel
9369
9370 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
9371
9372         * ColorDialog.cs: Use cached objects instead of creating them
9373         * LinkLabel.cs: Use cached objects instead of creating them
9374         * Splitter.cs: Use cached objects instead of creating them
9375         * FontDialog.cs: Use cached objects instead of creating them
9376         * PropertyGridView.cs: Use cached objects instead of creating them
9377         * MessageBox.cs: Use cached objects instead of creating them
9378         * FileDialog.cs: Use cached objects instead of creating them
9379         * ThemeWin32Classic.cs: Use cached objects instead of creating them
9380         * TreeView.cs: Use cached objects instead of creating them
9381         
9382 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
9383
9384         * Control.cs: use Equals to compare the font since no == op
9385         * ScrollBar.cs: use Equals to compare the font since no == op
9386
9387 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
9388
9389         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
9390
9391 2005-04-01  Jackson Harper  <jackson@ximian.com>
9392
9393         * Binding.cs: Implement IsBinding.
9394         * BindingManagerBase.cs:
9395         * PropertyManager.cs:
9396         * CurrencyManager.cs: Add IsSuspended property.
9397
9398 2005-04-01  Jackson Harper  <jackson@ximian.com>
9399
9400         * Binding.cs: Had some IsAssignableFrom calls backwards.
9401
9402 2005-04-01  Jackson Harper  <jackson@ximian.com>
9403
9404         * Binding.cs: Handle null data members when pulling data.
9405         * PropertyManager.cs: Handle the data member being a property that
9406         does not exist.
9407
9408 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
9409
9410         * DataGridTextBoxColumn.cs: fixes signature
9411         * DataGrid.cs: calls right constructor
9412
9413 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
9414
9415         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
9416         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
9417         * GridTableStylesCollection.cs: implements GridTableStylesCollection
9418         * DataGridTableStyle.cs: implements DataGridTableStyle
9419         * DataGridBoolColumn.cs: implements DataGridBoolColumn
9420         * DataGridTextBox.cs: implements DataGridTextBox
9421         * DataGridColumnStyle.cs: implements DataGridColumnStyle
9422
9423 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
9424
9425         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
9426
9427 2005-03-29  Peter Bartok  <pbartok@novell.com>
9428
9429         * Application.cs:
9430           - Properly implemented CompanyName property
9431           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
9432             returns a path that includes CompanyName, ProductName and
9433             Version (fixes bug #70330)
9434
9435 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
9436
9437         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
9438           fixes bug #72588.
9439
9440 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
9441
9442         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
9443         
9444           - Added ReadOnly CheckBox
9445           - Further refactoring: moved some code from Open-/SaveFileDialog
9446             to FileDialog
9447
9448 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
9449
9450         * OpenFileDialog.cs: Fixed CheckFileExists
9451         * FileDialog.cs:
9452           Moved FileView and DirComboBox outside FileDialog class.
9453           They can now be used outside FileDialog
9454
9455 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
9456
9457         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
9458         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
9459
9460 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
9461
9462         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
9463           - Added missing CreatePrompt property in SaveDialog
9464           - Overall SaveDialog handling should be better now
9465           - Added non standard ShowHiddenFiles property
9466           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
9467           - Added InitialDirectory and RestoreDirectory support
9468
9469 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
9470
9471         * FileDialog.cs: Made dirComboBox usable
9472
9473 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
9474
9475         * FileDialog.cs: Added Filter support (case sensitiv)
9476
9477 2005-03-24  Jackson Harper  <jackson@ximian.com>
9478
9479         * TabControl.cs: Need a couple more pixels for the lines.
9480
9481 2005-03-23  Jackson Harper  <jackson@ximian.com>
9482
9483         * TabControl.cs: Give the tab page focus when it is selected.
9484
9485 2005-03-23  Jackson Harper  <jackson@ximian.com>
9486
9487         * TabControl.cs: Account for the drawing of tabs borders when
9488         invalidating. If the slider was clicked dont do click detection on
9489         the tabs.
9490
9491 2005-03-23  Jackson Harper  <jackson@ximian.com>
9492
9493         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
9494
9495 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
9496
9497         * CategoryGridEntry.cs: Added
9498         * GridItem.cs: Added helper properties
9499         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
9500         * GridEntry.cs: Updated code for collection
9501         * PropertyGrid.cs: Cleaned up some formatting
9502         * PropertyGridView.cs: Added drop down functionality for enums.
9503         * GridItemCollection.cs: Added enumerator logic
9504         * PropertyGridEntry.cs: Added
9505
9506 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
9507
9508         * FileDialog.cs:
9509           - Removed unnecessary commented code
9510           - Fixed handling for entering the filename manually in the combobox
9511
9512 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
9513
9514         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
9515
9516 2005-03-18  Peter Bartok  <pbartok@novell.com>
9517
9518         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
9519           them being touching the border
9520
9521 2005-03-18  Peter Bartok  <pbartok@novell.com>
9522
9523         * TextControl.cs: Quick hack to center text better
9524
9525 2005-03-18  Peter Bartok  <pbartok@novell.com>
9526
9527         * ControlPaint.cs:
9528           - Don't throw NotImplemented exceptions, just print a notice once
9529             instead (requested by Miguel). This makes running existing SWF
9530             apps a bit easier
9531         * Control.cs:
9532           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
9533           - Added context menu trigger on right click
9534         * Panel.cs: Trigger invalidate on resize
9535         * StatusBar.cs:
9536           - Removed old double-buffer drawing
9537           - Added ResizeRedraw style to force proper update of statusbar
9538         * ListView.cs:
9539           - Removed debug output
9540         * ThemeWin32Classic.cs:
9541           - Fixed drawing of status bar, now draws Text property if there
9542             are no defined panels
9543
9544 2005-03-18  Jackson Harper  <jackson@ximian.com>
9545
9546         * ImageList.cs: When the image stream is set pull all the images
9547         from it.
9548         * ImageListStreamer.cs: Implement reading image list streams.
9549
9550 2005-03-18  Peter Bartok  <pbartok@novell.com>
9551
9552         * ThemeWin32Classic.cs (DrawPictureBox):
9553           - Fixed calculations for centered drawing
9554           - Fixed drawing for normal mode, not scaling the image on normal
9555
9556 2005-03-18  Peter Bartok  <pbartok@novell.com>
9557
9558         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
9559           textbox
9560         * FileDialog.cs:
9561           - Made Open/Save button the accept button for FileDialog
9562           - Tied the cancel button to the IButtonControl cancel button
9563           - Save/Open now properly builds the pathname
9564           - Now handles user-entered text
9565           - Preventing crash on right-click if no item is selected
9566           - Fixed Text property, now uses contents of textbox
9567           - Fixed SelectedText property, now just returns the text part that
9568             is selected in the text box
9569
9570 2005-03-18  Jackson Harper  <jackson@ximian.com>
9571
9572         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
9573         rect, make sure to de-adjust the interior rect after drawing the
9574         tab text.
9575
9576 2005-03-18  Peter Bartok  <pbartok@novell.com>
9577
9578         * MenuAPI.cs: Remove menu *before* executing selected action to
9579           prevent the menu from 'hanging around'
9580           
9581 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
9582
9583         * XplatUIOSX.cs: Implemented WorkingArea property
9584
9585 2005-03-17  Peter Bartok  <pbartok@novell.com>
9586
9587         * XplatUIX11.cs: Fixed menu coord calculations
9588         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
9589           for calculating offsets
9590
9591 2005-03-17  Peter Bartok  <pbartok@novell.com>
9592
9593         * Hwnd.cs: Do not consider menu presence for default client
9594           rectangle location/size
9595         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
9596           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
9597           translation functions
9598         * FileDialog.cs: Fixed (what I presume is a) typo
9599
9600 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
9601
9602         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
9603           X access (avoids X-Async errors)
9604
9605 2005-03-16  Jackson Harper  <jackson@ximian.com>
9606
9607         * TabControl.cs: Raise the SelectedIndexChanged event.
9608
9609 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
9610
9611         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
9612           - Removed vertical ToolBar and replaced it with a custom panel
9613             (desktop and home button already work)
9614           - Added Help button (some controls get resized or relocated then)
9615           - Draw correct text depending on Open or Save.
9616           - Fixed some typos...
9617
9618 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
9619
9620         * ScrollBar.cs:
9621           - Only change Maximum and Minimum when need it (bug fix)
9622
9623 2005-03-15  Peter Bartok  <pbartok@novell.com>
9624
9625         * Form.cs: Use Handle for icon, to trigger creation if
9626           the window does not yet exist
9627         * Control.cs:
9628           - CanSelect: Slight performance improvement
9629           - Focus(): Preventing possible recursion
9630           - Invalidate(): Removed ControlStyle based clear flag setting
9631           - WM_PAINT: fixed logic for calling OnPaintBackground
9632           - WM_ERASEBKGND: Fixed logic, added call to new driver method
9633             EraseWindowBackground if the control doesn't paint background
9634         * XplatUIWin32.cs:
9635           - Moved EraseWindowBackground() method to internal methods
9636           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
9637             is sent via SendMessage on BeginPaint call on Win32
9638         * XplatUIX11.cs:
9639           - Added EraseWindowBackground() method
9640           - No longer sends WM_ERASEBKGND on .Expose, but on call to
9641             PaintEventStart, which more closely matches Win32 behaviour
9642           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
9643           - Fixed SetFocus() to properly deal with client and whole windows
9644         * Hwnd.cs: Added ErasePending property
9645         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
9646         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
9647
9648 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
9649
9650         * XplatUIOSX.cs:
9651           - Fix hard loop when timers exist.
9652           - Fix bugs with middle and right click for 3 button mice.
9653
9654 2005-03-11  Peter Bartok  <pbartok@novell.com>
9655
9656         * XplatUIX11.cs:
9657           - get_WorkingArea: Need to call X directly, GetWindowPos only
9658             returns cached data now
9659           - Added sanity check to GetWindowPos hwnd usage
9660
9661 2005-03-11  Jackson Harper  <jackson@ximian.com>
9662
9663         * BindingManagerBase.cs: This method isn't used anymore as
9664         PullData now updates the data in the control.
9665
9666 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
9667
9668         * Form.cs: fixes menu drawing on X11
9669         * MenuAPI.cs:  fixes menu drawing on X11
9670
9671 2005-03-11  Peter Bartok  <pbartok@novell.com>
9672
9673         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
9674           from Jonathan Gilbert; should fix bug #73606
9675         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
9676           in Screen coordinates. Thanks, Jordi.
9677         * Form.cs: Added missing attribute
9678
9679 2005-03-11  Peter Bartok  <pbartok@novell.com>
9680
9681         * Form.cs:
9682           - Rudimentary Mdi support
9683           - Removed outdated FormParent code
9684           - Implemented lots of missing properties and methods, still missing
9685             transparency support
9686           - Added missing attributes
9687           - Implemented support for MaximumBounds
9688           - Added firing of various events
9689         * XplatUI.cs: Added SetIcon() method
9690         * XplatUIDriver.cs: Added SetIcon() abstract
9691         * XplatUIOSX.cs: Stubbed out SetIcon() method
9692         * XplatUIX11.cs:
9693           - Implemented SetIcon() support
9694           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
9695           - Switched to unix line endings
9696         * XplatUIWin32.cs:
9697           - Made POINT internal so for can access it as part of MINMAX
9698           - Implemented SetIcon() support
9699           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
9700             native Mdi support again, might have to go managed)
9701         * Control.cs: Now fires the StyleChanged event
9702         * MdiClient.cs: Added; still mostly empty
9703
9704 2005-03-10  Peter Bartok  <pbartok@novell.com>
9705
9706         * SaveFileDialog.cs: Added emtpy file
9707
9708 2005-03-08  Peter Bartok  <pbartok@novell.com>
9709
9710         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
9711           in turn triggers OnCreateContro) when creating a handle for the
9712           first time.
9713         * TextControl.cs: Fixed endless loop in certain cases when
9714           replacing the current selection
9715
9716 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
9717
9718         * ScrollBar.cs:
9719           - Honors NewValue changes in Scroll events allowing apps to change it
9720           - Adds First and Last Scroll events
9721           - Fixes Thumb events
9722
9723 2005-03-07  Peter Bartok  <pbartok@novell.com>
9724
9725         * Hwnd.cs: Added DefaultClientRectangle property
9726         * XplatUI.cs: Now using the X11 driver Where() method, which provides
9727           more detailed debug information
9728         * XplatUIX11.cs:
9729           - Fixed size-change feedback loop, where we would pull an old size
9730             off the queue and mistakenly change our window's size to an
9731             earlier value
9732           - Now compressing ConfigureNotify events, to reduce looping and
9733             redraw issues
9734         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
9735           is called
9736
9737 2005-03-07  Jackson Harper  <jackson@ximian.com>
9738
9739         * Binding.cs: Push data pushes from data -> property. Check if the
9740         property is readonly when attempting to set it.
9741
9742 2005-03-07  Jackson Harper  <jackson@ximian.com>
9743
9744         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
9745         instead of IsSubclassOf. Pulling data now sets the value on the
9746         control.
9747         * PropertyManager.cs:
9748         * CurrencyManager.cs: Just need to pull data when updating now,
9749         because PullData will set the value on the control.
9750
9751 2005-03-04  Jackson Harper  <jackson@ximian.com>
9752
9753         * Binding.cs: Implement data type parsing and converting on pulled
9754         data. TODO: Are there more ways the data can be converted?
9755
9756 2005-03-04  Jackson Harper  <jackson@ximian.com>
9757
9758         * Binding.cs: Support <Property>IsNull checks. Also bind to the
9759         controls Validating method so we can repull the data when the
9760         control loses focus.
9761
9762 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
9763
9764         * ColumnHeader.cs:
9765           - Fixes null string format
9766           
9767         * ListView.cs:
9768           - Adds enum type checks
9769           - Fixes redrawing and recalc need after changing some properties
9770           - Fixes on focus_item set after the event
9771           - Fixes adding columns after the control has been created
9772           
9773         * ThemeWin32Classic.cs:
9774           - Fixes CheckBox focus rectangle
9775           - Fixes ColumnHeader drawing
9776
9777
9778 2005-03-03  Jackson Harper  <jackson@ximian.com>
9779
9780         * Binding.cs: Bind to <Property>Changed events so we can detect
9781         when properties are changed and update the data.
9782
9783 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
9784
9785         * ImageList.cs:
9786           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
9787           - Fixes ImageList constructor with ImageList container
9788           - Fixes image scaling (wrong parameters at DrawImage)
9789
9790 2005-02-02  Jackson Harper  <jackson@ximian.com>
9791
9792         * Binding.cs: Make property searches case-insensitive. Eliminate
9793         some duplicated code.
9794
9795 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
9796
9797         * ComboBox.cs:
9798                 - Handle focus event
9799                 - Fix scrollbar events
9800                 - Discard highlighted item if remove it
9801                 - Fixes SelectedItem with strings
9802
9803 2005-03-01  Peter Bartok  <pbartok@novell.com>
9804
9805         * Control.cs:
9806           - Fixed Visible property, now follows (once again) parent chain
9807             to return false if any control in the chain is visible=false
9808           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
9809           - Fixed several places where is_visible instead of Visible was used
9810           - Implemented FIXME related to focus selection when setting focused
9811             control to be invisible
9812
9813         * XplatUIWin32.cs: Now using proper method to find out if window is
9814           visible. Thanks to Jordi for pointing it out
9815
9816 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
9817
9818         * ComboBox.cs: show/hide scrollbar instead of creating it
9819
9820 2005-02-27  Jackson Harper  <jackson@ximian.com>
9821
9822         * CurrencyManager.cs: Add PositionChanged stuff.
9823
9824 2005-02-27  Peter Bartok  <pbartok@novell.com>
9825
9826         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
9827         * XplatUIOSX.cs: Added GetMenuOrigin() stub
9828         * XplatUIWin32.cs: Implemented GetMenuOrigin()
9829         * XplatUIX11.cs:
9830           - Implemented GetMenuDC()
9831           - Implemented GetMenuOrigin()
9832           - Implemented ReleaseMenuDC()
9833           - Implemented generation of WM_NCPAINT message
9834           - Implemented generation and handling of WM_NCCALCSIZE message
9835         * Form.cs: Added debug helper message for Jordi's menu work
9836         * Hwnd.cs:
9837           - Modified ClientRect property; added setter, fixed getter to handle
9838             setting of ClientRect
9839           - Added MenuOrigin property
9840
9841 2005-02-26  Peter Bartok  <pbartok@novell.com>
9842
9843         * XplatUIX11.cs:
9844           - Destroys the caret if a window that's being destroyed contains it
9845           - Ignores expose events coming from the X11 queue for windows that
9846             already are destroyed
9847           - Now uses the proper variable for handling DestroyNotify, before we
9848             marked the wrong window as destroyed
9849           - Improved/added some debug output
9850
9851 2005-02-26  Peter Bartok  <pbartok@novell.com>
9852
9853         * X11Keyboard.cs: Fixes to work on 64bit systems
9854
9855 2005-02-26  Peter Bartok  <pbartok@novell.com>
9856
9857         * Control.cs:
9858           - Now calling OnHandleDestroyed from DestroyHandle()
9859             instead of Dispose()
9860           - Removed bogus call to controls.Remove() from DestroyHandle()
9861
9862 2005-02-26  Peter Bartok  <pbartok@novell.com>
9863
9864         * Control.cs: Properly destroy child windows when our handle is
9865           destroyed
9866
9867 2005-02-25  Peter Bartok  <pbartok@novell.com>
9868
9869         * XplatUI.cs:
9870           - Added 'DriverDebug' define to allow tracing XplatUI API calls
9871           - Alphabetized Static Methods and Subclasses
9872
9873         * XplatUIX11.cs:
9874           - Added XException class to allow custom handling of X11 exceptions
9875           - Created custom X11 error handler, tied into XException class
9876           - Added support for MONO_XEXCEPTIONS env var to allow the user
9877             to either throw an exception on X errors or continue running
9878             after displaying the error
9879           - Added handling of DestroyNotify message
9880           - Added handler for CreateNotify message (still disabled)
9881           - Improved (tried to at least) Where method to provide file and lineno
9882         * X11Structs.cs:
9883           - Added XErrorHandler delegate
9884           - Added XRequest enumeration (to suppor translation of errors)
9885
9886 2005-02-25  Jackson Harper  <jackson@ximian.com>
9887
9888         * PropertyManager.cs: Implement editing features
9889         * CurrencyManager.cs:
9890         * Binding.cs: First attempt at UpdateIsBinding
9891         * BindingManagerBase.cs: Call UpdateIsBinding before
9892         pushing/pulling data.
9893
9894 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
9895
9896         * MenuAPI.cs: Respect disabled items
9897         * ThemeWin32Classic.cs
9898                 - Caches ImageAttributes creation for DrawImageDisabled
9899                 - Fixes vertical menu line drawing
9900                 - Draws disabled arrows in disable menu items
9901
9902 2005-02-24  Peter Bartok  <pbartok@novell.com>
9903
9904         * Hwnd.cs:
9905           - Added UserData property to allow associating arbitrary objects
9906             with the handle
9907           - Fixed leak; now removing Hwnd references from static windows array
9908         * XplatUIWin32.cs:
9909           - Fixed Graphics leak in PaintEventEnd
9910           - Removed usage of HandleData, switched over to Hwnd class
9911         * HandleData.cs: Removed, obsoleted by Hwnd.cs
9912
9913 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
9914
9915         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
9916         * ScrollBar.cs: Fixes bug
9917         * TrackBar.cs: removes death code, clipping, mimize refreshes,
9918          keyboard navigation enhancements
9919
9920 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
9921
9922         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
9923         * GroupBox.cs: Add control styles
9924         * Label.cs: Add control styles
9925         * UpDownBase.cs: Add control styles
9926         * ListBox.cs: Add control styles
9927         * XplatUIWin32.cs: Fixes wrong parameter order
9928
9929
9930 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
9931
9932         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
9933
9934 2005-02-23  Jackson Harper  <jackson@ximian.com>
9935
9936         * PropertyManager.cs: Implement property binding. This doesn't
9937         seem to work yet though as (I think) there are some bugs in
9938         System.ComponentModel.PropertyDescriptor.
9939         * BindingContext.cs: Use new PropertyManager constructor.
9940
9941 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
9942
9943         * ProgressBar.cs: use clip region in ProgressBar
9944         * ThemeWin32Classic.cs: use clip region in ProgressBar
9945
9946 2004-02-22  Jackson Harper  <jackson@ximian.com>
9947
9948         * BindingsCollection.cs: Remove some debug code.
9949
9950 2005-02-22  Jackson Harper  <jackson@ximian.com>
9951
9952         * BindingContext.cs:
9953         * ControlBindingsCollection.cs:
9954         * CurrencyManager.cs:
9955         * Binding.cs:
9956         * BindingManagerBase.cs: Initial implementation
9957         * BindingsCollection.cs: Add an internal contains method that the
9958         BindingManagerBase uses to ensure bindings aren't added twice to
9959         the collection.
9960         * PropertyManager.cs: Stubbed out.
9961         * Control.cs:
9962         * ContainerControl.cs: Hook up databinding
9963         
9964 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
9965
9966         * XplatUIOSX.cs:
9967           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
9968           Fixed Invalidate/Update chain.
9969           Fixed tons of other minor bugs (this is almost a complete rewrite).
9970
9971 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
9972
9973         * ComboBox.cs: do subcontrol creation when the control is created
9974
9975 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
9976
9977         * Label.cs: fixes image drawing (image and imagelist)
9978         * ThemeWin32Classic.cs: cache brushes
9979         
9980 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
9981
9982         * Form.cs: Move menu drawing code to Theme class
9983         * ComboBox.cs: Move ComboBox drawing code to Theme class
9984         * MenuItem.cs: Move menu drawing code to Theme class
9985         * MenuAPI.cs: Move menu drawing code to Theme class
9986         * ThemeWin32Classic.cs: New methods
9987         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
9988         * ListBox.cs: Move Listbox drawing code to Theme class
9989         * Theme.cs: New methods
9990
9991 2005-02-20  Peter Bartok  <pbartok@novell.com>
9992
9993         * Control.cs:
9994           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
9995             only process mnemonics on those)
9996           - Fixed event sequence for key handling; first calling
9997             ProcessKeyEventArgs now
9998         * TextBoxBase.cs:
9999           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
10000             for processing non-character keys
10001           - Fixed WM_CHAR to generate proper event sequence before processing
10002         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
10003           generation
10004
10005 2005-02-19  Peter Bartok  <pbartok@novell.com>
10006
10007         * UserControl.cs: Added TextChanged event; added attributes
10008         * SizeGrip.cs: Implemented resizing and optional display of grip
10009         * Form.cs: Fixed attribute
10010         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
10011           Changed meaning of ScrollWindow bool argument; instead of the
10012           clear attribute (which will be true usually anyway), it gives the
10013           option of moving child controls as well.
10014         * XplatUIX11.cs:
10015           - Changed to match new ScrollWindow argument
10016           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
10017             now handles the implicit parent window a WM puts around us
10018         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
10019           to work)
10020         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
10021         * TreeView.cs: Adjusted to new ScrollWindow arguments
10022
10023 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
10024
10025         * Form.cs: Menu integration with non-client area
10026         * MenuItem.cs: Menu integration with non-client area
10027         * MenuAPI.cs: Menu integration with non-client area
10028
10029 2005-02-18  Peter Bartok  <pbartok@novell.com>
10030
10031         * MethodInvoker.cs: Added
10032         * MdiLayout.cs: Added
10033         * SendKeys.cs: Started implementation
10034         * ErrorIconAlignment.cs: Added
10035
10036 2005-02-18  Peter Bartok  <pbartok@novell.com>
10037
10038         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
10039         * Form.cs: Added handling for Menu-related Non-client messages
10040
10041 2005-02-17  Peter Bartok  <pbartok@novell.com>
10042
10043         * UpDownBase.cs: Fixed typo, compilation errors
10044         * DomainUpDown.cs: Fixed attribute value
10045
10046 2005-02-16  Miguel de Icaza  <miguel@novell.com>
10047
10048         * UpDownBase.cs: Attach entry events.
10049         Propagate events.
10050         Add ForeColor property, Focused, InterceptArrowKeys (interception
10051         does not work yet).
10052
10053 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
10054
10055         * Form.cs:
10056                 - Redraw non client are on Setmenu
10057                 - Calc proper menu starting point
10058
10059 2005-02-17  Peter Bartok  <pbartok@novell.com>
10060
10061         * Application.cs: Fixed message_filter check
10062
10063 2005-02-17  Peter Bartok  <pbartok@novell.com>
10064
10065         * Application.cs: Now calls registered message filters
10066         * DockStyle.cs: Fixed attribute
10067         * Form.cs: Fixed attribute
10068         * Menu.cs: Fixed attribute
10069         * ToolTip.cs: Fixed attribute
10070         * TreeNode.cs: Added missing attributes and arranged in regions
10071         * PropertyGrid.cs: Fixed signatures
10072         * TreeNodeCollection.cs: Added attributes
10073         * Splitter.cs: Added missing attributes; arranged into regions
10074         * TabPage.cs: Added missing attributes; arranged into regions
10075         * TextBoxBase.cs: Added missing attributes
10076         * TextBox.cs: Added missing attributes
10077         * ArrangeDirection.cs: Added missing attributes
10078         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
10079         * ToolBarButton.cs: Fixed attributes
10080         * AnchorStyles.cs: Fixed attribute
10081         * TrackBar.cs: Fixed attributes
10082         * TabControl.cs: Added missing attributes and arranged into regions
10083         * ToolBar.cs: Fixed attribute
10084         * StatusBar.cs: Fixed signature, organized into regions and added
10085           attributes
10086         * StatusBarPanel.cs: Fixed attributes
10087         * ContentsResizedEventArgs.cs: Implemented
10088         * ContentsResizedEventHandler.cs: Implemented
10089         * DateBoldEventArgs.cs: Implemented
10090         * DateBoldEventHandler.cs: Implemented
10091         * UpDownEventArgs.cs: Implemented
10092         * UpDownEventHandler.cs: Implemented
10093         
10094 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
10095
10096         * Form.cs: first Menu NC refactoring
10097         * MenuAPI.cs: first Menu NC refactoring
10098         
10099 2005-02-16  Peter Bartok  <pbartok@novell.com>
10100
10101         * ImeMode.cs: Added missing attributes
10102         * Menu.cs: Fixed attribute
10103         * GroupBox.cs: Fixed attribute
10104         * Label.cs: Fixed attribute
10105         * ColorDialog.cs (RunDialog): Removed TODO attribute
10106         * ComboBox.cs: Fixed attributes
10107         * ListControl.cs: Added missing attributes
10108         * PropertyGrid.cs: Fixed attributes
10109         * Control.cs: Fixed attributes
10110         * ListViewItem.cs: Added TypeConverter attribute
10111         * NotifyIcon.cs: Fixed attributes
10112         * ListView.cs: Fixed attributes
10113         * ButtonBase.cs: Fixed attribute
10114         * ImageList.cs: Added missing attributes
10115         * ContainerControl.cs: Fixed signature
10116         * CheckedListBox.cs: Fixed attribute; added missing attributes
10117         * Panel.cs: Fixed attributes
10118         * PropertyTabChangedEventArgs.cs: Added missing attribute
10119         * PropertyValueChangedEventArgs.cs: Added missing attribute
10120         * Binding.cs: Fixed attribute
10121         * ListViewItemConverter: Implemented ListViewSubItemConverter class
10122         * ListBox.cs: Fixed attribute; added missing attributes;
10123         * ScrollableControl.cs: Added missing attributes
10124         * PictureBox.cs: Added missing attributes; implemented missing property
10125         * DateTimePicker.cs: Added missing attributes
10126         * Theme.cs (ToolWindowCaptionHeight): Fixed type
10127         * MonthCalendar.cs: Fixed attributes
10128         * StatusBarPanel.cs: Added missing attributes
10129         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
10130
10131 2005-02-16  Peter Bartok  <pbartok@novell.com>
10132
10133         * TextBoxBase.cs: The previous method to enforce height yet remember
10134           the requested high was less than ideal, this is an attempt to do
10135           it better.
10136         * Control.cs: Added comment about possible problem
10137         * Copyright: Updated format
10138         * GridItemType.cs: Fixed swapped values
10139
10140 2005-02-15  Jackson Harper  <jackson@ximian.com>
10141
10142         * BaseCollection.cs: Use property so we never access an
10143         uninitialized list. Also initialize the list in the property.
10144
10145 2005-02-15  Peter Bartok  <pbartok@novell.com>
10146
10147         * GroupBox.cs (ProcessMnemonic): Implemented
10148         * Label.cs (ProcessMnemonic): Implemented
10149         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
10150           hotkeys
10151
10152 2005-02-15  Peter Bartok  <pbartok@novell.com>
10153
10154         * RadioButton.cs (ProcessMnemonic): Implemented
10155         * CheckBox.cs (ProcessMnemonic): Implemented
10156         * Control.cs:
10157           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
10158             handling
10159           - Added internal method to allow calling ProcessMnemonic from other
10160             controls
10161         * ContainerControl.cs:
10162           - Started support for handling validation chain handling
10163           - Implemented ProcessMnemonic support
10164           - Added Select() call to Active, to make sure the active control
10165             receives focus
10166         * Form.cs: Setting toplevel flag for Forms (this was lost in the
10167           FormParent rewrite)
10168         * ThemeWin32Classic.cs:
10169           - DrawCheckBox(): Fixed stringformat to show hotkeys
10170           - DrawRadioButton(): Fixed stringformat to show hotkeys
10171         * CommonDialog.cs: Removed WndProc override, not needed
10172
10173 2005-02-14  Peter Bartok  <pbartok@novell.com>
10174
10175         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
10176           missed those in the rewrite
10177
10178 2005-02-14  Miguel de Icaza  <miguel@novell.com>
10179
10180         * NumericUpDown.cs (Increment, ToString): Add.
10181         (DecimalPlaces): implement.
10182         
10183         Add attributes.
10184         
10185         * UpDownBase.cs: Add the designer attributes.
10186
10187 2005-02-13  Peter Bartok  <pbartok@novell.com>
10188
10189         * Panel.cs: Removed border_style, now in Control
10190         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
10191           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
10192
10193 2005-02-13  Peter Bartok  <pbartok@novell.com>
10194
10195         * MouseButtons.cs: Added missing attributes
10196         * XplatUIStructs.cs: Added enumeration for title styles
10197         * LeftRightAlignment.cs: Added missing attributes
10198         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
10199           it compatible with Graphics.FromHwnd()
10200         * SelectedGridItemChangedEventArgs.cs: Fixed property type
10201         * Keys.cs: Added missing attributes
10202         * SelectionRange.cs: Added missing attributes
10203         * SelectionRangeConverter.cs: Added
10204         * XplatUI.cs:
10205           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
10206             ReleaseMenuDC methods
10207           - Renamed ReleaseWindow to UngrabWindow
10208           - Added proper startup notice to allow version identification
10209         * Form.cs:
10210           - Added missing attributes
10211           - Removed FormParent concept
10212         * Label.cs: Removed border_style field, now in Control
10213         * RadioButton.cs: Now properly selects RadioButton when focus is
10214           received
10215         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
10216         * Control.cs:
10217           - Added missing attributes
10218           - Added borderstyle handling
10219           - Removed FormParent concept support
10220           - Fixed calls to XplatUI to match changed APIs
10221           - Fixed bug that would case us to use disposed Graphics objects
10222           - Removed unneeded internal methods
10223           - PerformLayout(): Fixed to handle DockStyle.Fill properly
10224           - SelectNextControl(): Fixed to properly check common parents
10225         * TextBoxBase.cs: Removed border_style field (now in Control)
10226         * MessageBox.cs:
10227           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
10228             fixed calculations for form size
10229           - Added support for localized strings and icons
10230           - Improved form size calculations, added border
10231         * ListView.cs: Removed border_style field (now in Control)
10232         * X11Structs.cs: Moved several structs from X11 driver here
10233         * X11Keyboard.cs: Changed debug message
10234         * Application.cs: Removed FormParent concept support
10235         * CommonDialog.cs:
10236           - Resetting end_modal flag
10237           - Removed FormParent concept support
10238         * NativeWindow.cs: Removed FormParent concept support
10239         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
10240           Client area and Non-Client whole window to allow support for WM_NC
10241           messages
10242         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
10243           prevent using it until it supports Hwnd as per Geoff Norton's request
10244         * ToolBar.cs: Fixed drawing, was not doing proper drawing
10245         * PictureBox.cs: Removed border_style field, now in Control
10246         * XplatUIWin32.cs: Added new driver methods
10247
10248 2005-02-12  Peter Bartok  <pbartok@novell.com>
10249
10250         * OpacityConverter.cs: Implemented
10251         * Hwnd.cs: Internal class to support drivers that need to emulate
10252           client area/non-client area window behaviour
10253
10254 2005-02-11  Peter Bartok  <pbartok@novell.com>
10255
10256         * KeysConverter.cs: Implemented
10257
10258 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
10259
10260         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
10261         * LinkLabel: Added missing attributes
10262         * MainMenu.cs: fixes ToString
10263         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
10264         * ListBox.cs: fixes event position
10265         * TrackBar.cs: adds missing attributes and events
10266         
10267 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
10268
10269         * MenuItem.cs: Use SystemInformation and bug fixes
10270         * MenuAPI.cs: Use SystemInformation and bug fixes
10271
10272 2005-02-09  Jackson Harper  <jackson@ximian.com>
10273
10274         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
10275         their keystate otherwise things like VK_MENU get stuck "on".
10276
10277 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
10278
10279         * ListBox.cs: Fixes AddRange bug
10280         
10281 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
10282
10283         * ProgressBar.cs
10284                 - Add missing attributes
10285                 - Add missing method
10286                 
10287         * CheckedListBox.cs: Added missing attributes
10288                 - Add missing attributes
10289                 - Remove extra method
10290         
10291         * ComboBox.cs: Added missing attributes
10292         * VScrollBar.cs: Added missing attributes
10293         * ScrollBar.cs:  Added missing attributes
10294         * ListBox.cs: Fixes signature, add missing consts
10295         * LinkArea.cs:   Added missing attributes
10296         
10297
10298 2005-02-08  Peter Bartok  <pbartok@novell.com>
10299
10300         * Menu.cs: Added missing attributes
10301         * MainMenu.cs: Added missing attributes
10302         * GroupBox.cs: Added missing attributes
10303         * Label.cs: Added missing attributes
10304         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
10305         * ColorDialog.cs:
10306           - Added Instance and Options properties
10307           - Added missing attributes
10308         * Cursor.cs: Made Serializable
10309         * NotifyIcon: Added missing attributes
10310         * MenuItem.cs: Added missing attributes
10311         * TextBoxBase.cs: Implemented AppendText() and Select() methods
10312         * Panel.cs: Added Missing attributes
10313         * MonthCalendar.cs: Fixed CreateParams
10314
10315 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
10316         
10317         * LinkLabel.cs:
10318                 - Fixes signature
10319                 - Fixes issues with links
10320                 - Adds the class attributes
10321
10322 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
10323         
10324         * ComboBox.cs:
10325                 - Fixes button when no items available in dropdown
10326                 - Fixes repainting problems
10327                 - Adds the class attributes
10328                 
10329 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
10330
10331         * XplatUIOSX.cs: Detect the menu bar and title bar height from
10332         the current theme.  Cache these on startup.
10333
10334 2005-02-07  Jackson Harper  <jackson@ximian.com>
10335
10336         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
10337         the scrollbar buttons when they are depressed.
10338
10339 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
10340
10341         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
10342         Get the display size from the main displayid.  We currently dont
10343         support multiple display configurations.
10344
10345 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
10346
10347         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
10348
10349 2005-02-07  Miguel de Icaza  <miguel@novell.com>
10350
10351         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
10352
10353 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
10354
10355         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
10356
10357 2005-02-04  Jackson Harper  <jackson@ximian.com>
10358
10359         * ThemeWin32Classic.cs: Respect the clipping rect when
10360         drawing. Only fill the intersection of clips and rects so there
10361         isn't a lot of large fills.
10362         * ScrollBar.cs: Pass the correct clipping rect to the theme
10363         engine. Remove some debug code.
10364
10365 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
10366         
10367         * DateTimePicker.cs:
10368                 - Fixed crash on DateTime.Parse, use Constructor instead
10369
10370 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
10371         
10372         * MenuItem.cs:
10373         * MenuAPI.cs:
10374                 - Owner draw support (MeasureItem and DrawItem)
10375
10376 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
10377         
10378         *  Menu.cs:
10379                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
10380                 - Fixes MenuItems.Add range
10381         * MenuItem.cs:
10382                 - MergeMenu and Clone and CloneMenu functions
10383
10384 2005-02-03  Jackson Harper  <jackson@ximian.com>
10385
10386         * ScrollBar.cs: Make abstract
10387         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
10388         is abstract.
10389
10390 2005-02-03  Jackson Harper  <jackson@ximian.com>
10391
10392         * ScrollBar.cs: First part of my scrollbar fixups. This removes
10393         all the unneeded refreshes and uses invalidates with properly
10394         computed rects.
10395
10396 2005-02-03  Peter Bartok  <pbartok@novell.com>
10397
10398         * ComponentModel.cs: Added
10399         * IDataGridEditingService.cs: Added
10400         * Timer.cs: Added missing attributes
10401         * ToolTip.cs: Added missing attributes
10402
10403 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
10404
10405         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
10406
10407 2005-02-03  Peter Bartok  <pbartok@novell.com>
10408
10409         * ListBox.cs: Added missing attributes
10410
10411 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
10412         
10413         * ListBox.cs:
10414                 - Fixes font height after font change
10415                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
10416                 
10417 2005-02-02  Peter Bartok  <pbartok@novell.com>
10418
10419         * HandleData.cs: Introduced static methods to allow class
10420           to be more self-contained and track it's own HandleData objects
10421         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
10422           HandleData to use new static methods
10423
10424 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
10425
10426         * Combobox.cs:
10427                 - Fixes default size and PreferredHeight
10428                 - Missing events
10429                 - ObjectCollection.Insert implementation
10430                 
10431         * ListControl.cs
10432                 - Fixes signature
10433         * ListBox.cs:
10434                 - Several fixes
10435                 - ObjectCollection.Insert implementation
10436                 - No selection after clean
10437                 - Small fixes
10438
10439 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
10440
10441         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
10442
10443 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
10444
10445         * Combobox.cs:
10446                 - Caches ItemHeight calculation for OwnerDrawVariable
10447                 - Handles dropdown properly
10448                 - Fixes several minor bugs
10449
10450 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
10451
10452         * ListBox.cs:
10453                 - Fixes 71946 and 71950
10454                 - Fixes changing Multicolumn on the fly
10455                 - Fixes keyboard navigation on Multicolumn listboxes
10456
10457 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
10458         
10459         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
10460         crash reporter log.
10461
10462 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
10463
10464         * XplatUIOSX.cs: Allow applications to actually exit.
10465
10466 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
10467
10468         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
10469         their parent at creation time rather than lazily later.  Fixes a major
10470         regression we were experiencing.
10471
10472 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
10473
10474         * ThemeWin32Classic.cs: more date time picker painting fixes
10475         * DateTimePicker.cs: more monthcalendar drop down fixes
10476         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
10477
10478 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
10479
10480         * ScrollBar.cs:
10481                 - When moving the thumb going outside the control should stop the moving
10482                 - Adds the firing of missing events
10483                 - Fixes no button show if Size is not specified
10484                 - End / Home keys for keyboard navigation
10485
10486 2005-01-30  Peter Bartok  <pbartok@novell.com>
10487
10488         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
10489           sanity check to prevent theoretical loop
10490         * XplatUIWin32.cs (SetVisible): Removed debug output
10491         * XplatUIX11.cs (SystrayChange): Added sanity check
10492         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
10493         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
10494           behaviour, valid until the X11 client window rewrite is done
10495         * TextBox.cs (ctor): Setting proper default foreground and background
10496           colors
10497
10498 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
10499
10500         * Theme: Added DrawDateTimePicker to interface
10501         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
10502         * DateTimePicker.cs: Created (still needs keys and painting code)
10503         * DateTimePickerFormat.cs: added
10504         * MonthCalendar.cs: fixed CreateParams for popup window mode
10505           
10506 2005-01-29  Peter Bartok  <pbartok@novell.com>
10507
10508         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
10509           this should also the calculations for ligher/darker
10510         * Theme.cs: Fixed defaults for ScrollBar widths/heights
10511
10512 2005-01-29  Peter Bartok  <pbartok@novell.com>
10513
10514         * ArrangeDirection.cs: Added
10515         * ArrangeStartingPositon.cs: Added
10516         * SystemInformation.cs: Implemented
10517         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
10518           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
10519           used by SystemInformation class
10520         * X11Strucs.cs: Added XSizeHints structure
10521         * MenuAPI.cs:
10522           - Fixed CreateParams to make sure the menu window is always visible
10523           - TrackPopupMenu: Added check to make sure we don't draw the
10524             menu offscreen
10525
10526 2005-01-29  Peter Bartok  <pbartok@novell.com>
10527
10528         * HandleData.cs: Added method for altering invalid area
10529         * TextBoxBase.cs: Implemented TextLength
10530
10531 2005-01-28  Peter Bartok  <pbartok@novell.com>
10532
10533         * XplatUIX11.cs: Improvement over last patch, not sending
10534           the WM_PAINT directly anymore, instead we scroll any pending
10535           exposed areas and let the system pick out the WM_PAINT later
10536
10537 2005-01-28  Peter Bartok  <pbartok@novell.com>
10538
10539         * SWF.csproj: Deleted, no longer used. Instead,
10540           Managed.Windows.Forms/SWF.csproj should be used
10541         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
10542           directly, to avoid a potential race condition with the next
10543           scroll
10544
10545 2005-01-28  Peter Bartok  <pbartok@novell.com>
10546
10547         * XplatUI.cs: Made class internal
10548
10549 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
10550
10551         * CheckedListBox.cs:
10552                 - Draw focus
10553                 - Fixed Drawing
10554                 - Missing methods and events
10555
10556 2005-01-27  Peter Bartok  <pbartok@novell.com>
10557
10558         * Application.cs (Run): Don't use form if we don't have one
10559
10560 2005-01-27  Peter Bartok  <pbartok@novell.com>
10561
10562         * TextBoxBase.cs (get_Lines): Fixed index off by one error
10563
10564 2005-01-27  Peter Bartok  <pbartok@novell.com>
10565
10566         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
10567         * GridItem.cs: Added; Patch by Jonathan S. Chambers
10568         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
10569         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
10570         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
10571         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
10572         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
10573         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
10574         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
10575         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
10576         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
10577         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
10578
10579 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
10580
10581         * Combobox.cs:
10582                 - Draw focus on Simple Combobox
10583                 - Fixes drawing issues
10584                 - fixes 71834
10585
10586 2005-01-27  Peter Bartok  <pbartok@novell.com>
10587
10588         * Form.cs:
10589           - Place window in default location, instead of hardcoded 0/0
10590           - Send initial LocationChanged event
10591         * Control.cs:
10592           - UpdateBounds after creation to find out where the WM placed us
10593           - Make sure that if the ParentForm changes location the Form
10594             is notified
10595         * XplatUIX11.cs: XGetGeometry will not return the coords relative
10596             to the root, but to whatever the WM placed around us.
10597             Translate to root coordinates before returning toplevel
10598             coordinates
10599         * XplatUIWin32.cs: Removed debug output
10600         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
10601           flag to GetWindowPos, to allow translation of coordinates on X11
10602
10603 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
10604
10605         * ListBox.cs: connect LostFocus Event
10606
10607 2005-01-27  Peter Bartok  <pbartok@novell.com>
10608
10609         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
10610           XplatUIX11.cs: Extended the Systray API
10611         * Form.cs: Removed debug output
10612         * Application.cs: Fixed focus assignment, always need to call
10613           XplatUI.Activate() since Form.Activate() has rules that may
10614           prevent activation
10615         * NotifyIcon.cs: Should be complete now
10616         * ToolTip.cs: Worked around possible timer bug
10617
10618 2005-01-27  Jackson Harper  <jackson@ximian.com>
10619
10620         * TabControl.cs:
10621         - Only invalidate the effected tabs when the
10622         selected index changes. This reduces drawing and gets rid of some
10623         flicker.
10624         - Only refresh if the tabs need to be shifted, otherwise only
10625         invalidate the slider button.
10626         - On windows the tabs are not filled to right if the slider is
10627         visible.
10628         
10629 2005-01-27  Jackson Harper  <jackson@ximian.com>
10630
10631         * TabControl.cs: Only refresh on mouseup if we are showing the
10632         slider. Also only invalidate the button whose state has changed.
10633
10634 2005-01-26  Peter Bartok  <pbartok@novell.com>
10635
10636         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
10637         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
10638           and SystrayRemove() methods
10639         * XplatUIOSX.cs: Stubbed Systray methods
10640         * XplatUIX11.cs:
10641           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
10642             methods
10643           - Fixed broken XChangeProperty calls (marshalling messed up things)
10644         * X11Structs.cs: Added enums and structs required for Size hinting
10645         * NotifyIcon.cs: Added & implemented
10646
10647 2005-01-26  Jackson Harper  <jackson@ximian.com>
10648
10649         * TabControl.cs: Space vertically layed out tabs properly.
10650
10651 2005-01-26  Peter Bartok  <pbartok@novell.com>
10652
10653         * Form.cs (CreateClientParams): Always set the location to 0,0
10654           since we're a child window.
10655
10656         * Control.cs (SetVisibleCore): Always explicitly setting the location
10657           of a toplevel window, apparently X11 doesn't like to move windows
10658           while they're not mapped.
10659
10660 2005-01-26  Jackson Harper  <jackson@ximian.com>
10661
10662         * TabControl.cs: Implement FillToRight size mode with vertically
10663         rendered tabs.
10664
10665 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
10666
10667         * ControlPaint.cs, ThemeWin32Classic.cs
10668                 - Fixes DrawFocusRectangle
10669
10670 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
10671
10672         * MenuAPI.cs:
10673                 - MenuBar tracking only starts when item is first clicked
10674                 - Fixes menu hidding for multiple subitems
10675                 - Unselect item in MenuBar when item Executed
10676                 - Fixes bug 71495
10677
10678 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
10679
10680         * ListControl.cs:
10681                 - IsInputKey for ListBox
10682         * ListBox.cs:
10683                 - Focus item
10684                 - Shift and Control item selection
10685                 - Implement SelectionMode.MultiExtended
10686                 - Fixes RightToLeft
10687         * ComboBox.cs:
10688                 - IsInputKey implemented
10689                 - Do not generate OnTextChangedEdit on internal txt changes
10690                 
10691 2005-01-23  Peter Bartok  <pbartok@novell.com>
10692
10693         * AccessibleObject.cs: Partially implemented Select()
10694         * MonthCalendar.cs: Added missing attributes and events
10695         * Form.cs: Fixed CreateParams behaviour, now controls derived from
10696           form can properly override CreateParams.
10697         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
10698           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
10699           Control performs Invalidate & Update
10700         * NativeWindow (CreateHandle): Added special handling for Form
10701           and Form.FormParent classes to allow overriding of From.CreateParams
10702         * Control.cs:
10703           - ControlNativeWindow: Renamed 'control' variable to more intuitive
10704             name 'owner'
10705           - ControlNativeWindow: Added Owner property
10706           - Removed usage of Refresh() on property changes, changed into
10707             Invalidate(), we need to wait until the queue is processed for
10708             updates, direct calls might cause problems if not all vars for
10709             Paint are initialized
10710           - Added call to UpdateStyles() when creating the window, to set any
10711             styles that CreateWindow might have ignored.
10712           - Added support for Form CreateParent overrides to UpdateStyles()
10713         * MessageBox.cs: Removed no longer needed FormParent override stuff,
10714           CreateParams are now properly overridable
10715         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
10716           CreateParams are now properly overridable
10717
10718 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
10719
10720         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
10721         OnTextBoxChanged.
10722
10723         Capture LostFocus and OnTextBoxChanged.  The later introduces a
10724         recursive invocation that I have not figured out yet.
10725
10726         Reset the timer when not using (it was accumulating).
10727
10728
10729         (OnTextBoxChanged): Set UserEdit to true here to track whether the
10730         user has made changes that require validation.
10731
10732         Reset changing to avoid loops.
10733
10734 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
10735
10736         * NumericUpDown.cs: Display value at startup.
10737
10738         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
10739         ValidateEditText.
10740
10741         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
10742         filled in.  Added some basic parsing of text.
10743
10744         Still missing the OnXXX method overrides, and figuring out the
10745         events that must be emitted.
10746
10747         * UpDownBase.cs: Handle UserEdit on the Text property.
10748         
10749 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
10750
10751         * ComboBox.cs:
10752           - Fixes IntegralHeight
10753           - ToString method
10754
10755 2005-01-21  Jackson Harper  <jackson@ximian.com>
10756
10757         * TabControl.cs: Set the SelectedIndex property when SelectedTab
10758         is set so that the page visibility is updated and the tabs are
10759         sized correctly.
10760
10761 2005-01-21  Jackson Harper  <jackson@ximian.com>
10762
10763         * TabControl.cs: Use cliping rectangle for blitting. Give the
10764         theme the clipping rect so we can do clipping while
10765         drawing. Remove some debug code.
10766
10767 2005-01-21  Jackson Harper  <jackson@ximian.com>
10768
10769         * TabPage.cs: Add a new method so tab pages can force the tab
10770         control to recalculate the tab page sizes.
10771         * TabControl.cs: UpdateOwner needs to make the tab control recalc
10772         sizes.
10773
10774 2005-01-20  Jackson Harper  <jackson@ximian.com>
10775
10776         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
10777
10778 2005-01-20  Jackson Harper  <jackson@ximian.com>
10779
10780         * TreeView.cs: Set the bounds for nodes properly. They were
10781         getting screwed up when checkboxes were not enabled, but images
10782         were.
10783
10784 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
10785
10786         * ListBox.cs:
10787                 - Owner draw support
10788                 - Fixes
10789                 
10790 2005-01-20  Jackson Harper  <jackson@ximian.com>
10791
10792         * XplatUIStructs.cs: More misc keys
10793         * X11Keyboard.cs: Ignore some control keys.
10794
10795 2005-01-20  Jackson Harper  <jackson@ximian.com>
10796
10797         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
10798         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
10799
10800 2005-01-19  Peter Bartok  <pbartok@novell.com>
10801
10802         * Control.cs: Un-selecting the control when it is loosing focus
10803
10804 2005-01-19  Jackson Harper  <jackson@ximian.com>
10805
10806         * TreeView.cs: Hook up to the text controls leave event so we can
10807         end editing when the users clicks outside the text box.
10808         
10809 2005-01-19  Jackson Harper  <jackson@ximian.com>
10810
10811         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
10812         get set in the conversion array.
10813
10814 2005-01-19  Peter Bartok  <pbartok@novell.com>
10815
10816         * Application.cs (ModalRun): Added a call to CreateControl to ensure
10817           focus is properly set
10818         * Button.cs:
10819           - Added missing attributes
10820           - removed styles, those are already set in the base class
10821         * ButtonBase.cs:
10822           - Added missing attributes
10823           - Added clip window styles
10824         * CheckBox.cs: Added missing attributes
10825         * CommonDialog.cs:
10826           - FormParentWindow.CreateParams: Added required clip styles
10827         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
10828           also filters modifier keys
10829         * MessageBox.cs:
10830           - Added assignment of Accept and Cancel button to enable Enter
10831             and Esc keys in MessageBox dialogs
10832           - FormParentWindow.CreateParams: Added required clip styles
10833         * RadioButton.cs: Added missing attributes
10834         * TextControl.cs: No longer draws selection if control does not
10835           have focus
10836         * TextBoxBase.cs:
10837           - Now draws simple rectangle around test area to make it obvious
10838             there's a control. This is a hack until we properly support borders
10839           - A few simple fixes to support selections better, now erases selected
10840             text when typing, and resets selection when using movement keys
10841
10842 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
10843
10844         * UpDownBase.cs: Added some new properties.
10845
10846         * DomainUpDown.cs: Implement a lot to get my test working.
10847
10848 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
10849
10850         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
10851
10852 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
10853
10854         * OSXStructs (WindowAttributes): Fixed csc complaints
10855
10856 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
10857
10858         * XplayUIOSX.cs:
10859           OSXStructs.cs: Initial refactor to move enums and consts into
10860           OSXStructs and use them in the driver for greater readability.
10861
10862 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
10863
10864         * XplatUIOSX.cs: Initial support for Standard Cursors.
10865         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
10866
10867 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
10868
10869         * ComboBox.cs: ability to change style when the ctrl is already
10870         created, missing methods and events, bug fixes, signature fixes
10871
10872 2005-01-19  Peter Bartok  <pbartok@novell.com>
10873
10874         * Cursors.cs (ctor): Added ctor to fix signature
10875
10876 2005-01-18  Peter Bartok  <pbartok@novell.com>
10877
10878         * Button.cs: Implemented DoubleClick event
10879         * ButtonBase.cs:
10880           - Fixed keyboard handling to behave like MS, where the press of
10881             Spacebar is equivalent to a mousedown, and the key release is
10882             equivalent to mouseup. Now a spacebar push will give the same
10883             visual feedback like a mouse click.
10884           - Added missing attributes
10885           - Added ImeModeChanged event
10886           - Added support for generating DoubleClick event for derived classes
10887         * CheckBox.cs:
10888           - Implemented DoubleClick event
10889           - Added missing attributes
10890         * CommonDialog.cs: Added missing attribute
10891         * ContextMenu.cs: Added missing attributes
10892         * RadioButton.cs:
10893           - AutoChecked buttons do not allow to be unselected when clicked
10894             (otherwise we might end up with no selected buttons in a group)
10895           - Added missing attributes
10896           - Implemented DoubleClickEvent
10897         * ThreadExceptionDialog.cs: Enabled TextBox code
10898
10899 2005-01-18  Peter Bartok  <pbartok@novell.com>
10900
10901         * Form.cs: Removed debug output
10902         * Button.cs: Added support for DoubleClick method
10903
10904 2005-01-18  Peter Bartok  <pbartok@novell.com>
10905
10906         * Form.cs:
10907           - Added method to parent window that allows triggering size
10908             calculations when a menu is added/removed
10909           - set_Menu: Cleaned up mess from early days of Form and Control,
10910             now properly triggers a recalc when a menu is added/removed
10911           - Added case to select form itself as focused form if no child
10912             controls exist
10913           - Added PerformLayout call when showing dialog, to ensure properly
10914             placed controls
10915         * Control.cs:
10916           - Select(): Made internal so Form can access it
10917           - Focus(): Only call Xplat layer if required (avoids loop), and sets
10918             status
10919         * Application.cs (Run): Removed hack and calls PerformLayout instead
10920           to trigger calculation when Form becomes visible
10921
10922 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
10923
10924         * ComboBox.cs: fixes for ownerdraw
10925
10926 2005-01-18  Peter Bartok  <pbartok@novell.com>
10927
10928         * TextControl.cs:
10929           - Sentinel is no longer static, each Document gets it's own, this
10930             avoids locking or alternatively overwrite problems when more
10931             than one text control is used simultaneously.
10932           - Switched to use Hilight and HilightText brushes for text selection
10933
10934         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
10935
10936 2005-01-18  Peter Bartok  <pbartok@novell.com>
10937
10938         * Control.cs:
10939           - Hooked up the following events:
10940                 o ControlAdded
10941                 o ControlRemoved
10942                 o HandleDestroyed
10943                 o ImeModeChanged
10944                 o ParentChanged
10945                 o TabStopChanged
10946                 o Invalidated
10947                 o SystemColorsChanged
10948                 o ParentFontChanged
10949                 o Move
10950           - Removed debug output
10951           - Added a call to the current theme's ResetDefaults when a color change
10952             is detected
10953         * Form.cs: Now setting the proper ImeMode
10954         * Theme.cs: Defined a method to force recreation of cached resources
10955           and rereading of system defaults (ResetDefaults())
10956         * ThemeWin32Classic.cs: Added ResetDefaults() stub
10957
10958 2005-01-17  Peter Bartok  <pbartok@novell.com>
10959
10960         * Control.cs: Added missing attributes
10961
10962 2005-01-17  Jackson Harper  <jackson@ximian.com>
10963
10964         * TreeNode.cs: Implement editing. Add missing properties selected
10965         and visible.
10966         * TreeView.cs: Implement node editing. Also some fixes to use
10967         Invalidate (invalid area) instead of Refresh when selecting.
10968
10969 2005-01-17  Peter Bartok  <pbartok@novell.com>
10970
10971         * Control.cs:
10972           - Implemented InvokeGotFocus() method
10973           - Implemented InvokeLostFocus() method
10974           - Implemented InvokePaint() method
10975           - Implemented InvokePaintBackground() method
10976           - Implemented InvokeClick() method
10977           - Implemented FindForm() method
10978           - Implemented RectangleToClient() method
10979           - Implemented ClientToRectangle() method
10980           - Implemented ResetBackColor() method
10981           - Implemented ResetCursor() method
10982           - Implemented ResetFont() method
10983           - Implemented ResteForeColor() method
10984           - Implemented ResetImeMode() method
10985           - Implemented ResetLeftToRight() method
10986           - Implemented ResetText() method
10987           - Implemented Scale() methods
10988           - Implemented ScaleCore() method
10989           - Implemented Update() method
10990           - Removed unused variables
10991           - Stubbed AccessibilityNotifyClients and
10992             ControlAccessibleObject.NotifyClients() methods (dunno what to do
10993             with those yet)
10994           - Now setting proper default for RightToLeft property
10995           - Fixed bug in SetClientSizeCore that would cause windows to get
10996             really big
10997           - Now sending Click/DoubleClick events
10998           - Now selecting controls when left mouse button is clicked on
10999             selectable control
11000         * AccessibleEvents.cs: Added
11001         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
11002         * XplatUIOSX.cs: Stubbed UpdateWindow() method
11003         * XplatUIWin32.cs: Implemented UpdateWindow() method
11004         * XplatUIX11.cs: Implemented UpdateWindow() method
11005         * Form.cs: Removed stray semicolon causing CS0162 warning
11006         * ThemeWin32Classic.cs: Fixed unused variable warnings
11007         * ScrollableControl.cs: Now calls base method for ScaleCore
11008         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
11009           style to avoid interference with internal click handler (which is
11010           different than standard Control click handling)
11011         * RadioButton.cs:
11012           - Now unchecks all sibling radio buttons when control is
11013             selected (Fixes #68756)
11014           - Removed internal tabstop variable, using the one inherited from
11015             Control
11016
11017 2005-01-17  Jackson Harper  <jackson@ximian.com>
11018
11019         * NavigateEventArgs.cs: Fix base type.
11020         * LinkLabel.cs: Sig fix
11021         
11022 2005-01-17  Jackson Harper  <jackson@ximian.com>
11023
11024         * TreeView.cs: Only invalidate the effected nodes bounds when
11025         selecting nodes.
11026
11027 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
11028
11029         * XplatUIWin32.cs: fixes Win32 marshaling
11030         * XplatUIX11.cs: fixes method signature
11031
11032 2005-01-17  Peter Bartok  <pbartok@novell.com>
11033
11034         * XplatUIX11.cs: Clean up resources when we no longer need them
11035
11036 2005-01-17  Peter Bartok  <pbartok@novell.com>
11037
11038         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
11039           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
11040           and DestroyCursor() methods.
11041         * Cursor.cs: Partially implemented, now supports standard cursors;
11042           still contains some debug code
11043         * Cursors.cs: Implemented class
11044         * Control.cs:
11045           - WndProc(): Added handling of WM_SETCURSOR message, setting the
11046             appropriate cursor
11047           - Implemented Cursor property
11048           - Replaced break; with return; more straightforwar and possibly
11049             faster
11050           - Now properly setting the result for WM_HELP
11051         * X11Structs.cs: Added CursorFontShape enum
11052         * XplatUIStructs.cs:
11053           - Added StdCursor enum (to support DefineStdCursor() method)
11054           - Added HitTest enum (to support sending WM_SETCURSOR message)
11055         * XplatUIX11.cs:
11056           - Now sends the WM_SETCURSOR message
11057           - Implemented new cursor methods
11058         * XplatUIOSX.cs: Stubbed new cursor methods
11059         * XplatUIWin32.cs:
11060           - Implemented new cursor methods
11061           - Added GetSystemMetrics function and associated enumeration
11062
11063 2005-01-15  Peter Bartok  <pbartok@novell.com>
11064
11065         * Control.cs:
11066           - WndProc(): Now handles EnableNotifyMessage
11067           - SelectNextControl(): Fixed bug where if no child or sibling
11068             controls exist we looped endlessly
11069
11070 2005-01-14  Jackson Harper  <jackson@ximian.com>
11071
11072         * TreeView.cs: Recalculate the tab pages when a new one is added
11073         so that the proper bounding rects are created.
11074
11075 2005-01-14  Jackson Harper  <jackson@ximian.com>
11076
11077         * TreeView.cs: Draw a gray box instead of a grip in the lower
11078         right hand corner when there are both horizontal and vertical
11079         scroll bars.
11080
11081 2005-01-14  Jackson Harper  <jackson@ximian.com>
11082
11083         * Control.cs: When erasing backgrounds use FromHwnd instead of
11084         FromHdc when there is a NULL wparam. This occurs on the X driver.
11085         * XplatUIX11.cs: Set the wparam to NULL.
11086
11087 2005-01-13  Jackson Harper  <jackson@ximian.com>
11088
11089         * PictureBox.cs: Implement missing methods (except ToString, need
11090         to test that on windows) and events. When visibility is changed we
11091         need to redraw the image because the buffers are killed. When size
11092         is changed refresh if the sizemode needs it.
11093
11094 2005-01-13  Peter Bartok  <pbartok@novell.com>
11095
11096         * Control.cs (SelectNextControl): Was using wrong method to select
11097           a control
11098
11099 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
11100
11101         * ComboBox.cs: fixes dropstyle
11102
11103 2005-01-13  Peter Bartok  <pbartok@novell.com>
11104
11105         * Form.cs:
11106           - Implemented Select() override
11107           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
11108           - Now sets keyboard focus on startup
11109         * Control.cs (SelectNextControl): Now properly handles directed=true
11110         * TextBoxBase.cs:
11111           - WndProc: Now passes tab key on to base if AcceptTabChar=false
11112           - Added (really bad) focus rectangle (mostly for testing)
11113         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
11114           to enforce redraw on focus changes
11115         * ContainerControl.cs:
11116           - Fixed detection of Shift-Tab key presses
11117           - Fixed traversal with arrow keys
11118         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
11119           gonna keep this or if it's complete yet
11120         
11121 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
11122
11123         * ComboBox.cs: missing properties, fixes
11124
11125 2005-01-13  Peter Bartok  <pbartok@novell.com>
11126
11127         * Panel.cs (ctor): Setting Selectable window style to off
11128         * Splitter.cs (ctor): Setting Selectable window style to off
11129         * GroupBox.cs (ctor): Setting Selectable window style to off
11130         * Label.cs (ctor): Setting Selectable window style to off
11131
11132 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
11133
11134         * UpDownBase.cs (InitTimer): If the timer has been already
11135         created, enable it.
11136
11137         Use a TextBox instead of a Label.
11138
11139 2005-01-12  Jackson Harper  <jackson@ximian.com>
11140
11141         * TreeView.cs: Refresh the tree after sorting the nodes. Always
11142         draw the connecting node lines (when ShowLines is true).
11143         * TreeNode.cs: The nodes index can now be updated. This is used
11144         when a node collection is sorted.
11145         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
11146         insert or an existing unsorted node collection can be sorted.
11147         
11148 2005-01-12  Peter Bartok  <pbartok@novell.com>
11149
11150         * ContainerControl.cs: Implemented ProcessDialogKeys()
11151
11152 2005-01-12  Peter Bartok  <pbartok@novell.com>
11153
11154         * Control.cs:
11155           - Implemented SelectNextControl() method
11156           - Several focus related bug fixes
11157           - Fixed Docking calculations to match MS documentation and
11158             behaviour
11159
11160 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
11161
11162         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
11163         bug fixes
11164
11165 2005-01-12  Peter Bartok  <pbartok@novell.com>
11166
11167         * Control.cs:
11168           - Fixed broken Contains() method
11169           - Implemented GetNextControl() method. Finally. This is the pre-
11170             requisite for focus handling.
11171
11172 2005-01-12  Peter Bartok  <pbartok@novell.com>
11173
11174         * OSXStrucs.cs: Added
11175
11176 2005-01-12  Peter Bartok  <pbartok@novell.com>
11177
11178         * XplatUIWin32.cs:
11179           - Removed PeekMessageFlags
11180           - Implemented SetWindowStyle() method
11181         * XplatUIStructs.cs: Added PeekMessageFlags
11182         * X11Structs: Added missing border_width field to XWindowChanges struct
11183         * XplatUIX11.cs:
11184           - PeekMessage: Now throws exception if flags which are not yet
11185             supported are passed
11186           - Implemented SetWindowStyle() method
11187           - Fixed SetZOrder to handle AfterHwnd properly
11188         * XplatUI.cs: Added SetWindowStyle() method
11189         * XplatUIDriver.cs: Added SetWindowStyle() abstract
11190         * Control.cs:
11191           - Implemented UpdateStyles() method
11192           - Implemented UpdateZOrder() method
11193         * XplatUIOSX.cs: Added SetWindowStyle() stub
11194
11195 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
11196
11197         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
11198         button mouse).
11199
11200
11201 2005-01-11  Jackson Harper  <jackson@ximian.com>
11202
11203         * TreeView.cs: Still need to draw lines to siblings even if out of
11204         the current node is out of the clip.
11205
11206 2005-01-11  Jackson Harper  <jackson@ximian.com>
11207
11208         * TreeView.cs: When setting the hbar/vbar/grip position use
11209         SetBounds so that perform layout is only called once. Also suspend
11210         and resume layout so layout is only done once for all controls.
11211         - Removed some debug fluff
11212         * SizeGrip.cs: Call base implmentation in overriding methods.
11213         - When visibility is changed the drawing buffers are killed so we
11214         need to redraw.
11215
11216 2005-01-11  Jackson Harper  <jackson@ximian.com>
11217
11218         * TreeView.cs: Calculate the open node count while drawing. This
11219         saves us an entire tree traversal for every paint operation. Use
11220         a member var for the open node count so less vars are passed around.
11221
11222 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
11223
11224         * MonthCalendar.cs:
11225         - fixed selection to use mousemove, not mouse polling on timer
11226         * ThemeWin32Classic.cs
11227         - removed redundant unused variable "no_more_content"
11228         
11229 2005-01-11  Peter Bartok  <pbartok@novell.com>
11230
11231         * XplatUIX11.cs (DoEvents): Needs to return when no more events
11232           are pending, so it now calls PeekMessage instead of GetMessage;
11233           implemented a incomplete version of PeekMessage
11234         
11235 2005-01-11  Peter Bartok  <pbartok@novell.com>
11236
11237         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
11238           I18n issues
11239         * TextBoxBase.cs: Added sending of TextChanged event
11240
11241 2005-01-10  Jackson Harper  <jackson@ximian.com>
11242
11243         * TreeView.cs: Try not to draw outside the clipping rectangle on
11244         each node element.
11245
11246 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
11247
11248         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
11249
11250 2005-01-10  Jackson Harper  <jackson@ximian.com>
11251
11252         * TreeView.cs:
11253         - Implement fast scrolling. Now only the newly
11254         exposed nodes are drawn and the old image is moved using the
11255         XplatUI::ScrollWindow method.
11256         - Factor in height of nodes when calculating whether or not the
11257         node is in the clipping rect.
11258
11259 2005-01-10  Jackson Harper  <jackson@ximian.com>
11260
11261         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
11262
11263 2005-01-10  Peter Bartok  <pbartok@novell.com>
11264
11265         * Application.cs: Added temporary hack to resolve all our resize
11266           required issues on startup. This will get fixed properly at
11267           some point in the future
11268
11269 2005-01-10  Jackson Harper  <jackson@ximian.com>
11270
11271         * SizeGrip.cs: New internal class that is used as a sizing
11272         grip control...hence the name.
11273
11274 2005-01-10  Peter Bartok  <pbartok@novell.com>
11275
11276         * Control.cs: Implemented proper TabIndex handling, now assigning
11277           a tabindex when a control is added to a container
11278         * GroupBox.cs (ctor): Now sets the Container style bit, required
11279           for Control.GetNextControl()
11280
11281 2005-01-09  Jackson Harper  <jackson@ximian.com>
11282
11283         * TextBoxBase.cs: Clear window when scrolling (fixes build).
11284
11285 2005-01-09  Peter Bartok <pbartok@novell.com>
11286
11287         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
11288           XplatUIX11.cs: Added ability to control ScrollWindow expose and
11289           an overload for ScrollWindow to allow only scrolling a rectangle
11290
11291 2005-01-09  Peter Bartok <pbartok@novell.com>
11292
11293         * Form.cs:
11294           - Implemented SetDesktopBounds method
11295           - Implemented SetDesktopLocation method
11296
11297 2005-01-08  Jackson Harper  <jackson@ximian.com>
11298
11299         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
11300         the node count has changed, this removes to VScroll::Refresh calls
11301         when drawing.
11302
11303 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
11304
11305         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
11306
11307 2005-01-07  Jackson Harper  <jackson@ximian.com>
11308
11309         * TreeNode.cs: Just update the single node when it is
11310         checked. Don't refresh after toggling, the Expand/Collapse already
11311         handles this.
11312         * TreeView.cs: Respect clipping a little more when drawing. Try
11313         not to redraw things that don't need to be redrawn. Just hide the
11314         scrollbars when they are no longer needed instead of removing
11315         them, so they don't have to be created again and again.
11316         
11317 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
11318
11319         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
11320         coordinates to window space to place the caret properly, FIXED.
11321         Implement GetWindowState & SetWindowState
11322
11323 2005-01-06  Peter Bartok <pbartok@novell.com>
11324
11325         * Form.cs:
11326           - Implemented ClientSize property
11327           - Implemented DesktopBounds property
11328           - Implemented DesktopLocation property
11329           - Implemented IsRestrictedWindow property
11330           - Implemented Size property
11331           - Implemented TopLevel property
11332           - Implemented FormWindowState property
11333         * Control.cs:
11334           - Implemented GetTopLevel() method
11335           - Implemented SetTopLevel() method
11336         * X11Structs.cs (Atom):
11337           - Added AnyPropertyType definition
11338           - Added MapState definiton and updated XWindowAttribute struct
11339         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
11340         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
11341         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
11342         * XplatUIWin32.cs:
11343           - Implemented GetWindowState() and SetWindowState() methods
11344           - Fixed Win32GetWindowLong return type
11345         * XplatUIX11.cs:
11346           - Introduced central function for sending NET_WM messages
11347           - Implemented GetWindowState() and SetWindowState() methods
11348         * TextBoxBase.cs (set_Lines):
11349           - Now uses Foreground color for text added via Text property (Duh!)
11350           - Added code to remember programmatically requested size (fixes
11351             behaviour when Multiline is set after Size)
11352           - Added AutoSize logic
11353
11354 2005-01-06  Jackson Harper  <jackson@ximian.com>
11355
11356         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
11357
11358 2005-01-06  Jackson Harper  <jackson@ximian.com>
11359
11360         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
11361         set to less then 0.
11362
11363 2005-01-06  Jackson Harper  <jackson@ximian.com>
11364
11365         * ScrollableControl.cs: Lazy init the scrollbars.
11366         
11367 2005-01-06  Jackson Harper  <jackson@ximian.com>
11368
11369         * Theme.cs: Speed up getting pens and solid brushes, by using
11370         their ARGB as a hash instead of tostring and not calling Contains.
11371
11372 2005-01-06  Peter Bartok <pbartok@novell.com>
11373
11374         * Form.cs:
11375           - Implemented OnActivated and OnDeactivate event trigger
11376           - Implemented Activate() method
11377           - Fixed ShowDialog() to activate the form that was active before
11378             the dialog was shown
11379         * XplatUIX11.cs:
11380           - Added global active_window var that tracks the currently active
11381             X11 window
11382           - Now always grabs Property changes from the root window to always
11383             catch changes on the active window property
11384           - Added code to PropertyNotify handler to send Active/Inactive
11385             messages when state changes. This puts X11 and Win32 en par on
11386             WM_ACTIVATE notifications (except for double notifications when
11387             the user clicks away from our modal window to another one of our
11388             windows)
11389
11390 2005-01-05  Jackson Harper  <jackson@ximian.com>
11391
11392         * ImageList.cs: Implment ctor
11393
11394 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
11395
11396         * XplatUIOSX.cs: Implement Activate/SetTopmost
11397
11398 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
11399
11400         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
11401
11402 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
11403
11404         * XplatUIOSX.cs: Implement GetActive/SetFocus.
11405
11406 2005-01-05  Peter Bartok <pbartok@novell.com>
11407
11408         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
11409           XplatUIOSX.cs: Added GetActive method to return the currently
11410           active window for the application (or null, if none is active)
11411         * Form.cs:
11412           - Implemented ActiveForm
11413           - Commented out owner assignment for modal dialogs (causes problems
11414             on Win32, since the owner will be disabled)
11415           - Reworked some Active/Focus handling (still incomplete)
11416         * CommonDialog.cs: Commented out owner assignment for modal dialogs
11417           (causes problems on Win32, since the owner will be disabled)
11418         * IWin32Window: Added ComVisible attribute
11419
11420 2005-01-05  Peter Bartok <pbartok@novell.com>
11421
11422         * ToolTip.cs (WndProc): Enable setting focus now that we have the
11423           required XplatUI functions.
11424
11425 2005-01-05  Peter Bartok <pbartok@novell.com>
11426
11427         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
11428           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
11429           to implement focus and activation handling; still incomplete and
11430           with debug output
11431
11432 2005-01-04  Peter Bartok <pbartok@novell.com>
11433
11434         * TextBoxBase.cs: Changed access level for Document property to
11435           match switch to internal for TextControl
11436
11437 2005-01-04  Peter Bartok <pbartok@novell.com>
11438
11439         * AccessibleObject: Added ComVisible attribute
11440
11441 2005-01-04  Jackson Harper  <jackson@ximian.com>
11442
11443         * X11Keyboard.cs: Remove unneeded var.
11444
11445 2005-01-04  Jackson Harper  <jackson@ximian.com>
11446
11447         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
11448         but PAINT.
11449         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
11450         ClientMessage. This makes apps exit cleanly (more often).
11451         
11452 2005-01-04  Jackson Harper  <jackson@ximian.com>
11453
11454         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
11455         handling focus, return correct colors and fonts,
11456         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
11457         handle selection, horizontal scrolling, and mouse interaction.
11458
11459 2005-01-04  Peter Bartok <pbartok@novell.com>
11460
11461         * ICommandExecutor.cs: Added
11462         * IDataGridColumnStyleEditingNotificationService.cs: Added
11463         * IFeatureSupport.cs: Added
11464         * IFileReaderService.cs: Added
11465         * IDataObject.cs: Added ComVisible attribute
11466         * AmbientProperties.cs: Added
11467         * BaseCollection.cs: Added missing attributes
11468         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
11469         * BaseCollection.cs: Added missing attributes
11470         * Binding.cs: Added TypeConverter attribute
11471         * BindingContext.cs: Added DefaultEvent attribute
11472         * BindingsCollection.cs: Added DefaultEvent attribute
11473         * Button.cs: Added DefaultValue attribute
11474         * DragEventArgs.cs: Added ComVisible attribute
11475         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
11476         * KeyEventArgs.cs: Added ComVisible attribute
11477         * KeyPressEventArgs.cs: Added ComVisible attribute
11478         * MouseEventArgs.cs: Added ComVisible attribute
11479         * NavigateEventArgs.cs: Added
11480         * NavigateEventHandler.cs: Added
11481         * FeatureSupport.cs: Added
11482         * OSFeature.cs: Added
11483         * Theme.cs: Added abstract Version property to support OSFeature
11484         * ThemeWin32Classic.cs: Added Version property to
11485           support OSFeature.Themes
11486         * ProgressBar.cs: Removed OnPaintBackground override, not required since
11487           the proper styles to avoid background drawing are set, also doesn't
11488           match MS signature
11489         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
11490         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
11491         * ScrollEventArgs.cs: Added ComVisible attribute
11492         * SplitterEventArgs.cs: Added ComVisible attribute
11493         * AccessibleSelection.cs: Added Flags attribute
11494         * Appearance.cs: Added ComVisible attribute
11495         * Border3DSide.cs: Added ComVisible attribute
11496         * Border3DStyle.cs: Added ComVisible attribute
11497         * BorderStyle.cs: Added ComVisible attribute
11498         * DragAction.cs: Added ComVisible attribute
11499         * ErrorBlinkStyle.cs: Added
11500         * ScrollEventType.cs: Added ComVisible attribute
11501         * AnchorStyles.cs: Added Editor attribute
11502         * DockStyle.cs: Added Editor attribute
11503         * HorizontalAlignment.cs: Added ComVisible attribute
11504         * HelpEventArgs.cs: Added ComVisible attribute
11505         * PaintEventArgs.cs: Added IDisposable
11506
11507 2005-01-04  Peter Bartok <pbartok@novell.com>
11508
11509         * TextControl.cs: Switched Line, LineTag and Document classes to
11510           internal
11511
11512 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
11513
11514         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
11515         Simple mode, fixes, IntegralHeight, etc.
11516
11517 2005-01-04  Peter Bartok <pbartok@novell.com>
11518
11519         * TextBoxBase.cs: Using proper font variable now
11520
11521 2005-01-04  Peter Bartok <pbartok@novell.com>
11522
11523         * Form.cs (ShowDialog): Set parent to owner, if provided
11524         * GroupBox.cs: Removed unused vars
11525         * TextControl.cs:
11526           - Added GetHashCode() for Document and LineTag classes
11527           - Removed unused variables
11528           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
11529             to allow translation between continuous char position and line/pos
11530         * CheckBox.cs: Removed vars that are provided by base class
11531         * RadioButton.cs: Removed vars that are provided by base class, added
11532           new keyword where required
11533         * LinkLabel.cs: Added new keyword where required
11534         * Control.cs (WndProc): Removed unused variable
11535         * TextBoxBase.cs:
11536           - Finished SelectionLength property
11537           - Implemented SelectionStart property
11538           - Implemented Text property
11539           - Removed unused vars
11540         * MessageBox.cs: Added new keyword where required
11541         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
11542           WndProc signature
11543         * MenuAPI.cs: Added new keyword where required
11544         * ButtonBase.cs: Removed vars that are provided by base class, added
11545           new keyword where required
11546         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
11547           argument to double, to allow compiling with csc 2.0 (Atsushi ran
11548           into this)
11549         * Application.cs (Run): Now triggers the ThreadExit event
11550         * CommonDialog.cs: Added new keyword where required; now properly sets
11551           parent (owner) for dialog
11552         * XplatUIX11.cs: Commented out unused vars
11553         * StatusBar.cs: Fixed signature for Text property
11554         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
11555
11556 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
11557
11558         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
11559         TrackBar.cs, MonthCalendar.cs: remove unused vars
11560
11561 2005-01-03  Jackson Harper  <jackson@ximian.com>
11562
11563         * ThemeWin32Classic.cs:
11564         * X11Keyboard.cs: Remove unused vars.
11565
11566 2005-01-03  Peter Bartok  <pbartok@novell.com>
11567
11568         * TextBox.cs:
11569           - set_Text: Tied into TextControl
11570           - set_TextAlignment: Tied into TextControl
11571         * TextControl.cs:
11572           - Added alignment properties and implemented alignment handling
11573             and drawing (still has a bug, not generating proper expose events)
11574           - Added new Line() constructor to allow passing the line alignment
11575           - Fixed selection setting, properly handling end<start now
11576           - Added aligment considerations to RecalculateDocument()
11577         * TextBoxBase.cs:
11578           - Now properly enforces control height for single line controls
11579           - Added support for CharacterCasing
11580           - Added IsInputKey override
11581           - Fixed Keys.Enter logic
11582           - Added SetBoundsCore override
11583           - Fixed mouse selection handling
11584
11585 2005-01-03  Jackson Harper  <jackson@ximian.com>
11586
11587         * TreeView.cs:
11588           - Collapse and uncheck all nodes when CheckBoxes is disabled.
11589           - Checkboxes are always aligned to the bottom of the node,
11590           regardless of item height.
11591           - Use the node bounds to draw the text so we can center it when
11592           the item height is greater then the font height.
11593           - Node::Bounds are only the text part of the node.
11594         * TreeNode.cs: New method to combine collapsing and unchecking all
11595           nodes recursively.
11596
11597 2005-01-02  Jackson Harper  <jackson@ximian.com>
11598
11599         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
11600         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
11601         tree when a check is changed. TODO: Only refresh the checked node.
11602
11603 2004-12-30  Jackson Harper  <jackson@ximian.com>
11604
11605         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
11606         * TreeNode.cs: When collapsing make sure to never collapse the
11607         root node.
11608
11609 2004-12-29  Jackson Harper  <jackson@ximian.com>
11610
11611         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
11612         
11613 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
11614
11615         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
11616
11617 2004-12-28  Peter Bartok  <pbartok@novell.com>
11618
11619         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
11620           not yet assigned
11621
11622 2004-12-28  Peter Bartok  <pbartok@novell.com>
11623
11624         * Control.cs (WndProc): Added WM_HELP handler, now generates
11625           HelpRequested event
11626         * Form.cs: Added HelpButton property and required support code
11627         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
11628
11629 2004-12-28  Peter Bartok  <pbartok@novell.com>
11630
11631         * CommonDialog.cs:
11632           - Made DialogForm.owner variable internal
11633           - Added check to ensure owner form is set before setting
11634             owner properties in CreateParams
11635
11636 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
11637
11638         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
11639           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
11640           GetCursorPos.  Fix major visibility issues.  Rework the windowing
11641           system to support borderless/titleless windows (implements menus).
11642           Fix GetWindowPos.  Implement initial background color support for
11643           views.
11644
11645 2004-12-28  Peter Bartok  <pbartok@novell.com>
11646
11647         * Form.cs (get_CreateParams): Make sure we have an owner before using
11648           the owner variable. Implement proper default if no owner exists
11649
11650 2004-12-28  Peter Bartok  <pbartok@novell.com>
11651
11652         * In preparation for making Managed.Windows.Forms the default build target
11653           for System.Windows.Forms, the following stubbed files were added.
11654           Dialogs are currently being implemented by contributors and are only
11655           short-term place holders.
11656         * ColorDialog.cs: Initial check-in (minmal stub)
11657         * DataGrid.cs: Initial check-in (minimal stub)
11658         * DataGridLineStyle.cs: Initial check-in (minimal stub)
11659         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
11660         * DataGridTableStyle.cs: Initial check-in (minimal stub)
11661         * FontDialog.cs: Initial check-in (minimal stub)
11662         * FileDialog.cs: Initial check-in (minimal stub)
11663         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
11664         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
11665         * OpenFileDialog: Initial check-in (minimal stub)
11666         * IComponentEditorPageSite.cs: Initial check-in
11667         * Splitter.cs: Initial check-in (for Jackson)
11668         * SplitterEventArgs.cs: Initial check-in (for Jackson)
11669         * SplitterEventHandler.cs: Initial check-in (for Jackson)
11670         * TextBox.cs: Initial check-in; still needs some wiring to
11671           TextControl backend
11672         * Form.cs: Implemented ControlBox property
11673         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
11674         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
11675         * TextControl.cs: Added selection functionality; added todo header
11676         * TextBoxBase.cs:
11677           - Implemented Lines property
11678           - Implemented TextHeight property
11679           - Implemented SelectedText property
11680           - Implemented SelectionLength property
11681           - Implemented SelectAll method
11682           - Implemented ToString method
11683           - Removed and cleaned up some debug code
11684           - Implemented (still buggy) mouse text selection
11685
11686 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
11687
11688         * ComboBox.cs: Complete DropDownList implementation, fixes.
11689
11690 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
11691
11692         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
11693         * ComboBoxStyle.cs: ComboBoxStyle enum
11694         * ComboBox.cs: Initial work on ComboBox control
11695
11696 2004-12-21  Peter Bartok  <pbartok@novell.com>
11697
11698         * Control.cs (ctor, CreateParams): Moved setting of is_visible
11699           forward so that anything that creates a window gets the default,
11700           also no longer uses Visible property in CreateParams to avoid
11701           walking up the parent chain and possibly get the wrong visible
11702           status. Fixed IsVisible to no longer walk up to the parent.
11703
11704 2004-12-21  Peter Bartok  <pbartok@novell.com>
11705
11706         * Form.cs (ShowDialog): Unset modality for the proper window
11707  
11708 2004-12-20  Peter Bartok  <pbartok@novell.com>
11709
11710         * CommonDialog.cs: Initial check-in
11711
11712 2004-12-20  Peter Bartok  <pbartok@novell.com>
11713
11714         * Control.cs (Visible): Now uses the parent window instead of the
11715           client area window for the property
11716
11717         * Form.cs
11718           - ShowDialog(): Now uses the proper window for modality
11719           - The default visibility state for the form parent is now false. This
11720             will prevent the user from seeing all the changes to the form and
11721             its controls before the application hits Application.Run()
11722           - Removed some stale commented out code
11723
11724         * NativeWindow.cs:
11725           - Added FindWindow() method to have a method to check for existence
11726             of a window handle
11727           - Added ability to override default exception handling (for example
11728             when debugging with VS.Net; to do this the ExternalExceptionHandler
11729             define must be set
11730           - Removed some useless debug output
11731
11732         * XplatUIX11.cs:
11733           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
11734             not working as expected
11735           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
11736             property to allow switching back to the modal window if focus is
11737             given to another one of our windows (Application Modal)
11738           - Now only sets override_redirect if we create a window
11739             without WS_CAPTION
11740           - Moved EventMask selection before mapping of newly created window
11741             so we can catch the map event as well
11742           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
11743           - Added various Atom related DllImports
11744           - Implemented Exit() method
11745           - .ctor() : No longer shows window if WS_VISIBLE is not defined
11746             in the CreateParams
11747
11748         * MessageBox.cs: Now properly deals with the FormParent window by
11749           providing an override the FormParent CreateParams property to
11750           set as POPUP instead of OVERLAPPED window.
11751
11752 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
11753
11754         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
11755         Minor code cleanup.
11756
11757 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
11758         
11759         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
11760
11761 2004-12-18  Peter Bartok  <pbartok@novell.com>
11762
11763         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
11764           implementing SetModal() method
11765
11766 2004-12-18  Peter Bartok  <pbartok@novell.com>
11767
11768         * X11Structs.cs (XGCValues): Fixed type of function element
11769         * XplatUI.cs: Added ScrollWindow() method
11770         * XplatUIDriver.cs: Added ScrollWindow() abstract
11771         * XplatUIWin32.cs: Implemented ScrollWindow() method
11772         * XplatUIX11.cs: Implemented ScrollWindow() method
11773         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
11774
11775 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
11776
11777         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
11778         Some more keyboard support (INCOMPLETE)
11779
11780 2004-12-17  Peter Bartok  <pbartok@novell.com>
11781
11782         * TextControl.cs:
11783         - Added color attribute to line tags.
11784         - Added color argument to all functions dealing with tags
11785         - Added color argument support to various functions
11786         - Fixed miss-calculation of baseline/shift in certain circumstances
11787
11788         * TextBoxBase.cs: Added new color option to test code
11789
11790 2004-12-17  Jackson Harper  <jackson@ximian.com>
11791
11792         * TreeNode.cs:
11793         * MonthCalendar.cs: Signature fixes
11794
11795 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
11796
11797         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
11798         keyboard event moved it.  Create a new graphics context for each paint resolves this
11799
11800 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
11801
11802         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
11803         Make caret exist and go blink blink.  Initial keyboard support.
11804         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
11805         works.
11806
11807 2004-12-17  Jackson Harper  <jackson@ximian.com>
11808
11809         * XplatUIStructs.cs: Updated set of virtual keycodes.
11810         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
11811
11812 2004-12-17  Jackson Harper  <jackson@ximian.com>
11813
11814         * XplatUIX11.cs: Prune old keyboard code.
11815
11816 2004-12-17  Jackson Harper  <jackson@ximian.com>
11817
11818         * XplatUIX11.cs: When generating mouse wparams get the modifier
11819         keys from the ModifierKeys property.
11820
11821 2004-12-17  Jackson Harper  <jackson@ximian.com>
11822
11823         * X11Keyboard.cs: Send up/down input when generating
11824         messages. Remove some unused vars.
11825
11826 2004-12-17  Jackson Harper  <jackson@ximian.com>
11827
11828         * TabControl.cs:
11829         * TreeView.cs: get rid of warnings.
11830
11831 2004-12-17  Jackson Harper  <jackson@ximian.com>
11832
11833         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
11834
11835 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
11836
11837         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
11838           CheckedListBox.cs: Implementation
11839
11840 2004-12-17  Peter Bartok  <pbartok@novell.com>
11841
11842         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
11843
11844 2004-12-16  Peter Bartok  <pbartok@novell.com>
11845
11846         * TextControl.cs:
11847           - InsertCharAtCaret(): Fixed start pos fixup
11848           - CaretLine_get: No longer derives the line from the tag, the tag
11849             could be stale if lines in the document have been added or deleted
11850           - RebalanceAfterDelete(): Fixed bug in balancing code
11851           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
11852           - Line.Streamline(): Now can also elminate leading empty tags
11853           - DumpTree(): Added a few more tests and prevented exception on
11854             uninitialized data
11855           - Added Debug section for Combining lines
11856           - Delete(): Now copies all remaining properties of a line
11857           
11858         * TextBoxBase.cs:
11859           - Left mousebutton now sets the caret (and middle button still acts
11860             as formatting tester, which must go away soon)
11861           - Added Debug section for Deleting/Combining lines
11862           - Fixed calculations for UpdateView after Combining lines
11863
11864 2004-12-16  Peter Bartok  <pbartok@novell.com>
11865
11866         * TextControl.cs: Now properly aligns text on a baseline, using the
11867           new XplatUI.GetFontMetrics() method. Simplified several calculations
11868         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
11869           defined
11870
11871 2004-12-16  Peter Bartok  <pbartok@novell.com>
11872
11873         * XplatUI.cs: Added GetFontMetrics() method
11874         * XplatUIDriver.cs: Added GetFontMetrics() abstract
11875         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
11876           into libgdiplus, our private GetFontMetrics function
11877         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
11878         * XplatUIWin32.cs: Implemented GetFontMetrics() method
11879
11880 2004-12-16  Jackson Harper  <jackson@ximain.com>
11881
11882         * XplatUIStruct.cs: Add enum for dead keys
11883         * X11Keyboard.cs: Map and unmap dead keys.
11884
11885 2004-12-16  Jackson Harper  <jackson@ximian.com>
11886
11887         * X11Keyboard.cs: Detect and use the num lock mask.
11888
11889 2004-12-16  Peter Bartok  <pbartok@novell.com>
11890
11891         * Control.cs (CreateGraphics): Added check to make sure the
11892           handle of the window exists before calling Graphics.FromHwnd()
11893
11894 2004-12-16  Peter Bartok  <pbartok@novell.com>
11895
11896         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
11897           contains a lot of code that's not supposed to be there for the
11898           real thing, but required for developing/testing the textbox
11899           backend.
11900
11901 2004-12-16  Peter Bartok  <pbartok@novell.com>
11902
11903         * TextControl.cs:
11904         - Fixed Streamline method
11905         - Added FindTag method to Line
11906         - Added DumpTree method for debugging
11907         - Added DecrementLines() method for deleting lines
11908         - Fixed UpdateView to update the cursor to end-of-line on single-line
11909           updates
11910         - Added PositionCaret() method
11911         - Fixed MoveCaret(LineDown) to move into the last line, too
11912         - Added InsertChar overload
11913         - Fixed InsertChar tag offset calculations
11914         - Added DeleteChar() method
11915         - Added Combine() method for folding lines
11916         - Fixed Delete() method, no longer allocates wasted Line object and
11917           now copies all properties when swapping nodes
11918         - Delete() method now updates document line counter
11919
11920 2004-12-15  Jackson Harper  <jackson@ximian.com>
11921
11922         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
11923         * X11Keyboard.cs: Expose the currently selected modifier keys
11924         through a property.
11925
11926 2004-12-15  Peter Bartok  <pbartok@novell.com>
11927
11928         * TextControl.cs: Initial check-in. Still incomplete
11929
11930 2004-12-15  Jackson Harper  <jackson@ximian.com>
11931
11932         * TreeNode.cs:
11933         * TreeView.cs: Fix build on csc (second time today ;-))
11934
11935 2004-12-15  Jackson Harper  <jackson@ximian.com>
11936
11937         * TreeView.cs: Store the treenodes plus/minus box bounds when it
11938         is calculated and use this for click testing.
11939         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
11940
11941 2004-12-15  Jackson Harper  <jackson@ximian.com>
11942
11943         * TreeView.cs: Pass the nodes image index to the image list when
11944         drawing that image.
11945
11946 2004-12-15  Jackson Harper  <jackson@ximian.com>
11947
11948         * X11Keyboard.cs: Set messages hwnd.
11949         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
11950         post_message calls.
11951
11952 2004-12-15  Jackson Harper  <jackson@ximian.com>
11953
11954         * X11Keyboard.cs: Fix to compile with csc.
11955         
11956 2004-12-15  Jackson Harper  <jackson@ximian.com>
11957
11958         * X11Structs.cs: Add key mask values
11959         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
11960         * X11Keyboard.cs: New file - Extrapolates and interpolates key
11961         down/up foo into WM_CHAR foo
11962         * KeyboardLayouts.cs: Common keyboard layouts
11963         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
11964         post messages into the main queue.
11965
11966 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
11967
11968         * Button.cs: implement ProcessMnemonic
11969         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
11970           brushes everytime
11971         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
11972         * ButtonBase.cs: Show HotkeyPrefix (not the &)
11973
11974 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
11975         
11976         * MonthCalendar.cs: Implemented click-hold for next/previous month
11977           and date selection
11978           
11979 2004-12-11  Peter Bartok  <pbartok@novell.com>
11980
11981         * X11Structs.cs:
11982           - Added XKeyboardState (moved from XplatUIX11.cs)
11983           - Added XCreateGC related enums and structures
11984           - Added GXFunction for XSetFunction
11985
11986         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
11987
11988         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
11989           CaretVisible() calls
11990
11991         * ToolTip.cs: Added code to prevent stealing focus from app windows
11992
11993         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
11994           DestroyCaret, SetCaretPos and CaretVisible)
11995
11996         * XplatUIX11.cs:
11997           - Added implementation for caret functions
11998           - Moved hover variables into a struct, to make it a bit easier
11999             on the eyes and to debug
12000           - Removed XKeyboardState (moved to XplatUIX11.cs)
12001           - Moved Keyboard properties into the properties region
12002
12003         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
12004           call to get a graphics context for our control
12005
12006         * XplatUIOSX.cs: Added empty overrides for the new caret functions
12007
12008         * TreeView.cs: Fixed bug. No matter what color was set it would always
12009           return SystemColors.Window
12010
12011         * XplatUIWin32.cs: Implemented caret overrides
12012
12013 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
12014
12015         * ListBox.cs: fire events, implement missing methods and properties,
12016         sorting.
12017
12018 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
12019
12020         * MonthCalendar.cs: invalidation bug fixing
12021         * ThemeWin32Classic.cs: paint fixing
12022
12023 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
12024
12025         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
12026         prepare the CGContextRef there now.
12027
12028 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
12029
12030         * MonthCalendar.cs:
12031           - optimisationL only invalidate areas that have changed
12032         * ThemeWin32Classic.cs:
12033           - only paint parts that intersect with clip_area
12034
12035 2004-12-09  Peter Bartok  <pbartok@novell.com>
12036
12037         * Application.cs: Undid changes from r37004 which cause problems
12038         on X11
12039
12040 2004-12-09  Ravindra  <rkumar@novell.com>
12041
12042         * ToolBar.cs: Added support for displaying ContextMenu
12043         attached to a button on ToolBar.
12044         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
12045         property.
12046
12047 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
12048
12049         * Label.cs: autosize works in text change and removes unnecessary
12050         invalidate
12051
12052 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
12053
12054         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
12055         remove warnings
12056
12057 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
12058
12059         * XplatUIOSX.cs: Added mouse move/click/grab support
12060         Remove some debugging WriteLines not needed anymore.
12061         Add window resizing/positioning.
12062         Fix visibility on reparenting.
12063
12064 2004-12-08  Peter Bartok  <pbartok@novell.com>
12065
12066         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
12067
12068 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
12069
12070         * XplatUIOSX.cs: Initial checkin
12071         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
12072
12073 2004-12-03  Ravindra <rkumar@novell.com>
12074
12075         * ListView.cs: Added some keybindings and fixed scrolling.
12076         ScrollBars listen to ValueChanged event instead of Scroll
12077         Event. This would let us take care of all changes being
12078         done in the scrollbars' values programmatically or manually.
12079         * ListView.cs (CanMultiselect): Added a check for shift key.
12080         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
12081         * ListViewItem.cs (Clone): Fixed. We need to make a copy
12082         of ListViewSubItemCollection as well.
12083
12084 2004-12-06  Peter Bartok <pbartok@novell.com>
12085
12086         * Control.cs (Parent): Added check and exception to prevent
12087         circular parenting
12088
12089 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
12090
12091         * ListBox.cs: implemented clipping, selection single and multiple,
12092         bug fixing
12093
12094 2004-12-03  Ravindra <rkumar@novell.com>
12095
12096         * ListView.cs (ListView_KeyDown):
12097         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
12098         when CTRL key is pressed.
12099         * ListViewItem.cs (Selected): Fixed setting the property.
12100
12101 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
12102
12103         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
12104
12105         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
12106         MinimizeBox, ShowInTaskbar, TopMost properties.
12107
12108         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
12109         will be implemented).
12110
12111 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
12112
12113         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
12114
12115         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
12116         tests.
12117         
12118         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
12119         
12120         * TreeView.cs: BackColor is Colors.Window.
12121
12122 2004-12-01  Jackson Harper  <jackson@ximian.com>
12123
12124         * TreeView.cs: When resizing the tree if the user is making it
12125         smaller we don't get expose events, so we need to handle adding
12126         the horizontal scrollbar in the size changed handler as well as
12127         the expose handler.
12128
12129 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
12130
12131         * DrawItemState.cs: fixes wrong enum values
12132
12133 2004-12-01  Jackson Harper  <jackson@ximian.com>
12134
12135         * TreeView.cs: Resize the hbar as well as the vbar on resize.
12136
12137 2004-12-01  Jackson Harper  <jackson@ximian.com>
12138
12139         * NodeLabelEditEventArgs.cs:
12140         * NodeLabelEditEventHandler.cs:
12141         * OpenTreeNodeEnumerator.cs:
12142         * TreeNode.cs:
12143         * TreeNodeCollection.cs:
12144         * TreeView.cs:
12145         * TreeViewAction.cs:
12146         * TreeViewCancelEventArgs.cs:
12147         * TreeViewCancelEventHandler.cs:
12148         * TreeViewEventArgs.cs:
12149         * TreeViewEventHandler.cs: Initial implementation.
12150
12151 2004-12-01  Ravindra <rkumar@novell.com>
12152
12153         * ListView.cs (CalculateListView): Fixed scrolling related
12154         calculations. Also, removed some debug statements from other
12155         places.
12156         * ListViewItem.cs: Changed access to 'selected' instance variable
12157         from private to internal.
12158         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
12159
12160 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
12161
12162         * ThemeWin32Classic.cs: remove cache of brush and pens for
12163         specific controls and use the global system, fixes scrollbutton
12164         bugs (for small sizes, disabled, etc)
12165         
12166         * ScrollBar.cs: does not show the thumb for very small controls
12167         (as MS) and allow smaller buttons that the regular size
12168
12169 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
12170
12171         * UpDownBase.cs: Add abstract methods for the interface.
12172         Add new virtual methods (need to be hooked up to TextEntry when it
12173         exists).
12174         Add override methods for most features.
12175         Computes the size, forces the height of the text entry.
12176
12177         * NumericUpDown.cs: Put here the current testing code.
12178
12179         * Set eol-style property on all files that do not have mixed line
12180         endings, to minimize the future problems.  There are still a few
12181         files with mixed endings, and someone should choose whether they
12182         want to move it or not.
12183
12184 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
12185
12186         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
12187         System.Colors
12188         
12189 2004-11-30  Ravindra <rkumar@novell.com>
12190
12191         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
12192         drawing and replaced use of SystemColors by theme colors.
12193         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
12194         * ListView.cs (ListViewItemCollection.Add): Throw exception when
12195         same ListViewItem is being added more than once.
12196
12197 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
12198
12199         * MonthCalendar.cs:
12200           - ControlStyles love to make the control not flicker
12201           
12202 2004-11-30  Peter Bartok  <pbartok@novell.com>
12203
12204         * CharacterCasing.cs: Added
12205
12206 2004-11-29  Peter Bartok  <pbartok@novell.com>
12207
12208         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
12209           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
12210           I am removing these files as they conflict with already completed
12211           work. While it is fantastic to get contributions to MWF, I
12212           respectfully ask that everyone please coordinate their contributions
12213           through mono-winforms-list or #mono-winforms at this time. We're
12214           explicitly avoiding stubbing and don't want controls that don't have
12215           their basic functionality implemented in svn. Please also see
12216           http://www.mono-project.com/contributing/winforms.html
12217
12218
12219 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
12220
12221         * Application.cs (ModalRun): Don't hang after exit.
12222
12223         * Theme.cs: New TreeViewDefaultSize property.
12224
12225         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
12226         with less hardcoded SystemColors constant.
12227         Implemented TreeViewDefaultSize.
12228
12229         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
12230         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
12231
12232
12233 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
12234
12235         * MonthCalendar.cs:
12236           - Fix NextMonthDate and PrevMonthDate click moving calendar
12237
12238 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
12239
12240         * MonthCalendar.cs:
12241           - Fix usage of ScrollChange Property when scrolling months
12242
12243 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
12244
12245         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
12246          - Fixes menu destroying
12247          - Support adding and removing items on already created menus
12248
12249 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
12250
12251         * MonthCalendar.cs:
12252           - Re-worked all bolded dates handling to match win32
12253         * ThemeWin32Classic.cs:
12254           - Fixed rendering with bolded dates
12255
12256 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
12257
12258         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
12259         - Horizontal scroolbar
12260         - Multicolumn
12261         - Fixes
12262
12263
12264 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
12265
12266         * MonthCalendar.cs:
12267           - Fix Usage of MaxSelectionCount from SelectionRange
12268           - Fixed Shift + Cursor Selection
12269           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
12270           - Fixed normal cursor selection to be compat with win32
12271           - Fixed Shift + Mouse Click selection
12272
12273 2004-11-24  Peter Bartok <pbartok@novell.com>
12274
12275         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
12276         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
12277         * XplatUIX11.cs:
12278           - CreatedKeyBoardMsg now updates keystate with Alt key
12279           - Added workaround for timer crash to CheckTimers, Jackson will
12280             develop a proper fix and check in later
12281           - Implemented DispatchMessage
12282           - Removed calling the native window proc from GetMessage (call
12283             now moved to DispatchMessage)
12284
12285         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
12286           the keydata (Fixes bug #69831)
12287
12288         * XplatUIWin32.cs:
12289           - (DispatchMessage): Switched to return IntPtr
12290           - Added DllImport for SetFocus
12291
12292 2004-11-24  Ravindra <rkumar@novell.com>
12293
12294         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
12295         background drawing.
12296         * ListViewItem.cs: Fixed various properties, calculations
12297         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
12298         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
12299         and some internal properties. Fixed MouseDown handler and Paint
12300         method.
12301
12302 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
12303
12304         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
12305
12306 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
12307
12308         * ContainerControl.cs: correct accidental check in of local changes
12309
12310 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
12311
12312         * ThemeWin32Classic.cs:
12313                 - Fixed Drawing Last month in grid (sometimes not showing)
12314         * MonthCalendar.cs:
12315                 - Fixed title width calculation bug (makeing title small)
12316
12317 2004-11-23  Peter Bartok <pbartok@novell.com>
12318
12319         * XplatUIX11.cs:
12320           - Added generation of WM_MOUSEHOVER event
12321           - Added missing assignment of async_method atom
12322           - Fixed WM_ERASEBKGND; now only redraws the exposed area
12323
12324 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
12325
12326         * ThemeWin32Classic.cs:
12327                 - Fixed Drawing of today circle when showtodaycircle not set
12328                 - fixed drawing of first and last month in the grid (gay dates)
12329         * MonthCalendar.cs:
12330                 - Fixed Drawing of today circle
12331                 - Fixed drawing of grady dates
12332                 - Fixed HitTest for today link when ShowToday set to false
12333                 - Fixed DefaultSize to obey ShowToday
12334
12335 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
12336
12337         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
12338         * System.Windows.Forms/Theme.cs
12339         * MonthCalendar.cs: added for MonthCalendar
12340         * SelectionRange.cs: added for MonthCalendar
12341         * Day.cs: added for MonthCalendar: added for MonthCalendar
12342         * DateRangeEventArgs.cs: added for MonthCalendar
12343         * DateRangeEventHandler.cs: added for MonthCalendar
12344
12345 2004-11-22  Ravindra <rkumar@novell.com>
12346
12347         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
12348         property.
12349
12350 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
12351
12352         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
12353         event handler.
12354         
12355         * NumericUpDown.cs: Added new implementation.
12356         * UpDownBase.cs: Added new implementation.
12357
12358         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
12359         implementations.
12360         
12361         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
12362         implementations.
12363
12364         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
12365         methods.
12366
12367 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
12368
12369         * Timer.cs  (Dispose): Should call the base dispose when
12370         overriding.
12371
12372 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
12373
12374         * ScrollBar.cs: updates thumb position when max, min or increment
12375         is changed
12376
12377 2004-11-21  Ravindra <rkumar@novell.com>
12378
12379         * ListView.cs: Implemented item selection, activation and
12380         column header style. Fixed properties to do a redraw, if
12381         required. Added support for MouseHover, DoubleClick, KeyDown
12382         and KeyUp event handling and some minor fixes.
12383         * ListViewItem.cs: Fixed constructor.
12384         * ThemeWin32Classic.cs: Improved drawing for ListView.
12385
12386 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
12387
12388         * ThemeWin32Classic.cs: initial listbox drawing code
12389         * DrawMode.cs: new enumerator
12390         * ListControl.cs: stubbed class
12391         * ListBox.cs: initial implementation
12392         * Theme.cs: new methods definitions
12393         * SelectionMode.cs: new enumerator
12394
12395 2004-11-17  Peter Bartok  <pbartok@novell.com>
12396
12397         * XplatUIWin32.cs: Added double-click events to the class style
12398         * Control.cs (WndProc):
12399           - Added handling of click-count to MouseDown/ MouseUp events.
12400           - Added handling of middle and right mouse buttons
12401           - Removed old debug code
12402
12403 2004-11-17  Jackson Harper  <jackson@ximian.com>
12404
12405         * XplatUIX11.cs: Use the new Mono.Unix namespace.
12406
12407 2004-11-17  Ravindra <rkumar@novell.com>
12408
12409         * ListView.cs: Added event handling for MouseMove/Up/Down.
12410         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
12411         * ThemeWin32Classic.cs: We need to clear the graphics context and
12412         draw column header in a proper state.
12413
12414
12415 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
12416
12417         *  Menu.cs: fixes signature
12418
12419 2004-11-16  Peter Bartok  <pbartok@novell.com>
12420
12421         * XplatUIX11.cs (GetMessage): Implemented generation of
12422           double click mouse messages
12423
12424 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
12425
12426         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
12427         not by menu
12428
12429 2004-11-11  Peter Bartok  <pbartok@novell.com>
12430
12431         * HandleData.cs: Added Visible property
12432         * XplatUIX11.cs (IsVisible): Now uses Visible property from
12433           HandleData
12434         * XplatUIX11.cs: Removed old debug leftovers
12435         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
12436         * Control.cs (WndProc): Removed old debug leftovers,
12437           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
12438           needed WM_SIZE handling
12439
12440 2004-11-11  Jackson Harper  <jackson@ximian.com>
12441
12442         * OwnerDrawPropertyBag.cs:
12443         * TreeViewImageIndexConverter.cs: Initial implementation
12444
12445 2004-11-10  Jackson Harper  <jackson@ximian.com>
12446
12447         * ThemeWin32Classic.cs:
12448         * TabControl.cs: instead of moving tabs by the slider pos just
12449         start drawing at the tab that is offset by the slider. This way
12450         scrolling always moves by exactly one tab.
12451
12452 2004-11-10  Jackson Harper  <jackson@ximian.com>
12453
12454         * TabControl.cs: You can only scroll left when the slider has
12455         already ben moved right.
12456         
12457 2004-11-10  Jackson Harper  <jackson@ximian.com>
12458
12459         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
12460         the clip area.
12461         
12462 2004-11-10  Jackson Harper  <jackson@ximian.com>
12463
12464         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
12465         clip area.
12466         
12467 2004-11-09  Jackson Harper  <jackson@ximian.com>
12468
12469         * TabControl.cs (CalcXPos): New helper method so we can determine
12470         the proper place to start drawing vertical tabs.
12471         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
12472         
12473 2004-11-09  Jackson Harper  <jackson@ximian.com>
12474
12475         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
12476         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
12477         and Bottom, left and right are illegal values for this and
12478         multiline is enabled when the alignment is set to left or right.
12479         (DrawTab): Each alignment block should draw the text itself now
12480         because Left requires special love. Also add rendering for Left
12481         aligned tabs.
12482         
12483 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
12484
12485         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
12486         does not destroy the windows, removes debugging messages
12487
12488 2004-11-09  jba  <jba-mono@optusnet.com.au>
12489
12490         * ThemeWin32Classic.cs
12491         (DrawButtonBase): Fix verticle text rect clipping in windows
12492         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
12493         rendering and incorrect text rect clipping
12494         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
12495         rendering and incorrect text rect clipping
12496         
12497 2004-11-08  Jackson Harper  <jackson@ximian.com>
12498
12499         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
12500         bottom when they are bottom aligned so the bottoms of the tabs get
12501         displayed.
12502         * TabControl.cs (DropRow): Move rows up instead of down when the
12503         tab control is bottom aligned.
12504
12505 2004-11-08 13:59  pbartok
12506
12507         * XplatUIX11.cs:
12508           - Added handling for various window styles
12509           - Added handling for popup windows
12510           - Added SetTopmost handling
12511
12512 2004-11-08 13:55  pbartok
12513
12514         * XplatUIWin32.cs:
12515           - Added argument to SetTopmost method
12516           - Fixed broken ClientToScreen function
12517
12518 2004-11-08 13:53  pbartok
12519
12520         * XplatUIStructs.cs:
12521           - Added missing WS_EX styles
12522
12523 2004-11-08 13:53  pbartok
12524
12525         * XplatUI.cs, XplatUIDriver.cs:
12526           - Added argument to SetTopmost
12527
12528 2004-11-08 13:52  pbartok
12529
12530         * X11Structs.cs:
12531           - Added XSetWindowAttributes structure
12532           - Improved XWindowAttributes structure
12533           - Added SetWindowValuemask enum
12534           - Added window creation arguments enum
12535           - Added gravity enum
12536           - Added Motif hints structure
12537           - Added various Motif flags and enums
12538           - Added PropertyMode enum for property functions
12539
12540 2004-11-08 13:50  pbartok
12541
12542         * Form.cs:
12543           - Fixed arguments for updated SetTopmost method
12544
12545 2004-11-08 13:49  pbartok
12546
12547         * ToolTip.cs:
12548           - Fixed arguments for updated SetTopmost function
12549           - Fixed usage of PointToClient
12550
12551 2004-11-08 13:44  pbartok
12552
12553         * MenuAPI.cs:
12554           - Added Clipping of children and siblings
12555
12556 2004-11-08 13:41  pbartok
12557
12558         * MainMenu.cs:
12559           - Removed SetMenuBarWindow call. We do this in Form.cs
12560
12561 2004-11-08 13:40  jackson
12562
12563         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
12564           scrolling jimmi in the correct location with bottom aligned tabs
12565
12566 2004-11-08 13:36  pbartok
12567
12568         * ContainerControl.cs:
12569           - Implemented BindingContext
12570           - Implemented ParentForm
12571
12572 2004-11-08 12:46  jackson
12573
12574         * TabControl.cs: Put bottom rendered tabs in the right location
12575
12576 2004-11-08 07:15  jordi
12577
12578         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
12579           removes dead code
12580
12581 2004-11-05 17:30  jackson
12582
12583         * TabControl.cs: When selected tabs are expanded make sure they
12584           don't go beyond the edges of the tab control
12585
12586 2004-11-05 14:57  jackson
12587
12588         * TabControl.cs: Reset show_slider so if the control is resized to
12589           a size where it is no longer needed it's not displayed anymore
12590
12591 2004-11-05 13:16  jackson
12592
12593         * TabControl.cs: Make tab pages non visible when added to the
12594           control
12595
12596 2004-11-05 12:42  jackson
12597
12598         * TabControl.cs: Implement SizeMode.FillToRight
12599
12600 2004-11-05 12:16  jackson
12601
12602         * Control.cs: Do not call CreateHandle if the handle is already
12603           created
12604
12605 2004-11-05 11:46  jackson
12606
12607         * TabControl.cs: Remove superflous call to CalcTabRows
12608
12609 2004-11-05 09:07  jackson
12610
12611         * XplatUIX11.cs: Update for Mono.Posix changes
12612
12613 2004-11-05 07:00  ravindra
12614
12615         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
12616           scrolling.
12617
12618 2004-11-04 22:47  jba
12619
12620         * ThemeWin32Classic.cs:
12621           - Fix Button rendering for FlatStyle = Flat or Popup
12622           - Fix RadioButton and CheckBox rendering when Appearance = Button
12623             (normal and flatstyle).
12624           - Correct outer rectangle color when drawing focus rectangle
12625           - Adjust button bounds to be 1 px smaller when focused
12626           - Make button not draw sunken 3d border when pushed (windows compat)
12627           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
12628           - Offset the text in RadioButton and Checkbox when being rendered as
12629           a button.
12630           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
12631           radiobuttons
12632           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
12633           - Fixed disabled text rendering for normally rendered radiobuttons
12634
12635 2004-11-04 10:26  jackson
12636
12637         * TabControl.cs: Recalculate tab rows when resizing
12638
12639 2004-11-04 07:47  jordi
12640
12641         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
12642           collection completion, drawing issues, missing features
12643
12644 2004-11-04 05:03  ravindra
12645
12646         * ScrollBar.cs:
12647                 - We need to recalculate the Thumb area when
12648                 LargeChange/maximum/minimum values are changed.
12649           - We set the 'pos' in UpdatePos() method to minimum, if it's less
12650                 than minimum. This is required to handle the case if large_change is
12651                 more than max, and use LargeChange property instead of large_change
12652                 variable.
12653           - We return max+1 when large_change is more than max, like MS does.
12654
12655 2004-11-04 04:29  ravindra
12656
12657         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
12658                 - Changed default value signatures (prefixed all with ListView).
12659                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
12660                 ListView.
12661           - Fixed calculations for ListViewItem and implemented Clone()
12662           method.
12663
12664 2004-11-04 04:26  ravindra
12665
12666         * Theme.cs, ThemeWin32Classic.cs:
12667                 - Changed default ListView values signatures (prefixed all with
12668                 ListView).
12669           - Fixed default size values for VScrollBar and HScrollBar.
12670                 - Fixed DrawListViewItem method.
12671
12672 2004-11-04 04:05  ravindra
12673
12674         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
12675
12676 2004-11-04 04:04  ravindra
12677
12678         * ImageList.cs: Implemented the missing overload for Draw method.
12679
12680 2004-11-03 19:29  jackson
12681
12682         * TabControl.cs: Handle dropping rows on selection properly
12683
12684 2004-11-03 11:59  jackson
12685
12686         * TabControl.cs: remove debug code
12687
12688 2004-11-03 11:52  jackson
12689
12690         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
12691           the scrolly widgerywoo
12692
12693 2004-11-02 13:52  jackson
12694
12695         * TabControl.cs: Resize the tab pages and tabs when the tab control
12696           is resized
12697
12698 2004-11-02 13:40  jackson
12699
12700         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
12701           selected tab to the bottom
12702
12703 2004-11-02 13:39  jackson
12704
12705         * TabPage.cs: Store the tab pages row
12706
12707 2004-11-02 12:33  jordi
12708
12709         * MenuItem.cs: fixes handle creation
12710
12711 2004-11-02 11:42  jackson
12712
12713         * TabControl.cs: signature fix
12714
12715 2004-11-02 08:56  jackson
12716
12717         * TabControl.cs: Calculate whether the tab is on an edge properly.
12718           Remove top secret debugging code
12719
12720 2004-11-01 19:57  jackson
12721
12722         * TabControl.cs: Add click handling, and proper sizing
12723
12724 2004-11-01 19:47  jackson
12725
12726         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
12727           tab controls
12728
12729 2004-11-01 19:39  jackson
12730
12731         * TabPage.cs: add internal property to store the bounds of a tab
12732           page
12733
12734 2004-10-30 04:23  ravindra
12735
12736         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
12737           values.
12738
12739 2004-10-30 04:21  ravindra
12740
12741         * ListView.cs, ListViewItem.cs: Added support for scrolling and
12742           fixed calculations.
12743
12744 2004-10-30 03:06  pbartok
12745
12746         * XplatUIX11.cs:
12747           - Removed extension of DllImported libs
12748
12749 2004-10-29 09:55  jordi
12750
12751         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
12752           navigation, itemcollection completion, menu fixes
12753
12754 2004-10-27 22:58  pbartok
12755
12756         * XplatUIX11.cs:
12757           - Now throws a nice error message when no X display could be opened
12758
12759 2004-10-26 13:51  jordi
12760
12761         * ListView.cs: removes warning
12762
12763 2004-10-26 03:55  ravindra
12764
12765         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
12766           ThemeWin32Classic.cs: Some formatting for my last checkins.
12767
12768 2004-10-26 03:36  ravindra
12769
12770         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
12771           control and default values.
12772
12773 2004-10-26 03:35  ravindra
12774
12775         * Theme.cs: Added some default values for ListView control.
12776
12777 2004-10-26 03:33  ravindra
12778
12779         * ToolBar.cs: ToolBar should use the user specified button size, if
12780           there is any. Added a size_specified flag for the same.
12781
12782 2004-10-26 03:33  ravindra
12783
12784         * ColumnHeader.cs: Added some internal members and calculations for
12785           ColumnHeader.
12786
12787 2004-10-26 03:32  ravindra
12788
12789         * ListViewItem.cs: Calculations for ListViewItem.
12790
12791 2004-10-26 03:31  ravindra
12792
12793         * ListView.cs: Added some internal members and calculations for
12794           ListView.
12795
12796 2004-10-22 13:31  jordi
12797
12798         * MenuAPI.cs: speedup menus drawing
12799
12800 2004-10-22 13:16  jackson
12801
12802         * XplatUIX11.cs: Make sure to update exposed regions when adding an
12803           expose event
12804
12805 2004-10-22 11:49  jackson
12806
12807         * Control.cs: oops
12808
12809 2004-10-22 11:41  jackson
12810
12811         * Control.cs: Check to see if the window should have its background
12812           repainted by X when drawing.
12813
12814 2004-10-22 11:31  jackson
12815
12816         * XplatUIX11.cs: When invalidating areas only use XClearArea if
12817           clear is true, this way we do not get flicker from X repainting the
12818           background
12819
12820 2004-10-22 11:28  jackson
12821
12822         * XEventQueue.cs: Queue properly
12823
12824 2004-10-21 09:38  jackson
12825
12826         * XEventQueue.cs: Fix access modifier
12827
12828 2004-10-21 09:36  jackson
12829
12830         * XEventQueue.cs: Don't loose messages
12831
12832 2004-10-21 09:22  jackson
12833
12834         * XEventQueue.cs: Don't loose messages
12835
12836 2004-10-20 04:15  jordi
12837
12838         * BootMode.cs: enum need it by SystemInfo
12839
12840 2004-10-19 21:58  pbartok
12841
12842         * XplatUIWin32.cs:
12843           - Small sanity check
12844
12845 2004-10-19 21:56  pbartok
12846
12847         * Form.cs:
12848           - Added private FormParentWindow class which acts as the container
12849             for our form and as the non-client area where menus are drawn
12850           - Added/Moved required tie-ins to Jordi's menus
12851           - Fixed/Implemented the FormStartPosition functionality
12852
12853 2004-10-19 21:52  pbartok
12854
12855         * Control.cs:
12856           - Removed unneeded locals
12857           - Added code to all size and location properties to understand and
12858             deal with the parent container of Form
12859
12860 2004-10-19 21:33  pbartok
12861
12862         * Application.cs:
12863           - Fixed to deal with new Form subclasses for menus
12864
12865 2004-10-19 17:48  jackson
12866
12867         * XEventQueue.cs: commit correct version of file
12868
12869 2004-10-19 16:50  jackson
12870
12871         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
12872
12873 2004-10-19 16:15  jordi
12874
12875         * MenuAPI.cs: MenuBarCalcSize returns the height
12876
12877 2004-10-19 08:31  pbartok
12878
12879         * Control.cs:
12880           - Added missing call to PreProcessMessage before calling OnXXXKey
12881           methods
12882
12883 2004-10-19 00:04  ravindra
12884
12885         * ToolTip.cs: Fixed constructor.
12886
12887 2004-10-18 09:31  jordi
12888
12889         * MenuAPI.cs: menuitems in menubars do not have shortcuts
12890
12891 2004-10-18 09:26  jordi
12892
12893         * MenuItem.cs: fixes MenuItem class signature
12894
12895 2004-10-18 08:56  jordi
12896
12897         * MenuAPI.cs: prevents windows from showing in the taskbar
12898
12899 2004-10-18 00:28  ravindra
12900
12901         * ToolTip.cs: Suppressed a warning message.
12902
12903 2004-10-18 00:27  ravindra
12904
12905         * Control.cs: Default value of visible property must be true.
12906
12907 2004-10-17 23:19  pbartok
12908
12909         * ToolTip.cs:
12910           - Complete implementation
12911
12912 2004-10-17 23:19  pbartok
12913
12914         * XplatUIX11.cs:
12915           - Added EnableWindow method
12916           - Added SetModal stub
12917           - Added generation of WM_ACTIVATE message (still needs testing)
12918           - Added SetTopMost stub
12919           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
12920
12921 2004-10-17 23:17  pbartok
12922
12923         * XplatUIWin32.cs:
12924           - Removed VirtualKeys to XplatUIStructs
12925           - Implemented SetTopMost method
12926           - Implemented EnableWindow method
12927           - Bugfix in ScreenToClient()
12928           - Bugfixes in ClientToScreen()
12929
12930 2004-10-17 22:51  pbartok
12931
12932         * XplatUIStructs.cs:
12933           - Added WS_EX styles to WindowStyles enumeration
12934
12935 2004-10-17 22:50  pbartok
12936
12937         * XplatUI.cs, XplatUIDriver.cs:
12938           - Added method for enabling/disabling windows
12939           - Added method for setting window modality
12940           - Added method for setting topmost window
12941
12942 2004-10-17 22:49  pbartok
12943
12944         * ThemeWin32Classic.cs:
12945           - Added ToolTip drawing code
12946
12947 2004-10-17 22:49  pbartok
12948
12949         * Theme.cs:
12950           - Added ToolTip abstracts
12951
12952 2004-10-17 22:47  pbartok
12953
12954         * Form.cs:
12955           - Fixed Form.ControlCollection to handle owner relations
12956           - Added Owner/OwnedForms handling
12957           - Implemented Z-Ordering for owned forms
12958           - Removed unneeded private overload of ShowDialog
12959           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
12960             so I hope)
12961           - Fixed Close(), had wrong default
12962           - Added firing of OnLoad event
12963           - Added some commented out debug code for Ownership handling
12964
12965 2004-10-17 22:16  pbartok
12966
12967         * Control.cs:
12968           - Fixed/implemented flat list of controls
12969
12970 2004-10-17 22:14  pbartok
12971
12972         * Application.cs:
12973           - Added code to simulate modal dialogs on Win32
12974
12975 2004-10-17 16:11  jordi
12976
12977         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
12978           mouse event
12979
12980 2004-10-17 13:39  jordi
12981
12982         * MenuAPI.cs: menu drawing fixes
12983
12984 2004-10-15 09:10  ravindra
12985
12986         * StructFormat.cs: General Enum.
12987
12988 2004-10-15 09:09  ravindra
12989
12990         * SizeGripStyle.cs: Enum for Form.
12991
12992 2004-10-15 09:08  ravindra
12993
12994         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
12995           in Theme for ListView.
12996
12997 2004-10-15 09:06  ravindra
12998
12999         * ColumnHeader.cs: Flushing some formatting changes.
13000
13001 2004-10-15 09:05  ravindra
13002
13003         * ListViewItem.cs: Implemented GetBounds method and fixed coding
13004           style.
13005
13006 2004-10-15 09:03  ravindra
13007
13008         * ListView.cs: Implemented Paint method and fixed coding style.
13009
13010 2004-10-15 07:34  jordi
13011
13012         * MenuAPI.cs: fix for X11
13013
13014 2004-10-15 07:32  ravindra
13015
13016         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
13017                 - Renamed Paint() method to Draw() for clarity. Also, moved
13018                 DrawImage() to OnPaint().
13019
13020 2004-10-15 07:25  ravindra
13021
13022         * CheckBox.cs, RadioButton.cs:
13023                 - Removed Redraw (), we get it from ButtonBase.
13024                 - Implemented Paint (), to do class specific painting.
13025
13026 2004-10-15 07:16  ravindra
13027
13028         * ButtonBase.cs:
13029                 - Redraw () is not virtual now.
13030                 - Added an internal virtual method Paint (), so that
13031                 derived classes can do their painting on their own.
13032                 - Modified OnPaint () to call Paint ().
13033
13034 2004-10-15 06:43  jordi
13035
13036         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
13037           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
13038
13039 2004-10-15 00:30  ravindra
13040
13041         * MessageBox.cs:
13042                 - MessageBox on windows does not have min/max buttons.
13043                 This change in CreateParams fixes this on Windows. We
13044                 still need to implement this windowstyle behavior in
13045                 our X11 driver.
13046
13047 2004-10-14 05:14  ravindra
13048
13049         * ToolBar.cs:
13050                 - Changed Redraw () to do a Refresh () always.
13051                 - Fixed the MouseMove event handling when mouse is pressed,
13052                 ie drag event handling.
13053                 - Replaced the usage of ToolBarButton.Pressed property to
13054                 ToolBarButton.pressed internal variable.
13055
13056 2004-10-14 05:10  ravindra
13057
13058         * ToolBarButton.cs:
13059                 - Added an internal member 'inside' to handle mouse move
13060                 with mouse pressed ie mouse drag event.
13061                 - Changed 'Pressed' property to return true only when
13062                 'inside' and 'pressed' are both true.
13063                 - Some coding style love.
13064
13065 2004-10-14 00:17  ravindra
13066
13067         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
13068           public method.
13069
13070 2004-10-14 00:15  ravindra
13071
13072         * ButtonBase.cs: Redraw () related improvements.
13073
13074 2004-10-14 00:14  ravindra
13075
13076         * MessageBox.cs: Moved InitFormSize () out of Paint method and
13077           removed unnecessary calls to Button.Show () method.
13078
13079 2004-10-13 17:50  pbartok
13080
13081         * XplatUIX11.cs:
13082           - Formatting fix
13083           - Removed destroying of window until we solve the problem of X
13084             destroying the window before us on shutdown
13085
13086 2004-10-13 16:32  pbartok
13087
13088         * ButtonBase.cs:
13089           - Now Redraws on MouseUp for FlatStyle Flat and Popup
13090
13091 2004-10-13 14:18  pbartok
13092
13093         * XplatUIX11.cs:
13094           - Added code to destroy the X window
13095
13096 2004-10-13 14:18  pbartok
13097
13098         * XplatUIWin32.cs:
13099           - Added code to destroy a window
13100
13101 2004-10-13 14:12  pbartok
13102
13103         * ButtonBase.cs:
13104           - Added the Redraw on Resize that got dropped in the last rev
13105
13106 2004-10-13 09:06  pbartok
13107
13108         * ThemeWin32Classic.cs:
13109           - Path from John BouAntoun:
13110             * Fix check rendering (centre correctly for normal style, offset
13111               correctly for FlatStyle).
13112             * Fix border color usage (use backcolor) for FlatStyle.Popup
13113             * Use checkbox.Capture instead of checkbox.is_pressed when
13114               rendering flatstyle states.
13115
13116 2004-10-12 21:48  pbartok
13117
13118         * ThemeWin32Classic.cs:
13119           - Removed all occurences of SystemColors and replaced them with the
13120             matching theme color
13121
13122 2004-10-12 21:41  pbartok
13123
13124         * ThemeWin32Classic.cs:
13125           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
13126             him using the function for flatstyle drawing
13127           - Changed functions to use the new version of CPDrawBorder3D
13128
13129 2004-10-12 21:15  pbartok
13130
13131         * ControlPaint.cs:
13132           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
13133             match MS documentation. They need to return defined colors if the
13134             passed color matches the configured control color. Thanks to John
13135             BouAntoun for pointing this out.
13136
13137 2004-10-12 20:57  pbartok
13138
13139         * Control.cs:
13140           - Fix from John BouAntoun: Raise ForeColorChanged event when text
13141             color is changed
13142
13143 2004-10-12 20:46  pbartok
13144
13145         * CheckBox.cs:
13146           - Fix from John BouAntoun: Now properly sets the Appearance property
13147
13148 2004-10-12 20:45  pbartok
13149
13150         * ThemeWin32Classic.cs:
13151           - Fixes from John BouAntoun: now handles forecolors and backcolors
13152             for flatstyle rendered controls much better; It also fixes normal
13153             checkbox rendering when pushed or disabled.
13154
13155 2004-10-08 02:50  jordi
13156
13157         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
13158           work
13159
13160 2004-10-07 08:56  jordi
13161
13162         * ThemeWin32Classic.cs: Removes deletion of cached brushes
13163
13164 2004-10-06 03:59  jordi
13165
13166         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
13167           XplatUIWin32.cs: removes warnings from compilation
13168
13169 2004-10-05 12:23  jackson
13170
13171         * RadioButton.cs: Fix ctor
13172
13173 2004-10-05 11:10  pbartok
13174
13175         * MessageBox.cs:
13176           - Partial implementation by Benjamin Dasnois
13177
13178 2004-10-05 10:15  jackson
13179
13180         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
13181           by John BouAntoun
13182
13183 2004-10-05 03:07  ravindra
13184
13185         * ToolBar.cs:
13186                 - Removed a private method, Draw ().
13187                 - Fixed the ButtonDropDown event handling.
13188                 - Fixed MouseMove event handling.
13189
13190 2004-10-05 03:04  ravindra
13191
13192         * ThemeWin32Classic.cs:
13193                 - Added DrawListView method and ListViewDefaultSize property.
13194                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
13195                 - Changed DOS style CRLF to Unix format (dos2unix).
13196
13197 2004-10-05 03:03  ravindra
13198
13199         * Theme.cs:
13200                 - Added DrawListView method and ListViewDefaultSize property.
13201
13202 2004-10-05 02:42  ravindra
13203
13204         * ToolBarButton.cs: Added an internal member dd_pressed to handle
13205           clicks on DropDown arrow.
13206
13207 2004-10-04 22:56  jackson
13208
13209         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
13210           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
13211           Control handle the buffers, derived classes should not have to
13212           CreateBuffers themselves.
13213
13214 2004-10-04 21:20  jackson
13215
13216         * StatusBar.cs: The control handles resizing the buffers now.
13217
13218 2004-10-04 21:18  jackson
13219
13220         * Control.cs: When resizing the buffers should be invalidated. This
13221           should be handled in Control not in derived classes.
13222
13223 2004-10-04 14:45  jackson
13224
13225         * TabPage.cs: oops
13226
13227 2004-10-04 02:14  pbartok
13228
13229         * LeftRightAlignment.cs:
13230           - Initial check-in
13231
13232 2004-10-04 01:09  jordi
13233
13234         * ThemeWin32Classic.cs: fixes right button position causing right
13235           button not showing on horizontal scrollbars
13236
13237 2004-10-02 13:12  pbartok
13238
13239         * XplatUIX11.cs:
13240           - Simplified the Invalidate method by using an X call instead of
13241             generating the expose ourselves
13242           - Added an expose when the window background is changed
13243           - Implemented ClientToScreen method
13244
13245 2004-10-02 13:08  pbartok
13246
13247         * XplatUIWin32.cs:
13248           - Added Win32EnableWindow method (test for implementing modal
13249           dialogs)
13250           - Added ClientToScreen method and imports
13251
13252 2004-10-02 13:07  pbartok
13253
13254         * XplatUI.cs, XplatUIDriver.cs:
13255           - Added ClientToScreen coordinate translation method
13256
13257 2004-10-02 13:06  pbartok
13258
13259         * KeyPressEventArgs.cs:
13260           - Fixed access level for constructor
13261
13262 2004-10-02 13:06  pbartok
13263
13264         * NativeWindow.cs:
13265           - Changed access level for the window_collection hash table
13266
13267 2004-10-02 13:05  pbartok
13268
13269         * Form.cs:
13270           - Added KeyPreview property
13271           - Added Menu property (still incomplete, pending Jordi's menu work)
13272           - Implemented ProcessCmdKey
13273           - Implemented ProcessDialogKey
13274           - Implemented ProcessKeyPreview
13275
13276 2004-10-02 13:02  pbartok
13277
13278         * Control.cs:
13279           - Added private method to get the Control object from the window
13280           handle
13281           - Implemented ContextMenu property
13282           - Implemented PointToScreen
13283           - Implemented PreProcessMessage
13284           - Implemented IsInputChar
13285           - Implemented IsInputKey
13286           - Implemented ProcessCmdKey
13287           - Completed ProcessKeyEventArgs
13288           - Fixed message loop to call the proper chain of functions on key
13289           events
13290           - Implemented ProcessDialogChar
13291           - Implemented ProcessDialogKey
13292           - Implemented ProcessKeyMessage
13293           - Implemented ProcessKeyPreview
13294           - Added RaiseDragEvent stub (MS internal method)
13295           - Added RaiseKeyEvent stub (MS internal method)
13296           - Added RaiseMouseEvent stub (MS Internal method)
13297           - Added RaisePaintEvent stub (MS Internal method)
13298           - Added ResetMouseEventArgs stub (MS Internal method)
13299           - Implemented RtlTranslateAlignment
13300           - Implemented RtlTranslateContent
13301           - Implemented RtlTranslateHorizontal
13302           - Implemented RtlTranslateLeftRight
13303           - Added generation of KeyPress event
13304
13305 2004-10-02 05:57  ravindra
13306
13307         * ListViewItem.cs: Added attributes.
13308
13309 2004-10-02 05:32  ravindra
13310
13311         * ListView.cs: Added attributes.
13312
13313 2004-10-01 11:53  jackson
13314
13315         * Form.cs: Implement the Close method so work on MessageBox can
13316           continue.
13317
13318 2004-09-30 14:06  pbartok
13319
13320         * XplatUIX11.cs:
13321           - Bug fixes
13322
13323 2004-09-30 11:34  jackson
13324
13325         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
13326
13327 2004-09-30 07:26  ravindra
13328
13329         * ListViewItemConverter.cs: Converter for ListViewItem.
13330
13331 2004-09-30 07:26  ravindra
13332
13333         * SortOrder.cs: Enum for ListView control.
13334
13335 2004-09-30 07:25  ravindra
13336
13337         * ColumnHeader.cs: Supporting class for ListView control.
13338
13339 2004-09-30 07:24  ravindra
13340
13341         * ListView.cs, ListViewItem.cs: Initial implementation.
13342
13343 2004-09-30 07:20  ravindra
13344
13345         * ItemActivation.cs: Enum for ListView Control.
13346
13347 2004-09-29 20:29  pbartok
13348
13349         * XplatUIX11.cs:
13350           - Added lookup of pixel value for background color; tries to get a
13351             color 'close' to the requested color, it avoids having to create a
13352             colormap.  Depending on the display this could mean the used color
13353             is slightly off the desired color. Might have to change it to a more
13354             resource intensive colormap approach, but it will work as a
13355           workaround to avoid red screens.
13356
13357 2004-09-29 14:27  jackson
13358
13359         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
13360
13361 2004-09-28 12:44  pbartok
13362
13363         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
13364           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
13365           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
13366           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
13367           TrackBar.cs, VScrollBar.cs:
13368           - Streamlined Theme interfaces:
13369             * Each DrawXXX method for a control now is passed the object for
13370               the control to be drawn in order to allow accessing any state the
13371               theme might require
13372
13373             * ControlPaint methods for the theme now have a CP prefix to avoid
13374               name clashes with the Draw methods for controls
13375
13376             * Every control now retrieves it's DefaultSize from the current
13377             theme
13378
13379 2004-09-28 12:17  jackson
13380
13381         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
13382           drawing
13383
13384 2004-09-24 14:57  jackson
13385
13386         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
13387           Gives us a nice little performance boost.
13388
13389 2004-09-24 12:02  jackson
13390
13391         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
13392           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
13393           Control and supporting classes. Initial checkin
13394
13395 2004-09-23 13:08  jackson
13396
13397         * Form.cs: Temp build fixage
13398
13399 2004-09-23 01:39  ravindra
13400
13401         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
13402           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
13403           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
13404           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
13405           EventHandlers needed by ListView Control.
13406
13407 2004-09-22 14:12  pbartok
13408
13409         * ScrollableControl.cs:
13410           - Implemented DockPadding property
13411           - Implemented AutoScroll property
13412           - Implemented AutoScrollMargin property
13413           - Implemented AutoScrollMinSize property
13414           - Implemented AutoScrollPosition property
13415           - Implemented DisplayRectangle property (still incomplete)
13416           - Implemented CreateParams property
13417           - Implemented HScroll property
13418           - Implemented VScroll property
13419           - Implemented OnVisibleChanged property
13420
13421 2004-09-22 14:09  pbartok
13422
13423         * Form.cs:
13424           - Added Form.ControllCollection class
13425           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
13426             RemoveOwnedForm (still incomplete, missing on-top and common
13427             minimize/maximize behaviour)
13428           - Added StartPosition property (still incomplete, does not use when
13429             creating the form)
13430           - Added ShowDialog() methods (still incomplete, missing forcing the
13431             dialog modal)
13432
13433 2004-09-22 14:05  pbartok
13434
13435         * Application.cs:
13436           - Added message loop for modal dialogs
13437
13438 2004-09-22 14:02  pbartok
13439
13440         * GroupBox.cs:
13441           - Fixed wrong types for events
13442
13443 2004-09-22 14:00  pbartok
13444
13445         * Shortcut.cs, FormWindowState.cs:
13446           - Fixed wrong values
13447
13448 2004-09-22 12:01  jackson
13449
13450         * Control.cs: Text is never null
13451
13452 2004-09-20 22:14  pbartok
13453
13454         * XplatUIWin32.cs:
13455           - Fixed accessibility level for Idle handler
13456
13457 2004-09-20 18:54  jackson
13458
13459         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
13460           XplatUIX11.cs: New message loop that uses poll so we don't get a
13461           busy loop
13462
13463 2004-09-17 10:43  pbartok
13464
13465         * ScrollBar.cs:
13466           - Fixed behaviour of arrow buttons. Now properly behaves like
13467             Buttons (and like Microsoft's scrollbar arrow buttons)
13468
13469 2004-09-17 10:14  pbartok
13470
13471         * ScrollBar.cs:
13472           - Added missing release of keyboard/mouse capture
13473
13474 2004-09-17 06:18  jordi
13475
13476         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
13477           Theme.cs: Very early menu support
13478
13479 2004-09-16 17:45  pbartok
13480
13481         * XplatUIWin32.cs:
13482           - Fixed sending a window to the front
13483           - Added overload for SetWindowPos to avoid casting
13484
13485 2004-09-16 17:44  pbartok
13486
13487         * Control.cs:
13488           - Added SendToBack and BringToFront methods
13489
13490 2004-09-16 07:00  ravindra
13491
13492         * Copyright: Added Novell URL.
13493
13494 2004-09-16 07:00  ravindra
13495
13496         * ToolBar.cs: Invalidate should be done before redrawing.
13497
13498 2004-09-15 21:19  ravindra
13499
13500         * ColumnHeaderStyle.cs: Enum for ListView Control.
13501
13502 2004-09-15 21:18  ravindra
13503
13504         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
13505           ListView Control.
13506
13507 2004-09-13 18:26  jackson
13508
13509         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
13510           properly
13511
13512 2004-09-13 18:13  jackson
13513
13514         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
13515           a second thread and post messages into the main threads message
13516           queue. This makes timing much more consistent. Both win2K and XP
13517           have a minimum timer value of 15 milliseconds, so we now do this
13518           too.
13519
13520 2004-09-13 15:18  pbartok
13521
13522         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
13523           XplatUIX11.cs:
13524           - Added Z-Ordering methods
13525
13526 2004-09-13 10:56  pbartok
13527
13528         * Form.cs:
13529           - Fixed #region names
13530           - Moved properties and methods into their proper #regions
13531
13532 2004-09-13 10:51  pbartok
13533
13534         * Form.cs:
13535           - Added Accept and CancelButton properties
13536           - Added ProcessDialogKey() method
13537
13538 2004-09-13 08:18  pbartok
13539
13540         * IWindowTarget.cs:
13541           - Initial check-in
13542
13543 2004-09-10 21:50  pbartok
13544
13545         * Control.cs:
13546           - Added DoDragDrop() [incomplete]
13547           - Properly implemented 'Visible' handling
13548           - Added SetVisibleCore()
13549           - Implemented FindChildAtPoint()
13550           - Implemented GetContainerControl()
13551           - Implemented Hide()
13552
13553 2004-09-10 19:28  pbartok
13554
13555         * Control.cs:
13556           - Moved methods into their appropriate #regions
13557           - Reordered methods within regions alphabetically
13558
13559 2004-09-10 18:57  pbartok
13560
13561         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
13562           - Added method to retrieve text from window
13563
13564 2004-09-10 18:56  pbartok
13565
13566         * Control.cs:
13567           - Moved some internal functions into the internal region
13568           - Implemented FontHeight
13569           - Implemented RenderRightToLeft
13570           - Implemented ResizeRedraw
13571           - Implemented ShowFocusCues
13572           - Implemented ShowKeyboardCues
13573           - Implemented FromChildHandle
13574           - Implemented FromHandle
13575           - Implemented IsMnemonic
13576           - Implemented ReflectMessage
13577           - All public and protected Static Methods are now complete
13578
13579 2004-09-10 16:54  pbartok
13580
13581         * Control.cs:
13582           - Implemented remaining missing public instance properties
13583           - Alphabetized some out of order properties
13584
13585 2004-09-10 05:51  ravindra
13586
13587         * PictureBox.cs: Added a check for null image.
13588
13589 2004-09-10 00:59  jordi
13590
13591         * GroupBox.cs: remove cvs tag
13592
13593 2004-09-09 05:25  ravindra
13594
13595         * ToolBar.cs: Make redraw accessible from ToolBarButton.
13596
13597 2004-09-09 05:23  ravindra
13598
13599         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
13600           parent redraw.
13601
13602 2004-09-09 02:28  pbartok
13603
13604         * ThemeWin32Classic.cs:
13605           - Improve disabled string look
13606
13607 2004-09-09 01:15  jordi
13608
13609         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
13610           args and handler
13611
13612 2004-09-08 23:56  ravindra
13613
13614         * ItemBoundsPortion.cs: It's enum, not a class!
13615
13616 2004-09-08 23:47  ravindra
13617
13618         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
13619           Enums for Form.
13620
13621 2004-09-08 21:13  ravindra
13622
13623         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
13624           ListView control.
13625
13626 2004-09-08 21:03  ravindra
13627
13628         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
13629           avoid crash.
13630
13631 2004-09-08 21:01  ravindra
13632
13633         * ScrollableControl.cs: Removed unreachable code.
13634
13635 2004-09-08 06:45  jordi
13636
13637         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
13638
13639 2004-09-08 01:00  jackson
13640
13641         * XplatUIX11.cs: Only run the timers when updating the message
13642           queue. This effectively gives X messages a higher priority then
13643           timer messages. Timers still need love though
13644
13645 2004-09-07 14:01  jackson
13646
13647         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
13648           this for us and the handle is no longer valid.
13649
13650 2004-09-07 13:59  jackson
13651
13652         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
13653           loop that manages to not crash. TODO: Add poll and cleanup timers
13654
13655 2004-09-07 11:12  jordi
13656
13657         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
13658
13659 2004-09-07 03:40  jordi
13660
13661         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
13662           fixes, methods, multiple links
13663
13664 2004-09-06 06:55  jordi
13665
13666         * Control.cs: Caches ClientRectangle rectangle value
13667
13668 2004-09-05 02:03  jordi
13669
13670         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
13671           certain situations
13672
13673 2004-09-04 11:10  jordi
13674
13675         * Label.cs: Refresh when font changed
13676
13677 2004-09-02 16:24  pbartok
13678
13679         * Control.cs:
13680           - Added sanity check to creation of double buffer bitmap
13681
13682 2004-09-02 16:24  pbartok
13683
13684         * ButtonBase.cs:
13685           - Fixed selection of text color
13686           - Fixed handling of resize event; now properly recreates double
13687             buffering bitmap
13688           - Added missing assignment of TextAlignment
13689           - Added proper default for TextAlignment
13690
13691 2004-09-02 14:26  pbartok
13692
13693         * RadioButton.cs:
13694           - Added missing RadioButton.RadioButtonAccessibleObject class
13695
13696 2004-09-02 14:26  pbartok
13697
13698         * Control.cs:
13699           - Added missing Control.ControlAccessibleObject class
13700           - Started to implement Select()ion mechanisms, still very incomplete
13701
13702 2004-09-02 14:25  pbartok
13703
13704         * AccessibleObject.cs:
13705           - Added missing methods
13706
13707 2004-09-02 14:23  pbartok
13708
13709         * AccessibleNavigation.cs, AccessibleSelection.cs:
13710           - Initial check-in
13711
13712 2004-09-02 10:32  jordi
13713
13714         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
13715           pool for pens, brushes, and hatchbruses
13716
13717 2004-09-01 15:30  jackson
13718
13719         * StatusBar.cs: Fix typo
13720
13721 2004-09-01 14:44  pbartok
13722
13723         * RadioButton.cs:
13724           - Fixed state
13725
13726 2004-09-01 14:39  pbartok
13727
13728         * Button.cs, RadioButton.cs:
13729           - Functional initial check-in
13730
13731 2004-09-01 14:01  pbartok
13732
13733         * CheckBox.cs:
13734           - Added missing default
13735           - Added missing region mark
13736
13737 2004-09-01 09:10  jordi
13738
13739         * Label.cs: fixes method signatures, new methods, events, fixes
13740           autosize
13741
13742 2004-09-01 07:19  jordi
13743
13744         * Control.cs: Init string variables with an empty object
13745
13746 2004-09-01 04:20  jordi
13747
13748         * Control.cs: fires OnFontChanged event
13749
13750 2004-08-31 20:07  pbartok
13751
13752         * ButtonBase.cs:
13753           - Enabled display of strings
13754
13755 2004-08-31 20:05  pbartok
13756
13757         * Form.cs:
13758           - Added (partial) implementation of DialogResult; rest needs to be
13759             implemented when the modal loop code is done
13760
13761 2004-08-31 19:55  pbartok
13762
13763         * CheckBox.cs:
13764           - Fixed to match the removal of the needs_redraw concept
13765
13766 2004-08-31 19:55  pbartok
13767
13768         * ButtonBase.cs:
13769           - Removed the rather odd split between 'needs redraw' and redrawing
13770           - Now handles the events that require regeneration (ambient
13771             properties and size)
13772
13773 2004-08-31 19:41  pbartok
13774
13775         * Control.cs:
13776           - Added firing of BackColorChanged event
13777           - Added TopLevelControl property
13778           - Fixed handling of WM_ERASEBKGRND message
13779
13780 2004-08-31 12:49  pbartok
13781
13782         * ButtonBase.cs:
13783           - Removed debug
13784           - Minor fixes
13785
13786 2004-08-31 12:48  pbartok
13787
13788         * CheckBox.cs:
13789           - Finished (famous last words)
13790
13791 2004-08-31 04:35  jordi
13792
13793         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
13794           scrolling bugs, adds new methods
13795
13796 2004-08-30 14:42  pbartok
13797
13798         * CheckBox.cs:
13799           - Implemented CheckBox drawing code
13800
13801 2004-08-30 14:42  pbartok
13802
13803         * ButtonBase.cs:
13804           - Made Redraw() and CheckRedraw() virtual
13805           - Improved mouse up/down/move logic to properly track buttons
13806
13807 2004-08-30 09:44  pbartok
13808
13809         * CheckBox.cs:
13810           - Updated to fix broken build. Not complete yet.
13811
13812 2004-08-30 09:28  pbartok
13813
13814         * CheckState.cs:
13815           - Initial checkin
13816
13817 2004-08-30 09:17  pbartok
13818
13819         * Appearance.cs:
13820           - Initial check-in
13821
13822 2004-08-27 16:12  ravindra
13823
13824         * ToolBarButton.cs: Added TypeConverter attribute.
13825
13826 2004-08-27 16:07  ravindra
13827
13828         * ImageIndexConverter.cs: Implemented.
13829
13830 2004-08-27 14:17  pbartok
13831
13832         * Control.cs:
13833           - Removed unneeded stack vars
13834           - First attempt to fix sizing issues when layout is suspended
13835
13836 2004-08-25 15:35  jordi
13837
13838         * ScrollBar.cs: more fixes to scrollbar
13839
13840 2004-08-25 14:04  ravindra
13841
13842         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
13843           Added the missing divider code and grip for ToolBar Control.
13844
13845 2004-08-25 13:20  pbartok
13846
13847         * Control.cs:
13848           - Control now properly passes the ambient background color to child
13849             controls
13850
13851 2004-08-25 13:20  jordi
13852
13853         * ScrollBar.cs: small bug fix regarding bar position
13854
13855 2004-08-25 12:33  pbartok
13856
13857         * Timer.cs:
13858           - Now only calls SetTimer or KillTimer if the enabled state has
13859           changed
13860
13861 2004-08-25 12:33  pbartok
13862
13863         * XplatUIWin32.cs:
13864           - Fixed timer handling, now seems to work
13865           - Improved error message for window creation
13866
13867 2004-08-25 12:32  pbartok
13868
13869         * Control.cs:
13870           - Fixed generation of MouseUp message
13871
13872 2004-08-25 12:29  jordi
13873
13874         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
13875           and fixes for progressbar
13876
13877 2004-08-24 18:43  ravindra
13878
13879         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
13880           in ToolBar control.
13881
13882 2004-08-24 17:15  pbartok
13883
13884         * Panel.cs:
13885           - Added #region
13886           - Added missing events
13887           - Alphabetized
13888
13889 2004-08-24 17:14  pbartok
13890
13891         * StatusBar.cs, PictureBox.cs:
13892           - Now uses Control's CreateParams
13893
13894 2004-08-24 16:36  pbartok
13895
13896         * XplatUIX11.cs:
13897           - Fixed background color handling
13898           - Fixed sending of enter/leave events on a grab
13899
13900 2004-08-24 16:35  pbartok
13901
13902         * X11Structs.cs:
13903           - Refined definitions for CrossingEvent
13904
13905 2004-08-24 12:37  jordi
13906
13907         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
13908           formmating, methods signature, and adds missing events
13909
13910 2004-08-24 12:24  jordi
13911
13912         * Control.cs: fire OnEnabledChanged event
13913
13914 2004-08-24 11:17  pbartok
13915
13916         * XplatUIWin32.cs:
13917           - Implemented SetTimer() and KillTimer()
13918
13919 2004-08-24 11:16  pbartok
13920
13921         * XplatUIX11.cs:
13922           - Now uses Remove instead of Add to kill the timer
13923
13924 2004-08-24 10:16  jackson
13925
13926         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
13927           picture boxes in the theme now. Draw picture box borders and obey
13928           sizing modes
13929
13930 2004-08-24 05:49  jackson
13931
13932         * Timer.cs: Remove top secret debugging code
13933
13934 2004-08-24 05:34  jackson
13935
13936         * PictureBox.cs: Temp hack to make picture boxes draw their full
13937           image
13938
13939 2004-08-24 05:29  jackson
13940
13941         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
13942           XplatUIX11.cs: Move timers to the driver level. On X they are
13943           queued by the driver and checked on idle.
13944
13945 2004-08-24 01:07  jackson
13946
13947         * XplatUIX11.cs: Use a queue for async messages instead of passing
13948           them as ClientMessages since that was totally broken. Also simply
13949           check for events and return an idle message if none are found. This
13950           gives us an idle handler, and prevents deadlocking when no messages
13951           are in the queue.
13952
13953 2004-08-23 18:19  ravindra
13954
13955         * XplatUIWin32.cs: Removed the unwanted destructor.
13956
13957 2004-08-23 17:27  pbartok
13958
13959         * ButtonBase.cs:
13960           - Finishing touches. Works now, just needs some optimizations.
13961
13962 2004-08-23 16:53  jordi
13963
13964         * ScrollBar.cs: small fix
13965
13966 2004-08-23 16:45  pbartok
13967
13968         * Application.cs:
13969           - Removed debug output
13970           - Simplifications
13971
13972 2004-08-23 16:43  jordi
13973
13974         * ScrollBar.cs: [no log message]
13975
13976 2004-08-23 16:10  pbartok
13977
13978         * Form.cs:
13979           - Fixed handling of WM_CLOSE message
13980           - Removed debug output
13981
13982 2004-08-23 16:09  pbartok
13983
13984         * Application.cs:
13985           - Added handling of Idle event
13986           - Added handling of form closing
13987           - Fixed reporting of MessageLoop property
13988           - Removed some unneeded code, should provide a bit of a speedup
13989
13990 2004-08-23 15:22  pbartok
13991
13992         * Control.cs:
13993           - Added InitLayout() method
13994           - Added code to properly perform layout when Anchor or Dock property
13995             is changed
13996           - Changed 'interpretation' of ResumeLayout. MS seems to have a
13997             LAMESPEC, tried to do it in a way that makes sense
13998
13999 2004-08-23 14:10  jordi
14000
14001         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
14002           properties and methods
14003
14004 2004-08-23 13:55  pbartok
14005
14006         * Control.cs:
14007           - Properly fixed Jordi's last fix
14008           - Now uses Cursor's Position property instead of calling XplatUI
14009           directly
14010
14011 2004-08-23 13:44  jordi
14012
14013         * PaintEventHandler.cs: Adding missing attribute
14014
14015 2004-08-23 13:39  pbartok
14016
14017         * Cursor.cs:
14018           - Implemented Position property
14019
14020 2004-08-23 13:39  pbartok
14021
14022         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
14023           - Added method to move mouse cursor
14024
14025 2004-08-23 13:39  pbartok
14026
14027         * XplatUIX11.cs:
14028           - Fixed setting of background color
14029           - Added method to move mouse cursor
14030
14031 2004-08-23 13:16  jordi
14032
14033         * Control.cs: avoids null exception
14034
14035 2004-08-22 17:46  jackson
14036
14037         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
14038           PictureBox
14039
14040 2004-08-22 17:40  jackson
14041
14042         * XplatUIX11.cs: Add some missing locks
14043
14044 2004-08-22 15:10  pbartok
14045
14046         * Control.cs, Form.cs:
14047           - Removed OverlappedWindow style from Control, instead it's default
14048             now is child
14049           - Made form windows OverlappedWindow by default
14050
14051 2004-08-22 13:34  jackson
14052
14053         * ScrollBar.cs: Update the position through the Value property so
14054           the OnValueChanged event is raised.
14055
14056 2004-08-22 12:04  pbartok
14057
14058         * SWF.csproj:
14059           - Added Cursor.cs and UserControl.cs
14060
14061 2004-08-22 12:03  pbartok
14062
14063         * Cursor.cs:
14064           - Started implementation, not usable yet
14065
14066 2004-08-22 12:00  pbartok
14067
14068         * UserControl.cs:
14069           - Implemented UserControl (complete)
14070
14071 2004-08-21 19:20  ravindra
14072
14073         * ToolBar.cs: Correcting the formatting mess of VS.NET.
14074
14075 2004-08-21 18:49  ravindra
14076
14077         * ToolBar.cs: Probably this completes the missing attributes in
14078           toolbar control.
14079
14080 2004-08-21 18:03  ravindra
14081
14082         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
14083           Fixed toolbar control signatures.
14084
14085 2004-08-21 16:32  pbartok
14086
14087         * LinkLabel.cs:
14088           - Signature Fixes
14089
14090 2004-08-21 16:30  pbartok
14091
14092         * Label.cs:
14093           - Signature fixes
14094
14095 2004-08-21 16:19  pbartok
14096
14097         * Control.cs, Label.cs:
14098           - Signature fixes
14099
14100 2004-08-21 15:57  pbartok
14101
14102         * ButtonBase.cs:
14103           - Added loads of debug output for development
14104           - Fixed typo in method name
14105
14106 2004-08-21 15:52  pbartok
14107
14108         * ToolBarButtonClickEventArgs.cs:
14109           - Added missing base class
14110
14111 2004-08-21 14:53  pbartok
14112
14113         * Control.cs:
14114           - Updated to match new GrabWindow signature
14115
14116 2004-08-21 14:51  pbartok
14117
14118         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
14119           - Added method to get default display size
14120
14121 2004-08-21 14:23  pbartok
14122
14123         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
14124           - Added method to query current grab state
14125           - Added argument to allow confining a grab to a window
14126
14127 2004-08-21 14:22  pbartok
14128
14129         * Keys.cs:
14130           - Added [Flags] attribute so that modifiers can be used in bitwise
14131           ops
14132
14133 2004-08-21 14:21  pbartok
14134
14135         * TrackBar.cs, ScrollBar.cs:
14136           - Replaced direct XplatUI calls with their Control counterpart
14137
14138 2004-08-21 13:32  pbartok
14139
14140         * Control.cs:
14141           - Implemented Created property
14142
14143 2004-08-21 13:28  pbartok
14144
14145         * Control.cs:
14146           - Implemented ContainsFocus
14147
14148 2004-08-21 13:26  pbartok
14149
14150         * Control.cs:
14151           - Implemented CausesValidation
14152
14153 2004-08-21 13:21  pbartok
14154
14155         * Control.cs:
14156           - Implemented CanFocus
14157           - Implemented CanSelect
14158           - Implemented Capture
14159
14160 2004-08-21 12:35  pbartok
14161
14162         * XplatUIWin32.cs:
14163           - Fixed bug with Async message handling
14164           - Implemented getting the ModifierKeys
14165
14166 2004-08-21 12:32  jackson
14167
14168         * AsyncMethodResult.cs: Make sure we have the mutex before we
14169           release it. Fixes BeginInvoke on windows
14170
14171 2004-08-21 11:31  pbartok
14172
14173         * XplatUIWin32.cs, XplatUIX11.cs:
14174           - Drivers now return proper mouse state
14175
14176 2004-08-21 10:54  jackson
14177
14178         * Control.cs: Implement EndInvoke
14179
14180 2004-08-21 10:48  jackson
14181
14182         * Timer.cs: Remove unneeded finalizer
14183
14184 2004-08-20 19:52  ravindra
14185
14186         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
14187           in mouse event handling in the ToolBar control.
14188
14189 2004-08-20 19:50  ravindra
14190
14191         * ImageList.cs: Changed draw method to use the arguments passed in
14192           to draw the image.
14193
14194 2004-08-20 18:58  pbartok
14195
14196         * XplatUIStructs.cs:
14197           - Added private message for async communication
14198
14199 2004-08-20 17:38  ravindra
14200
14201         * Control.cs: Made RightToLeft property virtual and removed a
14202           Console.WriteLine.
14203
14204 2004-08-20 14:39  jordi
14205
14206         * ThemeGtk.cs: use style_attach
14207
14208 2004-08-20 14:39  pbartok
14209
14210         * XplatUIWin32.cs:
14211           - Added jackson's Async code from X11 to Win32
14212
14213 2004-08-20 14:09  pbartok
14214
14215         * SWF.csproj:
14216           - Added all new files
14217
14218 2004-08-20 14:09  pbartok
14219
14220         * Control.cs:
14221           - Added call to set window background color
14222
14223 2004-08-20 14:03  pbartok
14224
14225         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
14226           - Added method for setting the window background
14227
14228 2004-08-20 14:02  pbartok
14229
14230         * XplatUIWin32.cs:
14231           - Added method for setting the background color
14232           - Added handling for erasing the window background
14233
14234 2004-08-20 13:45  jordi
14235
14236         * TrackBar.cs: fixes timer, new properties and methods
14237
14238 2004-08-20 13:34  jackson
14239
14240         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
14241           correct thread
14242
14243 2004-08-20 13:22  jackson
14244
14245         * Timer.cs: Timer Tick events are now handed through Controls Async
14246           mechanism so the callbacks are executed in the same thread as X
14247
14248 2004-08-20 13:19  jackson
14249
14250         * XplatUIDriver.cs: Expose functionality to send async messages
14251           through the driver
14252
14253 2004-08-20 13:18  jackson
14254
14255         * Control.cs: Implement Begininvoke
14256
14257 2004-08-20 13:14  jackson
14258
14259         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
14260           messages through the driver
14261
14262 2004-08-20 13:12  jackson
14263
14264         * XplatUIX11.cs: Lock before all X operations. Also added Async
14265           method functionality through XSendEvent
14266
14267 2004-08-20 13:11  jackson
14268
14269         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
14270           This will screw up on 64 bit systems)
14271
14272 2004-08-20 13:10  jackson
14273
14274         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
14275           Async messages through X/Win32
14276
14277 2004-08-19 19:39  pbartok
14278
14279         * XplatUIX11.cs:
14280           - Updated code to match new HandleData.DeviceContext type
14281
14282 2004-08-19 19:38  pbartok
14283
14284         * HandleData.cs:
14285           - Made DeviceContext a generic object to allow usage from various
14286           drivers
14287           - Added support for queueing Windows messages
14288
14289 2004-08-19 19:37  pbartok
14290
14291         * XplatUIWin32.cs:
14292           - Added generation of MouseEnter, MouseLeave and MouseHover events
14293           - Added cleanup on EndPaint
14294
14295 2004-08-19 19:17  pbartok
14296
14297         * Control.cs:
14298           - Added handling of WM_MOUSEHOVER
14299           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
14300           code
14301
14302 2004-08-19 18:55  jordi
14303
14304         * ThemeGtk.cs: fixes button order
14305
14306 2004-08-19 18:12  jordi
14307
14308         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
14309
14310 2004-08-19 17:09  pbartok
14311
14312         * Control.cs:
14313           - Added Right property
14314           - Added RightToLeft property
14315
14316 2004-08-19 16:27  jordi
14317
14318         * ThemeGtk.cs: experimental GTK theme support
14319
14320 2004-08-19 16:26  jordi
14321
14322         * ITheme.cs, Theme.cs: move themes from an interface to a class
14323
14324 2004-08-19 16:25  jordi
14325
14326         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
14327           theme enhancaments
14328
14329 2004-08-19 16:04  pbartok
14330
14331         * XplatUIX11.cs:
14332           - Added colormap basics
14333           - Added a way to re-initialize with a different display handle
14334           - Fixed setting of the window background color
14335           - Added various X11 imports related to colors and colormaps
14336
14337 2004-08-19 15:51  pbartok
14338
14339         * X11Structs.cs:
14340           - Removed packing hints (Paolo suggested this a while back)
14341           - fixed colormap type
14342           - Added default Atom types
14343           - Added Screen and color structs and enums
14344
14345 2004-08-19 15:39  pbartok
14346
14347         * ImageList.cs:
14348           - Added missing Draw() method
14349           - Added missing RecreateHandle event
14350
14351 2004-08-19 15:30  pbartok
14352
14353         * Form.cs:
14354           - Added handling of WM_CLOSE
14355
14356 2004-08-18 13:16  jordi
14357
14358         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
14359           a table
14360
14361 2004-08-18 09:56  jordi
14362
14363         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
14364
14365 2004-08-17 15:31  ravindra
14366
14367         * SWF.csproj: Updated project.
14368
14369 2004-08-17 15:25  pbartok
14370
14371         * Control.cs:
14372           - Drawing improvement; don't call UpdateBounds if we are not visible
14373             (or have been minimized)
14374
14375 2004-08-17 15:24  pbartok
14376
14377         * XplatUIWin32.cs:
14378           - Finished IsVisible
14379           - Added Win32GetWindowPlacement
14380
14381 2004-08-17 15:08  jackson
14382
14383         * Panel.cs: Initial checkin of the Panel
14384
14385 2004-08-17 14:25  pbartok
14386
14387         * Control.cs:
14388           - Fixed broken handling of default window sizes
14389
14390 2004-08-17 13:29  jackson
14391
14392         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
14393           has a large startup time.
14394
14395 2004-08-17 10:25  jackson
14396
14397         * HandleData.cs: union areas properly
14398
14399 2004-08-17 10:12  jackson
14400
14401         * HandleData.cs: union areas properly
14402
14403 2004-08-16 20:00  ravindra
14404
14405         * ToolBar.cs, ToolBarButton.cs: Added attributes.
14406
14407 2004-08-16 18:48  ravindra
14408
14409         * ToolBar.cs: Added attributes.
14410
14411 2004-08-16 17:17  ravindra
14412
14413         * SWF.csproj: Updated project.
14414
14415 2004-08-16 17:16  jackson
14416
14417         * XplatUIX11.cs: Check for more expose events before sending a
14418           WM_PAINT so they can all be grouped together. This makes dragging a
14419           window across another window redraw in a sane way.
14420
14421 2004-08-16 15:47  pbartok
14422
14423         * Control.cs:
14424           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
14425             support OnMouseEnter/Leave()
14426           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
14427             exposure handling
14428
14429 2004-08-16 15:46  pbartok
14430
14431         * XplatUIStructs.cs, XplatUIX11.cs:
14432           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
14433           OnMouseEnter/Leave()
14434
14435 2004-08-16 15:34  jackson
14436
14437         * XplatUIX11.cs: Group multiple expose events in HandleData, make
14438           sure messages get the message field set to WM_NULL if they are not
14439           handled.
14440
14441 2004-08-16 15:24  jackson
14442
14443         * HandleData.cs: HandleData is used for storing message information
14444           for window handles
14445
14446 2004-08-15 17:23  ravindra
14447
14448         * ColorDepth.cs: Added attribute.
14449
14450 2004-08-15 17:23  ravindra
14451
14452         * SWF.csproj: Updated project for ToolBar Control.
14453
14454 2004-08-15 17:20  ravindra
14455
14456         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
14457           control and also dos2unix format.
14458
14459 2004-08-15 17:13  ravindra
14460
14461         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
14462           ToolBarButtonClickEventArgs.cs,
14463           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
14464           ToolBarTextAlign.cs: First Implementation of ToolBar control.
14465
14466 2004-08-15 15:31  pbartok
14467
14468         * ButtonBase.cs:
14469           - First (mostly) working version
14470
14471 2004-08-13 16:15  pbartok
14472
14473         * Control.cs:
14474           - Fixed Anchor default
14475
14476 2004-08-13 15:43  pbartok
14477
14478         * Control.cs:
14479           - Changed GetCursorPos signature
14480
14481 2004-08-13 15:42  pbartok
14482
14483         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
14484           - Changed signature for GetCursorPos
14485
14486 2004-08-13 15:25  pbartok
14487
14488         * XplatUIX11.cs:
14489           - Cleanup
14490           - Fixed resizing/exposure handling
14491
14492 2004-08-13 15:22  jordi
14493
14494         * ThemeWin32Classic.cs: removes redundant code and fixes issues
14495           with tickposition
14496
14497 2004-08-13 14:55  jordi
14498
14499         * TrackBar.cs: change from wndproc to events
14500
14501 2004-08-13 13:00  jordi
14502
14503         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
14504           XplatUIX11.cs: implements PointToClient (ScreenToClient)
14505
14506 2004-08-13 12:53  pbartok
14507
14508         * XplatUIWin32.cs:
14509           - Changed GetWindowPos to also provide client area size
14510           - Fixed broken prototypes for several win32 functions
14511
14512 2004-08-13 12:53  pbartok
14513
14514         * XplatUI.cs, XplatUIDriver.cs:
14515           - Changed GetWindowPos to also provide client area size
14516
14517 2004-08-13 12:52  pbartok
14518
14519         * XplatUIX11.cs:
14520           - Added generation of WM_POSCHANGED
14521           - Changed GetWindowPos to also provide client area size
14522
14523 2004-08-13 12:52  pbartok
14524
14525         * Control.cs:
14526           - Added Dispose() and destructor
14527           - Fixed resizing and bounds calculation
14528           - Fixed Layout
14529           - Added memory savings for invisible windows
14530
14531 2004-08-13 12:46  jordi
14532
14533         * TrackBar.cs: adds timer and grap window
14534
14535 2004-08-13 10:25  jackson
14536
14537         * Timer.cs: SWF Timer
14538
14539 2004-08-12 16:59  pbartok
14540
14541         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
14542           - Implemented method to get current mouse position
14543
14544 2004-08-12 14:29  jordi
14545
14546         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
14547           enhancement, fix mouse problems, highli thumb, etc
14548
14549 2004-08-12 13:31  pbartok
14550
14551         * Control.cs:
14552           - Fixed Anchoring bugs
14553
14554 2004-08-12 13:01  jackson
14555
14556         * StatusBar.cs: Don't forget things
14557
14558 2004-08-12 12:54  jackson
14559
14560         * ThemeWin32Classic.cs: Handle owner draw status bars
14561
14562 2004-08-12 12:54  jackson
14563
14564         * StatusBar.cs: Implement missing properties, events, and methods.
14565           Handle mouse clicking
14566
14567 2004-08-12 10:19  jackson
14568
14569         * StatusBarPanelClickEventArgs.cs,
14570           StatusBarPanelClickEventHandler.cs: Classes for handling status
14571           bar panel click events
14572
14573 2004-08-12 10:10  jackson
14574
14575         * Control.cs: Add missing properties
14576
14577 2004-08-12 09:46  pbartok
14578
14579         * BindingsManagerBase.cs:
14580           - Name changed to BindingManagerBase.cs
14581
14582 2004-08-12 09:25  jordi
14583
14584         * ScrollableControl.cs: calls ctrlbase instead of exeception
14585
14586 2004-08-11 16:28  pbartok
14587
14588         * InputLanguageChangingEventArgs.cs:
14589           - Never check in before compiling. Fixes the last check-in
14590
14591 2004-08-11 16:26  pbartok
14592
14593         * InputLanguageChangingEventArgs.cs:
14594           - More signature fixes
14595
14596 2004-08-11 16:20  pbartok
14597
14598         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
14599           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
14600           ImageListStreamer.cs, InputLanguage.cs,
14601           InputLanguageChangedEventArgs.cs,
14602           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
14603           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
14604           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
14605           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
14606           - Signature fixes
14607
14608 2004-08-11 16:16  pbartok
14609
14610         * Application.cs:
14611           - Fixed Signature
14612           - Added .Net 1.1 method
14613
14614 2004-08-11 15:25  pbartok
14615
14616         * SWF.csproj:
14617           - Fixed BindingManagerBase.cs filename
14618
14619 2004-08-11 15:22  pbartok
14620
14621         * BindingManagerBase.cs:
14622           - Was checked in with wrong filename
14623
14624 2004-08-11 14:50  pbartok
14625
14626         * SWF.csproj:
14627           - Updated
14628
14629 2004-08-11 13:41  jordi
14630
14631         * XplatUIWin32.cs: Fixes ClientRect
14632
14633 2004-08-11 13:19  pbartok
14634
14635         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
14636           XplatUIX11.cs:
14637           - We had SetWindowPos and MoveWindow to set window positions and
14638             size, removed MoveWindow. We have GetWindowPos, so it made sense to
14639             keep SetWindowPos as matching counterpart
14640           - Added some X11 sanity checking
14641
14642 2004-08-11 12:59  pbartok
14643
14644         * Control.cs:
14645           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
14646             (It seems that SetBounds is just a front for SetBoundsCore and
14647              SetBoundsCore updates the underlying window system and
14648              UpdateBounds is responsible for updating the variables associated
14649              with the Control and sending the events)
14650           - Major cleanup of Size handling; we now have two sizes, client_size
14651             and bounds. Bounds defines the window with decorations, client_size
14652             without them.
14653
14654 2004-08-11 12:55  pbartok
14655
14656         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
14657           - Added method to calculate difference between decorated window and
14658             raw client area
14659
14660 2004-08-11 12:54  pbartok
14661
14662         * Label.cs:
14663           - Forcing redraw on resize
14664
14665 2004-08-11 11:43  pbartok
14666
14667         * ImageList.cs:
14668           - Removed disposing of the actual images when the list is disposed
14669
14670 2004-08-11 09:13  pbartok
14671
14672         * Control.cs:
14673           - Now properly reparents windows
14674
14675 2004-08-11 08:37  pbartok
14676
14677         * Control.cs:
14678           - Duh!
14679
14680 2004-08-11 07:47  pbartok
14681
14682         * Control.cs:
14683           - Rewrote the collection stuff. Might not be as fast now, not
14684             keeping the number of children around and accessible directly, but
14685             it's more straightforward
14686
14687 2004-08-11 07:44  pbartok
14688
14689         * AccessibleObject.cs:
14690           - Fixed to match ControlCollection rewrite
14691
14692 2004-08-11 07:43  pbartok
14693
14694         * ImageList.cs:
14695           - Added missing creation of the collection list
14696
14697 2004-08-10 20:08  jackson
14698
14699         * StatusBar.cs: Get the paint message from WndProc
14700
14701 2004-08-10 19:31  jackson
14702
14703         * ThemeWin32Classic.cs: Create Brushes as little as possible
14704
14705 2004-08-10 19:20  jackson
14706
14707         * UICues.cs: Add Flags attribute
14708
14709 2004-08-10 19:19  jackson
14710
14711         * StatusBarPanel.cs: Signature cleanup
14712
14713 2004-08-10 19:10  jackson
14714
14715         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
14716           Initial implementation of status bar item drawing
14717
14718 2004-08-10 17:27  jordi
14719
14720         * TrackBar.cs: add missing methods, properties, and restructure to
14721           hide extra ones
14722
14723 2004-08-10 16:24  jackson
14724
14725         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
14726           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
14727           attribute
14728
14729 2004-08-10 13:21  jordi
14730
14731         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
14732           enhancements and standarize on win colors defaults
14733
14734 2004-08-10 12:52  jackson
14735
14736         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
14737           ThemeWin32Classic.cs: Implement DrawItem functionality
14738
14739 2004-08-10 12:47  jordi
14740
14741         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
14742
14743 2004-08-10 12:32  jordi
14744
14745         * Control.cs: throw ontextchange event
14746
14747 2004-08-10 11:43  pbartok
14748
14749         * Control.cs:
14750           - Added more to the still unfinished Dock/Anchor layout code
14751
14752 2004-08-10 11:39  pbartok
14753
14754         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
14755           - Added GetWindowPos method
14756
14757 2004-08-10 11:36  pbartok
14758
14759         * XplatUIWin32.cs:
14760           - Implemented several methods
14761
14762 2004-08-10 09:47  jackson
14763
14764         * TrackBar.cs: Allow control to handle buffering
14765
14766 2004-08-10 09:41  jackson
14767
14768         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
14769
14770 2004-08-10 09:24  jackson
14771
14772         * Label.cs, LinkLabel.cs: Let Control handle buffering.
14773
14774 2004-08-10 09:09  jackson
14775
14776         * StatusBar.cs: Let Control handle all the buffering.
14777
14778 2004-08-10 09:08  jackson
14779
14780         * Control.cs: Control will now handle the buffering code, so each
14781           control does not have to implement this.
14782
14783 2004-08-10 08:34  jackson
14784
14785         * XplatUIDriver.cs: Use default colors from the theme
14786
14787 2004-08-09 17:12  pbartok
14788
14789         * ImageList.cs:
14790           - Fixed several bugs Ravindra pointed out
14791
14792 2004-08-09 16:11  pbartok
14793
14794         * Control.cs:
14795           - Added incomplete dock layout code
14796           - Added support for mouse wheel
14797
14798 2004-08-09 16:09  pbartok
14799
14800         * XplatUIX11.cs:
14801           - Added handling for middle and right mousebutton
14802           - Added handling for mouse wheel
14803           - Added handling for key state and mouse state and position
14804           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
14805           messages
14806
14807 2004-08-09 15:40  jackson
14808
14809         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
14810           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
14811           checkin
14812
14813 2004-08-09 15:37  jackson
14814
14815         * StatusBar.cs: Initial implementation of StatusBar
14816
14817 2004-08-09 15:36  jackson
14818
14819         * ITheme.cs: Add support for drawing status bar and getting status
14820           bar item sizes
14821
14822 2004-08-09 15:35  pbartok
14823
14824         * MouseButtons.cs:
14825           - Fixed values
14826
14827 2004-08-09 15:34  jackson
14828
14829         * ThemeWin32Classic.cs: Add support for drawing status bar and get
14830           status bar item sizes
14831
14832 2004-08-09 15:21  jackson
14833
14834         * ThemeWin32Classic.cs: Use known colors for default control
14835           colours
14836
14837 2004-08-09 15:12  jackson
14838
14839         * ThemeWin32Classic.cs: Make the default font static, it is static
14840           in control so this doesn't change functionality and creating fonts
14841           is sloooooow.
14842
14843 2004-08-09 14:56  pbartok
14844
14845         * X11Structs.cs:
14846           - Added GrabMode enum
14847
14848 2004-08-09 14:55  pbartok
14849
14850         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
14851           - Removed Run method, was only required for initial development
14852
14853 2004-08-09 14:51  pbartok
14854
14855         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
14856           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
14857           capture
14858
14859 2004-08-09 13:48  pbartok
14860
14861         * XplatUIX11.cs:
14862           - Fixed default sizing for child windows
14863
14864 2004-08-09 12:56  pbartok
14865
14866         * XplatUIX11.cs:
14867           - Added generation of WM_DESTROY message
14868           - Added handling of window manager induced shutdown
14869
14870 2004-08-09 11:31  jackson
14871
14872         * ThemeWin32Classic.cs: New names for control properties
14873
14874 2004-08-09 11:25  jackson
14875
14876         * Control.cs: Use new color names
14877
14878 2004-08-09 11:02  jackson
14879
14880         * XplatUI.cs: Get default window properties from the theme
14881
14882 2004-08-09 11:01  jackson
14883
14884         * ITheme.cs: The theme engine now controls default window
14885           properties
14886
14887 2004-08-09 11:00  jackson
14888
14889         * ThemeWin32Classic.cs: Add default window color properties
14890
14891 2004-08-09 10:17  jackson
14892
14893         * ThemeWin32Classic.cs: Use correct default back color
14894
14895 2004-08-09 10:05  jackson
14896
14897         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
14898           the theme now.
14899
14900 2004-08-09 09:56  jackson
14901
14902         * XplatUI.cs: Remove defaults, these are handled by the theme now.
14903
14904 2004-08-09 09:54  jackson
14905
14906         * Control.cs: Get default properties from the theme.
14907
14908 2004-08-09 09:53  jackson
14909
14910         * ITheme.cs: Themes now handle default control properties
14911
14912 2004-08-09 09:53  jackson
14913
14914         * ThemeWin32Classic.cs: Themes now handle default control
14915           properties so coloring will be consistent
14916
14917 2004-08-08 16:54  jordi
14918
14919         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
14920
14921 2004-08-08 15:08  jordi
14922
14923         * XplatUIX11.cs: fixes keyboard crash
14924
14925 2004-08-08 13:47  jordi
14926
14927         * Label.cs: add cvs header info
14928
14929 2004-08-08 12:09  jackson
14930
14931         * ThemeWin32Classic.cs: Add pen_buttonface
14932
14933 2004-08-08 11:52  jordi
14934
14935         * Label.cs, LinkLabel.cs: [no log message]
14936
14937 2004-08-08 11:34  jordi
14938
14939         * ThemeWin32Classic.cs: Use Windows Standard Colours
14940
14941 2004-08-07 17:32  jordi
14942
14943         * TrackBar.cs: throw exceptions of invalid enums values
14944
14945 2004-08-07 17:31  jordi
14946
14947         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
14948           draw method name
14949
14950 2004-08-07 16:56  jackson
14951
14952         * HorizontalAlignment.cs: Initial checkin
14953
14954 2004-08-07 13:16  jordi
14955
14956         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
14957           methods
14958
14959 2004-08-07 13:05  jordi
14960
14961         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
14962           GetSysColor defines
14963
14964 2004-08-06 18:01  pbartok
14965
14966         * ThemeWin32Classic.cs:
14967           - Fixed some rounding issues with float/int
14968
14969 2004-08-06 18:00  jackson
14970
14971         * DockStyle.cs, AnchorStyles.cs:
14972
14973                   Add flags and serializable attributes.
14974
14975 2004-08-06 17:46  pbartok
14976
14977         * XplatUIX11.cs:
14978           - Implemented GetParent
14979
14980 2004-08-06 17:18  pbartok
14981
14982         * TrackBar.cs:
14983           - Fixed some rounding issues with float/int
14984
14985 2004-08-06 17:17  pbartok
14986
14987         * X11Structs.cs, XplatUIX11.cs:
14988           - Fixed Refresh and Invalidate
14989
14990 2004-08-06 15:30  pbartok
14991
14992         * Control.cs, X11Structs.cs, XplatUIX11.cs:
14993           - Fixed recursive loop when resizing
14994           - Improved/fixed redrawing on expose messages
14995
14996 2004-08-06 09:53  jordi
14997
14998         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
14999           keyboard navigation
15000
15001 2004-08-06 08:02  pbartok
15002
15003         * X11Structs.cs, XplatUIX11.cs:
15004           - Fixed reparenting
15005           - Fixed window border creation
15006
15007 2004-08-05 15:38  pbartok
15008
15009         * XplatUIX11.cs:
15010           - Attempted fix for reparenting problems
15011
15012 2004-08-04 15:14  pbartok
15013
15014         * Control.cs:
15015           - Fixed Invalidation bug (calculated wrong client area)
15016           - Added ClientSize setter
15017
15018 2004-08-04 15:13  pbartok
15019
15020         * Form.cs:
15021           - Added AutoScale properties
15022
15023 2004-08-04 15:13  pbartok
15024
15025         * SWF.csproj:
15026           - Added latest files
15027
15028 2004-08-04 14:11  pbartok
15029
15030         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
15031           XplatUIX11.cs:
15032           - Added Invalidate handling
15033
15034 2004-08-03 17:09  jordi
15035
15036         * XplatUIDriver.cs: fixes spelling mistake
15037
15038 2004-07-27 09:53  jordi
15039
15040         * TrackBar.cs: fixes trackbar events, def classname, methods
15041           signature
15042
15043 2004-07-27 09:29  jordi
15044
15045         * ScrollBar.cs: fixes scrollbar events
15046
15047 2004-07-27 04:38  jordi
15048
15049         * Control.cs: changes to be able to run winforms samples
15050
15051 2004-07-26 11:42  jordi
15052
15053         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
15054           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
15055
15056 2004-07-26 05:41  jordi
15057
15058         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
15059           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
15060           implementation
15061
15062 2004-07-22 09:22  jordi
15063
15064         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
15065           check link overlapping, implement events, and fixes
15066
15067 2004-07-21 10:28  jordi
15068
15069         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
15070
15071 2004-07-21 10:19  jordi
15072
15073         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
15074           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
15075           LinkLabelLinkClickedEventArgs.cs,
15076           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
15077           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
15078           implementation
15079
15080 2004-07-19 13:09  jordi
15081
15082         * Control.cs, Label.cs: label control re-written: added missing
15083           functionlity, events, and properties
15084
15085 2004-07-19 10:49  jordi
15086
15087         * Control.cs: fixes SetBounds logic
15088
15089 2004-07-19 01:29  jordi
15090
15091         * Control.cs: Call RefreshWindow only if the window has created
15092
15093 2004-07-15 14:05  pbartok
15094
15095         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
15096           - Implemented ImageList and ImageList.ImageCollection classes
15097           - Added ColorDepth enumeration
15098           - Updated SWF VS.Net project
15099
15100 2004-07-15 11:06  jordi
15101
15102         * XplatUIStructs.cs: added MsgButons enum
15103
15104 2004-07-15 11:03  jordi
15105
15106         * Control.cs: added basic mouse handeling events
15107
15108 2004-07-15 03:38  jordi
15109
15110         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
15111           Vertical TrackBar control implementation
15112
15113 2004-07-13 09:33  jordi
15114
15115         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
15116
15117 2004-07-13 09:31  jordi
15118
15119         * Control.cs, Form.cs: commit: new properties and fixes form size
15120           problems
15121
15122 2004-07-09 14:13  miguel
15123
15124         * ProgressBar.cs: Spelling
15125
15126 2004-07-09 11:25  pbartok
15127
15128         * ProgressBar.cs:
15129           - Removed usage of Rectangle for drawing. Miguel pointed out it's
15130           faster
15131
15132 2004-07-09 11:17  miguel
15133
15134         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
15135
15136                 * ProgressBar.cs: Fixed spelling for `block'
15137
15138                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
15139                 style guidelines.
15140
15141                 Avoid using the += on rect.X, that exposed a bug in the compiler.
15142
15143 2004-07-08 23:21  pbartok
15144
15145         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
15146           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
15147           BaseCollection.cs, Binding.cs, BindingContext.cs,
15148           BindingMemberInfo.cs, BindingsCollection.cs,
15149           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
15150           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
15151           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
15152           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
15153           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
15154           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
15155           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
15156           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
15157           FrameStyle.cs, GiveFeedbackEventArgs.cs,
15158           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
15159           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
15160           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
15161           InputLanguageChangedEventArgs.cs,
15162           InputLanguageChangedEventHandler.cs,
15163           InputLanguageChangingEventArgs.cs,
15164           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
15165           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
15166           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
15167           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
15168           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
15169           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
15170           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
15171           QueryAccessibilityHelpEventArgs.cs,
15172           QueryAccessibilityHelpEventHandler.cs,
15173           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
15174           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
15175           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
15176           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
15177           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
15178           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
15179           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
15180           XplatUIX11.cs, lang.cs:
15181           - Initial check-in
15182