2006-07-12 Alexander Olk <alex.olk@googlemail.com>
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
2
3         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
4         * FolderBrowserDialog.cs: Almost a complete rewrite.
5           - Better support for Environment.Specialfolders
6           - Added support for MWFVFS
7           - Made setting SelectedPath work
8
9 2006-07-12  Jackson Harper  <jackson@ximian.com>
10
11         * Control.cs: Optimze getting all the controls.
12
13 2006-07-11  Jackson Harper  <jackson@ximian.com>
14
15         * ContainerControl.cs: Override SETFOCUS in the container control,
16         so that it is not selected on mouse click.
17
18 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
19
20         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
21           Hopefully we will have a better way once all of focus is complete.
22
23 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
24
25         * ThemeWin32Classic.cs: Commented out some debug code and fixed
26           a compile error with csc.
27
28 2006-07-11  Jackson Harper  <jackson@ximian.com>
29
30         * Control.cs: When hiding a control only select the next control
31         if the current control was focused.
32         - Don't handle enter/leave when setting/killing focus, this is
33         done by the container control.
34         - Remove is_selected, it's not needed anymore.
35         - Add utility methods for selecting a child control, and for
36         firing the Enter/Leave events.
37         * ContainerControl.cs: When a control is activated fire the
38         enter/leave events.
39         - Don't wrap when processing the tab key, so that focus can be
40         moved outside of the container.
41         - Use the correct active control
42
43 2006-07-11  Jackson Harper  <jackson@ximian.com>
44
45         * ComboBox.cs: Remove some debug code that was blinding me.
46         * UpDownBase.cs: These controls actually aren't implicit, they are
47         visible to the user.
48
49 2006-07-10  Chris Toshok  <toshok@ximian.com>
50
51         * DataGridTableStyle.cs: just check if the property type is bool.
52         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
53         Don't use CanRenderType.
54
55         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
56         if our text == NullText.  Remove CanRenderType.
57
58         * DataGridBoolColumn.cs: nuke CanRenderType.
59
60         * DataGrid.cs: reenable some code to end the current edit inside
61         of set_CurrentCell.  This fixes the other 1.1.16 regression.
62         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
63         Also, remove the visible_row_count arg from CalcRowHeaders, since
64         we don't need to worry about the actual height of the area.
65
66 2006-07-10  Chris Toshok  <toshok@ximian.com>
67
68         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
69         mode, just return.
70
71         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
72         the real sense of the IsInEditOrNavigateMode property (true =
73         navigate, false = edit).  Also, update OnKeyPress to reflect this.
74
75         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
76         column style exists, we still need to set its property descriptor
77         to match up with our list manager.
78
79 2006-07-10  Chris Toshok  <toshok@ximian.com>
80
81         * ThemeWin32Classic.cs: implement the new row/header painting
82         approach.  The parent row painting will likely go away and
83         replaced with label controls, but the rest seems to work ok (and
84         efficiently).
85
86         * Theme.cs: change the way we draw datagrid rows.  we don't draw
87         the row headers as a block now.  Instead we draw them in the
88         normal draw-row loop.  Add some calls for drawing parent rows and
89         relation rows.
90
91         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
92         a default table style.  Set the defaults from ThemeEngine.Current,
93         not SystemColors.  Fix lots of misc issues with property setters.
94
95         * DataGrid.cs: move loads of style information out of this class
96         as it's being duplicated with DataGridTableStyle.  keep track of a
97         special DataGridTableStyle for the properties we used to mirror
98         here.  Switch all the style properties to access this table style
99         instead of instance fields of this class.  Also add a internal
100         class to represent parent rows (more needs to be stored here, like
101         the selection state from the parent table, as well as the
102         expansion state.)  Also, for datasources with relations, do the
103         right thing for collapse/expand, and add support for the
104         navigation/parent row buttons.
105
106         Lastly, fix the crash in the 1.1.16 build.
107
108         * GridTableStylesCollection.cs: make the explicit interface
109         implementations call the class's methods as opposed to duplicating
110         them.
111
112         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
113         0 so the text doesn't jump around when we move the cursor.
114
115 2006-07-10  Jackson Harper  <jackson@ximian.com>
116
117         * TextBoxBase.cs:
118         * ListBox.cs: Match MS's ToString (this makes debugging focus
119         stuff infinitely easier).
120
121 2006-07-10  Jackson Harper  <jackson@ximian.com>
122
123         * Control.cs (SelectNextControl): When checking the control's
124         parent use this instead of ctrl.parent so that null can be passed
125         to SelectNextControl. (I have unit tests for this).
126         - Remove unused var.
127
128 2006-07-10  Chris Toshok  <toshok@ximian.com>
129
130         * CurrencyManager.cs: correct one regression, the removal of the
131         finalType field.  Also, add a MonoTODO on CanAddRows, implement
132         Refresh() correctly, and fix some event emission in
133         ListChangedHandler.
134
135 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
136
137         * FileDialog.cs: Don't use brackets for new folders if they exist
138           under *nix. Instead use -(number of existing folders +1).
139
140 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
141
142         * FileDialog.cs:
143           - Fixed really nasty bug #78771
144           - Don't block the whole GUI when reading directories with a lot of
145             entries. Use an other thread instead and call BeginInvoke to
146             update the ListView in MWFFileView
147
148 2006-07-07  Chris Toshok  <toshok@ximian.com>
149
150         * Control.cs (Dispose): release any Capture when disposing.
151
152 2006-07-07  Chris Toshok  <toshok@ximian.com>
153
154         * LinkLabel.cs (Select): if we chain up to the parent, set
155         focused_index to -1 so we'll search for the first available link
156         the next time the user tabs into us.  Also, if the direction is
157         backward and focused_index == -1, start the search from the last
158         element.
159
160 2006-07-07  Chris Toshok  <toshok@ximian.com>
161
162         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
163         is beyond the end of the text, don't do anything.
164         (CreateLinkPieces): set our ControlStyles.Selectable based on
165         whether or not we have any links.
166         (Link.Invalidate): use a loop instead of foreach.
167         (Link.set_Start): null out owner.sorted_links so it'll be
168         recreated by CreateLinkPieces.
169
170 2006-07-06  Chris Toshok  <toshok@ximian.com>
171
172         * LinkLabel.cs: revert the SetStyle change.
173
174 2006-07-06  Chris Toshok  <toshok@ximian.com>
175
176         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
177         (OnEnableChanged): s/Refresh/Invalidate
178         (OnGotFocus): if we have a focused index already, refocus it (so
179         if we mouse out/in to the window it'll focus the right link).
180         (OnKeyDown): move the tab handling out of here.
181         (OnLostFocus): don't set focused_index to -1, so we can refocus it
182         when we lose focus.
183         (OnMouseDown): don't Capture here - Control handles it.  Also,
184         focus the active link.
185         (OnMouseUp): don't deal with Capture.
186         (OnPaintBackgroundInternal): remove.
187         (OnTextAlignChanged): CreateLinkPieces before calling the
188         superclass's method.
189         (OnTextChanged): call CreateLinkPieces before calling superclass's
190         method.
191         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
192         move around.
193         (Select): implement this, moving the selection between different
194         links, and call parent.SelectNextControl if we don't have another
195         link to focus in the given direction.
196         (CreateLinkPieces): call Invalidate instead of Refresh.
197         
198 2006-07-06  Chris Toshok  <toshok@ximian.com>
199
200         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
201         new LinkLabel internals.
202
203         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
204         over pieces looking for active/focused/etc links.  also, deal with
205         runs of text (and links) with embedded \n's in them, and use
206         MeasureCharacterRanges instead of MeasureString to figure out the
207         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
208         two-step.
209
210 2006-07-04  Jackson Harper  <jackson@ximian.com>
211
212         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
213         XKB or key auto repeat, do it manually.  Without key auto repeat,
214         when a key is held down we get key press, key release, key press,
215         key release, ... with auto repeat we get key press, key press, key
216         press ..., and then a release when the key is actually released.
217
218 2006-07-03  Jackson Harper  <jackson@ximian.com>
219
220         * TabControl.cs:
221         * ThemeWin32Classic.cs: Tabs do not obey normal background color
222         rules, they are always control color regardless of the background
223         color.
224
225 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
226
227         * FileDialog.cs: Added internal class MWFConfig.
228           Removed Registry support and replaced it with support for the new
229           MWFConfig class. See MWFConfig comments for more information.
230
231 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
232
233         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
234           rectangle. Added some patches from eno from bug #78490 and fixed
235           the arrow position for small up and down CPDrawScrollButtons.
236
237 2006-06-30  Jackson Harper  <jackson@ximian.com>
238
239         * InternalWindowManager.cs: Remove some debug code.
240         * Form.cs: When an MdiParent is set to null, the window is
241         "detatched" and becomes a normal window.
242         * MdiClient.cs: Don't bring the new child form to the front until
243         it is activated (setting it as active does this), this makes the
244         previously active forms titlebar get redrawn as inactive.
245
246 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
247
248         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
249           with later controls
250
251 2006-06-29  Mike Kestner  <mkestner@novell.com>
252
253         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
254         arrow in keynav state.  Fixes #78682.
255
256 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
257
258         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
259           order (fixes #78393)
260
261 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
262
263         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
264           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
265           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
266           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
267           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
268           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
269           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
270           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
271           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
272           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
273           enumerations (FlagsAttribute, SerializableAttribute, added/removed
274           values)
275
276 2006-06-28  Mike Kestner  <mkestner@novell.com>
277
278         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
279
280 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
281
282         * PropertyGrid.cs,
283           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
284           item lines from other area (It also makes BackColor consistent and
285           compatible with .NET). Fixed bug #78564.
286
287 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
288
289         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
290         Patch from Eno for #78555.
291
292 2006-06-27  Chris Toshok  <toshok@ximian.com>
293
294         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
295
296         * DataGridColumnStyle.cs: same.
297
298         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
299         
300         * DataGridDrawingLogic.cs: nuke.
301
302 2006-06-27  Chris Toshok  <toshok@ximian.com>
303
304         * DataGridTableStyle.cs: clean up the constructors, and build the
305         list of child relations for this table.  I have no idea if this is
306         where we should be doing it (it probably isn't), but since we're
307         already iterating over the properties..
308
309         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
310         struct and array for keeping track of row information, similar to
311         what's shown in a hack on
312         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
313
314         * Theme.cs: be consistent about the naming of DataGrid methods,
315         prefering ColumnWidths and RowHeights over columnsWidths and
316         RowsHeights.
317
318         * ThemeWin32Classic.cs: same, and also add support for variable
319         sized rows (and the +/- expansion icons for related rows).
320
321 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
322
323         * TextBoxBase.cs: Applied Eno's patch from #78660
324
325 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
326
327         * Form.cs (ScaleCore): We don't want to scale our form if it's
328           state is minimized or maximized, but we still need to scale our
329           child windows. Also, added try/finally block to ensure layout
330           gets reset (Fixes #78697)
331
332 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
333
334         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
335
336 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
337
338         * Form.cs: Fixed c+p error and added check to resize form if minimum
339           size is bigger than current size (Fixes #78709)
340
341 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
342
343         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
344
345 2006-06-26  Mike Kestner  <mkestner@novell.com>
346
347         * ComboBox.cs: only do Keypress handling in the combo when there  
348         are items in the collection. Fixes #78710.
349
350 2006-06-26  Chris Toshok  <toshok@ximian.com>
351
352         * Binding.cs: make this work bi-directionally.  also, clear up
353         other mixups between Push/Pull Data (e.g. we're supposed to pull
354         data when validating).
355
356         * BindingManagerBase.cs: trim some fully qualified collection
357         types.
358
359         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
360
361 2006-06-23  Chris Toshok  <toshok@ximian.com>
362
363         * PropertyManager.cs: It appears (according to the unit tests)
364         that PropertyManager doesn't use
365         PropertyDescriptor.AddValueChanged to track propery value changes
366         in its datasource, but uses the same scheme as Binding, where it
367         looks for a <Property>Changed event and binds to it.
368
369         Also, according to the docs, IsSuspended always returns false for
370         a property manager with a non-null datasource.
371
372 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
373
374         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
375           need to update the actual DialogResult. (Fixes #78613)
376
377 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
378
379         * Form.cs (ShowDialog): Release any captures before running the
380           new message pump (fixes #78680)
381
382 2006-06-22  Mike Kestner  <mkestner@novell.com>
383
384         * ListView.cs: Layout column widths properly in details mode even 
385         if HeaderStyle.None is set.  Fixes #78691.
386
387 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
388
389         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
390
391 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
392
393         * Control.cs (ContainsFocus): Using new driver method to get focused
394           window, instead of trying to use internal tracking var, which can
395           recursion issues (Fixes #78685)
396         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
397           XplatUIWin32.cs: Added GetFocus method to return focused window
398
399 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
400
401         * ColorDialog.cs: when the mouse button is pressed inside the color
402         matrix, don't let the cursor move out of it until the button is
403         released, which is the behavior on windows. Changed 'colours' by
404         'colors' to use the same word consistently.
405
406 2006-06-21  Chris Toshok  <toshok@ximian.com>
407
408         * DataGrid.cs: add in some basic navigation stuff (navigating to a
409         child relation and back, using a stack).  Also, remove
410         GetDataSource and the code that calls it - it's not needed.  Also,
411         track CurrencyManager.ListName's removal.
412
413 2006-06-21  Chris Toshok  <toshok@ximian.com>
414
415         * CurrencyManager.cs: push some of the original type checking from
416         BindingContext.CreateBindingManager to here, and remove some of
417         the finalType stuff.  Need more tests to make sure I've got the
418         ListName part right, and we might need more in SetDataSource.
419
420         * PropertyManager.cs: add a ctor that takes just the datasource,
421         and no property name.  Make SetDataSource work with a null
422         property_name, and make Current return the data_source if the
423         property descriptor is null.  this makes 'string foo = "hi";
424         BindingContext[foo].Current' return "hi" as it should.
425
426         * RelatedCurrencyManager.cs: make this code more generic - there's
427         no reason the parent manager has to be CurrencyManager, and
428         there's no reason to pass the DataRelation.  It suffices to use a
429         BindingManagerBase and PropetyDescriptor.
430
431         * RelatedPropertyManager.cs: make a similar change here.
432         
433         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
434         flower I knew it could be.
435
436 2006-06-20  Chris Toshok  <toshok@ximian.com>
437
438         * PropertyManager.cs: the PropertyChangedHandler is invoked when
439         data in the source has changed and we need to update the control,
440         so s/PullData/PushData.
441
442         * CurrencyManager.cs: Refresh is meant to update the control from
443         data in the datasource.  So, s/PullData/PushData.
444
445         * BindingContext.cs: add more ugliness (we weren't handling the
446         case where data_source = DataTable and data_member = column_name).
447
448         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
449         from the perspective of the datasource.  PullData pulls from the
450         control, PushData pushes to the control.
451
452 2006-06-20  Chris Toshok  <toshok@ximian.com>
453
454         * BindingContext.cs: rewrite the CreateBindingManager code to
455         handle navigation paths more or less properly.  This could
456         definitely stand some more work, in particular to push the
457         recursion up to the toplevel.  But that relies on fixes in other
458         places (System.Data comes to mind).
459
460         Also, move to a flat hashtable (and encode the twolevel nature of
461         the dictionary into the hash key).  This lets us implement the
462         IEnumerable.GetEnumerator method.
463
464         * RelatedCurrencyManager.cs: new class.  Update our view based on
465         our relation and our parent CurrencyManager's position.
466
467         * CurrencyManager.cs: split out some logic from the ctor into
468         SetView, so it can be called from the new RelatedCurrencyManager
469         subclass.
470
471         * RelatedPropertyManager.cs: new class.  Update our datasource
472         based on the position of our parent CurrencyManager.
473
474         * PropertyManager.cs: split out some logic from the ctor into
475         SetDataSource, so it can be called from the new RelatedDataSource
476         subclass.  Also, make the Current getter return the value
477         of the PropertyDescriptor, not the data_source.
478
479         * Binding.cs: no need to duplicate the string splitting code here.
480
481 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
482
483         * Control.cs:
484           - set_Enabled: OnEnabledChanged is not called if the inherited state 
485             of the control is not altered, even though  we might be changing the
486             internal state of the control (#78458)
487           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
488             OnEnabledChanged, to allow easy altering of any child window state
489           - OnEnabledChanged: Added code to enable/disable driver window state
490           - OnParentEnabledChanged: Instead of firing the event, call 
491             OnEnabledChanged, which will fire the event and also a) set driver
492             window state and pass the enabled state to any grandchildren (#78458)
493
494 2006-06-19  Jackson Harper  <jackson@ximian.com>
495
496         * InternalWindowManager.cs: We don't set the cursor explicitly
497         thats done via the response to NCHITTESTs.
498         - Don't need to adjust for titlebar heights anymore, the
499         coordinates are coming in the correct coordinates now (see peters
500         last patch).
501
502
503 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
504
505         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
506           being translated relative to whole window, instead of client window.
507           That caused broken offsets on mouseclick (and caused gas for our
508           InternalWindowManager)
509
510 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
511
512         * TextControl.cs:
513           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
514           - Undo(): Added replay of cursor move on DeleteChars action; added
515             calling Undo() again if a recorded cursor move is invalid (to
516             ensure that some action is performed on Undo)
517         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
518
519 2006-06-16  Jackson Harper  <jackson@ximian.com>
520
521         * MdiClient.cs: Instead of just sizing maximized windows when
522         there is a resize we also have to adjust the Y of minimized
523         windows, so they stay pinned to the bottom of the mdi container.
524         - Eliminate separate tracking of the active control, we can just
525         get this from the controls collection.
526         - Paint the decorations for the newly activated titlebar so we get
527         a pretty blue bar.
528         * InternalWindowManager.cs:
529         * ThemeWin32Classic.cs: Minimized windows get all three buttons
530         even if they are a tool window.
531         
532 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
533
534         * TextControl.cs (Undo): Handle non-existent cursor locations in the
535           undo buffer, these can happen when text was deleted and the cursor
536           was recorded first. Since we will also have a recorded cursor
537           after the delete this is not an issue. (Fixes #78651)
538
539 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
540
541         * AccessibleObject.cs: Remove dependence on Control.is_selected;
542           instead properly track control states internally (allows us to
543           remove is_selected from Control)
544
545 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
546
547         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
548         whose width is not a multiple of 8.
549
550 2006-06-13  Jackson Harper  <jackson@ximian.com>
551
552         * MdiClient.cs:  Only maximize the next child if the current one
553         is maximized.
554
555 2006-06-13  Chris Toshok  <toshok@ximian.com>
556
557         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
558         modified.  Also, guard against grid or grid_drawing being null in
559         Invalidate.
560
561         * DataGrid.cs: Reformat tons of getters/setters.  In the
562         DataMember setter, just call SetNewDataSource instead of
563         duplicating some of its functionality.  In SetNewDataSource, don't
564         check ListManager for null, since the property getter creates the
565         object if needed.
566
567         * DataGridTableStyle.cs: don't set TableStyle or call
568         SetDataGridInternal on the column here, it's done in
569         GridColumnStylesCollection.Add.
570
571         * GridColumnStylesCollection.cs: fix all the explicit interface
572         implementations to just call our methods.  Nuke AddInternal() and
573         move the body of it to Add().  Also, add a call to
574         column.SetDataGridInternal to Add().
575
576         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
577         base()+duplicate code.  Also, use the Format property instead of
578         format to generate an Invalidate ala MS.  Lastly, create the
579         textbox here, unconditionally.
580         (set_Format): call Invalidate.
581         (get_TextBox): no need to call EnsureTextBox.
582         (Commit): remove the message box.
583         (Edit) remove the call to EnsureTextBox.
584         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
585         (EnterNullValue): no need to check textbox for null.
586         (HideEditBox): no need to check textbox for null.
587         (SetDataGridInColumn): add the textbox to the grid's controls.
588         (EnsureTextBox): nuke.
589         
590 2006-06-13  Jackson Harper  <jackson@ximian.com>
591
592         * MdiWindowManager.cs: Hook up to the maximized menus paint event
593         and redraw the buttons when needed. Unhook when the window is
594         unmaximized.
595         * MainMenu.cs: Add an internal Paint event, the mdi window manager
596         needs this so that it can redraw its buttons when the menu is
597         repainted.
598         * InternalWindowManager.cs:
599         * Form.cs: The method order has changed for DrawMaximizedButtons,
600         so that it can be a PaintEventHandler.
601         
602 2006-06-13  Jackson Harper  <jackson@ximian.com>
603
604         * MdiClient.cs: When we close a maximized mdi window, the next mdi
605         window is activated and maximized, even if it wasn't before.
606         - When  a new window is activated repaint the decorations of the
607         old one, so that it no longer has the Active "look" (the blue
608         titlebar).
609         * InternalWindowManager.cs: Open up CreateButtons to base classes
610         so they can recreate the buttons on state changes.
611         - If a window is maximized give it all three buttons
612         * MdiWindowManager.cs: Create the titlebar buttons when the state
613         is changed, this is needed because a toolwindow will not have all
614         three buttons until it is maximized.
615
616 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
617
618         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
619           Fixed bug #78609.
620
621 2006-06-12  Jackson Harper  <jackson@ximian.com>
622
623         * KeysConverter.cs: Make sure we handle the Ctrl special case
624         if its the only key.
625         
626 2006-06-12  Jackson Harper  <jackson@ximian.com>
627
628         * Theme.cs: Add a method to get the size of a managed window
629         toolbar button.
630         * InternalWindowManager.cs: Remove the ButtonSize property, this
631         should be retrieved from the theme.
632         * MdiWindowManager.cs: Get the button size from the theme
633         * ThemeWin32Classic.cs: Make the method to get the managed window
634         titlebar button size public.
635         - Handle the different button sizes of maximized toolwindows
636         (should match any maximized window).
637         - Get the titlebar height from the theme, not the WM (which gets
638         it from the theme).
639
640 2006-06-12  Jackson Harper  <jackson@ximian.com>
641
642         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
643         event down to the mdi window manager.
644         - Expose some extra stuff to base classes
645         - Make sure to end the Capture on an NC Mouse up, so that we can
646         get double clicks properly, and the sizing doens't stick.
647         - When doing PointToClient contain it in the workable desktop
648         area, this prevents windows from changing size when the cursor is
649         pulled outside of the working area while sizing.
650         * MdiWindowManager.cs: When we get a double click maximize the
651         window.
652         - Reset the cursor after handling mode changes.
653
654 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
655
656         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
657           current desktop, instead of just assuming a 0, 0 origin. This
658           is needed for our internal window manager, to know the top
659           margin of the desktop
660
661 2006-06-12  Chris Toshok  <toshok@ximian.com>
662
663         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
664         we need this to get rid of the selected background in the bool
665         column.
666         (CancelEditing): move the ConcedeFocus call to above the Abort
667         call.  Also, set is_changing to false and invalidate the row
668         header if we were changing before.
669         (ProcessKeyPreviewInternal): remove, since noone outside this
670         class calls it anymore.  Roll the code into ProcessKeyPreview.
671         (EndEdit): remove the internal version.
672         (InvalidateCurrentRowHeader): make private.
673
674         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
675         Keys.Escape handling (and with it the last call to
676         DataGrid.EndEdit from outside the class.)
677
678
679 2006-06-12  Chris Toshok  <toshok@ximian.com>
680
681         * DataGridTextBox.cs (.ctor): isedit defaults to false.
682         (OnKeyPress): set isedit to true.
683         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
684         already handled by the grid.
685
686         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
687         right.  ugh.
688         (set_DataSource): SetDataSource always returns true, so stop
689         putting it in an if statement.
690         (EndEdit): get rid of some {}'s
691         (ProcessGridKey): return true in case Keys.Escape.
692         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
693         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
694         PositionChanged, stopped connecting to CurrentChanged.
695         (GetDataSource): simplify this a bunch.
696         (SetDataSource): change return type from bool to void.
697         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
698         to this, and make sure we don't set ListManager.Position inside
699         set_CurrentCell.
700         (OnListManagerItemChanged): if we're passed an actual index,
701         redraw that row.
702
703         * CurrencyManager.cs (set_Position): don't call PullData here.
704
705 2006-06-09  Jackson Harper  <jackson@ximian.com>
706
707         * TreeNode.cs:  Recalculate the visible order before doing the
708         Expand/Collapse Below calls, because those calls generate an
709         expose.
710         - Reduce calls to the TreeView property, which is mildly expensive
711         by using a local var.
712         * Form.cs: Layout the MDI child windows when creating the parent
713         form.
714         - Don't use the internal constructor anymore
715         * MdiClient.cs: use the parent form width/height (if available)
716         when laying out the child windows, we do this because the
717         mdiclient isn't docked yet when the initial layout is done.
718         - Don't need an internal constructor anymore.
719
720 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
721
722         * FileDialog.cs: handle access errors when trying to create a folder
723         or changing to a directory. No need to initialize out parameters.
724
725 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
726
727         * FileDialog.cs: Append a number when creating a new folder if the
728           folder already exists (use parenthesis instead of square brackets)
729
730 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
731
732         * FileDialog.cs:
733           - Disabled registry support for windows and added better registry
734             error checking for other systems (need to investigate why it
735             works perfectly on my system)
736           - If a folder already exist show an error MessageBox instead of
737             trying to create an indexed name.
738           - Fixed a non intentional typo.
739
740 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
741
742         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
743
744 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
745
746         * FileDialog.cs: When creating a new folder don't crash if the
747           folder already exists.
748
749 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
750
751         * FileDialog.cs: Allmost a complete rewrite.
752           - added a "virtual" file system that handles the differences
753             between unix and windows file systems (especially the directory
754             structure). Moved most of the directory and file handling code
755             into the vfs.
756             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
757             UnixFileSystem and FSEntry.
758           - Recently used folder/directory, size, location and used file names
759             (file name ComboBox) are now stored in the registry and get read
760             before the dialog shows up (fixes part 6 of bug #78446).
761           - Creation of new folders/directories is now possible (context menu
762             or ToolBar). Added TextEntryDialog for this that fills in the gap
763             until ListView.LabelEdit works.
764           - Fixed cursor handling (bug #78527) and focus handling for
765             PopupButtonPanel
766           - Various "Search in" ComboBox enhancements. The content of the
767             dropdown listbox now almost matches ms.
768           - Changed the behaviour when the user switches to SpecialFolder
769             Recent to show the ListView in View.Details.
770           - Beside using the ToolBar to change the View property of the
771             file ListView it is now possible to use the context menu too.
772
773 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
774
775         * ComboBox.cs: Don't create a new ObjectCollection when an item
776           gets inserted. Just insert the item in the existing object_items
777           ArrayList.
778
779 2006-06-08  Jackson Harper  <jackson@ximian.com>
780
781         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
782         that the treeview and root node checks are done also, this fixes a
783         regression i caused in the unit tests.
784
785 2006-06-07  Wade Berrier <wberrier@novell.com> 
786
787         * RichTextBox.cs: More ISO8859-1 -> unicode
788
789 2006-06-07  Mike Kestner  <mkestner@novell.com>
790
791         * ComboBox.cs : use items to hold highlight/selection so that
792         collection insertions don't require synchronization.
793
794 2006-06-07  Jackson Harper  <jackson@ximian.com>
795
796         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
797         routine.  We now always keep the sized edge at the cursor instead
798         of computing movement and adjusting rects.  There is one buglet
799         with this method though when the cursor is moved over area that
800         the window can not expand too (such as the toolbars on the desktop).
801
802 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
803
804         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
805         here. Fixes crash on startup in AlbumSurfer.
806
807 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
808
809         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
810           values
811
812 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
813
814         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
815         statement to avoid calling XNextEvent which will block if another thread
816         took the event that we were expecting. Fixes bug #78605.
817
818 2006-06-07  Mike Kestner  <mkestner@novell.com>
819
820         * ListView.cs : isolated checkbox clicking from the selection logic.
821         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
822
823 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
824
825         * Form.cs: Check that the value passed to Form.DialogResult
826         is a valid enum value.
827
828 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
829
830         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
831         Computer'. Clicking it in the network view goes to 'My Computer'.
832         Added CIFS filesystem type. Display the mount point of filesystems.
833         Avoid duplicate mount points (happens for me with CIFS);
834
835 2006-06-06  Jackson Harper  <jackson@ximian.com>
836
837         * InternalWindowManager.cs: Draw the maximized windows buttons
838         when resizing.
839
840 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
841
842         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
843         all other dialogs. Fixes bug #78585.
844
845 2006-06-06  Mike Kestner  <mkestner@novell.com>
846
847         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
848         Only invalidate checkbox on checkstate changes to avoid flicker.
849         * ListBox.cs : avoid unselect/select when clicking selected item.
850         avoid reselection flicker for already multiselected items.
851         Fixes #78382.
852
853 2006-06-06  Jackson Harper  <jackson@ximian.com>
854
855         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
856         the parent form so that the menu is removed if needed.
857
858 2006-06-06  Mike Kestner  <mkestner@novell.com>
859
860         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
861         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
862
863 2006-06-06  Mike Kestner  <mkestner@novell.com>
864
865         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
866
867
868 2006-06-06  Jackson Harper  <jackson@ximian.com>
869
870         * Control.cs: Use the property (instead of the field) to get the
871         default cursor so it is instantiated correctly.
872         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
873         resizes so we need to manually repaint the window decorations here.
874         - Set the titlebar button locations as soon as they are created,
875         otherwise they are not set correctly on win32.
876         
877 2006-06-06  Chris Toshok  <toshok@ximian.com>
878
879         * CurrencyManager.cs (set_Position): call PullData before
880         OnCurrentChanged.
881         (AddNew): after calling IBindingList.AddNew, update our
882         listposition, and call OnCurrentChanged/OnPositionChanged (without
883         calling PullData).
884         (OnCurrentChanged): remove the call to PullData from here.
885         (OnItemChanged): remove the call to PushData from here.
886         (OnPositionChanged): change the test from == null to != null to
887         match the other methods.
888         (ListChangedHandler): the grossest part of the patch.  Implement
889         this such that it passes the unit tests in CurrencyManagerTest and
890         the output more or less matches that of MS's implementation.
891  
892 2006-06-06  Mike Kestner  <mkestner@novell.com>
893
894         * ListView.cs : only update check state on single click.
895         * ThemeWin32Classic.cs : fix focus drawing for details view without
896         fullrowselect.  Fixes #78454.
897         * XplatUIX11.cs : fix for double click emission.
898
899 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
900
901         * PropertyGridView.cs : Applied Atsushi's patch to fix
902         font dialog bug  (#78197).
903
904 2006-06-05  Jackson Harper  <jackson@ximian.com>
905
906         * TreeNode.cs: Compute the next node for expanding/collapsing
907         correctly. We now factor in nodes without a NextNode
908         correctly. (Fixes somes cases in nunit-gui).
909         * InternalWindowManager.cs: Set the bounds when updating the
910         virtual position of a tool window.
911         
912 2006-06-05  Chris Toshok  <toshok@ximian.com>
913
914         * DataGrid.cs: rename cached_currencymgr to list_manager.
915         (set_CurrentCell): move SetCurrentCell code here, and clean it up
916         some.
917         (CurrentRow, CurrentColumn): single accessors so we can make the
918         cursor movement code a lot easier to understand.
919         (CurrentRowIndex): implement this in terms of CurrentRow.
920         (BeginEdit): clean this up a bit.
921         (CancelEditing): sort out the is_editing/is_changing/is_adding
922         stuff a little.
923         (EndEdit): minor changes.
924         (OnKeyDown): add a comment about a (most likely) unnecessary
925         check.
926         (OnMouseDown): cancel editing when we click on a row header.  And
927         use the CurrentRow setter, not CurrentCell.
928         (ProcessDialogKey): directly call ProcessGridKey.
929         (UpdateSelectionAfterCursorMove): factor out this common block of
930         code (it's used everywhere that we move the cursor by updating row
931         or column).
932         (ProcessGridKey): pretty substantial overhaul.  Use the
933         CurrentRow/CurrentColumn properties to make the code a lot more
934         readable.  Only use the CurrentCell property when we have to
935         modify both row and column at once.  Tab behavior is still broken,
936         and Delete is untested.
937         (Select): if we have no selected rows, set selection_start to
938         @row.
939         (EditCurrentCell): rename EditCell this.  It was only ever invoked
940         with CurrentCell as the arg, so drop the arg and rename it.
941
942         * DataGridColumnStyle.cs: clean up the constructors a little, and
943         drop CommonConstructor().
944
945         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
946         actually get notified when the user hits it.
947         (ProcessKeyMessage): *substantially* simplify this method.
948         There's no reason (that I can see) for the textbox to be making
949         calls into the datagrid at all.  Remove all of them but the ones
950         for Enter handling.  those will take some more work.
951
952         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
953         calling HideEditBox.
954         (HideEditBox): if we have an active textbox, render it invisible
955         without causing a re-layout of the datagrid.
956
957 2006-06-05  Mike Kestner  <mkestner@novell.com>
958
959         * ListView.cs : fix NRE crasher when focuseditem is cleared by
960         collection changes by resetting it to Items[0].  Fixes #78587.
961
962 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
963
964         * MessageBox.cs: if the height of the text is larger than the icon_size,
965         use that. Fixes bug #78575.
966
967 2006-06-05  Jackson Harper  <jackson@ximian.com>
968
969         * TreeView.cs: Fix line drawing when scrolling.  To do this each
970         node is basically responsible for drawing its entire horizontal
971         area.  When drawing a node it draws its parent node lines if
972         needed.
973         - Adjust the clip area to the viewport rectangle
974         - Fix Left/Right key handling to match MS. (It expand/collapses
975         and moves to parents/first child but does not move selection to
976         sibling nodes).
977         - Fix SetTop to work with new bound calculation code
978         - When scrollbars are no longer needed we need to reset scrolling
979         vars and recalculate the visible order so the redraw is correct
980         * TreeNode.cs: We can't expand/collapse nodes with no children.
981
982 2006-06-03  John Luke  <john.luke@gmail.com> 
983
984         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
985         so the colors work without dev packages
986         
987 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
988
989         * Control.cs 
990           - Select: Implemented to just use activate. Seems to match MS 
991             behaviour closest. Documented to only do actual control walking 
992             based on it's parameters if in a container control so I moved 
993             the code there.
994           - Removed selection check logic from our internal Select() method
995         * ContainerControl.cs:
996           - Select: Moved selection logic from Control here, since MS documents
997             that containers obey the bool arguments. No longer calling base
998
999 2006-06-02  Jackson Harper  <jackson@ximian.com>
1000
1001         * TreeView.cs: If the selected node isn't changed when we get
1002         focus update the previously selected node so that we see the
1003         selection box.
1004
1005 2006-06-02  Mike Kestner  <mkestner@novell.com>
1006
1007         * ComboBox.cs: restructure grab and general mouse event handling.
1008         Make the composite control raise mouse events like it was a single
1009         control for leaves/enters/motion/up/down events.  fix dropdown list
1010         coordinate mangling and refactor it into the scrollbar subclass to
1011         reduce code duplication.  Fixes #78282 #78361 and #78457.
1012
1013 2006-06-02  Mike Kestner  <mkestner@novell.com>
1014
1015         * ScrollBar.cs: remove Capture setting/clearing, as it happens
1016         automatically in the Control.WndProc.
1017
1018 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1019
1020         * FileDialog.cs: fix crash when running SharpChess, which sets the
1021         FilterIndex to 2 with only one Filter.
1022
1023 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1024
1025         * ToolBar.cs: add SizeSpecified property.
1026         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
1027         try to figure out our real size, otherwise fallback to what the
1028         container says.
1029
1030 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
1031
1032         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
1033         * Control.cs (WndProc): MS always calls the DefWndProc to pass
1034           up the event
1035
1036 2006-06-01  Mike Kestner  <mkestner@novell.com>
1037
1038         * ListView.cs: revamp the focus management in ListView.  It still
1039         causes churn of LostFocus/GotFocus emissions on clicks, but it's
1040         better than not handling focus at all.  Will revisit when pdb feels
1041         the general focus handling is solid.  Fixes #78526.
1042
1043 2006-06-01  Jackson Harper  <jackson@ximian.com>
1044
1045         * TreeView.cs: Set the default border style in the constructor.
1046         - Move painting to use OnPaintInternal instead of capturing
1047         WM_PAINT, this is the correct way of doing things
1048         - UpdateBelow shouldn't invalidate the scrollbar area
1049         - Cap the top on update below in case the node was above the top
1050         of the viewport rectangle.
1051         - ExpandBelow and Collapse below need to obey Begin/End Update.
1052         * TreeNode.cs: Make is_expanded internal so the treenode
1053         collection can change it without firing the whole event chain.
1054         * TreeNodeCollection.cs: When clearing all the child nodes make
1055         sure to recalc the visible order.
1056         - Improve algo for remove the top node
1057
1058 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
1059
1060         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
1061           SendMessage directly calling window procedures, which in turn might
1062           call SetFocus()
1063
1064 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
1065
1066         * Control.cs: Don't handle WM_SETFOCUS if the same window already
1067           has focus (works around X11 sending a FocusIn after our SetFocus)
1068         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
1069
1070 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
1071
1072         * Mime.cs: Fix for the NET_2_0 build.
1073           NameValueCollection needs StringComparer now.
1074
1075 2006-05-31  Chris Toshok  <toshok@ximian.com>
1076
1077         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
1078         return (via an out parameter) the starting X of the column.
1079         (UpdateVisibleColumn): track change to FromPixelToColumn.
1080         (HitTest): add a ColumnResize case here.
1081         (DrawResizeLine): new function, probably poorly named.
1082
1083         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
1084         only need to keep one reference.
1085         (set_ListManager): same.
1086         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
1087         Also, add support for HitTestType.ColumnResize.
1088         (OnMouseMove): add column resize behavior here, and change the
1089         cursor to the correct one as we move around the datagrid.
1090         (OnMouseUp): terminate the column resize if we're resizing.
1091         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
1092         for the current cell.
1093         (ConnectListManagerEvents): use cached_currencymgr.
1094         (DisconnectListManagerEvents): fill this in, using
1095         cached_currencymgr.
1096         (SetCurrentCell): remove cached_currencymgr_events handling.
1097         (SetDataMember): only call DisconnectListManagerEvents if
1098         cached_currencymgr is != null.
1099         (SetDataSource): same.
1100         (OnListManagerCurrentChanged): cached_currencymgr_events ->
1101         cached_currencymgr.
1102
1103 2006-05-31  Jackson Harper  <jackson@ximian.com>
1104
1105         * BindingManagerBase.cs: Remove somedebug code that creeped into
1106         SVN.
1107         * TreeNode.cs: We get the indent level dynamically right now, so
1108         don't track it as a member.
1109         * TreeNodeCollection.cs: Make sure all nodes added to the list
1110         have parents, treeviews/topnodes setup properly.
1111         - Don't attempt to track indent level.
1112
1113 2006-05-30  Jackson Harper  <jackson@ximian.com>
1114
1115         * BindingContext.cs: Create the currency manager tables here.
1116         This allows us to more easily create null tables (when bad data
1117         members are used), and more easily create related currency
1118         managers.
1119         * CurrencyManager.cs: All the table creation stuff is done by the
1120         binding context now.
1121         - Current should throw an exception if listposition is -1.
1122         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
1123         been bound yet.
1124
1125 2006-05-30  Mike Kestner  <mkestner@novell.com>
1126
1127         * ListView.cs: allow reexpansion of zero-width column headers.
1128         Fixes #78528.
1129
1130 2006-05-28  Chris Toshok  <toshok@ximian.com>
1131
1132         * CurrencyManager.cs (get_Current): after the late binding
1133         listposition = -1 fix, we need to guard against it here and return
1134         null, otherwise we raise an exception (which is swallowed
1135         elsewhere, and breaks datagrid databinding.)
1136
1137 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
1138
1139         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
1140           than WM_SYSKEY, don't throw if get something unexpected (#78507)
1141
1142 2006-05-26  Jackson Harper  <jackson@ximian.com>
1143
1144         * ControlPaint.cs:
1145         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
1146         values, it's faster and it's all we care about (we don't care if
1147         the names aren't equal).
1148         * KeyboardLayouts.cs: Eliminate some dead code.
1149         - Lazy init things
1150         * X11Keyboard.cs: Lazy init keyboard detection.
1151         - Cleanup access modifiers a little.
1152
1153 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
1154
1155         * XplatUIX11.cs: Once again, attempting to get layout just right.
1156
1157 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
1158
1159         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
1160           the sizes of each link section, that will result in sizes that
1161           match DrawString's layout (Fixes #78391)
1162
1163 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
1164
1165         * FileDialog.cs: If AddExtension property is true autocomplete the
1166           extensions in SaveFileDialog correctly. Fixes bug #78453.
1167           Set MyNetwork and MyComputer to "C:\" for windows. This should
1168           fix part 8 of bug #78446 for now.
1169
1170 2006-05-26  Chris Toshok  <toshok@ximian.com>
1171
1172         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
1173         invalidate the current row header if we need to, but presumably
1174         we'll invalidate the row corrsponding to the bounds or
1175         editingControl.
1176         (GridHScrolled): switch back to this method, as it's part of the
1177         public api.  *sigh*.
1178         (GridVScrolled): same.
1179         (OnMouseWheel): hack up something that more or less works.  Call
1180         GridHScrolled/GridVScrolled directly, instead of duplicating much
1181         of their code here.
1182         (EnsureCellVisibility): reinstate a bunch of this code, since we
1183         can't just set the scrollbar Value and expect to do all the work
1184         in the ValueChanged handler.  Also, Call Update() after scrolling
1185         in one direction so the other XplatX11.ScrollWindow call has the
1186         proper stuff in the proper places.
1187         (EditCell): set is_editing to true before calling .Edit.
1188
1189         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
1190         don't bother comparing first.
1191         (OnKeyPress): call grid.ColumnStartedEditing before calling
1192         base.OnKeyPress.  this will set is_changing and invalidate the row
1193         header if necessary.
1194         (ProcessKeyMessage): for WM_CHAR messages, call
1195         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
1196         and WM_KEYDOWN.
1197         
1198         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
1199         it's done in the DataGrid.
1200         (NextState): call grid.ColumnStartedEditing, which takes care of
1201         invalidating the row header (and setting is_changing).
1202
1203         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
1204         here.  it's done in the DataGrid.
1205
1206 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1207
1208         * Control.cs: allow changing the cursor when the mouse position is
1209         out of bounds but Capture is set.
1210         * LinkLabel.cs: handle the case when the mouse button is pressed on the
1211         linklabel but released somewhere else.
1212
1213 2006-05-25  Jackson Harper  <jackson@ximian.com>
1214
1215         * TreeView.cs: When we get focus if there is no selected node make
1216         it the top node
1217         - Remove some uneeded setup code from Draw.
1218         * TreeNodeCollection.cs: If the tree doesn't have a top node when
1219         a new node is inserted make the new node the top.
1220         * XplatUIX11.cs:
1221         * Timer.cs: Use Utc time so that no local time zone stuff needs to
1222         be used (should be faster).
1223         
1224 2006-05-25  Chris Toshok  <toshok@ximian.com>
1225
1226         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
1227         problem with the last commit.
1228
1229 2006-05-25  Chris Toshok  <toshok@ximian.com>
1230
1231         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
1232         need the invalidate call here, while scrolling right-to-left via
1233         the left arrow key (i.e. moving the editing cell while scrolling).
1234
1235         * DataGrid.cs (.ctor): remove the initialization of
1236         ctrl_pressed/shift_pressed.  We no longer track them using key
1237         up/down handlers, but by using Control.ModifierKeys.  Also, switch
1238         to using ValueChanged handlers on the scrollbars instead of
1239         Scrolled event handlers.  This simplifies a bunch of the scrolling
1240         code.
1241         (GridHValueChanged): rename from GridHScrolled, and change it to
1242         work with the new event args.
1243         (GridVValueChanged): same.
1244         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
1245         (OnMouseWheel): actually scroll the datagrid.  Don't change the
1246         selected cell.
1247         (ProcessGridKey): correct all the keyboard navigation stuff I
1248         could find.  Ctrl up/down/left/right/home/end work now.
1249         (EnsureCellVisibility): correct method name spelling.  Also,
1250         simplify this a touch by not explicitly calling the
1251         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
1252         scrollbar value.
1253         (OnKeyUpDG): no need for this method now.
1254         
1255 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1256
1257         * LinkLabel.cs: display the OverrideCursor when hovering the label.
1258         Fixes bug #78392.
1259
1260 2006-05-25  Chris Toshok  <toshok@ximian.com>
1261
1262         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
1263         r61019.
1264
1265 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
1266
1267         * Application.cs: Moved setting of is_modal and closing to before
1268           we create the control, to allow the event handlers called as a
1269           result of creation affect closing. Also removed Gonzalo's previous
1270           change to setting DialogResult, the behaviour has been moved to 
1271           Form.ShowDialog()
1272         * Form.cs: 
1273           - ShowDialog(): Removed explicit creation of the form, let RunLoop
1274             handle it instead
1275           - ShowDialog(): If no dialog result is set, we need to return Cancel
1276           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
1277             the close is cancelled
1278
1279 2006-05-25  Jackson Harper  <jackson@ximian.com>
1280
1281         * StatusBar.cs: We only need to update the sizes of the other
1282         panels when we have auto size contents.  Also we are only updating
1283         the contents of the panel, not the borders, so compensate for the
1284         border width (TODO: get this width from the theme somehow).
1285         * TreeView.cs: Scrollable is true by default
1286         - Use invalidate instead of refresh where needed
1287         - Factor the scrollable value into scrollbar updating
1288         - Update the scrollbars if the Scrollable property is altered
1289         - Update the selected node if its ImageIndex is changed
1290         - Handle null nodes in UpdateNode (mainly so we don't have to
1291         check if selected is null when updating it
1292         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
1293         are factored into the visible count
1294         - Use VisibleCount for clarity in the code
1295         - When the font is changed we need to recurse through all the
1296         nodes and invalidate their sizes
1297         
1298 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1299
1300         * Application.cs: set the DialogResult to fixed when the main form is
1301         hidden or destroyed while being modal.
1302
1303 2006-05-25  Miguel de Icaza  <miguel@novell.com>
1304
1305         * Theme.cs: Use Tangoified messagebox icons. 
1306
1307         (GetSizedResourceImage): Also cope with width = 0 and do not
1308         trigger a warning in that case (0 means "give me your icon from
1309         the resouce, no special size needed).
1310
1311 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
1312
1313         * Application.cs: Leave runloop if the the main modal form is 
1314           hidden (fixes #78484)
1315
1316 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
1317
1318         * BindingContext.cs : reject null datasource in Contains() and
1319           Item[].
1320         * CurrencyManager.cs : check data_member validity when data_source
1321           is dataset. When it is late binding, the initial position is -1.
1322
1323 2006-05-24  Jackson Harper  <jackson@ximian.com>
1324
1325         * TreeNodeCollection.cs: Dont't recalculate the visible order on
1326         inserted nodes that aren't visible.  This changes the
1327         max_visible_order which confuses scrollbar settings.
1328         - Use the enumerator to get the prev node instead of duplicating
1329         code.
1330         * TreeView.cs: Use new method for setting scrollbar values
1331         - Don't set the bounds every time the scrollbar is updated
1332         - When updating below the root node use an invalidate instead of a
1333         refresh to prevent the child controls (scrollbars) from being
1334         refreshed. (UpdateBelow still needs to be reworked anyways).
1335         - Reenable SetBottom now that visible orders are set correctly,
1336         added some debug code incase we ever get bad values there again.
1337         - Set the scrollbar max to 2 less then the max value, this
1338         compensates for the max value being one above the node count, and
1339         for scrollbars adding one extra "notch".
1340         - When drawing image nodes if there is an imagelist we draw the
1341         first image in the list if the supplied image index is out of the
1342         image list's bounds.
1343         
1344 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
1345
1346         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
1347           we receive a size change from the WM (Fixes #78503)
1348
1349 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
1350
1351         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
1352           rectangle (Fixes #78501)
1353
1354 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
1355
1356         * ButtonBase.cs: 
1357           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
1358             as a bitfield.
1359           - Fixed MouseMove to no longer switch pressed state unless the left
1360             mouse button is pressed. Atsushi provided the original patch (#78485)
1361           
1362 2006-05-24  Jackson Harper  <jackson@ximian.com>
1363
1364         * ScrollBar.cs: New internal methods that allow us to change a
1365         couple values on the scrollbar (the most common case is maximum
1366         and large change) without getting multiple invalidates.
1367
1368 2006-05-24  Chris Toshok  <toshok@ximian.com>
1369
1370         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
1371         (Edit): save off the original state in oldState, and set
1372         grid.is_editing to true.
1373         (OnKeyDown): abort editing if escape is pressed.  also, call
1374         NextState if space is pressed.
1375         (OnMouseDown): call NextState.
1376         (NextState): factor out shared code from OnKeyDown and OnMouseDown
1377         here.  Also, only invalidate the row header once (on the initial
1378         is_changing switch) to save on redraws.
1379
1380 2006-05-24  Chris Toshok  <toshok@ximian.com>
1381
1382         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
1383         if the value in the cell is different than it was before.  This
1384         keeps us from triggering a layout when we move around a datarid
1385         with a highlighted cell.
1386         (Edit): suspend layout when creating/positining the text box, and
1387         resume passing false so we don't ever actually re-layout.
1388         (ReleaseHostedControl): same.
1389         (EnsureTextBox): reformat slightly, and set WordWrap to false.
1390
1391         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
1392         control-key sequences should go to the datagrid - remove that
1393         lock.  Also, modify the conditions under which we move between
1394         cells when moving the cursor within a cell, and remove the "this"
1395         and "base" from field accesses.  We weren't even consistent, given
1396         they all were in the base class.
1397
1398 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
1399
1400         * Binding.cs : (.ctor)
1401           An obvious NRE fix for BindingTest.CtorNullTest().
1402
1403 2006-05-23  Chris Toshok  <toshok@ximian.com>
1404
1405         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
1406         them between lines.  This fixes some quirks editing cells in the
1407         datagrid.
1408
1409 2006-05-23  Jackson Harper  <jackson@ximian.com>
1410
1411         * TreeView.cs: Use begin/end update when doing expand/collapse all
1412         so that we don't get flicker on the scrollbar.
1413
1414 2006-05-23  Jackson Harper  <jackson@ximian.com>
1415
1416         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
1417         treenode calculations to be independant of the painting code. To
1418         do this nodes track a visible order which is calculated by the
1419         treeview.
1420         - Call new methods for expanding/collapsing nodes.  These methods
1421         use scrollwindow so we don't have to update everything below the
1422         node.
1423         * TreeView.cs: Refactored drawing and scrolling code.  We don't
1424         need to update nodes when drawing anymore or calculate scrollbar
1425         stuff.
1426         - Added new methods for expanding/collapsing nodes. These methods
1427         use ScrollWindow so as to not have to redraw all the nodes below.
1428         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
1429         we add/remove nodes or sort.
1430         - Handle removing the selected and the top node properly.
1431
1432 2006-05-23  Chris Toshok  <toshok@ximian.com>
1433
1434         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
1435         maybe this should actually happen in the datagrid code?
1436         (EndEdit): no need to invalidate anything, given that
1437         ReleaseHostedControl causes the datagrid to relayout, which
1438         invalidates everything anyway.
1439
1440         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
1441         in SetCurrentCell).
1442         (set_SelectionBackColor): call InvalidateSelection instead of
1443         Refresh.
1444         (set_SelectionForeColor): same.
1445         (BeginEdit): Flesh this out a bit.
1446         (CancelEditing): only do any of this if we're editing/adding.
1447         (EndEdit): same.
1448         (OnMouseDown): there's no need to cancel editing here, it's done
1449         in SetCurrentCell.
1450         (SetCurrentCell): only invalidate the current row header if it's a
1451         different row than the new one.
1452         (ShiftSelection): fix this to work like MS does.
1453         (ResetSelection): factor out the invalidation of selected_rows to
1454         InvalidateSelection.
1455         (SetDataSource): cancel any editing that's going on.
1456
1457         * DataGridColumnStyle.cs
1458         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
1459         call the non-interface version.
1460
1461         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
1462         header rectangle with the clip rectangle so we don't redraw the
1463         entire header for just a small area.  Gets rid of the last flicker
1464         when horizontally scrolling.
1465         (DataGridPaintRow): same.
1466
1467 2006-05-23  Mike Kestner  <mkestner@novell.com>
1468
1469         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
1470         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
1471         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
1472         Critical bug report.
1473
1474 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
1475
1476         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
1477           and this fixes #78493
1478
1479 2006-05-23  Miguel de Icaza  <miguel@novell.com>
1480
1481         * Theme.cs (GetSizedResourceImage): Scale images if the proper
1482         size is not found.  
1483         
1484         * FileDialog.cs: Do not change the background for the side bar as
1485         it wont work nicely with the theme, and also reduces the artifacts
1486         in rendering the icons (which I want to fix too).
1487
1488         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
1489         resources, not resgen resources. 
1490
1491         (PlatformDefaultHandler): Pull images using the new API.
1492
1493 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
1494
1495         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
1496           a reference to the hwnd and will not remove it unless there are
1497           no pending exposures (fixes #78341)
1498         * XplatUI.cs: Improved debug
1499
1500 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
1501
1502         * MenuAPI.cs : don't handle OnClick event when it was not the left
1503           button. Fixed bug #78487.
1504
1505 2006-05-23  Mike Kestner  <mkestner@novell.com>
1506
1507         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
1508         prefer submenus to the top menu for item lookup, to avoid popping down
1509         top-row items.
1510
1511 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
1512
1513         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
1514           Graphics.FillRectangle as the visual results are really bad (even
1515           on win). We now draw perfect arrows (and perfect shadows when the
1516           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
1517           Pen.DashPattern to draw the dots of each line.
1518
1519 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
1520
1521         * FileDialog.cs: Update the filename combobox when navigating through
1522           the ListView with the cursor keys. Fixes part 7 of bug #78446.
1523
1524 2006-05-22  Mike Kestner  <mkestner@novell.com>
1525
1526         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
1527         Fixes #78463.
1528
1529 2006-05-22  Mike Kestner  <mkestner@novell.com>
1530
1531         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
1532         requests. Fix a misspelled parameter and a copy paste exception error
1533         in Select.
1534
1535 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
1536
1537         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
1538           to get the same width/height (5/13) on X11 as the default font has on
1539           win32. This means that our DefaultFont emSize is smaller than the 
1540           the MS SWF equivalent (even thought the width/height stays the same)
1541
1542 2006-05-20  Jackson Harper  <jackson@ximian.com>
1543
1544         * MdiClient.cs:
1545         * MdiWindowManager.cs:
1546         * InternalWindowManager.cs: Make sure to use the border width from
1547         the theme.
1548
1549 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
1550
1551         * PrintDialog.cs: Implements printer details
1552
1553 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
1554
1555         * FileDialog.cs: Added focus handling for PopupButtonPanel.
1556           Fixes part 1 and 2 of bug #78446
1557
1558 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
1559
1560         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
1561           instead of sticking to the first ever calculated value
1562
1563 2006-05-19  Mike Kestner  <mkestner@novell.com>
1564
1565         * ComboBox.cs: fix mouse motion selection to use MousePosition and
1566         PointToClient, since Capture is set. Fixes #78344.
1567
1568 2006-05-19  Mike Kestner  <mkestner@novell.com>
1569
1570         * ListView.cs: match MS behavior in Details view where items are not
1571         drawn if Columns.Count == 0. 
1572         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
1573         Use a separate pen to draw the check, since changing the width affects
1574         the box as well.  Fixes #78454.
1575
1576 2006-05-18  Miguel de Icaza  <miguel@novell.com>
1577
1578         * ListView.cs: ArgumentOutOfRangeException, single versions of the
1579         exception should throw the name of the invalid argument.
1580
1581         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
1582         there are no files listed. 
1583
1584 2006-05-18  Jackson Harper  <jackson@ximian.com>
1585
1586         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
1587         up.
1588
1589 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
1590
1591         * Control.cs: Brought back our old UpdateZOrder method as a private
1592           function and switched our calls from UpdateZOrder to the new one.
1593           This fixes the Paint.Net canvas disappearing bug.
1594
1595 2006-05-18  Jackson Harper  <jackson@ximian.com>
1596
1597         * Theme.cs:
1598         * ThemeWin32Classic.cs:
1599         * InternalWindowManager.cs: Move the drawing into the theme,
1600         expose everything the theme should need from the window manager.
1601
1602 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
1603
1604         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
1605           from the call to NativeWindow to avoid walking up the parent chain
1606           further than needed (speeds up setting cursors and avoids setting
1607           the wrong cursor if a parent has another cursor defined)
1608         * Cursor.cs: When loading an icon as cursor, MS uses the center of
1609           the icon as hotspot, not what's contained as hotspot in the icon
1610           file. This fixes the perceived drawing offset seen with Paint.Net
1611         
1612 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
1613
1614         * XplatUIX11.cs: 
1615           - Store the calculated rectangle in Hwnd object and use it when 
1616             setting the client size
1617           - Force Toolwindows to always be type Dock, to ensure they're on top
1618
1619 2006-05-18  Mike Kestner  <mkestner@novell.com>
1620
1621         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
1622         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
1623         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
1624         Substantial refactoring to remove confusing nested classes. Coding
1625         standard and Get+Set->property refactorings.  Shift to index based
1626         highlighting in ComboListBox instead of constantly using IndexOf and
1627         Items[]. Add invalidations on resize for DropDownList to fix ugliness
1628         in FileDialog growth.  Draw borders manually since Simple mode needs
1629         to look like two independent controls.  Make listbox border
1630         conditional to DropDownStyle.  Improved OwnerDraw support.
1631
1632 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
1633
1634         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
1635         Don't set the disposed graphics to null, so we can throw the "right"
1636         exception if the graphics is reused later (added a flag to avoid 
1637         double disposing). Some behaviours are different under 2.0 and are
1638         filled under bug #78448.
1639
1640 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
1641
1642         * Control.cs: When double-buffering is enabled, we need to reset
1643           our graphics context between paint calls. Otherwise, any 
1644           transformations and other alterations on the context will 
1645           become cumulative (#77734)
1646
1647 2006-05-18  Mike Kestner  <mkestner@novell.com>
1648
1649         * ListView.cs: do focused item selection like MS on clicks. 
1650         Rework focus handling for ItemControl so LostFocus invalidates as
1651         well.
1652         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
1653         the ListView ItemControl has focus.
1654
1655 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
1656
1657         * XplatUIX11.cs: If client_window ends up being width or height zero
1658           due to border settings, move it off window inside whole_window (#78433)
1659
1660 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
1661
1662         * Mime.cs: Shrink the mime file cache correctly.
1663
1664 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
1665
1666         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
1667
1668 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
1669
1670         * XplatUIX11.cs (AddExpose): More sanity checks
1671
1672 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
1673
1674         * XplatUIX11.cs:
1675           - AddExpose: Don't add expose ranges outside the size of our
1676             window
1677           - Cast opacity values to Int32 to avoid crashes with certain
1678             values
1679           - Added disabled code paths that protect against illegal cross-
1680             thread painting (Developers.exe)
1681
1682 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
1683
1684         * ProgressBar.cs: Invalidate the control when it's resized
1685           since block size is based on control size. (#78388)
1686
1687 2006-05-16  Miguel de Icaza  <miguel@novell.com>
1688
1689         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
1690         of setting the incoming argument to the "reset" value, we set the
1691         this.datamember to string.empty (before we were invalidating the
1692         incoming data).   
1693
1694         Fixes 78420
1695
1696 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
1697
1698         * Form.cs: Only apply transparency settings after the form
1699           is created. (Fixes #77800)
1700
1701 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
1702
1703         * ApplicationContext.cs: Grab the HandleDestroyed event so
1704           we know when to fire OnMainFormClosed 
1705
1706 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
1707
1708         * Application.cs: Introduced sub-class to allow tracking of
1709           threads and centralized triggering of the event mess for
1710           ThreadExit, AppExit, etc..  (#76156)
1711
1712 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
1713
1714         * MimeIcon.cs:
1715           - Do not return a null icon index value for a mime subclass.
1716             Instead try the main mime type class too.
1717           - Seems that some newer distributions don't have a link to some
1718             gnome default icons anymore. So check the default gnome dir too.
1719           
1720
1721 2006-05-16  Jackson Harper  <jackson@ximian.com>
1722
1723         * MdiClient.cs: Don't paint the parent background image if we have
1724         our own background image.
1725
1726 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
1727
1728         * Control.cs:
1729           - PerformLayout: Do not shrink space filled by DockStyle.Fill
1730             controls, all filled controls are supposed to overlap (#78080)
1731           - UpdateZOrder is supposed to update the control's z-order in the
1732             parent's z-order chain. Fixed to behave like that
1733           - BringToFront: Removed obsolete code
1734           - SendToBack: Simplyfied
1735           - SetChildIndex: Trigger layout calculations when Z-order changes
1736             since layout is done by z-order
1737
1738 2006-05-16  Chris Toshok  <toshok@ximian.com>
1739
1740         [ fixes bug #78410 ]
1741         * DataGrid.cs (set_AlternatingBackColor): use
1742         grid_drawing.InvalidateCells instead of Refresh().
1743         (set_BackColor): call grid_drawing.InvalidateCells.
1744         (set_BackgroundColor): use Invalidate instead of Refresh.
1745
1746         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
1747         invalidate the cell area.
1748
1749 2006-05-15  Chris Toshok  <toshok@ximian.com>
1750
1751         [ fixes bug #78011 ]
1752         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
1753         on to DataGridPaintRow.
1754         (DataGridPaintRow): take a clip argument, and only draw the cells
1755         which intersect it.  same with the not_usedarea.
1756
1757         * Theme.cs (DataGridPaintRow) add @clip parameter.
1758
1759         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
1760         XplatUI.ScrollWindow.
1761         (ScrollToRow): same.
1762
1763         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
1764         with last column which was causing a gray swath to appear with the
1765         XplatUI.ScrollWindow code.
1766
1767 2006-05-15  Chris Toshok  <toshok@ximian.com>
1768
1769         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
1770         use XplatUI.ScrollWindow.
1771         (VerticalScrollEvent): use XplatUI.ScrollWindow.
1772
1773 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
1774
1775         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
1776
1777 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
1778
1779         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
1780           file since there are no equivalent X11 cursors
1781
1782 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
1783
1784         * MonthCalendar.cs : DateTimePicker should reflect selected date
1785           on mouse*up*, not mouse*down*. Fixed originally reported part of
1786           bug #76474.
1787
1788 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
1789
1790         * TabControl.cs : When argument index is equal or more than tab
1791           count, just ignore. Fixed bug #78395.
1792
1793 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
1794
1795         * Control.cs: Dispose all child controls when control is diposed (#78394)
1796
1797 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
1798
1799         * ColorDialog.cs: Finally it is possible to select the color with
1800           the text boxes
1801
1802 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
1803
1804         * PrintDialog.cs: Fix typo
1805
1806 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
1807
1808         * PrintDialog.cs: PrintDialog is not resizable
1809         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
1810           color. Made some ToolBar drawing methods protected virtual.
1811
1812 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
1813
1814         * PrintDialog.cs: Implementation of the PrintDialog
1815
1816 2006-05-12  Chris Toshok  <toshok@ximian.com>
1817
1818         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
1819         thumb, instead use MoveThumb.  This has the side effect of making
1820         most of the other thumb moving machinery use MoveThumb as well.
1821         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
1822         need to actually invalidate the rectangle where the new thumb will
1823         go.
1824         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
1825         We force an Update() after, so it's not as fast as it could be,
1826         but at least there's zero flicker and no droppings.
1827         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
1828         (UpdateThumbPos): add another argument (dirty), which says whether
1829         or not to calculate/add dirty regions which we later invalidate.
1830         For cases where we know we're going to use MoveThumb, we pass
1831         false for this.  Otherwise, pass true.
1832
1833 2006-05-12  Jackson Harper  <jackson@ximian.com>
1834
1835         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
1836         the status bar.
1837         
1838 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
1839
1840         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
1841           and GetClipRegion methods and UserClipWontExposeParent property.
1842         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
1843           overriding UserClipWontExposeParent property, setting to false, since
1844           Win32 handles the required expose messages to draw our clipped parent
1845           areas internally
1846         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
1847           PaintEventStart to set the user clip region if set.
1848         * Control.cs: 
1849           - Now internally tracking the Region for the control since we need to
1850             store it if the handle is not yet created and only set it when it
1851             becomes created. Before setting the region forced handle creation
1852           - Added code to draw the parents underneath a user-clipped region
1853         * Hwnd.cs: Added UserClip property
1854
1855 2006-05-12  Chris Toshok  <toshok@ximian.com>
1856
1857         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
1858         (set_Maximum): same.
1859         (set_Minimum): same.
1860         (set_SmallChange): same.
1861         (OnMouseUpSB): remove the call to refresh when releasing the
1862         thumb.  We shouldn't need it.
1863         
1864 2006-05-12  Miguel de Icaza  <miguel@novell.com>
1865
1866         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
1867         AutoSize set to None, we do not need to relayout everything, we
1868         just need to invalidate the current region.
1869
1870         (Draw): Do not draw the entire ClientArea, just redraw the
1871         clip area being passed.
1872
1873         * MdiClient.cs: Make MdiClient constructor with the Form argument
1874         internal. 
1875
1876 2006-05-12  Jackson Harper  <jackson@ximian.com>
1877
1878         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
1879         parents background image,  but strangely not their own.
1880         - (DrawStatusBarPanel): Take into account horizontal alignment
1881         when drawing the strings and icons.
1882
1883 2006-05-12  Mike Kestner  <mkestner@novell.com>
1884
1885         * ListBox.cs: avoid invalidations for focus when the collection is
1886         empty. 
1887
1888 2006-05-12  Chris Toshok  <toshok@ximian.com>
1889
1890         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
1891         invalidate the entire thumb area.  Call InvalidateDirty which
1892         limits the redraw to the thumb itself and surrounding pixels.
1893
1894         * XplatUIX11.cs (ScrollWindow): optimize copying.
1895         
1896 2006-05-12  Chris Toshok  <toshok@ximian.com>
1897
1898         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
1899         Figure out the positioning/layout in a single pass instead of
1900         multiple recursive invocations.  Speeds up the initial display of
1901         the data grid.  Also, make many things private that were
1902         originally public but unused outside this class.
1903
1904 2006-05-11  Jackson Harper  <jackson@ximian.com>
1905
1906         * MdiClient.cs: Improved layout code.
1907
1908 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
1909
1910         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
1911           not SelectedObject.
1912
1913 2006-05-11  Chris Toshok  <toshok@ximian.com>
1914
1915         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
1916         union of that will always be {0,0,width,height}.
1917
1918 2006-05-11  Jackson Harper  <jackson@ximian.com>
1919
1920         * Form.cs: Match MS's DefaultSize for forms (they must have
1921         changed the size in sp2).
1922
1923 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
1924
1925         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
1926
1927 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
1928
1929         * TextControl.cs : Fixed bug #78109. This incorrect position
1930           comparison caused crash on automatic line split.
1931         * TextBoxBase.cs : reduce duplicate code.
1932
1933 2006-05-10  Jackson Harper  <jackson@ximian.com>
1934
1935         * MdiClient.cs: Active form is only sent to the back when using
1936         the Next form functionality, when a form is clicked the current
1937         active shouldn't be sent to the back.
1938         - Layout the mdi windows when the container is first made visible.
1939         * Form.cs: Give the MdiClient a ref to the containing form when we
1940         create it.
1941         
1942 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
1943
1944         * LinkLabel.cs : link_font could be uninitialized, so populate one
1945           before actual use. Fixed bug #78340.
1946
1947 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
1948
1949         * XplatUIX11.cs : clipboard format native value is IntPtr.
1950           Fixed bug #78283.
1951
1952 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
1953
1954         * Control.cs: 
1955           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
1956             which is passed up the parent chain by DefWndProc
1957           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
1958             to DefWndProc (#77956)
1959         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
1960
1961 2006-05-10  Jackson Harper  <jackson@ximian.com>
1962
1963         * MdiClient.cs: We need to remove the controls from the mdi
1964         collection, when we close the window.
1965         * MdiWindowManager.cs: Special handling of closing mdi windows.
1966         * InternalWindowManager.cs: Make the close method virtual so the
1967         mdi window manager can handle it specially.
1968
1969 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
1970
1971         * DataGrid.cs:
1972           - Recalculate grid when the data source has changed
1973           - Matches styles provided by user from all data sources types
1974         * DataGridTableStyle.cs: For columns that provided by the user set the
1975         with the preferred value is there was unassigned.
1976         * CurrencyManager.cs: throw OnItemChanged event
1977
1978 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
1979
1980         * PictureBox.cs: Don't animate until handle is created. Start animation
1981           when handle is created.
1982
1983 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
1984
1985         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
1986           current codebase.
1987         * XEventQueue.cs: We don't need to provide the extra info
1988
1989 2006-05-10  Jackson Harper  <jackson@ximian.com>
1990
1991         * MdiClient.cs: If the mdi clients parent form has a background
1992         image set, we draw that background image for the mdi area's
1993         background.
1994
1995 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
1996
1997         * TextBoxBase.cs: Set IBeam cursor (#78347)
1998
1999 2006-05-10  Mike Kestner  <mkestner@novell.com>
2000
2001         * ToolBar.cs: fix some text padding issues with ButtonSize
2002         calculation. Update the default size to match MS documentation.
2003         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
2004         button size. Fixes #78296.
2005
2006 2006-05-10  Mike Kestner  <mkestner@novell.com>
2007
2008         * ListBox.cs: use is_visible for scrollbar positioning in case the
2009         control isn't on screen yet.  Fix off by one with Right vs Width
2010         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
2011         
2012 2006-05-10  Jackson Harper  <jackson@ximian.com>
2013
2014         * X11Dnd.cs: Drop to a control with another control on top of it.
2015         * ToolBar.cs: Work on a copy of the buttons list, so that it can
2016         be modified in click handlers. TODO: Look for similar problems in
2017         other controls.
2018
2019 2006-05-09  Jackson Harper  <jackson@ximian.com>
2020
2021         * Form.cs: Window managers need the old window state when setting
2022         window state now.
2023         * InternalWindowManager.cs: Allow the base mdi window manager to
2024         handle more of the MDI only stuff (like maximize buttons).
2025         * MdiWindowManager.cs: Fix some snafus in changing the window
2026         state.  Add all the menu functionality, for both popup and
2027         maximized menus.
2028         * MdiClient.cs: When a new form is selected the currently
2029         activated form is sent to the back, this matches MS.
2030         - Implement a new method to activate the next mdi child window.
2031
2032 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
2033
2034         * Control.cs: 
2035           - Added new InternalCapture method to allow controls to prevent
2036             the capture behaviour on the click handlers
2037           - Switched to use InternalCapture
2038         * ComboBox.cs:
2039           - Using InternalCapture to prevent mouse captures from being released
2040             on mouse button release (Fixes #78100)
2041         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
2042           returns Form borders if a caption is present. (Fixes #78310)
2043
2044 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
2045
2046         * TreeNode.cs: Changed serialization .ctor to not require every field
2047           to be present. (#78265)
2048         * OwnerDrawPropertyBag.cs: Added serialization .ctor
2049
2050 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
2051
2052         * MimeIcon.cs: for is faster than foreach for strings.
2053
2054 2006-05-05  Mike Kestner  <mkestner@novell.com>
2055
2056         * CheckedListBox.cs: update check handling code to not use selected.
2057         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
2058         behavior for visual feedback, motion response, shift/ctrl handling,
2059         and properly deal with all 4 selection modes. Updates to bounds
2060         handling logic.  Add scroll wheel support. [Fixes #77842]
2061
2062 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
2063
2064         * ListView.cs:
2065           - Moved adding of Implicit controls into .ctor. That way, subsequent
2066             creation of the controls will not cause them to think they are 
2067             toplevel windows (fixes #78200 header problem)
2068           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
2069           - Switched visibility setting of header control to use internal field
2070             to avoid triggering handle creation
2071           - Now checking if handle is created before causing a refresh when items
2072             are added (This makes us now match handle creation time with MS)
2073         * Splitter.cs: Removed loading of private splitter cursor, switched to
2074           Cursors version now that that is loading the right ones
2075         * Cursors.cs: Load proper splitter cursors from resources
2076         * Cursor.cs: Added second method of loading resource cursors for the 
2077           VS.Net users amongst us
2078
2079 2006-05-05  Mike Kestner  <mkestner@novell.com>
2080
2081         * ListView.cs: give header_control a minimum size based on the
2082         ListView size.
2083
2084 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
2085
2086         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
2087           window seems to do that with metacity, so set that type. (#78120)
2088
2089 2006-05-05  Mike Kestner  <mkestner@novell.com>
2090
2091         * ListViewItem.cs: fix Details mode checkbox layout bug.
2092         * ThemeWin32Classic.cs: draw a ListView column header for unused space
2093         at the end of the header, if it exists. [Fixes for #78200]
2094
2095 2006-05-04  Jackson Harper  <jackson@ximian.com>
2096
2097         * MdiClient.cs: Add a helper property to get the container form.
2098         * MdiWindowManager.cs: We have to make sure to use the menu origin
2099         when drawing the icons and buttons, this fixes maximized window
2100         icons/buttons on win32.
2101         * InternalWindowManager.cs: Reset the restore captions when a
2102         window goes from Maximized to Minimized and vice versa. Move the
2103         DrawMaximizedButtons into the MdiWindowManager source, tool
2104         windows can't be maximized. NOTE: This could use a little
2105         refactoring if time ever permits.
2106         
2107 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
2108
2109         * TextBox.cs: Add MWFCategoryAttributes
2110         * TextBoxBase.cs: Add MWFCategoryAttributes
2111         * Form.cs: Add MWFCategoryAttributes
2112
2113 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
2114
2115         * Control.cs: Add MWFCategoryAttributes
2116         * ScrollableControl.cs: Add MWFCategoryAttributes
2117
2118 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
2119
2120         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
2121           Divider is true. Fix a little glitch in PropertyToolBar
2122           drawing code
2123
2124 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
2125
2126         * Control.cs:
2127           - Dispose: Call base.Dispose, this causes the disposed event
2128             to be fired (and probably other, more important stuff)
2129           - SetVisibleCore: Set is_visible to true after creating the
2130             window so that the window still gets created invisible (if
2131             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
2132             to generate a WM_ACTIVE message
2133         * Form.cs: Call Dispose when we want to destroy the window, instead of
2134           just destroying the handle (Dispose will do that for us)
2135         * XplatUIX11.cs:
2136           - RootWindow also needs a queue, so we can properly process the
2137             property change events from RootWindow (like Activate)
2138           - Generatic synthetic WM_ACTIVE message when the active window is
2139             being destroyed
2140
2141 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
2142
2143         * LinkLabel.cs: Trigger a recalc of our label dimensions when
2144           bounds are changed
2145
2146 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
2147
2148         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
2149           for determining width and height (image might not be assigned if
2150           we're drawing an imagelist)
2151
2152 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
2153
2154         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
2155         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
2156           height from system
2157         * Theme.cs: No longer returns hardcoded menu height, instead calls
2158           new driver method
2159         * Form.cs (OnLoad): Scaling happens before triggering Load events 
2160           on MS (# 78257)
2161
2162 2006-05-01  Mike Kestner  <mkestner@novell.com>
2163
2164         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
2165
2166 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
2167
2168         * TextBoxBase.cs: Removed Fixme
2169         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
2170
2171 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
2172
2173         * XplatUIX11.cs:
2174           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
2175             the rectangle relative to the parent, considering borders. We
2176             don't really want that.
2177           - ScrollWindow: Fixed warning to be more understandable
2178         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
2179           scrollbars and scroll only the visible area
2180         * RichTextBox.cs: Removed debug output
2181
2182 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
2183
2184         * NumericUpDown.cs (Text): Just use base
2185         * UpDownBase.cs: Ensure txtView is created before using it
2186
2187 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
2188
2189         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
2190           casting to IntPtr to avoid 64bit overflow errors
2191
2192 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
2193
2194         * Control.cs:
2195           - AllowDrop: Don't force handle creation.
2196           - CreateHandle: Added call to tell driver if we're allowed to drop
2197
2198 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
2199
2200         * FileDialog.cs: Remember the last directory not only for the
2201           current instance but also for new FileDialog instances.
2202
2203 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
2204         
2205         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
2206           broke sending async messages
2207
2208 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
2209
2210         * XplatUIX11.cs:
2211           - ScrollWindow: Fixed method. We finally generate expose events again
2212             for scrolled areas. This was causing 'garbage' when scrolling
2213             textbox and other controls that used ScrollWindow
2214           - Switched from using the regular queue for paint events to the MS 
2215             model of 'generating' paint events when the queue is empty.
2216             We use the new XQueueEvent.Paint subclass to store which windows
2217             need painting.
2218           - AddExpose now takes the x/y/width/height of the exposed area
2219             and inserts the window into the paint queue if not already there
2220           - InvalidateWholeWindow: Switched to use new AddExpose method
2221           - UpdateMessageQueue: Added which queue to monitor for paint events
2222           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
2223             the unlikely case nothing above handles it. We reset the expose
2224             pending states to get them off the queue.
2225           - GetMessage: Now pulls a paint event if no other events are in the
2226             queue
2227           - Invalidate: Switched to new AddExpose method
2228           - PeekMessage: Updated to understand pending paint events
2229           - UpdateWindow: Fixed logic bug. We were only updating if the window
2230             didn't need updating. Also switched to sending WM_PAINT directly,
2231             like MS does.
2232         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
2233           and random access Remove(). The random access is needed to handle
2234           UpdateWindow() where a WM_PAINT is sent directly without accessing
2235           the queue.
2236         * ScrollBar.cs: Added Update() calls to cause immediate updates to
2237           allow for better feedback when scrolling. Scrollbars are small and
2238           the immediate update should make it 'feel' more responsive without
2239           slowing things down. ScrollBar still needs it's invaliate logic
2240           updated to not always invalidate the whole bar on certain changes.
2241
2242 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2243
2244         * Control.cs:
2245         (BackColor): if the control does not support a transparent background,
2246         return the default backcolor when the parent backcolor is transparent.
2247
2248 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
2249
2250         * Application.cs: Updated to new StartLoop/GetMessage API
2251         * RichTextBox.cs: Provide some output on RTF parsing errors
2252         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
2253           new queue_id argument to GetMessage and PeekMessage to allow faster
2254           handling of per-thread queues in drivers.
2255         * Hwnd.cs: Added Queue tracking and property
2256         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
2257         * XEventQueue.cs: Added thread trackingA
2258         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
2259         * XplatUIX11.cs:
2260           - Implemented new per-thread queue
2261           - GetMessage: Fixed return/break behaviour on several cases. We were
2262             returning stale messages in some cases, instead of just processing
2263             the next message
2264
2265 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
2266
2267         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
2268
2269 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
2270
2271         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
2272           fixed off-by-one comparisons between Width/Height and Right/Bottom.
2273
2274 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
2275
2276         * PropertyGridView.cs: Fix drop down width.
2277
2278 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
2279
2280         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
2281           a mess in DrawToolBar, so I removed one of them.
2282
2283 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
2284
2285         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
2286           needed (clip). Otherwise we get artifacts.
2287
2288 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
2289
2290         * FixedSizeTextBox.cs: Added constructor to allow specifying which
2291           dimension is fixed
2292         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
2293           and switched FixedSizeTextBox to only be fixed vertical (#78116)
2294         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
2295           if it matches the scale base font (avoids unneeded scaling)
2296
2297 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
2298
2299         * X11DesktopColors.cs: One gtk_init_check should be enough
2300
2301 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
2302
2303         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
2304           match MS behaviour
2305
2306 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
2307
2308         * TextBoxBase.cs: 
2309           - Generate OnTextChanged for Backspace even if we're only deleting
2310             the current selection
2311           - When setting the Text property, only select all text if the
2312             control does not have focus when it is being set. Otherwise
2313             just place the cursor at the beginning of the control
2314
2315 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
2316
2317         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
2318           Added a little helper to draw PropertyGrid ToolBar with a different
2319           border and a different BackColor.
2320         * PropertyGrid.cs: Some background parts didn't get painted with the
2321           correct background color. Added a class that helps us to draw the
2322           correct border for PropertyGridView and a class that helps us to
2323           draw ToolBars with a different backcolor
2324         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
2325
2326 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
2327
2328         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
2329         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
2330
2331 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
2332
2333         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
2334           into the palette entries. Also, since we're working on a copy
2335           we needed to copy the palette back onto the bitmap.
2336         * Cursor.cs: Same fix as XplatUIWin32.cs.
2337
2338 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
2339
2340         * ImageListStreamer.cs: Need to read the var (or we're off)
2341
2342 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
2343
2344         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
2345           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
2346           TextBoxBase.cs: Unused var fixes
2347         * AxHost.cs: Small 2.0 fix
2348         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
2349           as it seems that is what at least Metacity expects. This will make
2350           icons show up on 64bit platforms. We still have some 64bit size
2351           issues, though, since the startup app window size still won't match.
2352
2353 2006-04-25  Mike Kestner  <mkestner@novell.com>
2354
2355         * *.cs: cleanup newly reported exception var unused warnings.
2356
2357 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
2358
2359         * ThemeWin32Classic.cs: Button image alignment now matches exactly
2360           ms
2361
2362 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
2363
2364         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
2365           image. The image position is always the same, no matter if the
2366           button is pressed or not.
2367
2368 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
2369
2370         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
2371           selection and set the correct filename for SaveFileDialog.
2372           Patch by Emery Conrad.
2373
2374 2006-04-24  Mike Kestner  <mkestner@novell.com>
2375
2376         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
2377         check for item.X outside the ClientRect instead of item.Y. Fixes
2378         #78151.
2379
2380 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2381
2382         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
2383         trust that value blindly and do some sanity check. Fixes bug #77814.
2384
2385 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2386
2387         * ImageListStreamer.cs: save the mask as a 1bpp image.
2388
2389 2006-04-21  Mike Kestner  <mkestner@novell.com>
2390
2391         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
2392         pass Checked and Indeterminate to the Theme Engine. Improve
2393         encapsulation with ListBox.
2394         * ListBox.cs: Keep a StringFormat instead of calculating it every item
2395         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
2396         nested types.  Move all CheckState functionality to CheckedListBox.
2397         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
2398         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
2399         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
2400         single base list. Fix scrollbar sizing and placement to mirror MS.
2401         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
2402         used.
2403         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
2404         for CheckedListBox by using new DrawItemState info.  Center the
2405         checkboxes on the items. Use new StringFormat property.
2406
2407 2006-04-18  Jackson Harper  <jackson@ximian.com>
2408
2409         * Form.cs: MdiChildren don't do default locations the same way as
2410         regular forms.  This prevents a crash when trying to position the
2411         mdi windows.
2412
2413 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
2414
2415         * PropertyGridTextBox.cs: Formatting, copyright
2416         * PropertiesTab.cs: Formatting
2417         * PropertyGrid.cs: Formatting
2418         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
2419           click toggling of values
2420           
2421 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
2422
2423         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
2424         * Control.cs (.ctor): verify_thread_handle is static, don't reset
2425           every time a control is created
2426         * Application.cs: Removed obsolete EnableRTLMirroring method
2427
2428 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
2429
2430         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
2431         SelectedIndex to -1. Fixes bug #78121.
2432
2433 2006-04-17  Jackson Harper  <jackson@ximian.com>
2434
2435         * Binding.cs: Handle null values for Current and BindingContext.
2436         This occurs when binding is a little delayed.
2437         * CurrencyManager.cs: return null for Current when there are no
2438         items in the list.
2439         - Hookup to the listchanged event on the DataView and update
2440         bindings when the list is changed.  This fixes late binding of
2441         controls.
2442
2443 2006-04-17  Jackson Harper  <jackson@ximian.com>
2444
2445         * X11Dnd.cs:
2446         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
2447         Ringenbach.
2448
2449 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
2450
2451         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
2452           place
2453         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
2454           with the correct ButtonState
2455
2456 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
2457
2458         * XplatUIX11.cs: Improved distinguishing between window types to
2459           tell the WM a type closer to what the app wants (Fixes #78107)
2460
2461 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
2462
2463         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
2464           GrabHandle
2465
2466 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
2467
2468         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
2469           drawing code to reflect the size grip changes
2470
2471 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2472
2473         * ImageListStreamer.cs: fix handling of the mask that follows the main
2474         bitmap when deserializing and serialize it properly. The generated mask
2475         should better be a 1bpp image, but I'll do that later.
2476
2477 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
2478
2479         * FileDialog.cs: Show something in the DirComboBox on *nix if the
2480           path doesn't fit into some of our Current.Places
2481
2482 2006-04-13  Jackson Harper  <jackson@ximian.com>
2483
2484         * ComboBox.cs: Use borders instead of drawing our own decorations,
2485         try to obey correct rules for heights.
2486         * Theme.cs:
2487         * ThemeNice.cs:
2488         * ThemeClearLooks.cs:
2489         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
2490         this is now handled by borders.
2491         - Remove unused DrawListBoxDecorationSize method.
2492         
2493 2006-04-13  Mike Kestner  <mkestner@novell.com>
2494
2495         * MenuAPI.cs: null guarding for the disbled click check fixes crash
2496         reported by Alex.
2497
2498 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
2499
2500         * ThemeWin32Classic.cs: 
2501           - Fixed CPDrawStringDisabled
2502           - Corrected drawing of disabled menu items
2503           - Fixed drawing of disabled radio buttons (bug #78095)
2504           - Draw check in a disabled CheckBox with color ControlDark 
2505
2506 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
2507
2508         * Form.cs: Use the provided width when calculating the menu size;
2509           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
2510           and ClientSize.Width won't be updated yet
2511         * Application.cs: Use Visible instead of Show() to make form visible,
2512           this way we create the handle later and menusize is considered
2513
2514 2006-04-12  Mike Kestner  <mkestner@novell.com>
2515
2516         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
2517         reporting.
2518
2519 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
2520
2521         * TextBox.cs: Implemented context menu
2522
2523 2006-04-12  Mike Kestner  <mkestner@novell.com>
2524
2525         * ListView.cs: implement box selection. fixes #77838.
2526         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
2527
2528 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
2529
2530         * XplatUIX11.cs: Added setting of window type when transient window
2531           is created (metacity would move it otherwise)
2532         * X11Structs.cs: Added WINDOW_TYPE atoms
2533         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
2534           background (the control is Opaque but still wants transparent
2535           backgrounds)
2536
2537 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
2538
2539         * Control.cs: Added OnPaintBackgroundInternal to allow controls
2540           that set Opaque but don't mean it (like all ButtonBase-derived
2541           controls) to still draw their background
2542         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
2543           the background
2544
2545 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
2546
2547         * Control.cs (PaintControlBackground): Set the graphics object
2548           on our PaintEvent to null to prevent it from being disposed
2549           when the PaintEvent gets disposed
2550
2551 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
2552
2553         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
2554         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
2555
2556 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
2557
2558         * Control.cs: 
2559           - Added transparency check to BackColor property. Transparent
2560             backgrounds are only allowed if the control styles permit it
2561           - Added recursive painting of parent control background and
2562             foreground if a control with a transparent backcolor is drawn
2563             (Thanks to Tim Ringenback for providing his 'hack' as a base
2564              for this patch) Fixes #77985 and #78026.
2565           - Added Opaque style check before calling OnPaintBackground, no
2566             need to draw the background if the control is opaque
2567           - Removed ControlAccessibleObject owner variable (inherited from
2568             base, no need to define again)
2569           - Added some documentation links explaining the drawing events
2570             and styles
2571
2572 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
2573
2574         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
2575           that the affected control is the located at the left border of our
2576           parent (Fixes #77936)
2577
2578 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
2579
2580         * TextBoxBase.cs: When rendering disabled or readonly controls,
2581           draw the background with 'Control' instead of 'Window' color as
2582           long as the user hasn't specifically set a color
2583
2584 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
2585
2586         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
2587           since that won't be updated if the user types text (only if it's
2588           programatically set)
2589
2590 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
2591
2592         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
2593           layout changes do to app-triggered resizes will have the proper
2594           display rectangle for layout
2595
2596 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
2597
2598         * ThemeWin32Classic.cs:
2599           - Make use of the SystemBrushes and SystemPens wherever possible
2600           - Corrected some highlight colors
2601           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
2602             drawing
2603         * Theme.cs: Added Empty field to CPColor struct
2604
2605 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
2606
2607         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
2608           is displayed when calculating the display rectangle. Thanks to Mike
2609           for teaching me the err of my ways.
2610
2611 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
2612
2613         * ScrollableControl.cs:
2614           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
2615             (instead of 0,0) and we now return the real width/height instead of
2616             just the clientrectangle, adjusted for padding. The rectangle is
2617             now cached and created by the new CalculateDisplayRectangle method.
2618           - Created new CalculateDisplayRectange method, which basically does
2619             what get_DisplayRectangle() did originally, but now using the 
2620             right edge instead of DisplayRectangle to determine the size of
2621             our scrollbars
2622           - get_Canvas(): Fixed it to properly calculate canvas for 
2623             right/bottom controls which seem to be placed to the right/bottom
2624             of any controls that have a fixed location
2625           - Removed TODO that's taken care of
2626           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
2627             and SetDisplayRectLocation according to new MSDN2 docs
2628           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
2629             event when that is called, this is added for compatibility
2630           - ScrollControlIntoView(): Implemented.
2631           - Switched scrollbars to be implicit, they shouldn't be selectable
2632         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
2633           call it when the active control is set/changed
2634         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
2635         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
2636           implicit_control variable (used for native Win32 message generation)
2637         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
2638           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
2639         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
2640         * XplatUIStructs.cs: Added ScrollBarCommands enum
2641
2642 2006-04-10  Jackson Harper  <jackson@ximian.com>
2643
2644         * ButtonBase.cs:
2645         * CheckedListBox.cs:
2646         * ComboBox.cs:
2647         * DataGrid.cs:
2648         * DataGridView.cs:
2649         * Form.cs:
2650         * GroupBox.cs:
2651         * ListBox.cs:
2652         * PrintPreviewControl.cs:
2653         * ProgressBar.cs:
2654         * PropertyGrid.cs:
2655         * Splitter.cs:
2656         * StatusBar.cs:
2657         * TrackBar.cs:
2658         * UpDownBase.cs: Fixup base event overrides.
2659         
2660 2006-04-06  Mike Kestner  <mkestner@novell.com>
2661
2662         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
2663         all user-initiated value changes to min <= value <= max-thumbsz+1.
2664         (set_Value): check for vert/horiz when calculating new thumb position.
2665         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
2666         like MS does.
2667         (OnMouseMoveSB): refactor the thumb dragging code and refine
2668         invalidation logic to reduce flicker.
2669         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
2670         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
2671         (UpdateThumbPosition): small code readability cleanup
2672
2673 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
2674
2675         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
2676           different
2677
2678 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
2679
2680         * ThemeNice.cs: Use a better graphics effect when a button is pressed
2681
2682 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
2683
2684         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
2685         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
2686           This dramatically reduces the number of Pen.Dispose calls. 
2687           Where possible call ResPool methods only once instead of calling it
2688           over and over again (for example for the same color).
2689
2690 2006-04-06  Mike Kestner  <mkestner@novell.com>
2691
2692         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
2693         Also remove an unused private field on the collection. Fixes #77972.
2694
2695 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
2696
2697         * ThemeNice.cs: Added ToolBar drawing code
2698
2699 2006-04-06  Mike Kestner  <mkestner@novell.com>
2700
2701         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
2702         I'm assuming that means we need to look up the toplevel for the
2703         provided control. Fixes the crash trace in #77911 but exposes another
2704         crash in some strange reflection usage in NDocGui.
2705
2706 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
2707
2708         * ThemeNice.cs: Gave it a little silver touch and added Images
2709           method
2710         * FontDialog.cs: FontDialog is not resizable
2711         * FileDialg.cs: Added SizeGripStyle.Show
2712
2713 2006-04-05  Jackson Harper  <jackson@ximian.com>
2714
2715         * KeyboardLayouts.cs: Remove warning.
2716
2717 2006-04-05  Jackson Harper  <jackson@ximian.com>
2718
2719         * Control.cs: Enable OnPaintInternal so we can use it for drawing
2720         all of our controls instead of Paint +=.
2721         * ListBox.cs:
2722         * ListView.cs:
2723         * MenuAPI.cs:
2724         * MessageBox.cs:
2725         * NotifyIcon.cs:
2726         * ProgressBar.cs:
2727         * ScrollBar.cs:
2728         * Splitter.cs:
2729         * StatusBar.cs:
2730         * TabControl.cs:
2731         * TextBoxBase.cs:
2732         * ToolBar.cs:
2733         * TrackBar.cs:
2734         * UpDownBase.cs:
2735         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
2736         use OnPaintInternal. Remove Width/Height and Visible checks in
2737         paint handler, this is done at a higher level now.
2738         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
2739         * PaintEventArgs.cs: Add a handled flag so controls that don't
2740         want anymore painting after OnPaintInternal can make sure OnPaint
2741         isn't called.
2742
2743 2006-04-05  Mike Kestner  <mkestner@novell.com>
2744
2745         * Form.cs: fix the menu WndProc hacks to respect the native enabled
2746         state of the form, so that we don't process events when Modal dialogs
2747         are up. Fixes #77922.
2748
2749 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
2750
2751         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
2752           checking is done.
2753
2754 2006-04-05  Mike Kestner  <mkestner@novell.com>
2755
2756         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
2757
2758 2006-04-05  Mike Kestner  <mkestner@novell.com>
2759
2760         * ListView.cs (HeaderMouseMove): null guarding for the over column
2761         when setting up the drag_to_index.  Fixes #78015.
2762
2763 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
2764
2765         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
2766           in the taskbar. Transient windows seem to accomplish that.
2767
2768 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
2769
2770         * Form.cs:
2771           - Re-enabled CreateParams.X/Y code for FormStartPosition
2772           - Added code for manual placement when creating the Control
2773           - Incomplete patch to treat MDI forms differently when
2774             setting the ClientSizeCore. (Still need to figure out handling
2775             x/y coords there)
2776         * XplatUIX11.cs:
2777           - When we're explicitly setting the X/Y position of a non-Child
2778             window, let the WM know. Metacity really wants this.
2779
2780 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
2781
2782         * ThemeNice.cs: Added CPDrawButton
2783
2784 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
2785
2786         * ThemeNice.cs: Changed the color for focused buttons and activated
2787           the arrows for small scroll buttons.
2788
2789 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
2790
2791         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
2792           anymore. Changed some method modifiers to protected (virtual)
2793         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
2794           changes
2795         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
2796           Updated drawing of menus, buttons and progressbars; added
2797           CPDrawBorder3D 
2798
2799 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2800
2801         * ImageListStreamer.cs: implemented serialization/deserialization
2802         of the images.
2803
2804 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
2805
2806         * ThemeWin32Classic.cs:
2807           - Removed all the DrawFrameControl stuff; CPDrawButton,
2808             CPDrawCheckBox and CPDrawRadioButton are now handled directly
2809             inside the methods
2810           - Updated and corrected the drawing code of CPDrawButton,
2811             CPDrawCheckBox and CPDrawRadioButton to better match ms
2812           - Updated theme checkbox and radiobutton code to use the CP*
2813             methods
2814
2815 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
2816
2817         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
2818           bug is fixed
2819
2820 2006-03-31  Jackson Harper  <jackson@ximian.com>
2821
2822         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
2823         sometimes.
2824         * UpDownBase.cs: Don't CreateGraphics manually, use a
2825         Refresh. Ideally we would invalidate the correct areas here.
2826
2827 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
2828
2829         * XplatUIX11.cs: 
2830           - We now track the mapping state of windows. If a window (or 
2831             one of it's parents) is not mapped we no longer permit
2832             WM_PAINT messages to be generated since we'd otherwise get 
2833             lots of BadMatch X errors. Jackson did all the work figuring
2834             out the problem.
2835           - Destroying the caret if the window it's contained in is 
2836             destroyed. Can't use regular DestroyCaret method since it
2837             might fall into a drawing function (trying to remove the
2838             caret) and with that generate new BadMatch errors. Again,
2839             Jackson tracked this down.
2840           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
2841             make sure we send the messages to all windows. (The old code
2842             would send the WM_DESTROY to the window, and then all child
2843             windows would be 'gone' because the WM_DESTROY handle lookup
2844             would no longer find the destroyed window)
2845         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
2846         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
2847
2848 2006-03-31  Jackson Harper  <jackson@ximian.com>
2849
2850         * ScrollableControl.cs: Dont recalc if we are not visible.
2851
2852 2006-03-31  Mike Kestner  <mkestner@novell.com>
2853
2854         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
2855         the visibility branch.
2856
2857 2006-03-31  Jackson Harper  <jackson@ximian.com>
2858
2859         * ScrollBar.cs: Cap values when incrementing/decrementing.
2860
2861 2006-03-31  Mike Kestner  <mkestner@novell.com>
2862
2863         * MenuAPI.cs: setup menu.tracker for popup/context menus.
2864         * ToolTip.cs: guard against timer expirations with no active control.
2865         Not sure why it happened.
2866
2867 2006-03-31  Mike Kestner  <mkestner@novell.com>
2868
2869         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
2870         text.
2871         * ToolTip.cs: Position the tooltip based on where the cursor is at
2872         popup time, not at MouseEnter time.  Add a Down state so that we don't
2873         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
2874         positioning offset. Lookup DisplaySize at positioning time, since it
2875         can theoretically change during invocation.
2876         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
2877         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
2878
2879 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
2880
2881         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
2882           Fixes behaviour when the Text property of the box is String.Empty
2883
2884 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
2885
2886         * XplatUIX11.cs: Only send mouseleave for our client windows, not
2887           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
2888           a window)
2889
2890 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
2891
2892         * FileDialog.cs: Visual enhancement for the popup buttons in 
2893           PopupButtonPanel
2894
2895 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
2896
2897         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
2898           code
2899
2900 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
2901
2902         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
2903           highlighted menu items to match ms
2904
2905 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
2906
2907         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
2908
2909 2006-03-30  Mike Kestner  <mkestner@novell.com>
2910
2911         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
2912         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
2913         go active to account for HotLight to Selected transition.
2914         * MenuItem.cs: add internal Selected prop. Fill out the Status
2915         property by calculating it from item info. Add HotLight,
2916         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
2917
2918 2006-03-30  Mike Kestner  <mkestner@novell.com>
2919
2920         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
2921
2922 2006-03-29  Jackson Harper  <jackson@ximian.com>
2923
2924         * Form.cs: Implement TODO.
2925
2926 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
2927
2928         * PrintPreviewDialog.cs: Implemented missing methods and events; still
2929           missing proper dialog setup in the constructor
2930
2931 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
2932
2933         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
2934         * Control.cs:
2935           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
2936           - Fixed ResetBindings and removed TODO
2937           - Added check for cross-thread calls to get_Handle()
2938           - Added Marshaller attribute for set_Font to satisfy class status
2939         * FontDialog.cs: Removed TODOs that seemed implemented
2940         * UpDownBase.cs: Removed unneeded TODO and Fixme
2941         * MessageBox.cs: Implemented support for Default button and removed TODO
2942         * FileDialog.cs: Removed obsolete TODO
2943         * DomainUpDown.cs: Removed obsolete TODO
2944         * ButtonBase.cs: Removed obsolete TODO
2945         * XplatUIWin32.cs: Removed obsolete TODO
2946         * Form.cs:
2947           - Removed obsolete TODO
2948           - Calling CheckAcceptButton when the acceptbutton is changed to allow
2949             internal status updates
2950           - Making sure the active control is selected when the control is created
2951         * CurrencyManager.cs: Removed obsolete TODO
2952
2953 2006-03-29  Mike Kestner  <mkestner@novell.com>
2954
2955         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
2956         of PrintPreviewDialog and RichTextBox.
2957
2958 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
2959
2960         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
2961           DarkDark, Light and LightLight colors for a specific color
2962         * ThemeWin32Classic.cs:
2963           - Use Button drawing code to draw RadioButtons and CheckBoxes with
2964             Appearance = Button 
2965           - Make use of the new ResPool helper CPColor
2966           - Draw ProgressBar and StatusBar with correct 3D borders
2967
2968 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
2969
2970         * ColorDialog.cs: Return selected color. Fixes bug #77940.
2971
2972 2006-03-28  Mike Kestner  <mkestner@novell.com>
2973
2974         * ListView.cs: fix Icon layout to plan for scrollbar widths when
2975         calculating col/row counts.
2976
2977 2006-03-28  Mike Kestner  <mkestner@novell.com>
2978
2979         * ColumnHeader.cs:
2980         * ListView.cs:
2981         * ListViewItem.cs:
2982         * Menu.cs: 
2983         switch to explicit interface method implementation for some methods
2984         corcompare identifies as inconsistent with MS.
2985
2986 2006-03-28  Mike Kestner  <mkestner@novell.com>
2987
2988         * MainMenu.cs: 
2989         * Menu.cs:
2990         add a few missing methods from the class status output.
2991
2992 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
2993
2994         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
2995           correct.
2996
2997 2006-03-28  Mike Kestner  <mkestner@novell.com>
2998
2999         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
3000
3001 2006-03-27  Mike Kestner  <mkestner@novell.com>
3002
3003         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
3004         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
3005
3006 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
3007
3008         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
3009
3010 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
3011
3012         * ThemeWin32Classic.cs:
3013           - GroupBox: Inserted a little gap between the text and the lines
3014             on the right side
3015           - Made the code in CPDrawBorder3D more readable
3016           - Corrected the drawing location of the up and down arrows in 
3017             CPDrawScrollButton
3018
3019 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
3020
3021         * ControlPaint.cs: Corrected line widths in DrawBorder for
3022           ButtonBorderStyle Inset and Outset
3023
3024 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
3025
3026         * ThemeWin32Classic.cs:
3027           - Rewrote the totally broken CPDrawBorder3D method. That was
3028             one of the main problems for the terrific ThemeWin32Classic
3029             look
3030           - Updated and corrected Button drawing
3031           - Correct the dimensions of the SizeGrip to match ms ones
3032           - Removed a small drawing glitch in DrawComboBoxEditDecorations
3033         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
3034           Border3DStyle.Sunken to match ms.
3035
3036 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
3037
3038         * ThemeWin32Classic.cs: First small part of the "de-uglify
3039           ThemeWin32Classic" effort, SizeGrip
3040
3041 2006-03-24  Jackson Harper  <jackson@ximian.com>
3042
3043         * XplatUIX11.cs: Give a max idle time of one second, this matches
3044         MS and forces an Idle event every second when there are no other
3045         events in the queue.
3046
3047 2006-03-24  Mike Kestner  <mkestner@novell.com>
3048
3049         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
3050         * ListView.Item.cs: fix layout issues with null image lists and images
3051         smaller than checkbox size.
3052         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
3053         mode like MS does.  It's weird, but consistent.  ;-)
3054         Fixes #77890.
3055
3056 2006-03-24  Mike Kestner  <mkestner@novell.com>
3057
3058         * ListView.cs: Scroll wheel support for the item control.  Fixes
3059         #77839.
3060
3061 2006-03-23  Jackson Harper  <jackson@ximian.com>
3062
3063         * ScrollableControl.cs: Special case negative sized areas, not
3064         zero.
3065         * MonthCalendar.cs: Save the rect of the clicked date so we can
3066         use it for invalidation.
3067         - Try to cut down on the number of invalidates
3068         - Invalidate the rect the mouse is over and was over when moving
3069         the mouse, so we get the focus box following the cursor.
3070
3071 2006-03-23  Mike Kestner  <mkestner@novell.com>
3072
3073         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
3074         focus rectangle drawing. Fixes #77835.
3075
3076 2006-03-23  Mike Kestner  <mkestner@novell.com>
3077
3078         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
3079         the if and else if and reverting back to the original == check on the
3080         None conditional.
3081
3082 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
3083
3084         * FontDialog.cs: Update the example panel if the selected index of
3085           the fontListBox changes.
3086
3087 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
3088
3089         * FileDialog.cs: Make FileDialog remember which directory it was in
3090           last in the same execution.
3091
3092 2006-03-22  Mike Kestner  <mkestner@novell.com>
3093
3094         * FileDialog.cs: make the DropDownMenu on the toolbar display
3095         RadioChecks since they are mutually exclusive and that's what MS does.
3096
3097 2006-03-22  Mike Kestner  <mkestner@novell.com>
3098
3099         * Theme.cs: add Color param to CPDrawMenuGlyph.
3100         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
3101         checks and radio marks and arrows are visible on highlighted items.
3102         * ControlPaint.cs: update to use new Theme signature.
3103
3104 2006-03-22  Mike Kestner  <mkestner@novell.com>
3105
3106         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
3107         is active. Fixes #77870.
3108
3109 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
3110
3111         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
3112           to be focused/selected after startup
3113
3114 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
3115
3116         * ColorDialog.cs: 
3117           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
3118             CustomColors and ShowHelp properties
3119           - Some internal rewrites to get better results when using the
3120             ColorMatrix
3121
3122 2006-03-22  Mike Kestner  <mkestner@novell.com>
3123
3124         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
3125         HoverSelection.  Fixes #77836.
3126
3127 2006-03-22  Mike Kestner  <mkestner@novell.com>
3128
3129         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
3130         ToggleButtons.  (De)Sensitize the Back button around a stack count of
3131         1, not 0.  Update ButtonSize based on a pixel count of the win32
3132         control.  Adjust the toolbar size/location for new button size.
3133
3134 2006-03-22  Jackson Harper  <jackson@ximian.com>
3135
3136         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
3137         true.
3138         * ScrollBar.cs: When doing increments and decrements we need to
3139         set the Value property so that ValueChanged gets raised. A
3140         possible optimization here would be to make an internal SetValue
3141         that doesn't invalidate immediately.
3142         * ToolTip.cs: Tooltips get added to their container (when
3143         supplied) so they get disposed when the container is disposed.
3144         - Don't create tooltips for String.Empty. This prevents all these
3145         little 2-3 pixel windows from showing up when running nunit-gui
3146         and driving me mad.
3147         * Form.cs: Don't set topmost when setting the owner if the handles
3148         haven't been created yet.  The topmost set will happen when the
3149         handles are created.
3150
3151 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
3152
3153         * XplatUIX11.cs:
3154           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
3155           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
3156             visible (to allow them to recalculate their sizes)
3157
3158 2006-03-21  Mike Kestner  <mkestner@novell.com>
3159
3160         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
3161         methods. Removed a ton of redundant code.  Still not really happy with
3162         the border rendering, but I think that's mainly because of the
3163         ControlDarkDark being black instead of a dark grey. Depending on how 
3164         close we want to be, we might want to revisit those color choices.
3165         Among the new features added during the refactor were DropDownArrow
3166         pressed rendering, Disabled image rendering.  Proper flat appearance
3167         boundary rendering.  Removed the Divider and Wrapping dividers since I
3168         can't figure out any combination of themes and conditions to make the
3169         MS control draw a horizontal line on a toolbar despite what the
3170         Divider property docs indicate.
3171         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
3172         conditions and incorrect layout.  Updated to coding standard.
3173         * ToolBarButton.cs: refactored layout and positioning code from
3174         ToolBar to here.  Invalidate wherever possible instead of forcing
3175         redraws of the whole toolbar. 
3176         (Known remaining issues: explicit ButtonSize smaller than provided
3177         images.)
3178
3179 2006-03-21  Mike Kestner  <mkestner@novell.com>
3180
3181         * ContextMenu.cs (Show): use the position parameter instead of just
3182         showing at the MousePosition.
3183
3184 2006-03-21  Jackson Harper  <jackson@ximian.com>
3185
3186         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
3187         control handle this.
3188         * TreeNodeCollection.cs: If we are clearing the root node we need
3189         to reset top_node so calcs can still happen.
3190         * ThemeWin32Classic.cs: This is a Flags so we need to check
3191         properly.
3192         
3193 2006-03-21  Jackson Harper  <jackson@ximian.com>
3194
3195         * DataGrid.cs: Create columns when the binding context has been
3196         changed.
3197         * X11Structs.cs: Keysyms are uints.
3198         - Add size to fix build.
3199
3200 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
3201
3202         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
3203           XplatUIOSX.cs: 
3204           - Added ResetMouseHover method to allow controls to retrigger
3205             hovering if they need it more than once
3206           - Implemented MouseHoverTime and MouseHoverSize properties
3207         * Timer.cs: Start() must reset the interval
3208         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
3209           properties
3210
3211 2006-03-21  Jackson Harper  <jackson@ximian.com>
3212
3213         * X11Keyboard.cs: improved layout detection. Move the nonchar
3214         tables into this file.
3215         * KeyboardLayouts.cs: Move the tables into resource files.
3216
3217 2006-03-21  Mike Kestner  <mkestner@novell.com>
3218
3219         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
3220
3221 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
3222
3223         * Mime.cs: Various speed optimizations. Looking up mime types
3224           is now 2 times faster than before
3225
3226 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
3227
3228         * CreateParams.cs: Added internal menu field
3229         * Control.cs: 
3230           - Switched call order for UpdateBounds; now we always call
3231             the one that also takes ClientSize, and we're calculating the 
3232             client size via driver method in the others. The previous
3233             method of tracking client size by difference wasn't working
3234             for forms where even the starting client size wouldn't match
3235             the overall form size (due to borders) (Part of fix for #77729)
3236           - CreateParams(): Do not use parent.Handle unless the handle is
3237             already created. Causes havoc with Nexxia and throws off our
3238             creation of controls
3239         * XplatUIX11.cs:
3240           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
3241           - Switched handling of ConfigureNotify over to new PerformNCCalc 
3242             method (consolidates code)
3243           - Changed RequestNCRecalc to use new PerformNCCalc method
3244           - Added calls to RequestNCRecalc when menus and borders are changed
3245             to allow app to set NC size. (Part of fix for #77729) This matches
3246             when MS send a WM_NCRECALC on Win32 windows.
3247           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
3248             (Part of fix for #77729). This matches what MS does, they also
3249             send that message when the form is made visible.
3250           - XException.GetMessage: Improved usability of X errors by including
3251             a translation of the window into Hwnd and Control class
3252           - Improved debug info for window creation, reparenting and destruction
3253           - Created helper method WindowIsMapped() [Currently not used]
3254         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
3255         * Form.cs:
3256           - CreateParams: Now setting our menu on the new internal menu field
3257           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
3258             avoid calculating the same property twice
3259         * Hwnd.cs:
3260           - Improved usability of ToString() for debugging purposes
3261           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
3262             determine the height of the menu, instead of just the font. This
3263             required to also create a graphics context and to keep a bmp 
3264             around (for performance reasons)
3265
3266 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
3267
3268         * MenuAPI.cs: Added OnMouseUp method
3269         * Form.cs:
3270           - Now remembering the requested client size, avoids size errors
3271           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
3272             instead of base if the menu is active. This is required due to
3273             control now capturing and releasing on down/up and it would
3274             prematurely release our menu capture
3275
3276 2006-03-17  Jackson Harper  <jackson@ximian.com>
3277
3278         * KeyboardLayouts.cs: Add the czech layouts.
3279
3280 2006-03-16  Jackson Harper  <jackson@ximian.com>
3281
3282         * Control.cs: Use the viewport space when sizing not the controls
3283         client size, so things like ScrollableControl that effect the
3284         viewport size (when scrollbars are added) are computed correctly.
3285         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
3286         of ManagerEntrys.
3287         - Handle creating BindingManagers for null data sources.
3288         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
3289         source, otherwise when rows are added they are added to the 'fake'
3290         datasource and we will crash when trying to set the position in
3291         those rows.
3292         - Use Implicit scrollbars on the datagrid so they arent
3293         selectable.
3294         
3295 2006-03-16  Jackson Harper  <jackson@ximian.com>
3296
3297         * Binding.cs:
3298         * InternalWindowManager.cs:
3299         * MdiWindowManager.cs:
3300         * X11Keyboard.cs: I really want Mike to love me again (fix
3301         compiler warnings).
3302
3303 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
3304
3305         * DataGrid.cs:
3306           - OnMouseDown: Switch to editing mode when clicking on the cell
3307                          even if we're clicking on the cell that's currently 
3308                          selected
3309           - ProcessGridKey: Left/Right now wrap like MS.Net does
3310           - ProcessGridKey: Tab now knows to add a new row when tab is
3311                             pressed in the cell of the last column of the 
3312                             last row
3313           - ProcessGridKey: Enter now adds another row  if pressed in the last
3314                             row and selectes the new row, same column cell
3315           - ProcessGridKey: Home/End navigate columns, not rows, like 
3316                             originally implemented
3317           - Broke ProcessKeyPreview code out into an extra Internal method
3318             so it can be called from the edit code
3319         * DataGridTextBox.cs (ProcessKeyMessage):
3320           - Switched to accept Tab keypresses
3321           - Added F2 handling to allow jumping to the end of the edited cell
3322           - Added logic to allow moving caret left/right inside edited cell
3323             and making the edited cell jump when the caret hits cell borders
3324           - Tab and Enter are now passed to the datagrid after being handled
3325         * TextBoxBase.cs:
3326           - Removed capture code now that Control handles it
3327           - set_SelectionStart now ensures caret is visible
3328
3329 2006-03-16  Jackson Harper  <jackson@ximian.com>
3330
3331         * TrackBar.cs: Debackwards the increment/decrement for handling
3332         mouse clicks on the bar with vertical trackbars.
3333         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
3334         bottom to match MS.
3335
3336 2006-03-16  Mike Kestner  <mkestner@novell.com>
3337
3338         * ListView.cs: make shift/ctrl keyboard and mouse selection 
3339         consistent with the MS control. Fix a bug in
3340         SelectedListViewItemCollection.Clear that was pissing me off for the
3341         better part of a day because the collection was being altered
3342         underneath us as we walked the list.
3343
3344 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
3345
3346         * Control.cs: Not sure how we could miss this so long, but it seems
3347           that MS.Net has Capture set all the way from before calling 
3348           OnMouseDown through sending the mouse events until after
3349           OnMouseUp. This will fix DataGrid's selection being set to end
3350           at the location of the MouseUp.
3351
3352 2006-03-15  Jackson Harper  <jackson@ximian.com>
3353
3354         * BindingContext.cs: Check the binding after its added so that it
3355           can initialize the binding managers and hookup to events.
3356         * Binding.cs: Data members seem to sometimes include rows/cols in
3357           the format Row.Column we now take this into account.
3358           - Hookup to the position changed event so we can update the
3359           control when the position has changed in the data set.
3360         * CurrencyManager.cs: Take into account the row/col naming
3361           convention when creating dataset tables.
3362         * BindingContext.cs: Using a newer better way of storing
3363           datasource/datamember pairs.  Hopefully this better matches MS for
3364           looking up binding managers.
3365
3366
3367 2006-03-15  Jackson Harper  <jackson@ximian.com>
3368
3369         * BindingContext.cs: The currency manager needs the data member
3370         name, if the member is a data set we use the name to find the
3371         correct table.
3372         * CurrencyManager.cs: When creating the list prefer an IList over
3373         an IListSource.
3374         - Attempt to create a DataTable from a DataSet (TODO: might need
3375         some better error checking here, although MS doesn't seem to have much)
3376         - If we have a DataTable create a view and use it as our list.
3377
3378 2006-03-15  Mike Kestner  <mkestner@novell.com>
3379
3380         * ListView.cs: keep a matrix of the icon mode layout to facilitate
3381         keyboard navigation. Support Up/Down/Left/Right selection correctly
3382         for all 4 View modes.
3383         * ListViewItem.cs: add internal row/col fields for icon layouts.
3384
3385 2006-03-15  Jackson Harper  <jackson@ximian.com>
3386
3387         * TabControl.cs: Redraw the tabs when we resize so their newly
3388         calculated sizes are drawn on screen.
3389         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
3390         composite characters.
3391         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
3392         - filter events so that composite characters can be created
3393         patches by peter
3394         * X11Structs.cs: Add XIMProperties enum.
3395
3396 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
3397
3398         * Control.cs (BringToFront, SendToBack): Don't use window or handle
3399           unless it's created
3400
3401 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
3402
3403         * Control.cs (PerformLayout): We don't need to consider visiblity
3404           for anchoring, only for docking. This fixes 'whacky' alignment
3405           in listbox and other controls that use implicit scrollbars after
3406           the previous PerformLayout patch
3407         * ListBox.cs: Switched to use implicit scrollbars
3408           
3409 2006-03-14  Mike Kestner  <mkestner@novell.com>
3410
3411         * ToolBar.cs: 
3412         * VScrollBar.cs:
3413         - chain up the "new event" overrides to base and use
3414         OnEvent to raise them.  Part of fix for bug #76509.
3415
3416 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
3417
3418         * FileDialog.cs: Do not select an item in the parent directory
3419           on backspace
3420
3421 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
3422
3423         * Control.cs (PerformLayout): It would seem that we considered
3424           invisible windows for our layout. Not quite the right thing
3425           to do. Now we don't any longer, thereby fixing bug #76889.
3426
3427 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
3428
3429         * Control.cs (CanFocus): I goofed. A control can have focus 
3430           even though it's not selectable. Made it match MS docs.
3431
3432 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
3433
3434         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
3435           center by default (fixes #76895)
3436         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
3437           all uses of Border3DSides.All with the explicit ORd together
3438           Left|Right|Top|Bottom because I assume that nobody was aware 
3439           that All also implies a center fill. Most places I checked had
3440           a fill right above.
3441         * ProgressBarStyle.cs: Added
3442
3443 2006-03-13  Mike Kestner  <mkestner@novell.com>
3444
3445         * ListView.cs: fix breakage in drag shadow header positioning 
3446         from Peter's csc compilation fix.
3447
3448 2006-03-13  Mike Kestner  <mkestner@novell.com>
3449
3450         * ListView.cs: fix NRE produced by backspacing twice in a focused
3451         FileDialog.
3452
3453 2006-03-13  Mike Kestner  <mkestner@novell.com>
3454
3455         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
3456
3457 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
3458
3459         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
3460           be changed
3461         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
3462           the allowed size before making programmatic size changes
3463
3464 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
3465
3466         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
3467           set, metacity is broken and will still use the emty sizes in 
3468           the struct. (Fix for #77089)
3469
3470 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
3471
3472         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
3473           WindowExStyles and marked both enums as Flags
3474         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
3475           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
3476           to match WindowStyles split
3477         * XplatUIX11.cs:
3478           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
3479           - Updated to match WindowStyles split
3480         * XplatUIWin32.cs:
3481           - Fixed FosterParent creation, was using ExStyle on the Style field
3482             (This should help with Popup focus issues)
3483           - Updated to match WindowStyles split
3484
3485 2006-03-13  Jackson Harper  <jackson@ximian.com>
3486
3487         * MdiWindowManager.cs: Use the system menu height. Fixes some
3488         strange sizing issues.
3489
3490 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
3491
3492         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
3493         * TextBoxBase.cs:
3494           - Scroll to caret after inserting text (#77672)
3495           - Make scroll range one pixel higher, fixes off-by-one error (and
3496             makes underlines visible on the last line)
3497
3498 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
3499
3500         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
3501           the keyboard state from being stuck with keys in 'pressed' state when
3502           focus is switched away via keyboard
3503         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
3504           reset the keyboard if no X11 KeyUp events are expected to come
3505         * X11Structs.cs: Switched type of Visible to bool to match driver
3506
3507 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
3508
3509         * TextControl.cs:
3510           - Switched caret to be just 1 pixel wide, matches MS and looks less
3511             clunky
3512           - Moved caret display 1 pixel down from the top of the control
3513             to improve view
3514           - InsertCharAtCharet: Update the selection start if moving the caret
3515             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
3516           - No longer always creating the caret when the caret methods are
3517             called. Only the actual ShowCaret/HideCaret will do that now
3518           - Only setting caret visible if the owner control has focus
3519           - UpdateView: Added invalidation-shortcut logic for center and right 
3520             aligned text. Previously we'd update all according to the left
3521             logic which caused drawing errors. Also fixed height of invalidated
3522             areas, now properly invalidating the whole area (was off-by-one)
3523           - owner_HandleCreated: Always generate the document when the
3524             handle is created; this ensures that 
3525         * TextBoxBase.cs:
3526           - Fixed situation where caret would disappear under the right
3527             window border, also improved scrolling behaviour on left-
3528             aligned textboxes
3529           - Fixed right-aligned textboxes to have a border to the
3530             right instead of the caret being under the right border
3531         * XplatUIX11.cs:
3532           - Switched from 'nested' to simple visible/not visible tracking 
3533             for caret (part of fix for #77671)
3534           - No longer passing through translated FocusIn/FocusOut messages
3535             since we were notifying too often and the wrong windows. Instead
3536             we just notify our focussed window of receiving or loosing focus
3537         * XplatUIWin32.cs: Switched from 'nested' show/hide 
3538           counting for caret to simple visible yes/no behaviour (part of 
3539           fix for #77671)
3540
3541 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
3542
3543         * Mime.cs: Remove debug code...
3544
3545 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
3546
3547         * MimeGenerated.cs: Removed
3548         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
3549           and subclasses) from /usr/(local/)share/mime and
3550           $HOME/.local/share/mime.
3551
3552 2006-03-10  Jackson Harper  <jackson@ximian.com>
3553
3554         * MdiWindowManager.cs: Recalc the NC area when a window is
3555         maximized/restored so that the menu area is drawn on forms that
3556         don't have a menu.
3557
3558 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
3559
3560         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
3561           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
3562           us to force a WM_NCCALCRESIZE message being sent. This is needed
3563           for MDI maximizing.
3564
3565 2006-03-10  Jackson Harper  <jackson@ximian.com>
3566
3567         * Form.cs: We need to use the ActiveMenu when calculating menu
3568         height.
3569         - Fix nullref when the window manager hasn't been created yet.
3570         * Control.cs: Fix nullref when we try to bring a control to the
3571         front that has no parent.
3572         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
3573         height.
3574         - Add a dummy item to the maximized menu so it always has the
3575         correct height. Otherwise when there are no menus we don't get our
3576         icon and buttons.
3577         
3578
3579 2006-03-10  Jackson Harper  <jackson@ximian.com>
3580
3581         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
3582         stuff.
3583         * Form.cs: Make the window_state internal so the window managers
3584         can track it.
3585         - When an MDI child is maximized let its window manager create the
3586         main menu (so it can add its icon).
3587         - Notify the window managers of state changes
3588         - Let the window manager paint its buttons and handle button
3589         clicks on the menu when it is maximized.
3590         * InternalWindowManager.cs: Move the prev_bounds into the mdi
3591         window manager, since tool windows don't use it, only mdi windows.
3592         - Tell the main form that we don't want it to handle NCPAINT
3593         itself to avoid extra painting.
3594         - Handle clicks on a maximized windows menu.
3595         - Handle window state changes
3596         - Handle minimize/maximize clicks correctly by setting the window state.
3597         * MdiWindowManager.cs: Add an icon menu that (the menu you get
3598         when clicking on the forms icon).
3599         - New method to create a forms maximized menu. This is its normal
3600         menu + an icon.
3601         - Handle window state changes.
3602         - Handle sizing of maximized windows.  Maximized windows are just
3603         drawn bigger then the parent visible area. All controls are still
3604         there, they are just outside the visible area (this matches windows).
3605         * MdiClient.cs: No scrollbars when a child window is maximized.
3606         - Let the children windows figure out how big they should be when
3607         sizing maximized windows.
3608         - Implement a version of ArrangeIconicWindows somewhat similar to
3609         Windows version.  There are some little differences, but I don't
3610         think any app will rely on the layout of minimized mdi windows.
3611
3612 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
3613
3614         * Padding.cs: Several fixes to allow compiling with csc 2.0
3615
3616 2006-03-09  Jackson Harper  <jackson@ximian.com>
3617
3618         * Menu.cs:
3619         * MenuItem.cs: Cheap hack so we can add items to the list without
3620         the events being raised.  This allows adding mdi items during
3621         drawing. TODO: Should probably find a better time to add the items.
3622
3623 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
3624
3625         * ThemeWin32Classic.cs:
3626           - CheckBox_DrawText: Added logic to not wrap if not enough space
3627             is available (Fix for bug #77727)
3628           - RadioButton_DrawText: Added logic not to wrap if not enough
3629             space is available (Fix for bug #77727). Also removed some
3630             duplicate code, DrawString always drawing the regular text
3631             before hitting the if statement.
3632
3633 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
3634
3635         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
3636
3637 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
3638
3639         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
3640         * ContainerControl.cs: Partial implementation of some 2.0 scaling
3641           methods. Moved the new 2.0 properties into alphabetical order with
3642           other properties and added MonoTODO tags
3643
3644 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
3645
3646         * AutoScaleMode.cs: Added. Fix build.
3647
3648 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
3649
3650         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
3651           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
3652           and was requiring premature handle creation for calls from above
3653         * Form.cs, Control.cs: Removed handle arguments from calls to
3654           CalculateClientRect()
3655
3656 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
3657
3658         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
3659           drag_column.column_rect is MarshalByRef and can't be used that way
3660
3661 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
3662
3663         * AxHost.cs: Added deserialization constructor for 
3664           AxHost+State (fixes 77743)
3665
3666 2006-03-09  Mike Kestner  <mkestner@novell.com>
3667
3668         * ListView.cs: 
3669         - Added column drag reordering for details view.
3670         - fixed behavior when mouse is dragged off column and
3671         AllowColumnReorder is false.
3672         * ColumnHeader.cs: clone the format too in Clone.
3673         * Theme.cs: add DrawListViewHeaderDragDetails method.
3674         * ThemeWin32Classic.cs:
3675         - impl new method for drawing drag column shadows and targets.
3676         - support column offset for details mode in DrawListViewItem.
3677
3678 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
3679
3680         * TextControl.cs: Reset the char_count when the document is cleared
3681           (Fixes bug reported on mono-winforms mailing list)
3682
3683 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
3684
3685         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
3686           of calling base we simply process the key ourselves, since both
3687           DefWindowProc and the handled method would set m.Result. 
3688           (Fixes #77732)
3689
3690 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
3691
3692         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
3693           method also moves the window; instead implemented a copy of
3694           Control.ScaleCore (Part of fix for #77456)
3695         * TextBoxBase.cs: 
3696           - Created new CreateGraphicsInternal method to allow providing
3697             a graphics context when no handle is created without triggering
3698             handle creation. (Part of fix for #77456)
3699           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
3700         * TextControl.cs: 
3701           - Switched Constructor to require TextBoxBase instead of Control (to
3702             allow uncast access to CreateGraphicsInternal)
3703           - Safeguarded use of owner.Handle property. No longer accessing it
3704             unless the handle is already created.
3705           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
3706           - Now triggering a recalc when owning control becomes visible
3707         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
3708           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
3709           premature handle creation (Part of fix for #77456)
3710         * Control.cs:
3711           - We now only destroy our double-buffering buffers when the
3712             control is resized or disposed, but not when visibility
3713             changes. (The code even re-created them twice every time)
3714           - Now requiring a redraw of the buffer on visibility changes
3715             (fixes bug 77654 part 2)
3716           - Not passing OnParentVisibleChanged up unless the control
3717             is visible
3718           - CanFocus: Fixed to match MS documentation
3719           - Focus: Fixed to return actual focus state and to check if
3720             setting focus is legal before setting it
3721
3722 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
3723
3724         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
3725           when to draw focus rectangle by looking at parent focus and
3726           selected state instead. This fixes TabPages on Linux sometimes
3727           having none or multiple focus rectangles.
3728         * XplatUIX11.cs (SetFocus): 
3729           - Don't set the focus if the same window already has focus
3730           - Use SendMessage instead of PostMessage (like it's Win32
3731             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
3732             to match MS behaviour
3733         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
3734           are not selectable.
3735
3736 2006-03-07  Jackson Harper  <jackson@ximian.com>
3737
3738         * PictureBox.cs: Revert line I accidently committed last week.
3739
3740 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
3741
3742         * Control.cs: 
3743           - Added new IsRecreating and ParentIsRecreating properties to
3744             allow testing if RecreateHandle has been called on ourselves
3745             or one of our parents
3746           - WndProc(WM_DESTROY): If our control handle is being recreated
3747             we immediately need to create the handle when receiving the
3748             destroy, that way our child windows find a valid parent handle
3749             when they themselves are being recreated upon WM_DESTROY receipt
3750             (fix for bug #77654 part 1)
3751         * XplatUIX11.cs:
3752           - DestroyWindow: WM_DESTROY must be sent to our own window before
3753             notifying any child windows. MS documents that child windows
3754             are still valid when WM_DESTROY is received. (Control now relies on
3755             this behaviour)
3756           - Added some fine-grain debug options
3757
3758 2006-03-06  Jackson Harper  <jackson@ximian.com>
3759
3760         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
3761         box and base calculations off this.
3762         * MdiChildContext.cs:
3763         * MdiWindowManager.cs: Don't need to ensure scrollbars here
3764         anymore.
3765         
3766 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
3767
3768         * Splitter.cs: In situations where the affected control is added
3769           to the parent's control list after the splitter, we would not
3770           populate affected. Now we try populating it on mousedown, if
3771           it's not already set, and force it to be re-set whenever our
3772           parent changes.
3773
3774 2006-03-03  Matt Hargett  <matt@use.net>
3775
3776         * Control.cs: implement Control.Padding
3777         * Padding.cs: -Padding.All returns -1 when constructing with the
3778         implicit default ctor
3779         -Padding.ToString() matches MS.NET
3780         * ContainerControl.cs: implement
3781         ContainerControl.AutoScaleDimensions
3782         * ListControl.cs: implement ListControl.FormattingEnabled
3783         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
3784         * ButtonBase.cs:
3785         * TabPage.cs: Implement UseVisualStyleBackColor.
3786         * PictureBox.cs: Implement PictureBox.InitialImage.
3787
3788 2006-03-03  Mike Kestner  <mkestner@novell.com>
3789
3790         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
3791         event declarations to proxy to base event.
3792         * ListViewItem.cs: update to use ItemControl.
3793         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
3794         * ThemeWin32Classic.cs: update to new ListView theme API and fix
3795         column header label rendering for 0 width columns.
3796
3797 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
3798
3799         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
3800           that causes the control to be created. Fixes #77476.
3801
3802 2006-03-02  Jackson Harper  <jackson@ximian.com>
3803
3804         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
3805         expose_pending.
3806
3807 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
3808
3809         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
3810           passed in for the EventArgs (fixes #77690)
3811
3812 2006-03-01  Jackson Harper  <jackson@ximian.com>
3813
3814         * ScrollBar.cs: Refresh afterbeing resized.
3815
3816 2006-02-28  Mike Kestner  <mkestner@novell.com>
3817
3818         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
3819         Clean up a tracker compile warning.
3820         * MenuItem.cs: add internal PerformPopup method.
3821         [Fixes #77457]
3822
3823 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
3824
3825         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
3826           implicit expose) when the text is set to null
3827
3828 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
3829
3830         * RichTextBox.cs (FlushText): When newline is true, we always
3831           need to split the line, even if no text is on it and we may
3832           never eat newlines. (Fixes #77669)
3833
3834 2006-02-28  Mike Kestner  <mkestner@novell.com>
3835
3836         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
3837         and set Selected instead.
3838         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
3839         collections.
3840
3841 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
3842
3843         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
3844
3845 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
3846
3847         * FontDialog.cs:
3848           - Got rid of the panel. All controls are now directly added to
3849             the dialog form
3850           - It is now possible to set a font with the Font property
3851           - MinSize and MaxSize property do now what they should
3852           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
3853           - Searching and selecting a font with the font textbox works now,
3854             the same applies to the style and size textbox
3855           - Draw the correct 3D border in the example panel
3856           - Fixed a little mem leak (unused fonts didn't get disposed)
3857           - Many other internal updates/rewrites...
3858           - Fix typo
3859
3860 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
3861
3862         * TextControl.cs: 
3863           - InsertRTFFromStream: Added 'number of characters inserted' argument
3864           - set_SelectedRTF: Now using the number of characters to calculate
3865             the new location for the selection and cursor (x/y cannot be used
3866             due to potentially already wrapped text)
3867
3868 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
3869
3870         * TextControl.cs: Added property and implemented means to allow 
3871           disabling recalculation of a document (can be used to speed up
3872           multiple inserts and is needed to make RTF inserts predictable, see
3873           bug #77659)
3874         * RichTextBox.cs: Using the new NoRecalc property of Document to
3875           keep x/y insert locations predictable. Also makes it faster inserting
3876           large chunks of RTF
3877
3878 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
3879
3880         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
3881           it's easier for a child control to handle the other messages without
3882           having to duplicate the special functionality
3883         * TextBoxBase.cs
3884           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
3885             code to handle processing the key ourselves, in order to get 
3886             access to the result of KeyEventArgs.Handled. We now only call 
3887             ProcessKey if they key hasn't been handled already. Fixes #77526.
3888           - set_Text: If null or empty string is given, just clear the 
3889             document. Fixes part of #77526
3890
3891 2006-02-27  Jackson Harper  <jackson@ximian.com>
3892
3893         * SizeGrip.cs: Paint the background color before painting the grip
3894         so things look right.
3895         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
3896
3897 2006-02-27  Mike Kestner  <mkestner@novell.com>
3898
3899         * ListView.cs:
3900           - Restructure layout and invalidation model to remove a ton of
3901           flicker from the control and speed up performance in general.
3902           - Add manual column resize, flickers like crazy, but I already have
3903           some ideas on how I'll fix that. (#76822)
3904           - Merge the three Icon-based views into a single layout method.
3905           - Move item selection interaction logic from the item since 
3906           interaction with the collections is more appropriate to the view.
3907           - Deselection on non-item clicks.
3908         * ListViewItem.cs:
3909           - Encapsulate most of the layout. Add some internal props to trigger
3910           layout.  Move to a model where Items invalidate themselves instead
3911           of just invalidating the whole control every time something changes.
3912           - Invalidate on Text/Caption changes.
3913           - switch to an offset based layout model to avoid having to absolute
3914           position every element on item moves.
3915           - correct checkbox layout to conform to MS layout.
3916         * ThemeWin32Classic.cs:
3917           - refactor some column header drawing code.
3918           - fix string justification for column headers (#76821)
3919           - make SmallIcon labels top justified for compat with MS impl.
3920         * ThemeClearlooks.cs:
3921           - adjust to new ListViewItem internal checkbox bounds api.
3922
3923 2006-02-27  Jackson Harper  <jackson@ximian.com>
3924
3925         * Control.cs:  Change where implicit controls fall in the zorder.
3926         They are now on top of all children.
3927         - Synced AddImplicit code with Add
3928         - Removed unused enumerator.
3929         * SizeGrip.cs: Remove the TODO as its been TODONE.
3930
3931 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
3932
3933         * TextControl.cs(Insert): Combine the last lines unless the insertion
3934           string ends with \n\n, otherwise we leave one line too many (Fixes
3935           something I noticed with the testapp for #77526; the bug itself was
3936           already fixed in the previous checkin)
3937
3938 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
3939
3940         * RichTextBox.cs:
3941           - SelectionColor and SelectionFont methods no longer set absolute
3942             styles. Instead, the keep font or color respectively (This 
3943             resolves a long-standing FIXME in the code)
3944           - When flushing RTF text, the insert code now considers text trailing
3945             behind the insertion point (Fixes the bug where when replacing
3946             the selected text via SelectedRTF the remainder of the line behind 
3947             the selection would stay on the first insertion line)
3948         * TextBoxBase.cs:
3949           - AppendText now updates the selection points after inserting text
3950           - AppendText now ensures that the last tag (sometimes 0-length) of
3951             the document is used for the style information (Fixes part of 
3952             bug #77220)
3953         * TextControl.cs:
3954           - Created new FontDefiniton class to allow describing partial style
3955             changes
3956           - StreamLine() now takes a lines argument, to allow it to decide
3957             whether an encountered zero-length tag is the last in the document
3958             (which must be kept to not loose the font/color contained in it,
3959             for later appends)
3960           - Created Combine() and Split() methods for Marker structs, to 
3961             support marker updates due to reformatted documents (soft line
3962             wraps)
3963           - Implemented Document.CaretTag setter
3964           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
3965             of the last line (Not the cause, but also exposed by bug #77220)
3966           - Added LineTag argument to InsertString method, to allow callers
3967             to force a certain tag to be used (required to force use of the
3968             trailing zero-length tag of a document)
3969           - Now updating markers in Combine(), to avoid stale tag markers
3970           - Added some method descriptions to aid maintenance
3971           - Implemented new FormatText concept, allowing additive/subtractive
3972             formatting by only specifying the components that are to be 
3973             changed. This was needed for resolving the RTB.SelectedColor/
3974             RTB.SelectedFont fixmes
3975           - Added Break() support method to allow breaking up linetags (used
3976             for partial formatting)
3977           - Added GenerateTextFormat() method. It is used for partial 
3978             formatting and allows to generate a full font/color from given
3979             attributes and an existing tag.
3980
3981 2006-02-26  Jackson Harper  <jackson@ximian.com>
3982
3983         * XplatUIX11.cs:  Use the correct caption height.
3984         - Translate hittest coordinates to screen coords to match MS.
3985         * XplatUIWin32.cs: When we create MDI windows we need to reset
3986         some of the style flags, so we get a nice blank window, and can
3987         draw all the decorations ourselves.
3988         - Set a clipping rectangle on the non client paint event, the
3989         window manager drawing code needs one.
3990         * Form.cs: The window manager needs to know when the window state
3991         has been updated.
3992         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
3993         don't need to factor in border and title sizes in these
3994         methods. TODO: Remove the args and fix the call points.
3995         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
3996         properly.
3997         - Let the driver set the cursors.
3998         - Improve active window handling
3999         - Correct sizes for title bars and buttons.
4000         - Match MS drawing better
4001         * MdiWindowManager.cs: We don't need to handle border style
4002         updates specially anymore.
4003         - Check for scrollbars when windows are done moving
4004         - Handle Active properly.
4005         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
4006         correctly. I am spewing the exception though, so we don't hide the
4007         bugs.
4008         
4009 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
4010
4011         * DataGridViewRowPostPaintEventArgs.cs,
4012           DataGridViewCellPaintingEventArgs.cs,
4013           DataGridViewRowCollection.cs,
4014           DataGridViewRowPrePaintEventArgs.cs,
4015           DataGridViewCell.cs: Clear a few warnings and implement a few
4016           exceptions that should be thrown.
4017
4018 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
4019
4020         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
4021           'inheriting' our parent's (non-default) cursor. (Part of
4022            the fix for #77479)
4023
4024 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
4025
4026         * XplatUIX11.cs: Fixed cast to make csc happy
4027
4028 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
4029
4030         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
4031           it's for the client area (part of fix for #77479 and needed
4032           for MDI window cursor handling)
4033         * XplatUIX11.cs
4034           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
4035             the appropriate default cursors and also passing the message
4036             up the parent chain 
4037           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
4038             for non-client areas
4039
4040 2006-02-15  Jackson Harper  <jackson@ximian.com>
4041
4042         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
4043         is a real MDI window
4044
4045 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
4046
4047         * X11DesktopColors.cs: Instead of checking the desktop session
4048           string for "KDE" check if it starts with "KDE"
4049
4050 2006-02-10  Jackson Harper  <jackson@ximian.com>
4051
4052         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
4053         systems).
4054
4055 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
4056
4057         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
4058           errors
4059         * ColorDialog.cs:
4060           - Got rid of the panel. All controls are now directly added to
4061             the dialog form
4062           - Changed to mono coding style
4063
4064 2006-02-10  Jackson Harper  <jackson@ximian.com>
4065
4066         * InternalWindowManager.cs: We don't need the set visibility to
4067         false hack anymore now that peter has written beautiful shutdown
4068         code.
4069
4070 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
4071
4072         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
4073           where already explicitly destroyed
4074
4075 2006-02-10  Jackson Harper  <jackson@ximian.com>
4076
4077         * MdiClient.cs: Handle the case where windows are too high or to
4078         the left and we need scrollbars.
4079
4080 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
4081
4082         * MimeIcon.cs: Added some icons
4083         * FileDialog.cs:
4084           - Fixed bug #77477
4085           - Got rid of the panel. All controls are now directly added to
4086             the dialog form
4087           - Changed to mono coding style
4088           - On Linux "My Computer" and "My Network" will now show some
4089             more usefull information. A new class, MasterMount, gathers
4090             this information from /proc/mount. Updated MWFFileView to make
4091             use of this information
4092           - Fixed a bug that caused FileDialog to crash when
4093             ".recently_used" file had a zero size
4094           - FilterIndex does now what it should
4095           - Some Refactoring
4096         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
4097             FileDialog changes
4098
4099 2006-02-09  Jackson Harper  <jackson@ximian.com>
4100
4101         * ComboBox.cs: Don't touch if null.
4102
4103 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
4104
4105         * Cursor.cs: 64bit safeness fix
4106         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
4107
4108 2006-02-09  Jackson Harper  <jackson@ximian.com>
4109
4110         * Form.cs: If a form is made into an MDI form update the styles so
4111         all the props can get set correctly.
4112         - Kill the mdi_container when we dont need it anymore.
4113         * InternalWindowManager.cs: Add missing NOT
4114
4115 2006-02-08  Jackson Harper  <jackson@ximian.com>
4116
4117         * InternalWindowManager.cs: Respek clipping when drawing MDi
4118         decorations.
4119
4120 2006-02-08  Jackson Harper  <jackson@ximian.com>
4121
4122         * Hwnd.cs: Add bits to track non client expose events.
4123         * XplatUIX11.cs: Track non client expose events on the hwnd. This
4124         gives us a proper invalid rect and will allow for some nice
4125         optimizations with NC client drawing
4126         - MDI windows are children windows, so move their style handling
4127         into the child window block.
4128         * InternalWindowManager.cs: Remove a state reset that was
4129         getting invoked at the wrong time. Fixes managed windows getting
4130         into a 'stuck' captured state.
4131
4132 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
4133
4134         * TextControl.cs (Document.ctor): Now initializing 
4135           selection_anchor. Fixes #77493
4136
4137 2006-02-07  Jackson Harper  <jackson@ximian.com>
4138
4139         * TrackBar.cs: The increment/decrements were backwards.
4140
4141 2006-02-07  Mike Kestner  <mkestner@novell.com>
4142
4143         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
4144         to the instance itself.
4145
4146 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
4147
4148         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
4149           on ulongs and pointers, the size differs between 32bit and 64bit
4150           systems. 
4151
4152 2006-02-07  Mike Kestner  <mkestner@novell.com>
4153
4154         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
4155         for 64 bit platforms to work around a metacity bug. 
4156
4157 2006-02-07  Jackson Harper  <jackson@ximian.com>
4158
4159         * TrackBar.cs: Process the input keys we need, and hookup to
4160         KeyDown instead of using WndProc, so we get key messages.
4161
4162 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
4163
4164         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
4165           machine we're on. 
4166         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
4167           we need to translate the XdndVersion atoms array before sending it
4168
4169 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
4170
4171         * XplatUIX11.cs: 
4172           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
4173             number of bits for the property, not the number of bytes. The
4174             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
4175             but would not crash since it specified 8 bits instead of 4 bits)
4176           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
4177             defined as XID -> long in the C headers)
4178           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
4179             references since those are now IntPtr to begin with
4180           - Switched all Atom.XXX 'int' casts to IntPtr casts
4181           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
4182           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
4183           - Added XChangeActivePointerGrab DllImport (for X11DnD)
4184         * X11Structs.cs:
4185           - Changed 'int' type for Atoms in XEvent structures to IntPtr
4186           - Changed atom in HoverStruct to be IntPtr
4187         * X11DnD.cs:
4188           - Removed local DllImports, switched code to use those from XplatUIX11
4189           - Removed/fixed casts related to the switch of Atom to be a IntPtr
4190
4191 2006-02-06  Mike Kestner  <mkestner@novell.com>
4192
4193         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
4194         method signatures in the import region.  There may still be some
4195         lingering struct marshaling issues, as I didn't drill down into those.
4196         Yet.
4197
4198 2006-02-06  Jackson Harper  <jackson@ximian.com>
4199
4200         * ComboBox.cs: Dont manually set the top_item, this is computed
4201         when the scrollbar position is set.
4202
4203 2006-02-06  Mike Kestner  <mkestner@novell.com>
4204
4205         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
4206         startup crashes on amd64.  There's other fixes needed.  All pinvoke
4207         usage of Atom needs to be mapped to IntPtr for example.  And there are
4208         likely other int/long issues to be addressed.
4209
4210 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
4211
4212         * FileDialog.cs: One more...
4213
4214 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
4215
4216         * FileDialog.cs: Next try
4217
4218 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
4219
4220         * FileDialog.cs: First part of fix for #77464
4221
4222 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
4223
4224         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
4225           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
4226           AcceptButton border drawing.
4227
4228 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
4229
4230         * Form.cs: Moved positioning of form after auto scaling is applied,
4231           otherwise it would possibly use wrong form size.
4232
4233 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
4234
4235         * Control.cs (RecreateHandle): No need to re-create any child
4236           controls, the child windows will get destroyed automatically by
4237           the windowing system or driver, and re-created when the handle
4238           is being accessed the first time. Fixes #77456
4239         * Form.cs: No longer setting the form to closing if the handle is 
4240           being recreated. This seems like the right thing to do, don't
4241           have a bug or testcase for this, though.
4242
4243 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
4244
4245         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
4246           controls to avoid unwanted side effects
4247
4248 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
4249
4250         * Control.cs: 
4251           - ScaleCore needs to scale the bounds, not the ClientSize of the 
4252             control. Fixes #77416.
4253           - DefaultSize is 0,0 for control
4254         * TextBoxBase.cs: 
4255           - DefaultSize is 100, 20
4256           - SetBoundsCore: Now enforcing the height, no matter if the provided
4257             height is more or less than the preferred one, as long as AutoSize
4258             is on
4259         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
4260
4261 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
4262
4263         * Control.cs:
4264           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
4265             call unless both performLayout is true *and* we have a pending
4266             layout change
4267           - ResumeLayout: MS does not completely nest Suspend and Resume,
4268             they bottom out at 0, fixed our code to match that.
4269           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
4270             SetBoundsCore, we were updating even when we shouldn't. This fixes
4271             swf-anchors mis-anchoring when resizing the app fast and lots.
4272           - UpdateDistances: Now only setting the left and top distance if 
4273             we have a parent and are not suspended, this is based on
4274             a suggestion by Don Edvaldson in bug #77355.
4275           - OnVisibleChanged: Fixed logic when to create the control. We may
4276             not create the control if we have no parent or if it's not visible;
4277             switched to using Visible property instead of is_visible field 
4278             since the property also considers parent states. This fixes a bug
4279             when starting Paint.Net
4280
4281 2006-02-02  Jackson Harper  <jackson@ximian.com>
4282
4283         * Form.cs: If the forms handle hasn't been created yet don't call
4284         into xplatui to make it top most, just set the topmost flag on the
4285         form in CreateParams
4286         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
4287
4288 2006-02-01  Jackson Harper  <jackson@ximian.com>
4289
4290         * ScrollableControl.cs: Refactored the Recalculate method a
4291         little, this wasn't handling all the variants of bottom and right
4292         bars needed to be added and added/removed based on their
4293         counterparts being added/removed (which changes the drawable
4294         size). Also we special case client widths and heights of 0 and
4295         don't add the scrollbar for those.
4296
4297 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
4298
4299         * XplatUIX11.cs: 
4300           - Added method to get AbsoluteGeometry(); currently unused, but might
4301             be used in the future, if we try again to figure out toplevel
4302             coordinates with some more crappy window managers
4303           - Added FrameExtents() method to retrieve the WM set decoration size
4304           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
4305             to deal with at least KDE, FVWM and metacity (Fixes #77092)
4306         * Hwnd.cs: 
4307           - Added whacky_wm tracking var for metacity
4308           - Added logic to have default menu height if the actual menu height
4309             has not yet been calculated (part of fix for #77426)
4310         * Form.cs: Keep track whether client size has been set and re-set 
4311           it if a menu is added/removed afterwards (Fixes #77426)
4312
4313 2006-01-31  Jackson Harper  <jackson@ximian.com>
4314
4315         * Control.cs: When a new Site is set on the component attempt to
4316         pull the AmbientProperties from it.
4317
4318 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
4319
4320         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
4321           in the background of the owning form. Fixes #77332
4322
4323 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
4324
4325         * MimeIcon.cs: Fix for #77409
4326
4327 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
4328
4329         * XplatUIX11GTK.cs: Initial import
4330
4331 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
4332
4333         * FixedSizeTextBox: fixes class signature
4334
4335 2006-01-30  Jackson Harper  <jackson@ximian.com>
4336
4337         * FixedSizeTextBox.cs: New internal class that represents a
4338         textBox that will not be scaled.
4339         * TreeView.cs:
4340         * ComboBox.cs:
4341         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
4342         standard TextBox.
4343                 
4344 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
4345
4346         * XplatUIX11.cs: Retrieve default screen number instead of
4347           assuming 0. Attempted fix for #77318
4348
4349 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
4350
4351         * XplatUIWin32.cs: 
4352           - GetWindowPos: When a window is parented by FosterParent, use 
4353             the desktop instead of FosterParent as the base to get coordinates
4354           - CreateWindow: Don't make FosterParent the parent window for Popups
4355             if we don't want a taskbar entry, Popups automatically don't get one
4356         * Hwnd.cs: Need to call remove to actually remove the key from the
4357           hash table
4358
4359 2006-01-30  Mike Kestner  <mkestner@novell.com>
4360
4361         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
4362
4363 2006-01-30  Jackson Harper  <jackson@ximian.com>
4364
4365         * TreeView.cs:
4366         * TreeNode.cs: Raise events no matter how the treenode is
4367         checked. Patch by Don Edvalson.
4368
4369 2006-01-30  Jackson Harper  <jackson@ximian.com>
4370
4371         * TreeNode.cs: Signature fix.
4372
4373 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
4374
4375         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
4376
4377 2006-01-20  Mike Kestner  <mkestner@novell.com>
4378
4379         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
4380         event forwarding when menus are active.
4381         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
4382         Most of the patch is pdb's with a little rework.
4383
4384 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
4385
4386         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
4387           Removed GetMenuDC and ReleaseMenuDC methods; replaced
4388           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
4389         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
4390         * InternalWindowManager.cs: Added use of PaintEventStart/End to
4391           handling of WM_NCPAINT message, now passing the PaintEventArgs to
4392           the PaintWindowDecorations method
4393         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
4394         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
4395         * MenuAPI.cs: Made tracker window invisible
4396         * XplatUIWin32.cs:
4397           - Removed GetMenuDC and ReleaseMenuDC methods
4398           - Implemented the client=false path for PaintEventStart and
4399             PaintEventEnd
4400
4401 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
4402
4403         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
4404         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
4405           styles
4406         * Form.cs: 
4407           - MaximizeBox, MinimizeBox: Recreate the handle when setting
4408             the style
4409           - CreateParams: Reworked the styles to match MS look'n'feel,
4410             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
4411             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
4412
4413 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
4414
4415         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
4416           window is not mapped, since otherwise every form that's being 
4417           created is considered minimized, which is wrong.
4418         * Form.cs: Catching the exception and returning our internal value
4419           instead
4420
4421 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
4422
4423         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
4424           SetWindowMinMax() to have means to tell the driver about the minimum,
4425           maximum and maximized state window sizes. (Part of the fix for #76485)
4426         * Form.cs:
4427           - Implemented tracking of minimum and maximum window size, now calling
4428             new SetWindowMinMax() driver method to tell the driver (Part of the
4429             fix for #76485)
4430           - Finished handling of WM_GETMINMAXINFO method, now setting all values
4431             (Completes fix for #76485)
4432           - Calling new SetWindowMinMax driver method when the handle for a 
4433             form is created, to make sure the driver knows about it even if
4434             the values have been set before the window was created
4435           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
4436             to avoid messing up our anchoring calculations (partial fix
4437             for #77355)
4438         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
4439         * XplatUIX11.cs:
4440           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
4441           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
4442             (and presumably other freedesktop.org compliant WMs). Left the
4443             assumption unmapped=minimized, needed for SetVisible to work.
4444           - Now setting the window state when creating windows
4445           - Fixed SetVisible to consider/set the window state when mapping
4446             a Form. We cannot set the state before it's mapped, and we cannot
4447             use Form.WindowState once it's mapped (since it would ask the
4448             driver and get 'normal'. Therefore, we grab the state before
4449             mapping, map, and then set state.
4450           - Implmemented SetWindowMinMax method; Metacity does not seem to
4451             honor the ZoomHints, though.
4452         * XplatUIWin32.cs:
4453           - Removed MINMAXINFO (moved to XplatUIStructs)
4454           - Added SetWindowMinMax stub (on Win32 the only way to set that
4455             information is in response to the WM_GETMINMAXINFO message, which
4456             is handled in Form.cs)
4457           - Added logic to SetVisible to set the proper window state when a 
4458             form is made visible (fixes #75720)
4459
4460 2006-01-26  Jackson Harper  <jackson@ximian.com>
4461
4462         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
4463         same way we handle them with Invoke.
4464
4465 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
4466
4467         * Form.cs:
4468           - Added tracking of window state so CreateParams can return
4469             the appropriate style
4470           - Moved setting of WS_CAPTION style in CreateParams to allow
4471             styles without caption
4472         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
4473           control if the TextBox property is accessed. Fixes #77345
4474         * Control.cs:
4475           - get_Created: now uses is_disposed and is_created to determine
4476             return value (suggested by Jackson)
4477           - CreateHandle: No longer exits if the handle is being recreated
4478           - RecreateHandle: If the handle is not yet created call the 
4479             appropriate method to create either control or handle. If the
4480             control is already created CreateHandle will simply exit instead
4481             of just creating the handle
4482         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
4483           now SendMessage WM_DESTROY directly to the control when DestroyWindow
4484           is called.
4485         * XplatUIX11.cs: 
4486           - When DestroyWindow is called, instead of waiting for the 
4487             DestroyNotification from X11, we directly post it to the WndProc
4488             and immediately dispose the hwnd object.
4489             Same applies to DestroyChildWindows, and this obsoletes the
4490             expose_pending tracking. Contrary to Win32 behaviour we destroy our
4491             child windows before our own, to avoid X11 errors.
4492           - Removed the direct sending of WM_PAINT on UpdateWindow
4493         * XplatUIWin32.cs:
4494           - Reworked DoEvents and GetMessage to allow access to internal queue
4495             even when trying non-blocking access to the queue.  Fixes #77335. 
4496             Based on a patch suggestion by Don Edvalson. The new private
4497             GetMessage can now also be used as a backend for a PeekMessage
4498             frontend version.
4499         * XplatUI.cs: Improved debug output for CreateWindow
4500
4501 2006-01-25  Jackson Harper  <jackson@ximian.com>
4502
4503         * Help.cs: Allow param to be null. Patch by Don Edvalson.
4504
4505 2006-01-24  Jackson Harper  <jackson@ximian.com>
4506
4507         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
4508         when we have a MaxDropItems lower then the selected index.
4509
4510 2006-01-24  Jackson Harper  <jackson@ximian.com>
4511
4512         * Control.cs: Don't allow selection of non visible controls, allow
4513         selection of controls without parents.
4514
4515 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
4516
4517         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
4518         * DataGridDrawingLogic.cs: Add editing row only when is necessary
4519
4520 2006-01-23  Jackson Harper  <jackson@ximian.com>
4521
4522         * UpDownBase.cs: Make the textbox handle all the selection and
4523         tabbing. This fixes tabing to updown controls.
4524
4525 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
4526
4527         * TextBoxBase.cs: fixes exception thown the object was null
4528
4529 2006-01-23  Jackson Harper  <jackson@ximian.com>
4530
4531         * ButtonBase.cs: Just use the base CreateParams. They set
4532         visibility and enabled correctly.
4533         * ComboBox.cs:
4534         * TrackBar.cs:
4535         * MonthCalendar.cs: Lets let the base set as much of the
4536         createparams as possible so we don't have duplicate code all over
4537         the place.
4538
4539 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
4540
4541         * ThemeGtk.cs: Added TrackBar and some experimental code to
4542           get double buffering back
4543
4544 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
4545
4546         * DataGrid.cs: Allows row number set internally higher than the last
4547         when creating a new row. Restores the editing functionality.
4548
4549 2006-01-20  Mike Kestner  <mkestner@novell.com>
4550
4551         * MimeIcon.cs: delay Image creation until the icons are accessed
4552         instead of creating 190 scaled images on GnomeHandler startup.
4553
4554 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
4555
4556         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
4557           first call base before processing the event. Fixes #77279
4558
4559 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
4560
4561         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
4562           that the stride for the GDI bitmap would match the stride of
4563           a DIB or a Cursor.
4564
4565 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
4566
4567         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
4568
4569 2006-01-19  Jackson Harper  <jackson@ximian.com>
4570
4571         * ComboBox.cs: Hookup the text controls keydown event so we get
4572         those when the text control has the focus.
4573
4574 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
4575
4576         * Label.cs: Now using the base events instead of defining new ones;
4577           this allows us to just call the base properties without having to
4578           duplicate all base property logic 
4579
4580 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
4581
4582         * Label.cs: A label by default is not a tabstop (Fixes one of our
4583           failing nunit tests)
4584
4585 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
4586
4587         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
4588         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
4589
4590 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
4591
4592         * Cursor.cs: Reimplemented creating cursor bitmaps without using
4593           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
4594           This fixes #77218
4595         * XplatUIWin32.cs: 
4596           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
4597             constructor creates images that can't be saved. Part of the fix
4598             for #76103
4599           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
4600           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
4601             bug fix for handling window state in forms properly)
4602
4603 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
4604
4605         * ThemeGtk.cs: Simplify ScrollBar drawing
4606
4607 2006-01-18  Jackson Harper  <jackson@ximian.com>
4608
4609         * Splitter.cs: Set the default dock style for the splitter control
4610         in the constructor.
4611
4612 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
4613
4614         * ThemeGtk.cs: Corrected StateType and ShadowType for
4615           gtk_paint_box
4616
4617 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
4618
4619         * Control.cs: Make use of Theme.DoubleBufferingSupported
4620         * ThemeGtk.cs:
4621           - Added drawing for flat style buttons
4622           - Added ScrollBar drawing
4623
4624 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
4625
4626         * ThemeClearlooks.cs: Removed some unneeded code.
4627         * ThemeGtk.cs: First part of ThemeGtk enhancements.
4628
4629 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
4630
4631         * LinkLabel.cs: We need to update the hover drawing when
4632           leaving the control as well.
4633
4634 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
4635
4636         * DataGrid.cs: Clicking on non empty areas in the columns
4637            area was giving an exception
4638
4639 2006-01-17  Jackson Harper  <jackson@ximian.com>
4640
4641         * ThemeWin32Classic.cs:
4642         * ListView.cs: Do not draw/clip the headers when the header style
4643         is None.
4644
4645 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
4646
4647         * DataGrid.cs: Fixes 77260
4648         
4649 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
4650
4651         * DataGrid.cs: Clicking on a column on a empty grid was giving
4652           an exception
4653
4654 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
4655
4656         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
4657           or any keypress will crash the grid.
4658
4659 2006-01-17  Mike Kestner  <mkestner@novell.com>
4660
4661         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
4662         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
4663         invisible/previously-visible items.
4664         [Fixes #76909]
4665
4666 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
4667
4668         * ThemeClearlooks.cs:
4669         - Added CL_Draw_Button method; now other theme controls that are 
4670           not derived from button or do not have a button can draw buttons
4671           too
4672         - Updated ComboBox drawing
4673         - Beautified RadioButton drawing
4674         - Corrected drawing of bottom and left tabs
4675         - Beautified DateTimePicker and MonthCalendar
4676         - Added CPDrawButton and CPDrawRadioButton
4677
4678 2006-01-16  Jackson Harper  <jackson@ximian.com>
4679
4680         * ComboBox.cs: Set the initial value of the scrollbar to the
4681         current index. Reduce the numbers of refreshs and IndexOfs called.
4682
4683 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
4684
4685         * FileDialog.cs: When the file listview is focused hitting the
4686           backspace key moves the fileview to the parent directory
4687
4688 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
4689
4690         * Form.cs: 
4691           - Added RecreateHandle call when changing taskbar visibility to 
4692             trigger reparenting in Win32 driver (Fixes #75719)
4693           - If a window has minimize or maximize buttons, it cannot have
4694             a help button
4695         * XplatUIWin32.cs:
4696           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
4697             the toplevel form with FosterParent (A toolwindow not on the
4698             taskbar) (Fixes #75719)
4699           - Made FosterParent a toolwindow
4700
4701 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
4702
4703         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
4704
4705 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
4706
4707         * ToolTip.cs: If SetToolTip is called from a control and the mouse
4708           is currently over that control, make sure that tooltip_window.Text
4709           gets updated
4710
4711 2006-01-13  Mike Kestner  <mkestner@novell.com>
4712
4713         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
4714
4715 2006-01-13  Jackson Harper  <jackson@ximian.com>
4716
4717         * TreeView.cs: On MS GetNodeAt never actually factors in the X
4718         value passed.  Also redraw the selected node when we recieve
4719         focus, so tabbing between trees works correctly.
4720
4721 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
4722
4723         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
4724           ~/.gconf/%gconf-tree.xml, so use
4725           .gconf/desktop/gnome/interface/%gconf.xml
4726
4727 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
4728
4729         * TextControl.cs: Draw text in gray if control is disabled
4730
4731 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
4732
4733         * TreeView.cs: Draw the focus rectangle outside the highlight, to
4734           make sure it's always visible. Fixes #76680.
4735
4736 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
4737
4738         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
4739
4740 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
4741
4742         * PageSetupDialog.cs: Added.
4743         * PrintDialog.cs: Attributes.
4744         * PrintPreviewControl.cs: Updates.
4745         * PrintPreviewDialog.cs: Updates.
4746         
4747 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
4748
4749         * Control.cs: Undid my selection check fix, since it's not needed
4750         * TextBoxBase.cs:
4751           - Now considering the presence of hscroll/vscroll when sizing
4752             vscroll/hscroll respectively. Fixed bug #77077
4753           - Added Left/Up/Down/Right to IsInputKey list to prevent
4754             ContainerControl from stealing them. This fixes what I broke
4755             with my last checkin.
4756
4757 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
4758
4759         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
4760           I finally understand how the property can be set without a setter :-)
4761
4762 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
4763
4764         * Application.cs:
4765           - Switched RunLoop to use static Message.Create to create a 
4766             Message object
4767           - Added PreProcessMessage call in runloop for keyboard events; this
4768             is part of the fix for #77219, I overlooked this originally in the
4769             MSDN doc for PreProcessMessage
4770         * Control.cs:
4771           - Removed call to PreProcessMessage from handling of keyboard 
4772             messages; it's supposed to be done in the message pump
4773           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
4774             per MSDN documentation.
4775           - IsInputChar: All chars are input chars by default; removed the 
4776             parent calling chain, MS does not document that
4777           - PreProcessMessage: If IsInputChar is true, we want to return false
4778             to allow dispatching of the message
4779           - When selecting the next control, now also check that we're not
4780             selecting ourselves again and therefore return a false positive.
4781         * TextBoxBase.cs:
4782           - Tried to match return values for IsInputKey and ProcessDialogKey
4783             to what MS returns; moved processing of our special keys outside
4784             ProcessDialogKey since MS does not seem to return true on those.
4785           - Moved code that previously was in ProcessDialogKey into new private
4786             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
4787           - Reworked handling of WM_CHAR to not have to duplicate code from
4788             Control.cs anymore, instead we simply call down to base.
4789            
4790 2006-01-12  Jackson Harper  <jackson@ximian.com>
4791
4792         * ComboBox.cs: We always need to refresh the text area when
4793         EndUpdate is called. Fixes the combobox in the file dialog.
4794         * Control.cs: Don't create the creator_thread until the controls
4795         handle is created.  Also in InvokeRequired we check if the
4796         creator_thread is null. This gives the effect of InvokeRequired
4797         returning true if the controls handle is not created yet, and
4798         matches MS.
4799
4800 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
4801
4802         * XplatUI.cs:
4803           - Added StartLoop() driver method. This is used to allow drivers to
4804             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
4805             loop for a particular thread
4806           - Added EndLoop() driver method. This is called once the message
4807             pump for the thread is shut down
4808           - Added SupportsTransparency method to allow the driver to indicate
4809             opacity support for windows
4810         * Form.cs:
4811           - Removed TODO attribute, completed AllowTransparency property
4812           - Added documented logic to Opacity
4813         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
4814           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
4815           versions of CompatibleTextRendering
4816         * X11Structs.cs: Added opacity atom to our atom enumeration
4817         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
4818           of a form might be set before it's reparented by the WM, and we need
4819           the opacity value without calling up to Form)
4820         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
4821           SupportsTransparency() driver methods
4822         * Application.cs: Now calling StartLoop and EndLoop driver methods
4823         * XplatUIX11.cs:
4824           - Added opacity atom registration
4825           - Added StartLoop()/EndLoop() methods. They're empty right now but
4826             will need to get implemented when we switch to a per-thread queue
4827           - Implemented SupportsTransparency() method
4828           - Implemented SetWindowTransparency() method
4829           - Added support for setting the opacity value when a window is
4830             reparented (since the opacity needs to be set on the WM frame)
4831         * XplatUIOSX.cs, XplatUIWin32.cs:
4832           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
4833
4834 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
4835
4836         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
4837
4838 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
4839
4840         * FileDialog.cs: Added ToolTip for MWFFileView
4841         * MimeIcon.cs: Rewrote GnomeHandler.
4842           - Get currently used gnome icon theme from
4843             ($HOME)/.gconf/%gconf-tree.xml
4844           - Make use of inherited icon themes
4845           - Support SVG icon themes like Tango via librsvg
4846
4847 2006-01-12  Miguel de Icaza  <miguel@novell.com>
4848
4849         Revert's Jackson's revert which broke 2.0 builds.   Fix both
4850         builds. 
4851         
4852         * Application.cs: Move the use_compatible_text_rendering outside
4853         the NET_2_0 define.  If we ever need to use the
4854         use_compatible_text_rendering on the individual controls they will
4855         access the variable from the common shared code paths.
4856
4857 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
4858
4859         * XplatUI.cs:
4860           - Added more granular debug options
4861           - Added method to print both window text and id
4862           - Switched debug output to use new Window() debug method
4863           - Added IsEnabled() driver method
4864           - Added EnableWindow() driver method
4865         * Form.cs:
4866           - Removed end_modal; no longer needed, new loop handles termination
4867             via 'closing' variable
4868           - If form is modal, setting DialogResult will now initiate loop
4869             termination via 'closing' variable
4870           - Added support for is_enabled/WS_DISABLED to CreateParams
4871           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
4872             does all the work
4873           - Removed code that's now in RunLoop from ShowDialog()
4874           - Added various documented sanity checks to ShowDialog()
4875           - Added handling of WM_DESTROY message; we set 'closing' on getting
4876             the message to indicate the message pump to terminate
4877           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
4878             send by the Application.ExitThread method. (We send the message
4879             to destroy the window after all other events have been
4880             processed through the queue, instead of destroying the handle 
4881             directly)
4882           - Moved code from Close() method to WM_CLOSE handler; added logic
4883             to only send close-related events if the form is not displayed
4884             modal
4885         * Splitter.cs (..ctor): Fixed typo in resource name
4886         * Control.cs:
4887           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
4888             brush now
4889           - set_Cursor: Now only setting calling into XplatUI if the handle for
4890             the control is already created; this avoids implict handle creation
4891             or crashes if it's not created
4892           - set_Enabled: Now setting the enabled state via the new driver method
4893             instead of just tracking it
4894           - CreateParams: Added logic to set WS_DISABLED based on enabled state
4895           - CreateControl: Reordered event firing and method calls to more
4896             closely fire events in the order MS does. Now setting the
4897             enabled state in the driver when creating the control.
4898           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
4899             match MS order
4900         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
4901           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
4902         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
4903         * Hwnd.cs:
4904           - Added tracking of window enabled state (get_Enabled/set_Enabled)
4905           - Added EnabledHwnd property to easily allow a driver to find the
4906             handle of the first enabled window in the parent chain (this is
4907             used by drivers to pass up input events of disabled windows)
4908         * XplatUIDriver.cs: Added IsEnabled() method
4909         * Application.cs:
4910           - Removed crude and obsolete exiting tracking variable
4911           - Removed internal ModalRun(); replaced by RunLoop()
4912           - Implemented private CloseForms() method to allow closing all 
4913             windows owned by a particular (or all) threads
4914           - Exit() now properly closes all windows without forcing the message
4915             pump to quit
4916           - Removed obsolete InternalExit() method
4917           - Changed Run() methods to use new RunLoop() message pump
4918           - Implemented new RunLoop() method for both modal and non-modal forms
4919         * CommonDialog.cs:
4920           - get_CreateParams: Added setting of WS_DISABLED
4921           - Simplified ShowDialog(); now all the work is done in RunLoop(),
4922             invoked via Form.ShowDialog()
4923         * NativeWindow.cs: We don't remove the window from the collection when
4924           the handle is destroyed; there might still be messages for it in the
4925           queue (mainly the resulting WM_DESTROY); instead it will be removed
4926           when Control calls InvalidateHandle in the WM_DESTROY handler
4927         * XplatUIX11.cs:
4928           - CreateWindow: Added logic to handle the WS_DISABLED window style
4929           - EnableWindow: Implemented based on Hwnd.Enabled
4930           - GetMessage: Reset PostQuitState so the method can be called again
4931           - Implemented support for disabled windows (passing messages to the
4932             first enabled parent) in handling all input messages
4933           - Added optimizations for handling Expose events
4934           - Implemeted new driver method IsEnabled()
4935           - Now always resetting paint pending tracking vars when we start paint
4936           - Re-implemented UpdateWindow via just sending a WM_PAINT message
4937         * XplatUIOSX.cs: Added IsEnabled method stub
4938         * XplatUIWin32.cs: Implemented new IsEnabled() method
4939
4940 2006-01-11  Jackson Harper  <jackson@ximian.com>
4941
4942         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
4943         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
4944         variables a little.
4945         * ColorDialog.cs: Clear out the old form before adding the new
4946         panel.  
4947
4948 2006-01-11  Jackson Harper  <jackson@ximian.com>
4949
4950         * X11Dnd.cs: Make sure to add all the text formats when adding
4951         strings to the data object.
4952         * TreeNodeCollection.cs: When adding to a sorted tree we need to
4953         do some redrawing too.  Also change the UpdateNode to an
4954         UpdateBelow so the newly added node gets painted.
4955         
4956 2006-01-11  Miguel de Icaza  <miguel@novell.com>
4957
4958         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
4959         LinkLabel.cs, PropertyGrid.cs: Implement the
4960         UseCompatibleTextRendering property for 2.x
4961
4962         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
4963
4964 2006-01-11  Jackson Harper  <jackson@ximian.com>
4965
4966         * TreeView.cs: Use the property for setting the selected node so
4967         the correct events get raised.
4968         * TreeNode.cs: Update the tree when the fore/back colours of a
4969         node are set.
4970
4971 2006-01-10  Jackson Harper  <jackson@ximian.com>
4972
4973         * TreeView.cs: Allow setting SelectedNode to null.
4974
4975 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
4976
4977         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
4978
4979 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
4980
4981         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
4982
4983 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
4984
4985         * PrintDialog.cs: Added attributes and set default property values.
4986
4987 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
4988
4989         * PrintControllerWithStatusDialog.cs: 
4990         Added PrintControllerWithStatusDialog.
4991
4992 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
4993
4994         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
4995         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
4996
4997 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
4998
4999         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
5000
5001 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
5002
5003         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
5004         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
5005
5006 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
5007
5008         * MimeIcon.cs: Added internal class SVGUtil.
5009
5010 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
5011
5012         * FileDialog.cs: Don't crash if there are two files with the
5013           same name but different locations.
5014
5015 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
5016
5017         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
5018         dates across multiple month grids. Used to not highlight entire 
5019         month, but does now.
5020         
5021 2006-01-06  Jackson Harper  <jackson@ximian.com>
5022
5023         * MonthCalendar.cs: Removed DoEvents call to prevent a running
5024         message loop. Change timer intervals to numbers that seem more
5025         natural.
5026
5027 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
5028
5029         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
5030           object for location info since screen object is now implemented.
5031
5032 2006-01-05  Jackson Harper  <jackson@ximian.com>
5033
5034         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
5035         * AsyncMethodResult.cs: We no longer use a WeakReference for the
5036         AsyncMethodResult, this is because we ALWAYS want the
5037         ManualResetEvent to get set.
5038         * Control.cs: When disposing use an async invoke to call shutdown
5039         code, so that thigns don't block on the finalizer thread.  Also
5040         check if we even have a message loop before trying to send
5041         messages, if we don't then don't bother sending messages.
5042         - No more weak references for async methods
5043         * XplatUIDriver.cs: No more weak references for async methods.
5044
5045 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
5046
5047         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
5048           returns two FontFamily with the same name
5049
5050 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
5051
5052         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
5053           drawing disabled text. Instead using the ColorGrayText color
5054
5055 2006-01-04  Jackson Harper  <jackson@ximian.com>
5056
5057         * TreeNode.cs: redraw the node when its image index is changed.
5058
5059 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
5060
5061         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
5062           time I checked there are no others like it.
5063
5064 2006-01-04  Jackson Harper  <jackson@ximian.com>
5065
5066         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
5067         this gives the behavoir I was looking for.
5068         * Control.cs: Special case Invoking EventHandlers, this matches MS
5069         and fixes part of bug #76326.
5070
5071 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
5072
5073         * ThemeClearlooks.cs, FileDialog.cs:
5074           - Reflect the latest Theme class changes
5075           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
5076             with DateTime
5077             
5078 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
5079
5080         * Theme.cs: Cache UI resource images and resize them if needed
5081
5082 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
5083
5084         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
5085           is called. This fixes the crash in Nexxia when setting the font
5086           attributes in the chat. [However, RTF needs a look-over to make sure
5087           that all SelectionXXX methods handle the special case that selection
5088           is empty and therefore the change must be applied to all text starting
5089           at the cursor/selection start]
5090
5091 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
5092
5093         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
5094           XplatUIOSX.cs: Added SendMessage and PostMessage methods
5095         * X11Keyboard.cs: Switched to new way of calling PostMessage
5096
5097 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
5098
5099         * Theme.cs: Added theme interface for images to allow the theme to
5100           control what images are used for things like FileDialog, MessageBox
5101           icons, etc.
5102         * MessageBox.cs: Now uses the new Theme icon/image interfaces
5103
5104 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
5105
5106         * FileDialog.cs:
5107           - Removed some dead code
5108           - Opening a recently used file does work now
5109           - Small UI enhancements
5110           - Refactoring
5111
5112 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
5113
5114         * FileDialog.cs: Forgot too add __MonoCS__
5115
5116 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
5117
5118         * FileDialog.cs: We are able to read recently used files now let's
5119           go on and write them.
5120
5121 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
5122
5123         * FileDialog.cs: Breathe some life into "last open"/"recently used"
5124           button
5125         * MimeIcon.cs: Do a check for the top level media type also
5126
5127 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
5128
5129         * ThemeClearlooks.cs:
5130           - Added CPDrawStringDisabled
5131           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
5132             some chars if the text doesn't fit into text_rect
5133           - DrawListViewItem: If View = View.LargeIcon center the image;
5134             rewrote the drawing of ListViewItem.Text if View = 
5135             View.LargeIcon
5136
5137 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
5138
5139         * MimeIcon.cs: Use default KDE icon theme if there is no
5140           "48x48" directory for the current icon theme, fixes #77114
5141         * Mime.cs: Disable not working and actually not used code. 
5142         * ThemeWin32Classic.cs:
5143           - Replace "new SolidBrush" in GetControlBackBrush and
5144             GetControlForeBrush with ResPool.GetSolidBrush
5145           - Changed DrawListViewItem from private to protected virtual
5146         * FileDialog.cs:
5147           - Added form.MaximizeBox = true
5148           - Don't throw an exception if there is a broken symbolic link
5149
5150 2005-12-23  Jackson Harper  <jackson@ximian.com>
5151
5152         * TabControl.cs: Give the panels focus, keyboard navigation is
5153         fixed so this works correctly now.
5154         - We need these key events also.
5155         * ToolBar.cs: Remove some of the poor mans double buffering.
5156         
5157 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
5158
5159         * ComboBox.cs: The internal TextBox now returns the focus.
5160
5161 2005-12-23  Jackson Harper  <jackson@ximian.com>
5162
5163         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
5164
5165 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
5166
5167         * Control.cs: Removed debug code
5168         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
5169           implicit children
5170
5171 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
5172
5173         * Control.cs: When creating the control, update the Z-order after
5174           all it's children are created, too. (Fixes nexxia not showing
5175           picturebox bug)
5176
5177 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
5178
5179         * Control.cs: Do not update the anchoring distances if layout is
5180           suspended, instead do it once layout is resumed
5181
5182 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
5183
5184         * Control.cs: 
5185           - After many hours of debugging, for both Jackson and
5186             myself, it turns out that it helps to set the parent of a control
5187             if you want to actually see it onscreen. In the spirit of that
5188             discovery, we're now setting the parent of the control and
5189             it's children when the control's handle is created. This fix
5190             will make Lutz Roeder's Reflector run happily. 
5191           - now just creating the handle instead of the whole control when
5192             getting a graphics context for the control.
5193
5194 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
5195
5196         * ScrollableControl.cs: When calculating the canvas, don't consider
5197           the scrollbar widths. Instead, predict if horizontal scrollbar
5198           will affect canvas when deciding on vertical display and vice versa.
5199
5200 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
5201
5202         * RichTextBox.cs: Set default RTF font for documents that don't
5203           have a font table (Fixes #77076)
5204
5205 2005-12-22  Jackson Harper  <jackson@ximian.com>
5206
5207         * TextBoxBase.cs: It's difficult to do, but you can have an empty
5208         clipboard. This prevents a NullRef in that case.
5209         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
5210         clipboard. PRIMARY is for the currently selected text only. (We
5211         should implement PRIMARY at some point.
5212
5213 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
5214
5215         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
5216           a Unicode function with a structure that was defined in Ansi way.
5217           This fixes #76942.
5218
5219 2005-12-21  Jackson Harper  <jackson@ximian.com>
5220
5221         * StatusBar.cs: Statusbar handles its fore/back colours on it's
5222         on. Because thats how it rolls. (and this avoids it using ambient
5223         colours).
5224         * ThemeWin32Classic.cs: Use the proper back color for filling.
5225         * Menu.cs: Use the system menu bar color for drawing menu
5226         bars. Using the window back color will bring ambient colours into
5227         the picture.
5228
5229 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
5230
5231         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
5232           Bitmaps were created and not disposed.
5233
5234 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
5235
5236         * Control.cs (CreateControl): Don't do anything if the control is
5237           already created, otherwise we'd fire the OnCreated event more than
5238           once
5239
5240 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
5241
5242         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
5243           will always match. Instead return -1. Fixes #76464.
5244
5245 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
5246
5247         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
5248           neither the beginning nor the end of the line (Fixes bug #76479)
5249
5250 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
5251
5252         * Control.cs:
5253           - ControlNativeWindow.ControlFromHandle(): Now handling situation
5254             where handle is invalid
5255           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
5256             instead of slower linear search
5257         * NativeWindow.cs: Don't remove the window from the hashtable until
5258           after the driver has destroyed it (since the driver might use
5259           Control.FromHandle to lookup the control object
5260         * Hwnd.cs: Added DestroyPending property to track if a window is 
5261           already destroyed as far as the driver is concerned and only hasn't
5262           yet notified the control
5263         * XplatUIX11.cs:
5264           - Activate(): Check if the window is still valid before using the 
5265             handle
5266           - Implemented DestroyChildWindow() method to mark child windows as
5267             destroyed when a window is destroyed. This prevents situations 
5268             where we might call an X method based on queued events for a
5269             window that already has been destroyed but we haven't yet pulled
5270             the destroy method from the queue.
5271           - Added a call to the new DestroyChildWindow() method to the drivers
5272             DestroyWindow code. Also now marking the destroyed window itself
5273             as pending
5274
5275 2005-12-20  Jackson Harper  <jackson@ximian.com>
5276
5277         * StatusBar.cs:
5278         * StatusBarPanel.cs: Don't calculate panel sizes on draw
5279         anymore. Just do them when needed, also track the rects of panels
5280         so that we can optimize refreshing more in the future.
5281
5282 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
5283
5284         * ColorDialog.cs: Fixed focus drawing in small color controls
5285
5286 2005-12-19  Jackson Harper  <jackson@ximian.com>
5287
5288         * InternalWindowManager.cs:
5289         * MdiWindowManager.cs: Cleanup some coordinate system changes so
5290         moving windows works properly.
5291
5292 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
5293
5294         * Control.cs: 
5295           - Removed call to InitLayout() from SetBoundsCore(); doc says
5296             it's only called when a control is added to a container
5297           - Split InitLayout logic, moved to separate UpdateDistances() method
5298             since we need to perform those calculations more often than just
5299             when adding the control to a container. (Needed to fix #77022)
5300           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
5301           - Reduced the OnBindingContextChanged events count, don't send them
5302             unless the control is created, we still aren't totally matching
5303             MS, but I can't quite figure out some of their rules
5304
5305 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
5306
5307         * ThemeClearlooks.cs: Corrected distance between ProgressBar
5308           stripes
5309
5310 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
5311
5312         * ThemeClearlooks.cs:
5313           - Updated ProgressBar drawing
5314           - Corrected drawing of ScrollBars and scroll buttons
5315           - Some temporary fixes for minor pixel artefacts
5316
5317 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
5318
5319         * Control.cs:
5320           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
5321             cause events to be sent in the same order as MS does.
5322           - Added ChangeParent() method to trigger various OnXXXChanged events
5323             that need to be fired when a parent changes (This is a reworking
5324             of the patch from r54254, with the X11 errors fixed)
5325           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
5326             since on MS we get OnLayoutChanged events when calling Clear()
5327           - Changed Enabled property to consider parent state as well, if a
5328             parent is not enabled, the control will not be either
5329           - Changed Parent property to simply call Controls.Add() since that
5330             now does all the work required, this way we avoid code duplication
5331           - Threw in a few OnBindingsContextChanged calls to try and match
5332             when MS sends them. We seem to send a few too many, though.
5333           - Added call to CreateControl when adding the control to a parent.
5334             We were never calling CreateControl. Still needs some work, in
5335             some places we treat HandleCreated and ControlCreated as equal, 
5336             which is wrong
5337           - Removed obsolete commented out code from UpdateZOrder()
5338
5339 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
5340
5341         * ThemeClearlooks.cs: Updated TrackBar drawing.
5342
5343 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
5344
5345         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
5346
5347 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
5348
5349         * FileDialog.cs: Add the Help button and the open readonly
5350           checkbox only if needed
5351
5352 2005-12-16  Jackson Harper  <jackson@ximian.com>
5353
5354         * Control.cs: Make sure we have an active menu before trying to
5355         process commands on it. Prevents menu-less forms from crashing
5356         when Alt is pressed.
5357         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
5358         Dieter Bremes.
5359         * RichTextBox.cs: Expand statement to help out gmcs and fix the
5360         2.0 build.
5361
5362 2005-12-16  Jackson Harper  <jackson@ximian.com>
5363
5364         * InternalWindowManager.cs: Don't translate tool windows screen
5365         coordinates. This fixes windows 'bouncing' around when being moved.
5366
5367 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
5368
5369         * TextBoxBase.cs:
5370           - MaxLength now treats 2^31-1 equal to unlimited length (this is
5371             not quite MS compatible, MS uses that number only for single line
5372             and 2^32-1 for multi-line, but I figure it won't hurt keeping
5373             the limit at 2GB)
5374           - Now enforcing the MaxLength limit when entering characters
5375           - Added argument to internal Paste() method to track if it's called
5376             from programatically or via keyboard, since keyboard driven pastes
5377             need to enforce max-length
5378           - Added logic to Paste to only paste as many chars as MaxLength 
5379             allows
5380         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
5381         * TextControl.cs:
5382           - Added Length property to return number of characters in document
5383           - Added private CharCount property which only tracks actual chars
5384             in the document (no linefeeds) and fires event when CharCount
5385             changes
5386           - Added tracking of character count to all methods that alter it
5387           - Added LengthChanged event to allow applications to subscribe
5388             to any changes to the document
5389
5390 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
5391
5392         * TextBox.cs: 
5393           - Removed local password_char field (moved to TextBoxBase)
5394           - Now setting the document's password var when password is
5395             set
5396         * TextBoxBase.cs:
5397           - Added password_char field (needed here so MultiLine can
5398             access it)
5399           - Added logic to MultiLine property setter to set the document's
5400             variable when password display is allowed
5401           - Removed debug code and made some debug code conditional
5402         * TextControl.cs:
5403           - Added RecalculatePasswordLine() method to handle special password
5404             char only lines
5405           - Added PasswordChar property, also added related tracking vars
5406           - Draw() method now uses local text var for grabbing text to draw,
5407             this var is set to line.text unless we're doing password display,
5408             then it is set to the pre-generated all-password-chars line
5409           - Added calling RecalculatePasswordLine() method for password lines
5410
5411 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
5412
5413         * Hwnd.cs: 
5414           - Added Reparented property to allow tracking of Window Manager
5415             reparenting actions (which affect X/Y calculations of toplevel 
5416             windows)
5417           - Made ToString() print window handles in hex
5418         * XplatUIX11.cs:
5419           - AddConfigureNotify(): Now uses reparented state off Hwnd to
5420             determine if X/Y needs offsetting
5421           - AddConfigureNotify(): Fixed offset calculations
5422           - Now adds ReparentNotify messages into the queue
5423           - Now processes ReparentNotify messages and causes a 
5424             WM_WINDOWPOSCHANGED message to be sent upstream if a window
5425             is reparented (as most likely it's X/Y coordinates are changed
5426             due to that)
5427
5428 2005-12-14  Jackson Harper  <jackson@ximian.com>
5429
5430         * XplatUIX11.cs: Tool windows still need to respek focus.
5431
5432 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
5433
5434         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
5435           have a working release
5436
5437 2005-12-13  Jackson Harper  <jackson@ximian.com>
5438
5439         * Form.cs: Update styles after setting the border style regardless
5440         of whether or not the window is using a window manager.
5441
5442 2005-12-13  Jackson Harper  <jackson@ximian.com>
5443
5444         * Form.cs: We now hook into an internal window manager instead of just an
5445         MDI subsystem, this is so we can have properly behaving tool windows.
5446         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
5447         * InternalWindowManager.cs: New internal class that acts as a
5448         window manager for tool windows and as a base for mdi windows.
5449         * MdiWindowManager.cs: New class that acts as a window manager for
5450         mdi windows.
5451
5452 2005-12-12  Jackson Harper  <jackson@ximian.com>
5453
5454         * Control.cs: Updates so we match behavoir for for implicit
5455         controls. Fixes explosions in MDI.
5456
5457 2005-12-12  Jackson Harper  <jackson@ximian.com>
5458
5459         * Control.cs: Implement Invalidate (Region).
5460
5461 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
5462
5463         * Control.cs: 
5464           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
5465             the same events as MS does. MS fires events for each property 
5466             except, for unknown reasons, Cursor, when the control is reparented. 
5467             I can't seem to totally match add/remove since MS also fires some 
5468             VisibleChanged events, which makes no sense. Consolidated the
5469             parenting code into a separate method so it can be called from
5470             both Add and Remove. set_Parent no longer needs any special logic
5471             as it calls the parent's add method which implicitly fires
5472             all events
5473           - Removed some obsolete code and debug output
5474           - Enabled state is inherited from parents, if this is enabled
5475
5476 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
5477
5478         * Form.cs: Removed commented out code
5479
5480 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
5481
5482         * Control.cs:
5483           - Added internal version of Invoke, with additional argument 
5484             indicating if we're calling it from a Dispose() handler. That
5485             way we can avoid BeginInvoke throwing an exception if we're
5486             calling for an already destroyed window.
5487           - Added a dispose argument to BeginInvokeInternal, and made the
5488             check if a valid window handle chain exists conditional on
5489             it not being a dispose call
5490           - Removed code in DestroyHandle to destroy our children. Since we
5491             now handle the WM_DESTROY message we will catch all our children
5492             being destroyed.
5493           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
5494         * Form.cs:
5495           - Added a field to track the application context of the form.
5496           - No need to set closing variable as response to WM_CLOSE, instead
5497             we destroy the window. We also call PostQuitMessage if the form
5498             has an application context (which makes it the main app form,
5499             which, when closed terminates the app)
5500         * XplatUI.cs:
5501           - Dropped Exit() method, it's naming was confusing
5502           - Added PostQuitMessage() which causes GetMessage to return false
5503             once the message queue is empty
5504         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
5505           PostQuitMessage()
5506         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
5507           no longer a valid XplatUI method, but left it in since it's used
5508           internally. Added empty PostQuitMessage() method.
5509         * MenuAPI.cs: Replaced call to Exit() with call to
5510           PostQuitMessage, even though this is probably no longer needed.
5511         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
5512         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
5513         * Application.cs:
5514           - Replaced call to XplatUI.Exit() with PostQuitMessage()
5515           - Removed old debug code that would call XplatUI for exception
5516             display, enabled standard exception handling (Still not enabled
5517             though, until NativeWindow's ExternalExceptionHandler define
5518             is removed
5519         * NativeWindow.cs:
5520           - Added internal method to allow control to update NativeWindow
5521             after a window has been destroyed
5522           - Added handling of already destroyed windows when calling i
5523             DestroyWindow
5524           - Added removal of handle from list on ReleaseHandle
5525         * XplatUIX11.cs:
5526           - Dropped GetMessageResult var and related code
5527           - Added PostQuitState to field to track if PostQuitMessage has been
5528             called
5529           - Dropped Exit() method
5530           - Added PostQuitMessage() method
5531           - GetMessage now will return false if PostQuitState is set and no
5532             more messages are in the queue.
5533           - Expose handler will no longer generate WM_PAINT messages if we are
5534             in PostQuitState since it's very likely any windows have already
5535             been destroyed, and since Hwnd won't get updated until we have
5536             processed the DestroyNotify we'd be causing X errors.
5537         
5538 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
5539
5540         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
5541           Thanks to Mike for pointing out the err of my ways.
5542
5543 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
5544
5545         * Control.cs(PreProcessMessage): Moved menu handling back, but
5546           after all other key handling, to match MS (who handles Menu in
5547           DefWndProc)
5548         * Menu.cs (WndProc): Removed my brainfart
5549
5550 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
5551
5552         * Control.cs(PreProcessMessage): Removed special menu handling 
5553         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
5554
5555 2005-12-07  Mike Kestner  <mkestner@novell.com>
5556
5557         * Control.cs : special case SYSKEYUP so that we can adjust keynav
5558         state according in tracker.
5559         * Menu.cs : promote tracker field to base class and provide a tracker
5560         lookup capability.  Add/Remove shortcuts dynamically if the top menu
5561         has a tracker. Unparent items that are removed from the collection.
5562         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
5563         * Theme*.cs: add always_show_hotkeys field to support configurability
5564         of mnemonic display.  win32 doesn't show mnemonics until Alt is
5565         pressed.
5566
5567 2005-12-07  Jackson Harper  <jackson@ximian.com>
5568
5569         * MdiChildContext.cs: Use Control.ResetCursor.
5570         * Control.cs: ResetCursor needs to set the property so that the
5571         correct XplatUI call gets made.
5572
5573 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
5574
5575         * Control.cs: More fixes to make our key events match MS. We
5576           were not setting the modifier state on KeyData, and we were
5577           not generating any events when Alt was pressed with a key
5578           since handling of WM_SYSxxx was missing for the OnKey methods.
5579
5580 2005-12-07  Jackson Harper  <jackson@ximian.com>
5581
5582         * MdiChildContext.cs: reenable the sizing code.
5583         - When the mouse leaves a window reset its cursor.
5584
5585 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
5586
5587         * ThemeClearlooks.cs: Reflect latest Hwnd changes
5588
5589 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
5590
5591         * Hwnd.cs: Now using the theme 3d bordersize to calculate
5592           widths of Fixed3D borders
5593
5594 2005-12-07  Jackson Harper  <jackson@ximian.com>
5595
5596         * MdiClient.cs: Fix warnings. Earn Mike's love.
5597
5598 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
5599
5600         * ThemeClearlooks.cs:
5601           - Adjusted mouse over button color
5602           - Added first parts of CheckBox drawing
5603           - Added correct color for selected text background
5604           - Fixed ComboBox drawing
5605           - Added CPDrawBorder3D and CPDrawBorder
5606
5607 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
5608
5609         * XplatUIX11.cs: Added call to XBell for AudibleAlert
5610
5611 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
5612
5613         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
5614           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
5615           alert users via sound. We could add an enum arg with different
5616           types of alerts in the future
5617
5618 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
5619
5620         * Control.cs: Fix behaviour problems pointed out by Mike
5621
5622 2005-12-05  Mike Kestner  <mkestner@novell.com>
5623
5624         * StatusBarPanel.cs: add Invalidate method and hook it into all the
5625         prop setters.  Calls parent.Refresh for now, but could be maybe be
5626         optimized with an internal method on StatusBar at some point.
5627         [Fixes #76513]
5628
5629 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
5630
5631         * RichTextBox.cs: Implemented get_SelectionColor
5632
5633 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
5634
5635         * ThemeClearlooks.cs:
5636           - Removed dead code
5637           - Draw black button border only if button is Form.AcceptButton
5638           - Draw correct button color for pressed RadioButton if the mouse 
5639             has entered the button
5640           - Updated ProgressBar drawing!
5641           - Updated CPDrawSizeGrip drawing
5642           - Updated StatusBarPanel drawing
5643
5644 2005-12-05  Mike Kestner  <mkestner@novell.com>
5645
5646         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
5647         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
5648
5649 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
5650
5651         * ThemeClearlooks.cs: Initial check-in, activate with
5652           export MONO_THEME=clearlooks
5653         * ThemeEngine.cs: Added ThemeClearlooks
5654
5655 2005-12-03  Mike Kestner  <mkestner@novell.com>
5656
5657         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
5658         [Fixes #76897]
5659
5660 2005-12-02  Jackson Harper  <jackson@ximian.com>
5661
5662         * Form.cs: If the child form has no menu the default main menu is
5663         used as the active menu.
5664
5665 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
5666
5667         * ListBox.cs: Check if any items exist before trying to resolve 
5668           coordinates into items
5669
5670 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
5671
5672         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
5673           as the second color for the background hatch
5674
5675 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
5676
5677         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
5678         * RichTextBox.cs: FormatText position arguments are 1-based, now making
5679           sure that what we pass to FormatText is always 1-based. Fixes #76885
5680
5681 2005-11-29  Miguel de Icaza  <miguel@novell.com>
5682
5683         * NumericUpDown.cs (EndInit): When we are done initializing,
5684         reflect any updates on the UI.
5685
5686 2005-12-02  Jackson Harper  <jackson@ximian.com>
5687
5688         * ImplicitHScrollBar.cs:
5689         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
5690         their container controls.
5691         * TreeView.cs: Use the new implicit scrollbars.
5692
5693 2005-12-02  Jackson Harper  <jackson@ximian.com>
5694
5695         * TreeView.cs: Make top_node internal so the TreeNodeCollections
5696         can play with it.
5697         * TreeNodeCollection.cs: If we remove the topnode we need to
5698         update topnode to the next node in line.
5699         - When clearing nodes go through the same process as removing
5700         them, so they get depareneted and checked if they are top node.
5701
5702 2005-12-01  Jackson Harper  <jackson@ximian.com>
5703
5704         * TreeView.cs: When imagelists are used the image area is
5705         selectable as well as the text.
5706         - If there are no selected nodes select the first one.
5707         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
5708         so don't do it more then we need to.
5709
5710 2005-12-01  Jackson Harper  <jackson@ximian.com>
5711
5712         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
5713         that arrows can be scaled.
5714
5715 2005-12-01  Jackson Harper  <jackson@ximian.com>
5716
5717         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
5718         fail. Patch by Dieter Bremes
5719
5720 2005-11-30  Jackson Harper  <jackson@ximian.com>
5721
5722         * Form.cs: Property is 2.0 only
5723         * PrintDialog.cs: Signature fix.
5724
5725 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
5726
5727         * TextControl.cs: 
5728           - No longer artificially moves text 2 pixels down (now that we have
5729             borders this is no longer needed)
5730           - Added calcs for left, hanging and right indent
5731
5732 2005-11-23  Mike Kestner  <mkestner@novell.com>
5733
5734         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
5735
5736 2005-11-30  Jackson Harper  <jackson@ximian.com>
5737
5738         * MdiChildContext.cs: Set the cloned menus forms, as these don't
5739         get cloned as part of CloneMenu ().
5740         * Menu.cs: Make sure the parent of the items get set correctly
5741         when they are added.  And the owners are notified of the changes.
5742         * Form.cs: Create an ActiveMenu property, so that when MDI is used
5743         we can change the menu being displayed/handled by the form without
5744         changing the menu assosciated with the form.
5745         - Don't let Mdi children draw/handle menus.
5746         
5747 2005-11-30  Jackson Harper  <jackson@ximian.com>
5748
5749         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
5750         a MenuChanged event. Just to make the API a little more
5751         consistent.
5752         * MainMenu.cs:
5753         * MenuItem.cs: Use the new OnMenuChanged
5754         * MdiChildContext.cs: Handle menu merging.
5755         * Form.cs: Implement MergedMenu.
5756         
5757 2005-11-30  Jackson Harper  <jackson@ximian.com>
5758
5759         * Menu.cs: We were misusing Add. Add goes behind the specified
5760         index according to the docs, and does not replace the specified
5761         index. So I added an Insert method.
5762
5763 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
5764
5765         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
5766           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
5767           is for Jackson
5768         * RichTextBox.cs: Added calls to base for DnD events
5769
5770 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
5771
5772         * TextControl.cs:
5773           - Fixed drag-selection related crash; style fixes
5774           - Implemented undo class
5775             o Implemented method to capture document state for specified
5776               range in document tree
5777             o Implemented method to restore captured document state
5778             o Implemented cursor tracking
5779             o Implemented basic undo stack
5780           - Added undo cursor tracking to methods altering cursor location
5781           - Added undo tracking to selection deletion (still missing
5782             other text-altering hookups)
5783         * RichTextBox.cs:
5784           - Added SelectionLength property
5785           - Implemented CanPaste()
5786           - Implemented Paste()
5787           - Added missing protected methods
5788           - Fixed RTF->Document conversion; now uses font index 0 and color 
5789             index 0 as the default font for the parsed text
5790           - Fixed RTF<->Document font size translation
5791           - Fixed RTF generation, now properly handles cross-tag boundaries
5792             for single line selection
5793           - No longer always appends blank line to generated RTF
5794           - Removed TODOs
5795           - Added missing attributes
5796           - Hooked up undo-related methods
5797         * TextBoxBase.cs:
5798           - Implemented Copy()
5799           - Implemented Paste()
5800           - Implemented Cut()
5801           - Fixed caret mis-behaviour on backspace across line-boundaries
5802
5803 2005-11-29  Jackson Harper  <jackson@ximian.com>
5804
5805         * MdiClient.cs: Add a method for activating mdi children. Very
5806         basic right now. I imagine someday it might need more girth.
5807         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
5808         children windows names are added to the menu item.
5809         * ThemeWin32Classic.cs: Draw the arrow if the item is an
5810         mdilist. This happens regardless of whether or not there are any
5811         mdi windows to see in the list, and according to my tests happens
5812         before the items are even added. Also happens if there isn't even
5813         an mdi client to get windows from.
5814
5815 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
5816
5817         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
5818         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
5819
5820 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
5821
5822         * DataGridTableStyle.cs:
5823           - Create always the styles for the missing columns even if they are
5824             provided by the user (not default table style)
5825         * DataGrid.cs:
5826           - Fixes bug 76770
5827           - Fixes SetDataBinding (always re-attach source)
5828           - Fixes SetNewDataSource (only clear styles if they are not for 
5829             this source)
5830          -  Expands OnTableStylesCollectionChanged to handle style refresh 
5831             and remove properly
5832
5833 2005-11-29  Jackson Harper  <jackson@ximian.com>
5834
5835         * FileDialog.cs: Implement missing bits, remove some dead
5836         code.
5837         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
5838         creation of the panel so that the options set on the dialog are
5839         seen when the panel is created.
5840         * TreeView.cs: raise a click when items are clicked.
5841         
5842 2005-11-29  Jackson Harper  <jackson@ximian.com>
5843
5844         * MdiClient.cs: Pass some signature methods through to base.
5845
5846 2005-11-28  Jackson Harper  <jackson@ximian.com>
5847
5848         * ListView.cs: Raise the click event when items are clicked.
5849
5850 2005-11-28  Jackson Harper  <jackson@ximian.com>
5851
5852         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
5853         a nullref.
5854
5855 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
5856
5857         * ThemeNice.cs: - Removed 1 pixel bitmaps
5858           - Use SmoothingMode.AntiAlias where it makes sense
5859             (ScrollButton arrow for example)
5860           - Enhanced Button focus drawing
5861           - Fixed ComboBox drawing (no artefacts anymore, focus
5862             rectangle is back again, reduced size of ComboButton, etc.)
5863           - Fixed RadioButton focus drawing for Appearence.Button
5864           - Slight ScrollButton redesign
5865           - Some LinearGradientBrush size fixes
5866           - GroupBoxes have now rounded edges
5867           - Fixed StatusBar drawing
5868
5869 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
5870
5871         * ThemeNice.cs: - Remove dead code
5872           - use correct background colors for menus, etc.
5873           - Fake pixel drawing with 1 pixel bitmaps
5874
5875 2005-11-24  Jackson Harper  <jackson@ximian.com>
5876
5877         * MdiClient.cs: Size the scrollbars when resizing the window.
5878         - Resize the maximized windows when the client is resized
5879         * Form.cs: Make the child context available
5880         
5881 2005-11-23  Jackson Harper  <jackson@ximian.com>
5882
5883         * MdiChildContext.cs: Don't size windows if they are maximized.
5884
5885 2005-11-23  Mike Kestner  <mkestner@novell.com>
5886
5887         * ContextMenu.cs: use MenuTracker.
5888         * Control.cs: remove menu handle usage.
5889         * Form.cs: remove menu handle usage.
5890         * Hwnd.cs: remove menu handle usage.
5891         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
5892         motion and clicks to the new Tracker handlers.
5893         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
5894         and handle usage.
5895         * MenuAPI.cs: refactored to combine popup and menubar event handling.
5896         Killed the MENU and MENUITEM data types and associated collections
5897         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
5898         MenuTracker class that exposes the leftovers from the old MenuAPI
5899         static methods. Restructured Capture handling so that only one grab is
5900         done for the entire menu hierarchy instead of handing off grabs to
5901         submenus. Tracker now has an invisible control to Capture when active.
5902         * MenuItem.cs: add sizing accessors, kill Create
5903         and handle usage.
5904         * Theme.cs: remove menu handle and MENU(ITEM) usage.
5905         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
5906         MENU(ITEM). remove menu handle usage, use Menu directly.
5907         * XplatUIDriver.cs: remove menu handle usage.
5908         * XplatUIOSX.cs: remove menu handle usage.
5909         * XplatUIWin32.cs: remove menu handle usage.
5910         * XplatUIX11.cs: remove menu handle usage.
5911
5912 2005-11-22  Jackson Harper  <jackson@ximian.com>
5913
5914         * Hwnd.cs: Don't compute the menu size for
5915         DefaultClientRectangle.
5916         - Reenable menu sizes being computed for GetClienRectangle.
5917         * Form.cs: Remove comment of trechery
5918         
5919 2005-11-22  Jackson Harper  <jackson@ximian.com>
5920
5921         * Hwnd.cs: The adjustments for the menu bar are made when it is
5922         attached to the form.
5923
5924 2005-11-19  Jackson Harper  <jackson@ximian.com>
5925
5926         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
5927         (just like on windows).
5928
5929 2005-11-19  Jackson Harper  <jackson@ximian.com>
5930
5931         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
5932         use real buttons anymore because they are in non client area. The
5933         one TODO here is that I need to somehow invalidate a section of
5934         the non client area.
5935
5936 2005-11-18  Jackson Harper  <jackson@ximian.com>
5937
5938         * Control.cs: Put the enum check back in now that MDI doesnt have
5939         to use this to set border styles.
5940         * Form.cs: Only set mdi child windows borders if the handle has
5941         been created.
5942         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
5943         this directly on to the driver.
5944         - Get the move start position before adjusting for the titlebar
5945         height, this fixes the windows "skipping" when they are first
5946         moved.
5947
5948 2005-11-18  Jackson Harper  <jackson@ximian.com>
5949
5950         * XplatUIX11.cs: Just compute the mdi borders separately as they
5951         don't totally match up with normal form borders.
5952
5953 2005-11-18  Jackson Harper  <jackson@ximian.com>
5954
5955         * Control.cs: Set WS_ styles for borders, so that the driver does
5956         not have to retrieve the control instance to figure out what kind
5957         of borders it should have.
5958         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
5959         driver can know its an mdi child easily.
5960         * XplatUIX11.cs: Get the border styles and whether the window is
5961         MDI from the Styles and ExStyles params instead of having to get a
5962         control. This prevents a chicken and egg problem.       
5963
5964 2005-11-18  Jackson Harper  <jackson@ximian.com>
5965
5966         * MdiClient.cs: Fix typo so scrollbars show up correctly.
5967
5968 2005-11-18  Jackson Harper  <jackson@ximian.com>
5969
5970         * MdiClient.cs: Calculate when to add and remove scrollbars
5971         correctly.
5972         * MdiChildContext.cs: Adjust the y position to take the titlebar
5973         into account.
5974         - No height for FormBorderStyle.None
5975
5976 2005-11-18  Jackson Harper  <jackson@ximian.com>
5977
5978         * Control.cs: Allow non enum values to be used for
5979         InternalBorderStyle.  MDI does this to set a special border style.
5980         - New utility methods for converting points to/from client coords
5981         - Add the newly created control to the Controls collection before
5982         updating its style. This way UpdateStyle can walk the control
5983         heirarchy to find the control if needed.
5984         so I don't need to create a new Point object all the time.
5985         * Form.cs: Let MDI windows handle their border styles.
5986         - Set styles on MDI windows so the correct title style is derived.
5987         * MdiChildContext.cs: Move all the painting and window handling
5988         into the non client area.
5989         - Use correct sizing and put correct buttons on frames based on
5990         the FormBorderStyle.
5991         - Notify the mdi client about scrolling
5992         - Need to handle the buttons ourselves now, because they are all
5993         in non client areas and we can't add controls there.
5994         * MdiClient.cs: Halfway to scrolling, this implementation is
5995         somewhat broken though, we need to check to make sure other
5996         windows aren't causing scrolling before removing the bars. Also
5997         the bars need to be drawn on top, maybe I can switch implicit
5998         controls to be on top.
5999         * Hwnd.cs: caption_height and tool_caption_height are now
6000         properties of an hwnd, this way they can be set by the driver
6001         based on the type of window they are.  In X11 the window manager
6002         handles the decorations so caption_height is zero unless its an
6003         MDI window.
6004         - Add 3 pixel borders for MDI windows (0xFFFF).
6005         - Get rid of some code duplication, have DefaultClientRectanle
6006         just call GetClientRectangle.
6007         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
6008         Hwnd now.
6009         - Set border styles differently for mdi windows.
6010         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
6011         Hwnd now.
6012         
6013 2005-11-15  Mike Kestner  <mkestner@novell.com>
6014
6015         * Menu.cs: when adding an item to the collection, if item is already 
6016         parented, remove it from the parent.
6017
6018 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
6019
6020         * X11DesktopColors.cs: Added KDE support
6021
6022 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
6023
6024         * XplatUIWin32.cs: 
6025           - Clipboard methods now can translate Rtf format
6026           - No longer removes clipboard contents whenever a new format is added
6027             to allow placing multiple formats on the clipboard
6028         * Clipboard.cs: Clipboard now supports getting a IDataObject and
6029           will place all formats contained in it onto the clipboard. Also
6030           now cleans the clipboard before placing a new object onto it
6031         * RichTextBox.cs:
6032           - Implemented set_Rtf
6033           - Implemented set_SelectedRtf
6034           - Created InsertRTFFromStream() method to allow single code base
6035             for all properties and methods that insert RTF into document
6036           - Removed debug output
6037         * TextControl.cs:
6038           - Fixed Delete(int) to fix up line numbers
6039           - Fixed ReplaceSelection to combine start and end line
6040           - Fixed serious DeleteChars bug that would leave the document tree
6041             broken
6042           - Improved DumpTree with several logic checks to detect broken
6043             document trees
6044           - Removed debug lines
6045           - Fixed Caret.WordForward/WordBack moving code, now always also 
6046             updates caret.tag (fixes crash when word-selecting across tag
6047             boundaries via keyboard)
6048           - Added Insert() method for inserting multiline text into documents
6049           - Fixed DeleteChars() calculation errors that would cause a broken
6050             tag chain with multiple tag lines
6051           - DeleteChars() no longer crashes on multi-tag lines if not all tags
6052           - Split() no longer moves caret if split is at caret location
6053           - ReplaceSelection() now updates the cursor and re-displays it
6054           - ReplaceSelection() now uses new Insert() method to avoid code
6055             duplication
6056           - FormatText() can now handle formatting partial lines
6057         * TextBoxBase.cs:
6058           - Append now uses new TextControl.Insert() method (this avoids 
6059             duplicate code)
6060           - Implemented Ctrl-X (Cut) (
6061           - Implemented Ctrl-C (Copy)
6062           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
6063             regeneration when pasting text; roundtripping Copy&Paste within
6064             edit control still fails due to some calculation bugs in GenerateRTF)
6065           - The Delete key will now remove the current selection if it is visible
6066         * TextBox.cs: Removed debug lines
6067         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
6068           driver to be initialized and can't therefore be done via a static ctor)
6069
6070 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
6071
6072         * TextControl.cs: Added backend code for finding char arrays and strings
6073         * TextBoxBase.cs:
6074           - Added mouse wheel scroll support
6075           - Added support for VScroll and HScroll events
6076         * RichTextBox.cs:
6077           - Implemented all seven Find() variants
6078           - Implemented GetCharFromPosition()
6079           - Implemented GetCharIndexFromPosition()
6080           - Implemented GetLineFromIndex()
6081           - Implemented GetPositionFromCharIndex();
6082           - Implemented SaveFile for PlainText and UnicodeText
6083           - Fixed set_Font, now setting a new font applies that font to
6084             the whole document
6085           - Implemented generic Document to RTF converter
6086           - Implemented SaveFile for RichText format (still missing unicode
6087             conversion for non-ansi chars)
6088           - Implemented get_Rtf
6089           - Implemented get_SelectedRtf
6090
6091 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
6092
6093         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
6094           to allow any captures to be released before triggering OnClick. This
6095           way a click handler may capture the mouse without interference.
6096         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
6097           This way we send them even though X may not allow a grab (if the window
6098           isn't visible, for example)
6099
6100 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
6101
6102         * DataGridViewRowEventArgs.cs: DataGridView implementation
6103         * DataGridViewElement.cs: DataGridView implementation
6104         * DataGridViewComboBoxCell.cs: DataGridView implementation
6105         * DataGridViewDataErrorContexts.cs: DataGridView implementation
6106         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
6107         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
6108         * ImageLayout.cs: DataGridView implementation
6109         * DataGridViewComboBoxColumn.cs: DataGridView implementation
6110         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
6111         * DataGridViewSelectionMode.cs: DataGridView implementation
6112         * IDataGridViewEditingControl.cs: DataGridView implementation
6113         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
6114         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
6115         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
6116         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
6117         * DataGridViewColumnSortMode.cs: DataGridView implementation
6118         * DataGridView.cs: DataGridView implementation
6119         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
6120         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
6121         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
6122         * Padding.cs: DataGridView implementation
6123         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
6124         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
6125         * DataGridViewRowEventHandler.cs: DataGridView implementation
6126         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
6127         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
6128         * DataGridViewButtonCell.cs: DataGridView implementation
6129         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
6130         * DataGridViewEditMode.cs: DataGridView implementation
6131         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
6132         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
6133         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
6134         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
6135         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
6136         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
6137         * DataGridViewCellEventHandler.cs: DataGridView implementation
6138         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
6139         * DataGridViewCellStyleConverter.cs: DataGridView implementation
6140         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
6141         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
6142         * DataGridViewColumnEventArgs.cs: DataGridView implementation
6143         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
6144         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
6145         * QuestionEventArgs.cs: DataGridView implementation
6146         * IDataGridViewEditingCell.cs: DataGridView implementation
6147         * DataGridViewTriState.cs: DataGridView implementation
6148         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
6149         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
6150         * DataGridViewColumnCollection.cs: DataGridView implementation
6151         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
6152         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
6153         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
6154         * DataGridViewColumn.cs: DataGridView implementation
6155         * DataGridViewCellBorderStyle.cs: DataGridView implementation
6156         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
6157         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
6158         * DataGridViewRow.cs: DataGridView implementation
6159         * DataGridViewImageCellLayout.cs: DataGridView implementation
6160         * DataGridViewImageCell.cs: DataGridView implementation
6161         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
6162         * DataGridViewCheckBoxCell.cs: DataGridView implementation
6163         * DataGridViewHeaderCell.cs: DataGridView implementation
6164         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
6165         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
6166         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
6167         * DataGridViewTextBoxColumn.cs: DataGridView implementation
6168         * QuestionEventHandler.cs: DataGridView implementation
6169         * DataGridViewCellStyleScopes.cs: DataGridView implementation
6170         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
6171         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
6172         * DataGridViewCell.cs: DataGridView implementation
6173         * DataGridViewCellEventArgs.cs: DataGridView implementation
6174         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
6175         * DataGridViewCellStyle.cs: DataGridView implementation
6176         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
6177         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
6178         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
6179         * TextFormatFlags.cs: DataGridView implementation
6180         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
6181         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
6182         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
6183         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
6184         * DataGridViewButtonColumn.cs: DataGridView implementation
6185         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
6186         * HandledMouseEventArgs.cs: DataGridView implementation
6187         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
6188         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
6189         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
6190         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
6191         * DataGridViewRowCollection.cs: DataGridView implementation
6192         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
6193         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
6194         * DataGridViewHitTestType.cs: DataGridView implementation
6195         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
6196         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
6197         * DataGridViewColumnEventHandler.cs: DataGridView implementation
6198         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
6199         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
6200         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
6201         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
6202         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
6203         * DataGridViewContentAlignment.cs: DataGridView implementation
6204         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
6205         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
6206         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
6207         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
6208         * DataGridViewPaintParts.cs: DataGridView implementation
6209         * DataGridViewCellCollection.cs: DataGridView implementation
6210         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
6211         * DataGridViewImageColumn.cs: DataGridView implementation
6212         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
6213         * DataGridViewElementStates.cs: DataGridView implementation
6214         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
6215         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
6216         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
6217         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
6218         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
6219         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
6220         * DataGridViewRowHeaderCell.cs: DataGridView implementation
6221         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
6222         * DataGridViewTextBoxCell.cs: DataGridView implementation
6223         * DataGridViewBand.cs: DataGridView implementation
6224         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
6225         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
6226         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
6227         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
6228         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
6229         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
6230         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
6231         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
6232         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
6233         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
6234         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
6235
6236 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
6237
6238         * ThemeWin32Classic.cs: 
6239           - Draw the outside focus rectangle around buttons
6240           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
6241             doesn't use end caps for every dash of a line anymore. This
6242             workaround ignores the forecolor.
6243
6244 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
6245
6246         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
6247           endian safe.
6248
6249 2005-11-07  Jackson Harper  <jackson@ximian.com>
6250
6251         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
6252
6253 2005-11-07  Jackson Harper  <jackson@ximian.com>
6254
6255         * ScrollableControl.cs: Calculate the maximum and change vars
6256         (more) correctly so that scrollbars appear as a sensible size.
6257
6258 2005-11-04  Jackson Harper  <jackson@ximian.com>
6259
6260         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
6261         collection.
6262         * TreeView.cs: When the tree is sorted null out the top_node so
6263         that it is recalculated.
6264         - Use dotted lines instead of dashed lines to match MS better.
6265
6266 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
6267
6268         * ListView.cs: 
6269           - Implements key search for items. Useful when browsing files with FileDialog
6270           - When changing view mode or when clear the items reset scrollbar positions
6271
6272 2005-11-04  Jackson Harper  <jackson@ximian.com>
6273
6274         * CurrencyManager.cs: Implement the MetaDataChanged event, the
6275         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
6276         as to what the method may do as there is no real way of creating a
6277         derived CurrencyManager and calling the method. 
6278
6279 2005-11-03  Jackson Harper  <jackson@ximian.com>
6280
6281         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
6282         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
6283         method which seems to just be used internally to refresh the tabs.
6284
6285 2005-11-03  Jackson Harper  <jackson@ximian.com>
6286
6287         * TabControl.cs: Implement the remove method. Fix some broken
6288         comments.
6289
6290 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
6291
6292         * DateTimePicker.cs:
6293           - Added missing DateTimePickerAccessibleObject class
6294           - Added missing events
6295           - Added OnFontChanged method
6296         * Form.cs: Added missing attributes
6297         * TreeView.cs: Added missing attributes
6298
6299 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
6300
6301         * GridItemCollection.cs: Fix signatures
6302
6303 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
6304
6305         * XplatUI.cs: Updated build rev/date
6306         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
6307           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
6308         * Application.cs: Trigger context-specific ExitThread events
6309
6310 2005-11-03  Jackson Harper  <jackson@ximian.com>
6311
6312         * Menu.cs:
6313         * MainMenu.cs:
6314         * GridTableStylesCollection.cs:
6315         * Timer.cs:
6316         * TabPage.cs:
6317         * HelpProvider.cs:
6318         * StatusBar.cs:
6319         * MonthCalendar.cs: Signature fixes
6320
6321 2005-11-03  Jackson Harper  <jackson@ximian.com>
6322
6323         * TreeNodeCollection.cs: Remove should not be virtual.
6324         * TreeView.cs: Implement the last of the missing methods.
6325
6326 2005-11-03  Jackson Harper  <jackson@ximian.com>
6327
6328         * TreeNodeConverter.cs: Implement to get off my class-status back.
6329
6330 2005-11-03  Jackson Harper  <jackson@ximian.com>
6331
6332         * TreeView.cs: Hookup the bits for drag and drop.
6333         * TreeNode.cs: Don't cache the tree_view or index anymore, now
6334         that nodes can be moved from tree to tree easily this just causes
6335         all sorts of problems.
6336         * TreeNodeCollection: Don't need to give treenodes an index and
6337         treeview anymore when they are added, these are computed on the
6338         fly. Also make sure to remove a node before its added.
6339
6340 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
6341
6342         * TextControl.cs:
6343           - Added CaretSelection enum
6344           - Added comparison methods to Marker struct, makes selection code
6345             more readable
6346           - Added SelectionStart and SelectionEnd as 'moveable' location for
6347             the CaretDirection enum and handler
6348           - Added selection_prev variable to track optimized invalidation for
6349             word and line selection
6350           - Added SelectionVisible property (returns true if there is a valid 
6351             selection)
6352           - Switched CaretHasFocus to only display the caret if there is no
6353             visible selection
6354           - Avoiding StringBuilder.ToString to retrieve a single char, instead
6355             using the direct character index; should be much faster
6356           - Added various conditional debug statements
6357           - Fixed invalidation calculation for selection ranges
6358           - Added ExpandSelection() method to support word and line selection
6359           - Switched SetSelectionToCaret to use new Marker compare overloads
6360           - Added central IsWordSeparator() method to determine word 
6361             separators/whitespace and FindWordSeparator() to streamline common
6362             usage of IsWordSeparator()
6363         * TextBoxBase.cs:
6364           - Removed unneeded grabbed variable, it was just mirroring
6365             Control.Capture
6366           - No longer firing OnTextChanged event when Text setter is called,
6367             since the base will fire the event for us
6368           - Added handling of Ctrl-Up/Down selection
6369           - Added handling of Shift-Cursorkey selection
6370           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
6371             words
6372           - Added handling of Shift and Ctrl-Shift-Home/End selection
6373           - Removed some debug output
6374           - Added handling for single/double/tripple-click to place caret/
6375             select word/select line respectively (Fixes bug #76031)
6376           - Added support for drag expansion of word/line selection
6377         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
6378           current selection
6379
6380 2005-11-02  Jackson Harper  <jackson@ximian.com>
6381
6382         * X11Dnd.cs: If the drag is going to and from a MWF window just
6383         copy the data instead of sending it out through the X Selection
6384         mechanism.
6385
6386 2005-11-02  Jackson Harper  <jackson@ximian.com>
6387
6388         * X11Dnd.cs:
6389         * XplatUIX11.cs: When in a drag we don't want motion notify
6390         messages to get passed on to the other controls. This prevents
6391         mouse move messages from showing up in the drag source.
6392
6393 2005-11-02  Jackson Harper  <jackson@ximian.com>
6394
6395         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
6396         the correct button is release to end a drag.
6397         * XplatUIX11.cs: Make the button state internal so the drag system
6398         can access it.  Dragging needs to know about all button releases,
6399         not just left button.
6400
6401 2005-11-02  Miguel de Icaza  <miguel@novell.com>
6402
6403         * Form.cs (Icon): If the icon is null, reset the icon to the
6404         default value. 
6405
6406         * Cursor.cs: When writing the AND-mask bitmap do not include the
6407         number of colors, but hardcode those to two (black and white),
6408         fixes the loading of color cursors (Paint Dot Net).
6409
6410         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
6411         turn off autoscaling.
6412
6413         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
6414
6415 2005-11-02  Jackson Harper  <jackson@ximian.com>
6416
6417         * X11Dnd.cs: Make sure to send a status message if the pointer
6418         enters a control that can not accept a drop, otherwise the cursor
6419         isn't updated correctly. Also tried to compress the lines of code
6420         a bit.
6421
6422 2005-11-02  Jackson Harper  <jackson@ximian.com>
6423
6424         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
6425         set actions correctly.  This isn't perfect as XDND and win32 have
6426         some differences on how you allow actions. I'll clear this up by
6427         adding a path for drag from MWF to MWF windows.
6428         * XplatUIX11.cs: Hook into the dnd system.
6429
6430 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
6431
6432         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
6433         previously shown but they are no longer need it. Very obvious when 
6434         browsing files with FileDialog.
6435
6436 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
6437
6438         * Control.cs: We always need to call OnPaintBackground. We pretty much
6439           ignore AllPaintingInWmPaint and always do the painting there, whether 
6440           it's set or not, since we always ignore the WM_ERASEBKGND message 
6441           (which we don't generate on X11). This fixes #76616.
6442         * Panel.cs: Removed unneeded background painting. This happens properly
6443           in Control.cs already
6444
6445 2005-10-31  Mike Kestner  <mkestner@novell.com>
6446
6447         * Menu.cs: Add items to collection before setting their index.
6448         * MenuItem.cs : add range checking with ArgumentException like MS.
6449         [Fixes #76510]
6450
6451 2005-10-31  Jackson Harper  <jackson@ximian.com>
6452
6453         * ListBox.cs: Invalidate if the area is visible at all not just
6454         contained in the visible rect. Fixes unselection of semi visible
6455         items.
6456
6457 2005-10-31  Jackson Harper  <jackson@ximian.com>
6458
6459         * Control.cs: Consistently name the dnd methods. Make them
6460         internal so we can override them to match some MS behavoir
6461         internally.
6462         * Win32DnD.cs: Use the new consistent names.
6463
6464 2005-10-31  Jackson Harper  <jackson@ximian.com>
6465
6466         * TreeView.cs: Don't draw the selected node when we lose focus.
6467
6468 2005-10-31  Jackson Harper  <jackson@ximian.com>
6469
6470         * X11Dnd.cs: We still need to reset the state even though a full
6471         reset isn't being done, otherwise status's still get sent all over
6472         the place.
6473
6474 2005-10-31  Jackson Harper  <jackson@ximian.com>
6475
6476         * Control.cs: Make the dnd_aware flag internal so the dnd
6477         subsystem can check it. Catch exceptions thrown in dnd handlers to
6478         match MS behavoir.
6479         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
6480         * X11Dnd.cs: Handle null data in the converters. Set the XDND
6481         version when sending a XdndEnter. Use the control/hwnd dnd_aware
6482         flags to reduce the number of dnd enters/status's sent.
6483
6484 2005-10-31  Jackson Harper  <jackson@ximian.com>
6485
6486         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
6487
6488 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
6489
6490         * PictureBox.cs: Fixes 76512
6491
6492 2005-10-28  Jackson Harper  <jackson@ximian.com>
6493
6494         * X11Dnd.cs: Early implementation to support winforms being a drag
6495         source for data on X11. Also restructured the converters so they
6496         can go both ways now.
6497         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
6498         
6499 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
6500
6501         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
6502           clipboard requests
6503
6504 2005-10-27  Jackson Harper  <jackson@ximian.com>
6505
6506         * TreeNode.cs: Implement serialization so my DnD examples will work.
6507
6508 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
6509
6510         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
6511           TreeView.cs: Don't dispose objects that are not owned.
6512           
6513 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
6514
6515         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
6516           should retrieve the current cursor and report that, but XplatUI
6517           doesn't (yet) have an interface for that (and I'm not sure I even
6518           can, on X11)
6519         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
6520           until any message loop processing is done (and the WM_SETCURSOR
6521           replaces the cursor to the proper one)
6522         * XplatUIX11.cs: 
6523           - Fixed override behaviour, we can't set the cursor globally on X11, 
6524             just for our windows.
6525           - Invalidating the System.Drawing X11 display handle when we are
6526             shutting down
6527         * Control.cs: Fix to make csc happy
6528
6529 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
6530
6531         * TextBoxBase.cs: 
6532           - get_Text: Add last line (without trailing newline) to returned
6533             value (Fixes 76212)
6534           - get_TextLength: Count last line in returned length
6535           - ToString: Call Text property instead of duplicating code
6536
6537 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
6538
6539         * ImageList.cs: Dispose ImageAttributes objects.
6540
6541 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
6542
6543         * ImageList.cs: Use attribute constructors with less arguments where
6544           possible.
6545
6546 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
6547
6548         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
6549           Use typeof instead of strings when assembly is referenced. Added
6550           some more comments.
6551
6552 2005-10-21  Jackson Harper  <jackson@ximian.com>
6553
6554         * ListView.cs: Raise a double click event. Also tried to somewhat
6555         fix when the selectedindexchanged event is raised. Its still
6556         broken though.
6557
6558 2005-10-21  Jackson Harper  <jackson@ximian.com>
6559
6560         * TreeView.cs: New method to invalidate the plus minus area of a
6561         node without invalidating the whole node (maybe this can be used
6562         in some more places).
6563         * TreeNodeCollection.cs: When adding to an empty node we need to
6564         invalidate its plus minus area so the little block shows up.
6565         
6566 2005-10-21  Jackson Harper  <jackson@ximian.com>
6567
6568         * TreeView.cs: Make sure that when we invalidate a node the bounds
6569         are big enough to cover the selected box and the focus
6570         rectangle. Use a different colour for the lines connecting nodes
6571         so they show up with all themes.
6572
6573 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
6574
6575         * NativeWindow.cs: Don't call anything that could call into the driver,
6576           we might be on a different thread.
6577
6578 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
6579
6580         * Control.cs(Dispose): Since Dispose might run on a different thread,
6581           make sure that we call methods that could call into the driver via
6582           invoke, to avoid thread issues
6583
6584 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
6585
6586         * XplatUI.cs: Removed finalizer
6587         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
6588           not allowing to be called on the finalizer thread.
6589
6590 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
6591
6592         * ImageList.cs:
6593           - Reverted r51889 and r51891.
6594           - Added ImageListItem class that stores unmodified image items and image
6595             properties required to create list images until handle is created.
6596           - Added AddItem and moved image creation logic to AddItemInternal.
6597           - Added CreateHandle method that creates images based on unmodified items.
6598           - Added DestroyHandle that changes state to store unmodified items.
6599           - Add and AddStrip methods no more create handle.
6600           - ReduceColorDepth has no return value.
6601           - Dispose destroys handle.
6602           - Modified other methods to reflect the above changes.
6603           - Implemented key support.
6604           - Added profile 2.0 members and attributes.
6605           - Added private Reset and ShouldSerialize methods that provide the same
6606             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
6607             them as they are private.
6608           - Added some more comments about implementation details.
6609
6610 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
6611
6612         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
6613
6614 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
6615
6616         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
6617
6618 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
6619
6620         * DataGridDrawingLogic.cs: Fixes column hit calcultation
6621         * DataGridColumnStyle.cs: Remove debug message
6622
6623 2005-10-20  Jackson Harper  <jackson@ximian.com>
6624
6625         * TreeView.cs: We can always get input keys regardless of whether
6626         or not editing is enabled. They are used for navigation.
6627
6628 2005-10-20  Jackson Harper  <jackson@ximian.com>
6629
6630         * TreeNode.cs: Use the viewport rect for determining if a node
6631         needs to be moved for visibility. Don't use Begin/End edit. This
6632         calls a full refresh when its done.
6633         * TreeView.cs: New SetBottom works correctly.  Make the viewport
6634         rect property internal so the treenodes can see it. When clicking
6635         on a node we need to ensure that its visible because it might just
6636         be partly visible when clicked.
6637
6638 2005-10-20  Jackson Harper  <jackson@ximian.com>
6639
6640         * TreeNodeCollection.cs: Remove debug code.
6641
6642 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
6643
6644         * Datagrid.cs: Implements column sorting in Datagrid
6645         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
6646
6647 2005-10-20  Jackson Harper  <jackson@ximian.com>
6648
6649         * TreeNodeCollection.cs: Remove items properly. Update the correct
6650         area after removing them.
6651
6652 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
6653
6654         * Datagrid.cs: Should not call base.OnPaintBackground
6655
6656 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
6657
6658         * XplatUIX11.cs (GetMessage):
6659           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
6660             window instead of client window
6661           - Now properly calculates NC_xBUTTONUP message coordinates
6662           - ScreenToMenu now properly calculates it's coordinates of whole 
6663             window, since menus are in the whole window, not in the client
6664             window
6665           - Added WholeToScreen coordinate translation method
6666
6667 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
6668
6669         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
6670           want to return a message, loop back to the beginning of the function
6671           and grab the next real message to process instead.
6672
6673 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
6674
6675         * Splitter.cs: Properly set limits if no filler control is used
6676
6677 2005-10-19  Jackson Harper  <jackson@ximian.com>
6678
6679         * ColorDialog.cs: Don't show the help button if it is not enabled
6680         instead of disabling it (this is what MS does). Don't create the
6681         panel until the dialog is run, otherwise the vars (such as
6682         ShowHelp) are not set yet.
6683
6684 2005-10-19  Jackson Harper  <jackson@ximian.com>
6685
6686         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
6687         are reduced when adding nodes.
6688         * TreeNode.cs:
6689         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
6690         tree.
6691         
6692 2005-10-19  Jackson Harper  <jackson@ximian.com>
6693
6694         * FolderBrowserDialog.cs: End editing our treeview so the window
6695         actually gets refreshed.
6696
6697 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
6698
6699         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
6700           Obsoleted handling of WM_ERASEBKGND, now always draws our background
6701           inside of WM_PAINT
6702
6703 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
6704
6705         * MenuAPI.cs: Returns after Hidding window
6706         * XplatUIX11.cs: Added TODO found while debugging menu issues
6707
6708 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
6709
6710         * XplatUIX11.cs: Do not re-map the whole window when it's size
6711           becomes non-zero unless it's supposed to be actually visible
6712
6713 2005-10-18  Jackson Harper  <jackson@ximian.com>
6714
6715         * TreeView.cs: We don't need to keep a count anymore.
6716         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
6717         use the Grow method.
6718
6719 2005-10-18  Jackson Harper  <jackson@ximian.com>
6720
6721         * TreeNodeCollection.cs: Insert is not supported on arrays, so
6722         implement it manually here.
6723
6724 2005-10-18  Jackson Harper  <jackson@ximian.com>
6725
6726         * ImageList.cs: Dont kill the list when the colour depth is
6727         changed, just change the colour depth of all the images.
6728         - Same goes for setting the image size. Just resize them all
6729         instead of killing the list softly.
6730
6731 2005-10-18  Jackson Harper  <jackson@ximian.com>
6732
6733         * Control.cs: Don't invalidate empty rectangles.
6734
6735 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
6736
6737         * ListViewItem.cs:
6738           - Adds checked item to the Checked/Item lists (where empty before)
6739           - Do not add items to the Selected lists if they are already present
6740         * ListView.cs:
6741           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
6742           - When deleting items make sure that we delete them for the Selected
6743           and Checked list also.
6744
6745 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
6746
6747         * Label.cs: Dispose objects no longer used
6748         * ThemeWin32Classic.cs: Dispose objects no longer used
6749
6750 2005-10-18  Jackson Harper  <jackson@ximian.com>
6751
6752         * TabControl.cs: Don't refresh the whole control when the tabs are
6753         scrolled, we just need to refresh the tab area.
6754
6755 2005-10-17  Jackson Harper  <jackson@ximian.com>
6756
6757         * XplatUIX11.cs: Compress code a little bit. Only calculate the
6758         after handle when we need it.
6759
6760 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
6761
6762         * Control.cs: When the parent size changes, recalculate anchor 
6763           positions. Partial fix for #76462
6764
6765 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
6766
6767         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
6768           drawn. Fixes #76462
6769
6770 2005-10-17  Jackson Harper  <jackson@ximian.com>
6771
6772         * MonthCalendar.cs: Don't create the numeric up down until our
6773         handle is created. Otherwise our handle is created in the
6774         constructor and we don't know if we are a WS_CHILD or WS_POPUP
6775         yet.
6776
6777 2005-10-17  Jackson Harper  <jackson@ximian.com>
6778
6779         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
6780         correctly.
6781
6782 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
6783         * TreeNode.cs : small logical fix (was using local var instead of field)
6784         
6785 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
6786
6787         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
6788
6789 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
6790
6791         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
6792
6793 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
6794
6795         * Control.cs: 
6796           - Re-implemented anchoring code. My first version was really broken.
6797             This fixes bug #76033. Unlike the previous implementation we will
6798             no longer have round errors since all numbers are calculated from
6799             scratch every time. Removed various anchor-related obsolete vars.
6800           - InitLayout no longer causes layout event firing and layout to be 
6801             performed
6802
6803 2005-10-16  Jackson Harper  <jackson@ximian.com>
6804
6805         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
6806         which was broken).
6807
6808 2005-10-16  Jackson Harper  <jackson@ximian.com>
6809
6810         * TabControl.cs: Remove debug code.
6811
6812 2005-10-16  Jackson Harper  <jackson@ximian.com>
6813
6814         * XEventQueue.cs: Increase the default queue size (very simple
6815         apps needed to grow the queue).
6816         * Hwnd.cs: No finalizer so we don't need to suppress
6817         finalization. Compute the invalid area manually so a new rectangle
6818         does not newto be created.
6819         * ScrollableControl.cs: Don't set any params (otherwise visibility
6820         isn't set correctly).
6821         * MdiChildContext.cs: New constructor takes the mdi parent so it
6822         doesn't have to be computed and avoids a crash on windows. Draw
6823         the window icon properly, and allow the text to be seen.
6824         * Form.cs: Use new MdiChildContext constructor. Make sure the
6825         child context isn't null in wndproc.
6826         * TabControl.cs: Don't set focus, this is muddling keyboard
6827         behavoir. Expand the tab rows when a window size increase will
6828         allow extra tabs to be seen. Don't allow tabs smaller than the
6829         width of a window to be scrolled out of view.
6830         * TreeNode.cs:
6831         * TreeView.cs: Use measure string to calculate a nodes width, the
6832         width is cached and only updated when the text or the font is
6833         changed. Don't check for expand/collapse clicks on the first level
6834         nodes if root lines are disabled.
6835         
6836 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
6837
6838         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
6839
6840 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
6841
6842         * DataGridBoolColumn.cs: fixes warning
6843
6844 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
6845
6846         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
6847         to match more to match more precisely the MS Net behavior
6848
6849 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
6850
6851         * Hwnd.cs: Added field to track if window is mapped
6852         * XplatUIX11.cs: 
6853           - Unmap windows if they become 0-size, re-map when 
6854             they are >0 again; fixes #76035
6855           - Re-set our error handler after initializing X11Desktop
6856             to override any error handlers Gtk or whatever was called
6857             may have set.
6858
6859 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
6860
6861         * CheckedListBox.cs: Removed unused vars
6862         * ListView.cs: Fixed signatures
6863         * RichTextBox.cs: Removed unused vars
6864         * TextBoxBase.cs: Removed unused vars
6865         * XplatUIWin32.cs: Removed unused vars
6866         * XplatUIX11.cs: Removed unused vars
6867         * XplatUI.cs: Updated version and date to latest published
6868
6869 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
6870
6871         * Cursor.cs: Added private .ctor to work around a bug in
6872           resourceset (Thanks to Geoff Norton for the help on this)
6873         * SplitterEventArgs.cs: Made fields accessible so we don't
6874           waste boatloads of objects and can reuse the same one
6875           in Splitter
6876         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
6877           any captions and borders when generating screen coordinates
6878         * Splitter.cs: Reimplemented control, now fully complete, uses
6879           rubberband drawing, supports and obeys all properties, has
6880           proper cursors
6881
6882 2005-10-13  Miguel de Icaza  <miguel@novell.com>
6883
6884         * Form.cs (Form): Setup default values for autoscale and
6885         autoscale_base_size;  Make these instance variables, not static
6886         variables. 
6887
6888         (OnLoad): on the first load, adjust the size of the form.
6889
6890 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
6891
6892         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
6893           width argument to DrawReversibleRectangle()
6894         * XplatUIWin32.cs, XplatUIX11.cs: 
6895           - Implemented width for DrawReversibleRectangle()
6896           - Added logic to DrawReversibleRectangle that recognizes a zero
6897             width or height and only draws a line in that situation
6898         
6899 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
6900
6901         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
6902         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
6903         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
6904           method (it uses our FosterParent window to get a graphics context)
6905
6906 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
6907
6908         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
6909           and SetWindowBackground methods
6910         * Control.cs:
6911           - Setting proper ControlStyles
6912           - We no longer call XplatUI.SetWindowBackground and XplatUI.
6913             EraseWindowBackground, instead we draw the window background
6914             ourselves in PaintControlBackground. This behaviour is
6915             required to match MS, where, when OnPaintBackground is not
6916             called, the background is not drawn.
6917           - Removed unneeded Refresh() in set_Text
6918         * Hwnd.cs: Dropped the ErasePending support. No longer needed
6919         * XplatUIX11.cs:
6920           - Created DeriveStyles method to translate from CreateParams to
6921             FormBorderStyle and TitleStyle, also handles BorderStyle (which
6922             matches FormBorderStyle enum values)
6923           - Consolidated SetHwndStyles and CalculateWindowRect border/title
6924             style calculations into single DeriveStyles method
6925           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
6926             from redrawing the whole window on any resize or expose.
6927           - Fixed CreateWindow usage of SetWindowValuemask. Before not
6928             all styles were applied to our whole/client window appropriately
6929           - Removed EraseWindowBackground() and SetWindowBackground() methods
6930           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
6931             no longer clear/redraw the background through X
6932           - Removed handling of erase_pending bit, we have no use for it (or
6933             so it seems)
6934         * XplatUIOSX.cs:
6935           - Removed generation and handling of WM_ERASEBKGND message
6936           - Removed EraseWindowBackground() and SetWindowBackground() methods
6937           - Removed handling of hwnd.ErasePending flag
6938         * XplatUIWin32.cs:
6939           - Removed EraseWindowBackground() and SetWindowBackground() methods
6940           - We no longer call EraseWindowBackground on PaintEventStart, we 
6941             ignore the fErase flag, erasing is handled in Control in the
6942             background handler
6943         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
6944           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
6945           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
6946           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
6947           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
6948           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
6949           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
6950
6951 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
6952
6953         * PropertyGrids.cs: Get sub properties
6954         * PropertyGridView.cs: Fix drawing code
6955
6956 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
6957
6958         * ListBox.cs: Fixes 76383
6959
6960 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
6961
6962         * DataGridTextBoxColumn.cs: Sets location and size before attachment
6963         * ThemeWin32Classic.cs: Fixes border drawing and calculations
6964         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
6965
6966
6967 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
6968
6969         * ComboBox.cs: Fixes border drawing
6970
6971 2005-10-10  Miguel de Icaza  <miguel@novell.com>
6972
6973         * MimeIcon.cs: Ignore errors if the file can not be read.
6974
6975 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
6976
6977         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
6978          - Fixed border calculations
6979          - Fixed horizontal scrolling in single column listboxes
6980          - Fixed drawing issues
6981
6982 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
6983
6984         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
6985           FormBorderStyle enum
6986         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
6987           code to determine FormBorderStyles from CreateParams
6988         * Form.cs:
6989           - Fixed bug where we'd set the wrong window styles if we were
6990             not creating an MDI window
6991           - Added call to XplatUI.SetBorderStyle when form borders are set
6992         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
6993         * Hwnd.cs:
6994           - Removed obsolete edge style
6995           - Switched from BorderStyle to FormBorderStyle
6996         
6997 2005-10-10  Jackson Harper  <jackson@ximian.com>
6998
6999         * Form.cs: Use the property to get the window handle instead of
7000         accessing it directly. Prevents a null reference exception.
7001
7002 2005-10-10  Jackson Harper  <jackson@ximian.com>
7003
7004         * TreeView.cs: Don't adjust the rect given to DrawString now that
7005         our libgdiplus draws correctly.
7006
7007 2005-10-08  Jackson Harper  <jackson@ximian.com>
7008
7009         * TreeView.cs: Don't try to find the clicked on node if there are
7010         no nodes in the tree.
7011
7012 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
7013
7014         * RichTextBox.cs:
7015
7016           restore
7017
7018 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
7019
7020         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
7021           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
7022           ErrorProvider.cs:
7023           Use ResPool for brushes and dispose System.Drawing objects that
7024           are not used anymore.
7025
7026 2005-10-07  Jackson Harper  <jackson@ximian.com>
7027
7028         * MdiChildContext.cs: Use the new borders instead of drawing them
7029         ourselves.
7030
7031 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
7032
7033         * Calling UpdateBounds after changing the window's BorderStyle 
7034         since the style can change the ClientSize
7035
7036 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
7037
7038         * Control.cs: Made PaintControlBackground virtual
7039         * Panel.cs: Overriding PaintControlBackground instead of using paint
7040           event; paint event method was interfering with 'real' users of the
7041           event.
7042
7043 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
7044
7045         * ThemeWin32Classic.cs: remove border drawing since it is handled
7046         by the base control class now and was causing double border drawing.
7047
7048 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
7049
7050         * Panel.cs: Redraw our background on paint. Not a pretty solution,
7051           but it does seem to match MS behaviour. This fixes bug #75324
7052
7053 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
7054
7055         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
7056           somewhat hackish looking
7057
7058 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
7059
7060         * TextBoxBase.cs:
7061           - We now accept Enter even if AcceptEnter is false, if the containing
7062             form does not have an AcceptButton configured (fixes bug #76355)
7063           - Calculations are now fixed to no longer use Width/Height, but
7064             ClientSize.Width/Height, since we now support borders (this was
7065             a result of fixing borders and therefore bug #76166)
7066           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
7067             true (fixes bug #76354)
7068         
7069 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
7070
7071         * Control.cs: 
7072           - Defaulting BorderStyle and setting it in XplatUI when our window 
7073             is created
7074           - Added enum check to InternalBorderStyle setter
7075         * XplatUIX11.cs: 
7076           - Added drawing of window borders
7077           - Now properly calculates WM decorations offset for toplevel 
7078             windows (fixes bug #74763)
7079         * XplatUIWin32.cs: 
7080           - Implemented BorderStyles for windows (we're letting win32 draw 
7081             the border for us)
7082           - Fixed the signature for SetWindowLong
7083         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
7084           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
7085           setting borders
7086         * UpDownBase.cs: Remove drawing of borders, this is handled by
7087           the driver, outside the client area
7088         * ListView.cs: Removed bogus border calculations. The control should
7089           be oblivious to borders, since those are not part of the client
7090           area. 
7091         * X11DesktopColors.cs: Commented out (currently) unneeded variables
7092         * ThemeWin32Classic.cs: Removed border calculations from ListView 
7093           drawing code
7094
7095 2005-10-06  Jackson Harper  <jackson@ximian.com>
7096
7097         * MdiChildContext.cs: Clear out the old virtual position remove
7098         all the unneeded calls to CreateGraphics.
7099
7100 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
7101
7102         * TextControl.cs: Use proper color for highlighted text; fixes #76350
7103
7104 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
7105
7106         * Form.cs: 
7107           - Added loading and setting of our new default icon
7108           - Only set icon if window is already created
7109
7110 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
7111
7112         * Label.cs:
7113           - Do not explicitly set the foreground and background colors, to
7114             allow inheriting from parents (fixes #76302)
7115           - Use Control's InternalBorderStyle property to deal with borders
7116
7117 2005-10-06  Jackson Harper  <jackson@ximian.com>
7118
7119         * MdiChildContext.cs: Use the new xplatui function to draw a
7120         reversible rect.
7121
7122 2005-10-06  Jackson Harper  <jackson@ximian.com>
7123
7124         * Form.cs: Add the parent before creating the child context cause
7125         we need the parent when setting up the child.
7126
7127 2005-10-06  Jackson Harper  <jackson@ximian.com>
7128
7129         * FolderBrowserDialog.cs: redo the tree population code so a
7130         second thread isn't used. Should be a lot faster and more stable
7131         now.
7132
7133 2005-10-05  Jackson Harper  <jackson@ximian.com>
7134
7135         * TreeView.cs: There are no expand/collapse boxes if the node has
7136         no children.
7137
7138 2005-10-05  Jackson Harper  <jackson@ximian.com>
7139
7140         * X11DesktopColors.cs: Get menu colours for the gtk theme.
7141
7142 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
7143
7144         * FileDialog.cs: Fix InitialDirectory
7145
7146 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
7147
7148         * ComboBox.cs:
7149                 - Fixes changing between styles
7150                 - Fixes simple mode
7151                 - Fixes last item crashing when navigating with keyboard
7152
7153 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
7154
7155         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
7156
7157 2005-10-05  Jackson Harper  <jackson@ximian.com>
7158
7159         * TreeView.cs: If updating the root node do a full refresh.
7160         * TreeNode.cs: The root node should be expanded by default. Also
7161         added a utility prop to tell if we are the root node.
7162         * TreeNodeCollection.cs: Only refresh if the node we are being
7163         added to is expanded. Also added a comment on a potential
7164         optimization.
7165         
7166 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
7167
7168         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
7169           in dispose method. Fixes #76330
7170
7171 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
7172
7173         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
7174
7175                 - Implements vertical and horizontal scrolling using XplatUI
7176                 - Fixes keyboard navagation
7177                 - Fixes EnsureVisible
7178                 - Drawing fixes
7179                 - Handles and draws focus properly
7180
7181
7182 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
7183
7184         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
7185           Create handle. NET_2_0: Destroy handle when value is null.
7186
7187 2005-10-03  Jackson Harper  <jackson@ximian.com>
7188
7189         * ScrollBar.cs: My last scrollbar patch was broken. This is a
7190         revert and a new patch to prevent the thumb from refreshing so
7191         much.
7192
7193 2005-10-02  Jackson Harper  <jackson@ximian.com>
7194
7195         * ScrollBar.cs: Don't update position if it hasn't actually
7196         changed. This occurs when you hold down the increment/decrement
7197         buttons and the thumb gets to the max/min.
7198
7199 2005-10-01  Jackson Harper  <jackson@ximian.com>
7200
7201         * Form.cs:
7202         * MdiChildContext.cs:
7203         * MdiClient.cs: Implement ActiveMdiChild in Form.
7204
7205 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
7206
7207         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
7208
7209 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
7210
7211         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
7212           be found
7213
7214 2005-09-30  Jackson Harper  <jackson@ximian.com>
7215
7216         * ListBox.cs: Don't do a full refresh unless some data has
7217         actually changed.
7218
7219 2005-09-30  Jackson Harper  <jackson@ximian.com>
7220
7221         * TreeView.cs: Make sure that the checkboxes size is factored in
7222         even when not visible.
7223
7224 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
7225
7226         * FileDialog.cs: Fix Jordi's build break
7227
7228 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
7229
7230         * FileDialog.cs: 
7231                 - Use standard the Windows colours for the combobox as espected
7232                 - Dispose objects that use resouces when no longer need them
7233
7234 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
7235
7236         * X11DesktopColors.cs: Initial incomplete implementation
7237         * XplatUIX11.cs: Added call to initialize X11DesktopColors
7238
7239 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
7240
7241         * Theme.cs: 
7242           - Switched Theme color names to match the names defined in 
7243             System.Drawing.KnownColors. Life's hard enough, no need to make 
7244             it harder.
7245           - Added setters to all theme color properties so themes can set
7246             their color schemes. The setters also propagate the color changes
7247             to System.Drawing.KnownColors via reflection
7248         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
7249           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
7250           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
7251           use the new, more logical theme color names
7252         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
7253           post-NT colors
7254         * ThemeWin32Classic.cs:
7255           - Removed code to set the old classic Windows colors. Instead it
7256             now relies on the colors returned by System.Drawing.KnownColors
7257             which will be either modern static colors (Unix) or colors
7258             read from the user's configuration (Win32)
7259           - Updated to use the new, more logical theme color names
7260           - Switched DataGrid drawing code to use only Theme colors instead of
7261             a mix of System.Drawing.KnownColors and Theme colors
7262           - DrawFrameControl(): Removed code that fills the button area, the
7263             fill would overwrite any previous fill done by a control. This
7264             fixes bug #75338 
7265           - Added DrawReversibleRectangle() stub
7266         * ScrollableControl.cs: Set visible state to false when scrollbars
7267           are removed (pdn fix)
7268         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
7269           DrawReversibleRectangle() method to allow drawing primitive 
7270           'rubber bands'
7271         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
7272
7273 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
7274
7275         * ImageList.cs: Add(Icon): Create handle.
7276
7277 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
7278
7279         * ListView.cs:
7280         * ThemeWin32Classic.cs:
7281                 - Fixes detail mode
7282                 - Sets clippings
7283                 - Issues with drawing
7284
7285 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
7286
7287         * ImageList.cs: Moved RecreateHandle back to ImageList as event
7288           source has to be the ImageList.
7289
7290 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
7291
7292         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
7293
7294 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
7295
7296         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
7297
7298 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
7299
7300         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
7301
7302 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
7303         * GridItem.cs: Fixed TODOs
7304         * GridItemCollection.cs: Added ICollection interface
7305
7306 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
7307
7308         * ImageList.cs: Resize icons when needed.
7309
7310 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
7311
7312         * ListViewItem.cs
7313                 - Fixes GetBounds and returns on screen rects
7314         * ListView.cs:
7315                 - Fixes vertical and horzintal scrolling of items
7316         * ThemeWin32Classic.cs:
7317                 - Fixes drawing
7318                 
7319 2005-09-29  Raja R Harinath  <harinath@gmail.com>
7320
7321         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
7322
7323 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
7324
7325         * ImageList.cs: Added comments about handle creation. Moved Handle,
7326           HandleCreated and OnRecreateHandle implementations to ImageCollection.
7327           Handle is created in Add methods.
7328
7329 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
7330          
7331         * DataGridDrawingLogic.cs: 
7332                 - Takes rows into account on Colum calculations
7333                 - Returns the column when clickig
7334         * DataGrid.cs:
7335                 - Fixes default HitTestInfo values
7336                 - Fixes HitTestInfo.ToString
7337                 - Fixes ResetBackColor          
7338         
7339 2005-09-28  Jackson Harper  <jackson@ximian.com>
7340
7341         * MdiChildContext.cs: Obey rules for fixed sized windows (no
7342         sizing or cursor changes). Also added some temp code to draw the
7343         titlebars text (Makes dev a little easier).
7344
7345 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
7346
7347         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
7348
7349 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
7350          
7351         * ListBox.cs: Fixes bug 76253
7352
7353 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
7354
7355         * ImageList.cs: Added comments about the current implementation. Added
7356           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
7357           Format32bppArgb to preserve transparency and can use Graphics.FromImage
7358           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
7359           with Bitmap.LockBits for better performance. Revised the whole file to
7360           match MS.NET behaviour and provide better performance. Non-public
7361           interface members are calling public members even when they throw
7362           NotSupportedException for better maintainability. Moved ColorDepth,
7363           ImageSize, ImageStream and TransparentColor implementations to
7364           ImageCollection for better performance as these properties are not used
7365           by ImageList.
7366         * ImageListStreamer.cs: Added a new internal constructor that takes an
7367           ImageList.ImageCollection and serializes Images based on
7368           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
7369           match ImageList property name.
7370
7371 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
7372
7373         * ListBox.cs: Fixes IndexFromPoint for last item
7374
7375 2005-09-27  Jackson Harper  <jackson@ximian.com>
7376
7377         * Form.cs: Set the position of new mdi children correctly.
7378
7379 2005-09-27  Jackson Harper  <jackson@ximian.com>
7380
7381         * MdiClient.cs: New mdi children need to be added to the back of
7382         the controls collection so the zorder is set correctly. Also add a
7383         count of all the child windows that have been created.
7384
7385 2005-09-27  Jackson Harper  <jackson@ximian.com>
7386
7387         * Form.cs (CreateParams): Setup MDI forms correctly.
7388
7389 2005-09-27  Jackson Harper  <jackson@ximian.com>
7390
7391         * MdiChildContext.cs:
7392         * MonthCalendar.cs:
7393         * UpDownBase.cs:
7394         * ListBox.cs:
7395         * ListView.cs:
7396         * TextBoxBase.cs:
7397         * TreeView.cs:
7398         * ScrollableControl.cs:
7399         * ComboBox.cs: Add implicit controls using the new implict control
7400         functionality in ControlCollection. Also try to block multiple
7401         control add in a suspend/resume layout to save some cycles.
7402         
7403 2005-09-27  Jackson Harper  <jackson@ximian.com>
7404
7405         * Control.cs: Add functionality to the controls collection to add
7406         'implicit controls' these are controls that are created by the
7407         containing control but should not be exposed to the user. Such as
7408         scrollbars in the treeview.
7409         * Form.cs: The list var of the ControlsCollection is no longer
7410         available because of the potential of implicit controls getting
7411         ignored by someone accessing the list directly.
7412
7413 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
7414
7415         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
7416           loose it's parent. (Fixed bug introduced in r49103 when we added
7417           setting the child parent to null on Remove)
7418
7419 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
7420
7421         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
7422         * Splitter.cs: Added missing attributes for BorderStyle property.
7423         * TextBoxBase.cs: Marked Calculate* methods internal.
7424         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
7425         MS.NET.
7426
7427 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
7428          
7429         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
7430
7431 2005-09-25  Jackson Harper  <jackson@ximian.com>
7432
7433         * TreeView.cs: Update the node bounds correctly regardless of
7434         whether the node is visible.
7435
7436 2005-09-25  Jackson Harper  <jackson@ximian.com>
7437
7438         * ImageList.cs: Don't dispose the image after it is added to the
7439         image list. Only reformat images that need to be resized.
7440
7441 2005-09-25  Jackson Harper  <jackson@ximian.com>
7442
7443         * ImageList.cs: Don't set the format when changing the image.
7444
7445 2005-09-25  Jackson Harper  <jackson@ximian.com>
7446
7447         * TreeView.cs: We can't just assume the node has a font. Use the
7448         treeviews font if no node font is available.
7449
7450 2005-09-25  Jackson Harper  <jackson@ximian.com>
7451
7452         * TreeView.cs: Allow the scrollbars to be reset with negative
7453         values.
7454         - Don't add scrollbars to negative sized windows.
7455
7456 2005-09-23  Jackson Harper  <jackson@ximian.com>
7457
7458         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
7459         old Mono.Posix. Also remove some stray code that shouldn't have
7460         been committed.
7461
7462 2005-09-23  Jackson Harper  <jackson@ximian.com>
7463
7464         * TreeView.cs: Attempt at proper sizing of the horizontal
7465         scrollbar. Also don't resize the scrollbars unless they are
7466         visible.
7467
7468 2005-09-23  Jackson Harper  <jackson@ximian.com>
7469
7470         * TreeView.cs: We don't need to expand the invalid area when the
7471         selection changes, as this is all drawn in the node's bounding
7472         box. The area needs to be expanded (previous typo was contracting
7473         it) when the focus rect moves.
7474
7475 2005-09-23  Jackson Harper  <jackson@ximian.com>
7476
7477         * TreeView.cs: Display the selection box under the correct
7478         circumstances. We were rendering white text with no selection box
7479         before.
7480
7481 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
7482
7483         * TextControl.cs(Split): Now updates selection start/end if it points 
7484           into a line that's being split. Fixes a FIXME and bug #75258
7485
7486 2005-09-23  Jackson Harper  <jackson@ximian.com>
7487
7488         * Binding.cs:
7489         * ListControl.cs: Don't use the path when retrieving binding
7490         managers from the binding context. My bat sense tells me that the
7491         path is only used on insertion.
7492
7493 2005-09-22  Jackson Harper  <jackson@ximian.com>
7494
7495         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
7496
7497 2005-09-22  Jackson Harper  <jackson@ximian.com>
7498
7499         * Splitter.cs: There are special cursors used for splitting.
7500         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
7501
7502 2005-09-22  Jackson Harper  <jackson@ximian.com>
7503
7504         * Splitter.cs: Change the cursor appropriately when the splitter
7505         is moused over, so the user actually knows there is a splitter
7506         there.
7507
7508 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
7509
7510        * Label.cs : Fix ToString method to give same output as MS.NET
7511
7512 2005-09-22  Jackson Harper  <jackson@ximian.com>
7513
7514         * TreeView.cs: Create the scrollbars when the handle is created
7515         and add them right away, just make them invisble. Also account for
7516         the window being shrunk vertically to the point that the vert
7517         scrollbar needs to be added.
7518         - Remove some 0.5 adjustments to get around anti aliasing issues.
7519         
7520 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
7521          
7522         * MainMenu.cs: Fixes default value
7523         * MenuItem.cs: Fixes default value
7524
7525 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
7526
7527         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
7528
7529 2005-09-21  Jackson Harper  <jackson@ximian.com>
7530
7531         * Control.cs: Don't try to set the border style on the window if
7532         it hasn't been created. When the window is created the border
7533         style will be used.
7534
7535 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
7536
7537         * Control.cs (Update): Don't call XplatUI if we don't have a
7538           window handle yet
7539
7540 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
7541
7542         * ContainerControl.cs: Instead of throwing an exception, print
7543           a one-time warning about Validate not being implemented
7544         * XplatUIWin32.cs: Removed debug output
7545
7546 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
7547
7548         * Control.cs: Only set XplatUI background if we expect the windowing
7549           system to handle the background. This stops controls that draw their
7550           own background from flickering
7551
7552         * XplatUIX11.cs: Support custom visuals and colormaps for window 
7553           creation. This allows, amongst other things, using MWF X11 windows 
7554           with OpenGL.
7555
7556 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
7557
7558         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
7559           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
7560           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
7561           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
7562           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
7563           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
7564           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
7565           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
7566           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
7567           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
7568           GridColumnStylesCollection.cs, 
7569           IDataGridColumnStyleEditingNotificationService.cs,
7570           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
7571           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
7572           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
7573           TreeNodeCollection.cs, AmbientProperties.cs, 
7574           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
7575           DataObject.cs, ErrorProvider.cs, Splitter.cs,
7576           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
7577           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
7578           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
7579           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
7580           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
7581           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
7582           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
7583           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
7584           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
7585           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
7586           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
7587           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
7588           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
7589           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
7590           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
7591           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
7592           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
7593           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
7594           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
7595           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
7596           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
7597           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
7598           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
7599           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
7600           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
7601           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
7602           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
7603           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
7604           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
7605           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
7606           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
7607           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
7608           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
7609           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
7610           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
7611
7612 2005-09-21  Jackson Harper  <jackson@ximian.com>
7613
7614         * TreeNode.cs: Call Before/After Expand not Collapse when
7615         expanding.
7616
7617 2005-09-20  Jackson Harper  <jackson@ximian.com>
7618         
7619         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
7620
7621 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
7622          
7623         * ListViewItem.cs:
7624                 - Fixes bug 76120
7625                 - Fixes proper storing of subitems
7626                 - Fixes not updated items
7627
7628 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
7629
7630         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
7631           things if our window handle isn't created yet. Also disabled 
7632           debug for TextBoxBase
7633
7634 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
7635
7636         * MenuAPI.cs: Remove filtering of events to allow menu usage
7637
7638 2005-09-20  Miguel de Icaza  <miguel@novell.com>
7639
7640         * Cursor.cs: Allow null to be passed to Cursor.Current.
7641
7642 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
7643
7644         * ThemeWin32Classic.cs:
7645           - Change some private methods/fields to protected virtual so that 
7646             they can be accessed and overriden in derived classes
7647           - First refactoring of some methods. Derived themes now don't 
7648             need to duplicate the complete code from ThemeWin32Classic
7649         * ThemeNice.cs:
7650           - Added nice StatusBar
7651           - Derive from ThemeWin32Classic and not Theme
7652           - Removed duplicate ThemeWin32Classic code
7653
7654 2005-09-20  Miguel de Icaza  <miguel@novell.com>
7655
7656         * Control.cs (ControlCollection.Add): If the value null is passed
7657         the control is ignored. 
7658
7659         Optimize this loop.
7660
7661 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
7662
7663         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
7664           PostQuitMessage state.
7665         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
7666
7667 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
7668
7669         * Application.cs: Our constructor will never get called, move 
7670           initialization to fields; fixes bug #75933
7671
7672 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
7673
7674         * FileDialog.cs :
7675                 - Allow files to be selected properly using file name
7676                 combo box.
7677                 - Add ability to change diretory (absolute / relative)
7678                 using file name combo box.
7679
7680 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
7681          
7682         * ListBox.cs: 
7683                 - Fixes Multicolumn listboxes item wrong calculations
7684                 - Allows to click when only one item is in the listbox
7685                 - Fixes crash when no items using keyboard navigation
7686
7687 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
7688
7689         * ComboBox.cs: Reverted almost everything from the latest patch which
7690           broke ComboBox
7691
7692 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
7693         
7694         * ToolTip.cs:
7695                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
7696         * ComboBox.cs:
7697                 - When DropDownStyle is Simple, it does not show scrollbar 
7698                 to the last item of the list.
7699                 - When DropDownStyle is Simple, it crashed when the list was 
7700                 scrolled down with the down cursor key.
7701                 - Fixed a bug that when DropDownStyle is DropDownList, the 
7702                 selected item was not shown.
7703                 - The position of the selected item was not preserved when 
7704                 the next dropdown happened.
7705         * ThemeWin32Classic.cs:
7706                 - Items were wrapped at the right end.
7707         * CheckedListBox.cs:
7708                 - Fixed Add method
7709         * ListBox.cs:
7710                 - Items should be fully shown.
7711                 - When resizing and vertical scrollbar disappeared, the item 
7712                 of index 0 should be on the top of the list.
7713                 - GetItemRectangle should consider the size of ver. scrollbar
7714         * StatusBar.cs:
7715                 - SizingGrip area should not be allocated when it is not 
7716                 displayed.
7717                 - Now it reflects MinWidth of the containing panel and 
7718                 fixed a crash that happens when its width becomes so small.
7719
7720 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
7721
7722         * CheckedListBox.cs: Fixes bug 76028
7723         * ListBox.cs: Fixes bug 76028
7724
7725 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
7726
7727         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
7728         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
7729
7730 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
7731
7732         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
7733
7734 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
7735
7736         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
7737
7738 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
7739
7740         * IRootGridEntry.cs: Added
7741         * PropertyGridCommands.cs: Added
7742         * PropertiesTab.cs: Added missing methods and property
7743         * PropertyGridView.cs: Made class internal
7744         * PropertyGridTextBox.cs: Made class internal
7745
7746 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
7747
7748         * MimeIcon.cs: Try to check some other environment variables
7749           if "DESKTOP_SESSION" returns "default"
7750
7751 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
7752
7753         * ThemeNice.cs: Corrected background colors (e.g. menus)
7754         * ColorDialog.cs: Use correct background colors for controls
7755
7756 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
7757
7758         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
7759
7760 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
7761
7762         * RichTextBox.cs: Added initial implementation
7763         * lang.cs: Removed. Was accidentally checked in long time ago
7764         * TODO: Removed. Contents were obsolete
7765
7766 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
7767                                                                                 
7768         * PropertiesTab.cs : Added
7769
7770 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
7771                                                                                 
7772         * PropertyGrid.cs : Update
7773         * PropertyGridView.cs : Update
7774         * System.Windows.Forms.resx : Added images and strings
7775
7776 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
7777
7778         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
7779  
7780 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
7781
7782         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
7783           a busy loop right after the Ungrab the X11 display is otherwise 
7784           blocked
7785
7786 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
7787
7788         * ThemeWin32Classic.cs: Optimise the use of clipping
7789
7790 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
7791
7792         * DataGrid.cs: fixes recursion bug
7793
7794 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
7795
7796         * ThemeNice.cs: 
7797           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
7798           - Cleanup
7799
7800 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
7801
7802         * ThemeNice.cs: Draw nice ProgressBars
7803
7804 2005-09-01  Miguel de Icaza  <miguel@novell.com>
7805
7806         * VScrollBar.cs: Another buglet found by Aaron's tool. 
7807
7808         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
7809         bug finder.
7810
7811 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
7812
7813         * ThemeNice.cs:
7814           - Added nicer menu drawing
7815           - Updated DrawTab
7816           - some refactoring
7817
7818 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
7819
7820         * CreateParams.cs (ToString): Made output match MS
7821         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
7822             handle is already created (to avoid forcing window creation)
7823         * XplatUIX11.cs: Set window text to caption after creating window,
7824           in case Text was set before window was created
7825         * Form.cs: Use this.Text instead of a static string as caption
7826
7827 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
7828
7829         * NotifyIcon.cs: Don't set the window to visible; this screws
7830           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
7831           OnPaint without a bitmap)
7832         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
7833           happen very often anyway; we could add the check to the WM_PAINT 
7834           event generation code
7835
7836 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
7837
7838         * NotifyIcon.cs: Fill the icon area with a background color, to 
7839           avoid 'residue' when transparent icons are drawn
7840         * XplatUIX11.cs:
7841           - Handle whole_window == client_window when destroying windows
7842           - SystrayAdd(): Set client_window to whole_window value to
7843             get mouse and other events passed to NotifyIcon
7844
7845 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
7846
7847         * Form.cs: Set proper default for Opacity property
7848         * NotifyIcon.cs:
7849           - ShowSystray(): Don't bother creating telling the OS
7850             about the systray item if no icon is provided
7851           - Now handles WM_NCPAINT message to deal with whole/client window
7852             split
7853           - Create window as visible to not get caught by Expose optimization
7854         * Hwnd.cs: Removed debug message
7855         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
7856           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
7857             PaintEventStart/End to use new client argument
7858         * TextBoxBase.cs:
7859           - Commented out debug messages
7860           - Switched PaintEventStart/End to use new client argument
7861         * XplatUI.cs: Added client window bool to PaintEventStart()/
7862           PaintEventEnd() calls, to support drawing in non-client areas
7863         * XplatUIDriver.cs: 
7864           - Added client window bool to PaintEventStart()/PaintEventEnd() 
7865             calls, to support drawing in non-client areas
7866           - Added conditional compile to allow using MWF BeginInvoke 
7867             on MS runtime
7868         * XplatUIX11.cs:
7869           - Added some conditional debug output
7870           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
7871             whole/client window split
7872           - Implemented handling of client argument to PaintEventStart()/End()
7873         * Control.cs:
7874           - Throw exception if BeginInvoke() is called and the window handle
7875             or one of the window's parent handles is not created
7876           - Added conditional compile to allow using MWF BeginInvoke on
7877             MS runtime
7878           - get_Parent(): Only sets parent if handle is created. This avoids
7879             forcing window handle creation when parent is set.
7880           - Now fires Layout and Parent changed events in proper order
7881           - Switched to use Handle instead of window.Handle for Z-Order setting,
7882             the get_Parent() patch above causes us to possibly get null for 'window'
7883           - Implemented handling of client argument to PaintEventStart()/End()
7884           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
7885             default handling)
7886           - Now sends a Refresh() to all child windows when Refresh() is called
7887
7888 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
7889
7890         * Form.cs: Added (non-functional) Opacity property
7891         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
7892
7893 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
7894         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
7895           use export MONO_THEME=nice to activate it.
7896           Currently supported controls:
7897           - Button
7898           - ComboBox
7899           - ScrollBar
7900           - TabControl (TabAlignment.Top only, other will follow)
7901         * ThemeEngine.cs: Add theme nice
7902         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
7903           if enabled
7904
7905 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
7906
7907         * Splitter.cs: Resize docked control and its neighbor.
7908
7909 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
7910         -- Making Windows with Menus layout correctly --
7911         * Form.cs : The first leg of the fix
7912                 Menu setter - adjust Client Size as needed to make space for the menu
7913                 SetClientSizeCore - doesn't call base version to be able to pass the 
7914                         menu handle to XplatUI.CalculateWindowRect
7915         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
7916         * XplatUIX11.cs: The critical second leg of the fix
7917                 GetWindowPos needs to use a recalculated client_rect
7918                 so that resizing the window doesn't break layout of child controls. 
7919                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
7920                 Lots of \t\n killed
7921
7922 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
7923
7924         * Label.cs: Now properly recalculates width and height on Font and Text
7925           changes if AutoSize is set
7926
7927 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
7928         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
7929
7930 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
7931
7932         * ImageList.cs: Makes ToString method compatible with MS
7933
7934 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
7935
7936         * MenuAPI.cs: fixes bug 75716
7937
7938 2005-08-11 Umadevi S <sumadevi@novell.com>
7939         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
7940
7941 2005-08-11 Umadevi S <sumadevi@novell.com>
7942         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
7943
7944 2005-08-10  Umadevi S <sumadevi@novell.com>
7945         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
7946
7947 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
7948
7949         * Menu.cs: fixes bug 75700
7950         * MenuAPI.cs: fixes navigation issues
7951
7952 2005-08-09  Umadevi S <sumadevi@novell.com>
7953         * CheckedListBox.cs - simple fix for GetItemChecked.
7954
7955 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
7956
7957         * ComboBox.cs: Serveral fixes
7958         * ListBox.cs: Serveral fixes
7959
7960 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
7961
7962         * ComboBox.cs: Fixes FindString methods and GetItemHeight
7963         * ListBox.cs: Fixes FindString methods
7964
7965 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
7966
7967         * DataGrid.cs: fixes bugs exposed by new tests
7968
7969 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
7970
7971         * Mime.cs: Compile Mono assembly references only if compiling
7972           with Mono (Allows to build with VS.Net again)
7973
7974 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
7975
7976         * Control.cs (PaintControlBackground): Draw background image
7977         corrrectly.
7978         (CheckForIllegalCrossThreadCalls): Stubbed.
7979         
7980         * Form.cs (OnCreateControl): Center when should be centered.
7981         
7982         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
7983
7984 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
7985
7986         * Binding.cs: Binding to properties should be case unsensitive
7987
7988 2005-07-18 vlindos@nucleusys.com
7989
7990         * DataGrid.cs: fixes setmember order
7991
7992 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
7993
7994         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
7995         * FileDialog.cs: FileDialog is now resizable and uses the new
7996           MimeIconEngine
7997
7998 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
7999
8000         * DataGridTextBoxColumn.cs: default value
8001         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
8002         * GridTableStylesCollection.cs: fixes checking MappingName
8003         * DataGridDrawingLogic.cs: fixes drawing logic issues
8004         * DataSourceHelper.cs: rewritten to make compatible with more data sources
8005         * DataGrid.cs: fixes    
8006
8007 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
8008
8009         * MimeGenerated.cs: Use case sensitive comparer for
8010           NameValueCollections
8011
8012 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
8013
8014         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
8015         * ThemeWin32Classic.cs: bug fixes, code refactoring
8016         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
8017         * DataGrid.cs: bug fixes, code refactoring
8018         * DataGridTextBox.cs: bug fixes, code refactoring
8019         * DataGridColumnStyle.cs:  bug fixes, code refactoring
8020         * Theme.cs:  bug fixes, code refactoring
8021
8022 2005-07-01  Peter Bartok  <pbartok@novell.com> 
8023
8024         * TextControl.cs: Quick fix for the reported crash on ColorDialog
8025           and other text box usage
8026
8027 2005-07-01  Jackson Harper  <jackson@ximian.com>
8028
8029         * TabControl.cs: Make sure the bottom of the tab covers the pages
8030         border.
8031
8032 2005-06-30  Peter Bartok  <pbartok@novell.com> 
8033
8034         * Form.cs (ShowDialog): Assign owner of the dialog
8035         * TextBoxBase.cs: Always refresh caret size when deleting, caret
8036           might have been moved to a tag with different height
8037
8038 2005-06-30  Jackson Harper  <jackson@ximian.com>
8039
8040         * Form.cs: Don't create an infinite loop when setting focus
8041         * MenuItem.cs: Don't dirty the parents if we don't have any
8042
8043 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
8044
8045         * LibSupport.cs: Rename
8046
8047 2005-06-29  Peter Bartok  <pbartok@novell.com>
8048
8049         * TextBoxBase.cs: Re-align caret after deleting a character
8050         * TextControl.cs:
8051           - DeleteChars(): Ensure that tag covers the provided position
8052           - StreamLine(): Drop reference for dropped tag
8053
8054 2005-06-29  Peter Bartok  <pbartok@novell.com> 
8055
8056         * TextControl.cs: 
8057           - Selections now work properly, anchoring at the initial location
8058             and properly extending in either direction (SetSelectionToCaret(),
8059             SetSelectionStart() and SetSelectionEnd())
8060           - No longer redraws the whole control on selection change, now
8061             calculates delta between previous and new selection and only
8062             invalidates/redraws that area
8063           - Fixed FindPos() math off-by-one errors
8064           - Changed DeleteChars() to verify the provided tag covers the
8065             provided position, selections may have a tag that doesn't cover
8066             the position if the selection is at a tag border
8067           - Fixed off-by-one errors in DeleteChars()
8068           - Added missing streamlining check in DeleteChars() to remove
8069             zero-length tags
8070           - Implemented Invalidate() method, now properly calculates exposures
8071             between two given lines/positions
8072           - Implemented SetSelection()
8073           - Obsoleted and removed FixupSelection()
8074           - Improved RecalculateDocument() logic, removing code duplication
8075
8076 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8077
8078         * LibSupport.cs: changes to match different input/output arguments.
8079
8080 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8081
8082         * LibSupport.cs: added libsupport.so init routine.
8083
8084 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
8085         
8086         * ControlBindingsCollection.cs
8087                 - Throws an exception on null datasource when adding
8088                 - Checks for duplicated bindings when adding
8089
8090 2005-06-28  Jackson Harper  <jackson@ximian.com>
8091
8092         * TreeView.cs (OnKeyDown): Support left and right properly
8093         (navigates as well as expanding and collapsing.
8094         - Add support for Multiply, this expands all the selected nodes
8095         children.
8096         - Fix some tabbing.
8097
8098 2005-06-28  Jackson Harper  <jackson@ximian.com>
8099
8100         * TreeView.cs: Implement keyboard navigation, currently supports,
8101         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
8102         support for toggling checkboxes with the space bar.
8103
8104 2005-06-28  Jackson Harper  <jackson@ximian.com>
8105
8106         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
8107         tree.
8108
8109 2005-06-28  Jackson Harper  <jackson@ximian.com>
8110
8111         * TreeView.cs: Add missing event.
8112
8113 2005-06-27  Peter Bartok  <pbartok@novell.com> 
8114
8115         * TextControl.cs:
8116           - Made line ending size configurable (now allows for counting 
8117             lineendings as \n or \r\n)
8118           - Added margin to viewport to keep caret visible on right side
8119           - Fixed translation routines for line/pos to documentpos to consider
8120             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
8121           - Fixed some line-endings to be unix style
8122           - Fixed Document.FormatText to perform it's calculations 1-based
8123           - Added descriptions for a few methods that might otherwise get 
8124             used wrong
8125           - Added NOTE section with some basic conventions to remember at 
8126             the top of the file
8127           - Major fixup for RichTextBox selection drawing:
8128             * Fixed crashes when multiple tags on a single line were selected
8129             * fixed selection box drawing not overlaying text
8130             * fixed bogus offset calculation for tags not starting at index 1
8131             * Switched behaviour from using multiple Substrings of a 
8132               StringBuilder.ToString() to using multiple 
8133               StringBuilder.ToString(start, length) statements, hoping this is
8134               faster (kept original version commented out in the code, in case
8135               original version was faster)
8136         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
8137           alignment != Left
8138         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
8139           call it as well
8140
8141 2005-06-27  Jackson Harper  <jackson@ximian.com>
8142
8143         * TabControl.cs: Move to the left and right with the arrow
8144         keys. These keys don't cycle beyond first and last like
8145         tab. Refresh all the tabs when scrolling them to the left or
8146         right.
8147
8148 2005-06-27  Jackson Harper  <jackson@ximian.com>
8149
8150         * TabControl.cs:
8151           - ToString: Added method
8152           - CreateParams: Remove TODO and comment
8153           - OnKeyDown: Cycle through bounds properly.
8154           - SelectedIndex: Scroll to the right or left if we need to
8155           display the newly selected tab.
8156
8157 2005-06-23  Jackson Harper  <jackson@ximian.com>
8158
8159         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
8160         set.
8161
8162 2005-06-23  Jackson Harper  <jackson@ximian.com>
8163
8164         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
8165         CTRL-SHIFT-TAB, and HOME, END are there any others?
8166
8167 2005-06-23  Jackson Harper  <jackson@ximian.com>
8168
8169         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
8170
8171 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
8172         
8173         * DataGridTextBoxColumn.cs: fixes and enhancements
8174         * ThemeWin32Classic.cs: fixes and enhancements
8175         * DataGridBoolColumn.cs:  fixes and enhancements
8176         * DataGridDrawingLogic.cs:  fixes and enhancements
8177         * CurrencyManager.cs: fixes and enhancements
8178         * DataGrid.cs: fixes and enhancements
8179         * DataGridColumnStyle.cs:  fixes and enhancements
8180
8181 2005-06-22  Jackson Harper  <jackson@ximian.com>
8182
8183         * TabControl.cs: Add some missing methods that just call into the
8184         base. Make the TabPageCollection's IList interface behave in the
8185         same manner as the MS implementation.
8186
8187 2005-06-22  Peter Bartok  <pbartok@novell.com> 
8188
8189         * TextControl.cs: Added sanity check
8190         * TextBoxBase.cs: 
8191           - Fixed wrapping behaviour, don't set wrap on single line controls
8192             (this fixes the breakage of colordialog introduced in an earlier
8193              checkin)
8194           - Added rudimentary support for autoscrolling right-aligned controls
8195             (still needs fixing, also, center alignment scroll is missing)
8196
8197 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
8198         
8199         * ScrollBar.cs: Fixes thumbpos on Maximum values
8200
8201 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
8202         
8203         * PropertyGridView.cs: Pass context information to UITypeEditors 
8204
8205 2005-06-21  Peter Bartok  <pbartok@novell.com> 
8206
8207         * TextBoxBase.cs:
8208           - Now calling PositionCaret with absolute space coordinates
8209           - Enabled vertical scrolling
8210           - Better tracking of scrollbar changes, tied into WidthChange
8211             event
8212           - Improved cursor tracking
8213           - Removed debug output
8214         * TextControl.cs:
8215           - PositionCaret coordinates are now works in absolute space, not 
8216             the canvas
8217           - Improved tracking of document size
8218           - Added events for width and height changes
8219
8220 2005-06-21  Peter Bartok  <pbartok@novell.com>
8221
8222         * Form.cs: Set focus to active control when form is activated
8223         * TextControl.cs: 
8224           - Added word-wrap functionality to RecalculateLine() 
8225           - Added some short function descriptions for VS.Net to aid in
8226             writing dependent controls
8227           - Added Caret property, returning the current coords of the caret
8228           - Added ViewPortWidth and ViewPortHeight properties
8229           - Added Wrap property
8230           - Added CaretMoved event
8231           - Removed some old debug code
8232           - Split() can now create soft splits
8233           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
8234           - Added method to format existing text
8235           - Fixed size/alignment calculations to use viewport
8236           - RecalculateDocument now can handle changing line-numbers while
8237             calculating lines
8238
8239         * TextBox.cs:
8240           - Added some wrap logic, we don't wrap if alignment is not left
8241           - Added casts for scrollbar var, base class switched types to
8242             also support RichTextBoxA
8243           - Implemented handling of scrollbar visibility flags
8244
8245         * TextBoxBase.cs:
8246           - Switched scrollbars type to RichTextBoxScrollBars to support
8247             RichTextBox
8248           - Added tracking of canvas width/height
8249           - Switched scrollbars to be not selectable (to keep focus on text)
8250           - Added central CalculateDocument() method to handle all redraw
8251             requirements
8252           - Added ReadOnly support
8253           - Added WordWrap support
8254           - Fixed handling of Enter key (we now treat it as a DialogKey)
8255           - Fixed caret positioning when h or v scroll is not zero
8256           - Fixed placing/generation of vertical scrollbar
8257           - Added CalculateScrollBars() method to allow updating scrollbar
8258             limits and visibility
8259           - Fixed handling of horizontal scroll
8260           - Added handling of vertical scroll
8261           - Implemented auto-'jump' when caret moves to close to a left or
8262             right border and there is text to be scrolled into view (currently
8263             there's the potential for a stack overflow, until a bug in
8264             scrollbar is fixed)
8265
8266 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
8267         
8268         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
8269
8270 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
8271
8272         * Mime.cs:
8273         - added inodes.
8274         - return application/x-zerosize for files with size zero
8275           (if no extension pattern matches).
8276         - check matches collection for strings too.
8277         - return only the first mime type if the name value
8278           collection has more than one mime type.
8279
8280 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
8281         
8282         * PropertyGrid.cs: Cleaned up some TODOs
8283         * PropertyGridView.cs: Added support for UITypeEditors
8284
8285 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
8286         
8287         * DataGrid.cs: clears cached value
8288
8289 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
8290
8291         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
8292         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
8293         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
8294         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
8295         
8296 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
8297
8298         * ThemeWin32Classic.cs: fixes colour
8299
8300 2005-06-15  Peter Bartok  <pbartok@novell.com>
8301
8302         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
8303         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
8304         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
8305         * Control.cs: Added some MWFCategory and MWFDescription attributes
8306         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
8307
8308 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
8309
8310         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
8311         usage
8312
8313 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
8314
8315         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
8316         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
8317         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
8318         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
8319         * DataGrid.cs: default datagrid settings for Default Styles, fixes
8320         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
8321
8322 2005-06-13  Jackson Harper  <jackson@ximian.com>
8323
8324         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
8325         isn't printed when the user enables dropping. (X11 does accept
8326         drops).
8327         
8328 2005-06-13  Jackson Harper  <jackson@ximian.com>
8329
8330         * TreeView.cs: Remove some TODOS.
8331
8332 2005-06-13  Jackson Harper  <jackson@ximian.com>
8333
8334         * Form.cs: Hook into the mdi framework.
8335         * MdiClient.cs: Use the base control collections add method so
8336         parents get setup correctly. Set the default back colour and dock
8337         style.
8338         * MdiChildContext.cs: New class, this bad actor handles an
8339         instance of an MDI window. Right now there is only basic
8340         support. You can drag, close, and resize windows. Minimize and
8341         Maximize are partially implemented.
8342
8343 2005-06-13  Jackson Harper  <jackson@ximian.com>
8344
8345         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
8346         freaky when both vals are negative. NOTE: There are probably other
8347         places in XplatUIX11 that this needs to be done.
8348
8349 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
8350
8351         * DataGrid.cs: implement missing methods, move KeyboardNavigation
8352         * DataGridColumnStyle.cs: fixes signature
8353
8354 2005-06-12  Jackson Harper  <jackson@ximian.com>
8355
8356         * XplatUIX11.cs: Use sizing cursors similar to the ones on
8357         windows.
8358
8359 2005-06-11  Jackson Harper  <jackson@ximian.com>
8360
8361         * StatusBarPanel.cs: Signature cleanups. Implement
8362         BeginInit/EndInit.
8363
8364 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
8365
8366         * DataGridTextBoxColumn.cs: Honors aligment
8367         * GridColumnStylesCollection.cs: Contains is case unsensitive
8368         * GridTableStylesCollection.cs: several fixes
8369         * DataGridTableStyle.cs: default column creation
8370         * DataGridDrawingLogic.cs: fixes
8371         * CurrencyManager.cs: ListName property
8372         * DataGrid.cs: multiple styles support
8373         * DataGridColumnStyle.cs: fixes
8374         
8375
8376 2005-06-10  Peter Bartok  <pbartok@novell.com>
8377
8378         * Control.cs(Select): Moved SetFocus call to avoid potential
8379           loops if controls change the active control when getting focus
8380         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
8381           the up/down buttons
8382
8383 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
8384
8385         * ImageListConverter.cs: Implemented
8386
8387 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
8388
8389         * MonthCalendar.cs: Wired in NumericUpDown control for year
8390
8391 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
8392
8393         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
8394           DoubleClick events, since they are not meant to be fired.
8395
8396 2005-06-09  Peter Bartok  <pbartok@novell.com>
8397
8398         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
8399           Jonathan's standalone controls into MWF, implemented missing
8400           events, attributes and methods; added xxxAccessible classes
8401         * AccessibleObject.cs: Made fields internal so other classes
8402           can change them if needed
8403
8404 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
8405
8406         * UpDownBase.cs: Complete implementation
8407         * NumericUpDown.cs: Complete implementation
8408         * DomainUpDown.cs: Complete implementation
8409
8410 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
8411
8412         * DataGridTextBoxColumn.cs: drawing fixes
8413         * DataGridCell.cs: fixes ToString method to match MSNet
8414         * DataGridTableStyle.cs: fixes
8415         * DataGridBoolColumn.cs: fixes, drawing
8416         * DataGridDrawingLogic.cs: fixes, new methods
8417         * DataGridTextBox.cs: Keyboard and fixes
8418         * DataGrid.cs:
8419                 - Keyboard navigation
8420                 - Scrolling fixes
8421                 - Row selection (single, multiple, deletion, etc)
8422                 - Lots of fixes
8423         
8424 2005-06-07  Jackson Harper  <jackson@ximian.com>
8425
8426         * ThemeWin32Classic.cs: Clear the background area when drawing
8427         buttons.
8428
8429 2005-06-06  Peter Bartok  <pbartok@novell.com>
8430
8431         * ImageListStreamer.cs: Fixed signature for GetData
8432         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
8433         * ComboBox.cs:
8434           - Added missing ChildAccessibleObject class
8435           - Added missing OnXXXFocus overrides, switched to using those
8436             instead of the event handler
8437         * Control.cs:
8438           - Added Parent property for ControlAccessibleObject
8439           - Fixed signatures
8440           - Fixed attributes
8441           - Added ResetBindings()
8442         * ListBindingConverter.cs: Implemented some methods
8443         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
8444         * ImageList.cs: Implemented basic handle scheme, removed TODOs
8445         * ContainerControl.cs: Fixed signature, now subscribing to the
8446           ControlRemoved event instead of overriding the handler, LAMESPEC
8447         * CurrencyManager.cs: Added missing attribute
8448         * MonthCalendar.cs: Added missing properties
8449
8450 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
8451
8452         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
8453         
8454 2005-06-06  Gaurav Vaish and Ankit Jain
8455
8456         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
8457         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
8458         
8459 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
8460
8461         * Control.cs: fixes CreateParams Width / Height.
8462
8463 2005-06-05  Peter Bartok  <pbartok@novell.com>
8464
8465         * Win32DnD.cs: Removed compilation warnings
8466
8467 2005-06-05  Peter Bartok  <pbartok@novell.com>
8468
8469         * Control.cs (CreateParams): Since we don't know if one of the
8470           properties we use is overridden, lets make sure if we fail accessing
8471           we continue with a backup plan
8472
8473 2005-06-05  Peter Bartok  <pbartok@novell.com>
8474
8475         * Win32DnD.cs:
8476           - Removed debug output
8477           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
8478             struct
8479           - Plugged resource leak
8480         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
8481           MS size
8482
8483 2005-06-05  Peter Bartok  <pbartok@novell.com>
8484
8485         * XplatUIWin32.cs: Removed DnD code
8486         * Win32DnD.cs: Implemented drop source and drop target functionality
8487
8488 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8489
8490         * UpDownBase.cs: remove duplicate addition of event, enable some code
8491         that was commented out.
8492         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
8493         Validate input when a key is pressed. It works fine now for every
8494         combination of Hexadecimal. Only missing some drawing love when sharing
8495         space with other controls.
8496
8497 2005-06-04  Peter Bartok  <pbartok@novell.com>
8498
8499         * Control.cs:
8500           - We need to pass a window for DragDrop, so enable callback events
8501           - Added DnD callback events when being a DragSource
8502         * XplatUI.cs (StartDrag): Added window handle argument
8503         * XplatUIDriver.cs (StartDrag): Added window handle argument
8504         * QueryContinueDragEventArgs: Made fields internally accessible so
8505           drivers can set them
8506         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
8507           can set them
8508
8509 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
8510
8511         * DataGridTextBoxColumn.cs: column text editing
8512         * DataGridTableStyle.cs: Respect columns styles created by the user
8513         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
8514         * DataGridBoolColumn.cs: bool column editing
8515         * DataGrid.cs: fixes to scrolling, properties, etc
8516         * DataGridTextBox.cs: handle keyboard
8517         * DataGridColumnStyle.cs: fixes
8518
8519 2005-06-02  Jackson Harper  <jackson@ximian.com>
8520
8521         * ImageListStreamer.cs: Somewhat broken implementation of
8522         GetObjectData. The RLE needs some work to match MS properly.
8523
8524 2005-06-02  Jackson Harper  <jackson@ximian.com>
8525
8526         * X11Dnd.cs: Attempting to keep at least one file in MWF
8527         monostyled.
8528
8529 2005-06-02  Peter Bartok  <pbartok@novell.com>
8530
8531         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
8532           that way
8533
8534 2005-06-02  Peter Bartok  <pbartok@novell.com>
8535
8536         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
8537         * XplatUI.cs: Added DoDragDrop() method
8538         * XplatUIDriver.cs: Added DoDragDrop() method
8539
8540 2005-06-02  Jackson Harper  <jackson@ximian.com>
8541
8542         * Splitter.cs: Implement BorderStyle.
8543
8544 2005-06-02  Jackson Harper  <jackson@ximian.com>
8545
8546         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
8547         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
8548         X11 using XDND.
8549
8550 2005-06-02  Peter Bartok  <pbartok@novell.com>
8551
8552         * DataObject.cs:
8553           - Added Data setter
8554           - Fixed broken insertion code for SetData, now also
8555             overwrites any existing entry of the same format name
8556         * Hwnd.cs: Added list of pointers that automatically gets
8557           freed when the window is disposed
8558         * XplatUI.cs: Call driver initialization method when loading
8559           a driver
8560         * Control.cs:
8561           - OnDragLeave takes EventArgs, not DragEventArgs
8562           - Added setting of WS_EX_ACCEPTFILES style when dropping is
8563             supported
8564           - Forces style update when drop state changes
8565         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
8566           not perfect since we cannot (yet) call the IDataObject.GetData()
8567           method, we keep getting 0x80004005 error, dunno why)
8568
8569 2005-06-02  Peter Bartok  <pbartok@novell.com>
8570
8571         * DragEventArgs.cs: Make fields internal so we can cache the
8572           object and re-set the fields from XplatUI
8573
8574 2005-06-02  Jackson Harper  <jackson@ximian.com>
8575
8576         * Control.cs: Add some internal methods so the DnD subsystem can
8577         raise DnD events. Also call into the driver when AllowDrop is set.
8578         * XplatUI.cs:
8579         * XplatUIDriver.cs: New method for setting whether or not a window
8580         is allowed to accept drag and drop messages.
8581                 
8582 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
8583         
8584         * ScrollBar.cs: Make sure that values sent in Scroll events
8585         are always between Maximum and Minimum.
8586
8587 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
8588
8589         * Menu.cs: Call MenuChanged when menuitem visibility has been
8590         changed.
8591         * MenuItem.cs: Rebuild menu when item is (not) visible.
8592         * MainMenu.cs: MainMenu has special MenuChanged.
8593         * Theme.cs: Caption and FrameBorderSize are not fixed.
8594         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
8595         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
8596         * XplatUIX11.cs,
8597         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
8598         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
8599
8600 2005-05-30  Jackson Harper  <jackson@ximian.com>
8601
8602         * DataFormat.cs: We can't statically initialize this stuff because
8603         it calls into the xplatui and could create a loop. So we lazy init
8604         it.
8605
8606 2005-05-28  Jackson Harper  <jackson@ximian.com>
8607
8608         * Control.cs: Proper implementation of Product(Name/Version).
8609
8610 2005-05-27  Jackson Harper  <jackson@ximian.com>
8611
8612         * DataObject.cs: Dont crash if no data is found.
8613
8614 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
8615         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
8616                 as per status page, guessing it should be set to true
8617
8618 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
8619
8620         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
8621         * DataGridTableStyle.cs: set proper formatting text, def header text
8622         * ThemeWin32Classic.cs: new themable paramaters
8623         * DataGridBoolColumn.cs: paint check box, get data, fixes
8624         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
8625         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
8626         * DataGridColumnStyle.cs: fixes
8627         * Theme.cs: new themable paramaters
8628                 
8629 2005-05-26  Peter Bartok  <pbartok@novell.com>
8630
8631         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
8632
8633 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
8634         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
8635
8636 2005-05-24  Peter Bartok  <pbartok@novell.com>
8637
8638         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
8639           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
8640           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
8641           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
8642           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
8643           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
8644           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
8645           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
8646           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
8647           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
8648           missing attributes, etc
8649         * DataGridPreferredColumnWidthTypeConverter.cs: Added
8650
8651 2005-05-24  Peter Bartok  <pbartok@novell.com>
8652
8653         * Help.cs: Added, implemented trivial functions, throws up MessageBox
8654           when user tries to get help
8655         * DataObject.cs, DataFormats.cs, LinkArea.cs,
8656           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
8657           to suppress warnings
8658         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
8659           avoid unreachable code warning
8660
8661 2005-05-20  Peter Bartok  <pbartok@novell.com>
8662
8663         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
8664
8665 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
8666
8667         * DataGridTextBoxColumn.cs: Basic painting methods
8668         * DataGridTableStyle.cs: Set table style in the column
8669         * ThemeWin32Classic.cs: Use Theme for colors
8670         * DataGridDrawingLogic.cs: Implement more drawing
8671         * DataGrid.cs: drawing, theming, enhacements, fixes
8672         * DataGridColumnStyle.cs: fixes, drawing
8673         * Theme.cs: theming for Datagrid
8674
8675 2005-05-20  Peter Bartok  <pbartok@novell.com>
8676
8677         * Cursor.cs: Implemented GetObjectData() method
8678
8679 2005-05-20  Peter Bartok  <pbartok@novell.com>
8680
8681         * Cursors.cs: Added setting of cursor name
8682         * Cursor.cs:
8683           - Implemented constructors
8684           - Implemented Draw and DrawStretched
8685           - Implemented Current property
8686           - Implemented == and != operators
8687           - Implemented Dispose()
8688           - Implemented ToString
8689           - Added missing attributes
8690         * XplatUIX11.cs:
8691           - Added missing reset for OverrideCursor when DoEvents is called
8692           - Fixed creation of cursor, logic was wrong
8693         * XplatUIWin32.cs:
8694           - Added missing reset for OverrideCursor when DoEvents is called
8695           - Fixed creation of cursor, bit arrays were swapped
8696         * Clipboard.cs: Removed obsolete MonoTODO attribute
8697
8698 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
8699
8700         * ComboBox.cs: fixes OnSelectedItemChanged
8701         * ControlBindingsCollection.cs: fixes item range check
8702
8703 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
8704
8705         * UpDownBase.cs:
8706                 - Calc preferred height properly
8707                 - Implement missing properties
8708                 
8709         * NumericUpDown.cs: Implement missing events
8710
8711 2005-05-19  Jackson Harper  <jackson@ximian.com>
8712
8713         * TabControl.cs: New method that resizes the tab pages before
8714         redrawing them. This as needed as the control is double buffered
8715         and sizing will not be recalculated unless ResizeTabPages is
8716         called.
8717         * TabPage.cs: Set base.Text instead of Text in the constructor so
8718         that UpdateOwner does not get called. Use the new Redraw method of
8719         TabControl instead of Refresh so the sizing is recalculated.
8720         * ThemeWin32Classic.cs: Draw the text for button tabs.
8721
8722 2005-05-19  Jackson Harper  <jackson@ximian.com>
8723
8724         * Control.cs: Paint control background images. Fix typo where
8725         PaintControlBackground was not getting called correctly.
8726
8727 2005-05-19  Peter Bartok  <pbartok@novell.com>
8728
8729         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
8730           I can investigate, apparently I broke FileDialog
8731
8732 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
8733
8734         * AxHost.cs: Some simple properties.
8735         * Control.cs: window must be accessible after ctor.
8736         * Form.cs: Added TransparencyKey property.
8737         * TextBoxBase.cs: Implemented Clear. Text property can be null.
8738         * XplatUIWin32.cs: SetBorderStyle implemented.
8739
8740 2005-05-18  Peter Bartok  <pbartok@novell.com>
8741
8742         * DataObject.cs: Entries are not global but particular to the
8743           DataObject, now it behaves that way
8744         * XplatUIWin32.cs: Implemented Clipboard methods
8745         * Clipboard.cs: Implemented
8746         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
8747         * XplatUIOSX.cs: Updated to final clipboard prototypes
8748         * XplatUIX11.cs: Implemented Clipboard methods
8749         * XplatUIDriver.cs: Updated to final clipboard prototypes
8750         * XplatUIStructs.cs:
8751           - Added BITMAPINFOHEADER struct
8752           - Added ClipboardFormats enum
8753         * X11Structs.cs:
8754           - Added ClipboardStruct
8755           - Added Atom enum items for clipboard types
8756           - Fixed atom types for Selection event structures
8757         * DataFormats.cs:
8758           - Added internal properties and methods for drivers to enumerate
8759             all known formats
8760           - Switched initialization method to allow drivers to assign their
8761             own IDs even for the MS predefined clipboard IDs
8762         * XplatUI.cs: Updated to final clipboard interface
8763
8764 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
8765         * PropertyGridView.cs: Fixed compiler warnings.
8766
8767 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
8768         * PropertyGrid.cs: Added some event calls
8769         * PropertyGridView.cs: Change drawing code to use double buffering
8770         * PropertyGridTextBox.cs: Changed Text property name
8771         * GridItem.cs: Added Bounds property.
8772         * GridEntry.cs: Added Bounds property.
8773
8774 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
8775
8776         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
8777         since GetType() may not return the correct type if the object is
8778         a remoting proxy.
8779
8780 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
8781
8782         * TreeNodeCollection.cs: fixes get/set item ranges
8783         
8784 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
8785
8786         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
8787                 
8788 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
8789
8790         * ComboBox.cs: Fix item range comparation
8791         * ListView.cs: Fix item range comparation
8792
8793 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
8794
8795         * FontDialog.cs:
8796           - Clear example panel when OnPaint is called
8797           - Better solution for displaying the example panel text
8798           - Select default indexes in the ListBoxes
8799
8800 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
8801
8802         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
8803
8804 2005-05-11  Peter Bartok  <pbartok@novell.com>
8805
8806         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
8807         * SelectionRangeConverter.cs: Implemented
8808         * PropertyGrid.cs: Fixed attribute value
8809         * Control.cs:
8810           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
8811           - Added Sebastien Pouliot's CAS Stack Propagation fixes
8812         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
8813           that's common to all drivers. First methods to go there are
8814           Sebastien Pouliot's CAS Stack Propagation helper methods
8815         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
8816           Sebastien Pouliot for CAS Stack Propagation
8817
8818 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
8819
8820         * OSXStructs.cs:
8821           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
8822
8823 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
8824
8825         * DataGridTextBoxColumn.cs: fixed some members
8826         * GridColumnStylesCollection.cs: indexed column is case insensitive
8827         * DataGridTableStyle.cs: fixes
8828         * ThemeWin32Classic.cs: add new theme parameter
8829         * Theme.cs: add new theme parameter
8830         * DataGridDrawingLogic.cs: Datagrid's drawing logic
8831         * DataGrid.cs: fixes, new internal properties, etc.
8832         * DataGridColumnStyle.cs: allows to set grid value
8833         *
8834
8835 2005-05-10  Peter Bartok  <pbartok@novell.com>
8836
8837         * AccessibleObject.cs:
8838           - Removed MonoTODO attribute on help, method is correct
8839           - Fixed Bounds property
8840         * AxHost.cs: Moved MonoTODO
8841         * ButtonBase.cs: Now setting AccessibleObject properties
8842         * RadioButton.cs: Setting proper AccessibleObject role
8843         * CheckBox.cs: Setting proper AccessibleObject role
8844         * ControlBindingsCollection.cs: Added properties, methods and attributes
8845         * DataFormats.cs: Fixed awkward internal API, and changed to enable
8846           userdefined DataFormats.Format items as well
8847         * ListControl.cs: Removed data_member from the public eye
8848         * OpenFileDialog.cs:
8849           - Made class sealed
8850           - Added missing attributes
8851         * SaveFileDialog.cs: Added missing attributes
8852         * ImageListStreamer.cs: Fixed code that caused warnings
8853         * LinkLabel.cs: Removed unreachable code
8854         * TreeView.cs: Fixed code that caused warnings
8855         * PropertyGridView.cs: Fixed code that caused warnings
8856         * GridColumnStylesCollection.cs: Added missing attributes
8857         * GridTableStylesCollection: Added missing attribute
8858         * PropertyManager: Added .ctor
8859         * SecurityIDType: Added
8860         * DataObject.cs: Implemented class
8861         * LinkArea.cs: Added missing attribute
8862
8863 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
8864
8865         * RadioButton.cs: call base method to allow to fire OnClick event
8866         * UpDownBase.cs: OnMouseUp call base method
8867         * CheckedListBox.cs: call base method before returning
8868         * TrackBar.cs: call base method before returning
8869         
8870
8871 2005-05-10  Peter Bartok  <pbartok@novell.com>
8872
8873         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
8874           for messages
8875
8876 2005-05-10  Peter Bartok  <pbartok@novell.com>
8877
8878         * DataFormats.cs: Implemented
8879         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
8880           XplatUIX11.cs: Added Clipboard APIs
8881         * XplatUIWin32.cs: Implemented Clipboard APIs
8882         * FolderBrowserDialog.cs: Added missing event, attributes
8883
8884 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
8885
8886         * CheckBox.cs: call base method to allow to fire OnClick event
8887
8888 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
8889
8890         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
8891
8892 2005-05-06  Peter Bartok  <pbartok@novell.com>
8893
8894         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
8895         * Screen.cs: Implemented
8896         * HelpNavigator.cs: Added
8897         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
8898           property
8899         * HelpProvider.cs: Implemented all we can do until we have a CHM
8900           help library (which means that "What's This" does work now)
8901
8902 2005-05-06  Jackson Harper  <jackson@ximian.com>
8903
8904         * XplatUIX11.cs: Fix waking up the main loop.
8905                 
8906 2005-05-05  Peter Bartok  <pbartok@novell.com>
8907
8908         * XplatUI.cs: Updated revision
8909         * Form.cs: Removed enless loop
8910         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
8911         * Label.cs (OnPaint): Added call to base.OnPaint()
8912         * ToolTip.cs: Made ToolTipWindow reusable for other controls
8913         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
8914         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
8915         * AxHost.cs: Added
8916         * ButtonBase.cs: Moved base.OnPaint() call to end of method
8917         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
8918           to ToolTip.ToolTipWindow for drawing and size methods; this allows
8919           reuse of ToolTipWindow by other controls
8920         * SizeGrip.cs: Moved base.OnPaint() call to end of method
8921         * XplatUIX11.cs: Now clipping drawing area (experimental)
8922         * PictureBox.cs: Moved base.OnPaint() call to end of method
8923         * Theme.cs: Fixed ToolTip abstracts to match new format
8924         * ErrorProvider.cs: Implemented
8925
8926 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
8927
8928         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
8929         * LinkLabel.cs:
8930                 - Adds cursors
8931                 - Handles focus
8932                 - Implements LinkBehavior
8933                 - Fixes many issues
8934
8935 2005-05-03  Jackson Harper  <jackson@ximian.com>
8936
8937         * ListView.cs: Calculate the scrollbar positioning on resize and
8938         paint, so they get put in the correct place.
8939
8940 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
8941
8942         * ColorDialogs.cs: The small color panels are now handled by
8943           SmallColorControl. This fixes drawing of the focus rectangle
8944           and adds a 3D border.
8945
8946 2005-05-03  Peter Bartok  <pbartok@novell.com>
8947
8948         * Control.cs: Modified version of Jonathan Chamber's fix for
8949           double-buffering
8950
8951 2005-05-03  Jackson Harper  <jackson@ximian.com>
8952
8953         * ListView.cs: Remove redraw variable. Control now handles whether
8954         or not a redraw needs to be done, and will only raise the paint
8955         event if redrawing is needed.
8956
8957 2005-05-03  Jackson Harper  <jackson@ximian.com>
8958
8959         * Splitter.cs: No decorations for the splitter form. Cache the
8960         hatch brush.
8961
8962 2005-05-03  Jackson Harper  <jackson@ximian.com>
8963
8964         * TreeView.cs: Use dashed lines to connect nodes. Use the
8965         ControlPaint method for drawing the focus rect instead of doing
8966         that in treeview.
8967
8968 2005-05-02  Peter Bartok  <pbartok@novell.com>
8969
8970         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
8971
8972 2005-04-29  Jackson Harper  <jackson@ximian.com>
8973
8974         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
8975         entire image buffer. Just clear the clipping rectangle.
8976
8977 2005-04-29  Jackson Harper  <jackson@ximian.com>
8978
8979         * ThemeWin32Classic.cs: Don't draw list view items that are
8980         outside the clipping rectangle.
8981
8982 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
8983
8984         * ListBox.cs: added horizontal item scroll
8985
8986 2005-04-29  Jackson Harper  <jackson@ximian.com>
8987
8988         * ThemeWin32Classic.cs: Remove some old debug code that was
8989         causing flicker with the new double buffering code.
8990
8991 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
8992
8993         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
8994         behave like combobox and comboboxlist (still not sure if this is
8995         correct though).
8996
8997 2005-04-28  Jackson Harper  <jackson@ximian.com>
8998
8999         * ThemeWin32Classic.cs: Don't fill the middle of progress
9000         bars. This fills areas outside of the clip bounds that don't need
9001         to be filled.
9002
9003 2005-04-28  Jackson Harper  <jackson@ximian.com>
9004
9005         * Control.cs: Don't expose functionality to touch the image buffers.
9006         * ProgressBar.cs:
9007         * ListView.cs: We do not need to (and no longer can) manipulate
9008         the image buffers directly. All of this is handled by Control.
9009
9010 2005-04-28  Peter Bartok  <pbartok@novell.com>
9011
9012         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
9013           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
9014           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
9015
9016 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
9017
9018         * Combobox:
9019                 - Adjust control's height for non-simple comboboxes (bug fix)
9020                 - Remove dead code
9021         * MenuAPI.cs: remove unused var
9022         * ScrollBar.cs: remove unsed var
9023                  
9024         * ListBox.cs: unselect items when clearing
9025
9026 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
9027
9028         * ListControl.cs: honors OnPositionChanged and default Selected Item
9029         * ListBox.cs: unselect items when clearing
9030
9031 2005-04-27  Jackson Harper  <jackson@ximian.com>
9032
9033         * X11Keyboard.cs: Initialize a default keyboard and give a warning
9034         if a "correct" keyboard is not found. This will make us not crash,
9035         but might give some users bad keyboard layouts...seems to be the
9036         same thing rewind does.
9037
9038 2005-04-27  Jackson Harper  <jackson@ximian.com>
9039
9040         * BindingManagerBase.cs: Attach the current/position changed
9041         handlers to their respective events.
9042
9043 2005-04-27  Jackson Harper  <jackson@ximian.com>
9044
9045         * Control.cs: Make sure that the first WM_PAINT does a full draw,
9046         not just a blit.
9047         * ThemeWin32Classic.cs: Don't fill the background for picture
9048         boxes. This could overright user drawing.
9049         * ComboBox.cs: Just fill the clipping rect not the entire client
9050         rect when drawing the background. This prevents pieces of the
9051         image buffer from getting overwritten and is theoretically faster.
9052
9053 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
9054
9055         * ComboBox.cs: Databinding support fixes, fire missing events
9056         * ListControl.cs: implement missing methods and properties, fixes
9057         * ThemeWin32Classic.cs: Databiding support on Drawing
9058         * CheckedListBox.cs: Databinding support fixes, fire missing events
9059         * ListBox.cs: Databinding support fixes, fire missing events
9060         
9061 2005-04-25  Peter Bartok  <pbartok@novell.com>
9062
9063         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
9064
9065 2005-04-25  Jackson Harper  <jackson@ximian.com>
9066
9067         * TreeView.cs: Use the horizontal scrollbars height not width when
9068         determining how much of the client area is available.
9069
9070 2005-04-25  Jackson Harper  <jackson@ximian.com>
9071
9072         * Control.cs: Double buffering is handled differently now. As per
9073         the spec, the extra buffer is created in the WM_PAINT message and
9074         passed down to the control's drawing code.
9075         * GroupBox.cs:
9076         * Label.cs:
9077         * CheckBox.cs:
9078         * ProgressBar.cs:
9079         * RadioButton.cs:
9080         * ColorDialog.cs:
9081         * ComboBox.cs:
9082         * PropertyGridView.cs:
9083         * UpDownBase.cs:
9084         * MessageBox.cs:
9085         * MenuAPI.cs:
9086         * ListView.cs:
9087         * ButtonBase.cs:
9088         * SizeGrip.cs:
9089         * ScrollBar.cs:
9090         * ListBox.cs:
9091         * TrackBar.cs:
9092         * ToolBar.cs:
9093         * PictureBox.cs:
9094         * DateTimePicker.cs:
9095         * StatusBar.cs:
9096         * TreeView.cs: Update to new double buffering system.
9097         * MonthCalendar.cs: Uncomment block, as Capture is now
9098         working. Update to new double buffering
9099         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
9100         * PaintEventArgs.cs: New internal method allows us to set the
9101         graphics object. This is used for double buffering.
9102         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
9103         rectangle. The internal paint_area var has been removed from
9104         StatusBar. The clipping rect should be used instead.
9105         * Theme.cs: Give the PictureBox drawing method a clipping rect.
9106         * TabPage.cs: The RefreshTabs method was removed, so just call the
9107         tab controls Refresh method now.
9108         * TabControl.cs: Update to new double buffering. Make sure the
9109         handle is created before sizing the tab pages, otherwise we will
9110         get stuck in a loop.
9111
9112 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
9113
9114         * LinkLabel.cs: Fix typo, bug #74719; patch
9115           from Borja Sanchez Zamorano
9116
9117 2005-04-22  Jackson Harper  <jackson@ximian.com>
9118
9119         * TreeNode.cs: Implement Handle stuff.
9120         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
9121
9122 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
9123
9124         * DataGridTextBoxColumn.cs: call base constructors, fixes
9125         * GridColumnStylesCollection.cs: missing events, methods, and functionality
9126         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
9127         * DataGridTableStyle.cs: implements create default column styles
9128         * DataGridBoolColumn.cs: which types can handle
9129         * DataGrid.cs: missing methods, fixes, new functionality
9130         * DataGridColumnStyle.cs: fixes
9131
9132 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
9133         * FolderBrowserDialog.cs:
9134         - Use a thread to fill the TreeView
9135         - Adjusted some sizes
9136
9137 2005-04-19  Peter Bartok  <pbartok@novell.com>
9138
9139         * LinkLabel.cs: (Re-)create the pieces when setting the Text
9140           property. Fixes #74360.
9141
9142 2005-04-19  Jackson Harper  <jackson@ximian.com>
9143
9144         * XEventQueue.cs: Lock when getting the lockqueue size.
9145         * PictureBox.cs: Call base OnPaint
9146         
9147 2005-04-19  Peter Bartok  <pbartok@novell.com>
9148
9149         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
9150           messages were no longer being processed (this broke BeginInvoke)
9151
9152           
9153 2005-04-18  Jackson Harper  <jackson@ximian.com>
9154
9155         * TreeView.cs: buglet that caused node images to get drawn
9156         regardless of whether or not they were in the clipping rectangle.
9157
9158 2005-04-18  Jackson Harper  <jackson@ximian.com>
9159
9160         * CurrencyManager.cs: There are four rules for GetItemProperties:
9161         - If the type is an array use the element type of the array
9162         - If the type is a typed list, use the type
9163         - If the list contains an Item property that is not an object, use
9164         that property
9165         - use the first element of the list if there are any elements in
9166         the list.
9167         
9168 2005-04-17  Jackson Harper  <jackson@ximian.oom>
9169
9170         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
9171         click. This handles offsets for scrolling properly and reduces
9172         memory. Also fixed GetNode to not offset now that TopNode works
9173         properly.
9174         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
9175         
9176 2005-04-17  Jackson Harper  <jackson@ximian.com>
9177
9178         * CursorConverter.cs: Initial implementation.
9179
9180 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
9181
9182         * ListControl.cs: work towards complex data binding support on ListControl
9183         * CurrencyManager.cs: work towards complex data binding support on ListControl
9184         * ListBox.cs: work towards complex data binding support on ListControl
9185
9186
9187 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
9188
9189         * GridTableStylesCollection.cs: fixes name and constructor
9190         * DataGridTableStyle.cs: fixes
9191         * DataGridBoolColumn.cs: fixes names and constructors
9192         * DataGrid.cs: define methods and properties. Some init implementations
9193         * DataGridCell.cs: define methods and properties. Some init implementations
9194         * GridTablesFactory.cs: Define methods and properties
9195
9196 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
9197
9198         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
9199         graphics port changes.  We still want the coordinates in global screen
9200         coordinates.
9201
9202 2005-04-14  Jackson Harper  <jackson@ximian.com>
9203
9204         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
9205         check plus minus or checkbox clicks unless those features are enabled.
9206
9207 2005-04-14  Jackson Harper  <jackson@ximian.com>
9208
9209         * TreeView.cs: Add methods for setting the top and bottom visible
9210         nodes. TreeNode::EnsureVisible uses these methods.
9211         * TreeNode.cs: Implement EnsureVisible
9212
9213 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
9214
9215         * Form.cs: Pospone menu assignation if the window has not been created yet
9216         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
9217         size and position
9218
9219 2005-04-12  Jackson Harper  <jackson@ximian.com>
9220
9221         * TreeView.cs: Set the TopNode properly when scrolling
9222         occurs. This has the added benifit of reducing the amount of
9223         walking that needs to be done when drawing. Also removed an old
9224         misleading TODO.
9225         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
9226         
9227 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
9228
9229         * Timer.cs: fixes interval setting when the timer is already enabled
9230         
9231 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
9232
9233         * FolderBrowserDialog.cs: First approach
9234
9235 2005-04-09  Peter Bartok  <pbartok@novell.com>
9236
9237         * FolderBrowserDialog: Added
9238
9239 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
9240
9241         * LinkLabel.cs: move drawing code into the theme
9242         * ThemeWin32Classic.cs: drawing code and painting background bugfix
9243         * Theme.cs: define DrawLinkLabel method
9244
9245 2005-04-05  Jackson Harper  <jackson@ximian.com>
9246
9247         * BindingContext.cs: Use weak references so these bad actors don't
9248         stay alive longer then they need to.
9249
9250 2005-04-05  Jackson Harper  <jackson@ximian.com>
9251
9252         * ListControl.cs: Basic implementation of complex databinding.
9253         * ComboBox.cs:
9254         * ListBox.cs: Add calls to ListControl databinding methods.
9255
9256 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
9257
9258         * FileDialog.cs:
9259           - Don't change PopupButtonState to Normal when the
9260             PopupButton gets pressed several times.
9261           - Renamed ButtonPanel to PopupButtonPanel
9262
9263 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
9264
9265         * ColorDialog.cs: Use cached objects instead of creating them
9266         * LinkLabel.cs: Use cached objects instead of creating them
9267         * Splitter.cs: Use cached objects instead of creating them
9268         * FontDialog.cs: Use cached objects instead of creating them
9269         * PropertyGridView.cs: Use cached objects instead of creating them
9270         * MessageBox.cs: Use cached objects instead of creating them
9271         * FileDialog.cs: Use cached objects instead of creating them
9272         * ThemeWin32Classic.cs: Use cached objects instead of creating them
9273         * TreeView.cs: Use cached objects instead of creating them
9274         
9275 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
9276
9277         * Control.cs: use Equals to compare the font since no == op
9278         * ScrollBar.cs: use Equals to compare the font since no == op
9279
9280 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
9281
9282         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
9283
9284 2005-04-01  Jackson Harper  <jackson@ximian.com>
9285
9286         * Binding.cs: Implement IsBinding.
9287         * BindingManagerBase.cs:
9288         * PropertyManager.cs:
9289         * CurrencyManager.cs: Add IsSuspended property.
9290
9291 2005-04-01  Jackson Harper  <jackson@ximian.com>
9292
9293         * Binding.cs: Had some IsAssignableFrom calls backwards.
9294
9295 2005-04-01  Jackson Harper  <jackson@ximian.com>
9296
9297         * Binding.cs: Handle null data members when pulling data.
9298         * PropertyManager.cs: Handle the data member being a property that
9299         does not exist.
9300
9301 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
9302
9303         * DataGridTextBoxColumn.cs: fixes signature
9304         * DataGrid.cs: calls right constructor
9305
9306 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
9307
9308         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
9309         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
9310         * GridTableStylesCollection.cs: implements GridTableStylesCollection
9311         * DataGridTableStyle.cs: implements DataGridTableStyle
9312         * DataGridBoolColumn.cs: implements DataGridBoolColumn
9313         * DataGridTextBox.cs: implements DataGridTextBox
9314         * DataGridColumnStyle.cs: implements DataGridColumnStyle
9315
9316 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
9317
9318         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
9319
9320 2005-03-29  Peter Bartok  <pbartok@novell.com>
9321
9322         * Application.cs:
9323           - Properly implemented CompanyName property
9324           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
9325             returns a path that includes CompanyName, ProductName and
9326             Version (fixes bug #70330)
9327
9328 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
9329
9330         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
9331           fixes bug #72588.
9332
9333 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
9334
9335         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
9336         
9337           - Added ReadOnly CheckBox
9338           - Further refactoring: moved some code from Open-/SaveFileDialog
9339             to FileDialog
9340
9341 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
9342
9343         * OpenFileDialog.cs: Fixed CheckFileExists
9344         * FileDialog.cs:
9345           Moved FileView and DirComboBox outside FileDialog class.
9346           They can now be used outside FileDialog
9347
9348 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
9349
9350         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
9351         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
9352
9353 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
9354
9355         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
9356           - Added missing CreatePrompt property in SaveDialog
9357           - Overall SaveDialog handling should be better now
9358           - Added non standard ShowHiddenFiles property
9359           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
9360           - Added InitialDirectory and RestoreDirectory support
9361
9362 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
9363
9364         * FileDialog.cs: Made dirComboBox usable
9365
9366 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
9367
9368         * FileDialog.cs: Added Filter support (case sensitiv)
9369
9370 2005-03-24  Jackson Harper  <jackson@ximian.com>
9371
9372         * TabControl.cs: Need a couple more pixels for the lines.
9373
9374 2005-03-23  Jackson Harper  <jackson@ximian.com>
9375
9376         * TabControl.cs: Give the tab page focus when it is selected.
9377
9378 2005-03-23  Jackson Harper  <jackson@ximian.com>
9379
9380         * TabControl.cs: Account for the drawing of tabs borders when
9381         invalidating. If the slider was clicked dont do click detection on
9382         the tabs.
9383
9384 2005-03-23  Jackson Harper  <jackson@ximian.com>
9385
9386         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
9387
9388 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
9389
9390         * CategoryGridEntry.cs: Added
9391         * GridItem.cs: Added helper properties
9392         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
9393         * GridEntry.cs: Updated code for collection
9394         * PropertyGrid.cs: Cleaned up some formatting
9395         * PropertyGridView.cs: Added drop down functionality for enums.
9396         * GridItemCollection.cs: Added enumerator logic
9397         * PropertyGridEntry.cs: Added
9398
9399 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
9400
9401         * FileDialog.cs:
9402           - Removed unnecessary commented code
9403           - Fixed handling for entering the filename manually in the combobox
9404
9405 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
9406
9407         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
9408
9409 2005-03-18  Peter Bartok  <pbartok@novell.com>
9410
9411         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
9412           them being touching the border
9413
9414 2005-03-18  Peter Bartok  <pbartok@novell.com>
9415
9416         * TextControl.cs: Quick hack to center text better
9417
9418 2005-03-18  Peter Bartok  <pbartok@novell.com>
9419
9420         * ControlPaint.cs:
9421           - Don't throw NotImplemented exceptions, just print a notice once
9422             instead (requested by Miguel). This makes running existing SWF
9423             apps a bit easier
9424         * Control.cs:
9425           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
9426           - Added context menu trigger on right click
9427         * Panel.cs: Trigger invalidate on resize
9428         * StatusBar.cs:
9429           - Removed old double-buffer drawing
9430           - Added ResizeRedraw style to force proper update of statusbar
9431         * ListView.cs:
9432           - Removed debug output
9433         * ThemeWin32Classic.cs:
9434           - Fixed drawing of status bar, now draws Text property if there
9435             are no defined panels
9436
9437 2005-03-18  Jackson Harper  <jackson@ximian.com>
9438
9439         * ImageList.cs: When the image stream is set pull all the images
9440         from it.
9441         * ImageListStreamer.cs: Implement reading image list streams.
9442
9443 2005-03-18  Peter Bartok  <pbartok@novell.com>
9444
9445         * ThemeWin32Classic.cs (DrawPictureBox):
9446           - Fixed calculations for centered drawing
9447           - Fixed drawing for normal mode, not scaling the image on normal
9448
9449 2005-03-18  Peter Bartok  <pbartok@novell.com>
9450
9451         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
9452           textbox
9453         * FileDialog.cs:
9454           - Made Open/Save button the accept button for FileDialog
9455           - Tied the cancel button to the IButtonControl cancel button
9456           - Save/Open now properly builds the pathname
9457           - Now handles user-entered text
9458           - Preventing crash on right-click if no item is selected
9459           - Fixed Text property, now uses contents of textbox
9460           - Fixed SelectedText property, now just returns the text part that
9461             is selected in the text box
9462
9463 2005-03-18  Jackson Harper  <jackson@ximian.com>
9464
9465         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
9466         rect, make sure to de-adjust the interior rect after drawing the
9467         tab text.
9468
9469 2005-03-18  Peter Bartok  <pbartok@novell.com>
9470
9471         * MenuAPI.cs: Remove menu *before* executing selected action to
9472           prevent the menu from 'hanging around'
9473           
9474 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
9475
9476         * XplatUIOSX.cs: Implemented WorkingArea property
9477
9478 2005-03-17  Peter Bartok  <pbartok@novell.com>
9479
9480         * XplatUIX11.cs: Fixed menu coord calculations
9481         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
9482           for calculating offsets
9483
9484 2005-03-17  Peter Bartok  <pbartok@novell.com>
9485
9486         * Hwnd.cs: Do not consider menu presence for default client
9487           rectangle location/size
9488         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
9489           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
9490           translation functions
9491         * FileDialog.cs: Fixed (what I presume is a) typo
9492
9493 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
9494
9495         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
9496           X access (avoids X-Async errors)
9497
9498 2005-03-16  Jackson Harper  <jackson@ximian.com>
9499
9500         * TabControl.cs: Raise the SelectedIndexChanged event.
9501
9502 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
9503
9504         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
9505           - Removed vertical ToolBar and replaced it with a custom panel
9506             (desktop and home button already work)
9507           - Added Help button (some controls get resized or relocated then)
9508           - Draw correct text depending on Open or Save.
9509           - Fixed some typos...
9510
9511 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
9512
9513         * ScrollBar.cs:
9514           - Only change Maximum and Minimum when need it (bug fix)
9515
9516 2005-03-15  Peter Bartok  <pbartok@novell.com>
9517
9518         * Form.cs: Use Handle for icon, to trigger creation if
9519           the window does not yet exist
9520         * Control.cs:
9521           - CanSelect: Slight performance improvement
9522           - Focus(): Preventing possible recursion
9523           - Invalidate(): Removed ControlStyle based clear flag setting
9524           - WM_PAINT: fixed logic for calling OnPaintBackground
9525           - WM_ERASEBKGND: Fixed logic, added call to new driver method
9526             EraseWindowBackground if the control doesn't paint background
9527         * XplatUIWin32.cs:
9528           - Moved EraseWindowBackground() method to internal methods
9529           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
9530             is sent via SendMessage on BeginPaint call on Win32
9531         * XplatUIX11.cs:
9532           - Added EraseWindowBackground() method
9533           - No longer sends WM_ERASEBKGND on .Expose, but on call to
9534             PaintEventStart, which more closely matches Win32 behaviour
9535           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
9536           - Fixed SetFocus() to properly deal with client and whole windows
9537         * Hwnd.cs: Added ErasePending property
9538         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
9539         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
9540
9541 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
9542
9543         * XplatUIOSX.cs:
9544           - Fix hard loop when timers exist.
9545           - Fix bugs with middle and right click for 3 button mice.
9546
9547 2005-03-11  Peter Bartok  <pbartok@novell.com>
9548
9549         * XplatUIX11.cs:
9550           - get_WorkingArea: Need to call X directly, GetWindowPos only
9551             returns cached data now
9552           - Added sanity check to GetWindowPos hwnd usage
9553
9554 2005-03-11  Jackson Harper  <jackson@ximian.com>
9555
9556         * BindingManagerBase.cs: This method isn't used anymore as
9557         PullData now updates the data in the control.
9558
9559 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
9560
9561         * Form.cs: fixes menu drawing on X11
9562         * MenuAPI.cs:  fixes menu drawing on X11
9563
9564 2005-03-11  Peter Bartok  <pbartok@novell.com>
9565
9566         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
9567           from Jonathan Gilbert; should fix bug #73606
9568         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
9569           in Screen coordinates. Thanks, Jordi.
9570         * Form.cs: Added missing attribute
9571
9572 2005-03-11  Peter Bartok  <pbartok@novell.com>
9573
9574         * Form.cs:
9575           - Rudimentary Mdi support
9576           - Removed outdated FormParent code
9577           - Implemented lots of missing properties and methods, still missing
9578             transparency support
9579           - Added missing attributes
9580           - Implemented support for MaximumBounds
9581           - Added firing of various events
9582         * XplatUI.cs: Added SetIcon() method
9583         * XplatUIDriver.cs: Added SetIcon() abstract
9584         * XplatUIOSX.cs: Stubbed out SetIcon() method
9585         * XplatUIX11.cs:
9586           - Implemented SetIcon() support
9587           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
9588           - Switched to unix line endings
9589         * XplatUIWin32.cs:
9590           - Made POINT internal so for can access it as part of MINMAX
9591           - Implemented SetIcon() support
9592           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
9593             native Mdi support again, might have to go managed)
9594         * Control.cs: Now fires the StyleChanged event
9595         * MdiClient.cs: Added; still mostly empty
9596
9597 2005-03-10  Peter Bartok  <pbartok@novell.com>
9598
9599         * SaveFileDialog.cs: Added emtpy file
9600
9601 2005-03-08  Peter Bartok  <pbartok@novell.com>
9602
9603         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
9604           in turn triggers OnCreateContro) when creating a handle for the
9605           first time.
9606         * TextControl.cs: Fixed endless loop in certain cases when
9607           replacing the current selection
9608
9609 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
9610
9611         * ScrollBar.cs:
9612           - Honors NewValue changes in Scroll events allowing apps to change it
9613           - Adds First and Last Scroll events
9614           - Fixes Thumb events
9615
9616 2005-03-07  Peter Bartok  <pbartok@novell.com>
9617
9618         * Hwnd.cs: Added DefaultClientRectangle property
9619         * XplatUI.cs: Now using the X11 driver Where() method, which provides
9620           more detailed debug information
9621         * XplatUIX11.cs:
9622           - Fixed size-change feedback loop, where we would pull an old size
9623             off the queue and mistakenly change our window's size to an
9624             earlier value
9625           - Now compressing ConfigureNotify events, to reduce looping and
9626             redraw issues
9627         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
9628           is called
9629
9630 2005-03-07  Jackson Harper  <jackson@ximian.com>
9631
9632         * Binding.cs: Push data pushes from data -> property. Check if the
9633         property is readonly when attempting to set it.
9634
9635 2005-03-07  Jackson Harper  <jackson@ximian.com>
9636
9637         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
9638         instead of IsSubclassOf. Pulling data now sets the value on the
9639         control.
9640         * PropertyManager.cs:
9641         * CurrencyManager.cs: Just need to pull data when updating now,
9642         because PullData will set the value on the control.
9643
9644 2005-03-04  Jackson Harper  <jackson@ximian.com>
9645
9646         * Binding.cs: Implement data type parsing and converting on pulled
9647         data. TODO: Are there more ways the data can be converted?
9648
9649 2005-03-04  Jackson Harper  <jackson@ximian.com>
9650
9651         * Binding.cs: Support <Property>IsNull checks. Also bind to the
9652         controls Validating method so we can repull the data when the
9653         control loses focus.
9654
9655 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
9656
9657         * ColumnHeader.cs:
9658           - Fixes null string format
9659           
9660         * ListView.cs:
9661           - Adds enum type checks
9662           - Fixes redrawing and recalc need after changing some properties
9663           - Fixes on focus_item set after the event
9664           - Fixes adding columns after the control has been created
9665           
9666         * ThemeWin32Classic.cs:
9667           - Fixes CheckBox focus rectangle
9668           - Fixes ColumnHeader drawing
9669
9670
9671 2005-03-03  Jackson Harper  <jackson@ximian.com>
9672
9673         * Binding.cs: Bind to <Property>Changed events so we can detect
9674         when properties are changed and update the data.
9675
9676 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
9677
9678         * ImageList.cs:
9679           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
9680           - Fixes ImageList constructor with ImageList container
9681           - Fixes image scaling (wrong parameters at DrawImage)
9682
9683 2005-02-02  Jackson Harper  <jackson@ximian.com>
9684
9685         * Binding.cs: Make property searches case-insensitive. Eliminate
9686         some duplicated code.
9687
9688 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
9689
9690         * ComboBox.cs:
9691                 - Handle focus event
9692                 - Fix scrollbar events
9693                 - Discard highlighted item if remove it
9694                 - Fixes SelectedItem with strings
9695
9696 2005-03-01  Peter Bartok  <pbartok@novell.com>
9697
9698         * Control.cs:
9699           - Fixed Visible property, now follows (once again) parent chain
9700             to return false if any control in the chain is visible=false
9701           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
9702           - Fixed several places where is_visible instead of Visible was used
9703           - Implemented FIXME related to focus selection when setting focused
9704             control to be invisible
9705
9706         * XplatUIWin32.cs: Now using proper method to find out if window is
9707           visible. Thanks to Jordi for pointing it out
9708
9709 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
9710
9711         * ComboBox.cs: show/hide scrollbar instead of creating it
9712
9713 2005-02-27  Jackson Harper  <jackson@ximian.com>
9714
9715         * CurrencyManager.cs: Add PositionChanged stuff.
9716
9717 2005-02-27  Peter Bartok  <pbartok@novell.com>
9718
9719         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
9720         * XplatUIOSX.cs: Added GetMenuOrigin() stub
9721         * XplatUIWin32.cs: Implemented GetMenuOrigin()
9722         * XplatUIX11.cs:
9723           - Implemented GetMenuDC()
9724           - Implemented GetMenuOrigin()
9725           - Implemented ReleaseMenuDC()
9726           - Implemented generation of WM_NCPAINT message
9727           - Implemented generation and handling of WM_NCCALCSIZE message
9728         * Form.cs: Added debug helper message for Jordi's menu work
9729         * Hwnd.cs:
9730           - Modified ClientRect property; added setter, fixed getter to handle
9731             setting of ClientRect
9732           - Added MenuOrigin property
9733
9734 2005-02-26  Peter Bartok  <pbartok@novell.com>
9735
9736         * XplatUIX11.cs:
9737           - Destroys the caret if a window that's being destroyed contains it
9738           - Ignores expose events coming from the X11 queue for windows that
9739             already are destroyed
9740           - Now uses the proper variable for handling DestroyNotify, before we
9741             marked the wrong window as destroyed
9742           - Improved/added some debug output
9743
9744 2005-02-26  Peter Bartok  <pbartok@novell.com>
9745
9746         * X11Keyboard.cs: Fixes to work on 64bit systems
9747
9748 2005-02-26  Peter Bartok  <pbartok@novell.com>
9749
9750         * Control.cs:
9751           - Now calling OnHandleDestroyed from DestroyHandle()
9752             instead of Dispose()
9753           - Removed bogus call to controls.Remove() from DestroyHandle()
9754
9755 2005-02-26  Peter Bartok  <pbartok@novell.com>
9756
9757         * Control.cs: Properly destroy child windows when our handle is
9758           destroyed
9759
9760 2005-02-25  Peter Bartok  <pbartok@novell.com>
9761
9762         * XplatUI.cs:
9763           - Added 'DriverDebug' define to allow tracing XplatUI API calls
9764           - Alphabetized Static Methods and Subclasses
9765
9766         * XplatUIX11.cs:
9767           - Added XException class to allow custom handling of X11 exceptions
9768           - Created custom X11 error handler, tied into XException class
9769           - Added support for MONO_XEXCEPTIONS env var to allow the user
9770             to either throw an exception on X errors or continue running
9771             after displaying the error
9772           - Added handling of DestroyNotify message
9773           - Added handler for CreateNotify message (still disabled)
9774           - Improved (tried to at least) Where method to provide file and lineno
9775         * X11Structs.cs:
9776           - Added XErrorHandler delegate
9777           - Added XRequest enumeration (to suppor translation of errors)
9778
9779 2005-02-25  Jackson Harper  <jackson@ximian.com>
9780
9781         * PropertyManager.cs: Implement editing features
9782         * CurrencyManager.cs:
9783         * Binding.cs: First attempt at UpdateIsBinding
9784         * BindingManagerBase.cs: Call UpdateIsBinding before
9785         pushing/pulling data.
9786
9787 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
9788
9789         * MenuAPI.cs: Respect disabled items
9790         * ThemeWin32Classic.cs
9791                 - Caches ImageAttributes creation for DrawImageDisabled
9792                 - Fixes vertical menu line drawing
9793                 - Draws disabled arrows in disable menu items
9794
9795 2005-02-24  Peter Bartok  <pbartok@novell.com>
9796
9797         * Hwnd.cs:
9798           - Added UserData property to allow associating arbitrary objects
9799             with the handle
9800           - Fixed leak; now removing Hwnd references from static windows array
9801         * XplatUIWin32.cs:
9802           - Fixed Graphics leak in PaintEventEnd
9803           - Removed usage of HandleData, switched over to Hwnd class
9804         * HandleData.cs: Removed, obsoleted by Hwnd.cs
9805
9806 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
9807
9808         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
9809         * ScrollBar.cs: Fixes bug
9810         * TrackBar.cs: removes death code, clipping, mimize refreshes,
9811          keyboard navigation enhancements
9812
9813 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
9814
9815         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
9816         * GroupBox.cs: Add control styles
9817         * Label.cs: Add control styles
9818         * UpDownBase.cs: Add control styles
9819         * ListBox.cs: Add control styles
9820         * XplatUIWin32.cs: Fixes wrong parameter order
9821
9822
9823 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
9824
9825         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
9826
9827 2005-02-23  Jackson Harper  <jackson@ximian.com>
9828
9829         * PropertyManager.cs: Implement property binding. This doesn't
9830         seem to work yet though as (I think) there are some bugs in
9831         System.ComponentModel.PropertyDescriptor.
9832         * BindingContext.cs: Use new PropertyManager constructor.
9833
9834 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
9835
9836         * ProgressBar.cs: use clip region in ProgressBar
9837         * ThemeWin32Classic.cs: use clip region in ProgressBar
9838
9839 2004-02-22  Jackson Harper  <jackson@ximian.com>
9840
9841         * BindingsCollection.cs: Remove some debug code.
9842
9843 2005-02-22  Jackson Harper  <jackson@ximian.com>
9844
9845         * BindingContext.cs:
9846         * ControlBindingsCollection.cs:
9847         * CurrencyManager.cs:
9848         * Binding.cs:
9849         * BindingManagerBase.cs: Initial implementation
9850         * BindingsCollection.cs: Add an internal contains method that the
9851         BindingManagerBase uses to ensure bindings aren't added twice to
9852         the collection.
9853         * PropertyManager.cs: Stubbed out.
9854         * Control.cs:
9855         * ContainerControl.cs: Hook up databinding
9856         
9857 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
9858
9859         * XplatUIOSX.cs:
9860           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
9861           Fixed Invalidate/Update chain.
9862           Fixed tons of other minor bugs (this is almost a complete rewrite).
9863
9864 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
9865
9866         * ComboBox.cs: do subcontrol creation when the control is created
9867
9868 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
9869
9870         * Label.cs: fixes image drawing (image and imagelist)
9871         * ThemeWin32Classic.cs: cache brushes
9872         
9873 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
9874
9875         * Form.cs: Move menu drawing code to Theme class
9876         * ComboBox.cs: Move ComboBox drawing code to Theme class
9877         * MenuItem.cs: Move menu drawing code to Theme class
9878         * MenuAPI.cs: Move menu drawing code to Theme class
9879         * ThemeWin32Classic.cs: New methods
9880         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
9881         * ListBox.cs: Move Listbox drawing code to Theme class
9882         * Theme.cs: New methods
9883
9884 2005-02-20  Peter Bartok  <pbartok@novell.com>
9885
9886         * Control.cs:
9887           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
9888             only process mnemonics on those)
9889           - Fixed event sequence for key handling; first calling
9890             ProcessKeyEventArgs now
9891         * TextBoxBase.cs:
9892           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
9893             for processing non-character keys
9894           - Fixed WM_CHAR to generate proper event sequence before processing
9895         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
9896           generation
9897
9898 2005-02-19  Peter Bartok  <pbartok@novell.com>
9899
9900         * UserControl.cs: Added TextChanged event; added attributes
9901         * SizeGrip.cs: Implemented resizing and optional display of grip
9902         * Form.cs: Fixed attribute
9903         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
9904           Changed meaning of ScrollWindow bool argument; instead of the
9905           clear attribute (which will be true usually anyway), it gives the
9906           option of moving child controls as well.
9907         * XplatUIX11.cs:
9908           - Changed to match new ScrollWindow argument
9909           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
9910             now handles the implicit parent window a WM puts around us
9911         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
9912           to work)
9913         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
9914         * TreeView.cs: Adjusted to new ScrollWindow arguments
9915
9916 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
9917
9918         * Form.cs: Menu integration with non-client area
9919         * MenuItem.cs: Menu integration with non-client area
9920         * MenuAPI.cs: Menu integration with non-client area
9921
9922 2005-02-18  Peter Bartok  <pbartok@novell.com>
9923
9924         * MethodInvoker.cs: Added
9925         * MdiLayout.cs: Added
9926         * SendKeys.cs: Started implementation
9927         * ErrorIconAlignment.cs: Added
9928
9929 2005-02-18  Peter Bartok  <pbartok@novell.com>
9930
9931         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
9932         * Form.cs: Added handling for Menu-related Non-client messages
9933
9934 2005-02-17  Peter Bartok  <pbartok@novell.com>
9935
9936         * UpDownBase.cs: Fixed typo, compilation errors
9937         * DomainUpDown.cs: Fixed attribute value
9938
9939 2005-02-16  Miguel de Icaza  <miguel@novell.com>
9940
9941         * UpDownBase.cs: Attach entry events.
9942         Propagate events.
9943         Add ForeColor property, Focused, InterceptArrowKeys (interception
9944         does not work yet).
9945
9946 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
9947
9948         * Form.cs:
9949                 - Redraw non client are on Setmenu
9950                 - Calc proper menu starting point
9951
9952 2005-02-17  Peter Bartok  <pbartok@novell.com>
9953
9954         * Application.cs: Fixed message_filter check
9955
9956 2005-02-17  Peter Bartok  <pbartok@novell.com>
9957
9958         * Application.cs: Now calls registered message filters
9959         * DockStyle.cs: Fixed attribute
9960         * Form.cs: Fixed attribute
9961         * Menu.cs: Fixed attribute
9962         * ToolTip.cs: Fixed attribute
9963         * TreeNode.cs: Added missing attributes and arranged in regions
9964         * PropertyGrid.cs: Fixed signatures
9965         * TreeNodeCollection.cs: Added attributes
9966         * Splitter.cs: Added missing attributes; arranged into regions
9967         * TabPage.cs: Added missing attributes; arranged into regions
9968         * TextBoxBase.cs: Added missing attributes
9969         * TextBox.cs: Added missing attributes
9970         * ArrangeDirection.cs: Added missing attributes
9971         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
9972         * ToolBarButton.cs: Fixed attributes
9973         * AnchorStyles.cs: Fixed attribute
9974         * TrackBar.cs: Fixed attributes
9975         * TabControl.cs: Added missing attributes and arranged into regions
9976         * ToolBar.cs: Fixed attribute
9977         * StatusBar.cs: Fixed signature, organized into regions and added
9978           attributes
9979         * StatusBarPanel.cs: Fixed attributes
9980         * ContentsResizedEventArgs.cs: Implemented
9981         * ContentsResizedEventHandler.cs: Implemented
9982         * DateBoldEventArgs.cs: Implemented
9983         * DateBoldEventHandler.cs: Implemented
9984         * UpDownEventArgs.cs: Implemented
9985         * UpDownEventHandler.cs: Implemented
9986         
9987 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
9988
9989         * Form.cs: first Menu NC refactoring
9990         * MenuAPI.cs: first Menu NC refactoring
9991         
9992 2005-02-16  Peter Bartok  <pbartok@novell.com>
9993
9994         * ImeMode.cs: Added missing attributes
9995         * Menu.cs: Fixed attribute
9996         * GroupBox.cs: Fixed attribute
9997         * Label.cs: Fixed attribute
9998         * ColorDialog.cs (RunDialog): Removed TODO attribute
9999         * ComboBox.cs: Fixed attributes
10000         * ListControl.cs: Added missing attributes
10001         * PropertyGrid.cs: Fixed attributes
10002         * Control.cs: Fixed attributes
10003         * ListViewItem.cs: Added TypeConverter attribute
10004         * NotifyIcon.cs: Fixed attributes
10005         * ListView.cs: Fixed attributes
10006         * ButtonBase.cs: Fixed attribute
10007         * ImageList.cs: Added missing attributes
10008         * ContainerControl.cs: Fixed signature
10009         * CheckedListBox.cs: Fixed attribute; added missing attributes
10010         * Panel.cs: Fixed attributes
10011         * PropertyTabChangedEventArgs.cs: Added missing attribute
10012         * PropertyValueChangedEventArgs.cs: Added missing attribute
10013         * Binding.cs: Fixed attribute
10014         * ListViewItemConverter: Implemented ListViewSubItemConverter class
10015         * ListBox.cs: Fixed attribute; added missing attributes;
10016         * ScrollableControl.cs: Added missing attributes
10017         * PictureBox.cs: Added missing attributes; implemented missing property
10018         * DateTimePicker.cs: Added missing attributes
10019         * Theme.cs (ToolWindowCaptionHeight): Fixed type
10020         * MonthCalendar.cs: Fixed attributes
10021         * StatusBarPanel.cs: Added missing attributes
10022         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
10023
10024 2005-02-16  Peter Bartok  <pbartok@novell.com>
10025
10026         * TextBoxBase.cs: The previous method to enforce height yet remember
10027           the requested high was less than ideal, this is an attempt to do
10028           it better.
10029         * Control.cs: Added comment about possible problem
10030         * Copyright: Updated format
10031         * GridItemType.cs: Fixed swapped values
10032
10033 2005-02-15  Jackson Harper  <jackson@ximian.com>
10034
10035         * BaseCollection.cs: Use property so we never access an
10036         uninitialized list. Also initialize the list in the property.
10037
10038 2005-02-15  Peter Bartok  <pbartok@novell.com>
10039
10040         * GroupBox.cs (ProcessMnemonic): Implemented
10041         * Label.cs (ProcessMnemonic): Implemented
10042         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
10043           hotkeys
10044
10045 2005-02-15  Peter Bartok  <pbartok@novell.com>
10046
10047         * RadioButton.cs (ProcessMnemonic): Implemented
10048         * CheckBox.cs (ProcessMnemonic): Implemented
10049         * Control.cs:
10050           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
10051             handling
10052           - Added internal method to allow calling ProcessMnemonic from other
10053             controls
10054         * ContainerControl.cs:
10055           - Started support for handling validation chain handling
10056           - Implemented ProcessMnemonic support
10057           - Added Select() call to Active, to make sure the active control
10058             receives focus
10059         * Form.cs: Setting toplevel flag for Forms (this was lost in the
10060           FormParent rewrite)
10061         * ThemeWin32Classic.cs:
10062           - DrawCheckBox(): Fixed stringformat to show hotkeys
10063           - DrawRadioButton(): Fixed stringformat to show hotkeys
10064         * CommonDialog.cs: Removed WndProc override, not needed
10065
10066 2005-02-14  Peter Bartok  <pbartok@novell.com>
10067
10068         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
10069           missed those in the rewrite
10070
10071 2005-02-14  Miguel de Icaza  <miguel@novell.com>
10072
10073         * NumericUpDown.cs (Increment, ToString): Add.
10074         (DecimalPlaces): implement.
10075         
10076         Add attributes.
10077         
10078         * UpDownBase.cs: Add the designer attributes.
10079
10080 2005-02-13  Peter Bartok  <pbartok@novell.com>
10081
10082         * Panel.cs: Removed border_style, now in Control
10083         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
10084           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
10085
10086 2005-02-13  Peter Bartok  <pbartok@novell.com>
10087
10088         * MouseButtons.cs: Added missing attributes
10089         * XplatUIStructs.cs: Added enumeration for title styles
10090         * LeftRightAlignment.cs: Added missing attributes
10091         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
10092           it compatible with Graphics.FromHwnd()
10093         * SelectedGridItemChangedEventArgs.cs: Fixed property type
10094         * Keys.cs: Added missing attributes
10095         * SelectionRange.cs: Added missing attributes
10096         * SelectionRangeConverter.cs: Added
10097         * XplatUI.cs:
10098           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
10099             ReleaseMenuDC methods
10100           - Renamed ReleaseWindow to UngrabWindow
10101           - Added proper startup notice to allow version identification
10102         * Form.cs:
10103           - Added missing attributes
10104           - Removed FormParent concept
10105         * Label.cs: Removed border_style field, now in Control
10106         * RadioButton.cs: Now properly selects RadioButton when focus is
10107           received
10108         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
10109         * Control.cs:
10110           - Added missing attributes
10111           - Added borderstyle handling
10112           - Removed FormParent concept support
10113           - Fixed calls to XplatUI to match changed APIs
10114           - Fixed bug that would case us to use disposed Graphics objects
10115           - Removed unneeded internal methods
10116           - PerformLayout(): Fixed to handle DockStyle.Fill properly
10117           - SelectNextControl(): Fixed to properly check common parents
10118         * TextBoxBase.cs: Removed border_style field (now in Control)
10119         * MessageBox.cs:
10120           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
10121             fixed calculations for form size
10122           - Added support for localized strings and icons
10123           - Improved form size calculations, added border
10124         * ListView.cs: Removed border_style field (now in Control)
10125         * X11Structs.cs: Moved several structs from X11 driver here
10126         * X11Keyboard.cs: Changed debug message
10127         * Application.cs: Removed FormParent concept support
10128         * CommonDialog.cs:
10129           - Resetting end_modal flag
10130           - Removed FormParent concept support
10131         * NativeWindow.cs: Removed FormParent concept support
10132         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
10133           Client area and Non-Client whole window to allow support for WM_NC
10134           messages
10135         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
10136           prevent using it until it supports Hwnd as per Geoff Norton's request
10137         * ToolBar.cs: Fixed drawing, was not doing proper drawing
10138         * PictureBox.cs: Removed border_style field, now in Control
10139         * XplatUIWin32.cs: Added new driver methods
10140
10141 2005-02-12  Peter Bartok  <pbartok@novell.com>
10142
10143         * OpacityConverter.cs: Implemented
10144         * Hwnd.cs: Internal class to support drivers that need to emulate
10145           client area/non-client area window behaviour
10146
10147 2005-02-11  Peter Bartok  <pbartok@novell.com>
10148
10149         * KeysConverter.cs: Implemented
10150
10151 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
10152
10153         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
10154         * LinkLabel: Added missing attributes
10155         * MainMenu.cs: fixes ToString
10156         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
10157         * ListBox.cs: fixes event position
10158         * TrackBar.cs: adds missing attributes and events
10159         
10160 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
10161
10162         * MenuItem.cs: Use SystemInformation and bug fixes
10163         * MenuAPI.cs: Use SystemInformation and bug fixes
10164
10165 2005-02-09  Jackson Harper  <jackson@ximian.com>
10166
10167         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
10168         their keystate otherwise things like VK_MENU get stuck "on".
10169
10170 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
10171
10172         * ListBox.cs: Fixes AddRange bug
10173         
10174 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
10175
10176         * ProgressBar.cs
10177                 - Add missing attributes
10178                 - Add missing method
10179                 
10180         * CheckedListBox.cs: Added missing attributes
10181                 - Add missing attributes
10182                 - Remove extra method
10183         
10184         * ComboBox.cs: Added missing attributes
10185         * VScrollBar.cs: Added missing attributes
10186         * ScrollBar.cs:  Added missing attributes
10187         * ListBox.cs: Fixes signature, add missing consts
10188         * LinkArea.cs:   Added missing attributes
10189         
10190
10191 2005-02-08  Peter Bartok  <pbartok@novell.com>
10192
10193         * Menu.cs: Added missing attributes
10194         * MainMenu.cs: Added missing attributes
10195         * GroupBox.cs: Added missing attributes
10196         * Label.cs: Added missing attributes
10197         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
10198         * ColorDialog.cs:
10199           - Added Instance and Options properties
10200           - Added missing attributes
10201         * Cursor.cs: Made Serializable
10202         * NotifyIcon: Added missing attributes
10203         * MenuItem.cs: Added missing attributes
10204         * TextBoxBase.cs: Implemented AppendText() and Select() methods
10205         * Panel.cs: Added Missing attributes
10206         * MonthCalendar.cs: Fixed CreateParams
10207
10208 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
10209         
10210         * LinkLabel.cs:
10211                 - Fixes signature
10212                 - Fixes issues with links
10213                 - Adds the class attributes
10214
10215 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
10216         
10217         * ComboBox.cs:
10218                 - Fixes button when no items available in dropdown
10219                 - Fixes repainting problems
10220                 - Adds the class attributes
10221                 
10222 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
10223
10224         * XplatUIOSX.cs: Detect the menu bar and title bar height from
10225         the current theme.  Cache these on startup.
10226
10227 2005-02-07  Jackson Harper  <jackson@ximian.com>
10228
10229         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
10230         the scrollbar buttons when they are depressed.
10231
10232 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
10233
10234         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
10235         Get the display size from the main displayid.  We currently dont
10236         support multiple display configurations.
10237
10238 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
10239
10240         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
10241
10242 2005-02-07  Miguel de Icaza  <miguel@novell.com>
10243
10244         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
10245
10246 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
10247
10248         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
10249
10250 2005-02-04  Jackson Harper  <jackson@ximian.com>
10251
10252         * ThemeWin32Classic.cs: Respect the clipping rect when
10253         drawing. Only fill the intersection of clips and rects so there
10254         isn't a lot of large fills.
10255         * ScrollBar.cs: Pass the correct clipping rect to the theme
10256         engine. Remove some debug code.
10257
10258 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
10259         
10260         * DateTimePicker.cs:
10261                 - Fixed crash on DateTime.Parse, use Constructor instead
10262
10263 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
10264         
10265         * MenuItem.cs:
10266         * MenuAPI.cs:
10267                 - Owner draw support (MeasureItem and DrawItem)
10268
10269 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
10270         
10271         *  Menu.cs:
10272                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
10273                 - Fixes MenuItems.Add range
10274         * MenuItem.cs:
10275                 - MergeMenu and Clone and CloneMenu functions
10276
10277 2005-02-03  Jackson Harper  <jackson@ximian.com>
10278
10279         * ScrollBar.cs: Make abstract
10280         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
10281         is abstract.
10282
10283 2005-02-03  Jackson Harper  <jackson@ximian.com>
10284
10285         * ScrollBar.cs: First part of my scrollbar fixups. This removes
10286         all the unneeded refreshes and uses invalidates with properly
10287         computed rects.
10288
10289 2005-02-03  Peter Bartok  <pbartok@novell.com>
10290
10291         * ComponentModel.cs: Added
10292         * IDataGridEditingService.cs: Added
10293         * Timer.cs: Added missing attributes
10294         * ToolTip.cs: Added missing attributes
10295
10296 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
10297
10298         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
10299
10300 2005-02-03  Peter Bartok  <pbartok@novell.com>
10301
10302         * ListBox.cs: Added missing attributes
10303
10304 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
10305         
10306         * ListBox.cs:
10307                 - Fixes font height after font change
10308                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
10309                 
10310 2005-02-02  Peter Bartok  <pbartok@novell.com>
10311
10312         * HandleData.cs: Introduced static methods to allow class
10313           to be more self-contained and track it's own HandleData objects
10314         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
10315           HandleData to use new static methods
10316
10317 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
10318
10319         * Combobox.cs:
10320                 - Fixes default size and PreferredHeight
10321                 - Missing events
10322                 - ObjectCollection.Insert implementation
10323                 
10324         * ListControl.cs
10325                 - Fixes signature
10326         * ListBox.cs:
10327                 - Several fixes
10328                 - ObjectCollection.Insert implementation
10329                 - No selection after clean
10330                 - Small fixes
10331
10332 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
10333
10334         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
10335
10336 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
10337
10338         * Combobox.cs:
10339                 - Caches ItemHeight calculation for OwnerDrawVariable
10340                 - Handles dropdown properly
10341                 - Fixes several minor bugs
10342
10343 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
10344
10345         * ListBox.cs:
10346                 - Fixes 71946 and 71950
10347                 - Fixes changing Multicolumn on the fly
10348                 - Fixes keyboard navigation on Multicolumn listboxes
10349
10350 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
10351         
10352         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
10353         crash reporter log.
10354
10355 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
10356
10357         * XplatUIOSX.cs: Allow applications to actually exit.
10358
10359 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
10360
10361         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
10362         their parent at creation time rather than lazily later.  Fixes a major
10363         regression we were experiencing.
10364
10365 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
10366
10367         * ThemeWin32Classic.cs: more date time picker painting fixes
10368         * DateTimePicker.cs: more monthcalendar drop down fixes
10369         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
10370
10371 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
10372
10373         * ScrollBar.cs:
10374                 - When moving the thumb going outside the control should stop the moving
10375                 - Adds the firing of missing events
10376                 - Fixes no button show if Size is not specified
10377                 - End / Home keys for keyboard navigation
10378
10379 2005-01-30  Peter Bartok  <pbartok@novell.com>
10380
10381         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
10382           sanity check to prevent theoretical loop
10383         * XplatUIWin32.cs (SetVisible): Removed debug output
10384         * XplatUIX11.cs (SystrayChange): Added sanity check
10385         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
10386         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
10387           behaviour, valid until the X11 client window rewrite is done
10388         * TextBox.cs (ctor): Setting proper default foreground and background
10389           colors
10390
10391 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
10392
10393         * Theme: Added DrawDateTimePicker to interface
10394         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
10395         * DateTimePicker.cs: Created (still needs keys and painting code)
10396         * DateTimePickerFormat.cs: added
10397         * MonthCalendar.cs: fixed CreateParams for popup window mode
10398           
10399 2005-01-29  Peter Bartok  <pbartok@novell.com>
10400
10401         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
10402           this should also the calculations for ligher/darker
10403         * Theme.cs: Fixed defaults for ScrollBar widths/heights
10404
10405 2005-01-29  Peter Bartok  <pbartok@novell.com>
10406
10407         * ArrangeDirection.cs: Added
10408         * ArrangeStartingPositon.cs: Added
10409         * SystemInformation.cs: Implemented
10410         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
10411           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
10412           used by SystemInformation class
10413         * X11Strucs.cs: Added XSizeHints structure
10414         * MenuAPI.cs:
10415           - Fixed CreateParams to make sure the menu window is always visible
10416           - TrackPopupMenu: Added check to make sure we don't draw the
10417             menu offscreen
10418
10419 2005-01-29  Peter Bartok  <pbartok@novell.com>
10420
10421         * HandleData.cs: Added method for altering invalid area
10422         * TextBoxBase.cs: Implemented TextLength
10423
10424 2005-01-28  Peter Bartok  <pbartok@novell.com>
10425
10426         * XplatUIX11.cs: Improvement over last patch, not sending
10427           the WM_PAINT directly anymore, instead we scroll any pending
10428           exposed areas and let the system pick out the WM_PAINT later
10429
10430 2005-01-28  Peter Bartok  <pbartok@novell.com>
10431
10432         * SWF.csproj: Deleted, no longer used. Instead,
10433           Managed.Windows.Forms/SWF.csproj should be used
10434         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
10435           directly, to avoid a potential race condition with the next
10436           scroll
10437
10438 2005-01-28  Peter Bartok  <pbartok@novell.com>
10439
10440         * XplatUI.cs: Made class internal
10441
10442 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
10443
10444         * CheckedListBox.cs:
10445                 - Draw focus
10446                 - Fixed Drawing
10447                 - Missing methods and events
10448
10449 2005-01-27  Peter Bartok  <pbartok@novell.com>
10450
10451         * Application.cs (Run): Don't use form if we don't have one
10452
10453 2005-01-27  Peter Bartok  <pbartok@novell.com>
10454
10455         * TextBoxBase.cs (get_Lines): Fixed index off by one error
10456
10457 2005-01-27  Peter Bartok  <pbartok@novell.com>
10458
10459         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
10460         * GridItem.cs: Added; Patch by Jonathan S. Chambers
10461         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
10462         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
10463         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
10464         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
10465         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
10466         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
10467         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
10468         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
10469         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
10470         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
10471
10472 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
10473
10474         * Combobox.cs:
10475                 - Draw focus on Simple Combobox
10476                 - Fixes drawing issues
10477                 - fixes 71834
10478
10479 2005-01-27  Peter Bartok  <pbartok@novell.com>
10480
10481         * Form.cs:
10482           - Place window in default location, instead of hardcoded 0/0
10483           - Send initial LocationChanged event
10484         * Control.cs:
10485           - UpdateBounds after creation to find out where the WM placed us
10486           - Make sure that if the ParentForm changes location the Form
10487             is notified
10488         * XplatUIX11.cs: XGetGeometry will not return the coords relative
10489             to the root, but to whatever the WM placed around us.
10490             Translate to root coordinates before returning toplevel
10491             coordinates
10492         * XplatUIWin32.cs: Removed debug output
10493         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
10494           flag to GetWindowPos, to allow translation of coordinates on X11
10495
10496 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
10497
10498         * ListBox.cs: connect LostFocus Event
10499
10500 2005-01-27  Peter Bartok  <pbartok@novell.com>
10501
10502         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
10503           XplatUIX11.cs: Extended the Systray API
10504         * Form.cs: Removed debug output
10505         * Application.cs: Fixed focus assignment, always need to call
10506           XplatUI.Activate() since Form.Activate() has rules that may
10507           prevent activation
10508         * NotifyIcon.cs: Should be complete now
10509         * ToolTip.cs: Worked around possible timer bug
10510
10511 2005-01-27  Jackson Harper  <jackson@ximian.com>
10512
10513         * TabControl.cs:
10514         - Only invalidate the effected tabs when the
10515         selected index changes. This reduces drawing and gets rid of some
10516         flicker.
10517         - Only refresh if the tabs need to be shifted, otherwise only
10518         invalidate the slider button.
10519         - On windows the tabs are not filled to right if the slider is
10520         visible.
10521         
10522 2005-01-27  Jackson Harper  <jackson@ximian.com>
10523
10524         * TabControl.cs: Only refresh on mouseup if we are showing the
10525         slider. Also only invalidate the button whose state has changed.
10526
10527 2005-01-26  Peter Bartok  <pbartok@novell.com>
10528
10529         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
10530         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
10531           and SystrayRemove() methods
10532         * XplatUIOSX.cs: Stubbed Systray methods
10533         * XplatUIX11.cs:
10534           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
10535             methods
10536           - Fixed broken XChangeProperty calls (marshalling messed up things)
10537         * X11Structs.cs: Added enums and structs required for Size hinting
10538         * NotifyIcon.cs: Added & implemented
10539
10540 2005-01-26  Jackson Harper  <jackson@ximian.com>
10541
10542         * TabControl.cs: Space vertically layed out tabs properly.
10543
10544 2005-01-26  Peter Bartok  <pbartok@novell.com>
10545
10546         * Form.cs (CreateClientParams): Always set the location to 0,0
10547           since we're a child window.
10548
10549         * Control.cs (SetVisibleCore): Always explicitly setting the location
10550           of a toplevel window, apparently X11 doesn't like to move windows
10551           while they're not mapped.
10552
10553 2005-01-26  Jackson Harper  <jackson@ximian.com>
10554
10555         * TabControl.cs: Implement FillToRight size mode with vertically
10556         rendered tabs.
10557
10558 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
10559
10560         * ControlPaint.cs, ThemeWin32Classic.cs
10561                 - Fixes DrawFocusRectangle
10562
10563 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
10564
10565         * MenuAPI.cs:
10566                 - MenuBar tracking only starts when item is first clicked
10567                 - Fixes menu hidding for multiple subitems
10568                 - Unselect item in MenuBar when item Executed
10569                 - Fixes bug 71495
10570
10571 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
10572
10573         * ListControl.cs:
10574                 - IsInputKey for ListBox
10575         * ListBox.cs:
10576                 - Focus item
10577                 - Shift and Control item selection
10578                 - Implement SelectionMode.MultiExtended
10579                 - Fixes RightToLeft
10580         * ComboBox.cs:
10581                 - IsInputKey implemented
10582                 - Do not generate OnTextChangedEdit on internal txt changes
10583                 
10584 2005-01-23  Peter Bartok  <pbartok@novell.com>
10585
10586         * AccessibleObject.cs: Partially implemented Select()
10587         * MonthCalendar.cs: Added missing attributes and events
10588         * Form.cs: Fixed CreateParams behaviour, now controls derived from
10589           form can properly override CreateParams.
10590         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
10591           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
10592           Control performs Invalidate & Update
10593         * NativeWindow (CreateHandle): Added special handling for Form
10594           and Form.FormParent classes to allow overriding of From.CreateParams
10595         * Control.cs:
10596           - ControlNativeWindow: Renamed 'control' variable to more intuitive
10597             name 'owner'
10598           - ControlNativeWindow: Added Owner property
10599           - Removed usage of Refresh() on property changes, changed into
10600             Invalidate(), we need to wait until the queue is processed for
10601             updates, direct calls might cause problems if not all vars for
10602             Paint are initialized
10603           - Added call to UpdateStyles() when creating the window, to set any
10604             styles that CreateWindow might have ignored.
10605           - Added support for Form CreateParent overrides to UpdateStyles()
10606         * MessageBox.cs: Removed no longer needed FormParent override stuff,
10607           CreateParams are now properly overridable
10608         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
10609           CreateParams are now properly overridable
10610
10611 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
10612
10613         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
10614         OnTextBoxChanged.
10615
10616         Capture LostFocus and OnTextBoxChanged.  The later introduces a
10617         recursive invocation that I have not figured out yet.
10618
10619         Reset the timer when not using (it was accumulating).
10620
10621
10622         (OnTextBoxChanged): Set UserEdit to true here to track whether the
10623         user has made changes that require validation.
10624
10625         Reset changing to avoid loops.
10626
10627 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
10628
10629         * NumericUpDown.cs: Display value at startup.
10630
10631         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
10632         ValidateEditText.
10633
10634         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
10635         filled in.  Added some basic parsing of text.
10636
10637         Still missing the OnXXX method overrides, and figuring out the
10638         events that must be emitted.
10639
10640         * UpDownBase.cs: Handle UserEdit on the Text property.
10641         
10642 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
10643
10644         * ComboBox.cs:
10645           - Fixes IntegralHeight
10646           - ToString method
10647
10648 2005-01-21  Jackson Harper  <jackson@ximian.com>
10649
10650         * TabControl.cs: Set the SelectedIndex property when SelectedTab
10651         is set so that the page visibility is updated and the tabs are
10652         sized correctly.
10653
10654 2005-01-21  Jackson Harper  <jackson@ximian.com>
10655
10656         * TabControl.cs: Use cliping rectangle for blitting. Give the
10657         theme the clipping rect so we can do clipping while
10658         drawing. Remove some debug code.
10659
10660 2005-01-21  Jackson Harper  <jackson@ximian.com>
10661
10662         * TabPage.cs: Add a new method so tab pages can force the tab
10663         control to recalculate the tab page sizes.
10664         * TabControl.cs: UpdateOwner needs to make the tab control recalc
10665         sizes.
10666
10667 2005-01-20  Jackson Harper  <jackson@ximian.com>
10668
10669         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
10670
10671 2005-01-20  Jackson Harper  <jackson@ximian.com>
10672
10673         * TreeView.cs: Set the bounds for nodes properly. They were
10674         getting screwed up when checkboxes were not enabled, but images
10675         were.
10676
10677 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
10678
10679         * ListBox.cs:
10680                 - Owner draw support
10681                 - Fixes
10682                 
10683 2005-01-20  Jackson Harper  <jackson@ximian.com>
10684
10685         * XplatUIStructs.cs: More misc keys
10686         * X11Keyboard.cs: Ignore some control keys.
10687
10688 2005-01-20  Jackson Harper  <jackson@ximian.com>
10689
10690         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
10691         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
10692
10693 2005-01-19  Peter Bartok  <pbartok@novell.com>
10694
10695         * Control.cs: Un-selecting the control when it is loosing focus
10696
10697 2005-01-19  Jackson Harper  <jackson@ximian.com>
10698
10699         * TreeView.cs: Hook up to the text controls leave event so we can
10700         end editing when the users clicks outside the text box.
10701         
10702 2005-01-19  Jackson Harper  <jackson@ximian.com>
10703
10704         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
10705         get set in the conversion array.
10706
10707 2005-01-19  Peter Bartok  <pbartok@novell.com>
10708
10709         * Application.cs (ModalRun): Added a call to CreateControl to ensure
10710           focus is properly set
10711         * Button.cs:
10712           - Added missing attributes
10713           - removed styles, those are already set in the base class
10714         * ButtonBase.cs:
10715           - Added missing attributes
10716           - Added clip window styles
10717         * CheckBox.cs: Added missing attributes
10718         * CommonDialog.cs:
10719           - FormParentWindow.CreateParams: Added required clip styles
10720         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
10721           also filters modifier keys
10722         * MessageBox.cs:
10723           - Added assignment of Accept and Cancel button to enable Enter
10724             and Esc keys in MessageBox dialogs
10725           - FormParentWindow.CreateParams: Added required clip styles
10726         * RadioButton.cs: Added missing attributes
10727         * TextControl.cs: No longer draws selection if control does not
10728           have focus
10729         * TextBoxBase.cs:
10730           - Now draws simple rectangle around test area to make it obvious
10731             there's a control. This is a hack until we properly support borders
10732           - A few simple fixes to support selections better, now erases selected
10733             text when typing, and resets selection when using movement keys
10734
10735 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
10736
10737         * UpDownBase.cs: Added some new properties.
10738
10739         * DomainUpDown.cs: Implement a lot to get my test working.
10740
10741 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
10742
10743         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
10744
10745 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
10746
10747         * OSXStructs (WindowAttributes): Fixed csc complaints
10748
10749 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
10750
10751         * XplayUIOSX.cs:
10752           OSXStructs.cs: Initial refactor to move enums and consts into
10753           OSXStructs and use them in the driver for greater readability.
10754
10755 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
10756
10757         * XplatUIOSX.cs: Initial support for Standard Cursors.
10758         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
10759
10760 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
10761
10762         * ComboBox.cs: ability to change style when the ctrl is already
10763         created, missing methods and events, bug fixes, signature fixes
10764
10765 2005-01-19  Peter Bartok  <pbartok@novell.com>
10766
10767         * Cursors.cs (ctor): Added ctor to fix signature
10768
10769 2005-01-18  Peter Bartok  <pbartok@novell.com>
10770
10771         * Button.cs: Implemented DoubleClick event
10772         * ButtonBase.cs:
10773           - Fixed keyboard handling to behave like MS, where the press of
10774             Spacebar is equivalent to a mousedown, and the key release is
10775             equivalent to mouseup. Now a spacebar push will give the same
10776             visual feedback like a mouse click.
10777           - Added missing attributes
10778           - Added ImeModeChanged event
10779           - Added support for generating DoubleClick event for derived classes
10780         * CheckBox.cs:
10781           - Implemented DoubleClick event
10782           - Added missing attributes
10783         * CommonDialog.cs: Added missing attribute
10784         * ContextMenu.cs: Added missing attributes
10785         * RadioButton.cs:
10786           - AutoChecked buttons do not allow to be unselected when clicked
10787             (otherwise we might end up with no selected buttons in a group)
10788           - Added missing attributes
10789           - Implemented DoubleClickEvent
10790         * ThreadExceptionDialog.cs: Enabled TextBox code
10791
10792 2005-01-18  Peter Bartok  <pbartok@novell.com>
10793
10794         * Form.cs: Removed debug output
10795         * Button.cs: Added support for DoubleClick method
10796
10797 2005-01-18  Peter Bartok  <pbartok@novell.com>
10798
10799         * Form.cs:
10800           - Added method to parent window that allows triggering size
10801             calculations when a menu is added/removed
10802           - set_Menu: Cleaned up mess from early days of Form and Control,
10803             now properly triggers a recalc when a menu is added/removed
10804           - Added case to select form itself as focused form if no child
10805             controls exist
10806           - Added PerformLayout call when showing dialog, to ensure properly
10807             placed controls
10808         * Control.cs:
10809           - Select(): Made internal so Form can access it
10810           - Focus(): Only call Xplat layer if required (avoids loop), and sets
10811             status
10812         * Application.cs (Run): Removed hack and calls PerformLayout instead
10813           to trigger calculation when Form becomes visible
10814
10815 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
10816
10817         * ComboBox.cs: fixes for ownerdraw
10818
10819 2005-01-18  Peter Bartok  <pbartok@novell.com>
10820
10821         * TextControl.cs:
10822           - Sentinel is no longer static, each Document gets it's own, this
10823             avoids locking or alternatively overwrite problems when more
10824             than one text control is used simultaneously.
10825           - Switched to use Hilight and HilightText brushes for text selection
10826
10827         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
10828
10829 2005-01-18  Peter Bartok  <pbartok@novell.com>
10830
10831         * Control.cs:
10832           - Hooked up the following events:
10833                 o ControlAdded
10834                 o ControlRemoved
10835                 o HandleDestroyed
10836                 o ImeModeChanged
10837                 o ParentChanged
10838                 o TabStopChanged
10839                 o Invalidated
10840                 o SystemColorsChanged
10841                 o ParentFontChanged
10842                 o Move
10843           - Removed debug output
10844           - Added a call to the current theme's ResetDefaults when a color change
10845             is detected
10846         * Form.cs: Now setting the proper ImeMode
10847         * Theme.cs: Defined a method to force recreation of cached resources
10848           and rereading of system defaults (ResetDefaults())
10849         * ThemeWin32Classic.cs: Added ResetDefaults() stub
10850
10851 2005-01-17  Peter Bartok  <pbartok@novell.com>
10852
10853         * Control.cs: Added missing attributes
10854
10855 2005-01-17  Jackson Harper  <jackson@ximian.com>
10856
10857         * TreeNode.cs: Implement editing. Add missing properties selected
10858         and visible.
10859         * TreeView.cs: Implement node editing. Also some fixes to use
10860         Invalidate (invalid area) instead of Refresh when selecting.
10861
10862 2005-01-17  Peter Bartok  <pbartok@novell.com>
10863
10864         * Control.cs:
10865           - Implemented InvokeGotFocus() method
10866           - Implemented InvokeLostFocus() method
10867           - Implemented InvokePaint() method
10868           - Implemented InvokePaintBackground() method
10869           - Implemented InvokeClick() method
10870           - Implemented FindForm() method
10871           - Implemented RectangleToClient() method
10872           - Implemented ClientToRectangle() method
10873           - Implemented ResetBackColor() method
10874           - Implemented ResetCursor() method
10875           - Implemented ResetFont() method
10876           - Implemented ResteForeColor() method
10877           - Implemented ResetImeMode() method
10878           - Implemented ResetLeftToRight() method
10879           - Implemented ResetText() method
10880           - Implemented Scale() methods
10881           - Implemented ScaleCore() method
10882           - Implemented Update() method
10883           - Removed unused variables
10884           - Stubbed AccessibilityNotifyClients and
10885             ControlAccessibleObject.NotifyClients() methods (dunno what to do
10886             with those yet)
10887           - Now setting proper default for RightToLeft property
10888           - Fixed bug in SetClientSizeCore that would cause windows to get
10889             really big
10890           - Now sending Click/DoubleClick events
10891           - Now selecting controls when left mouse button is clicked on
10892             selectable control
10893         * AccessibleEvents.cs: Added
10894         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
10895         * XplatUIOSX.cs: Stubbed UpdateWindow() method
10896         * XplatUIWin32.cs: Implemented UpdateWindow() method
10897         * XplatUIX11.cs: Implemented UpdateWindow() method
10898         * Form.cs: Removed stray semicolon causing CS0162 warning
10899         * ThemeWin32Classic.cs: Fixed unused variable warnings
10900         * ScrollableControl.cs: Now calls base method for ScaleCore
10901         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
10902           style to avoid interference with internal click handler (which is
10903           different than standard Control click handling)
10904         * RadioButton.cs:
10905           - Now unchecks all sibling radio buttons when control is
10906             selected (Fixes #68756)
10907           - Removed internal tabstop variable, using the one inherited from
10908             Control
10909
10910 2005-01-17  Jackson Harper  <jackson@ximian.com>
10911
10912         * NavigateEventArgs.cs: Fix base type.
10913         * LinkLabel.cs: Sig fix
10914         
10915 2005-01-17  Jackson Harper  <jackson@ximian.com>
10916
10917         * TreeView.cs: Only invalidate the effected nodes bounds when
10918         selecting nodes.
10919
10920 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
10921
10922         * XplatUIWin32.cs: fixes Win32 marshaling
10923         * XplatUIX11.cs: fixes method signature
10924
10925 2005-01-17  Peter Bartok  <pbartok@novell.com>
10926
10927         * XplatUIX11.cs: Clean up resources when we no longer need them
10928
10929 2005-01-17  Peter Bartok  <pbartok@novell.com>
10930
10931         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
10932           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
10933           and DestroyCursor() methods.
10934         * Cursor.cs: Partially implemented, now supports standard cursors;
10935           still contains some debug code
10936         * Cursors.cs: Implemented class
10937         * Control.cs:
10938           - WndProc(): Added handling of WM_SETCURSOR message, setting the
10939             appropriate cursor
10940           - Implemented Cursor property
10941           - Replaced break; with return; more straightforwar and possibly
10942             faster
10943           - Now properly setting the result for WM_HELP
10944         * X11Structs.cs: Added CursorFontShape enum
10945         * XplatUIStructs.cs:
10946           - Added StdCursor enum (to support DefineStdCursor() method)
10947           - Added HitTest enum (to support sending WM_SETCURSOR message)
10948         * XplatUIX11.cs:
10949           - Now sends the WM_SETCURSOR message
10950           - Implemented new cursor methods
10951         * XplatUIOSX.cs: Stubbed new cursor methods
10952         * XplatUIWin32.cs:
10953           - Implemented new cursor methods
10954           - Added GetSystemMetrics function and associated enumeration
10955
10956 2005-01-15  Peter Bartok  <pbartok@novell.com>
10957
10958         * Control.cs:
10959           - WndProc(): Now handles EnableNotifyMessage
10960           - SelectNextControl(): Fixed bug where if no child or sibling
10961             controls exist we looped endlessly
10962
10963 2005-01-14  Jackson Harper  <jackson@ximian.com>
10964
10965         * TreeView.cs: Recalculate the tab pages when a new one is added
10966         so that the proper bounding rects are created.
10967
10968 2005-01-14  Jackson Harper  <jackson@ximian.com>
10969
10970         * TreeView.cs: Draw a gray box instead of a grip in the lower
10971         right hand corner when there are both horizontal and vertical
10972         scroll bars.
10973
10974 2005-01-14  Jackson Harper  <jackson@ximian.com>
10975
10976         * Control.cs: When erasing backgrounds use FromHwnd instead of
10977         FromHdc when there is a NULL wparam. This occurs on the X driver.
10978         * XplatUIX11.cs: Set the wparam to NULL.
10979
10980 2005-01-13  Jackson Harper  <jackson@ximian.com>
10981
10982         * PictureBox.cs: Implement missing methods (except ToString, need
10983         to test that on windows) and events. When visibility is changed we
10984         need to redraw the image because the buffers are killed. When size
10985         is changed refresh if the sizemode needs it.
10986
10987 2005-01-13  Peter Bartok  <pbartok@novell.com>
10988
10989         * Control.cs (SelectNextControl): Was using wrong method to select
10990           a control
10991
10992 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
10993
10994         * ComboBox.cs: fixes dropstyle
10995
10996 2005-01-13  Peter Bartok  <pbartok@novell.com>
10997
10998         * Form.cs:
10999           - Implemented Select() override
11000           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
11001           - Now sets keyboard focus on startup
11002         * Control.cs (SelectNextControl): Now properly handles directed=true
11003         * TextBoxBase.cs:
11004           - WndProc: Now passes tab key on to base if AcceptTabChar=false
11005           - Added (really bad) focus rectangle (mostly for testing)
11006         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
11007           to enforce redraw on focus changes
11008         * ContainerControl.cs:
11009           - Fixed detection of Shift-Tab key presses
11010           - Fixed traversal with arrow keys
11011         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
11012           gonna keep this or if it's complete yet
11013         
11014 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
11015
11016         * ComboBox.cs: missing properties, fixes
11017
11018 2005-01-13  Peter Bartok  <pbartok@novell.com>
11019
11020         * Panel.cs (ctor): Setting Selectable window style to off
11021         * Splitter.cs (ctor): Setting Selectable window style to off
11022         * GroupBox.cs (ctor): Setting Selectable window style to off
11023         * Label.cs (ctor): Setting Selectable window style to off
11024
11025 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
11026
11027         * UpDownBase.cs (InitTimer): If the timer has been already
11028         created, enable it.
11029
11030         Use a TextBox instead of a Label.
11031
11032 2005-01-12  Jackson Harper  <jackson@ximian.com>
11033
11034         * TreeView.cs: Refresh the tree after sorting the nodes. Always
11035         draw the connecting node lines (when ShowLines is true).
11036         * TreeNode.cs: The nodes index can now be updated. This is used
11037         when a node collection is sorted.
11038         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
11039         insert or an existing unsorted node collection can be sorted.
11040         
11041 2005-01-12  Peter Bartok  <pbartok@novell.com>
11042
11043         * ContainerControl.cs: Implemented ProcessDialogKeys()
11044
11045 2005-01-12  Peter Bartok  <pbartok@novell.com>
11046
11047         * Control.cs:
11048           - Implemented SelectNextControl() method
11049           - Several focus related bug fixes
11050           - Fixed Docking calculations to match MS documentation and
11051             behaviour
11052
11053 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
11054
11055         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
11056         bug fixes
11057
11058 2005-01-12  Peter Bartok  <pbartok@novell.com>
11059
11060         * Control.cs:
11061           - Fixed broken Contains() method
11062           - Implemented GetNextControl() method. Finally. This is the pre-
11063             requisite for focus handling.
11064
11065 2005-01-12  Peter Bartok  <pbartok@novell.com>
11066
11067         * OSXStrucs.cs: Added
11068
11069 2005-01-12  Peter Bartok  <pbartok@novell.com>
11070
11071         * XplatUIWin32.cs:
11072           - Removed PeekMessageFlags
11073           - Implemented SetWindowStyle() method
11074         * XplatUIStructs.cs: Added PeekMessageFlags
11075         * X11Structs: Added missing border_width field to XWindowChanges struct
11076         * XplatUIX11.cs:
11077           - PeekMessage: Now throws exception if flags which are not yet
11078             supported are passed
11079           - Implemented SetWindowStyle() method
11080           - Fixed SetZOrder to handle AfterHwnd properly
11081         * XplatUI.cs: Added SetWindowStyle() method
11082         * XplatUIDriver.cs: Added SetWindowStyle() abstract
11083         * Control.cs:
11084           - Implemented UpdateStyles() method
11085           - Implemented UpdateZOrder() method
11086         * XplatUIOSX.cs: Added SetWindowStyle() stub
11087
11088 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
11089
11090         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
11091         button mouse).
11092
11093
11094 2005-01-11  Jackson Harper  <jackson@ximian.com>
11095
11096         * TreeView.cs: Still need to draw lines to siblings even if out of
11097         the current node is out of the clip.
11098
11099 2005-01-11  Jackson Harper  <jackson@ximian.com>
11100
11101         * TreeView.cs: When setting the hbar/vbar/grip position use
11102         SetBounds so that perform layout is only called once. Also suspend
11103         and resume layout so layout is only done once for all controls.
11104         - Removed some debug fluff
11105         * SizeGrip.cs: Call base implmentation in overriding methods.
11106         - When visibility is changed the drawing buffers are killed so we
11107         need to redraw.
11108
11109 2005-01-11  Jackson Harper  <jackson@ximian.com>
11110
11111         * TreeView.cs: Calculate the open node count while drawing. This
11112         saves us an entire tree traversal for every paint operation. Use
11113         a member var for the open node count so less vars are passed around.
11114
11115 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
11116
11117         * MonthCalendar.cs:
11118         - fixed selection to use mousemove, not mouse polling on timer
11119         * ThemeWin32Classic.cs
11120         - removed redundant unused variable "no_more_content"
11121         
11122 2005-01-11  Peter Bartok  <pbartok@novell.com>
11123
11124         * XplatUIX11.cs (DoEvents): Needs to return when no more events
11125           are pending, so it now calls PeekMessage instead of GetMessage;
11126           implemented a incomplete version of PeekMessage
11127         
11128 2005-01-11  Peter Bartok  <pbartok@novell.com>
11129
11130         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
11131           I18n issues
11132         * TextBoxBase.cs: Added sending of TextChanged event
11133
11134 2005-01-10  Jackson Harper  <jackson@ximian.com>
11135
11136         * TreeView.cs: Try not to draw outside the clipping rectangle on
11137         each node element.
11138
11139 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
11140
11141         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
11142
11143 2005-01-10  Jackson Harper  <jackson@ximian.com>
11144
11145         * TreeView.cs:
11146         - Implement fast scrolling. Now only the newly
11147         exposed nodes are drawn and the old image is moved using the
11148         XplatUI::ScrollWindow method.
11149         - Factor in height of nodes when calculating whether or not the
11150         node is in the clipping rect.
11151
11152 2005-01-10  Jackson Harper  <jackson@ximian.com>
11153
11154         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
11155
11156 2005-01-10  Peter Bartok  <pbartok@novell.com>
11157
11158         * Application.cs: Added temporary hack to resolve all our resize
11159           required issues on startup. This will get fixed properly at
11160           some point in the future
11161
11162 2005-01-10  Jackson Harper  <jackson@ximian.com>
11163
11164         * SizeGrip.cs: New internal class that is used as a sizing
11165         grip control...hence the name.
11166
11167 2005-01-10  Peter Bartok  <pbartok@novell.com>
11168
11169         * Control.cs: Implemented proper TabIndex handling, now assigning
11170           a tabindex when a control is added to a container
11171         * GroupBox.cs (ctor): Now sets the Container style bit, required
11172           for Control.GetNextControl()
11173
11174 2005-01-09  Jackson Harper  <jackson@ximian.com>
11175
11176         * TextBoxBase.cs: Clear window when scrolling (fixes build).
11177
11178 2005-01-09  Peter Bartok <pbartok@novell.com>
11179
11180         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
11181           XplatUIX11.cs: Added ability to control ScrollWindow expose and
11182           an overload for ScrollWindow to allow only scrolling a rectangle
11183
11184 2005-01-09  Peter Bartok <pbartok@novell.com>
11185
11186         * Form.cs:
11187           - Implemented SetDesktopBounds method
11188           - Implemented SetDesktopLocation method
11189
11190 2005-01-08  Jackson Harper  <jackson@ximian.com>
11191
11192         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
11193         the node count has changed, this removes to VScroll::Refresh calls
11194         when drawing.
11195
11196 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
11197
11198         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
11199
11200 2005-01-07  Jackson Harper  <jackson@ximian.com>
11201
11202         * TreeNode.cs: Just update the single node when it is
11203         checked. Don't refresh after toggling, the Expand/Collapse already
11204         handles this.
11205         * TreeView.cs: Respect clipping a little more when drawing. Try
11206         not to redraw things that don't need to be redrawn. Just hide the
11207         scrollbars when they are no longer needed instead of removing
11208         them, so they don't have to be created again and again.
11209         
11210 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
11211
11212         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
11213         coordinates to window space to place the caret properly, FIXED.
11214         Implement GetWindowState & SetWindowState
11215
11216 2005-01-06  Peter Bartok <pbartok@novell.com>
11217
11218         * Form.cs:
11219           - Implemented ClientSize property
11220           - Implemented DesktopBounds property
11221           - Implemented DesktopLocation property
11222           - Implemented IsRestrictedWindow property
11223           - Implemented Size property
11224           - Implemented TopLevel property
11225           - Implemented FormWindowState property
11226         * Control.cs:
11227           - Implemented GetTopLevel() method
11228           - Implemented SetTopLevel() method
11229         * X11Structs.cs (Atom):
11230           - Added AnyPropertyType definition
11231           - Added MapState definiton and updated XWindowAttribute struct
11232         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
11233         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
11234         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
11235         * XplatUIWin32.cs:
11236           - Implemented GetWindowState() and SetWindowState() methods
11237           - Fixed Win32GetWindowLong return type
11238         * XplatUIX11.cs:
11239           - Introduced central function for sending NET_WM messages
11240           - Implemented GetWindowState() and SetWindowState() methods
11241         * TextBoxBase.cs (set_Lines):
11242           - Now uses Foreground color for text added via Text property (Duh!)
11243           - Added code to remember programmatically requested size (fixes
11244             behaviour when Multiline is set after Size)
11245           - Added AutoSize logic
11246
11247 2005-01-06  Jackson Harper  <jackson@ximian.com>
11248
11249         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
11250
11251 2005-01-06  Jackson Harper  <jackson@ximian.com>
11252
11253         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
11254         set to less then 0.
11255
11256 2005-01-06  Jackson Harper  <jackson@ximian.com>
11257
11258         * ScrollableControl.cs: Lazy init the scrollbars.
11259         
11260 2005-01-06  Jackson Harper  <jackson@ximian.com>
11261
11262         * Theme.cs: Speed up getting pens and solid brushes, by using
11263         their ARGB as a hash instead of tostring and not calling Contains.
11264
11265 2005-01-06  Peter Bartok <pbartok@novell.com>
11266
11267         * Form.cs:
11268           - Implemented OnActivated and OnDeactivate event trigger
11269           - Implemented Activate() method
11270           - Fixed ShowDialog() to activate the form that was active before
11271             the dialog was shown
11272         * XplatUIX11.cs:
11273           - Added global active_window var that tracks the currently active
11274             X11 window
11275           - Now always grabs Property changes from the root window to always
11276             catch changes on the active window property
11277           - Added code to PropertyNotify handler to send Active/Inactive
11278             messages when state changes. This puts X11 and Win32 en par on
11279             WM_ACTIVATE notifications (except for double notifications when
11280             the user clicks away from our modal window to another one of our
11281             windows)
11282
11283 2005-01-05  Jackson Harper  <jackson@ximian.com>
11284
11285         * ImageList.cs: Implment ctor
11286
11287 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
11288
11289         * XplatUIOSX.cs: Implement Activate/SetTopmost
11290
11291 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
11292
11293         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
11294
11295 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
11296
11297         * XplatUIOSX.cs: Implement GetActive/SetFocus.
11298
11299 2005-01-05  Peter Bartok <pbartok@novell.com>
11300
11301         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
11302           XplatUIOSX.cs: Added GetActive method to return the currently
11303           active window for the application (or null, if none is active)
11304         * Form.cs:
11305           - Implemented ActiveForm
11306           - Commented out owner assignment for modal dialogs (causes problems
11307             on Win32, since the owner will be disabled)
11308           - Reworked some Active/Focus handling (still incomplete)
11309         * CommonDialog.cs: Commented out owner assignment for modal dialogs
11310           (causes problems on Win32, since the owner will be disabled)
11311         * IWin32Window: Added ComVisible attribute
11312
11313 2005-01-05  Peter Bartok <pbartok@novell.com>
11314
11315         * ToolTip.cs (WndProc): Enable setting focus now that we have the
11316           required XplatUI functions.
11317
11318 2005-01-05  Peter Bartok <pbartok@novell.com>
11319
11320         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
11321           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
11322           to implement focus and activation handling; still incomplete and
11323           with debug output
11324
11325 2005-01-04  Peter Bartok <pbartok@novell.com>
11326
11327         * TextBoxBase.cs: Changed access level for Document property to
11328           match switch to internal for TextControl
11329
11330 2005-01-04  Peter Bartok <pbartok@novell.com>
11331
11332         * AccessibleObject: Added ComVisible attribute
11333
11334 2005-01-04  Jackson Harper  <jackson@ximian.com>
11335
11336         * X11Keyboard.cs: Remove unneeded var.
11337
11338 2005-01-04  Jackson Harper  <jackson@ximian.com>
11339
11340         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
11341         but PAINT.
11342         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
11343         ClientMessage. This makes apps exit cleanly (more often).
11344         
11345 2005-01-04  Jackson Harper  <jackson@ximian.com>
11346
11347         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
11348         handling focus, return correct colors and fonts,
11349         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
11350         handle selection, horizontal scrolling, and mouse interaction.
11351
11352 2005-01-04  Peter Bartok <pbartok@novell.com>
11353
11354         * ICommandExecutor.cs: Added
11355         * IDataGridColumnStyleEditingNotificationService.cs: Added
11356         * IFeatureSupport.cs: Added
11357         * IFileReaderService.cs: Added
11358         * IDataObject.cs: Added ComVisible attribute
11359         * AmbientProperties.cs: Added
11360         * BaseCollection.cs: Added missing attributes
11361         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
11362         * BaseCollection.cs: Added missing attributes
11363         * Binding.cs: Added TypeConverter attribute
11364         * BindingContext.cs: Added DefaultEvent attribute
11365         * BindingsCollection.cs: Added DefaultEvent attribute
11366         * Button.cs: Added DefaultValue attribute
11367         * DragEventArgs.cs: Added ComVisible attribute
11368         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
11369         * KeyEventArgs.cs: Added ComVisible attribute
11370         * KeyPressEventArgs.cs: Added ComVisible attribute
11371         * MouseEventArgs.cs: Added ComVisible attribute
11372         * NavigateEventArgs.cs: Added
11373         * NavigateEventHandler.cs: Added
11374         * FeatureSupport.cs: Added
11375         * OSFeature.cs: Added
11376         * Theme.cs: Added abstract Version property to support OSFeature
11377         * ThemeWin32Classic.cs: Added Version property to
11378           support OSFeature.Themes
11379         * ProgressBar.cs: Removed OnPaintBackground override, not required since
11380           the proper styles to avoid background drawing are set, also doesn't
11381           match MS signature
11382         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
11383         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
11384         * ScrollEventArgs.cs: Added ComVisible attribute
11385         * SplitterEventArgs.cs: Added ComVisible attribute
11386         * AccessibleSelection.cs: Added Flags attribute
11387         * Appearance.cs: Added ComVisible attribute
11388         * Border3DSide.cs: Added ComVisible attribute
11389         * Border3DStyle.cs: Added ComVisible attribute
11390         * BorderStyle.cs: Added ComVisible attribute
11391         * DragAction.cs: Added ComVisible attribute
11392         * ErrorBlinkStyle.cs: Added
11393         * ScrollEventType.cs: Added ComVisible attribute
11394         * AnchorStyles.cs: Added Editor attribute
11395         * DockStyle.cs: Added Editor attribute
11396         * HorizontalAlignment.cs: Added ComVisible attribute
11397         * HelpEventArgs.cs: Added ComVisible attribute
11398         * PaintEventArgs.cs: Added IDisposable
11399
11400 2005-01-04  Peter Bartok <pbartok@novell.com>
11401
11402         * TextControl.cs: Switched Line, LineTag and Document classes to
11403           internal
11404
11405 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
11406
11407         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
11408         Simple mode, fixes, IntegralHeight, etc.
11409
11410 2005-01-04  Peter Bartok <pbartok@novell.com>
11411
11412         * TextBoxBase.cs: Using proper font variable now
11413
11414 2005-01-04  Peter Bartok <pbartok@novell.com>
11415
11416         * Form.cs (ShowDialog): Set parent to owner, if provided
11417         * GroupBox.cs: Removed unused vars
11418         * TextControl.cs:
11419           - Added GetHashCode() for Document and LineTag classes
11420           - Removed unused variables
11421           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
11422             to allow translation between continuous char position and line/pos
11423         * CheckBox.cs: Removed vars that are provided by base class
11424         * RadioButton.cs: Removed vars that are provided by base class, added
11425           new keyword where required
11426         * LinkLabel.cs: Added new keyword where required
11427         * Control.cs (WndProc): Removed unused variable
11428         * TextBoxBase.cs:
11429           - Finished SelectionLength property
11430           - Implemented SelectionStart property
11431           - Implemented Text property
11432           - Removed unused vars
11433         * MessageBox.cs: Added new keyword where required
11434         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
11435           WndProc signature
11436         * MenuAPI.cs: Added new keyword where required
11437         * ButtonBase.cs: Removed vars that are provided by base class, added
11438           new keyword where required
11439         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
11440           argument to double, to allow compiling with csc 2.0 (Atsushi ran
11441           into this)
11442         * Application.cs (Run): Now triggers the ThreadExit event
11443         * CommonDialog.cs: Added new keyword where required; now properly sets
11444           parent (owner) for dialog
11445         * XplatUIX11.cs: Commented out unused vars
11446         * StatusBar.cs: Fixed signature for Text property
11447         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
11448
11449 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
11450
11451         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
11452         TrackBar.cs, MonthCalendar.cs: remove unused vars
11453
11454 2005-01-03  Jackson Harper  <jackson@ximian.com>
11455
11456         * ThemeWin32Classic.cs:
11457         * X11Keyboard.cs: Remove unused vars.
11458
11459 2005-01-03  Peter Bartok  <pbartok@novell.com>
11460
11461         * TextBox.cs:
11462           - set_Text: Tied into TextControl
11463           - set_TextAlignment: Tied into TextControl
11464         * TextControl.cs:
11465           - Added alignment properties and implemented alignment handling
11466             and drawing (still has a bug, not generating proper expose events)
11467           - Added new Line() constructor to allow passing the line alignment
11468           - Fixed selection setting, properly handling end<start now
11469           - Added aligment considerations to RecalculateDocument()
11470         * TextBoxBase.cs:
11471           - Now properly enforces control height for single line controls
11472           - Added support for CharacterCasing
11473           - Added IsInputKey override
11474           - Fixed Keys.Enter logic
11475           - Added SetBoundsCore override
11476           - Fixed mouse selection handling
11477
11478 2005-01-03  Jackson Harper  <jackson@ximian.com>
11479
11480         * TreeView.cs:
11481           - Collapse and uncheck all nodes when CheckBoxes is disabled.
11482           - Checkboxes are always aligned to the bottom of the node,
11483           regardless of item height.
11484           - Use the node bounds to draw the text so we can center it when
11485           the item height is greater then the font height.
11486           - Node::Bounds are only the text part of the node.
11487         * TreeNode.cs: New method to combine collapsing and unchecking all
11488           nodes recursively.
11489
11490 2005-01-02  Jackson Harper  <jackson@ximian.com>
11491
11492         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
11493         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
11494         tree when a check is changed. TODO: Only refresh the checked node.
11495
11496 2004-12-30  Jackson Harper  <jackson@ximian.com>
11497
11498         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
11499         * TreeNode.cs: When collapsing make sure to never collapse the
11500         root node.
11501
11502 2004-12-29  Jackson Harper  <jackson@ximian.com>
11503
11504         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
11505         
11506 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
11507
11508         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
11509
11510 2004-12-28  Peter Bartok  <pbartok@novell.com>
11511
11512         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
11513           not yet assigned
11514
11515 2004-12-28  Peter Bartok  <pbartok@novell.com>
11516
11517         * Control.cs (WndProc): Added WM_HELP handler, now generates
11518           HelpRequested event
11519         * Form.cs: Added HelpButton property and required support code
11520         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
11521
11522 2004-12-28  Peter Bartok  <pbartok@novell.com>
11523
11524         * CommonDialog.cs:
11525           - Made DialogForm.owner variable internal
11526           - Added check to ensure owner form is set before setting
11527             owner properties in CreateParams
11528
11529 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
11530
11531         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
11532           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
11533           GetCursorPos.  Fix major visibility issues.  Rework the windowing
11534           system to support borderless/titleless windows (implements menus).
11535           Fix GetWindowPos.  Implement initial background color support for
11536           views.
11537
11538 2004-12-28  Peter Bartok  <pbartok@novell.com>
11539
11540         * Form.cs (get_CreateParams): Make sure we have an owner before using
11541           the owner variable. Implement proper default if no owner exists
11542
11543 2004-12-28  Peter Bartok  <pbartok@novell.com>
11544
11545         * In preparation for making Managed.Windows.Forms the default build target
11546           for System.Windows.Forms, the following stubbed files were added.
11547           Dialogs are currently being implemented by contributors and are only
11548           short-term place holders.
11549         * ColorDialog.cs: Initial check-in (minmal stub)
11550         * DataGrid.cs: Initial check-in (minimal stub)
11551         * DataGridLineStyle.cs: Initial check-in (minimal stub)
11552         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
11553         * DataGridTableStyle.cs: Initial check-in (minimal stub)
11554         * FontDialog.cs: Initial check-in (minimal stub)
11555         * FileDialog.cs: Initial check-in (minimal stub)
11556         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
11557         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
11558         * OpenFileDialog: Initial check-in (minimal stub)
11559         * IComponentEditorPageSite.cs: Initial check-in
11560         * Splitter.cs: Initial check-in (for Jackson)
11561         * SplitterEventArgs.cs: Initial check-in (for Jackson)
11562         * SplitterEventHandler.cs: Initial check-in (for Jackson)
11563         * TextBox.cs: Initial check-in; still needs some wiring to
11564           TextControl backend
11565         * Form.cs: Implemented ControlBox property
11566         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
11567         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
11568         * TextControl.cs: Added selection functionality; added todo header
11569         * TextBoxBase.cs:
11570           - Implemented Lines property
11571           - Implemented TextHeight property
11572           - Implemented SelectedText property
11573           - Implemented SelectionLength property
11574           - Implemented SelectAll method
11575           - Implemented ToString method
11576           - Removed and cleaned up some debug code
11577           - Implemented (still buggy) mouse text selection
11578
11579 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
11580
11581         * ComboBox.cs: Complete DropDownList implementation, fixes.
11582
11583 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
11584
11585         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
11586         * ComboBoxStyle.cs: ComboBoxStyle enum
11587         * ComboBox.cs: Initial work on ComboBox control
11588
11589 2004-12-21  Peter Bartok  <pbartok@novell.com>
11590
11591         * Control.cs (ctor, CreateParams): Moved setting of is_visible
11592           forward so that anything that creates a window gets the default,
11593           also no longer uses Visible property in CreateParams to avoid
11594           walking up the parent chain and possibly get the wrong visible
11595           status. Fixed IsVisible to no longer walk up to the parent.
11596
11597 2004-12-21  Peter Bartok  <pbartok@novell.com>
11598
11599         * Form.cs (ShowDialog): Unset modality for the proper window
11600  
11601 2004-12-20  Peter Bartok  <pbartok@novell.com>
11602
11603         * CommonDialog.cs: Initial check-in
11604
11605 2004-12-20  Peter Bartok  <pbartok@novell.com>
11606
11607         * Control.cs (Visible): Now uses the parent window instead of the
11608           client area window for the property
11609
11610         * Form.cs
11611           - ShowDialog(): Now uses the proper window for modality
11612           - The default visibility state for the form parent is now false. This
11613             will prevent the user from seeing all the changes to the form and
11614             its controls before the application hits Application.Run()
11615           - Removed some stale commented out code
11616
11617         * NativeWindow.cs:
11618           - Added FindWindow() method to have a method to check for existence
11619             of a window handle
11620           - Added ability to override default exception handling (for example
11621             when debugging with VS.Net; to do this the ExternalExceptionHandler
11622             define must be set
11623           - Removed some useless debug output
11624
11625         * XplatUIX11.cs:
11626           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
11627             not working as expected
11628           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
11629             property to allow switching back to the modal window if focus is
11630             given to another one of our windows (Application Modal)
11631           - Now only sets override_redirect if we create a window
11632             without WS_CAPTION
11633           - Moved EventMask selection before mapping of newly created window
11634             so we can catch the map event as well
11635           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
11636           - Added various Atom related DllImports
11637           - Implemented Exit() method
11638           - .ctor() : No longer shows window if WS_VISIBLE is not defined
11639             in the CreateParams
11640
11641         * MessageBox.cs: Now properly deals with the FormParent window by
11642           providing an override the FormParent CreateParams property to
11643           set as POPUP instead of OVERLAPPED window.
11644
11645 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
11646
11647         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
11648         Minor code cleanup.
11649
11650 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
11651         
11652         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
11653
11654 2004-12-18  Peter Bartok  <pbartok@novell.com>
11655
11656         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
11657           implementing SetModal() method
11658
11659 2004-12-18  Peter Bartok  <pbartok@novell.com>
11660
11661         * X11Structs.cs (XGCValues): Fixed type of function element
11662         * XplatUI.cs: Added ScrollWindow() method
11663         * XplatUIDriver.cs: Added ScrollWindow() abstract
11664         * XplatUIWin32.cs: Implemented ScrollWindow() method
11665         * XplatUIX11.cs: Implemented ScrollWindow() method
11666         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
11667
11668 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
11669
11670         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
11671         Some more keyboard support (INCOMPLETE)
11672
11673 2004-12-17  Peter Bartok  <pbartok@novell.com>
11674
11675         * TextControl.cs:
11676         - Added color attribute to line tags.
11677         - Added color argument to all functions dealing with tags
11678         - Added color argument support to various functions
11679         - Fixed miss-calculation of baseline/shift in certain circumstances
11680
11681         * TextBoxBase.cs: Added new color option to test code
11682
11683 2004-12-17  Jackson Harper  <jackson@ximian.com>
11684
11685         * TreeNode.cs:
11686         * MonthCalendar.cs: Signature fixes
11687
11688 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
11689
11690         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
11691         keyboard event moved it.  Create a new graphics context for each paint resolves this
11692
11693 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
11694
11695         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
11696         Make caret exist and go blink blink.  Initial keyboard support.
11697         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
11698         works.
11699
11700 2004-12-17  Jackson Harper  <jackson@ximian.com>
11701
11702         * XplatUIStructs.cs: Updated set of virtual keycodes.
11703         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
11704
11705 2004-12-17  Jackson Harper  <jackson@ximian.com>
11706
11707         * XplatUIX11.cs: Prune old keyboard code.
11708
11709 2004-12-17  Jackson Harper  <jackson@ximian.com>
11710
11711         * XplatUIX11.cs: When generating mouse wparams get the modifier
11712         keys from the ModifierKeys property.
11713
11714 2004-12-17  Jackson Harper  <jackson@ximian.com>
11715
11716         * X11Keyboard.cs: Send up/down input when generating
11717         messages. Remove some unused vars.
11718
11719 2004-12-17  Jackson Harper  <jackson@ximian.com>
11720
11721         * TabControl.cs:
11722         * TreeView.cs: get rid of warnings.
11723
11724 2004-12-17  Jackson Harper  <jackson@ximian.com>
11725
11726         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
11727
11728 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
11729
11730         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
11731           CheckedListBox.cs: Implementation
11732
11733 2004-12-17  Peter Bartok  <pbartok@novell.com>
11734
11735         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
11736
11737 2004-12-16  Peter Bartok  <pbartok@novell.com>
11738
11739         * TextControl.cs:
11740           - InsertCharAtCaret(): Fixed start pos fixup
11741           - CaretLine_get: No longer derives the line from the tag, the tag
11742             could be stale if lines in the document have been added or deleted
11743           - RebalanceAfterDelete(): Fixed bug in balancing code
11744           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
11745           - Line.Streamline(): Now can also elminate leading empty tags
11746           - DumpTree(): Added a few more tests and prevented exception on
11747             uninitialized data
11748           - Added Debug section for Combining lines
11749           - Delete(): Now copies all remaining properties of a line
11750           
11751         * TextBoxBase.cs:
11752           - Left mousebutton now sets the caret (and middle button still acts
11753             as formatting tester, which must go away soon)
11754           - Added Debug section for Deleting/Combining lines
11755           - Fixed calculations for UpdateView after Combining lines
11756
11757 2004-12-16  Peter Bartok  <pbartok@novell.com>
11758
11759         * TextControl.cs: Now properly aligns text on a baseline, using the
11760           new XplatUI.GetFontMetrics() method. Simplified several calculations
11761         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
11762           defined
11763
11764 2004-12-16  Peter Bartok  <pbartok@novell.com>
11765
11766         * XplatUI.cs: Added GetFontMetrics() method
11767         * XplatUIDriver.cs: Added GetFontMetrics() abstract
11768         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
11769           into libgdiplus, our private GetFontMetrics function
11770         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
11771         * XplatUIWin32.cs: Implemented GetFontMetrics() method
11772
11773 2004-12-16  Jackson Harper  <jackson@ximain.com>
11774
11775         * XplatUIStruct.cs: Add enum for dead keys
11776         * X11Keyboard.cs: Map and unmap dead keys.
11777
11778 2004-12-16  Jackson Harper  <jackson@ximian.com>
11779
11780         * X11Keyboard.cs: Detect and use the num lock mask.
11781
11782 2004-12-16  Peter Bartok  <pbartok@novell.com>
11783
11784         * Control.cs (CreateGraphics): Added check to make sure the
11785           handle of the window exists before calling Graphics.FromHwnd()
11786
11787 2004-12-16  Peter Bartok  <pbartok@novell.com>
11788
11789         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
11790           contains a lot of code that's not supposed to be there for the
11791           real thing, but required for developing/testing the textbox
11792           backend.
11793
11794 2004-12-16  Peter Bartok  <pbartok@novell.com>
11795
11796         * TextControl.cs:
11797         - Fixed Streamline method
11798         - Added FindTag method to Line
11799         - Added DumpTree method for debugging
11800         - Added DecrementLines() method for deleting lines
11801         - Fixed UpdateView to update the cursor to end-of-line on single-line
11802           updates
11803         - Added PositionCaret() method
11804         - Fixed MoveCaret(LineDown) to move into the last line, too
11805         - Added InsertChar overload
11806         - Fixed InsertChar tag offset calculations
11807         - Added DeleteChar() method
11808         - Added Combine() method for folding lines
11809         - Fixed Delete() method, no longer allocates wasted Line object and
11810           now copies all properties when swapping nodes
11811         - Delete() method now updates document line counter
11812
11813 2004-12-15  Jackson Harper  <jackson@ximian.com>
11814
11815         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
11816         * X11Keyboard.cs: Expose the currently selected modifier keys
11817         through a property.
11818
11819 2004-12-15  Peter Bartok  <pbartok@novell.com>
11820
11821         * TextControl.cs: Initial check-in. Still incomplete
11822
11823 2004-12-15  Jackson Harper  <jackson@ximian.com>
11824
11825         * TreeNode.cs:
11826         * TreeView.cs: Fix build on csc (second time today ;-))
11827
11828 2004-12-15  Jackson Harper  <jackson@ximian.com>
11829
11830         * TreeView.cs: Store the treenodes plus/minus box bounds when it
11831         is calculated and use this for click testing.
11832         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
11833
11834 2004-12-15  Jackson Harper  <jackson@ximian.com>
11835
11836         * TreeView.cs: Pass the nodes image index to the image list when
11837         drawing that image.
11838
11839 2004-12-15  Jackson Harper  <jackson@ximian.com>
11840
11841         * X11Keyboard.cs: Set messages hwnd.
11842         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
11843         post_message calls.
11844
11845 2004-12-15  Jackson Harper  <jackson@ximian.com>
11846
11847         * X11Keyboard.cs: Fix to compile with csc.
11848         
11849 2004-12-15  Jackson Harper  <jackson@ximian.com>
11850
11851         * X11Structs.cs: Add key mask values
11852         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
11853         * X11Keyboard.cs: New file - Extrapolates and interpolates key
11854         down/up foo into WM_CHAR foo
11855         * KeyboardLayouts.cs: Common keyboard layouts
11856         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
11857         post messages into the main queue.
11858
11859 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
11860
11861         * Button.cs: implement ProcessMnemonic
11862         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
11863           brushes everytime
11864         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
11865         * ButtonBase.cs: Show HotkeyPrefix (not the &)
11866
11867 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
11868         
11869         * MonthCalendar.cs: Implemented click-hold for next/previous month
11870           and date selection
11871           
11872 2004-12-11  Peter Bartok  <pbartok@novell.com>
11873
11874         * X11Structs.cs:
11875           - Added XKeyboardState (moved from XplatUIX11.cs)
11876           - Added XCreateGC related enums and structures
11877           - Added GXFunction for XSetFunction
11878
11879         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
11880
11881         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
11882           CaretVisible() calls
11883
11884         * ToolTip.cs: Added code to prevent stealing focus from app windows
11885
11886         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
11887           DestroyCaret, SetCaretPos and CaretVisible)
11888
11889         * XplatUIX11.cs:
11890           - Added implementation for caret functions
11891           - Moved hover variables into a struct, to make it a bit easier
11892             on the eyes and to debug
11893           - Removed XKeyboardState (moved to XplatUIX11.cs)
11894           - Moved Keyboard properties into the properties region
11895
11896         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
11897           call to get a graphics context for our control
11898
11899         * XplatUIOSX.cs: Added empty overrides for the new caret functions
11900
11901         * TreeView.cs: Fixed bug. No matter what color was set it would always
11902           return SystemColors.Window
11903
11904         * XplatUIWin32.cs: Implemented caret overrides
11905
11906 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
11907
11908         * ListBox.cs: fire events, implement missing methods and properties,
11909         sorting.
11910
11911 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
11912
11913         * MonthCalendar.cs: invalidation bug fixing
11914         * ThemeWin32Classic.cs: paint fixing
11915
11916 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
11917
11918         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
11919         prepare the CGContextRef there now.
11920
11921 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
11922
11923         * MonthCalendar.cs:
11924           - optimisationL only invalidate areas that have changed
11925         * ThemeWin32Classic.cs:
11926           - only paint parts that intersect with clip_area
11927
11928 2004-12-09  Peter Bartok  <pbartok@novell.com>
11929
11930         * Application.cs: Undid changes from r37004 which cause problems
11931         on X11
11932
11933 2004-12-09  Ravindra  <rkumar@novell.com>
11934
11935         * ToolBar.cs: Added support for displaying ContextMenu
11936         attached to a button on ToolBar.
11937         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
11938         property.
11939
11940 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
11941
11942         * Label.cs: autosize works in text change and removes unnecessary
11943         invalidate
11944
11945 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
11946
11947         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
11948         remove warnings
11949
11950 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
11951
11952         * XplatUIOSX.cs: Added mouse move/click/grab support
11953         Remove some debugging WriteLines not needed anymore.
11954         Add window resizing/positioning.
11955         Fix visibility on reparenting.
11956
11957 2004-12-08  Peter Bartok  <pbartok@novell.com>
11958
11959         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
11960
11961 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
11962
11963         * XplatUIOSX.cs: Initial checkin
11964         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
11965
11966 2004-12-03  Ravindra <rkumar@novell.com>
11967
11968         * ListView.cs: Added some keybindings and fixed scrolling.
11969         ScrollBars listen to ValueChanged event instead of Scroll
11970         Event. This would let us take care of all changes being
11971         done in the scrollbars' values programmatically or manually.
11972         * ListView.cs (CanMultiselect): Added a check for shift key.
11973         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
11974         * ListViewItem.cs (Clone): Fixed. We need to make a copy
11975         of ListViewSubItemCollection as well.
11976
11977 2004-12-06  Peter Bartok <pbartok@novell.com>
11978
11979         * Control.cs (Parent): Added check and exception to prevent
11980         circular parenting
11981
11982 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
11983
11984         * ListBox.cs: implemented clipping, selection single and multiple,
11985         bug fixing
11986
11987 2004-12-03  Ravindra <rkumar@novell.com>
11988
11989         * ListView.cs (ListView_KeyDown):
11990         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
11991         when CTRL key is pressed.
11992         * ListViewItem.cs (Selected): Fixed setting the property.
11993
11994 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
11995
11996         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
11997
11998         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
11999         MinimizeBox, ShowInTaskbar, TopMost properties.
12000
12001         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
12002         will be implemented).
12003
12004 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
12005
12006         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
12007
12008         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
12009         tests.
12010         
12011         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
12012         
12013         * TreeView.cs: BackColor is Colors.Window.
12014
12015 2004-12-01  Jackson Harper  <jackson@ximian.com>
12016
12017         * TreeView.cs: When resizing the tree if the user is making it
12018         smaller we don't get expose events, so we need to handle adding
12019         the horizontal scrollbar in the size changed handler as well as
12020         the expose handler.
12021
12022 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
12023
12024         * DrawItemState.cs: fixes wrong enum values
12025
12026 2004-12-01  Jackson Harper  <jackson@ximian.com>
12027
12028         * TreeView.cs: Resize the hbar as well as the vbar on resize.
12029
12030 2004-12-01  Jackson Harper  <jackson@ximian.com>
12031
12032         * NodeLabelEditEventArgs.cs:
12033         * NodeLabelEditEventHandler.cs:
12034         * OpenTreeNodeEnumerator.cs:
12035         * TreeNode.cs:
12036         * TreeNodeCollection.cs:
12037         * TreeView.cs:
12038         * TreeViewAction.cs:
12039         * TreeViewCancelEventArgs.cs:
12040         * TreeViewCancelEventHandler.cs:
12041         * TreeViewEventArgs.cs:
12042         * TreeViewEventHandler.cs: Initial implementation.
12043
12044 2004-12-01  Ravindra <rkumar@novell.com>
12045
12046         * ListView.cs (CalculateListView): Fixed scrolling related
12047         calculations. Also, removed some debug statements from other
12048         places.
12049         * ListViewItem.cs: Changed access to 'selected' instance variable
12050         from private to internal.
12051         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
12052
12053 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
12054
12055         * ThemeWin32Classic.cs: remove cache of brush and pens for
12056         specific controls and use the global system, fixes scrollbutton
12057         bugs (for small sizes, disabled, etc)
12058         
12059         * ScrollBar.cs: does not show the thumb for very small controls
12060         (as MS) and allow smaller buttons that the regular size
12061
12062 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
12063
12064         * UpDownBase.cs: Add abstract methods for the interface.
12065         Add new virtual methods (need to be hooked up to TextEntry when it
12066         exists).
12067         Add override methods for most features.
12068         Computes the size, forces the height of the text entry.
12069
12070         * NumericUpDown.cs: Put here the current testing code.
12071
12072         * Set eol-style property on all files that do not have mixed line
12073         endings, to minimize the future problems.  There are still a few
12074         files with mixed endings, and someone should choose whether they
12075         want to move it or not.
12076
12077 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
12078
12079         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
12080         System.Colors
12081         
12082 2004-11-30  Ravindra <rkumar@novell.com>
12083
12084         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
12085         drawing and replaced use of SystemColors by theme colors.
12086         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
12087         * ListView.cs (ListViewItemCollection.Add): Throw exception when
12088         same ListViewItem is being added more than once.
12089
12090 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
12091
12092         * MonthCalendar.cs:
12093           - ControlStyles love to make the control not flicker
12094           
12095 2004-11-30  Peter Bartok  <pbartok@novell.com>
12096
12097         * CharacterCasing.cs: Added
12098
12099 2004-11-29  Peter Bartok  <pbartok@novell.com>
12100
12101         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
12102           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
12103           I am removing these files as they conflict with already completed
12104           work. While it is fantastic to get contributions to MWF, I
12105           respectfully ask that everyone please coordinate their contributions
12106           through mono-winforms-list or #mono-winforms at this time. We're
12107           explicitly avoiding stubbing and don't want controls that don't have
12108           their basic functionality implemented in svn. Please also see
12109           http://www.mono-project.com/contributing/winforms.html
12110
12111
12112 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
12113
12114         * Application.cs (ModalRun): Don't hang after exit.
12115
12116         * Theme.cs: New TreeViewDefaultSize property.
12117
12118         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
12119         with less hardcoded SystemColors constant.
12120         Implemented TreeViewDefaultSize.
12121
12122         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
12123         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
12124
12125
12126 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
12127
12128         * MonthCalendar.cs:
12129           - Fix NextMonthDate and PrevMonthDate click moving calendar
12130
12131 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
12132
12133         * MonthCalendar.cs:
12134           - Fix usage of ScrollChange Property when scrolling months
12135
12136 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
12137
12138         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
12139          - Fixes menu destroying
12140          - Support adding and removing items on already created menus
12141
12142 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
12143
12144         * MonthCalendar.cs:
12145           - Re-worked all bolded dates handling to match win32
12146         * ThemeWin32Classic.cs:
12147           - Fixed rendering with bolded dates
12148
12149 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
12150
12151         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
12152         - Horizontal scroolbar
12153         - Multicolumn
12154         - Fixes
12155
12156
12157 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
12158
12159         * MonthCalendar.cs:
12160           - Fix Usage of MaxSelectionCount from SelectionRange
12161           - Fixed Shift + Cursor Selection
12162           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
12163           - Fixed normal cursor selection to be compat with win32
12164           - Fixed Shift + Mouse Click selection
12165
12166 2004-11-24  Peter Bartok <pbartok@novell.com>
12167
12168         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
12169         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
12170         * XplatUIX11.cs:
12171           - CreatedKeyBoardMsg now updates keystate with Alt key
12172           - Added workaround for timer crash to CheckTimers, Jackson will
12173             develop a proper fix and check in later
12174           - Implemented DispatchMessage
12175           - Removed calling the native window proc from GetMessage (call
12176             now moved to DispatchMessage)
12177
12178         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
12179           the keydata (Fixes bug #69831)
12180
12181         * XplatUIWin32.cs:
12182           - (DispatchMessage): Switched to return IntPtr
12183           - Added DllImport for SetFocus
12184
12185 2004-11-24  Ravindra <rkumar@novell.com>
12186
12187         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
12188         background drawing.
12189         * ListViewItem.cs: Fixed various properties, calculations
12190         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
12191         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
12192         and some internal properties. Fixed MouseDown handler and Paint
12193         method.
12194
12195 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
12196
12197         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
12198
12199 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
12200
12201         * ContainerControl.cs: correct accidental check in of local changes
12202
12203 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
12204
12205         * ThemeWin32Classic.cs:
12206                 - Fixed Drawing Last month in grid (sometimes not showing)
12207         * MonthCalendar.cs:
12208                 - Fixed title width calculation bug (makeing title small)
12209
12210 2004-11-23  Peter Bartok <pbartok@novell.com>
12211
12212         * XplatUIX11.cs:
12213           - Added generation of WM_MOUSEHOVER event
12214           - Added missing assignment of async_method atom
12215           - Fixed WM_ERASEBKGND; now only redraws the exposed area
12216
12217 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
12218
12219         * ThemeWin32Classic.cs:
12220                 - Fixed Drawing of today circle when showtodaycircle not set
12221                 - fixed drawing of first and last month in the grid (gay dates)
12222         * MonthCalendar.cs:
12223                 - Fixed Drawing of today circle
12224                 - Fixed drawing of grady dates
12225                 - Fixed HitTest for today link when ShowToday set to false
12226                 - Fixed DefaultSize to obey ShowToday
12227
12228 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
12229
12230         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
12231         * System.Windows.Forms/Theme.cs
12232         * MonthCalendar.cs: added for MonthCalendar
12233         * SelectionRange.cs: added for MonthCalendar
12234         * Day.cs: added for MonthCalendar: added for MonthCalendar
12235         * DateRangeEventArgs.cs: added for MonthCalendar
12236         * DateRangeEventHandler.cs: added for MonthCalendar
12237
12238 2004-11-22  Ravindra <rkumar@novell.com>
12239
12240         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
12241         property.
12242
12243 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
12244
12245         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
12246         event handler.
12247         
12248         * NumericUpDown.cs: Added new implementation.
12249         * UpDownBase.cs: Added new implementation.
12250
12251         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
12252         implementations.
12253         
12254         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
12255         implementations.
12256
12257         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
12258         methods.
12259
12260 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
12261
12262         * Timer.cs  (Dispose): Should call the base dispose when
12263         overriding.
12264
12265 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
12266
12267         * ScrollBar.cs: updates thumb position when max, min or increment
12268         is changed
12269
12270 2004-11-21  Ravindra <rkumar@novell.com>
12271
12272         * ListView.cs: Implemented item selection, activation and
12273         column header style. Fixed properties to do a redraw, if
12274         required. Added support for MouseHover, DoubleClick, KeyDown
12275         and KeyUp event handling and some minor fixes.
12276         * ListViewItem.cs: Fixed constructor.
12277         * ThemeWin32Classic.cs: Improved drawing for ListView.
12278
12279 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
12280
12281         * ThemeWin32Classic.cs: initial listbox drawing code
12282         * DrawMode.cs: new enumerator
12283         * ListControl.cs: stubbed class
12284         * ListBox.cs: initial implementation
12285         * Theme.cs: new methods definitions
12286         * SelectionMode.cs: new enumerator
12287
12288 2004-11-17  Peter Bartok  <pbartok@novell.com>
12289
12290         * XplatUIWin32.cs: Added double-click events to the class style
12291         * Control.cs (WndProc):
12292           - Added handling of click-count to MouseDown/ MouseUp events.
12293           - Added handling of middle and right mouse buttons
12294           - Removed old debug code
12295
12296 2004-11-17  Jackson Harper  <jackson@ximian.com>
12297
12298         * XplatUIX11.cs: Use the new Mono.Unix namespace.
12299
12300 2004-11-17  Ravindra <rkumar@novell.com>
12301
12302         * ListView.cs: Added event handling for MouseMove/Up/Down.
12303         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
12304         * ThemeWin32Classic.cs: We need to clear the graphics context and
12305         draw column header in a proper state.
12306
12307
12308 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
12309
12310         *  Menu.cs: fixes signature
12311
12312 2004-11-16  Peter Bartok  <pbartok@novell.com>
12313
12314         * XplatUIX11.cs (GetMessage): Implemented generation of
12315           double click mouse messages
12316
12317 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
12318
12319         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
12320         not by menu
12321
12322 2004-11-11  Peter Bartok  <pbartok@novell.com>
12323
12324         * HandleData.cs: Added Visible property
12325         * XplatUIX11.cs (IsVisible): Now uses Visible property from
12326           HandleData
12327         * XplatUIX11.cs: Removed old debug leftovers
12328         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
12329         * Control.cs (WndProc): Removed old debug leftovers,
12330           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
12331           needed WM_SIZE handling
12332
12333 2004-11-11  Jackson Harper  <jackson@ximian.com>
12334
12335         * OwnerDrawPropertyBag.cs:
12336         * TreeViewImageIndexConverter.cs: Initial implementation
12337
12338 2004-11-10  Jackson Harper  <jackson@ximian.com>
12339
12340         * ThemeWin32Classic.cs:
12341         * TabControl.cs: instead of moving tabs by the slider pos just
12342         start drawing at the tab that is offset by the slider. This way
12343         scrolling always moves by exactly one tab.
12344
12345 2004-11-10  Jackson Harper  <jackson@ximian.com>
12346
12347         * TabControl.cs: You can only scroll left when the slider has
12348         already ben moved right.
12349         
12350 2004-11-10  Jackson Harper  <jackson@ximian.com>
12351
12352         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
12353         the clip area.
12354         
12355 2004-11-10  Jackson Harper  <jackson@ximian.com>
12356
12357         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
12358         clip area.
12359         
12360 2004-11-09  Jackson Harper  <jackson@ximian.com>
12361
12362         * TabControl.cs (CalcXPos): New helper method so we can determine
12363         the proper place to start drawing vertical tabs.
12364         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
12365         
12366 2004-11-09  Jackson Harper  <jackson@ximian.com>
12367
12368         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
12369         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
12370         and Bottom, left and right are illegal values for this and
12371         multiline is enabled when the alignment is set to left or right.
12372         (DrawTab): Each alignment block should draw the text itself now
12373         because Left requires special love. Also add rendering for Left
12374         aligned tabs.
12375         
12376 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
12377
12378         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
12379         does not destroy the windows, removes debugging messages
12380
12381 2004-11-09  jba  <jba-mono@optusnet.com.au>
12382
12383         * ThemeWin32Classic.cs
12384         (DrawButtonBase): Fix verticle text rect clipping in windows
12385         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
12386         rendering and incorrect text rect clipping
12387         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
12388         rendering and incorrect text rect clipping
12389         
12390 2004-11-08  Jackson Harper  <jackson@ximian.com>
12391
12392         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
12393         bottom when they are bottom aligned so the bottoms of the tabs get
12394         displayed.
12395         * TabControl.cs (DropRow): Move rows up instead of down when the
12396         tab control is bottom aligned.
12397
12398 2004-11-08 13:59  pbartok
12399
12400         * XplatUIX11.cs:
12401           - Added handling for various window styles
12402           - Added handling for popup windows
12403           - Added SetTopmost handling
12404
12405 2004-11-08 13:55  pbartok
12406
12407         * XplatUIWin32.cs:
12408           - Added argument to SetTopmost method
12409           - Fixed broken ClientToScreen function
12410
12411 2004-11-08 13:53  pbartok
12412
12413         * XplatUIStructs.cs:
12414           - Added missing WS_EX styles
12415
12416 2004-11-08 13:53  pbartok
12417
12418         * XplatUI.cs, XplatUIDriver.cs:
12419           - Added argument to SetTopmost
12420
12421 2004-11-08 13:52  pbartok
12422
12423         * X11Structs.cs:
12424           - Added XSetWindowAttributes structure
12425           - Improved XWindowAttributes structure
12426           - Added SetWindowValuemask enum
12427           - Added window creation arguments enum
12428           - Added gravity enum
12429           - Added Motif hints structure
12430           - Added various Motif flags and enums
12431           - Added PropertyMode enum for property functions
12432
12433 2004-11-08 13:50  pbartok
12434
12435         * Form.cs:
12436           - Fixed arguments for updated SetTopmost method
12437
12438 2004-11-08 13:49  pbartok
12439
12440         * ToolTip.cs:
12441           - Fixed arguments for updated SetTopmost function
12442           - Fixed usage of PointToClient
12443
12444 2004-11-08 13:44  pbartok
12445
12446         * MenuAPI.cs:
12447           - Added Clipping of children and siblings
12448
12449 2004-11-08 13:41  pbartok
12450
12451         * MainMenu.cs:
12452           - Removed SetMenuBarWindow call. We do this in Form.cs
12453
12454 2004-11-08 13:40  jackson
12455
12456         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
12457           scrolling jimmi in the correct location with bottom aligned tabs
12458
12459 2004-11-08 13:36  pbartok
12460
12461         * ContainerControl.cs:
12462           - Implemented BindingContext
12463           - Implemented ParentForm
12464
12465 2004-11-08 12:46  jackson
12466
12467         * TabControl.cs: Put bottom rendered tabs in the right location
12468
12469 2004-11-08 07:15  jordi
12470
12471         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
12472           removes dead code
12473
12474 2004-11-05 17:30  jackson
12475
12476         * TabControl.cs: When selected tabs are expanded make sure they
12477           don't go beyond the edges of the tab control
12478
12479 2004-11-05 14:57  jackson
12480
12481         * TabControl.cs: Reset show_slider so if the control is resized to
12482           a size where it is no longer needed it's not displayed anymore
12483
12484 2004-11-05 13:16  jackson
12485
12486         * TabControl.cs: Make tab pages non visible when added to the
12487           control
12488
12489 2004-11-05 12:42  jackson
12490
12491         * TabControl.cs: Implement SizeMode.FillToRight
12492
12493 2004-11-05 12:16  jackson
12494
12495         * Control.cs: Do not call CreateHandle if the handle is already
12496           created
12497
12498 2004-11-05 11:46  jackson
12499
12500         * TabControl.cs: Remove superflous call to CalcTabRows
12501
12502 2004-11-05 09:07  jackson
12503
12504         * XplatUIX11.cs: Update for Mono.Posix changes
12505
12506 2004-11-05 07:00  ravindra
12507
12508         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
12509           scrolling.
12510
12511 2004-11-04 22:47  jba
12512
12513         * ThemeWin32Classic.cs:
12514           - Fix Button rendering for FlatStyle = Flat or Popup
12515           - Fix RadioButton and CheckBox rendering when Appearance = Button
12516             (normal and flatstyle).
12517           - Correct outer rectangle color when drawing focus rectangle
12518           - Adjust button bounds to be 1 px smaller when focused
12519           - Make button not draw sunken 3d border when pushed (windows compat)
12520           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
12521           - Offset the text in RadioButton and Checkbox when being rendered as
12522           a button.
12523           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
12524           radiobuttons
12525           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
12526           - Fixed disabled text rendering for normally rendered radiobuttons
12527
12528 2004-11-04 10:26  jackson
12529
12530         * TabControl.cs: Recalculate tab rows when resizing
12531
12532 2004-11-04 07:47  jordi
12533
12534         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
12535           collection completion, drawing issues, missing features
12536
12537 2004-11-04 05:03  ravindra
12538
12539         * ScrollBar.cs:
12540                 - We need to recalculate the Thumb area when
12541                 LargeChange/maximum/minimum values are changed.
12542           - We set the 'pos' in UpdatePos() method to minimum, if it's less
12543                 than minimum. This is required to handle the case if large_change is
12544                 more than max, and use LargeChange property instead of large_change
12545                 variable.
12546           - We return max+1 when large_change is more than max, like MS does.
12547
12548 2004-11-04 04:29  ravindra
12549
12550         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
12551                 - Changed default value signatures (prefixed all with ListView).
12552                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
12553                 ListView.
12554           - Fixed calculations for ListViewItem and implemented Clone()
12555           method.
12556
12557 2004-11-04 04:26  ravindra
12558
12559         * Theme.cs, ThemeWin32Classic.cs:
12560                 - Changed default ListView values signatures (prefixed all with
12561                 ListView).
12562           - Fixed default size values for VScrollBar and HScrollBar.
12563                 - Fixed DrawListViewItem method.
12564
12565 2004-11-04 04:05  ravindra
12566
12567         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
12568
12569 2004-11-04 04:04  ravindra
12570
12571         * ImageList.cs: Implemented the missing overload for Draw method.
12572
12573 2004-11-03 19:29  jackson
12574
12575         * TabControl.cs: Handle dropping rows on selection properly
12576
12577 2004-11-03 11:59  jackson
12578
12579         * TabControl.cs: remove debug code
12580
12581 2004-11-03 11:52  jackson
12582
12583         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
12584           the scrolly widgerywoo
12585
12586 2004-11-02 13:52  jackson
12587
12588         * TabControl.cs: Resize the tab pages and tabs when the tab control
12589           is resized
12590
12591 2004-11-02 13:40  jackson
12592
12593         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
12594           selected tab to the bottom
12595
12596 2004-11-02 13:39  jackson
12597
12598         * TabPage.cs: Store the tab pages row
12599
12600 2004-11-02 12:33  jordi
12601
12602         * MenuItem.cs: fixes handle creation
12603
12604 2004-11-02 11:42  jackson
12605
12606         * TabControl.cs: signature fix
12607
12608 2004-11-02 08:56  jackson
12609
12610         * TabControl.cs: Calculate whether the tab is on an edge properly.
12611           Remove top secret debugging code
12612
12613 2004-11-01 19:57  jackson
12614
12615         * TabControl.cs: Add click handling, and proper sizing
12616
12617 2004-11-01 19:47  jackson
12618
12619         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
12620           tab controls
12621
12622 2004-11-01 19:39  jackson
12623
12624         * TabPage.cs: add internal property to store the bounds of a tab
12625           page
12626
12627 2004-10-30 04:23  ravindra
12628
12629         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
12630           values.
12631
12632 2004-10-30 04:21  ravindra
12633
12634         * ListView.cs, ListViewItem.cs: Added support for scrolling and
12635           fixed calculations.
12636
12637 2004-10-30 03:06  pbartok
12638
12639         * XplatUIX11.cs:
12640           - Removed extension of DllImported libs
12641
12642 2004-10-29 09:55  jordi
12643
12644         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
12645           navigation, itemcollection completion, menu fixes
12646
12647 2004-10-27 22:58  pbartok
12648
12649         * XplatUIX11.cs:
12650           - Now throws a nice error message when no X display could be opened
12651
12652 2004-10-26 13:51  jordi
12653
12654         * ListView.cs: removes warning
12655
12656 2004-10-26 03:55  ravindra
12657
12658         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
12659           ThemeWin32Classic.cs: Some formatting for my last checkins.
12660
12661 2004-10-26 03:36  ravindra
12662
12663         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
12664           control and default values.
12665
12666 2004-10-26 03:35  ravindra
12667
12668         * Theme.cs: Added some default values for ListView control.
12669
12670 2004-10-26 03:33  ravindra
12671
12672         * ToolBar.cs: ToolBar should use the user specified button size, if
12673           there is any. Added a size_specified flag for the same.
12674
12675 2004-10-26 03:33  ravindra
12676
12677         * ColumnHeader.cs: Added some internal members and calculations for
12678           ColumnHeader.
12679
12680 2004-10-26 03:32  ravindra
12681
12682         * ListViewItem.cs: Calculations for ListViewItem.
12683
12684 2004-10-26 03:31  ravindra
12685
12686         * ListView.cs: Added some internal members and calculations for
12687           ListView.
12688
12689 2004-10-22 13:31  jordi
12690
12691         * MenuAPI.cs: speedup menus drawing
12692
12693 2004-10-22 13:16  jackson
12694
12695         * XplatUIX11.cs: Make sure to update exposed regions when adding an
12696           expose event
12697
12698 2004-10-22 11:49  jackson
12699
12700         * Control.cs: oops
12701
12702 2004-10-22 11:41  jackson
12703
12704         * Control.cs: Check to see if the window should have its background
12705           repainted by X when drawing.
12706
12707 2004-10-22 11:31  jackson
12708
12709         * XplatUIX11.cs: When invalidating areas only use XClearArea if
12710           clear is true, this way we do not get flicker from X repainting the
12711           background
12712
12713 2004-10-22 11:28  jackson
12714
12715         * XEventQueue.cs: Queue properly
12716
12717 2004-10-21 09:38  jackson
12718
12719         * XEventQueue.cs: Fix access modifier
12720
12721 2004-10-21 09:36  jackson
12722
12723         * XEventQueue.cs: Don't loose messages
12724
12725 2004-10-21 09:22  jackson
12726
12727         * XEventQueue.cs: Don't loose messages
12728
12729 2004-10-20 04:15  jordi
12730
12731         * BootMode.cs: enum need it by SystemInfo
12732
12733 2004-10-19 21:58  pbartok
12734
12735         * XplatUIWin32.cs:
12736           - Small sanity check
12737
12738 2004-10-19 21:56  pbartok
12739
12740         * Form.cs:
12741           - Added private FormParentWindow class which acts as the container
12742             for our form and as the non-client area where menus are drawn
12743           - Added/Moved required tie-ins to Jordi's menus
12744           - Fixed/Implemented the FormStartPosition functionality
12745
12746 2004-10-19 21:52  pbartok
12747
12748         * Control.cs:
12749           - Removed unneeded locals
12750           - Added code to all size and location properties to understand and
12751             deal with the parent container of Form
12752
12753 2004-10-19 21:33  pbartok
12754
12755         * Application.cs:
12756           - Fixed to deal with new Form subclasses for menus
12757
12758 2004-10-19 17:48  jackson
12759
12760         * XEventQueue.cs: commit correct version of file
12761
12762 2004-10-19 16:50  jackson
12763
12764         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
12765
12766 2004-10-19 16:15  jordi
12767
12768         * MenuAPI.cs: MenuBarCalcSize returns the height
12769
12770 2004-10-19 08:31  pbartok
12771
12772         * Control.cs:
12773           - Added missing call to PreProcessMessage before calling OnXXXKey
12774           methods
12775
12776 2004-10-19 00:04  ravindra
12777
12778         * ToolTip.cs: Fixed constructor.
12779
12780 2004-10-18 09:31  jordi
12781
12782         * MenuAPI.cs: menuitems in menubars do not have shortcuts
12783
12784 2004-10-18 09:26  jordi
12785
12786         * MenuItem.cs: fixes MenuItem class signature
12787
12788 2004-10-18 08:56  jordi
12789
12790         * MenuAPI.cs: prevents windows from showing in the taskbar
12791
12792 2004-10-18 00:28  ravindra
12793
12794         * ToolTip.cs: Suppressed a warning message.
12795
12796 2004-10-18 00:27  ravindra
12797
12798         * Control.cs: Default value of visible property must be true.
12799
12800 2004-10-17 23:19  pbartok
12801
12802         * ToolTip.cs:
12803           - Complete implementation
12804
12805 2004-10-17 23:19  pbartok
12806
12807         * XplatUIX11.cs:
12808           - Added EnableWindow method
12809           - Added SetModal stub
12810           - Added generation of WM_ACTIVATE message (still needs testing)
12811           - Added SetTopMost stub
12812           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
12813
12814 2004-10-17 23:17  pbartok
12815
12816         * XplatUIWin32.cs:
12817           - Removed VirtualKeys to XplatUIStructs
12818           - Implemented SetTopMost method
12819           - Implemented EnableWindow method
12820           - Bugfix in ScreenToClient()
12821           - Bugfixes in ClientToScreen()
12822
12823 2004-10-17 22:51  pbartok
12824
12825         * XplatUIStructs.cs:
12826           - Added WS_EX styles to WindowStyles enumeration
12827
12828 2004-10-17 22:50  pbartok
12829
12830         * XplatUI.cs, XplatUIDriver.cs:
12831           - Added method for enabling/disabling windows
12832           - Added method for setting window modality
12833           - Added method for setting topmost window
12834
12835 2004-10-17 22:49  pbartok
12836
12837         * ThemeWin32Classic.cs:
12838           - Added ToolTip drawing code
12839
12840 2004-10-17 22:49  pbartok
12841
12842         * Theme.cs:
12843           - Added ToolTip abstracts
12844
12845 2004-10-17 22:47  pbartok
12846
12847         * Form.cs:
12848           - Fixed Form.ControlCollection to handle owner relations
12849           - Added Owner/OwnedForms handling
12850           - Implemented Z-Ordering for owned forms
12851           - Removed unneeded private overload of ShowDialog
12852           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
12853             so I hope)
12854           - Fixed Close(), had wrong default
12855           - Added firing of OnLoad event
12856           - Added some commented out debug code for Ownership handling
12857
12858 2004-10-17 22:16  pbartok
12859
12860         * Control.cs:
12861           - Fixed/implemented flat list of controls
12862
12863 2004-10-17 22:14  pbartok
12864
12865         * Application.cs:
12866           - Added code to simulate modal dialogs on Win32
12867
12868 2004-10-17 16:11  jordi
12869
12870         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
12871           mouse event
12872
12873 2004-10-17 13:39  jordi
12874
12875         * MenuAPI.cs: menu drawing fixes
12876
12877 2004-10-15 09:10  ravindra
12878
12879         * StructFormat.cs: General Enum.
12880
12881 2004-10-15 09:09  ravindra
12882
12883         * SizeGripStyle.cs: Enum for Form.
12884
12885 2004-10-15 09:08  ravindra
12886
12887         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
12888           in Theme for ListView.
12889
12890 2004-10-15 09:06  ravindra
12891
12892         * ColumnHeader.cs: Flushing some formatting changes.
12893
12894 2004-10-15 09:05  ravindra
12895
12896         * ListViewItem.cs: Implemented GetBounds method and fixed coding
12897           style.
12898
12899 2004-10-15 09:03  ravindra
12900
12901         * ListView.cs: Implemented Paint method and fixed coding style.
12902
12903 2004-10-15 07:34  jordi
12904
12905         * MenuAPI.cs: fix for X11
12906
12907 2004-10-15 07:32  ravindra
12908
12909         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
12910                 - Renamed Paint() method to Draw() for clarity. Also, moved
12911                 DrawImage() to OnPaint().
12912
12913 2004-10-15 07:25  ravindra
12914
12915         * CheckBox.cs, RadioButton.cs:
12916                 - Removed Redraw (), we get it from ButtonBase.
12917                 - Implemented Paint (), to do class specific painting.
12918
12919 2004-10-15 07:16  ravindra
12920
12921         * ButtonBase.cs:
12922                 - Redraw () is not virtual now.
12923                 - Added an internal virtual method Paint (), so that
12924                 derived classes can do their painting on their own.
12925                 - Modified OnPaint () to call Paint ().
12926
12927 2004-10-15 06:43  jordi
12928
12929         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
12930           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
12931
12932 2004-10-15 00:30  ravindra
12933
12934         * MessageBox.cs:
12935                 - MessageBox on windows does not have min/max buttons.
12936                 This change in CreateParams fixes this on Windows. We
12937                 still need to implement this windowstyle behavior in
12938                 our X11 driver.
12939
12940 2004-10-14 05:14  ravindra
12941
12942         * ToolBar.cs:
12943                 - Changed Redraw () to do a Refresh () always.
12944                 - Fixed the MouseMove event handling when mouse is pressed,
12945                 ie drag event handling.
12946                 - Replaced the usage of ToolBarButton.Pressed property to
12947                 ToolBarButton.pressed internal variable.
12948
12949 2004-10-14 05:10  ravindra
12950
12951         * ToolBarButton.cs:
12952                 - Added an internal member 'inside' to handle mouse move
12953                 with mouse pressed ie mouse drag event.
12954                 - Changed 'Pressed' property to return true only when
12955                 'inside' and 'pressed' are both true.
12956                 - Some coding style love.
12957
12958 2004-10-14 00:17  ravindra
12959
12960         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
12961           public method.
12962
12963 2004-10-14 00:15  ravindra
12964
12965         * ButtonBase.cs: Redraw () related improvements.
12966
12967 2004-10-14 00:14  ravindra
12968
12969         * MessageBox.cs: Moved InitFormSize () out of Paint method and
12970           removed unnecessary calls to Button.Show () method.
12971
12972 2004-10-13 17:50  pbartok
12973
12974         * XplatUIX11.cs:
12975           - Formatting fix
12976           - Removed destroying of window until we solve the problem of X
12977             destroying the window before us on shutdown
12978
12979 2004-10-13 16:32  pbartok
12980
12981         * ButtonBase.cs:
12982           - Now Redraws on MouseUp for FlatStyle Flat and Popup
12983
12984 2004-10-13 14:18  pbartok
12985
12986         * XplatUIX11.cs:
12987           - Added code to destroy the X window
12988
12989 2004-10-13 14:18  pbartok
12990
12991         * XplatUIWin32.cs:
12992           - Added code to destroy a window
12993
12994 2004-10-13 14:12  pbartok
12995
12996         * ButtonBase.cs:
12997           - Added the Redraw on Resize that got dropped in the last rev
12998
12999 2004-10-13 09:06  pbartok
13000
13001         * ThemeWin32Classic.cs:
13002           - Path from John BouAntoun:
13003             * Fix check rendering (centre correctly for normal style, offset
13004               correctly for FlatStyle).
13005             * Fix border color usage (use backcolor) for FlatStyle.Popup
13006             * Use checkbox.Capture instead of checkbox.is_pressed when
13007               rendering flatstyle states.
13008
13009 2004-10-12 21:48  pbartok
13010
13011         * ThemeWin32Classic.cs:
13012           - Removed all occurences of SystemColors and replaced them with the
13013             matching theme color
13014
13015 2004-10-12 21:41  pbartok
13016
13017         * ThemeWin32Classic.cs:
13018           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
13019             him using the function for flatstyle drawing
13020           - Changed functions to use the new version of CPDrawBorder3D
13021
13022 2004-10-12 21:15  pbartok
13023
13024         * ControlPaint.cs:
13025           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
13026             match MS documentation. They need to return defined colors if the
13027             passed color matches the configured control color. Thanks to John
13028             BouAntoun for pointing this out.
13029
13030 2004-10-12 20:57  pbartok
13031
13032         * Control.cs:
13033           - Fix from John BouAntoun: Raise ForeColorChanged event when text
13034             color is changed
13035
13036 2004-10-12 20:46  pbartok
13037
13038         * CheckBox.cs:
13039           - Fix from John BouAntoun: Now properly sets the Appearance property
13040
13041 2004-10-12 20:45  pbartok
13042
13043         * ThemeWin32Classic.cs:
13044           - Fixes from John BouAntoun: now handles forecolors and backcolors
13045             for flatstyle rendered controls much better; It also fixes normal
13046             checkbox rendering when pushed or disabled.
13047
13048 2004-10-08 02:50  jordi
13049
13050         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
13051           work
13052
13053 2004-10-07 08:56  jordi
13054
13055         * ThemeWin32Classic.cs: Removes deletion of cached brushes
13056
13057 2004-10-06 03:59  jordi
13058
13059         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
13060           XplatUIWin32.cs: removes warnings from compilation
13061
13062 2004-10-05 12:23  jackson
13063
13064         * RadioButton.cs: Fix ctor
13065
13066 2004-10-05 11:10  pbartok
13067
13068         * MessageBox.cs:
13069           - Partial implementation by Benjamin Dasnois
13070
13071 2004-10-05 10:15  jackson
13072
13073         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
13074           by John BouAntoun
13075
13076 2004-10-05 03:07  ravindra
13077
13078         * ToolBar.cs:
13079                 - Removed a private method, Draw ().
13080                 - Fixed the ButtonDropDown event handling.
13081                 - Fixed MouseMove event handling.
13082
13083 2004-10-05 03:04  ravindra
13084
13085         * ThemeWin32Classic.cs:
13086                 - Added DrawListView method and ListViewDefaultSize property.
13087                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
13088                 - Changed DOS style CRLF to Unix format (dos2unix).
13089
13090 2004-10-05 03:03  ravindra
13091
13092         * Theme.cs:
13093                 - Added DrawListView method and ListViewDefaultSize property.
13094
13095 2004-10-05 02:42  ravindra
13096
13097         * ToolBarButton.cs: Added an internal member dd_pressed to handle
13098           clicks on DropDown arrow.
13099
13100 2004-10-04 22:56  jackson
13101
13102         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
13103           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
13104           Control handle the buffers, derived classes should not have to
13105           CreateBuffers themselves.
13106
13107 2004-10-04 21:20  jackson
13108
13109         * StatusBar.cs: The control handles resizing the buffers now.
13110
13111 2004-10-04 21:18  jackson
13112
13113         * Control.cs: When resizing the buffers should be invalidated. This
13114           should be handled in Control not in derived classes.
13115
13116 2004-10-04 14:45  jackson
13117
13118         * TabPage.cs: oops
13119
13120 2004-10-04 02:14  pbartok
13121
13122         * LeftRightAlignment.cs:
13123           - Initial check-in
13124
13125 2004-10-04 01:09  jordi
13126
13127         * ThemeWin32Classic.cs: fixes right button position causing right
13128           button not showing on horizontal scrollbars
13129
13130 2004-10-02 13:12  pbartok
13131
13132         * XplatUIX11.cs:
13133           - Simplified the Invalidate method by using an X call instead of
13134             generating the expose ourselves
13135           - Added an expose when the window background is changed
13136           - Implemented ClientToScreen method
13137
13138 2004-10-02 13:08  pbartok
13139
13140         * XplatUIWin32.cs:
13141           - Added Win32EnableWindow method (test for implementing modal
13142           dialogs)
13143           - Added ClientToScreen method and imports
13144
13145 2004-10-02 13:07  pbartok
13146
13147         * XplatUI.cs, XplatUIDriver.cs:
13148           - Added ClientToScreen coordinate translation method
13149
13150 2004-10-02 13:06  pbartok
13151
13152         * KeyPressEventArgs.cs:
13153           - Fixed access level for constructor
13154
13155 2004-10-02 13:06  pbartok
13156
13157         * NativeWindow.cs:
13158           - Changed access level for the window_collection hash table
13159
13160 2004-10-02 13:05  pbartok
13161
13162         * Form.cs:
13163           - Added KeyPreview property
13164           - Added Menu property (still incomplete, pending Jordi's menu work)
13165           - Implemented ProcessCmdKey
13166           - Implemented ProcessDialogKey
13167           - Implemented ProcessKeyPreview
13168
13169 2004-10-02 13:02  pbartok
13170
13171         * Control.cs:
13172           - Added private method to get the Control object from the window
13173           handle
13174           - Implemented ContextMenu property
13175           - Implemented PointToScreen
13176           - Implemented PreProcessMessage
13177           - Implemented IsInputChar
13178           - Implemented IsInputKey
13179           - Implemented ProcessCmdKey
13180           - Completed ProcessKeyEventArgs
13181           - Fixed message loop to call the proper chain of functions on key
13182           events
13183           - Implemented ProcessDialogChar
13184           - Implemented ProcessDialogKey
13185           - Implemented ProcessKeyMessage
13186           - Implemented ProcessKeyPreview
13187           - Added RaiseDragEvent stub (MS internal method)
13188           - Added RaiseKeyEvent stub (MS internal method)
13189           - Added RaiseMouseEvent stub (MS Internal method)
13190           - Added RaisePaintEvent stub (MS Internal method)
13191           - Added ResetMouseEventArgs stub (MS Internal method)
13192           - Implemented RtlTranslateAlignment
13193           - Implemented RtlTranslateContent
13194           - Implemented RtlTranslateHorizontal
13195           - Implemented RtlTranslateLeftRight
13196           - Added generation of KeyPress event
13197
13198 2004-10-02 05:57  ravindra
13199
13200         * ListViewItem.cs: Added attributes.
13201
13202 2004-10-02 05:32  ravindra
13203
13204         * ListView.cs: Added attributes.
13205
13206 2004-10-01 11:53  jackson
13207
13208         * Form.cs: Implement the Close method so work on MessageBox can
13209           continue.
13210
13211 2004-09-30 14:06  pbartok
13212
13213         * XplatUIX11.cs:
13214           - Bug fixes
13215
13216 2004-09-30 11:34  jackson
13217
13218         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
13219
13220 2004-09-30 07:26  ravindra
13221
13222         * ListViewItemConverter.cs: Converter for ListViewItem.
13223
13224 2004-09-30 07:26  ravindra
13225
13226         * SortOrder.cs: Enum for ListView control.
13227
13228 2004-09-30 07:25  ravindra
13229
13230         * ColumnHeader.cs: Supporting class for ListView control.
13231
13232 2004-09-30 07:24  ravindra
13233
13234         * ListView.cs, ListViewItem.cs: Initial implementation.
13235
13236 2004-09-30 07:20  ravindra
13237
13238         * ItemActivation.cs: Enum for ListView Control.
13239
13240 2004-09-29 20:29  pbartok
13241
13242         * XplatUIX11.cs:
13243           - Added lookup of pixel value for background color; tries to get a
13244             color 'close' to the requested color, it avoids having to create a
13245             colormap.  Depending on the display this could mean the used color
13246             is slightly off the desired color. Might have to change it to a more
13247             resource intensive colormap approach, but it will work as a
13248           workaround to avoid red screens.
13249
13250 2004-09-29 14:27  jackson
13251
13252         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
13253
13254 2004-09-28 12:44  pbartok
13255
13256         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
13257           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
13258           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
13259           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
13260           TrackBar.cs, VScrollBar.cs:
13261           - Streamlined Theme interfaces:
13262             * Each DrawXXX method for a control now is passed the object for
13263               the control to be drawn in order to allow accessing any state the
13264               theme might require
13265
13266             * ControlPaint methods for the theme now have a CP prefix to avoid
13267               name clashes with the Draw methods for controls
13268
13269             * Every control now retrieves it's DefaultSize from the current
13270             theme
13271
13272 2004-09-28 12:17  jackson
13273
13274         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
13275           drawing
13276
13277 2004-09-24 14:57  jackson
13278
13279         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
13280           Gives us a nice little performance boost.
13281
13282 2004-09-24 12:02  jackson
13283
13284         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
13285           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
13286           Control and supporting classes. Initial checkin
13287
13288 2004-09-23 13:08  jackson
13289
13290         * Form.cs: Temp build fixage
13291
13292 2004-09-23 01:39  ravindra
13293
13294         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
13295           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
13296           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
13297           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
13298           EventHandlers needed by ListView Control.
13299
13300 2004-09-22 14:12  pbartok
13301
13302         * ScrollableControl.cs:
13303           - Implemented DockPadding property
13304           - Implemented AutoScroll property
13305           - Implemented AutoScrollMargin property
13306           - Implemented AutoScrollMinSize property
13307           - Implemented AutoScrollPosition property
13308           - Implemented DisplayRectangle property (still incomplete)
13309           - Implemented CreateParams property
13310           - Implemented HScroll property
13311           - Implemented VScroll property
13312           - Implemented OnVisibleChanged property
13313
13314 2004-09-22 14:09  pbartok
13315
13316         * Form.cs:
13317           - Added Form.ControllCollection class
13318           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
13319             RemoveOwnedForm (still incomplete, missing on-top and common
13320             minimize/maximize behaviour)
13321           - Added StartPosition property (still incomplete, does not use when
13322             creating the form)
13323           - Added ShowDialog() methods (still incomplete, missing forcing the
13324             dialog modal)
13325
13326 2004-09-22 14:05  pbartok
13327
13328         * Application.cs:
13329           - Added message loop for modal dialogs
13330
13331 2004-09-22 14:02  pbartok
13332
13333         * GroupBox.cs:
13334           - Fixed wrong types for events
13335
13336 2004-09-22 14:00  pbartok
13337
13338         * Shortcut.cs, FormWindowState.cs:
13339           - Fixed wrong values
13340
13341 2004-09-22 12:01  jackson
13342
13343         * Control.cs: Text is never null
13344
13345 2004-09-20 22:14  pbartok
13346
13347         * XplatUIWin32.cs:
13348           - Fixed accessibility level for Idle handler
13349
13350 2004-09-20 18:54  jackson
13351
13352         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
13353           XplatUIX11.cs: New message loop that uses poll so we don't get a
13354           busy loop
13355
13356 2004-09-17 10:43  pbartok
13357
13358         * ScrollBar.cs:
13359           - Fixed behaviour of arrow buttons. Now properly behaves like
13360             Buttons (and like Microsoft's scrollbar arrow buttons)
13361
13362 2004-09-17 10:14  pbartok
13363
13364         * ScrollBar.cs:
13365           - Added missing release of keyboard/mouse capture
13366
13367 2004-09-17 06:18  jordi
13368
13369         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
13370           Theme.cs: Very early menu support
13371
13372 2004-09-16 17:45  pbartok
13373
13374         * XplatUIWin32.cs:
13375           - Fixed sending a window to the front
13376           - Added overload for SetWindowPos to avoid casting
13377
13378 2004-09-16 17:44  pbartok
13379
13380         * Control.cs:
13381           - Added SendToBack and BringToFront methods
13382
13383 2004-09-16 07:00  ravindra
13384
13385         * Copyright: Added Novell URL.
13386
13387 2004-09-16 07:00  ravindra
13388
13389         * ToolBar.cs: Invalidate should be done before redrawing.
13390
13391 2004-09-15 21:19  ravindra
13392
13393         * ColumnHeaderStyle.cs: Enum for ListView Control.
13394
13395 2004-09-15 21:18  ravindra
13396
13397         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
13398           ListView Control.
13399
13400 2004-09-13 18:26  jackson
13401
13402         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
13403           properly
13404
13405 2004-09-13 18:13  jackson
13406
13407         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
13408           a second thread and post messages into the main threads message
13409           queue. This makes timing much more consistent. Both win2K and XP
13410           have a minimum timer value of 15 milliseconds, so we now do this
13411           too.
13412
13413 2004-09-13 15:18  pbartok
13414
13415         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
13416           XplatUIX11.cs:
13417           - Added Z-Ordering methods
13418
13419 2004-09-13 10:56  pbartok
13420
13421         * Form.cs:
13422           - Fixed #region names
13423           - Moved properties and methods into their proper #regions
13424
13425 2004-09-13 10:51  pbartok
13426
13427         * Form.cs:
13428           - Added Accept and CancelButton properties
13429           - Added ProcessDialogKey() method
13430
13431 2004-09-13 08:18  pbartok
13432
13433         * IWindowTarget.cs:
13434           - Initial check-in
13435
13436 2004-09-10 21:50  pbartok
13437
13438         * Control.cs:
13439           - Added DoDragDrop() [incomplete]
13440           - Properly implemented 'Visible' handling
13441           - Added SetVisibleCore()
13442           - Implemented FindChildAtPoint()
13443           - Implemented GetContainerControl()
13444           - Implemented Hide()
13445
13446 2004-09-10 19:28  pbartok
13447
13448         * Control.cs:
13449           - Moved methods into their appropriate #regions
13450           - Reordered methods within regions alphabetically
13451
13452 2004-09-10 18:57  pbartok
13453
13454         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
13455           - Added method to retrieve text from window
13456
13457 2004-09-10 18:56  pbartok
13458
13459         * Control.cs:
13460           - Moved some internal functions into the internal region
13461           - Implemented FontHeight
13462           - Implemented RenderRightToLeft
13463           - Implemented ResizeRedraw
13464           - Implemented ShowFocusCues
13465           - Implemented ShowKeyboardCues
13466           - Implemented FromChildHandle
13467           - Implemented FromHandle
13468           - Implemented IsMnemonic
13469           - Implemented ReflectMessage
13470           - All public and protected Static Methods are now complete
13471
13472 2004-09-10 16:54  pbartok
13473
13474         * Control.cs:
13475           - Implemented remaining missing public instance properties
13476           - Alphabetized some out of order properties
13477
13478 2004-09-10 05:51  ravindra
13479
13480         * PictureBox.cs: Added a check for null image.
13481
13482 2004-09-10 00:59  jordi
13483
13484         * GroupBox.cs: remove cvs tag
13485
13486 2004-09-09 05:25  ravindra
13487
13488         * ToolBar.cs: Make redraw accessible from ToolBarButton.
13489
13490 2004-09-09 05:23  ravindra
13491
13492         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
13493           parent redraw.
13494
13495 2004-09-09 02:28  pbartok
13496
13497         * ThemeWin32Classic.cs:
13498           - Improve disabled string look
13499
13500 2004-09-09 01:15  jordi
13501
13502         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
13503           args and handler
13504
13505 2004-09-08 23:56  ravindra
13506
13507         * ItemBoundsPortion.cs: It's enum, not a class!
13508
13509 2004-09-08 23:47  ravindra
13510
13511         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
13512           Enums for Form.
13513
13514 2004-09-08 21:13  ravindra
13515
13516         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
13517           ListView control.
13518
13519 2004-09-08 21:03  ravindra
13520
13521         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
13522           avoid crash.
13523
13524 2004-09-08 21:01  ravindra
13525
13526         * ScrollableControl.cs: Removed unreachable code.
13527
13528 2004-09-08 06:45  jordi
13529
13530         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
13531
13532 2004-09-08 01:00  jackson
13533
13534         * XplatUIX11.cs: Only run the timers when updating the message
13535           queue. This effectively gives X messages a higher priority then
13536           timer messages. Timers still need love though
13537
13538 2004-09-07 14:01  jackson
13539
13540         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
13541           this for us and the handle is no longer valid.
13542
13543 2004-09-07 13:59  jackson
13544
13545         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
13546           loop that manages to not crash. TODO: Add poll and cleanup timers
13547
13548 2004-09-07 11:12  jordi
13549
13550         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
13551
13552 2004-09-07 03:40  jordi
13553
13554         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
13555           fixes, methods, multiple links
13556
13557 2004-09-06 06:55  jordi
13558
13559         * Control.cs: Caches ClientRectangle rectangle value
13560
13561 2004-09-05 02:03  jordi
13562
13563         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
13564           certain situations
13565
13566 2004-09-04 11:10  jordi
13567
13568         * Label.cs: Refresh when font changed
13569
13570 2004-09-02 16:24  pbartok
13571
13572         * Control.cs:
13573           - Added sanity check to creation of double buffer bitmap
13574
13575 2004-09-02 16:24  pbartok
13576
13577         * ButtonBase.cs:
13578           - Fixed selection of text color
13579           - Fixed handling of resize event; now properly recreates double
13580             buffering bitmap
13581           - Added missing assignment of TextAlignment
13582           - Added proper default for TextAlignment
13583
13584 2004-09-02 14:26  pbartok
13585
13586         * RadioButton.cs:
13587           - Added missing RadioButton.RadioButtonAccessibleObject class
13588
13589 2004-09-02 14:26  pbartok
13590
13591         * Control.cs:
13592           - Added missing Control.ControlAccessibleObject class
13593           - Started to implement Select()ion mechanisms, still very incomplete
13594
13595 2004-09-02 14:25  pbartok
13596
13597         * AccessibleObject.cs:
13598           - Added missing methods
13599
13600 2004-09-02 14:23  pbartok
13601
13602         * AccessibleNavigation.cs, AccessibleSelection.cs:
13603           - Initial check-in
13604
13605 2004-09-02 10:32  jordi
13606
13607         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
13608           pool for pens, brushes, and hatchbruses
13609
13610 2004-09-01 15:30  jackson
13611
13612         * StatusBar.cs: Fix typo
13613
13614 2004-09-01 14:44  pbartok
13615
13616         * RadioButton.cs:
13617           - Fixed state
13618
13619 2004-09-01 14:39  pbartok
13620
13621         * Button.cs, RadioButton.cs:
13622           - Functional initial check-in
13623
13624 2004-09-01 14:01  pbartok
13625
13626         * CheckBox.cs:
13627           - Added missing default
13628           - Added missing region mark
13629
13630 2004-09-01 09:10  jordi
13631
13632         * Label.cs: fixes method signatures, new methods, events, fixes
13633           autosize
13634
13635 2004-09-01 07:19  jordi
13636
13637         * Control.cs: Init string variables with an empty object
13638
13639 2004-09-01 04:20  jordi
13640
13641         * Control.cs: fires OnFontChanged event
13642
13643 2004-08-31 20:07  pbartok
13644
13645         * ButtonBase.cs:
13646           - Enabled display of strings
13647
13648 2004-08-31 20:05  pbartok
13649
13650         * Form.cs:
13651           - Added (partial) implementation of DialogResult; rest needs to be
13652             implemented when the modal loop code is done
13653
13654 2004-08-31 19:55  pbartok
13655
13656         * CheckBox.cs:
13657           - Fixed to match the removal of the needs_redraw concept
13658
13659 2004-08-31 19:55  pbartok
13660
13661         * ButtonBase.cs:
13662           - Removed the rather odd split between 'needs redraw' and redrawing
13663           - Now handles the events that require regeneration (ambient
13664             properties and size)
13665
13666 2004-08-31 19:41  pbartok
13667
13668         * Control.cs:
13669           - Added firing of BackColorChanged event
13670           - Added TopLevelControl property
13671           - Fixed handling of WM_ERASEBKGRND message
13672
13673 2004-08-31 12:49  pbartok
13674
13675         * ButtonBase.cs:
13676           - Removed debug
13677           - Minor fixes
13678
13679 2004-08-31 12:48  pbartok
13680
13681         * CheckBox.cs:
13682           - Finished (famous last words)
13683
13684 2004-08-31 04:35  jordi
13685
13686         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
13687           scrolling bugs, adds new methods
13688
13689 2004-08-30 14:42  pbartok
13690
13691         * CheckBox.cs:
13692           - Implemented CheckBox drawing code
13693
13694 2004-08-30 14:42  pbartok
13695
13696         * ButtonBase.cs:
13697           - Made Redraw() and CheckRedraw() virtual
13698           - Improved mouse up/down/move logic to properly track buttons
13699
13700 2004-08-30 09:44  pbartok
13701
13702         * CheckBox.cs:
13703           - Updated to fix broken build. Not complete yet.
13704
13705 2004-08-30 09:28  pbartok
13706
13707         * CheckState.cs:
13708           - Initial checkin
13709
13710 2004-08-30 09:17  pbartok
13711
13712         * Appearance.cs:
13713           - Initial check-in
13714
13715 2004-08-27 16:12  ravindra
13716
13717         * ToolBarButton.cs: Added TypeConverter attribute.
13718
13719 2004-08-27 16:07  ravindra
13720
13721         * ImageIndexConverter.cs: Implemented.
13722
13723 2004-08-27 14:17  pbartok
13724
13725         * Control.cs:
13726           - Removed unneeded stack vars
13727           - First attempt to fix sizing issues when layout is suspended
13728
13729 2004-08-25 15:35  jordi
13730
13731         * ScrollBar.cs: more fixes to scrollbar
13732
13733 2004-08-25 14:04  ravindra
13734
13735         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
13736           Added the missing divider code and grip for ToolBar Control.
13737
13738 2004-08-25 13:20  pbartok
13739
13740         * Control.cs:
13741           - Control now properly passes the ambient background color to child
13742             controls
13743
13744 2004-08-25 13:20  jordi
13745
13746         * ScrollBar.cs: small bug fix regarding bar position
13747
13748 2004-08-25 12:33  pbartok
13749
13750         * Timer.cs:
13751           - Now only calls SetTimer or KillTimer if the enabled state has
13752           changed
13753
13754 2004-08-25 12:33  pbartok
13755
13756         * XplatUIWin32.cs:
13757           - Fixed timer handling, now seems to work
13758           - Improved error message for window creation
13759
13760 2004-08-25 12:32  pbartok
13761
13762         * Control.cs:
13763           - Fixed generation of MouseUp message
13764
13765 2004-08-25 12:29  jordi
13766
13767         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
13768           and fixes for progressbar
13769
13770 2004-08-24 18:43  ravindra
13771
13772         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
13773           in ToolBar control.
13774
13775 2004-08-24 17:15  pbartok
13776
13777         * Panel.cs:
13778           - Added #region
13779           - Added missing events
13780           - Alphabetized
13781
13782 2004-08-24 17:14  pbartok
13783
13784         * StatusBar.cs, PictureBox.cs:
13785           - Now uses Control's CreateParams
13786
13787 2004-08-24 16:36  pbartok
13788
13789         * XplatUIX11.cs:
13790           - Fixed background color handling
13791           - Fixed sending of enter/leave events on a grab
13792
13793 2004-08-24 16:35  pbartok
13794
13795         * X11Structs.cs:
13796           - Refined definitions for CrossingEvent
13797
13798 2004-08-24 12:37  jordi
13799
13800         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
13801           formmating, methods signature, and adds missing events
13802
13803 2004-08-24 12:24  jordi
13804
13805         * Control.cs: fire OnEnabledChanged event
13806
13807 2004-08-24 11:17  pbartok
13808
13809         * XplatUIWin32.cs:
13810           - Implemented SetTimer() and KillTimer()
13811
13812 2004-08-24 11:16  pbartok
13813
13814         * XplatUIX11.cs:
13815           - Now uses Remove instead of Add to kill the timer
13816
13817 2004-08-24 10:16  jackson
13818
13819         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
13820           picture boxes in the theme now. Draw picture box borders and obey
13821           sizing modes
13822
13823 2004-08-24 05:49  jackson
13824
13825         * Timer.cs: Remove top secret debugging code
13826
13827 2004-08-24 05:34  jackson
13828
13829         * PictureBox.cs: Temp hack to make picture boxes draw their full
13830           image
13831
13832 2004-08-24 05:29  jackson
13833
13834         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
13835           XplatUIX11.cs: Move timers to the driver level. On X they are
13836           queued by the driver and checked on idle.
13837
13838 2004-08-24 01:07  jackson
13839
13840         * XplatUIX11.cs: Use a queue for async messages instead of passing
13841           them as ClientMessages since that was totally broken. Also simply
13842           check for events and return an idle message if none are found. This
13843           gives us an idle handler, and prevents deadlocking when no messages
13844           are in the queue.
13845
13846 2004-08-23 18:19  ravindra
13847
13848         * XplatUIWin32.cs: Removed the unwanted destructor.
13849
13850 2004-08-23 17:27  pbartok
13851
13852         * ButtonBase.cs:
13853           - Finishing touches. Works now, just needs some optimizations.
13854
13855 2004-08-23 16:53  jordi
13856
13857         * ScrollBar.cs: small fix
13858
13859 2004-08-23 16:45  pbartok
13860
13861         * Application.cs:
13862           - Removed debug output
13863           - Simplifications
13864
13865 2004-08-23 16:43  jordi
13866
13867         * ScrollBar.cs: [no log message]
13868
13869 2004-08-23 16:10  pbartok
13870
13871         * Form.cs:
13872           - Fixed handling of WM_CLOSE message
13873           - Removed debug output
13874
13875 2004-08-23 16:09  pbartok
13876
13877         * Application.cs:
13878           - Added handling of Idle event
13879           - Added handling of form closing
13880           - Fixed reporting of MessageLoop property
13881           - Removed some unneeded code, should provide a bit of a speedup
13882
13883 2004-08-23 15:22  pbartok
13884
13885         * Control.cs:
13886           - Added InitLayout() method
13887           - Added code to properly perform layout when Anchor or Dock property
13888             is changed
13889           - Changed 'interpretation' of ResumeLayout. MS seems to have a
13890             LAMESPEC, tried to do it in a way that makes sense
13891
13892 2004-08-23 14:10  jordi
13893
13894         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
13895           properties and methods
13896
13897 2004-08-23 13:55  pbartok
13898
13899         * Control.cs:
13900           - Properly fixed Jordi's last fix
13901           - Now uses Cursor's Position property instead of calling XplatUI
13902           directly
13903
13904 2004-08-23 13:44  jordi
13905
13906         * PaintEventHandler.cs: Adding missing attribute
13907
13908 2004-08-23 13:39  pbartok
13909
13910         * Cursor.cs:
13911           - Implemented Position property
13912
13913 2004-08-23 13:39  pbartok
13914
13915         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
13916           - Added method to move mouse cursor
13917
13918 2004-08-23 13:39  pbartok
13919
13920         * XplatUIX11.cs:
13921           - Fixed setting of background color
13922           - Added method to move mouse cursor
13923
13924 2004-08-23 13:16  jordi
13925
13926         * Control.cs: avoids null exception
13927
13928 2004-08-22 17:46  jackson
13929
13930         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
13931           PictureBox
13932
13933 2004-08-22 17:40  jackson
13934
13935         * XplatUIX11.cs: Add some missing locks
13936
13937 2004-08-22 15:10  pbartok
13938
13939         * Control.cs, Form.cs:
13940           - Removed OverlappedWindow style from Control, instead it's default
13941             now is child
13942           - Made form windows OverlappedWindow by default
13943
13944 2004-08-22 13:34  jackson
13945
13946         * ScrollBar.cs: Update the position through the Value property so
13947           the OnValueChanged event is raised.
13948
13949 2004-08-22 12:04  pbartok
13950
13951         * SWF.csproj:
13952           - Added Cursor.cs and UserControl.cs
13953
13954 2004-08-22 12:03  pbartok
13955
13956         * Cursor.cs:
13957           - Started implementation, not usable yet
13958
13959 2004-08-22 12:00  pbartok
13960
13961         * UserControl.cs:
13962           - Implemented UserControl (complete)
13963
13964 2004-08-21 19:20  ravindra
13965
13966         * ToolBar.cs: Correcting the formatting mess of VS.NET.
13967
13968 2004-08-21 18:49  ravindra
13969
13970         * ToolBar.cs: Probably this completes the missing attributes in
13971           toolbar control.
13972
13973 2004-08-21 18:03  ravindra
13974
13975         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
13976           Fixed toolbar control signatures.
13977
13978 2004-08-21 16:32  pbartok
13979
13980         * LinkLabel.cs:
13981           - Signature Fixes
13982
13983 2004-08-21 16:30  pbartok
13984
13985         * Label.cs:
13986           - Signature fixes
13987
13988 2004-08-21 16:19  pbartok
13989
13990         * Control.cs, Label.cs:
13991           - Signature fixes
13992
13993 2004-08-21 15:57  pbartok
13994
13995         * ButtonBase.cs:
13996           - Added loads of debug output for development
13997           - Fixed typo in method name
13998
13999 2004-08-21 15:52  pbartok
14000
14001         * ToolBarButtonClickEventArgs.cs:
14002           - Added missing base class
14003
14004 2004-08-21 14:53  pbartok
14005
14006         * Control.cs:
14007           - Updated to match new GrabWindow signature
14008
14009 2004-08-21 14:51  pbartok
14010
14011         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
14012           - Added method to get default display size
14013
14014 2004-08-21 14:23  pbartok
14015
14016         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
14017           - Added method to query current grab state
14018           - Added argument to allow confining a grab to a window
14019
14020 2004-08-21 14:22  pbartok
14021
14022         * Keys.cs:
14023           - Added [Flags] attribute so that modifiers can be used in bitwise
14024           ops
14025
14026 2004-08-21 14:21  pbartok
14027
14028         * TrackBar.cs, ScrollBar.cs:
14029           - Replaced direct XplatUI calls with their Control counterpart
14030
14031 2004-08-21 13:32  pbartok
14032
14033         * Control.cs:
14034           - Implemented Created property
14035
14036 2004-08-21 13:28  pbartok
14037
14038         * Control.cs:
14039           - Implemented ContainsFocus
14040
14041 2004-08-21 13:26  pbartok
14042
14043         * Control.cs:
14044           - Implemented CausesValidation
14045
14046 2004-08-21 13:21  pbartok
14047
14048         * Control.cs:
14049           - Implemented CanFocus
14050           - Implemented CanSelect
14051           - Implemented Capture
14052
14053 2004-08-21 12:35  pbartok
14054
14055         * XplatUIWin32.cs:
14056           - Fixed bug with Async message handling
14057           - Implemented getting the ModifierKeys
14058
14059 2004-08-21 12:32  jackson
14060
14061         * AsyncMethodResult.cs: Make sure we have the mutex before we
14062           release it. Fixes BeginInvoke on windows
14063
14064 2004-08-21 11:31  pbartok
14065
14066         * XplatUIWin32.cs, XplatUIX11.cs:
14067           - Drivers now return proper mouse state
14068
14069 2004-08-21 10:54  jackson
14070
14071         * Control.cs: Implement EndInvoke
14072
14073 2004-08-21 10:48  jackson
14074
14075         * Timer.cs: Remove unneeded finalizer
14076
14077 2004-08-20 19:52  ravindra
14078
14079         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
14080           in mouse event handling in the ToolBar control.
14081
14082 2004-08-20 19:50  ravindra
14083
14084         * ImageList.cs: Changed draw method to use the arguments passed in
14085           to draw the image.
14086
14087 2004-08-20 18:58  pbartok
14088
14089         * XplatUIStructs.cs:
14090           - Added private message for async communication
14091
14092 2004-08-20 17:38  ravindra
14093
14094         * Control.cs: Made RightToLeft property virtual and removed a
14095           Console.WriteLine.
14096
14097 2004-08-20 14:39  jordi
14098
14099         * ThemeGtk.cs: use style_attach
14100
14101 2004-08-20 14:39  pbartok
14102
14103         * XplatUIWin32.cs:
14104           - Added jackson's Async code from X11 to Win32
14105
14106 2004-08-20 14:09  pbartok
14107
14108         * SWF.csproj:
14109           - Added all new files
14110
14111 2004-08-20 14:09  pbartok
14112
14113         * Control.cs:
14114           - Added call to set window background color
14115
14116 2004-08-20 14:03  pbartok
14117
14118         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
14119           - Added method for setting the window background
14120
14121 2004-08-20 14:02  pbartok
14122
14123         * XplatUIWin32.cs:
14124           - Added method for setting the background color
14125           - Added handling for erasing the window background
14126
14127 2004-08-20 13:45  jordi
14128
14129         * TrackBar.cs: fixes timer, new properties and methods
14130
14131 2004-08-20 13:34  jackson
14132
14133         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
14134           correct thread
14135
14136 2004-08-20 13:22  jackson
14137
14138         * Timer.cs: Timer Tick events are now handed through Controls Async
14139           mechanism so the callbacks are executed in the same thread as X
14140
14141 2004-08-20 13:19  jackson
14142
14143         * XplatUIDriver.cs: Expose functionality to send async messages
14144           through the driver
14145
14146 2004-08-20 13:18  jackson
14147
14148         * Control.cs: Implement Begininvoke
14149
14150 2004-08-20 13:14  jackson
14151
14152         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
14153           messages through the driver
14154
14155 2004-08-20 13:12  jackson
14156
14157         * XplatUIX11.cs: Lock before all X operations. Also added Async
14158           method functionality through XSendEvent
14159
14160 2004-08-20 13:11  jackson
14161
14162         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
14163           This will screw up on 64 bit systems)
14164
14165 2004-08-20 13:10  jackson
14166
14167         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
14168           Async messages through X/Win32
14169
14170 2004-08-19 19:39  pbartok
14171
14172         * XplatUIX11.cs:
14173           - Updated code to match new HandleData.DeviceContext type
14174
14175 2004-08-19 19:38  pbartok
14176
14177         * HandleData.cs:
14178           - Made DeviceContext a generic object to allow usage from various
14179           drivers
14180           - Added support for queueing Windows messages
14181
14182 2004-08-19 19:37  pbartok
14183
14184         * XplatUIWin32.cs:
14185           - Added generation of MouseEnter, MouseLeave and MouseHover events
14186           - Added cleanup on EndPaint
14187
14188 2004-08-19 19:17  pbartok
14189
14190         * Control.cs:
14191           - Added handling of WM_MOUSEHOVER
14192           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
14193           code
14194
14195 2004-08-19 18:55  jordi
14196
14197         * ThemeGtk.cs: fixes button order
14198
14199 2004-08-19 18:12  jordi
14200
14201         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
14202
14203 2004-08-19 17:09  pbartok
14204
14205         * Control.cs:
14206           - Added Right property
14207           - Added RightToLeft property
14208
14209 2004-08-19 16:27  jordi
14210
14211         * ThemeGtk.cs: experimental GTK theme support
14212
14213 2004-08-19 16:26  jordi
14214
14215         * ITheme.cs, Theme.cs: move themes from an interface to a class
14216
14217 2004-08-19 16:25  jordi
14218
14219         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
14220           theme enhancaments
14221
14222 2004-08-19 16:04  pbartok
14223
14224         * XplatUIX11.cs:
14225           - Added colormap basics
14226           - Added a way to re-initialize with a different display handle
14227           - Fixed setting of the window background color
14228           - Added various X11 imports related to colors and colormaps
14229
14230 2004-08-19 15:51  pbartok
14231
14232         * X11Structs.cs:
14233           - Removed packing hints (Paolo suggested this a while back)
14234           - fixed colormap type
14235           - Added default Atom types
14236           - Added Screen and color structs and enums
14237
14238 2004-08-19 15:39  pbartok
14239
14240         * ImageList.cs:
14241           - Added missing Draw() method
14242           - Added missing RecreateHandle event
14243
14244 2004-08-19 15:30  pbartok
14245
14246         * Form.cs:
14247           - Added handling of WM_CLOSE
14248
14249 2004-08-18 13:16  jordi
14250
14251         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
14252           a table
14253
14254 2004-08-18 09:56  jordi
14255
14256         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
14257
14258 2004-08-17 15:31  ravindra
14259
14260         * SWF.csproj: Updated project.
14261
14262 2004-08-17 15:25  pbartok
14263
14264         * Control.cs:
14265           - Drawing improvement; don't call UpdateBounds if we are not visible
14266             (or have been minimized)
14267
14268 2004-08-17 15:24  pbartok
14269
14270         * XplatUIWin32.cs:
14271           - Finished IsVisible
14272           - Added Win32GetWindowPlacement
14273
14274 2004-08-17 15:08  jackson
14275
14276         * Panel.cs: Initial checkin of the Panel
14277
14278 2004-08-17 14:25  pbartok
14279
14280         * Control.cs:
14281           - Fixed broken handling of default window sizes
14282
14283 2004-08-17 13:29  jackson
14284
14285         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
14286           has a large startup time.
14287
14288 2004-08-17 10:25  jackson
14289
14290         * HandleData.cs: union areas properly
14291
14292 2004-08-17 10:12  jackson
14293
14294         * HandleData.cs: union areas properly
14295
14296 2004-08-16 20:00  ravindra
14297
14298         * ToolBar.cs, ToolBarButton.cs: Added attributes.
14299
14300 2004-08-16 18:48  ravindra
14301
14302         * ToolBar.cs: Added attributes.
14303
14304 2004-08-16 17:17  ravindra
14305
14306         * SWF.csproj: Updated project.
14307
14308 2004-08-16 17:16  jackson
14309
14310         * XplatUIX11.cs: Check for more expose events before sending a
14311           WM_PAINT so they can all be grouped together. This makes dragging a
14312           window across another window redraw in a sane way.
14313
14314 2004-08-16 15:47  pbartok
14315
14316         * Control.cs:
14317           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
14318             support OnMouseEnter/Leave()
14319           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
14320             exposure handling
14321
14322 2004-08-16 15:46  pbartok
14323
14324         * XplatUIStructs.cs, XplatUIX11.cs:
14325           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
14326           OnMouseEnter/Leave()
14327
14328 2004-08-16 15:34  jackson
14329
14330         * XplatUIX11.cs: Group multiple expose events in HandleData, make
14331           sure messages get the message field set to WM_NULL if they are not
14332           handled.
14333
14334 2004-08-16 15:24  jackson
14335
14336         * HandleData.cs: HandleData is used for storing message information
14337           for window handles
14338
14339 2004-08-15 17:23  ravindra
14340
14341         * ColorDepth.cs: Added attribute.
14342
14343 2004-08-15 17:23  ravindra
14344
14345         * SWF.csproj: Updated project for ToolBar Control.
14346
14347 2004-08-15 17:20  ravindra
14348
14349         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
14350           control and also dos2unix format.
14351
14352 2004-08-15 17:13  ravindra
14353
14354         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
14355           ToolBarButtonClickEventArgs.cs,
14356           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
14357           ToolBarTextAlign.cs: First Implementation of ToolBar control.
14358
14359 2004-08-15 15:31  pbartok
14360
14361         * ButtonBase.cs:
14362           - First (mostly) working version
14363
14364 2004-08-13 16:15  pbartok
14365
14366         * Control.cs:
14367           - Fixed Anchor default
14368
14369 2004-08-13 15:43  pbartok
14370
14371         * Control.cs:
14372           - Changed GetCursorPos signature
14373
14374 2004-08-13 15:42  pbartok
14375
14376         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
14377           - Changed signature for GetCursorPos
14378
14379 2004-08-13 15:25  pbartok
14380
14381         * XplatUIX11.cs:
14382           - Cleanup
14383           - Fixed resizing/exposure handling
14384
14385 2004-08-13 15:22  jordi
14386
14387         * ThemeWin32Classic.cs: removes redundant code and fixes issues
14388           with tickposition
14389
14390 2004-08-13 14:55  jordi
14391
14392         * TrackBar.cs: change from wndproc to events
14393
14394 2004-08-13 13:00  jordi
14395
14396         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
14397           XplatUIX11.cs: implements PointToClient (ScreenToClient)
14398
14399 2004-08-13 12:53  pbartok
14400
14401         * XplatUIWin32.cs:
14402           - Changed GetWindowPos to also provide client area size
14403           - Fixed broken prototypes for several win32 functions
14404
14405 2004-08-13 12:53  pbartok
14406
14407         * XplatUI.cs, XplatUIDriver.cs:
14408           - Changed GetWindowPos to also provide client area size
14409
14410 2004-08-13 12:52  pbartok
14411
14412         * XplatUIX11.cs:
14413           - Added generation of WM_POSCHANGED
14414           - Changed GetWindowPos to also provide client area size
14415
14416 2004-08-13 12:52  pbartok
14417
14418         * Control.cs:
14419           - Added Dispose() and destructor
14420           - Fixed resizing and bounds calculation
14421           - Fixed Layout
14422           - Added memory savings for invisible windows
14423
14424 2004-08-13 12:46  jordi
14425
14426         * TrackBar.cs: adds timer and grap window
14427
14428 2004-08-13 10:25  jackson
14429
14430         * Timer.cs: SWF Timer
14431
14432 2004-08-12 16:59  pbartok
14433
14434         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
14435           - Implemented method to get current mouse position
14436
14437 2004-08-12 14:29  jordi
14438
14439         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
14440           enhancement, fix mouse problems, highli thumb, etc
14441
14442 2004-08-12 13:31  pbartok
14443
14444         * Control.cs:
14445           - Fixed Anchoring bugs
14446
14447 2004-08-12 13:01  jackson
14448
14449         * StatusBar.cs: Don't forget things
14450
14451 2004-08-12 12:54  jackson
14452
14453         * ThemeWin32Classic.cs: Handle owner draw status bars
14454
14455 2004-08-12 12:54  jackson
14456
14457         * StatusBar.cs: Implement missing properties, events, and methods.
14458           Handle mouse clicking
14459
14460 2004-08-12 10:19  jackson
14461
14462         * StatusBarPanelClickEventArgs.cs,
14463           StatusBarPanelClickEventHandler.cs: Classes for handling status
14464           bar panel click events
14465
14466 2004-08-12 10:10  jackson
14467
14468         * Control.cs: Add missing properties
14469
14470 2004-08-12 09:46  pbartok
14471
14472         * BindingsManagerBase.cs:
14473           - Name changed to BindingManagerBase.cs
14474
14475 2004-08-12 09:25  jordi
14476
14477         * ScrollableControl.cs: calls ctrlbase instead of exeception
14478
14479 2004-08-11 16:28  pbartok
14480
14481         * InputLanguageChangingEventArgs.cs:
14482           - Never check in before compiling. Fixes the last check-in
14483
14484 2004-08-11 16:26  pbartok
14485
14486         * InputLanguageChangingEventArgs.cs:
14487           - More signature fixes
14488
14489 2004-08-11 16:20  pbartok
14490
14491         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
14492           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
14493           ImageListStreamer.cs, InputLanguage.cs,
14494           InputLanguageChangedEventArgs.cs,
14495           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
14496           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
14497           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
14498           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
14499           - Signature fixes
14500
14501 2004-08-11 16:16  pbartok
14502
14503         * Application.cs:
14504           - Fixed Signature
14505           - Added .Net 1.1 method
14506
14507 2004-08-11 15:25  pbartok
14508
14509         * SWF.csproj:
14510           - Fixed BindingManagerBase.cs filename
14511
14512 2004-08-11 15:22  pbartok
14513
14514         * BindingManagerBase.cs:
14515           - Was checked in with wrong filename
14516
14517 2004-08-11 14:50  pbartok
14518
14519         * SWF.csproj:
14520           - Updated
14521
14522 2004-08-11 13:41  jordi
14523
14524         * XplatUIWin32.cs: Fixes ClientRect
14525
14526 2004-08-11 13:19  pbartok
14527
14528         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
14529           XplatUIX11.cs:
14530           - We had SetWindowPos and MoveWindow to set window positions and
14531             size, removed MoveWindow. We have GetWindowPos, so it made sense to
14532             keep SetWindowPos as matching counterpart
14533           - Added some X11 sanity checking
14534
14535 2004-08-11 12:59  pbartok
14536
14537         * Control.cs:
14538           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
14539             (It seems that SetBounds is just a front for SetBoundsCore and
14540              SetBoundsCore updates the underlying window system and
14541              UpdateBounds is responsible for updating the variables associated
14542              with the Control and sending the events)
14543           - Major cleanup of Size handling; we now have two sizes, client_size
14544             and bounds. Bounds defines the window with decorations, client_size
14545             without them.
14546
14547 2004-08-11 12:55  pbartok
14548
14549         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
14550           - Added method to calculate difference between decorated window and
14551             raw client area
14552
14553 2004-08-11 12:54  pbartok
14554
14555         * Label.cs:
14556           - Forcing redraw on resize
14557
14558 2004-08-11 11:43  pbartok
14559
14560         * ImageList.cs:
14561           - Removed disposing of the actual images when the list is disposed
14562
14563 2004-08-11 09:13  pbartok
14564
14565         * Control.cs:
14566           - Now properly reparents windows
14567
14568 2004-08-11 08:37  pbartok
14569
14570         * Control.cs:
14571           - Duh!
14572
14573 2004-08-11 07:47  pbartok
14574
14575         * Control.cs:
14576           - Rewrote the collection stuff. Might not be as fast now, not
14577             keeping the number of children around and accessible directly, but
14578             it's more straightforward
14579
14580 2004-08-11 07:44  pbartok
14581
14582         * AccessibleObject.cs:
14583           - Fixed to match ControlCollection rewrite
14584
14585 2004-08-11 07:43  pbartok
14586
14587         * ImageList.cs:
14588           - Added missing creation of the collection list
14589
14590 2004-08-10 20:08  jackson
14591
14592         * StatusBar.cs: Get the paint message from WndProc
14593
14594 2004-08-10 19:31  jackson
14595
14596         * ThemeWin32Classic.cs: Create Brushes as little as possible
14597
14598 2004-08-10 19:20  jackson
14599
14600         * UICues.cs: Add Flags attribute
14601
14602 2004-08-10 19:19  jackson
14603
14604         * StatusBarPanel.cs: Signature cleanup
14605
14606 2004-08-10 19:10  jackson
14607
14608         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
14609           Initial implementation of status bar item drawing
14610
14611 2004-08-10 17:27  jordi
14612
14613         * TrackBar.cs: add missing methods, properties, and restructure to
14614           hide extra ones
14615
14616 2004-08-10 16:24  jackson
14617
14618         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
14619           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
14620           attribute
14621
14622 2004-08-10 13:21  jordi
14623
14624         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
14625           enhancements and standarize on win colors defaults
14626
14627 2004-08-10 12:52  jackson
14628
14629         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
14630           ThemeWin32Classic.cs: Implement DrawItem functionality
14631
14632 2004-08-10 12:47  jordi
14633
14634         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
14635
14636 2004-08-10 12:32  jordi
14637
14638         * Control.cs: throw ontextchange event
14639
14640 2004-08-10 11:43  pbartok
14641
14642         * Control.cs:
14643           - Added more to the still unfinished Dock/Anchor layout code
14644
14645 2004-08-10 11:39  pbartok
14646
14647         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
14648           - Added GetWindowPos method
14649
14650 2004-08-10 11:36  pbartok
14651
14652         * XplatUIWin32.cs:
14653           - Implemented several methods
14654
14655 2004-08-10 09:47  jackson
14656
14657         * TrackBar.cs: Allow control to handle buffering
14658
14659 2004-08-10 09:41  jackson
14660
14661         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
14662
14663 2004-08-10 09:24  jackson
14664
14665         * Label.cs, LinkLabel.cs: Let Control handle buffering.
14666
14667 2004-08-10 09:09  jackson
14668
14669         * StatusBar.cs: Let Control handle all the buffering.
14670
14671 2004-08-10 09:08  jackson
14672
14673         * Control.cs: Control will now handle the buffering code, so each
14674           control does not have to implement this.
14675
14676 2004-08-10 08:34  jackson
14677
14678         * XplatUIDriver.cs: Use default colors from the theme
14679
14680 2004-08-09 17:12  pbartok
14681
14682         * ImageList.cs:
14683           - Fixed several bugs Ravindra pointed out
14684
14685 2004-08-09 16:11  pbartok
14686
14687         * Control.cs:
14688           - Added incomplete dock layout code
14689           - Added support for mouse wheel
14690
14691 2004-08-09 16:09  pbartok
14692
14693         * XplatUIX11.cs:
14694           - Added handling for middle and right mousebutton
14695           - Added handling for mouse wheel
14696           - Added handling for key state and mouse state and position
14697           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
14698           messages
14699
14700 2004-08-09 15:40  jackson
14701
14702         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
14703           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
14704           checkin
14705
14706 2004-08-09 15:37  jackson
14707
14708         * StatusBar.cs: Initial implementation of StatusBar
14709
14710 2004-08-09 15:36  jackson
14711
14712         * ITheme.cs: Add support for drawing status bar and getting status
14713           bar item sizes
14714
14715 2004-08-09 15:35  pbartok
14716
14717         * MouseButtons.cs:
14718           - Fixed values
14719
14720 2004-08-09 15:34  jackson
14721
14722         * ThemeWin32Classic.cs: Add support for drawing status bar and get
14723           status bar item sizes
14724
14725 2004-08-09 15:21  jackson
14726
14727         * ThemeWin32Classic.cs: Use known colors for default control
14728           colours
14729
14730 2004-08-09 15:12  jackson
14731
14732         * ThemeWin32Classic.cs: Make the default font static, it is static
14733           in control so this doesn't change functionality and creating fonts
14734           is sloooooow.
14735
14736 2004-08-09 14:56  pbartok
14737
14738         * X11Structs.cs:
14739           - Added GrabMode enum
14740
14741 2004-08-09 14:55  pbartok
14742
14743         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
14744           - Removed Run method, was only required for initial development
14745
14746 2004-08-09 14:51  pbartok
14747
14748         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
14749           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
14750           capture
14751
14752 2004-08-09 13:48  pbartok
14753
14754         * XplatUIX11.cs:
14755           - Fixed default sizing for child windows
14756
14757 2004-08-09 12:56  pbartok
14758
14759         * XplatUIX11.cs:
14760           - Added generation of WM_DESTROY message
14761           - Added handling of window manager induced shutdown
14762
14763 2004-08-09 11:31  jackson
14764
14765         * ThemeWin32Classic.cs: New names for control properties
14766
14767 2004-08-09 11:25  jackson
14768
14769         * Control.cs: Use new color names
14770
14771 2004-08-09 11:02  jackson
14772
14773         * XplatUI.cs: Get default window properties from the theme
14774
14775 2004-08-09 11:01  jackson
14776
14777         * ITheme.cs: The theme engine now controls default window
14778           properties
14779
14780 2004-08-09 11:00  jackson
14781
14782         * ThemeWin32Classic.cs: Add default window color properties
14783
14784 2004-08-09 10:17  jackson
14785
14786         * ThemeWin32Classic.cs: Use correct default back color
14787
14788 2004-08-09 10:05  jackson
14789
14790         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
14791           the theme now.
14792
14793 2004-08-09 09:56  jackson
14794
14795         * XplatUI.cs: Remove defaults, these are handled by the theme now.
14796
14797 2004-08-09 09:54  jackson
14798
14799         * Control.cs: Get default properties from the theme.
14800
14801 2004-08-09 09:53  jackson
14802
14803         * ITheme.cs: Themes now handle default control properties
14804
14805 2004-08-09 09:53  jackson
14806
14807         * ThemeWin32Classic.cs: Themes now handle default control
14808           properties so coloring will be consistent
14809
14810 2004-08-08 16:54  jordi
14811
14812         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
14813
14814 2004-08-08 15:08  jordi
14815
14816         * XplatUIX11.cs: fixes keyboard crash
14817
14818 2004-08-08 13:47  jordi
14819
14820         * Label.cs: add cvs header info
14821
14822 2004-08-08 12:09  jackson
14823
14824         * ThemeWin32Classic.cs: Add pen_buttonface
14825
14826 2004-08-08 11:52  jordi
14827
14828         * Label.cs, LinkLabel.cs: [no log message]
14829
14830 2004-08-08 11:34  jordi
14831
14832         * ThemeWin32Classic.cs: Use Windows Standard Colours
14833
14834 2004-08-07 17:32  jordi
14835
14836         * TrackBar.cs: throw exceptions of invalid enums values
14837
14838 2004-08-07 17:31  jordi
14839
14840         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
14841           draw method name
14842
14843 2004-08-07 16:56  jackson
14844
14845         * HorizontalAlignment.cs: Initial checkin
14846
14847 2004-08-07 13:16  jordi
14848
14849         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
14850           methods
14851
14852 2004-08-07 13:05  jordi
14853
14854         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
14855           GetSysColor defines
14856
14857 2004-08-06 18:01  pbartok
14858
14859         * ThemeWin32Classic.cs:
14860           - Fixed some rounding issues with float/int
14861
14862 2004-08-06 18:00  jackson
14863
14864         * DockStyle.cs, AnchorStyles.cs:
14865
14866                   Add flags and serializable attributes.
14867
14868 2004-08-06 17:46  pbartok
14869
14870         * XplatUIX11.cs:
14871           - Implemented GetParent
14872
14873 2004-08-06 17:18  pbartok
14874
14875         * TrackBar.cs:
14876           - Fixed some rounding issues with float/int
14877
14878 2004-08-06 17:17  pbartok
14879
14880         * X11Structs.cs, XplatUIX11.cs:
14881           - Fixed Refresh and Invalidate
14882
14883 2004-08-06 15:30  pbartok
14884
14885         * Control.cs, X11Structs.cs, XplatUIX11.cs:
14886           - Fixed recursive loop when resizing
14887           - Improved/fixed redrawing on expose messages
14888
14889 2004-08-06 09:53  jordi
14890
14891         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
14892           keyboard navigation
14893
14894 2004-08-06 08:02  pbartok
14895
14896         * X11Structs.cs, XplatUIX11.cs:
14897           - Fixed reparenting
14898           - Fixed window border creation
14899
14900 2004-08-05 15:38  pbartok
14901
14902         * XplatUIX11.cs:
14903           - Attempted fix for reparenting problems
14904
14905 2004-08-04 15:14  pbartok
14906
14907         * Control.cs:
14908           - Fixed Invalidation bug (calculated wrong client area)
14909           - Added ClientSize setter
14910
14911 2004-08-04 15:13  pbartok
14912
14913         * Form.cs:
14914           - Added AutoScale properties
14915
14916 2004-08-04 15:13  pbartok
14917
14918         * SWF.csproj:
14919           - Added latest files
14920
14921 2004-08-04 14:11  pbartok
14922
14923         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
14924           XplatUIX11.cs:
14925           - Added Invalidate handling
14926
14927 2004-08-03 17:09  jordi
14928
14929         * XplatUIDriver.cs: fixes spelling mistake
14930
14931 2004-07-27 09:53  jordi
14932
14933         * TrackBar.cs: fixes trackbar events, def classname, methods
14934           signature
14935
14936 2004-07-27 09:29  jordi
14937
14938         * ScrollBar.cs: fixes scrollbar events
14939
14940 2004-07-27 04:38  jordi
14941
14942         * Control.cs: changes to be able to run winforms samples
14943
14944 2004-07-26 11:42  jordi
14945
14946         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
14947           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
14948
14949 2004-07-26 05:41  jordi
14950
14951         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
14952           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
14953           implementation
14954
14955 2004-07-22 09:22  jordi
14956
14957         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
14958           check link overlapping, implement events, and fixes
14959
14960 2004-07-21 10:28  jordi
14961
14962         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
14963
14964 2004-07-21 10:19  jordi
14965
14966         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
14967           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
14968           LinkLabelLinkClickedEventArgs.cs,
14969           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
14970           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
14971           implementation
14972
14973 2004-07-19 13:09  jordi
14974
14975         * Control.cs, Label.cs: label control re-written: added missing
14976           functionlity, events, and properties
14977
14978 2004-07-19 10:49  jordi
14979
14980         * Control.cs: fixes SetBounds logic
14981
14982 2004-07-19 01:29  jordi
14983
14984         * Control.cs: Call RefreshWindow only if the window has created
14985
14986 2004-07-15 14:05  pbartok
14987
14988         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
14989           - Implemented ImageList and ImageList.ImageCollection classes
14990           - Added ColorDepth enumeration
14991           - Updated SWF VS.Net project
14992
14993 2004-07-15 11:06  jordi
14994
14995         * XplatUIStructs.cs: added MsgButons enum
14996
14997 2004-07-15 11:03  jordi
14998
14999         * Control.cs: added basic mouse handeling events
15000
15001 2004-07-15 03:38  jordi
15002
15003         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
15004           Vertical TrackBar control implementation
15005
15006 2004-07-13 09:33  jordi
15007
15008         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
15009
15010 2004-07-13 09:31  jordi
15011
15012         * Control.cs, Form.cs: commit: new properties and fixes form size
15013           problems
15014
15015 2004-07-09 14:13  miguel
15016
15017         * ProgressBar.cs: Spelling
15018
15019 2004-07-09 11:25  pbartok
15020
15021         * ProgressBar.cs:
15022           - Removed usage of Rectangle for drawing. Miguel pointed out it's
15023           faster
15024
15025 2004-07-09 11:17  miguel
15026
15027         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
15028
15029                 * ProgressBar.cs: Fixed spelling for `block'
15030
15031                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
15032                 style guidelines.
15033
15034                 Avoid using the += on rect.X, that exposed a bug in the compiler.
15035
15036 2004-07-08 23:21  pbartok
15037
15038         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
15039           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
15040           BaseCollection.cs, Binding.cs, BindingContext.cs,
15041           BindingMemberInfo.cs, BindingsCollection.cs,
15042           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
15043           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
15044           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
15045           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
15046           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
15047           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
15048           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
15049           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
15050           FrameStyle.cs, GiveFeedbackEventArgs.cs,
15051           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
15052           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
15053           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
15054           InputLanguageChangedEventArgs.cs,
15055           InputLanguageChangedEventHandler.cs,
15056           InputLanguageChangingEventArgs.cs,
15057           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
15058           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
15059           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
15060           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
15061           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
15062           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
15063           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
15064           QueryAccessibilityHelpEventArgs.cs,
15065           QueryAccessibilityHelpEventHandler.cs,
15066           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
15067           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
15068           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
15069           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
15070           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
15071           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
15072           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
15073           XplatUIX11.cs, lang.cs:
15074           - Initial check-in
15075