654488b0e5943fb6f5efa9617b2bdaf4172847c6
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2006-06-02  Jackson Harper  <jackson@ximian.com>
2
3         * TreeView.cs: If the selected node isn't changed when we get
4         focus update the previously selected node so that we see the
5         selection box.
6
7 2006-06-02  Mike Kestner  <mkestner@novell.com>
8
9         * ComboBox.cs: restructure grab and general mouse event handling.
10         Make the composite control raise mouse events like it was a single
11         control for leaves/enters/motion/up/down events.  fix dropdown list
12         coordinate mangling and refactor it into the scrollbar subclass to
13         reduce code duplication.  Fixes #78282 #78361 and #78457.
14
15 2006-06-02  Mike Kestner  <mkestner@novell.com>
16
17         * ScrollBar.cs: remove Capture setting/clearing, as it happens
18         automatically in the Control.WndProc.
19
20 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21
22         * FileDialog.cs: fix crash when running SharpChess, which sets the
23         FilterIndex to 2 with only one Filter.
24
25 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26
27         * ToolBar.cs: add SizeSpecified property.
28         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
29         try to figure out our real size, otherwise fallback to what the
30         container says.
31
32 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
33
34         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
35         * Control.cs (WndProc): MS always calls the DefWndProc to pass
36           up the event
37
38 2006-06-01  Mike Kestner  <mkestner@novell.com>
39
40         * ListView.cs: revamp the focus management in ListView.  It still
41         causes churn of LostFocus/GotFocus emissions on clicks, but it's
42         better than not handling focus at all.  Will revisit when pdb feels
43         the general focus handling is solid.  Fixes #78526.
44
45 2006-06-01  Jackson Harper  <jackson@ximian.com>
46
47         * TreeView.cs: Set the default border style in the constructor.
48         - Move painting to use OnPaintInternal instead of capturing
49         WM_PAINT, this is the correct way of doing things
50         - UpdateBelow shouldn't invalidate the scrollbar area
51         - Cap the top on update below in case the node was above the top
52         of the viewport rectangle.
53         - ExpandBelow and Collapse below need to obey Begin/End Update.
54         * TreeNode.cs: Make is_expanded internal so the treenode
55         collection can change it without firing the whole event chain.
56         * TreeNodeCollection.cs: When clearing all the child nodes make
57         sure to recalc the visible order.
58         - Improve algo for remove the top node
59
60 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
61
62         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
63           SendMessage directly calling window procedures, which in turn might
64           call SetFocus()
65
66 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
67
68         * Control.cs: Don't handle WM_SETFOCUS if the same window already
69           has focus (works around X11 sending a FocusIn after our SetFocus)
70         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
71
72 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
73
74         * Mime.cs: Fix for the NET_2_0 build.
75           NameValueCollection needs StringComparer now.
76
77 2006-05-31  Chris Toshok  <toshok@ximian.com>
78
79         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
80         return (via an out parameter) the starting X of the column.
81         (UpdateVisibleColumn): track change to FromPixelToColumn.
82         (HitTest): add a ColumnResize case here.
83         (DrawResizeLine): new function, probably poorly named.
84
85         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
86         only need to keep one reference.
87         (set_ListManager): same.
88         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
89         Also, add support for HitTestType.ColumnResize.
90         (OnMouseMove): add column resize behavior here, and change the
91         cursor to the correct one as we move around the datagrid.
92         (OnMouseUp): terminate the column resize if we're resizing.
93         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
94         for the current cell.
95         (ConnectListManagerEvents): use cached_currencymgr.
96         (DisconnectListManagerEvents): fill this in, using
97         cached_currencymgr.
98         (SetCurrentCell): remove cached_currencymgr_events handling.
99         (SetDataMember): only call DisconnectListManagerEvents if
100         cached_currencymgr is != null.
101         (SetDataSource): same.
102         (OnListManagerCurrentChanged): cached_currencymgr_events ->
103         cached_currencymgr.
104
105 2006-05-31  Jackson Harper  <jackson@ximian.com>
106
107         * BindingManagerBase.cs: Remove somedebug code that creeped into
108         SVN.
109         * TreeNode.cs: We get the indent level dynamically right now, so
110         don't track it as a member.
111         * TreeNodeCollection.cs: Make sure all nodes added to the list
112         have parents, treeviews/topnodes setup properly.
113         - Don't attempt to track indent level.
114
115 2006-05-30  Jackson Harper  <jackson@ximian.com>
116
117         * BindingContext.cs: Create the currency manager tables here.
118         This allows us to more easily create null tables (when bad data
119         members are used), and more easily create related currency
120         managers.
121         * CurrencyManager.cs: All the table creation stuff is done by the
122         binding context now.
123         - Current should throw an exception if listposition is -1.
124         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
125         been bound yet.
126
127 2006-05-30  Mike Kestner  <mkestner@novell.com>
128
129         * ListView.cs: allow reexpansion of zero-width column headers.
130         Fixes #78528.
131
132 2006-05-28  Chris Toshok  <toshok@ximian.com>
133
134         * CurrencyManager.cs (get_Current): after the late binding
135         listposition = -1 fix, we need to guard against it here and return
136         null, otherwise we raise an exception (which is swallowed
137         elsewhere, and breaks datagrid databinding.)
138
139 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
140
141         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
142           than WM_SYSKEY, don't throw if get something unexpected (#78507)
143
144 2006-05-26  Jackson Harper  <jackson@ximian.com>
145
146         * ControlPaint.cs:
147         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
148         values, it's faster and it's all we care about (we don't care if
149         the names aren't equal).
150         * KeyboardLayouts.cs: Eliminate some dead code.
151         - Lazy init things
152         * X11Keyboard.cs: Lazy init keyboard detection.
153         - Cleanup access modifiers a little.
154
155 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
156
157         * XplatUIX11.cs: Once again, attempting to get layout just right.
158
159 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
160
161         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
162           the sizes of each link section, that will result in sizes that
163           match DrawString's layout (Fixes #78391)
164
165 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
166
167         * FileDialog.cs: If AddExtension property is true autocomplete the
168           extensions in SaveFileDialog correctly. Fixes bug #78453.
169           Set MyNetwork and MyComputer to "C:\" for windows. This should
170           fix part 8 of bug #78446 for now.
171
172 2006-05-26  Chris Toshok  <toshok@ximian.com>
173
174         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
175         invalidate the current row header if we need to, but presumably
176         we'll invalidate the row corrsponding to the bounds or
177         editingControl.
178         (GridHScrolled): switch back to this method, as it's part of the
179         public api.  *sigh*.
180         (GridVScrolled): same.
181         (OnMouseWheel): hack up something that more or less works.  Call
182         GridHScrolled/GridVScrolled directly, instead of duplicating much
183         of their code here.
184         (EnsureCellVisibility): reinstate a bunch of this code, since we
185         can't just set the scrollbar Value and expect to do all the work
186         in the ValueChanged handler.  Also, Call Update() after scrolling
187         in one direction so the other XplatX11.ScrollWindow call has the
188         proper stuff in the proper places.
189         (EditCell): set is_editing to true before calling .Edit.
190
191         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
192         don't bother comparing first.
193         (OnKeyPress): call grid.ColumnStartedEditing before calling
194         base.OnKeyPress.  this will set is_changing and invalidate the row
195         header if necessary.
196         (ProcessKeyMessage): for WM_CHAR messages, call
197         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
198         and WM_KEYDOWN.
199         
200         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
201         it's done in the DataGrid.
202         (NextState): call grid.ColumnStartedEditing, which takes care of
203         invalidating the row header (and setting is_changing).
204
205         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
206         here.  it's done in the DataGrid.
207
208 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
209
210         * Control.cs: allow changing the cursor when the mouse position is
211         out of bounds but Capture is set.
212         * LinkLabel.cs: handle the case when the mouse button is pressed on the
213         linklabel but released somewhere else.
214
215 2006-05-25  Jackson Harper  <jackson@ximian.com>
216
217         * TreeView.cs: When we get focus if there is no selected node make
218         it the top node
219         - Remove some uneeded setup code from Draw.
220         * TreeNodeCollection.cs: If the tree doesn't have a top node when
221         a new node is inserted make the new node the top.
222         * XplatUIX11.cs:
223         * Timer.cs: Use Utc time so that no local time zone stuff needs to
224         be used (should be faster).
225         
226 2006-05-25  Chris Toshok  <toshok@ximian.com>
227
228         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
229         problem with the last commit.
230
231 2006-05-25  Chris Toshok  <toshok@ximian.com>
232
233         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
234         need the invalidate call here, while scrolling right-to-left via
235         the left arrow key (i.e. moving the editing cell while scrolling).
236
237         * DataGrid.cs (.ctor): remove the initialization of
238         ctrl_pressed/shift_pressed.  We no longer track them using key
239         up/down handlers, but by using Control.ModifierKeys.  Also, switch
240         to using ValueChanged handlers on the scrollbars instead of
241         Scrolled event handlers.  This simplifies a bunch of the scrolling
242         code.
243         (GridHValueChanged): rename from GridHScrolled, and change it to
244         work with the new event args.
245         (GridVValueChanged): same.
246         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
247         (OnMouseWheel): actually scroll the datagrid.  Don't change the
248         selected cell.
249         (ProcessGridKey): correct all the keyboard navigation stuff I
250         could find.  Ctrl up/down/left/right/home/end work now.
251         (EnsureCellVisibility): correct method name spelling.  Also,
252         simplify this a touch by not explicitly calling the
253         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
254         scrollbar value.
255         (OnKeyUpDG): no need for this method now.
256         
257 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
258
259         * LinkLabel.cs: display the OverrideCursor when hovering the label.
260         Fixes bug #78392.
261
262 2006-05-25  Chris Toshok  <toshok@ximian.com>
263
264         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
265         r61019.
266
267 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
268
269         * Application.cs: Moved setting of is_modal and closing to before
270           we create the control, to allow the event handlers called as a
271           result of creation affect closing. Also removed Gonzalo's previous
272           change to setting DialogResult, the behaviour has been moved to 
273           Form.ShowDialog()
274         * Form.cs: 
275           - ShowDialog(): Removed explicit creation of the form, let RunLoop
276             handle it instead
277           - ShowDialog(): If no dialog result is set, we need to return Cancel
278           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
279             the close is cancelled
280
281 2006-05-25  Jackson Harper  <jackson@ximian.com>
282
283         * StatusBar.cs: We only need to update the sizes of the other
284         panels when we have auto size contents.  Also we are only updating
285         the contents of the panel, not the borders, so compensate for the
286         border width (TODO: get this width from the theme somehow).
287         * TreeView.cs: Scrollable is true by default
288         - Use invalidate instead of refresh where needed
289         - Factor the scrollable value into scrollbar updating
290         - Update the scrollbars if the Scrollable property is altered
291         - Update the selected node if its ImageIndex is changed
292         - Handle null nodes in UpdateNode (mainly so we don't have to
293         check if selected is null when updating it
294         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
295         are factored into the visible count
296         - Use VisibleCount for clarity in the code
297         - When the font is changed we need to recurse through all the
298         nodes and invalidate their sizes
299         
300 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
301
302         * Application.cs: set the DialogResult to fixed when the main form is
303         hidden or destroyed while being modal.
304
305 2006-05-25  Miguel de Icaza  <miguel@novell.com>
306
307         * Theme.cs: Use Tangoified messagebox icons. 
308
309         (GetSizedResourceImage): Also cope with width = 0 and do not
310         trigger a warning in that case (0 means "give me your icon from
311         the resouce, no special size needed).
312
313 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
314
315         * Application.cs: Leave runloop if the the main modal form is 
316           hidden (fixes #78484)
317
318 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
319
320         * BindingContext.cs : reject null datasource in Contains() and
321           Item[].
322         * CurrencyManager.cs : check data_member validity when data_source
323           is dataset. When it is late binding, the initial position is -1.
324
325 2006-05-24  Jackson Harper  <jackson@ximian.com>
326
327         * TreeNodeCollection.cs: Dont't recalculate the visible order on
328         inserted nodes that aren't visible.  This changes the
329         max_visible_order which confuses scrollbar settings.
330         - Use the enumerator to get the prev node instead of duplicating
331         code.
332         * TreeView.cs: Use new method for setting scrollbar values
333         - Don't set the bounds every time the scrollbar is updated
334         - When updating below the root node use an invalidate instead of a
335         refresh to prevent the child controls (scrollbars) from being
336         refreshed. (UpdateBelow still needs to be reworked anyways).
337         - Reenable SetBottom now that visible orders are set correctly,
338         added some debug code incase we ever get bad values there again.
339         - Set the scrollbar max to 2 less then the max value, this
340         compensates for the max value being one above the node count, and
341         for scrollbars adding one extra "notch".
342         - When drawing image nodes if there is an imagelist we draw the
343         first image in the list if the supplied image index is out of the
344         image list's bounds.
345         
346 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
347
348         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
349           we receive a size change from the WM (Fixes #78503)
350
351 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
352
353         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
354           rectangle (Fixes #78501)
355
356 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
357
358         * ButtonBase.cs: 
359           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
360             as a bitfield.
361           - Fixed MouseMove to no longer switch pressed state unless the left
362             mouse button is pressed. Atsushi provided the original patch (#78485)
363           
364 2006-05-24  Jackson Harper  <jackson@ximian.com>
365
366         * ScrollBar.cs: New internal methods that allow us to change a
367         couple values on the scrollbar (the most common case is maximum
368         and large change) without getting multiple invalidates.
369
370 2006-05-24  Chris Toshok  <toshok@ximian.com>
371
372         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
373         (Edit): save off the original state in oldState, and set
374         grid.is_editing to true.
375         (OnKeyDown): abort editing if escape is pressed.  also, call
376         NextState if space is pressed.
377         (OnMouseDown): call NextState.
378         (NextState): factor out shared code from OnKeyDown and OnMouseDown
379         here.  Also, only invalidate the row header once (on the initial
380         is_changing switch) to save on redraws.
381
382 2006-05-24  Chris Toshok  <toshok@ximian.com>
383
384         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
385         if the value in the cell is different than it was before.  This
386         keeps us from triggering a layout when we move around a datarid
387         with a highlighted cell.
388         (Edit): suspend layout when creating/positining the text box, and
389         resume passing false so we don't ever actually re-layout.
390         (ReleaseHostedControl): same.
391         (EnsureTextBox): reformat slightly, and set WordWrap to false.
392
393         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
394         control-key sequences should go to the datagrid - remove that
395         lock.  Also, modify the conditions under which we move between
396         cells when moving the cursor within a cell, and remove the "this"
397         and "base" from field accesses.  We weren't even consistent, given
398         they all were in the base class.
399
400 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
401
402         * Binding.cs : (.ctor)
403           An obvious NRE fix for BindingTest.CtorNullTest().
404
405 2006-05-23  Chris Toshok  <toshok@ximian.com>
406
407         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
408         them between lines.  This fixes some quirks editing cells in the
409         datagrid.
410
411 2006-05-23  Jackson Harper  <jackson@ximian.com>
412
413         * TreeView.cs: Use begin/end update when doing expand/collapse all
414         so that we don't get flicker on the scrollbar.
415
416 2006-05-23  Jackson Harper  <jackson@ximian.com>
417
418         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
419         treenode calculations to be independant of the painting code. To
420         do this nodes track a visible order which is calculated by the
421         treeview.
422         - Call new methods for expanding/collapsing nodes.  These methods
423         use scrollwindow so we don't have to update everything below the
424         node.
425         * TreeView.cs: Refactored drawing and scrolling code.  We don't
426         need to update nodes when drawing anymore or calculate scrollbar
427         stuff.
428         - Added new methods for expanding/collapsing nodes. These methods
429         use ScrollWindow so as to not have to redraw all the nodes below.
430         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
431         we add/remove nodes or sort.
432         - Handle removing the selected and the top node properly.
433
434 2006-05-23  Chris Toshok  <toshok@ximian.com>
435
436         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
437         maybe this should actually happen in the datagrid code?
438         (EndEdit): no need to invalidate anything, given that
439         ReleaseHostedControl causes the datagrid to relayout, which
440         invalidates everything anyway.
441
442         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
443         in SetCurrentCell).
444         (set_SelectionBackColor): call InvalidateSelection instead of
445         Refresh.
446         (set_SelectionForeColor): same.
447         (BeginEdit): Flesh this out a bit.
448         (CancelEditing): only do any of this if we're editing/adding.
449         (EndEdit): same.
450         (OnMouseDown): there's no need to cancel editing here, it's done
451         in SetCurrentCell.
452         (SetCurrentCell): only invalidate the current row header if it's a
453         different row than the new one.
454         (ShiftSelection): fix this to work like MS does.
455         (ResetSelection): factor out the invalidation of selected_rows to
456         InvalidateSelection.
457         (SetDataSource): cancel any editing that's going on.
458
459         * DataGridColumnStyle.cs
460         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
461         call the non-interface version.
462
463         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
464         header rectangle with the clip rectangle so we don't redraw the
465         entire header for just a small area.  Gets rid of the last flicker
466         when horizontally scrolling.
467         (DataGridPaintRow): same.
468
469 2006-05-23  Mike Kestner  <mkestner@novell.com>
470
471         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
472         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
473         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
474         Critical bug report.
475
476 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
477
478         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
479           and this fixes #78493
480
481 2006-05-23  Miguel de Icaza  <miguel@novell.com>
482
483         * Theme.cs (GetSizedResourceImage): Scale images if the proper
484         size is not found.  
485         
486         * FileDialog.cs: Do not change the background for the side bar as
487         it wont work nicely with the theme, and also reduces the artifacts
488         in rendering the icons (which I want to fix too).
489
490         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
491         resources, not resgen resources. 
492
493         (PlatformDefaultHandler): Pull images using the new API.
494
495 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
496
497         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
498           a reference to the hwnd and will not remove it unless there are
499           no pending exposures (fixes #78341)
500         * XplatUI.cs: Improved debug
501
502 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
503
504         * MenuAPI.cs : don't handle OnClick event when it was not the left
505           button. Fixed bug #78487.
506
507 2006-05-23  Mike Kestner  <mkestner@novell.com>
508
509         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
510         prefer submenus to the top menu for item lookup, to avoid popping down
511         top-row items.
512
513 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
514
515         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
516           Graphics.FillRectangle as the visual results are really bad (even
517           on win). We now draw perfect arrows (and perfect shadows when the
518           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
519           Pen.DashPattern to draw the dots of each line.
520
521 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
522
523         * FileDialog.cs: Update the filename combobox when navigating through
524           the ListView with the cursor keys. Fixes part 7 of bug #78446.
525
526 2006-05-22  Mike Kestner  <mkestner@novell.com>
527
528         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
529         Fixes #78463.
530
531 2006-05-22  Mike Kestner  <mkestner@novell.com>
532
533         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
534         requests. Fix a misspelled parameter and a copy paste exception error
535         in Select.
536
537 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
538
539         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
540           to get the same width/height (5/13) on X11 as the default font has on
541           win32. This means that our DefaultFont emSize is smaller than the 
542           the MS SWF equivalent (even thought the width/height stays the same)
543
544 2006-05-20  Jackson Harper  <jackson@ximian.com>
545
546         * MdiClient.cs:
547         * MdiWindowManager.cs:
548         * InternalWindowManager.cs: Make sure to use the border width from
549         the theme.
550
551 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
552
553         * PrintDialog.cs: Implements printer details
554
555 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
556
557         * FileDialog.cs: Added focus handling for PopupButtonPanel.
558           Fixes part 1 and 2 of bug #78446
559
560 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
561
562         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
563           instead of sticking to the first ever calculated value
564
565 2006-05-19  Mike Kestner  <mkestner@novell.com>
566
567         * ComboBox.cs: fix mouse motion selection to use MousePosition and
568         PointToClient, since Capture is set. Fixes #78344.
569
570 2006-05-19  Mike Kestner  <mkestner@novell.com>
571
572         * ListView.cs: match MS behavior in Details view where items are not
573         drawn if Columns.Count == 0. 
574         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
575         Use a separate pen to draw the check, since changing the width affects
576         the box as well.  Fixes #78454.
577
578 2006-05-18  Miguel de Icaza  <miguel@novell.com>
579
580         * ListView.cs: ArgumentOutOfRangeException, single versions of the
581         exception should throw the name of the invalid argument.
582
583         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
584         there are no files listed. 
585
586 2006-05-18  Jackson Harper  <jackson@ximian.com>
587
588         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
589         up.
590
591 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
592
593         * Control.cs: Brought back our old UpdateZOrder method as a private
594           function and switched our calls from UpdateZOrder to the new one.
595           This fixes the Paint.Net canvas disappearing bug.
596
597 2006-05-18  Jackson Harper  <jackson@ximian.com>
598
599         * Theme.cs:
600         * ThemeWin32Classic.cs:
601         * InternalWindowManager.cs: Move the drawing into the theme,
602         expose everything the theme should need from the window manager.
603
604 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
605
606         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
607           from the call to NativeWindow to avoid walking up the parent chain
608           further than needed (speeds up setting cursors and avoids setting
609           the wrong cursor if a parent has another cursor defined)
610         * Cursor.cs: When loading an icon as cursor, MS uses the center of
611           the icon as hotspot, not what's contained as hotspot in the icon
612           file. This fixes the perceived drawing offset seen with Paint.Net
613         
614 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
615
616         * XplatUIX11.cs: 
617           - Store the calculated rectangle in Hwnd object and use it when 
618             setting the client size
619           - Force Toolwindows to always be type Dock, to ensure they're on top
620
621 2006-05-18  Mike Kestner  <mkestner@novell.com>
622
623         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
624         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
625         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
626         Substantial refactoring to remove confusing nested classes. Coding
627         standard and Get+Set->property refactorings.  Shift to index based
628         highlighting in ComboListBox instead of constantly using IndexOf and
629         Items[]. Add invalidations on resize for DropDownList to fix ugliness
630         in FileDialog growth.  Draw borders manually since Simple mode needs
631         to look like two independent controls.  Make listbox border
632         conditional to DropDownStyle.  Improved OwnerDraw support.
633
634 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
635
636         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
637         Don't set the disposed graphics to null, so we can throw the "right"
638         exception if the graphics is reused later (added a flag to avoid 
639         double disposing). Some behaviours are different under 2.0 and are
640         filled under bug #78448.
641
642 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
643
644         * Control.cs: When double-buffering is enabled, we need to reset
645           our graphics context between paint calls. Otherwise, any 
646           transformations and other alterations on the context will 
647           become cumulative (#77734)
648
649 2006-05-18  Mike Kestner  <mkestner@novell.com>
650
651         * ListView.cs: do focused item selection like MS on clicks. 
652         Rework focus handling for ItemControl so LostFocus invalidates as
653         well.
654         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
655         the ListView ItemControl has focus.
656
657 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
658
659         * XplatUIX11.cs: If client_window ends up being width or height zero
660           due to border settings, move it off window inside whole_window (#78433)
661
662 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
663
664         * Mime.cs: Shrink the mime file cache correctly.
665
666 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
667
668         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
669
670 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
671
672         * XplatUIX11.cs (AddExpose): More sanity checks
673
674 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
675
676         * XplatUIX11.cs:
677           - AddExpose: Don't add expose ranges outside the size of our
678             window
679           - Cast opacity values to Int32 to avoid crashes with certain
680             values
681           - Added disabled code paths that protect against illegal cross-
682             thread painting (Developers.exe)
683
684 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
685
686         * ProgressBar.cs: Invalidate the control when it's resized
687           since block size is based on control size. (#78388)
688
689 2006-05-16  Miguel de Icaza  <miguel@novell.com>
690
691         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
692         of setting the incoming argument to the "reset" value, we set the
693         this.datamember to string.empty (before we were invalidating the
694         incoming data).   
695
696         Fixes 78420
697
698 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
699
700         * Form.cs: Only apply transparency settings after the form
701           is created. (Fixes #77800)
702
703 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
704
705         * ApplicationContext.cs: Grab the HandleDestroyed event so
706           we know when to fire OnMainFormClosed 
707
708 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
709
710         * Application.cs: Introduced sub-class to allow tracking of
711           threads and centralized triggering of the event mess for
712           ThreadExit, AppExit, etc..  (#76156)
713
714 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
715
716         * MimeIcon.cs:
717           - Do not return a null icon index value for a mime subclass.
718             Instead try the main mime type class too.
719           - Seems that some newer distributions don't have a link to some
720             gnome default icons anymore. So check the default gnome dir too.
721           
722
723 2006-05-16  Jackson Harper  <jackson@ximian.com>
724
725         * MdiClient.cs: Don't paint the parent background image if we have
726         our own background image.
727
728 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
729
730         * Control.cs:
731           - PerformLayout: Do not shrink space filled by DockStyle.Fill
732             controls, all filled controls are supposed to overlap (#78080)
733           - UpdateZOrder is supposed to update the control's z-order in the
734             parent's z-order chain. Fixed to behave like that
735           - BringToFront: Removed obsolete code
736           - SendToBack: Simplyfied
737           - SetChildIndex: Trigger layout calculations when Z-order changes
738             since layout is done by z-order
739
740 2006-05-16  Chris Toshok  <toshok@ximian.com>
741
742         [ fixes bug #78410 ]
743         * DataGrid.cs (set_AlternatingBackColor): use
744         grid_drawing.InvalidateCells instead of Refresh().
745         (set_BackColor): call grid_drawing.InvalidateCells.
746         (set_BackgroundColor): use Invalidate instead of Refresh.
747
748         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
749         invalidate the cell area.
750
751 2006-05-15  Chris Toshok  <toshok@ximian.com>
752
753         [ fixes bug #78011 ]
754         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
755         on to DataGridPaintRow.
756         (DataGridPaintRow): take a clip argument, and only draw the cells
757         which intersect it.  same with the not_usedarea.
758
759         * Theme.cs (DataGridPaintRow) add @clip parameter.
760
761         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
762         XplatUI.ScrollWindow.
763         (ScrollToRow): same.
764
765         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
766         with last column which was causing a gray swath to appear with the
767         XplatUI.ScrollWindow code.
768
769 2006-05-15  Chris Toshok  <toshok@ximian.com>
770
771         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
772         use XplatUI.ScrollWindow.
773         (VerticalScrollEvent): use XplatUI.ScrollWindow.
774
775 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
776
777         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
778
779 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
780
781         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
782           file since there are no equivalent X11 cursors
783
784 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
785
786         * MonthCalendar.cs : DateTimePicker should reflect selected date
787           on mouse*up*, not mouse*down*. Fixed originally reported part of
788           bug #76474.
789
790 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
791
792         * TabControl.cs : When argument index is equal or more than tab
793           count, just ignore. Fixed bug #78395.
794
795 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
796
797         * Control.cs: Dispose all child controls when control is diposed (#78394)
798
799 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
800
801         * ColorDialog.cs: Finally it is possible to select the color with
802           the text boxes
803
804 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
805
806         * PrintDialog.cs: Fix typo
807
808 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
809
810         * PrintDialog.cs: PrintDialog is not resizable
811         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
812           color. Made some ToolBar drawing methods protected virtual.
813
814 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
815
816         * PrintDialog.cs: Implementation of the PrintDialog
817
818 2006-05-12  Chris Toshok  <toshok@ximian.com>
819
820         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
821         thumb, instead use MoveThumb.  This has the side effect of making
822         most of the other thumb moving machinery use MoveThumb as well.
823         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
824         need to actually invalidate the rectangle where the new thumb will
825         go.
826         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
827         We force an Update() after, so it's not as fast as it could be,
828         but at least there's zero flicker and no droppings.
829         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
830         (UpdateThumbPos): add another argument (dirty), which says whether
831         or not to calculate/add dirty regions which we later invalidate.
832         For cases where we know we're going to use MoveThumb, we pass
833         false for this.  Otherwise, pass true.
834
835 2006-05-12  Jackson Harper  <jackson@ximian.com>
836
837         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
838         the status bar.
839         
840 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
841
842         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
843           and GetClipRegion methods and UserClipWontExposeParent property.
844         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
845           overriding UserClipWontExposeParent property, setting to false, since
846           Win32 handles the required expose messages to draw our clipped parent
847           areas internally
848         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
849           PaintEventStart to set the user clip region if set.
850         * Control.cs: 
851           - Now internally tracking the Region for the control since we need to
852             store it if the handle is not yet created and only set it when it
853             becomes created. Before setting the region forced handle creation
854           - Added code to draw the parents underneath a user-clipped region
855         * Hwnd.cs: Added UserClip property
856
857 2006-05-12  Chris Toshok  <toshok@ximian.com>
858
859         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
860         (set_Maximum): same.
861         (set_Minimum): same.
862         (set_SmallChange): same.
863         (OnMouseUpSB): remove the call to refresh when releasing the
864         thumb.  We shouldn't need it.
865         
866 2006-05-12  Miguel de Icaza  <miguel@novell.com>
867
868         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
869         AutoSize set to None, we do not need to relayout everything, we
870         just need to invalidate the current region.
871
872         (Draw): Do not draw the entire ClientArea, just redraw the
873         clip area being passed.
874
875         * MdiClient.cs: Make MdiClient constructor with the Form argument
876         internal. 
877
878 2006-05-12  Jackson Harper  <jackson@ximian.com>
879
880         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
881         parents background image,  but strangely not their own.
882         - (DrawStatusBarPanel): Take into account horizontal alignment
883         when drawing the strings and icons.
884
885 2006-05-12  Mike Kestner  <mkestner@novell.com>
886
887         * ListBox.cs: avoid invalidations for focus when the collection is
888         empty. 
889
890 2006-05-12  Chris Toshok  <toshok@ximian.com>
891
892         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
893         invalidate the entire thumb area.  Call InvalidateDirty which
894         limits the redraw to the thumb itself and surrounding pixels.
895
896         * XplatUIX11.cs (ScrollWindow): optimize copying.
897         
898 2006-05-12  Chris Toshok  <toshok@ximian.com>
899
900         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
901         Figure out the positioning/layout in a single pass instead of
902         multiple recursive invocations.  Speeds up the initial display of
903         the data grid.  Also, make many things private that were
904         originally public but unused outside this class.
905
906 2006-05-11  Jackson Harper  <jackson@ximian.com>
907
908         * MdiClient.cs: Improved layout code.
909
910 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
911
912         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
913           not SelectedObject.
914
915 2006-05-11  Chris Toshok  <toshok@ximian.com>
916
917         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
918         union of that will always be {0,0,width,height}.
919
920 2006-05-11  Jackson Harper  <jackson@ximian.com>
921
922         * Form.cs: Match MS's DefaultSize for forms (they must have
923         changed the size in sp2).
924
925 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
926
927         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
928
929 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
930
931         * TextControl.cs : Fixed bug #78109. This incorrect position
932           comparison caused crash on automatic line split.
933         * TextBoxBase.cs : reduce duplicate code.
934
935 2006-05-10  Jackson Harper  <jackson@ximian.com>
936
937         * MdiClient.cs: Active form is only sent to the back when using
938         the Next form functionality, when a form is clicked the current
939         active shouldn't be sent to the back.
940         - Layout the mdi windows when the container is first made visible.
941         * Form.cs: Give the MdiClient a ref to the containing form when we
942         create it.
943         
944 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
945
946         * LinkLabel.cs : link_font could be uninitialized, so populate one
947           before actual use. Fixed bug #78340.
948
949 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
950
951         * XplatUIX11.cs : clipboard format native value is IntPtr.
952           Fixed bug #78283.
953
954 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
955
956         * Control.cs: 
957           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
958             which is passed up the parent chain by DefWndProc
959           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
960             to DefWndProc (#77956)
961         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
962
963 2006-05-10  Jackson Harper  <jackson@ximian.com>
964
965         * MdiClient.cs: We need to remove the controls from the mdi
966         collection, when we close the window.
967         * MdiWindowManager.cs: Special handling of closing mdi windows.
968         * InternalWindowManager.cs: Make the close method virtual so the
969         mdi window manager can handle it specially.
970
971 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
972
973         * DataGrid.cs:
974           - Recalculate grid when the data source has changed
975           - Matches styles provided by user from all data sources types
976         * DataGridTableStyle.cs: For columns that provided by the user set the
977         with the preferred value is there was unassigned.
978         * CurrencyManager.cs: throw OnItemChanged event
979
980 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
981
982         * PictureBox.cs: Don't animate until handle is created. Start animation
983           when handle is created.
984
985 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
986
987         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
988           current codebase.
989         * XEventQueue.cs: We don't need to provide the extra info
990
991 2006-05-10  Jackson Harper  <jackson@ximian.com>
992
993         * MdiClient.cs: If the mdi clients parent form has a background
994         image set, we draw that background image for the mdi area's
995         background.
996
997 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
998
999         * TextBoxBase.cs: Set IBeam cursor (#78347)
1000
1001 2006-05-10  Mike Kestner  <mkestner@novell.com>
1002
1003         * ToolBar.cs: fix some text padding issues with ButtonSize
1004         calculation. Update the default size to match MS documentation.
1005         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
1006         button size. Fixes #78296.
1007
1008 2006-05-10  Mike Kestner  <mkestner@novell.com>
1009
1010         * ListBox.cs: use is_visible for scrollbar positioning in case the
1011         control isn't on screen yet.  Fix off by one with Right vs Width
1012         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
1013         
1014 2006-05-10  Jackson Harper  <jackson@ximian.com>
1015
1016         * X11Dnd.cs: Drop to a control with another control on top of it.
1017         * ToolBar.cs: Work on a copy of the buttons list, so that it can
1018         be modified in click handlers. TODO: Look for similar problems in
1019         other controls.
1020
1021 2006-05-09  Jackson Harper  <jackson@ximian.com>
1022
1023         * Form.cs: Window managers need the old window state when setting
1024         window state now.
1025         * InternalWindowManager.cs: Allow the base mdi window manager to
1026         handle more of the MDI only stuff (like maximize buttons).
1027         * MdiWindowManager.cs: Fix some snafus in changing the window
1028         state.  Add all the menu functionality, for both popup and
1029         maximized menus.
1030         * MdiClient.cs: When a new form is selected the currently
1031         activated form is sent to the back, this matches MS.
1032         - Implement a new method to activate the next mdi child window.
1033
1034 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
1035
1036         * Control.cs: 
1037           - Added new InternalCapture method to allow controls to prevent
1038             the capture behaviour on the click handlers
1039           - Switched to use InternalCapture
1040         * ComboBox.cs:
1041           - Using InternalCapture to prevent mouse captures from being released
1042             on mouse button release (Fixes #78100)
1043         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
1044           returns Form borders if a caption is present. (Fixes #78310)
1045
1046 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
1047
1048         * TreeNode.cs: Changed serialization .ctor to not require every field
1049           to be present. (#78265)
1050         * OwnerDrawPropertyBag.cs: Added serialization .ctor
1051
1052 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
1053
1054         * MimeIcon.cs: for is faster than foreach for strings.
1055
1056 2006-05-05  Mike Kestner  <mkestner@novell.com>
1057
1058         * CheckedListBox.cs: update check handling code to not use selected.
1059         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
1060         behavior for visual feedback, motion response, shift/ctrl handling,
1061         and properly deal with all 4 selection modes. Updates to bounds
1062         handling logic.  Add scroll wheel support. [Fixes #77842]
1063
1064 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
1065
1066         * ListView.cs:
1067           - Moved adding of Implicit controls into .ctor. That way, subsequent
1068             creation of the controls will not cause them to think they are 
1069             toplevel windows (fixes #78200 header problem)
1070           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
1071           - Switched visibility setting of header control to use internal field
1072             to avoid triggering handle creation
1073           - Now checking if handle is created before causing a refresh when items
1074             are added (This makes us now match handle creation time with MS)
1075         * Splitter.cs: Removed loading of private splitter cursor, switched to
1076           Cursors version now that that is loading the right ones
1077         * Cursors.cs: Load proper splitter cursors from resources
1078         * Cursor.cs: Added second method of loading resource cursors for the 
1079           VS.Net users amongst us
1080
1081 2006-05-05  Mike Kestner  <mkestner@novell.com>
1082
1083         * ListView.cs: give header_control a minimum size based on the
1084         ListView size.
1085
1086 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
1087
1088         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
1089           window seems to do that with metacity, so set that type. (#78120)
1090
1091 2006-05-05  Mike Kestner  <mkestner@novell.com>
1092
1093         * ListViewItem.cs: fix Details mode checkbox layout bug.
1094         * ThemeWin32Classic.cs: draw a ListView column header for unused space
1095         at the end of the header, if it exists. [Fixes for #78200]
1096
1097 2006-05-04  Jackson Harper  <jackson@ximian.com>
1098
1099         * MdiClient.cs: Add a helper property to get the container form.
1100         * MdiWindowManager.cs: We have to make sure to use the menu origin
1101         when drawing the icons and buttons, this fixes maximized window
1102         icons/buttons on win32.
1103         * InternalWindowManager.cs: Reset the restore captions when a
1104         window goes from Maximized to Minimized and vice versa. Move the
1105         DrawMaximizedButtons into the MdiWindowManager source, tool
1106         windows can't be maximized. NOTE: This could use a little
1107         refactoring if time ever permits.
1108         
1109 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
1110
1111         * TextBox.cs: Add MWFCategoryAttributes
1112         * TextBoxBase.cs: Add MWFCategoryAttributes
1113         * Form.cs: Add MWFCategoryAttributes
1114
1115 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
1116
1117         * Control.cs: Add MWFCategoryAttributes
1118         * ScrollableControl.cs: Add MWFCategoryAttributes
1119
1120 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
1121
1122         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
1123           Divider is true. Fix a little glitch in PropertyToolBar
1124           drawing code
1125
1126 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
1127
1128         * Control.cs:
1129           - Dispose: Call base.Dispose, this causes the disposed event
1130             to be fired (and probably other, more important stuff)
1131           - SetVisibleCore: Set is_visible to true after creating the
1132             window so that the window still gets created invisible (if
1133             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
1134             to generate a WM_ACTIVE message
1135         * Form.cs: Call Dispose when we want to destroy the window, instead of
1136           just destroying the handle (Dispose will do that for us)
1137         * XplatUIX11.cs:
1138           - RootWindow also needs a queue, so we can properly process the
1139             property change events from RootWindow (like Activate)
1140           - Generatic synthetic WM_ACTIVE message when the active window is
1141             being destroyed
1142
1143 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
1144
1145         * LinkLabel.cs: Trigger a recalc of our label dimensions when
1146           bounds are changed
1147
1148 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
1149
1150         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
1151           for determining width and height (image might not be assigned if
1152           we're drawing an imagelist)
1153
1154 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
1155
1156         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
1157         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
1158           height from system
1159         * Theme.cs: No longer returns hardcoded menu height, instead calls
1160           new driver method
1161         * Form.cs (OnLoad): Scaling happens before triggering Load events 
1162           on MS (# 78257)
1163
1164 2006-05-01  Mike Kestner  <mkestner@novell.com>
1165
1166         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
1167
1168 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
1169
1170         * TextBoxBase.cs: Removed Fixme
1171         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
1172
1173 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
1174
1175         * XplatUIX11.cs:
1176           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
1177             the rectangle relative to the parent, considering borders. We
1178             don't really want that.
1179           - ScrollWindow: Fixed warning to be more understandable
1180         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
1181           scrollbars and scroll only the visible area
1182         * RichTextBox.cs: Removed debug output
1183
1184 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
1185
1186         * NumericUpDown.cs (Text): Just use base
1187         * UpDownBase.cs: Ensure txtView is created before using it
1188
1189 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
1190
1191         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
1192           casting to IntPtr to avoid 64bit overflow errors
1193
1194 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
1195
1196         * Control.cs:
1197           - AllowDrop: Don't force handle creation.
1198           - CreateHandle: Added call to tell driver if we're allowed to drop
1199
1200 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
1201
1202         * FileDialog.cs: Remember the last directory not only for the
1203           current instance but also for new FileDialog instances.
1204
1205 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
1206         
1207         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
1208           broke sending async messages
1209
1210 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
1211
1212         * XplatUIX11.cs:
1213           - ScrollWindow: Fixed method. We finally generate expose events again
1214             for scrolled areas. This was causing 'garbage' when scrolling
1215             textbox and other controls that used ScrollWindow
1216           - Switched from using the regular queue for paint events to the MS 
1217             model of 'generating' paint events when the queue is empty.
1218             We use the new XQueueEvent.Paint subclass to store which windows
1219             need painting.
1220           - AddExpose now takes the x/y/width/height of the exposed area
1221             and inserts the window into the paint queue if not already there
1222           - InvalidateWholeWindow: Switched to use new AddExpose method
1223           - UpdateMessageQueue: Added which queue to monitor for paint events
1224           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
1225             the unlikely case nothing above handles it. We reset the expose
1226             pending states to get them off the queue.
1227           - GetMessage: Now pulls a paint event if no other events are in the
1228             queue
1229           - Invalidate: Switched to new AddExpose method
1230           - PeekMessage: Updated to understand pending paint events
1231           - UpdateWindow: Fixed logic bug. We were only updating if the window
1232             didn't need updating. Also switched to sending WM_PAINT directly,
1233             like MS does.
1234         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
1235           and random access Remove(). The random access is needed to handle
1236           UpdateWindow() where a WM_PAINT is sent directly without accessing
1237           the queue.
1238         * ScrollBar.cs: Added Update() calls to cause immediate updates to
1239           allow for better feedback when scrolling. Scrollbars are small and
1240           the immediate update should make it 'feel' more responsive without
1241           slowing things down. ScrollBar still needs it's invaliate logic
1242           updated to not always invalidate the whole bar on certain changes.
1243
1244 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1245
1246         * Control.cs:
1247         (BackColor): if the control does not support a transparent background,
1248         return the default backcolor when the parent backcolor is transparent.
1249
1250 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
1251
1252         * Application.cs: Updated to new StartLoop/GetMessage API
1253         * RichTextBox.cs: Provide some output on RTF parsing errors
1254         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
1255           new queue_id argument to GetMessage and PeekMessage to allow faster
1256           handling of per-thread queues in drivers.
1257         * Hwnd.cs: Added Queue tracking and property
1258         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
1259         * XEventQueue.cs: Added thread trackingA
1260         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
1261         * XplatUIX11.cs:
1262           - Implemented new per-thread queue
1263           - GetMessage: Fixed return/break behaviour on several cases. We were
1264             returning stale messages in some cases, instead of just processing
1265             the next message
1266
1267 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
1268
1269         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
1270
1271 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
1272
1273         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
1274           fixed off-by-one comparisons between Width/Height and Right/Bottom.
1275
1276 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
1277
1278         * PropertyGridView.cs: Fix drop down width.
1279
1280 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
1281
1282         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
1283           a mess in DrawToolBar, so I removed one of them.
1284
1285 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
1286
1287         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
1288           needed (clip). Otherwise we get artifacts.
1289
1290 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
1291
1292         * FixedSizeTextBox.cs: Added constructor to allow specifying which
1293           dimension is fixed
1294         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
1295           and switched FixedSizeTextBox to only be fixed vertical (#78116)
1296         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
1297           if it matches the scale base font (avoids unneeded scaling)
1298
1299 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
1300
1301         * X11DesktopColors.cs: One gtk_init_check should be enough
1302
1303 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
1304
1305         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
1306           match MS behaviour
1307
1308 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
1309
1310         * TextBoxBase.cs: 
1311           - Generate OnTextChanged for Backspace even if we're only deleting
1312             the current selection
1313           - When setting the Text property, only select all text if the
1314             control does not have focus when it is being set. Otherwise
1315             just place the cursor at the beginning of the control
1316
1317 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
1318
1319         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
1320           Added a little helper to draw PropertyGrid ToolBar with a different
1321           border and a different BackColor.
1322         * PropertyGrid.cs: Some background parts didn't get painted with the
1323           correct background color. Added a class that helps us to draw the
1324           correct border for PropertyGridView and a class that helps us to
1325           draw ToolBars with a different backcolor
1326         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
1327
1328 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
1329
1330         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
1331         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
1332
1333 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
1334
1335         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
1336           into the palette entries. Also, since we're working on a copy
1337           we needed to copy the palette back onto the bitmap.
1338         * Cursor.cs: Same fix as XplatUIWin32.cs.
1339
1340 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
1341
1342         * ImageListStreamer.cs: Need to read the var (or we're off)
1343
1344 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
1345
1346         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
1347           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
1348           TextBoxBase.cs: Unused var fixes
1349         * AxHost.cs: Small 2.0 fix
1350         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
1351           as it seems that is what at least Metacity expects. This will make
1352           icons show up on 64bit platforms. We still have some 64bit size
1353           issues, though, since the startup app window size still won't match.
1354
1355 2006-04-25  Mike Kestner  <mkestner@novell.com>
1356
1357         * *.cs: cleanup newly reported exception var unused warnings.
1358
1359 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
1360
1361         * ThemeWin32Classic.cs: Button image alignment now matches exactly
1362           ms
1363
1364 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
1365
1366         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
1367           image. The image position is always the same, no matter if the
1368           button is pressed or not.
1369
1370 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
1371
1372         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
1373           selection and set the correct filename for SaveFileDialog.
1374           Patch by Emery Conrad.
1375
1376 2006-04-24  Mike Kestner  <mkestner@novell.com>
1377
1378         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
1379         check for item.X outside the ClientRect instead of item.Y. Fixes
1380         #78151.
1381
1382 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1383
1384         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
1385         trust that value blindly and do some sanity check. Fixes bug #77814.
1386
1387 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1388
1389         * ImageListStreamer.cs: save the mask as a 1bpp image.
1390
1391 2006-04-21  Mike Kestner  <mkestner@novell.com>
1392
1393         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
1394         pass Checked and Indeterminate to the Theme Engine. Improve
1395         encapsulation with ListBox.
1396         * ListBox.cs: Keep a StringFormat instead of calculating it every item
1397         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
1398         nested types.  Move all CheckState functionality to CheckedListBox.
1399         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
1400         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
1401         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
1402         single base list. Fix scrollbar sizing and placement to mirror MS.
1403         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
1404         used.
1405         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
1406         for CheckedListBox by using new DrawItemState info.  Center the
1407         checkboxes on the items. Use new StringFormat property.
1408
1409 2006-04-18  Jackson Harper  <jackson@ximian.com>
1410
1411         * Form.cs: MdiChildren don't do default locations the same way as
1412         regular forms.  This prevents a crash when trying to position the
1413         mdi windows.
1414
1415 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
1416
1417         * PropertyGridTextBox.cs: Formatting, copyright
1418         * PropertiesTab.cs: Formatting
1419         * PropertyGrid.cs: Formatting
1420         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
1421           click toggling of values
1422           
1423 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
1424
1425         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
1426         * Control.cs (.ctor): verify_thread_handle is static, don't reset
1427           every time a control is created
1428         * Application.cs: Removed obsolete EnableRTLMirroring method
1429
1430 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
1431
1432         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
1433         SelectedIndex to -1. Fixes bug #78121.
1434
1435 2006-04-17  Jackson Harper  <jackson@ximian.com>
1436
1437         * Binding.cs: Handle null values for Current and BindingContext.
1438         This occurs when binding is a little delayed.
1439         * CurrencyManager.cs: return null for Current when there are no
1440         items in the list.
1441         - Hookup to the listchanged event on the DataView and update
1442         bindings when the list is changed.  This fixes late binding of
1443         controls.
1444
1445 2006-04-17  Jackson Harper  <jackson@ximian.com>
1446
1447         * X11Dnd.cs:
1448         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
1449         Ringenbach.
1450
1451 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
1452
1453         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
1454           place
1455         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
1456           with the correct ButtonState
1457
1458 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
1459
1460         * XplatUIX11.cs: Improved distinguishing between window types to
1461           tell the WM a type closer to what the app wants (Fixes #78107)
1462
1463 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
1464
1465         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
1466           GrabHandle
1467
1468 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
1469
1470         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
1471           drawing code to reflect the size grip changes
1472
1473 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1474
1475         * ImageListStreamer.cs: fix handling of the mask that follows the main
1476         bitmap when deserializing and serialize it properly. The generated mask
1477         should better be a 1bpp image, but I'll do that later.
1478
1479 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
1480
1481         * FileDialog.cs: Show something in the DirComboBox on *nix if the
1482           path doesn't fit into some of our Current.Places
1483
1484 2006-04-13  Jackson Harper  <jackson@ximian.com>
1485
1486         * ComboBox.cs: Use borders instead of drawing our own decorations,
1487         try to obey correct rules for heights.
1488         * Theme.cs:
1489         * ThemeNice.cs:
1490         * ThemeClearLooks.cs:
1491         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
1492         this is now handled by borders.
1493         - Remove unused DrawListBoxDecorationSize method.
1494         
1495 2006-04-13  Mike Kestner  <mkestner@novell.com>
1496
1497         * MenuAPI.cs: null guarding for the disbled click check fixes crash
1498         reported by Alex.
1499
1500 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
1501
1502         * ThemeWin32Classic.cs: 
1503           - Fixed CPDrawStringDisabled
1504           - Corrected drawing of disabled menu items
1505           - Fixed drawing of disabled radio buttons (bug #78095)
1506           - Draw check in a disabled CheckBox with color ControlDark 
1507
1508 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
1509
1510         * Form.cs: Use the provided width when calculating the menu size;
1511           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
1512           and ClientSize.Width won't be updated yet
1513         * Application.cs: Use Visible instead of Show() to make form visible,
1514           this way we create the handle later and menusize is considered
1515
1516 2006-04-12  Mike Kestner  <mkestner@novell.com>
1517
1518         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
1519         reporting.
1520
1521 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
1522
1523         * TextBox.cs: Implemented context menu
1524
1525 2006-04-12  Mike Kestner  <mkestner@novell.com>
1526
1527         * ListView.cs: implement box selection. fixes #77838.
1528         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
1529
1530 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
1531
1532         * XplatUIX11.cs: Added setting of window type when transient window
1533           is created (metacity would move it otherwise)
1534         * X11Structs.cs: Added WINDOW_TYPE atoms
1535         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
1536           background (the control is Opaque but still wants transparent
1537           backgrounds)
1538
1539 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
1540
1541         * Control.cs: Added OnPaintBackgroundInternal to allow controls
1542           that set Opaque but don't mean it (like all ButtonBase-derived
1543           controls) to still draw their background
1544         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
1545           the background
1546
1547 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
1548
1549         * Control.cs (PaintControlBackground): Set the graphics object
1550           on our PaintEvent to null to prevent it from being disposed
1551           when the PaintEvent gets disposed
1552
1553 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
1554
1555         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
1556         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
1557
1558 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
1559
1560         * Control.cs: 
1561           - Added transparency check to BackColor property. Transparent
1562             backgrounds are only allowed if the control styles permit it
1563           - Added recursive painting of parent control background and
1564             foreground if a control with a transparent backcolor is drawn
1565             (Thanks to Tim Ringenback for providing his 'hack' as a base
1566              for this patch) Fixes #77985 and #78026.
1567           - Added Opaque style check before calling OnPaintBackground, no
1568             need to draw the background if the control is opaque
1569           - Removed ControlAccessibleObject owner variable (inherited from
1570             base, no need to define again)
1571           - Added some documentation links explaining the drawing events
1572             and styles
1573
1574 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
1575
1576         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
1577           that the affected control is the located at the left border of our
1578           parent (Fixes #77936)
1579
1580 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
1581
1582         * TextBoxBase.cs: When rendering disabled or readonly controls,
1583           draw the background with 'Control' instead of 'Window' color as
1584           long as the user hasn't specifically set a color
1585
1586 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
1587
1588         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
1589           since that won't be updated if the user types text (only if it's
1590           programatically set)
1591
1592 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
1593
1594         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
1595           layout changes do to app-triggered resizes will have the proper
1596           display rectangle for layout
1597
1598 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
1599
1600         * ThemeWin32Classic.cs:
1601           - Make use of the SystemBrushes and SystemPens wherever possible
1602           - Corrected some highlight colors
1603           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
1604             drawing
1605         * Theme.cs: Added Empty field to CPColor struct
1606
1607 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
1608
1609         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
1610           is displayed when calculating the display rectangle. Thanks to Mike
1611           for teaching me the err of my ways.
1612
1613 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
1614
1615         * ScrollableControl.cs:
1616           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
1617             (instead of 0,0) and we now return the real width/height instead of
1618             just the clientrectangle, adjusted for padding. The rectangle is
1619             now cached and created by the new CalculateDisplayRectangle method.
1620           - Created new CalculateDisplayRectange method, which basically does
1621             what get_DisplayRectangle() did originally, but now using the 
1622             right edge instead of DisplayRectangle to determine the size of
1623             our scrollbars
1624           - get_Canvas(): Fixed it to properly calculate canvas for 
1625             right/bottom controls which seem to be placed to the right/bottom
1626             of any controls that have a fixed location
1627           - Removed TODO that's taken care of
1628           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
1629             and SetDisplayRectLocation according to new MSDN2 docs
1630           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
1631             event when that is called, this is added for compatibility
1632           - ScrollControlIntoView(): Implemented.
1633           - Switched scrollbars to be implicit, they shouldn't be selectable
1634         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
1635           call it when the active control is set/changed
1636         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
1637         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
1638           implicit_control variable (used for native Win32 message generation)
1639         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
1640           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
1641         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
1642         * XplatUIStructs.cs: Added ScrollBarCommands enum
1643
1644 2006-04-10  Jackson Harper  <jackson@ximian.com>
1645
1646         * ButtonBase.cs:
1647         * CheckedListBox.cs:
1648         * ComboBox.cs:
1649         * DataGrid.cs:
1650         * DataGridView.cs:
1651         * Form.cs:
1652         * GroupBox.cs:
1653         * ListBox.cs:
1654         * PrintPreviewControl.cs:
1655         * ProgressBar.cs:
1656         * PropertyGrid.cs:
1657         * Splitter.cs:
1658         * StatusBar.cs:
1659         * TrackBar.cs:
1660         * UpDownBase.cs: Fixup base event overrides.
1661         
1662 2006-04-06  Mike Kestner  <mkestner@novell.com>
1663
1664         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
1665         all user-initiated value changes to min <= value <= max-thumbsz+1.
1666         (set_Value): check for vert/horiz when calculating new thumb position.
1667         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
1668         like MS does.
1669         (OnMouseMoveSB): refactor the thumb dragging code and refine
1670         invalidation logic to reduce flicker.
1671         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
1672         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
1673         (UpdateThumbPosition): small code readability cleanup
1674
1675 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
1676
1677         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
1678           different
1679
1680 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
1681
1682         * ThemeNice.cs: Use a better graphics effect when a button is pressed
1683
1684 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
1685
1686         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
1687         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
1688           This dramatically reduces the number of Pen.Dispose calls. 
1689           Where possible call ResPool methods only once instead of calling it
1690           over and over again (for example for the same color).
1691
1692 2006-04-06  Mike Kestner  <mkestner@novell.com>
1693
1694         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
1695         Also remove an unused private field on the collection. Fixes #77972.
1696
1697 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
1698
1699         * ThemeNice.cs: Added ToolBar drawing code
1700
1701 2006-04-06  Mike Kestner  <mkestner@novell.com>
1702
1703         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
1704         I'm assuming that means we need to look up the toplevel for the
1705         provided control. Fixes the crash trace in #77911 but exposes another
1706         crash in some strange reflection usage in NDocGui.
1707
1708 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
1709
1710         * ThemeNice.cs: Gave it a little silver touch and added Images
1711           method
1712         * FontDialog.cs: FontDialog is not resizable
1713         * FileDialg.cs: Added SizeGripStyle.Show
1714
1715 2006-04-05  Jackson Harper  <jackson@ximian.com>
1716
1717         * KeyboardLayouts.cs: Remove warning.
1718
1719 2006-04-05  Jackson Harper  <jackson@ximian.com>
1720
1721         * Control.cs: Enable OnPaintInternal so we can use it for drawing
1722         all of our controls instead of Paint +=.
1723         * ListBox.cs:
1724         * ListView.cs:
1725         * MenuAPI.cs:
1726         * MessageBox.cs:
1727         * NotifyIcon.cs:
1728         * ProgressBar.cs:
1729         * ScrollBar.cs:
1730         * Splitter.cs:
1731         * StatusBar.cs:
1732         * TabControl.cs:
1733         * TextBoxBase.cs:
1734         * ToolBar.cs:
1735         * TrackBar.cs:
1736         * UpDownBase.cs:
1737         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
1738         use OnPaintInternal. Remove Width/Height and Visible checks in
1739         paint handler, this is done at a higher level now.
1740         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
1741         * PaintEventArgs.cs: Add a handled flag so controls that don't
1742         want anymore painting after OnPaintInternal can make sure OnPaint
1743         isn't called.
1744
1745 2006-04-05  Mike Kestner  <mkestner@novell.com>
1746
1747         * Form.cs: fix the menu WndProc hacks to respect the native enabled
1748         state of the form, so that we don't process events when Modal dialogs
1749         are up. Fixes #77922.
1750
1751 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
1752
1753         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
1754           checking is done.
1755
1756 2006-04-05  Mike Kestner  <mkestner@novell.com>
1757
1758         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
1759
1760 2006-04-05  Mike Kestner  <mkestner@novell.com>
1761
1762         * ListView.cs (HeaderMouseMove): null guarding for the over column
1763         when setting up the drag_to_index.  Fixes #78015.
1764
1765 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
1766
1767         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
1768           in the taskbar. Transient windows seem to accomplish that.
1769
1770 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
1771
1772         * Form.cs:
1773           - Re-enabled CreateParams.X/Y code for FormStartPosition
1774           - Added code for manual placement when creating the Control
1775           - Incomplete patch to treat MDI forms differently when
1776             setting the ClientSizeCore. (Still need to figure out handling
1777             x/y coords there)
1778         * XplatUIX11.cs:
1779           - When we're explicitly setting the X/Y position of a non-Child
1780             window, let the WM know. Metacity really wants this.
1781
1782 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
1783
1784         * ThemeNice.cs: Added CPDrawButton
1785
1786 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
1787
1788         * ThemeNice.cs: Changed the color for focused buttons and activated
1789           the arrows for small scroll buttons.
1790
1791 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
1792
1793         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
1794           anymore. Changed some method modifiers to protected (virtual)
1795         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
1796           changes
1797         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
1798           Updated drawing of menus, buttons and progressbars; added
1799           CPDrawBorder3D 
1800
1801 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1802
1803         * ImageListStreamer.cs: implemented serialization/deserialization
1804         of the images.
1805
1806 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
1807
1808         * ThemeWin32Classic.cs:
1809           - Removed all the DrawFrameControl stuff; CPDrawButton,
1810             CPDrawCheckBox and CPDrawRadioButton are now handled directly
1811             inside the methods
1812           - Updated and corrected the drawing code of CPDrawButton,
1813             CPDrawCheckBox and CPDrawRadioButton to better match ms
1814           - Updated theme checkbox and radiobutton code to use the CP*
1815             methods
1816
1817 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
1818
1819         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
1820           bug is fixed
1821
1822 2006-03-31  Jackson Harper  <jackson@ximian.com>
1823
1824         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
1825         sometimes.
1826         * UpDownBase.cs: Don't CreateGraphics manually, use a
1827         Refresh. Ideally we would invalidate the correct areas here.
1828
1829 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
1830
1831         * XplatUIX11.cs: 
1832           - We now track the mapping state of windows. If a window (or 
1833             one of it's parents) is not mapped we no longer permit
1834             WM_PAINT messages to be generated since we'd otherwise get 
1835             lots of BadMatch X errors. Jackson did all the work figuring
1836             out the problem.
1837           - Destroying the caret if the window it's contained in is 
1838             destroyed. Can't use regular DestroyCaret method since it
1839             might fall into a drawing function (trying to remove the
1840             caret) and with that generate new BadMatch errors. Again,
1841             Jackson tracked this down.
1842           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
1843             make sure we send the messages to all windows. (The old code
1844             would send the WM_DESTROY to the window, and then all child
1845             windows would be 'gone' because the WM_DESTROY handle lookup
1846             would no longer find the destroyed window)
1847         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
1848         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
1849
1850 2006-03-31  Jackson Harper  <jackson@ximian.com>
1851
1852         * ScrollableControl.cs: Dont recalc if we are not visible.
1853
1854 2006-03-31  Mike Kestner  <mkestner@novell.com>
1855
1856         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
1857         the visibility branch.
1858
1859 2006-03-31  Jackson Harper  <jackson@ximian.com>
1860
1861         * ScrollBar.cs: Cap values when incrementing/decrementing.
1862
1863 2006-03-31  Mike Kestner  <mkestner@novell.com>
1864
1865         * MenuAPI.cs: setup menu.tracker for popup/context menus.
1866         * ToolTip.cs: guard against timer expirations with no active control.
1867         Not sure why it happened.
1868
1869 2006-03-31  Mike Kestner  <mkestner@novell.com>
1870
1871         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
1872         text.
1873         * ToolTip.cs: Position the tooltip based on where the cursor is at
1874         popup time, not at MouseEnter time.  Add a Down state so that we don't
1875         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
1876         positioning offset. Lookup DisplaySize at positioning time, since it
1877         can theoretically change during invocation.
1878         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
1879         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
1880
1881 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
1882
1883         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
1884           Fixes behaviour when the Text property of the box is String.Empty
1885
1886 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
1887
1888         * XplatUIX11.cs: Only send mouseleave for our client windows, not
1889           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
1890           a window)
1891
1892 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
1893
1894         * FileDialog.cs: Visual enhancement for the popup buttons in 
1895           PopupButtonPanel
1896
1897 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
1898
1899         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
1900           code
1901
1902 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
1903
1904         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
1905           highlighted menu items to match ms
1906
1907 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
1908
1909         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
1910
1911 2006-03-30  Mike Kestner  <mkestner@novell.com>
1912
1913         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
1914         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
1915         go active to account for HotLight to Selected transition.
1916         * MenuItem.cs: add internal Selected prop. Fill out the Status
1917         property by calculating it from item info. Add HotLight,
1918         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
1919
1920 2006-03-30  Mike Kestner  <mkestner@novell.com>
1921
1922         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
1923
1924 2006-03-29  Jackson Harper  <jackson@ximian.com>
1925
1926         * Form.cs: Implement TODO.
1927
1928 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
1929
1930         * PrintPreviewDialog.cs: Implemented missing methods and events; still
1931           missing proper dialog setup in the constructor
1932
1933 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
1934
1935         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
1936         * Control.cs:
1937           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
1938           - Fixed ResetBindings and removed TODO
1939           - Added check for cross-thread calls to get_Handle()
1940           - Added Marshaller attribute for set_Font to satisfy class status
1941         * FontDialog.cs: Removed TODOs that seemed implemented
1942         * UpDownBase.cs: Removed unneeded TODO and Fixme
1943         * MessageBox.cs: Implemented support for Default button and removed TODO
1944         * FileDialog.cs: Removed obsolete TODO
1945         * DomainUpDown.cs: Removed obsolete TODO
1946         * ButtonBase.cs: Removed obsolete TODO
1947         * XplatUIWin32.cs: Removed obsolete TODO
1948         * Form.cs:
1949           - Removed obsolete TODO
1950           - Calling CheckAcceptButton when the acceptbutton is changed to allow
1951             internal status updates
1952           - Making sure the active control is selected when the control is created
1953         * CurrencyManager.cs: Removed obsolete TODO
1954
1955 2006-03-29  Mike Kestner  <mkestner@novell.com>
1956
1957         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
1958         of PrintPreviewDialog and RichTextBox.
1959
1960 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
1961
1962         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
1963           DarkDark, Light and LightLight colors for a specific color
1964         * ThemeWin32Classic.cs:
1965           - Use Button drawing code to draw RadioButtons and CheckBoxes with
1966             Appearance = Button 
1967           - Make use of the new ResPool helper CPColor
1968           - Draw ProgressBar and StatusBar with correct 3D borders
1969
1970 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
1971
1972         * ColorDialog.cs: Return selected color. Fixes bug #77940.
1973
1974 2006-03-28  Mike Kestner  <mkestner@novell.com>
1975
1976         * ListView.cs: fix Icon layout to plan for scrollbar widths when
1977         calculating col/row counts.
1978
1979 2006-03-28  Mike Kestner  <mkestner@novell.com>
1980
1981         * ColumnHeader.cs:
1982         * ListView.cs:
1983         * ListViewItem.cs:
1984         * Menu.cs: 
1985         switch to explicit interface method implementation for some methods
1986         corcompare identifies as inconsistent with MS.
1987
1988 2006-03-28  Mike Kestner  <mkestner@novell.com>
1989
1990         * MainMenu.cs: 
1991         * Menu.cs:
1992         add a few missing methods from the class status output.
1993
1994 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
1995
1996         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
1997           correct.
1998
1999 2006-03-28  Mike Kestner  <mkestner@novell.com>
2000
2001         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
2002
2003 2006-03-27  Mike Kestner  <mkestner@novell.com>
2004
2005         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
2006         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
2007
2008 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
2009
2010         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
2011
2012 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
2013
2014         * ThemeWin32Classic.cs:
2015           - GroupBox: Inserted a little gap between the text and the lines
2016             on the right side
2017           - Made the code in CPDrawBorder3D more readable
2018           - Corrected the drawing location of the up and down arrows in 
2019             CPDrawScrollButton
2020
2021 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
2022
2023         * ControlPaint.cs: Corrected line widths in DrawBorder for
2024           ButtonBorderStyle Inset and Outset
2025
2026 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
2027
2028         * ThemeWin32Classic.cs:
2029           - Rewrote the totally broken CPDrawBorder3D method. That was
2030             one of the main problems for the terrific ThemeWin32Classic
2031             look
2032           - Updated and corrected Button drawing
2033           - Correct the dimensions of the SizeGrip to match ms ones
2034           - Removed a small drawing glitch in DrawComboBoxEditDecorations
2035         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
2036           Border3DStyle.Sunken to match ms.
2037
2038 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
2039
2040         * ThemeWin32Classic.cs: First small part of the "de-uglify
2041           ThemeWin32Classic" effort, SizeGrip
2042
2043 2006-03-24  Jackson Harper  <jackson@ximian.com>
2044
2045         * XplatUIX11.cs: Give a max idle time of one second, this matches
2046         MS and forces an Idle event every second when there are no other
2047         events in the queue.
2048
2049 2006-03-24  Mike Kestner  <mkestner@novell.com>
2050
2051         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
2052         * ListView.Item.cs: fix layout issues with null image lists and images
2053         smaller than checkbox size.
2054         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
2055         mode like MS does.  It's weird, but consistent.  ;-)
2056         Fixes #77890.
2057
2058 2006-03-24  Mike Kestner  <mkestner@novell.com>
2059
2060         * ListView.cs: Scroll wheel support for the item control.  Fixes
2061         #77839.
2062
2063 2006-03-23  Jackson Harper  <jackson@ximian.com>
2064
2065         * ScrollableControl.cs: Special case negative sized areas, not
2066         zero.
2067         * MonthCalendar.cs: Save the rect of the clicked date so we can
2068         use it for invalidation.
2069         - Try to cut down on the number of invalidates
2070         - Invalidate the rect the mouse is over and was over when moving
2071         the mouse, so we get the focus box following the cursor.
2072
2073 2006-03-23  Mike Kestner  <mkestner@novell.com>
2074
2075         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
2076         focus rectangle drawing. Fixes #77835.
2077
2078 2006-03-23  Mike Kestner  <mkestner@novell.com>
2079
2080         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
2081         the if and else if and reverting back to the original == check on the
2082         None conditional.
2083
2084 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
2085
2086         * FontDialog.cs: Update the example panel if the selected index of
2087           the fontListBox changes.
2088
2089 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
2090
2091         * FileDialog.cs: Make FileDialog remember which directory it was in
2092           last in the same execution.
2093
2094 2006-03-22  Mike Kestner  <mkestner@novell.com>
2095
2096         * FileDialog.cs: make the DropDownMenu on the toolbar display
2097         RadioChecks since they are mutually exclusive and that's what MS does.
2098
2099 2006-03-22  Mike Kestner  <mkestner@novell.com>
2100
2101         * Theme.cs: add Color param to CPDrawMenuGlyph.
2102         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
2103         checks and radio marks and arrows are visible on highlighted items.
2104         * ControlPaint.cs: update to use new Theme signature.
2105
2106 2006-03-22  Mike Kestner  <mkestner@novell.com>
2107
2108         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
2109         is active. Fixes #77870.
2110
2111 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
2112
2113         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
2114           to be focused/selected after startup
2115
2116 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
2117
2118         * ColorDialog.cs: 
2119           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
2120             CustomColors and ShowHelp properties
2121           - Some internal rewrites to get better results when using the
2122             ColorMatrix
2123
2124 2006-03-22  Mike Kestner  <mkestner@novell.com>
2125
2126         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
2127         HoverSelection.  Fixes #77836.
2128
2129 2006-03-22  Mike Kestner  <mkestner@novell.com>
2130
2131         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
2132         ToggleButtons.  (De)Sensitize the Back button around a stack count of
2133         1, not 0.  Update ButtonSize based on a pixel count of the win32
2134         control.  Adjust the toolbar size/location for new button size.
2135
2136 2006-03-22  Jackson Harper  <jackson@ximian.com>
2137
2138         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
2139         true.
2140         * ScrollBar.cs: When doing increments and decrements we need to
2141         set the Value property so that ValueChanged gets raised. A
2142         possible optimization here would be to make an internal SetValue
2143         that doesn't invalidate immediately.
2144         * ToolTip.cs: Tooltips get added to their container (when
2145         supplied) so they get disposed when the container is disposed.
2146         - Don't create tooltips for String.Empty. This prevents all these
2147         little 2-3 pixel windows from showing up when running nunit-gui
2148         and driving me mad.
2149         * Form.cs: Don't set topmost when setting the owner if the handles
2150         haven't been created yet.  The topmost set will happen when the
2151         handles are created.
2152
2153 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
2154
2155         * XplatUIX11.cs:
2156           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
2157           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
2158             visible (to allow them to recalculate their sizes)
2159
2160 2006-03-21  Mike Kestner  <mkestner@novell.com>
2161
2162         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
2163         methods. Removed a ton of redundant code.  Still not really happy with
2164         the border rendering, but I think that's mainly because of the
2165         ControlDarkDark being black instead of a dark grey. Depending on how 
2166         close we want to be, we might want to revisit those color choices.
2167         Among the new features added during the refactor were DropDownArrow
2168         pressed rendering, Disabled image rendering.  Proper flat appearance
2169         boundary rendering.  Removed the Divider and Wrapping dividers since I
2170         can't figure out any combination of themes and conditions to make the
2171         MS control draw a horizontal line on a toolbar despite what the
2172         Divider property docs indicate.
2173         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
2174         conditions and incorrect layout.  Updated to coding standard.
2175         * ToolBarButton.cs: refactored layout and positioning code from
2176         ToolBar to here.  Invalidate wherever possible instead of forcing
2177         redraws of the whole toolbar. 
2178         (Known remaining issues: explicit ButtonSize smaller than provided
2179         images.)
2180
2181 2006-03-21  Mike Kestner  <mkestner@novell.com>
2182
2183         * ContextMenu.cs (Show): use the position parameter instead of just
2184         showing at the MousePosition.
2185
2186 2006-03-21  Jackson Harper  <jackson@ximian.com>
2187
2188         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
2189         control handle this.
2190         * TreeNodeCollection.cs: If we are clearing the root node we need
2191         to reset top_node so calcs can still happen.
2192         * ThemeWin32Classic.cs: This is a Flags so we need to check
2193         properly.
2194         
2195 2006-03-21  Jackson Harper  <jackson@ximian.com>
2196
2197         * DataGrid.cs: Create columns when the binding context has been
2198         changed.
2199         * X11Structs.cs: Keysyms are uints.
2200         - Add size to fix build.
2201
2202 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
2203
2204         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
2205           XplatUIOSX.cs: 
2206           - Added ResetMouseHover method to allow controls to retrigger
2207             hovering if they need it more than once
2208           - Implemented MouseHoverTime and MouseHoverSize properties
2209         * Timer.cs: Start() must reset the interval
2210         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
2211           properties
2212
2213 2006-03-21  Jackson Harper  <jackson@ximian.com>
2214
2215         * X11Keyboard.cs: improved layout detection. Move the nonchar
2216         tables into this file.
2217         * KeyboardLayouts.cs: Move the tables into resource files.
2218
2219 2006-03-21  Mike Kestner  <mkestner@novell.com>
2220
2221         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
2222
2223 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
2224
2225         * Mime.cs: Various speed optimizations. Looking up mime types
2226           is now 2 times faster than before
2227
2228 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
2229
2230         * CreateParams.cs: Added internal menu field
2231         * Control.cs: 
2232           - Switched call order for UpdateBounds; now we always call
2233             the one that also takes ClientSize, and we're calculating the 
2234             client size via driver method in the others. The previous
2235             method of tracking client size by difference wasn't working
2236             for forms where even the starting client size wouldn't match
2237             the overall form size (due to borders) (Part of fix for #77729)
2238           - CreateParams(): Do not use parent.Handle unless the handle is
2239             already created. Causes havoc with Nexxia and throws off our
2240             creation of controls
2241         * XplatUIX11.cs:
2242           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
2243           - Switched handling of ConfigureNotify over to new PerformNCCalc 
2244             method (consolidates code)
2245           - Changed RequestNCRecalc to use new PerformNCCalc method
2246           - Added calls to RequestNCRecalc when menus and borders are changed
2247             to allow app to set NC size. (Part of fix for #77729) This matches
2248             when MS send a WM_NCRECALC on Win32 windows.
2249           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
2250             (Part of fix for #77729). This matches what MS does, they also
2251             send that message when the form is made visible.
2252           - XException.GetMessage: Improved usability of X errors by including
2253             a translation of the window into Hwnd and Control class
2254           - Improved debug info for window creation, reparenting and destruction
2255           - Created helper method WindowIsMapped() [Currently not used]
2256         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
2257         * Form.cs:
2258           - CreateParams: Now setting our menu on the new internal menu field
2259           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
2260             avoid calculating the same property twice
2261         * Hwnd.cs:
2262           - Improved usability of ToString() for debugging purposes
2263           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
2264             determine the height of the menu, instead of just the font. This
2265             required to also create a graphics context and to keep a bmp 
2266             around (for performance reasons)
2267
2268 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
2269
2270         * MenuAPI.cs: Added OnMouseUp method
2271         * Form.cs:
2272           - Now remembering the requested client size, avoids size errors
2273           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
2274             instead of base if the menu is active. This is required due to
2275             control now capturing and releasing on down/up and it would
2276             prematurely release our menu capture
2277
2278 2006-03-17  Jackson Harper  <jackson@ximian.com>
2279
2280         * KeyboardLayouts.cs: Add the czech layouts.
2281
2282 2006-03-16  Jackson Harper  <jackson@ximian.com>
2283
2284         * Control.cs: Use the viewport space when sizing not the controls
2285         client size, so things like ScrollableControl that effect the
2286         viewport size (when scrollbars are added) are computed correctly.
2287         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
2288         of ManagerEntrys.
2289         - Handle creating BindingManagers for null data sources.
2290         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
2291         source, otherwise when rows are added they are added to the 'fake'
2292         datasource and we will crash when trying to set the position in
2293         those rows.
2294         - Use Implicit scrollbars on the datagrid so they arent
2295         selectable.
2296         
2297 2006-03-16  Jackson Harper  <jackson@ximian.com>
2298
2299         * Binding.cs:
2300         * InternalWindowManager.cs:
2301         * MdiWindowManager.cs:
2302         * X11Keyboard.cs: I really want Mike to love me again (fix
2303         compiler warnings).
2304
2305 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
2306
2307         * DataGrid.cs:
2308           - OnMouseDown: Switch to editing mode when clicking on the cell
2309                          even if we're clicking on the cell that's currently 
2310                          selected
2311           - ProcessGridKey: Left/Right now wrap like MS.Net does
2312           - ProcessGridKey: Tab now knows to add a new row when tab is
2313                             pressed in the cell of the last column of the 
2314                             last row
2315           - ProcessGridKey: Enter now adds another row  if pressed in the last
2316                             row and selectes the new row, same column cell
2317           - ProcessGridKey: Home/End navigate columns, not rows, like 
2318                             originally implemented
2319           - Broke ProcessKeyPreview code out into an extra Internal method
2320             so it can be called from the edit code
2321         * DataGridTextBox.cs (ProcessKeyMessage):
2322           - Switched to accept Tab keypresses
2323           - Added F2 handling to allow jumping to the end of the edited cell
2324           - Added logic to allow moving caret left/right inside edited cell
2325             and making the edited cell jump when the caret hits cell borders
2326           - Tab and Enter are now passed to the datagrid after being handled
2327         * TextBoxBase.cs:
2328           - Removed capture code now that Control handles it
2329           - set_SelectionStart now ensures caret is visible
2330
2331 2006-03-16  Jackson Harper  <jackson@ximian.com>
2332
2333         * TrackBar.cs: Debackwards the increment/decrement for handling
2334         mouse clicks on the bar with vertical trackbars.
2335         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
2336         bottom to match MS.
2337
2338 2006-03-16  Mike Kestner  <mkestner@novell.com>
2339
2340         * ListView.cs: make shift/ctrl keyboard and mouse selection 
2341         consistent with the MS control. Fix a bug in
2342         SelectedListViewItemCollection.Clear that was pissing me off for the
2343         better part of a day because the collection was being altered
2344         underneath us as we walked the list.
2345
2346 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
2347
2348         * Control.cs: Not sure how we could miss this so long, but it seems
2349           that MS.Net has Capture set all the way from before calling 
2350           OnMouseDown through sending the mouse events until after
2351           OnMouseUp. This will fix DataGrid's selection being set to end
2352           at the location of the MouseUp.
2353
2354 2006-03-15  Jackson Harper  <jackson@ximian.com>
2355
2356         * BindingContext.cs: Check the binding after its added so that it
2357           can initialize the binding managers and hookup to events.
2358         * Binding.cs: Data members seem to sometimes include rows/cols in
2359           the format Row.Column we now take this into account.
2360           - Hookup to the position changed event so we can update the
2361           control when the position has changed in the data set.
2362         * CurrencyManager.cs: Take into account the row/col naming
2363           convention when creating dataset tables.
2364         * BindingContext.cs: Using a newer better way of storing
2365           datasource/datamember pairs.  Hopefully this better matches MS for
2366           looking up binding managers.
2367
2368
2369 2006-03-15  Jackson Harper  <jackson@ximian.com>
2370
2371         * BindingContext.cs: The currency manager needs the data member
2372         name, if the member is a data set we use the name to find the
2373         correct table.
2374         * CurrencyManager.cs: When creating the list prefer an IList over
2375         an IListSource.
2376         - Attempt to create a DataTable from a DataSet (TODO: might need
2377         some better error checking here, although MS doesn't seem to have much)
2378         - If we have a DataTable create a view and use it as our list.
2379
2380 2006-03-15  Mike Kestner  <mkestner@novell.com>
2381
2382         * ListView.cs: keep a matrix of the icon mode layout to facilitate
2383         keyboard navigation. Support Up/Down/Left/Right selection correctly
2384         for all 4 View modes.
2385         * ListViewItem.cs: add internal row/col fields for icon layouts.
2386
2387 2006-03-15  Jackson Harper  <jackson@ximian.com>
2388
2389         * TabControl.cs: Redraw the tabs when we resize so their newly
2390         calculated sizes are drawn on screen.
2391         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
2392         composite characters.
2393         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
2394         - filter events so that composite characters can be created
2395         patches by peter
2396         * X11Structs.cs: Add XIMProperties enum.
2397
2398 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
2399
2400         * Control.cs (BringToFront, SendToBack): Don't use window or handle
2401           unless it's created
2402
2403 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
2404
2405         * Control.cs (PerformLayout): We don't need to consider visiblity
2406           for anchoring, only for docking. This fixes 'whacky' alignment
2407           in listbox and other controls that use implicit scrollbars after
2408           the previous PerformLayout patch
2409         * ListBox.cs: Switched to use implicit scrollbars
2410           
2411 2006-03-14  Mike Kestner  <mkestner@novell.com>
2412
2413         * ToolBar.cs: 
2414         * VScrollBar.cs:
2415         - chain up the "new event" overrides to base and use
2416         OnEvent to raise them.  Part of fix for bug #76509.
2417
2418 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
2419
2420         * FileDialog.cs: Do not select an item in the parent directory
2421           on backspace
2422
2423 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
2424
2425         * Control.cs (PerformLayout): It would seem that we considered
2426           invisible windows for our layout. Not quite the right thing
2427           to do. Now we don't any longer, thereby fixing bug #76889.
2428
2429 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
2430
2431         * Control.cs (CanFocus): I goofed. A control can have focus 
2432           even though it's not selectable. Made it match MS docs.
2433
2434 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
2435
2436         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
2437           center by default (fixes #76895)
2438         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
2439           all uses of Border3DSides.All with the explicit ORd together
2440           Left|Right|Top|Bottom because I assume that nobody was aware 
2441           that All also implies a center fill. Most places I checked had
2442           a fill right above.
2443         * ProgressBarStyle.cs: Added
2444
2445 2006-03-13  Mike Kestner  <mkestner@novell.com>
2446
2447         * ListView.cs: fix breakage in drag shadow header positioning 
2448         from Peter's csc compilation fix.
2449
2450 2006-03-13  Mike Kestner  <mkestner@novell.com>
2451
2452         * ListView.cs: fix NRE produced by backspacing twice in a focused
2453         FileDialog.
2454
2455 2006-03-13  Mike Kestner  <mkestner@novell.com>
2456
2457         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
2458
2459 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
2460
2461         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
2462           be changed
2463         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
2464           the allowed size before making programmatic size changes
2465
2466 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
2467
2468         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
2469           set, metacity is broken and will still use the emty sizes in 
2470           the struct. (Fix for #77089)
2471
2472 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
2473
2474         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
2475           WindowExStyles and marked both enums as Flags
2476         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
2477           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
2478           to match WindowStyles split
2479         * XplatUIX11.cs:
2480           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
2481           - Updated to match WindowStyles split
2482         * XplatUIWin32.cs:
2483           - Fixed FosterParent creation, was using ExStyle on the Style field
2484             (This should help with Popup focus issues)
2485           - Updated to match WindowStyles split
2486
2487 2006-03-13  Jackson Harper  <jackson@ximian.com>
2488
2489         * MdiWindowManager.cs: Use the system menu height. Fixes some
2490         strange sizing issues.
2491
2492 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
2493
2494         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
2495         * TextBoxBase.cs:
2496           - Scroll to caret after inserting text (#77672)
2497           - Make scroll range one pixel higher, fixes off-by-one error (and
2498             makes underlines visible on the last line)
2499
2500 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
2501
2502         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
2503           the keyboard state from being stuck with keys in 'pressed' state when
2504           focus is switched away via keyboard
2505         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
2506           reset the keyboard if no X11 KeyUp events are expected to come
2507         * X11Structs.cs: Switched type of Visible to bool to match driver
2508
2509 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
2510
2511         * TextControl.cs:
2512           - Switched caret to be just 1 pixel wide, matches MS and looks less
2513             clunky
2514           - Moved caret display 1 pixel down from the top of the control
2515             to improve view
2516           - InsertCharAtCharet: Update the selection start if moving the caret
2517             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
2518           - No longer always creating the caret when the caret methods are
2519             called. Only the actual ShowCaret/HideCaret will do that now
2520           - Only setting caret visible if the owner control has focus
2521           - UpdateView: Added invalidation-shortcut logic for center and right 
2522             aligned text. Previously we'd update all according to the left
2523             logic which caused drawing errors. Also fixed height of invalidated
2524             areas, now properly invalidating the whole area (was off-by-one)
2525           - owner_HandleCreated: Always generate the document when the
2526             handle is created; this ensures that 
2527         * TextBoxBase.cs:
2528           - Fixed situation where caret would disappear under the right
2529             window border, also improved scrolling behaviour on left-
2530             aligned textboxes
2531           - Fixed right-aligned textboxes to have a border to the
2532             right instead of the caret being under the right border
2533         * XplatUIX11.cs:
2534           - Switched from 'nested' to simple visible/not visible tracking 
2535             for caret (part of fix for #77671)
2536           - No longer passing through translated FocusIn/FocusOut messages
2537             since we were notifying too often and the wrong windows. Instead
2538             we just notify our focussed window of receiving or loosing focus
2539         * XplatUIWin32.cs: Switched from 'nested' show/hide 
2540           counting for caret to simple visible yes/no behaviour (part of 
2541           fix for #77671)
2542
2543 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
2544
2545         * Mime.cs: Remove debug code...
2546
2547 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
2548
2549         * MimeGenerated.cs: Removed
2550         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
2551           and subclasses) from /usr/(local/)share/mime and
2552           $HOME/.local/share/mime.
2553
2554 2006-03-10  Jackson Harper  <jackson@ximian.com>
2555
2556         * MdiWindowManager.cs: Recalc the NC area when a window is
2557         maximized/restored so that the menu area is drawn on forms that
2558         don't have a menu.
2559
2560 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
2561
2562         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
2563           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
2564           us to force a WM_NCCALCRESIZE message being sent. This is needed
2565           for MDI maximizing.
2566
2567 2006-03-10  Jackson Harper  <jackson@ximian.com>
2568
2569         * Form.cs: We need to use the ActiveMenu when calculating menu
2570         height.
2571         - Fix nullref when the window manager hasn't been created yet.
2572         * Control.cs: Fix nullref when we try to bring a control to the
2573         front that has no parent.
2574         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
2575         height.
2576         - Add a dummy item to the maximized menu so it always has the
2577         correct height. Otherwise when there are no menus we don't get our
2578         icon and buttons.
2579         
2580
2581 2006-03-10  Jackson Harper  <jackson@ximian.com>
2582
2583         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
2584         stuff.
2585         * Form.cs: Make the window_state internal so the window managers
2586         can track it.
2587         - When an MDI child is maximized let its window manager create the
2588         main menu (so it can add its icon).
2589         - Notify the window managers of state changes
2590         - Let the window manager paint its buttons and handle button
2591         clicks on the menu when it is maximized.
2592         * InternalWindowManager.cs: Move the prev_bounds into the mdi
2593         window manager, since tool windows don't use it, only mdi windows.
2594         - Tell the main form that we don't want it to handle NCPAINT
2595         itself to avoid extra painting.
2596         - Handle clicks on a maximized windows menu.
2597         - Handle window state changes
2598         - Handle minimize/maximize clicks correctly by setting the window state.
2599         * MdiWindowManager.cs: Add an icon menu that (the menu you get
2600         when clicking on the forms icon).
2601         - New method to create a forms maximized menu. This is its normal
2602         menu + an icon.
2603         - Handle window state changes.
2604         - Handle sizing of maximized windows.  Maximized windows are just
2605         drawn bigger then the parent visible area. All controls are still
2606         there, they are just outside the visible area (this matches windows).
2607         * MdiClient.cs: No scrollbars when a child window is maximized.
2608         - Let the children windows figure out how big they should be when
2609         sizing maximized windows.
2610         - Implement a version of ArrangeIconicWindows somewhat similar to
2611         Windows version.  There are some little differences, but I don't
2612         think any app will rely on the layout of minimized mdi windows.
2613
2614 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
2615
2616         * Padding.cs: Several fixes to allow compiling with csc 2.0
2617
2618 2006-03-09  Jackson Harper  <jackson@ximian.com>
2619
2620         * Menu.cs:
2621         * MenuItem.cs: Cheap hack so we can add items to the list without
2622         the events being raised.  This allows adding mdi items during
2623         drawing. TODO: Should probably find a better time to add the items.
2624
2625 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
2626
2627         * ThemeWin32Classic.cs:
2628           - CheckBox_DrawText: Added logic to not wrap if not enough space
2629             is available (Fix for bug #77727)
2630           - RadioButton_DrawText: Added logic not to wrap if not enough
2631             space is available (Fix for bug #77727). Also removed some
2632             duplicate code, DrawString always drawing the regular text
2633             before hitting the if statement.
2634
2635 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
2636
2637         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
2638
2639 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
2640
2641         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
2642         * ContainerControl.cs: Partial implementation of some 2.0 scaling
2643           methods. Moved the new 2.0 properties into alphabetical order with
2644           other properties and added MonoTODO tags
2645
2646 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
2647
2648         * AutoScaleMode.cs: Added. Fix build.
2649
2650 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
2651
2652         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
2653           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
2654           and was requiring premature handle creation for calls from above
2655         * Form.cs, Control.cs: Removed handle arguments from calls to
2656           CalculateClientRect()
2657
2658 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
2659
2660         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
2661           drag_column.column_rect is MarshalByRef and can't be used that way
2662
2663 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
2664
2665         * AxHost.cs: Added deserialization constructor for 
2666           AxHost+State (fixes 77743)
2667
2668 2006-03-09  Mike Kestner  <mkestner@novell.com>
2669
2670         * ListView.cs: 
2671         - Added column drag reordering for details view.
2672         - fixed behavior when mouse is dragged off column and
2673         AllowColumnReorder is false.
2674         * ColumnHeader.cs: clone the format too in Clone.
2675         * Theme.cs: add DrawListViewHeaderDragDetails method.
2676         * ThemeWin32Classic.cs:
2677         - impl new method for drawing drag column shadows and targets.
2678         - support column offset for details mode in DrawListViewItem.
2679
2680 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
2681
2682         * TextControl.cs: Reset the char_count when the document is cleared
2683           (Fixes bug reported on mono-winforms mailing list)
2684
2685 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
2686
2687         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
2688           of calling base we simply process the key ourselves, since both
2689           DefWindowProc and the handled method would set m.Result. 
2690           (Fixes #77732)
2691
2692 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
2693
2694         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
2695           method also moves the window; instead implemented a copy of
2696           Control.ScaleCore (Part of fix for #77456)
2697         * TextBoxBase.cs: 
2698           - Created new CreateGraphicsInternal method to allow providing
2699             a graphics context when no handle is created without triggering
2700             handle creation. (Part of fix for #77456)
2701           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
2702         * TextControl.cs: 
2703           - Switched Constructor to require TextBoxBase instead of Control (to
2704             allow uncast access to CreateGraphicsInternal)
2705           - Safeguarded use of owner.Handle property. No longer accessing it
2706             unless the handle is already created.
2707           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
2708           - Now triggering a recalc when owning control becomes visible
2709         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
2710           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
2711           premature handle creation (Part of fix for #77456)
2712         * Control.cs:
2713           - We now only destroy our double-buffering buffers when the
2714             control is resized or disposed, but not when visibility
2715             changes. (The code even re-created them twice every time)
2716           - Now requiring a redraw of the buffer on visibility changes
2717             (fixes bug 77654 part 2)
2718           - Not passing OnParentVisibleChanged up unless the control
2719             is visible
2720           - CanFocus: Fixed to match MS documentation
2721           - Focus: Fixed to return actual focus state and to check if
2722             setting focus is legal before setting it
2723
2724 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
2725
2726         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
2727           when to draw focus rectangle by looking at parent focus and
2728           selected state instead. This fixes TabPages on Linux sometimes
2729           having none or multiple focus rectangles.
2730         * XplatUIX11.cs (SetFocus): 
2731           - Don't set the focus if the same window already has focus
2732           - Use SendMessage instead of PostMessage (like it's Win32
2733             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
2734             to match MS behaviour
2735         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
2736           are not selectable.
2737
2738 2006-03-07  Jackson Harper  <jackson@ximian.com>
2739
2740         * PictureBox.cs: Revert line I accidently committed last week.
2741
2742 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
2743
2744         * Control.cs: 
2745           - Added new IsRecreating and ParentIsRecreating properties to
2746             allow testing if RecreateHandle has been called on ourselves
2747             or one of our parents
2748           - WndProc(WM_DESTROY): If our control handle is being recreated
2749             we immediately need to create the handle when receiving the
2750             destroy, that way our child windows find a valid parent handle
2751             when they themselves are being recreated upon WM_DESTROY receipt
2752             (fix for bug #77654 part 1)
2753         * XplatUIX11.cs:
2754           - DestroyWindow: WM_DESTROY must be sent to our own window before
2755             notifying any child windows. MS documents that child windows
2756             are still valid when WM_DESTROY is received. (Control now relies on
2757             this behaviour)
2758           - Added some fine-grain debug options
2759
2760 2006-03-06  Jackson Harper  <jackson@ximian.com>
2761
2762         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
2763         box and base calculations off this.
2764         * MdiChildContext.cs:
2765         * MdiWindowManager.cs: Don't need to ensure scrollbars here
2766         anymore.
2767         
2768 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
2769
2770         * Splitter.cs: In situations where the affected control is added
2771           to the parent's control list after the splitter, we would not
2772           populate affected. Now we try populating it on mousedown, if
2773           it's not already set, and force it to be re-set whenever our
2774           parent changes.
2775
2776 2006-03-03  Matt Hargett  <matt@use.net>
2777
2778         * Control.cs: implement Control.Padding
2779         * Padding.cs: -Padding.All returns -1 when constructing with the
2780         implicit default ctor
2781         -Padding.ToString() matches MS.NET
2782         * ContainerControl.cs: implement
2783         ContainerControl.AutoScaleDimensions
2784         * ListControl.cs: implement ListControl.FormattingEnabled
2785         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
2786         * ButtonBase.cs:
2787         * TabPage.cs: Implement UseVisualStyleBackColor.
2788         * PictureBox.cs: Implement PictureBox.InitialImage.
2789
2790 2006-03-03  Mike Kestner  <mkestner@novell.com>
2791
2792         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
2793         event declarations to proxy to base event.
2794         * ListViewItem.cs: update to use ItemControl.
2795         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
2796         * ThemeWin32Classic.cs: update to new ListView theme API and fix
2797         column header label rendering for 0 width columns.
2798
2799 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
2800
2801         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
2802           that causes the control to be created. Fixes #77476.
2803
2804 2006-03-02  Jackson Harper  <jackson@ximian.com>
2805
2806         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
2807         expose_pending.
2808
2809 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
2810
2811         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
2812           passed in for the EventArgs (fixes #77690)
2813
2814 2006-03-01  Jackson Harper  <jackson@ximian.com>
2815
2816         * ScrollBar.cs: Refresh afterbeing resized.
2817
2818 2006-02-28  Mike Kestner  <mkestner@novell.com>
2819
2820         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
2821         Clean up a tracker compile warning.
2822         * MenuItem.cs: add internal PerformPopup method.
2823         [Fixes #77457]
2824
2825 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
2826
2827         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
2828           implicit expose) when the text is set to null
2829
2830 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
2831
2832         * RichTextBox.cs (FlushText): When newline is true, we always
2833           need to split the line, even if no text is on it and we may
2834           never eat newlines. (Fixes #77669)
2835
2836 2006-02-28  Mike Kestner  <mkestner@novell.com>
2837
2838         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
2839         and set Selected instead.
2840         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
2841         collections.
2842
2843 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
2844
2845         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
2846
2847 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
2848
2849         * FontDialog.cs:
2850           - Got rid of the panel. All controls are now directly added to
2851             the dialog form
2852           - It is now possible to set a font with the Font property
2853           - MinSize and MaxSize property do now what they should
2854           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
2855           - Searching and selecting a font with the font textbox works now,
2856             the same applies to the style and size textbox
2857           - Draw the correct 3D border in the example panel
2858           - Fixed a little mem leak (unused fonts didn't get disposed)
2859           - Many other internal updates/rewrites...
2860           - Fix typo
2861
2862 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
2863
2864         * TextControl.cs: 
2865           - InsertRTFFromStream: Added 'number of characters inserted' argument
2866           - set_SelectedRTF: Now using the number of characters to calculate
2867             the new location for the selection and cursor (x/y cannot be used
2868             due to potentially already wrapped text)
2869
2870 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
2871
2872         * TextControl.cs: Added property and implemented means to allow 
2873           disabling recalculation of a document (can be used to speed up
2874           multiple inserts and is needed to make RTF inserts predictable, see
2875           bug #77659)
2876         * RichTextBox.cs: Using the new NoRecalc property of Document to
2877           keep x/y insert locations predictable. Also makes it faster inserting
2878           large chunks of RTF
2879
2880 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
2881
2882         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
2883           it's easier for a child control to handle the other messages without
2884           having to duplicate the special functionality
2885         * TextBoxBase.cs
2886           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
2887             code to handle processing the key ourselves, in order to get 
2888             access to the result of KeyEventArgs.Handled. We now only call 
2889             ProcessKey if they key hasn't been handled already. Fixes #77526.
2890           - set_Text: If null or empty string is given, just clear the 
2891             document. Fixes part of #77526
2892
2893 2006-02-27  Jackson Harper  <jackson@ximian.com>
2894
2895         * SizeGrip.cs: Paint the background color before painting the grip
2896         so things look right.
2897         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
2898
2899 2006-02-27  Mike Kestner  <mkestner@novell.com>
2900
2901         * ListView.cs:
2902           - Restructure layout and invalidation model to remove a ton of
2903           flicker from the control and speed up performance in general.
2904           - Add manual column resize, flickers like crazy, but I already have
2905           some ideas on how I'll fix that. (#76822)
2906           - Merge the three Icon-based views into a single layout method.
2907           - Move item selection interaction logic from the item since 
2908           interaction with the collections is more appropriate to the view.
2909           - Deselection on non-item clicks.
2910         * ListViewItem.cs:
2911           - Encapsulate most of the layout. Add some internal props to trigger
2912           layout.  Move to a model where Items invalidate themselves instead
2913           of just invalidating the whole control every time something changes.
2914           - Invalidate on Text/Caption changes.
2915           - switch to an offset based layout model to avoid having to absolute
2916           position every element on item moves.
2917           - correct checkbox layout to conform to MS layout.
2918         * ThemeWin32Classic.cs:
2919           - refactor some column header drawing code.
2920           - fix string justification for column headers (#76821)
2921           - make SmallIcon labels top justified for compat with MS impl.
2922         * ThemeClearlooks.cs:
2923           - adjust to new ListViewItem internal checkbox bounds api.
2924
2925 2006-02-27  Jackson Harper  <jackson@ximian.com>
2926
2927         * Control.cs:  Change where implicit controls fall in the zorder.
2928         They are now on top of all children.
2929         - Synced AddImplicit code with Add
2930         - Removed unused enumerator.
2931         * SizeGrip.cs: Remove the TODO as its been TODONE.
2932
2933 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
2934
2935         * TextControl.cs(Insert): Combine the last lines unless the insertion
2936           string ends with \n\n, otherwise we leave one line too many (Fixes
2937           something I noticed with the testapp for #77526; the bug itself was
2938           already fixed in the previous checkin)
2939
2940 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
2941
2942         * RichTextBox.cs:
2943           - SelectionColor and SelectionFont methods no longer set absolute
2944             styles. Instead, the keep font or color respectively (This 
2945             resolves a long-standing FIXME in the code)
2946           - When flushing RTF text, the insert code now considers text trailing
2947             behind the insertion point (Fixes the bug where when replacing
2948             the selected text via SelectedRTF the remainder of the line behind 
2949             the selection would stay on the first insertion line)
2950         * TextBoxBase.cs:
2951           - AppendText now updates the selection points after inserting text
2952           - AppendText now ensures that the last tag (sometimes 0-length) of
2953             the document is used for the style information (Fixes part of 
2954             bug #77220)
2955         * TextControl.cs:
2956           - Created new FontDefiniton class to allow describing partial style
2957             changes
2958           - StreamLine() now takes a lines argument, to allow it to decide
2959             whether an encountered zero-length tag is the last in the document
2960             (which must be kept to not loose the font/color contained in it,
2961             for later appends)
2962           - Created Combine() and Split() methods for Marker structs, to 
2963             support marker updates due to reformatted documents (soft line
2964             wraps)
2965           - Implemented Document.CaretTag setter
2966           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
2967             of the last line (Not the cause, but also exposed by bug #77220)
2968           - Added LineTag argument to InsertString method, to allow callers
2969             to force a certain tag to be used (required to force use of the
2970             trailing zero-length tag of a document)
2971           - Now updating markers in Combine(), to avoid stale tag markers
2972           - Added some method descriptions to aid maintenance
2973           - Implemented new FormatText concept, allowing additive/subtractive
2974             formatting by only specifying the components that are to be 
2975             changed. This was needed for resolving the RTB.SelectedColor/
2976             RTB.SelectedFont fixmes
2977           - Added Break() support method to allow breaking up linetags (used
2978             for partial formatting)
2979           - Added GenerateTextFormat() method. It is used for partial 
2980             formatting and allows to generate a full font/color from given
2981             attributes and an existing tag.
2982
2983 2006-02-26  Jackson Harper  <jackson@ximian.com>
2984
2985         * XplatUIX11.cs:  Use the correct caption height.
2986         - Translate hittest coordinates to screen coords to match MS.
2987         * XplatUIWin32.cs: When we create MDI windows we need to reset
2988         some of the style flags, so we get a nice blank window, and can
2989         draw all the decorations ourselves.
2990         - Set a clipping rectangle on the non client paint event, the
2991         window manager drawing code needs one.
2992         * Form.cs: The window manager needs to know when the window state
2993         has been updated.
2994         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
2995         don't need to factor in border and title sizes in these
2996         methods. TODO: Remove the args and fix the call points.
2997         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
2998         properly.
2999         - Let the driver set the cursors.
3000         - Improve active window handling
3001         - Correct sizes for title bars and buttons.
3002         - Match MS drawing better
3003         * MdiWindowManager.cs: We don't need to handle border style
3004         updates specially anymore.
3005         - Check for scrollbars when windows are done moving
3006         - Handle Active properly.
3007         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
3008         correctly. I am spewing the exception though, so we don't hide the
3009         bugs.
3010         
3011 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
3012
3013         * DataGridViewRowPostPaintEventArgs.cs,
3014           DataGridViewCellPaintingEventArgs.cs,
3015           DataGridViewRowCollection.cs,
3016           DataGridViewRowPrePaintEventArgs.cs,
3017           DataGridViewCell.cs: Clear a few warnings and implement a few
3018           exceptions that should be thrown.
3019
3020 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
3021
3022         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
3023           'inheriting' our parent's (non-default) cursor. (Part of
3024            the fix for #77479)
3025
3026 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
3027
3028         * XplatUIX11.cs: Fixed cast to make csc happy
3029
3030 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
3031
3032         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
3033           it's for the client area (part of fix for #77479 and needed
3034           for MDI window cursor handling)
3035         * XplatUIX11.cs
3036           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
3037             the appropriate default cursors and also passing the message
3038             up the parent chain 
3039           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
3040             for non-client areas
3041
3042 2006-02-15  Jackson Harper  <jackson@ximian.com>
3043
3044         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
3045         is a real MDI window
3046
3047 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
3048
3049         * X11DesktopColors.cs: Instead of checking the desktop session
3050           string for "KDE" check if it starts with "KDE"
3051
3052 2006-02-10  Jackson Harper  <jackson@ximian.com>
3053
3054         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
3055         systems).
3056
3057 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
3058
3059         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
3060           errors
3061         * ColorDialog.cs:
3062           - Got rid of the panel. All controls are now directly added to
3063             the dialog form
3064           - Changed to mono coding style
3065
3066 2006-02-10  Jackson Harper  <jackson@ximian.com>
3067
3068         * InternalWindowManager.cs: We don't need the set visibility to
3069         false hack anymore now that peter has written beautiful shutdown
3070         code.
3071
3072 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
3073
3074         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
3075           where already explicitly destroyed
3076
3077 2006-02-10  Jackson Harper  <jackson@ximian.com>
3078
3079         * MdiClient.cs: Handle the case where windows are too high or to
3080         the left and we need scrollbars.
3081
3082 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
3083
3084         * MimeIcon.cs: Added some icons
3085         * FileDialog.cs:
3086           - Fixed bug #77477
3087           - Got rid of the panel. All controls are now directly added to
3088             the dialog form
3089           - Changed to mono coding style
3090           - On Linux "My Computer" and "My Network" will now show some
3091             more usefull information. A new class, MasterMount, gathers
3092             this information from /proc/mount. Updated MWFFileView to make
3093             use of this information
3094           - Fixed a bug that caused FileDialog to crash when
3095             ".recently_used" file had a zero size
3096           - FilterIndex does now what it should
3097           - Some Refactoring
3098         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
3099             FileDialog changes
3100
3101 2006-02-09  Jackson Harper  <jackson@ximian.com>
3102
3103         * ComboBox.cs: Don't touch if null.
3104
3105 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
3106
3107         * Cursor.cs: 64bit safeness fix
3108         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
3109
3110 2006-02-09  Jackson Harper  <jackson@ximian.com>
3111
3112         * Form.cs: If a form is made into an MDI form update the styles so
3113         all the props can get set correctly.
3114         - Kill the mdi_container when we dont need it anymore.
3115         * InternalWindowManager.cs: Add missing NOT
3116
3117 2006-02-08  Jackson Harper  <jackson@ximian.com>
3118
3119         * InternalWindowManager.cs: Respek clipping when drawing MDi
3120         decorations.
3121
3122 2006-02-08  Jackson Harper  <jackson@ximian.com>
3123
3124         * Hwnd.cs: Add bits to track non client expose events.
3125         * XplatUIX11.cs: Track non client expose events on the hwnd. This
3126         gives us a proper invalid rect and will allow for some nice
3127         optimizations with NC client drawing
3128         - MDI windows are children windows, so move their style handling
3129         into the child window block.
3130         * InternalWindowManager.cs: Remove a state reset that was
3131         getting invoked at the wrong time. Fixes managed windows getting
3132         into a 'stuck' captured state.
3133
3134 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
3135
3136         * TextControl.cs (Document.ctor): Now initializing 
3137           selection_anchor. Fixes #77493
3138
3139 2006-02-07  Jackson Harper  <jackson@ximian.com>
3140
3141         * TrackBar.cs: The increment/decrements were backwards.
3142
3143 2006-02-07  Mike Kestner  <mkestner@novell.com>
3144
3145         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
3146         to the instance itself.
3147
3148 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
3149
3150         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
3151           on ulongs and pointers, the size differs between 32bit and 64bit
3152           systems. 
3153
3154 2006-02-07  Mike Kestner  <mkestner@novell.com>
3155
3156         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
3157         for 64 bit platforms to work around a metacity bug. 
3158
3159 2006-02-07  Jackson Harper  <jackson@ximian.com>
3160
3161         * TrackBar.cs: Process the input keys we need, and hookup to
3162         KeyDown instead of using WndProc, so we get key messages.
3163
3164 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
3165
3166         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
3167           machine we're on. 
3168         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
3169           we need to translate the XdndVersion atoms array before sending it
3170
3171 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
3172
3173         * XplatUIX11.cs: 
3174           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
3175             number of bits for the property, not the number of bytes. The
3176             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
3177             but would not crash since it specified 8 bits instead of 4 bits)
3178           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
3179             defined as XID -> long in the C headers)
3180           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
3181             references since those are now IntPtr to begin with
3182           - Switched all Atom.XXX 'int' casts to IntPtr casts
3183           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
3184           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
3185           - Added XChangeActivePointerGrab DllImport (for X11DnD)
3186         * X11Structs.cs:
3187           - Changed 'int' type for Atoms in XEvent structures to IntPtr
3188           - Changed atom in HoverStruct to be IntPtr
3189         * X11DnD.cs:
3190           - Removed local DllImports, switched code to use those from XplatUIX11
3191           - Removed/fixed casts related to the switch of Atom to be a IntPtr
3192
3193 2006-02-06  Mike Kestner  <mkestner@novell.com>
3194
3195         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
3196         method signatures in the import region.  There may still be some
3197         lingering struct marshaling issues, as I didn't drill down into those.
3198         Yet.
3199
3200 2006-02-06  Jackson Harper  <jackson@ximian.com>
3201
3202         * ComboBox.cs: Dont manually set the top_item, this is computed
3203         when the scrollbar position is set.
3204
3205 2006-02-06  Mike Kestner  <mkestner@novell.com>
3206
3207         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
3208         startup crashes on amd64.  There's other fixes needed.  All pinvoke
3209         usage of Atom needs to be mapped to IntPtr for example.  And there are
3210         likely other int/long issues to be addressed.
3211
3212 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
3213
3214         * FileDialog.cs: One more...
3215
3216 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
3217
3218         * FileDialog.cs: Next try
3219
3220 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
3221
3222         * FileDialog.cs: First part of fix for #77464
3223
3224 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
3225
3226         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
3227           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
3228           AcceptButton border drawing.
3229
3230 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
3231
3232         * Form.cs: Moved positioning of form after auto scaling is applied,
3233           otherwise it would possibly use wrong form size.
3234
3235 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
3236
3237         * Control.cs (RecreateHandle): No need to re-create any child
3238           controls, the child windows will get destroyed automatically by
3239           the windowing system or driver, and re-created when the handle
3240           is being accessed the first time. Fixes #77456
3241         * Form.cs: No longer setting the form to closing if the handle is 
3242           being recreated. This seems like the right thing to do, don't
3243           have a bug or testcase for this, though.
3244
3245 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
3246
3247         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
3248           controls to avoid unwanted side effects
3249
3250 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
3251
3252         * Control.cs: 
3253           - ScaleCore needs to scale the bounds, not the ClientSize of the 
3254             control. Fixes #77416.
3255           - DefaultSize is 0,0 for control
3256         * TextBoxBase.cs: 
3257           - DefaultSize is 100, 20
3258           - SetBoundsCore: Now enforcing the height, no matter if the provided
3259             height is more or less than the preferred one, as long as AutoSize
3260             is on
3261         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
3262
3263 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
3264
3265         * Control.cs:
3266           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
3267             call unless both performLayout is true *and* we have a pending
3268             layout change
3269           - ResumeLayout: MS does not completely nest Suspend and Resume,
3270             they bottom out at 0, fixed our code to match that.
3271           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
3272             SetBoundsCore, we were updating even when we shouldn't. This fixes
3273             swf-anchors mis-anchoring when resizing the app fast and lots.
3274           - UpdateDistances: Now only setting the left and top distance if 
3275             we have a parent and are not suspended, this is based on
3276             a suggestion by Don Edvaldson in bug #77355.
3277           - OnVisibleChanged: Fixed logic when to create the control. We may
3278             not create the control if we have no parent or if it's not visible;
3279             switched to using Visible property instead of is_visible field 
3280             since the property also considers parent states. This fixes a bug
3281             when starting Paint.Net
3282
3283 2006-02-02  Jackson Harper  <jackson@ximian.com>
3284
3285         * Form.cs: If the forms handle hasn't been created yet don't call
3286         into xplatui to make it top most, just set the topmost flag on the
3287         form in CreateParams
3288         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
3289
3290 2006-02-01  Jackson Harper  <jackson@ximian.com>
3291
3292         * ScrollableControl.cs: Refactored the Recalculate method a
3293         little, this wasn't handling all the variants of bottom and right
3294         bars needed to be added and added/removed based on their
3295         counterparts being added/removed (which changes the drawable
3296         size). Also we special case client widths and heights of 0 and
3297         don't add the scrollbar for those.
3298
3299 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
3300
3301         * XplatUIX11.cs: 
3302           - Added method to get AbsoluteGeometry(); currently unused, but might
3303             be used in the future, if we try again to figure out toplevel
3304             coordinates with some more crappy window managers
3305           - Added FrameExtents() method to retrieve the WM set decoration size
3306           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
3307             to deal with at least KDE, FVWM and metacity (Fixes #77092)
3308         * Hwnd.cs: 
3309           - Added whacky_wm tracking var for metacity
3310           - Added logic to have default menu height if the actual menu height
3311             has not yet been calculated (part of fix for #77426)
3312         * Form.cs: Keep track whether client size has been set and re-set 
3313           it if a menu is added/removed afterwards (Fixes #77426)
3314
3315 2006-01-31  Jackson Harper  <jackson@ximian.com>
3316
3317         * Control.cs: When a new Site is set on the component attempt to
3318         pull the AmbientProperties from it.
3319
3320 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
3321
3322         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
3323           in the background of the owning form. Fixes #77332
3324
3325 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
3326
3327         * MimeIcon.cs: Fix for #77409
3328
3329 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
3330
3331         * XplatUIX11GTK.cs: Initial import
3332
3333 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
3334
3335         * FixedSizeTextBox: fixes class signature
3336
3337 2006-01-30  Jackson Harper  <jackson@ximian.com>
3338
3339         * FixedSizeTextBox.cs: New internal class that represents a
3340         textBox that will not be scaled.
3341         * TreeView.cs:
3342         * ComboBox.cs:
3343         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
3344         standard TextBox.
3345                 
3346 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
3347
3348         * XplatUIX11.cs: Retrieve default screen number instead of
3349           assuming 0. Attempted fix for #77318
3350
3351 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
3352
3353         * XplatUIWin32.cs: 
3354           - GetWindowPos: When a window is parented by FosterParent, use 
3355             the desktop instead of FosterParent as the base to get coordinates
3356           - CreateWindow: Don't make FosterParent the parent window for Popups
3357             if we don't want a taskbar entry, Popups automatically don't get one
3358         * Hwnd.cs: Need to call remove to actually remove the key from the
3359           hash table
3360
3361 2006-01-30  Mike Kestner  <mkestner@novell.com>
3362
3363         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
3364
3365 2006-01-30  Jackson Harper  <jackson@ximian.com>
3366
3367         * TreeView.cs:
3368         * TreeNode.cs: Raise events no matter how the treenode is
3369         checked. Patch by Don Edvalson.
3370
3371 2006-01-30  Jackson Harper  <jackson@ximian.com>
3372
3373         * TreeNode.cs: Signature fix.
3374
3375 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
3376
3377         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
3378
3379 2006-01-20  Mike Kestner  <mkestner@novell.com>
3380
3381         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
3382         event forwarding when menus are active.
3383         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
3384         Most of the patch is pdb's with a little rework.
3385
3386 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
3387
3388         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
3389           Removed GetMenuDC and ReleaseMenuDC methods; replaced
3390           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
3391         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
3392         * InternalWindowManager.cs: Added use of PaintEventStart/End to
3393           handling of WM_NCPAINT message, now passing the PaintEventArgs to
3394           the PaintWindowDecorations method
3395         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
3396         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
3397         * MenuAPI.cs: Made tracker window invisible
3398         * XplatUIWin32.cs:
3399           - Removed GetMenuDC and ReleaseMenuDC methods
3400           - Implemented the client=false path for PaintEventStart and
3401             PaintEventEnd
3402
3403 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
3404
3405         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
3406         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
3407           styles
3408         * Form.cs: 
3409           - MaximizeBox, MinimizeBox: Recreate the handle when setting
3410             the style
3411           - CreateParams: Reworked the styles to match MS look'n'feel,
3412             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
3413             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
3414
3415 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
3416
3417         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
3418           window is not mapped, since otherwise every form that's being 
3419           created is considered minimized, which is wrong.
3420         * Form.cs: Catching the exception and returning our internal value
3421           instead
3422
3423 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
3424
3425         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
3426           SetWindowMinMax() to have means to tell the driver about the minimum,
3427           maximum and maximized state window sizes. (Part of the fix for #76485)
3428         * Form.cs:
3429           - Implemented tracking of minimum and maximum window size, now calling
3430             new SetWindowMinMax() driver method to tell the driver (Part of the
3431             fix for #76485)
3432           - Finished handling of WM_GETMINMAXINFO method, now setting all values
3433             (Completes fix for #76485)
3434           - Calling new SetWindowMinMax driver method when the handle for a 
3435             form is created, to make sure the driver knows about it even if
3436             the values have been set before the window was created
3437           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
3438             to avoid messing up our anchoring calculations (partial fix
3439             for #77355)
3440         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
3441         * XplatUIX11.cs:
3442           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
3443           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
3444             (and presumably other freedesktop.org compliant WMs). Left the
3445             assumption unmapped=minimized, needed for SetVisible to work.
3446           - Now setting the window state when creating windows
3447           - Fixed SetVisible to consider/set the window state when mapping
3448             a Form. We cannot set the state before it's mapped, and we cannot
3449             use Form.WindowState once it's mapped (since it would ask the
3450             driver and get 'normal'. Therefore, we grab the state before
3451             mapping, map, and then set state.
3452           - Implmemented SetWindowMinMax method; Metacity does not seem to
3453             honor the ZoomHints, though.
3454         * XplatUIWin32.cs:
3455           - Removed MINMAXINFO (moved to XplatUIStructs)
3456           - Added SetWindowMinMax stub (on Win32 the only way to set that
3457             information is in response to the WM_GETMINMAXINFO message, which
3458             is handled in Form.cs)
3459           - Added logic to SetVisible to set the proper window state when a 
3460             form is made visible (fixes #75720)
3461
3462 2006-01-26  Jackson Harper  <jackson@ximian.com>
3463
3464         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
3465         same way we handle them with Invoke.
3466
3467 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
3468
3469         * Form.cs:
3470           - Added tracking of window state so CreateParams can return
3471             the appropriate style
3472           - Moved setting of WS_CAPTION style in CreateParams to allow
3473             styles without caption
3474         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
3475           control if the TextBox property is accessed. Fixes #77345
3476         * Control.cs:
3477           - get_Created: now uses is_disposed and is_created to determine
3478             return value (suggested by Jackson)
3479           - CreateHandle: No longer exits if the handle is being recreated
3480           - RecreateHandle: If the handle is not yet created call the 
3481             appropriate method to create either control or handle. If the
3482             control is already created CreateHandle will simply exit instead
3483             of just creating the handle
3484         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
3485           now SendMessage WM_DESTROY directly to the control when DestroyWindow
3486           is called.
3487         * XplatUIX11.cs: 
3488           - When DestroyWindow is called, instead of waiting for the 
3489             DestroyNotification from X11, we directly post it to the WndProc
3490             and immediately dispose the hwnd object.
3491             Same applies to DestroyChildWindows, and this obsoletes the
3492             expose_pending tracking. Contrary to Win32 behaviour we destroy our
3493             child windows before our own, to avoid X11 errors.
3494           - Removed the direct sending of WM_PAINT on UpdateWindow
3495         * XplatUIWin32.cs:
3496           - Reworked DoEvents and GetMessage to allow access to internal queue
3497             even when trying non-blocking access to the queue.  Fixes #77335. 
3498             Based on a patch suggestion by Don Edvalson. The new private
3499             GetMessage can now also be used as a backend for a PeekMessage
3500             frontend version.
3501         * XplatUI.cs: Improved debug output for CreateWindow
3502
3503 2006-01-25  Jackson Harper  <jackson@ximian.com>
3504
3505         * Help.cs: Allow param to be null. Patch by Don Edvalson.
3506
3507 2006-01-24  Jackson Harper  <jackson@ximian.com>
3508
3509         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
3510         when we have a MaxDropItems lower then the selected index.
3511
3512 2006-01-24  Jackson Harper  <jackson@ximian.com>
3513
3514         * Control.cs: Don't allow selection of non visible controls, allow
3515         selection of controls without parents.
3516
3517 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
3518
3519         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
3520         * DataGridDrawingLogic.cs: Add editing row only when is necessary
3521
3522 2006-01-23  Jackson Harper  <jackson@ximian.com>
3523
3524         * UpDownBase.cs: Make the textbox handle all the selection and
3525         tabbing. This fixes tabing to updown controls.
3526
3527 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
3528
3529         * TextBoxBase.cs: fixes exception thown the object was null
3530
3531 2006-01-23  Jackson Harper  <jackson@ximian.com>
3532
3533         * ButtonBase.cs: Just use the base CreateParams. They set
3534         visibility and enabled correctly.
3535         * ComboBox.cs:
3536         * TrackBar.cs:
3537         * MonthCalendar.cs: Lets let the base set as much of the
3538         createparams as possible so we don't have duplicate code all over
3539         the place.
3540
3541 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
3542
3543         * ThemeGtk.cs: Added TrackBar and some experimental code to
3544           get double buffering back
3545
3546 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
3547
3548         * DataGrid.cs: Allows row number set internally higher than the last
3549         when creating a new row. Restores the editing functionality.
3550
3551 2006-01-20  Mike Kestner  <mkestner@novell.com>
3552
3553         * MimeIcon.cs: delay Image creation until the icons are accessed
3554         instead of creating 190 scaled images on GnomeHandler startup.
3555
3556 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
3557
3558         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
3559           first call base before processing the event. Fixes #77279
3560
3561 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
3562
3563         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
3564           that the stride for the GDI bitmap would match the stride of
3565           a DIB or a Cursor.
3566
3567 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
3568
3569         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
3570
3571 2006-01-19  Jackson Harper  <jackson@ximian.com>
3572
3573         * ComboBox.cs: Hookup the text controls keydown event so we get
3574         those when the text control has the focus.
3575
3576 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
3577
3578         * Label.cs: Now using the base events instead of defining new ones;
3579           this allows us to just call the base properties without having to
3580           duplicate all base property logic 
3581
3582 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
3583
3584         * Label.cs: A label by default is not a tabstop (Fixes one of our
3585           failing nunit tests)
3586
3587 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
3588
3589         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
3590         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
3591
3592 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
3593
3594         * Cursor.cs: Reimplemented creating cursor bitmaps without using
3595           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
3596           This fixes #77218
3597         * XplatUIWin32.cs: 
3598           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
3599             constructor creates images that can't be saved. Part of the fix
3600             for #76103
3601           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
3602           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
3603             bug fix for handling window state in forms properly)
3604
3605 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
3606
3607         * ThemeGtk.cs: Simplify ScrollBar drawing
3608
3609 2006-01-18  Jackson Harper  <jackson@ximian.com>
3610
3611         * Splitter.cs: Set the default dock style for the splitter control
3612         in the constructor.
3613
3614 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
3615
3616         * ThemeGtk.cs: Corrected StateType and ShadowType for
3617           gtk_paint_box
3618
3619 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
3620
3621         * Control.cs: Make use of Theme.DoubleBufferingSupported
3622         * ThemeGtk.cs:
3623           - Added drawing for flat style buttons
3624           - Added ScrollBar drawing
3625
3626 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
3627
3628         * ThemeClearlooks.cs: Removed some unneeded code.
3629         * ThemeGtk.cs: First part of ThemeGtk enhancements.
3630
3631 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
3632
3633         * LinkLabel.cs: We need to update the hover drawing when
3634           leaving the control as well.
3635
3636 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
3637
3638         * DataGrid.cs: Clicking on non empty areas in the columns
3639            area was giving an exception
3640
3641 2006-01-17  Jackson Harper  <jackson@ximian.com>
3642
3643         * ThemeWin32Classic.cs:
3644         * ListView.cs: Do not draw/clip the headers when the header style
3645         is None.
3646
3647 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
3648
3649         * DataGrid.cs: Fixes 77260
3650         
3651 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
3652
3653         * DataGrid.cs: Clicking on a column on a empty grid was giving
3654           an exception
3655
3656 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
3657
3658         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
3659           or any keypress will crash the grid.
3660
3661 2006-01-17  Mike Kestner  <mkestner@novell.com>
3662
3663         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
3664         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
3665         invisible/previously-visible items.
3666         [Fixes #76909]
3667
3668 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
3669
3670         * ThemeClearlooks.cs:
3671         - Added CL_Draw_Button method; now other theme controls that are 
3672           not derived from button or do not have a button can draw buttons
3673           too
3674         - Updated ComboBox drawing
3675         - Beautified RadioButton drawing
3676         - Corrected drawing of bottom and left tabs
3677         - Beautified DateTimePicker and MonthCalendar
3678         - Added CPDrawButton and CPDrawRadioButton
3679
3680 2006-01-16  Jackson Harper  <jackson@ximian.com>
3681
3682         * ComboBox.cs: Set the initial value of the scrollbar to the
3683         current index. Reduce the numbers of refreshs and IndexOfs called.
3684
3685 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
3686
3687         * FileDialog.cs: When the file listview is focused hitting the
3688           backspace key moves the fileview to the parent directory
3689
3690 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
3691
3692         * Form.cs: 
3693           - Added RecreateHandle call when changing taskbar visibility to 
3694             trigger reparenting in Win32 driver (Fixes #75719)
3695           - If a window has minimize or maximize buttons, it cannot have
3696             a help button
3697         * XplatUIWin32.cs:
3698           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
3699             the toplevel form with FosterParent (A toolwindow not on the
3700             taskbar) (Fixes #75719)
3701           - Made FosterParent a toolwindow
3702
3703 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
3704
3705         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
3706
3707 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
3708
3709         * ToolTip.cs: If SetToolTip is called from a control and the mouse
3710           is currently over that control, make sure that tooltip_window.Text
3711           gets updated
3712
3713 2006-01-13  Mike Kestner  <mkestner@novell.com>
3714
3715         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
3716
3717 2006-01-13  Jackson Harper  <jackson@ximian.com>
3718
3719         * TreeView.cs: On MS GetNodeAt never actually factors in the X
3720         value passed.  Also redraw the selected node when we recieve
3721         focus, so tabbing between trees works correctly.
3722
3723 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
3724
3725         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
3726           ~/.gconf/%gconf-tree.xml, so use
3727           .gconf/desktop/gnome/interface/%gconf.xml
3728
3729 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
3730
3731         * TextControl.cs: Draw text in gray if control is disabled
3732
3733 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
3734
3735         * TreeView.cs: Draw the focus rectangle outside the highlight, to
3736           make sure it's always visible. Fixes #76680.
3737
3738 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
3739
3740         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
3741
3742 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
3743
3744         * PageSetupDialog.cs: Added.
3745         * PrintDialog.cs: Attributes.
3746         * PrintPreviewControl.cs: Updates.
3747         * PrintPreviewDialog.cs: Updates.
3748         
3749 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
3750
3751         * Control.cs: Undid my selection check fix, since it's not needed
3752         * TextBoxBase.cs:
3753           - Now considering the presence of hscroll/vscroll when sizing
3754             vscroll/hscroll respectively. Fixed bug #77077
3755           - Added Left/Up/Down/Right to IsInputKey list to prevent
3756             ContainerControl from stealing them. This fixes what I broke
3757             with my last checkin.
3758
3759 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
3760
3761         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
3762           I finally understand how the property can be set without a setter :-)
3763
3764 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
3765
3766         * Application.cs:
3767           - Switched RunLoop to use static Message.Create to create a 
3768             Message object
3769           - Added PreProcessMessage call in runloop for keyboard events; this
3770             is part of the fix for #77219, I overlooked this originally in the
3771             MSDN doc for PreProcessMessage
3772         * Control.cs:
3773           - Removed call to PreProcessMessage from handling of keyboard 
3774             messages; it's supposed to be done in the message pump
3775           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
3776             per MSDN documentation.
3777           - IsInputChar: All chars are input chars by default; removed the 
3778             parent calling chain, MS does not document that
3779           - PreProcessMessage: If IsInputChar is true, we want to return false
3780             to allow dispatching of the message
3781           - When selecting the next control, now also check that we're not
3782             selecting ourselves again and therefore return a false positive.
3783         * TextBoxBase.cs:
3784           - Tried to match return values for IsInputKey and ProcessDialogKey
3785             to what MS returns; moved processing of our special keys outside
3786             ProcessDialogKey since MS does not seem to return true on those.
3787           - Moved code that previously was in ProcessDialogKey into new private
3788             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
3789           - Reworked handling of WM_CHAR to not have to duplicate code from
3790             Control.cs anymore, instead we simply call down to base.
3791            
3792 2006-01-12  Jackson Harper  <jackson@ximian.com>
3793
3794         * ComboBox.cs: We always need to refresh the text area when
3795         EndUpdate is called. Fixes the combobox in the file dialog.
3796         * Control.cs: Don't create the creator_thread until the controls
3797         handle is created.  Also in InvokeRequired we check if the
3798         creator_thread is null. This gives the effect of InvokeRequired
3799         returning true if the controls handle is not created yet, and
3800         matches MS.
3801
3802 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
3803
3804         * XplatUI.cs:
3805           - Added StartLoop() driver method. This is used to allow drivers to
3806             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
3807             loop for a particular thread
3808           - Added EndLoop() driver method. This is called once the message
3809             pump for the thread is shut down
3810           - Added SupportsTransparency method to allow the driver to indicate
3811             opacity support for windows
3812         * Form.cs:
3813           - Removed TODO attribute, completed AllowTransparency property
3814           - Added documented logic to Opacity
3815         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
3816           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
3817           versions of CompatibleTextRendering
3818         * X11Structs.cs: Added opacity atom to our atom enumeration
3819         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
3820           of a form might be set before it's reparented by the WM, and we need
3821           the opacity value without calling up to Form)
3822         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
3823           SupportsTransparency() driver methods
3824         * Application.cs: Now calling StartLoop and EndLoop driver methods
3825         * XplatUIX11.cs:
3826           - Added opacity atom registration
3827           - Added StartLoop()/EndLoop() methods. They're empty right now but
3828             will need to get implemented when we switch to a per-thread queue
3829           - Implemented SupportsTransparency() method
3830           - Implemented SetWindowTransparency() method
3831           - Added support for setting the opacity value when a window is
3832             reparented (since the opacity needs to be set on the WM frame)
3833         * XplatUIOSX.cs, XplatUIWin32.cs:
3834           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
3835
3836 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
3837
3838         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
3839
3840 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
3841
3842         * FileDialog.cs: Added ToolTip for MWFFileView
3843         * MimeIcon.cs: Rewrote GnomeHandler.
3844           - Get currently used gnome icon theme from
3845             ($HOME)/.gconf/%gconf-tree.xml
3846           - Make use of inherited icon themes
3847           - Support SVG icon themes like Tango via librsvg
3848
3849 2006-01-12  Miguel de Icaza  <miguel@novell.com>
3850
3851         Revert's Jackson's revert which broke 2.0 builds.   Fix both
3852         builds. 
3853         
3854         * Application.cs: Move the use_compatible_text_rendering outside
3855         the NET_2_0 define.  If we ever need to use the
3856         use_compatible_text_rendering on the individual controls they will
3857         access the variable from the common shared code paths.
3858
3859 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
3860
3861         * XplatUI.cs:
3862           - Added more granular debug options
3863           - Added method to print both window text and id
3864           - Switched debug output to use new Window() debug method
3865           - Added IsEnabled() driver method
3866           - Added EnableWindow() driver method
3867         * Form.cs:
3868           - Removed end_modal; no longer needed, new loop handles termination
3869             via 'closing' variable
3870           - If form is modal, setting DialogResult will now initiate loop
3871             termination via 'closing' variable
3872           - Added support for is_enabled/WS_DISABLED to CreateParams
3873           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
3874             does all the work
3875           - Removed code that's now in RunLoop from ShowDialog()
3876           - Added various documented sanity checks to ShowDialog()
3877           - Added handling of WM_DESTROY message; we set 'closing' on getting
3878             the message to indicate the message pump to terminate
3879           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
3880             send by the Application.ExitThread method. (We send the message
3881             to destroy the window after all other events have been
3882             processed through the queue, instead of destroying the handle 
3883             directly)
3884           - Moved code from Close() method to WM_CLOSE handler; added logic
3885             to only send close-related events if the form is not displayed
3886             modal
3887         * Splitter.cs (..ctor): Fixed typo in resource name
3888         * Control.cs:
3889           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
3890             brush now
3891           - set_Cursor: Now only setting calling into XplatUI if the handle for
3892             the control is already created; this avoids implict handle creation
3893             or crashes if it's not created
3894           - set_Enabled: Now setting the enabled state via the new driver method
3895             instead of just tracking it
3896           - CreateParams: Added logic to set WS_DISABLED based on enabled state
3897           - CreateControl: Reordered event firing and method calls to more
3898             closely fire events in the order MS does. Now setting the
3899             enabled state in the driver when creating the control.
3900           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
3901             match MS order
3902         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
3903           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
3904         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
3905         * Hwnd.cs:
3906           - Added tracking of window enabled state (get_Enabled/set_Enabled)
3907           - Added EnabledHwnd property to easily allow a driver to find the
3908             handle of the first enabled window in the parent chain (this is
3909             used by drivers to pass up input events of disabled windows)
3910         * XplatUIDriver.cs: Added IsEnabled() method
3911         * Application.cs:
3912           - Removed crude and obsolete exiting tracking variable
3913           - Removed internal ModalRun(); replaced by RunLoop()
3914           - Implemented private CloseForms() method to allow closing all 
3915             windows owned by a particular (or all) threads
3916           - Exit() now properly closes all windows without forcing the message
3917             pump to quit
3918           - Removed obsolete InternalExit() method
3919           - Changed Run() methods to use new RunLoop() message pump
3920           - Implemented new RunLoop() method for both modal and non-modal forms
3921         * CommonDialog.cs:
3922           - get_CreateParams: Added setting of WS_DISABLED
3923           - Simplified ShowDialog(); now all the work is done in RunLoop(),
3924             invoked via Form.ShowDialog()
3925         * NativeWindow.cs: We don't remove the window from the collection when
3926           the handle is destroyed; there might still be messages for it in the
3927           queue (mainly the resulting WM_DESTROY); instead it will be removed
3928           when Control calls InvalidateHandle in the WM_DESTROY handler
3929         * XplatUIX11.cs:
3930           - CreateWindow: Added logic to handle the WS_DISABLED window style
3931           - EnableWindow: Implemented based on Hwnd.Enabled
3932           - GetMessage: Reset PostQuitState so the method can be called again
3933           - Implemented support for disabled windows (passing messages to the
3934             first enabled parent) in handling all input messages
3935           - Added optimizations for handling Expose events
3936           - Implemeted new driver method IsEnabled()
3937           - Now always resetting paint pending tracking vars when we start paint
3938           - Re-implemented UpdateWindow via just sending a WM_PAINT message
3939         * XplatUIOSX.cs: Added IsEnabled method stub
3940         * XplatUIWin32.cs: Implemented new IsEnabled() method
3941
3942 2006-01-11  Jackson Harper  <jackson@ximian.com>
3943
3944         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
3945         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
3946         variables a little.
3947         * ColorDialog.cs: Clear out the old form before adding the new
3948         panel.  
3949
3950 2006-01-11  Jackson Harper  <jackson@ximian.com>
3951
3952         * X11Dnd.cs: Make sure to add all the text formats when adding
3953         strings to the data object.
3954         * TreeNodeCollection.cs: When adding to a sorted tree we need to
3955         do some redrawing too.  Also change the UpdateNode to an
3956         UpdateBelow so the newly added node gets painted.
3957         
3958 2006-01-11  Miguel de Icaza  <miguel@novell.com>
3959
3960         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
3961         LinkLabel.cs, PropertyGrid.cs: Implement the
3962         UseCompatibleTextRendering property for 2.x
3963
3964         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
3965
3966 2006-01-11  Jackson Harper  <jackson@ximian.com>
3967
3968         * TreeView.cs: Use the property for setting the selected node so
3969         the correct events get raised.
3970         * TreeNode.cs: Update the tree when the fore/back colours of a
3971         node are set.
3972
3973 2006-01-10  Jackson Harper  <jackson@ximian.com>
3974
3975         * TreeView.cs: Allow setting SelectedNode to null.
3976
3977 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
3978
3979         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
3980
3981 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
3982
3983         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
3984
3985 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
3986
3987         * PrintDialog.cs: Added attributes and set default property values.
3988
3989 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
3990
3991         * PrintControllerWithStatusDialog.cs: 
3992         Added PrintControllerWithStatusDialog.
3993
3994 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
3995
3996         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
3997         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
3998
3999 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
4000
4001         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
4002
4003 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
4004
4005         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
4006         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
4007
4008 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
4009
4010         * MimeIcon.cs: Added internal class SVGUtil.
4011
4012 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
4013
4014         * FileDialog.cs: Don't crash if there are two files with the
4015           same name but different locations.
4016
4017 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
4018
4019         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
4020         dates across multiple month grids. Used to not highlight entire 
4021         month, but does now.
4022         
4023 2006-01-06  Jackson Harper  <jackson@ximian.com>
4024
4025         * MonthCalendar.cs: Removed DoEvents call to prevent a running
4026         message loop. Change timer intervals to numbers that seem more
4027         natural.
4028
4029 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
4030
4031         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
4032           object for location info since screen object is now implemented.
4033
4034 2006-01-05  Jackson Harper  <jackson@ximian.com>
4035
4036         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
4037         * AsyncMethodResult.cs: We no longer use a WeakReference for the
4038         AsyncMethodResult, this is because we ALWAYS want the
4039         ManualResetEvent to get set.
4040         * Control.cs: When disposing use an async invoke to call shutdown
4041         code, so that thigns don't block on the finalizer thread.  Also
4042         check if we even have a message loop before trying to send
4043         messages, if we don't then don't bother sending messages.
4044         - No more weak references for async methods
4045         * XplatUIDriver.cs: No more weak references for async methods.
4046
4047 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
4048
4049         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
4050           returns two FontFamily with the same name
4051
4052 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
4053
4054         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
4055           drawing disabled text. Instead using the ColorGrayText color
4056
4057 2006-01-04  Jackson Harper  <jackson@ximian.com>
4058
4059         * TreeNode.cs: redraw the node when its image index is changed.
4060
4061 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
4062
4063         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
4064           time I checked there are no others like it.
4065
4066 2006-01-04  Jackson Harper  <jackson@ximian.com>
4067
4068         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
4069         this gives the behavoir I was looking for.
4070         * Control.cs: Special case Invoking EventHandlers, this matches MS
4071         and fixes part of bug #76326.
4072
4073 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
4074
4075         * ThemeClearlooks.cs, FileDialog.cs:
4076           - Reflect the latest Theme class changes
4077           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
4078             with DateTime
4079             
4080 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
4081
4082         * Theme.cs: Cache UI resource images and resize them if needed
4083
4084 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
4085
4086         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
4087           is called. This fixes the crash in Nexxia when setting the font
4088           attributes in the chat. [However, RTF needs a look-over to make sure
4089           that all SelectionXXX methods handle the special case that selection
4090           is empty and therefore the change must be applied to all text starting
4091           at the cursor/selection start]
4092
4093 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
4094
4095         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
4096           XplatUIOSX.cs: Added SendMessage and PostMessage methods
4097         * X11Keyboard.cs: Switched to new way of calling PostMessage
4098
4099 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
4100
4101         * Theme.cs: Added theme interface for images to allow the theme to
4102           control what images are used for things like FileDialog, MessageBox
4103           icons, etc.
4104         * MessageBox.cs: Now uses the new Theme icon/image interfaces
4105
4106 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
4107
4108         * FileDialog.cs:
4109           - Removed some dead code
4110           - Opening a recently used file does work now
4111           - Small UI enhancements
4112           - Refactoring
4113
4114 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
4115
4116         * FileDialog.cs: Forgot too add __MonoCS__
4117
4118 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
4119
4120         * FileDialog.cs: We are able to read recently used files now let's
4121           go on and write them.
4122
4123 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
4124
4125         * FileDialog.cs: Breathe some life into "last open"/"recently used"
4126           button
4127         * MimeIcon.cs: Do a check for the top level media type also
4128
4129 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
4130
4131         * ThemeClearlooks.cs:
4132           - Added CPDrawStringDisabled
4133           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
4134             some chars if the text doesn't fit into text_rect
4135           - DrawListViewItem: If View = View.LargeIcon center the image;
4136             rewrote the drawing of ListViewItem.Text if View = 
4137             View.LargeIcon
4138
4139 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
4140
4141         * MimeIcon.cs: Use default KDE icon theme if there is no
4142           "48x48" directory for the current icon theme, fixes #77114
4143         * Mime.cs: Disable not working and actually not used code. 
4144         * ThemeWin32Classic.cs:
4145           - Replace "new SolidBrush" in GetControlBackBrush and
4146             GetControlForeBrush with ResPool.GetSolidBrush
4147           - Changed DrawListViewItem from private to protected virtual
4148         * FileDialog.cs:
4149           - Added form.MaximizeBox = true
4150           - Don't throw an exception if there is a broken symbolic link
4151
4152 2005-12-23  Jackson Harper  <jackson@ximian.com>
4153
4154         * TabControl.cs: Give the panels focus, keyboard navigation is
4155         fixed so this works correctly now.
4156         - We need these key events also.
4157         * ToolBar.cs: Remove some of the poor mans double buffering.
4158         
4159 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
4160
4161         * ComboBox.cs: The internal TextBox now returns the focus.
4162
4163 2005-12-23  Jackson Harper  <jackson@ximian.com>
4164
4165         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
4166
4167 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
4168
4169         * Control.cs: Removed debug code
4170         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
4171           implicit children
4172
4173 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
4174
4175         * Control.cs: When creating the control, update the Z-order after
4176           all it's children are created, too. (Fixes nexxia not showing
4177           picturebox bug)
4178
4179 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
4180
4181         * Control.cs: Do not update the anchoring distances if layout is
4182           suspended, instead do it once layout is resumed
4183
4184 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
4185
4186         * Control.cs: 
4187           - After many hours of debugging, for both Jackson and
4188             myself, it turns out that it helps to set the parent of a control
4189             if you want to actually see it onscreen. In the spirit of that
4190             discovery, we're now setting the parent of the control and
4191             it's children when the control's handle is created. This fix
4192             will make Lutz Roeder's Reflector run happily. 
4193           - now just creating the handle instead of the whole control when
4194             getting a graphics context for the control.
4195
4196 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
4197
4198         * ScrollableControl.cs: When calculating the canvas, don't consider
4199           the scrollbar widths. Instead, predict if horizontal scrollbar
4200           will affect canvas when deciding on vertical display and vice versa.
4201
4202 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
4203
4204         * RichTextBox.cs: Set default RTF font for documents that don't
4205           have a font table (Fixes #77076)
4206
4207 2005-12-22  Jackson Harper  <jackson@ximian.com>
4208
4209         * TextBoxBase.cs: It's difficult to do, but you can have an empty
4210         clipboard. This prevents a NullRef in that case.
4211         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
4212         clipboard. PRIMARY is for the currently selected text only. (We
4213         should implement PRIMARY at some point.
4214
4215 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
4216
4217         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
4218           a Unicode function with a structure that was defined in Ansi way.
4219           This fixes #76942.
4220
4221 2005-12-21  Jackson Harper  <jackson@ximian.com>
4222
4223         * StatusBar.cs: Statusbar handles its fore/back colours on it's
4224         on. Because thats how it rolls. (and this avoids it using ambient
4225         colours).
4226         * ThemeWin32Classic.cs: Use the proper back color for filling.
4227         * Menu.cs: Use the system menu bar color for drawing menu
4228         bars. Using the window back color will bring ambient colours into
4229         the picture.
4230
4231 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
4232
4233         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
4234           Bitmaps were created and not disposed.
4235
4236 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
4237
4238         * Control.cs (CreateControl): Don't do anything if the control is
4239           already created, otherwise we'd fire the OnCreated event more than
4240           once
4241
4242 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
4243
4244         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
4245           will always match. Instead return -1. Fixes #76464.
4246
4247 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
4248
4249         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
4250           neither the beginning nor the end of the line (Fixes bug #76479)
4251
4252 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
4253
4254         * Control.cs:
4255           - ControlNativeWindow.ControlFromHandle(): Now handling situation
4256             where handle is invalid
4257           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
4258             instead of slower linear search
4259         * NativeWindow.cs: Don't remove the window from the hashtable until
4260           after the driver has destroyed it (since the driver might use
4261           Control.FromHandle to lookup the control object
4262         * Hwnd.cs: Added DestroyPending property to track if a window is 
4263           already destroyed as far as the driver is concerned and only hasn't
4264           yet notified the control
4265         * XplatUIX11.cs:
4266           - Activate(): Check if the window is still valid before using the 
4267             handle
4268           - Implemented DestroyChildWindow() method to mark child windows as
4269             destroyed when a window is destroyed. This prevents situations 
4270             where we might call an X method based on queued events for a
4271             window that already has been destroyed but we haven't yet pulled
4272             the destroy method from the queue.
4273           - Added a call to the new DestroyChildWindow() method to the drivers
4274             DestroyWindow code. Also now marking the destroyed window itself
4275             as pending
4276
4277 2005-12-20  Jackson Harper  <jackson@ximian.com>
4278
4279         * StatusBar.cs:
4280         * StatusBarPanel.cs: Don't calculate panel sizes on draw
4281         anymore. Just do them when needed, also track the rects of panels
4282         so that we can optimize refreshing more in the future.
4283
4284 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
4285
4286         * ColorDialog.cs: Fixed focus drawing in small color controls
4287
4288 2005-12-19  Jackson Harper  <jackson@ximian.com>
4289
4290         * InternalWindowManager.cs:
4291         * MdiWindowManager.cs: Cleanup some coordinate system changes so
4292         moving windows works properly.
4293
4294 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
4295
4296         * Control.cs: 
4297           - Removed call to InitLayout() from SetBoundsCore(); doc says
4298             it's only called when a control is added to a container
4299           - Split InitLayout logic, moved to separate UpdateDistances() method
4300             since we need to perform those calculations more often than just
4301             when adding the control to a container. (Needed to fix #77022)
4302           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
4303           - Reduced the OnBindingContextChanged events count, don't send them
4304             unless the control is created, we still aren't totally matching
4305             MS, but I can't quite figure out some of their rules
4306
4307 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
4308
4309         * ThemeClearlooks.cs: Corrected distance between ProgressBar
4310           stripes
4311
4312 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
4313
4314         * ThemeClearlooks.cs:
4315           - Updated ProgressBar drawing
4316           - Corrected drawing of ScrollBars and scroll buttons
4317           - Some temporary fixes for minor pixel artefacts
4318
4319 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
4320
4321         * Control.cs:
4322           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
4323             cause events to be sent in the same order as MS does.
4324           - Added ChangeParent() method to trigger various OnXXXChanged events
4325             that need to be fired when a parent changes (This is a reworking
4326             of the patch from r54254, with the X11 errors fixed)
4327           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
4328             since on MS we get OnLayoutChanged events when calling Clear()
4329           - Changed Enabled property to consider parent state as well, if a
4330             parent is not enabled, the control will not be either
4331           - Changed Parent property to simply call Controls.Add() since that
4332             now does all the work required, this way we avoid code duplication
4333           - Threw in a few OnBindingsContextChanged calls to try and match
4334             when MS sends them. We seem to send a few too many, though.
4335           - Added call to CreateControl when adding the control to a parent.
4336             We were never calling CreateControl. Still needs some work, in
4337             some places we treat HandleCreated and ControlCreated as equal, 
4338             which is wrong
4339           - Removed obsolete commented out code from UpdateZOrder()
4340
4341 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
4342
4343         * ThemeClearlooks.cs: Updated TrackBar drawing.
4344
4345 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
4346
4347         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
4348
4349 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
4350
4351         * FileDialog.cs: Add the Help button and the open readonly
4352           checkbox only if needed
4353
4354 2005-12-16  Jackson Harper  <jackson@ximian.com>
4355
4356         * Control.cs: Make sure we have an active menu before trying to
4357         process commands on it. Prevents menu-less forms from crashing
4358         when Alt is pressed.
4359         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
4360         Dieter Bremes.
4361         * RichTextBox.cs: Expand statement to help out gmcs and fix the
4362         2.0 build.
4363
4364 2005-12-16  Jackson Harper  <jackson@ximian.com>
4365
4366         * InternalWindowManager.cs: Don't translate tool windows screen
4367         coordinates. This fixes windows 'bouncing' around when being moved.
4368
4369 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
4370
4371         * TextBoxBase.cs:
4372           - MaxLength now treats 2^31-1 equal to unlimited length (this is
4373             not quite MS compatible, MS uses that number only for single line
4374             and 2^32-1 for multi-line, but I figure it won't hurt keeping
4375             the limit at 2GB)
4376           - Now enforcing the MaxLength limit when entering characters
4377           - Added argument to internal Paste() method to track if it's called
4378             from programatically or via keyboard, since keyboard driven pastes
4379             need to enforce max-length
4380           - Added logic to Paste to only paste as many chars as MaxLength 
4381             allows
4382         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
4383         * TextControl.cs:
4384           - Added Length property to return number of characters in document
4385           - Added private CharCount property which only tracks actual chars
4386             in the document (no linefeeds) and fires event when CharCount
4387             changes
4388           - Added tracking of character count to all methods that alter it
4389           - Added LengthChanged event to allow applications to subscribe
4390             to any changes to the document
4391
4392 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
4393
4394         * TextBox.cs: 
4395           - Removed local password_char field (moved to TextBoxBase)
4396           - Now setting the document's password var when password is
4397             set
4398         * TextBoxBase.cs:
4399           - Added password_char field (needed here so MultiLine can
4400             access it)
4401           - Added logic to MultiLine property setter to set the document's
4402             variable when password display is allowed
4403           - Removed debug code and made some debug code conditional
4404         * TextControl.cs:
4405           - Added RecalculatePasswordLine() method to handle special password
4406             char only lines
4407           - Added PasswordChar property, also added related tracking vars
4408           - Draw() method now uses local text var for grabbing text to draw,
4409             this var is set to line.text unless we're doing password display,
4410             then it is set to the pre-generated all-password-chars line
4411           - Added calling RecalculatePasswordLine() method for password lines
4412
4413 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
4414
4415         * Hwnd.cs: 
4416           - Added Reparented property to allow tracking of Window Manager
4417             reparenting actions (which affect X/Y calculations of toplevel 
4418             windows)
4419           - Made ToString() print window handles in hex
4420         * XplatUIX11.cs:
4421           - AddConfigureNotify(): Now uses reparented state off Hwnd to
4422             determine if X/Y needs offsetting
4423           - AddConfigureNotify(): Fixed offset calculations
4424           - Now adds ReparentNotify messages into the queue
4425           - Now processes ReparentNotify messages and causes a 
4426             WM_WINDOWPOSCHANGED message to be sent upstream if a window
4427             is reparented (as most likely it's X/Y coordinates are changed
4428             due to that)
4429
4430 2005-12-14  Jackson Harper  <jackson@ximian.com>
4431
4432         * XplatUIX11.cs: Tool windows still need to respek focus.
4433
4434 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
4435
4436         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
4437           have a working release
4438
4439 2005-12-13  Jackson Harper  <jackson@ximian.com>
4440
4441         * Form.cs: Update styles after setting the border style regardless
4442         of whether or not the window is using a window manager.
4443
4444 2005-12-13  Jackson Harper  <jackson@ximian.com>
4445
4446         * Form.cs: We now hook into an internal window manager instead of just an
4447         MDI subsystem, this is so we can have properly behaving tool windows.
4448         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
4449         * InternalWindowManager.cs: New internal class that acts as a
4450         window manager for tool windows and as a base for mdi windows.
4451         * MdiWindowManager.cs: New class that acts as a window manager for
4452         mdi windows.
4453
4454 2005-12-12  Jackson Harper  <jackson@ximian.com>
4455
4456         * Control.cs: Updates so we match behavoir for for implicit
4457         controls. Fixes explosions in MDI.
4458
4459 2005-12-12  Jackson Harper  <jackson@ximian.com>
4460
4461         * Control.cs: Implement Invalidate (Region).
4462
4463 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
4464
4465         * Control.cs: 
4466           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
4467             the same events as MS does. MS fires events for each property 
4468             except, for unknown reasons, Cursor, when the control is reparented. 
4469             I can't seem to totally match add/remove since MS also fires some 
4470             VisibleChanged events, which makes no sense. Consolidated the
4471             parenting code into a separate method so it can be called from
4472             both Add and Remove. set_Parent no longer needs any special logic
4473             as it calls the parent's add method which implicitly fires
4474             all events
4475           - Removed some obsolete code and debug output
4476           - Enabled state is inherited from parents, if this is enabled
4477
4478 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
4479
4480         * Form.cs: Removed commented out code
4481
4482 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
4483
4484         * Control.cs:
4485           - Added internal version of Invoke, with additional argument 
4486             indicating if we're calling it from a Dispose() handler. That
4487             way we can avoid BeginInvoke throwing an exception if we're
4488             calling for an already destroyed window.
4489           - Added a dispose argument to BeginInvokeInternal, and made the
4490             check if a valid window handle chain exists conditional on
4491             it not being a dispose call
4492           - Removed code in DestroyHandle to destroy our children. Since we
4493             now handle the WM_DESTROY message we will catch all our children
4494             being destroyed.
4495           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
4496         * Form.cs:
4497           - Added a field to track the application context of the form.
4498           - No need to set closing variable as response to WM_CLOSE, instead
4499             we destroy the window. We also call PostQuitMessage if the form
4500             has an application context (which makes it the main app form,
4501             which, when closed terminates the app)
4502         * XplatUI.cs:
4503           - Dropped Exit() method, it's naming was confusing
4504           - Added PostQuitMessage() which causes GetMessage to return false
4505             once the message queue is empty
4506         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
4507           PostQuitMessage()
4508         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
4509           no longer a valid XplatUI method, but left it in since it's used
4510           internally. Added empty PostQuitMessage() method.
4511         * MenuAPI.cs: Replaced call to Exit() with call to
4512           PostQuitMessage, even though this is probably no longer needed.
4513         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
4514         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
4515         * Application.cs:
4516           - Replaced call to XplatUI.Exit() with PostQuitMessage()
4517           - Removed old debug code that would call XplatUI for exception
4518             display, enabled standard exception handling (Still not enabled
4519             though, until NativeWindow's ExternalExceptionHandler define
4520             is removed
4521         * NativeWindow.cs:
4522           - Added internal method to allow control to update NativeWindow
4523             after a window has been destroyed
4524           - Added handling of already destroyed windows when calling i
4525             DestroyWindow
4526           - Added removal of handle from list on ReleaseHandle
4527         * XplatUIX11.cs:
4528           - Dropped GetMessageResult var and related code
4529           - Added PostQuitState to field to track if PostQuitMessage has been
4530             called
4531           - Dropped Exit() method
4532           - Added PostQuitMessage() method
4533           - GetMessage now will return false if PostQuitState is set and no
4534             more messages are in the queue.
4535           - Expose handler will no longer generate WM_PAINT messages if we are
4536             in PostQuitState since it's very likely any windows have already
4537             been destroyed, and since Hwnd won't get updated until we have
4538             processed the DestroyNotify we'd be causing X errors.
4539         
4540 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
4541
4542         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
4543           Thanks to Mike for pointing out the err of my ways.
4544
4545 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
4546
4547         * Control.cs(PreProcessMessage): Moved menu handling back, but
4548           after all other key handling, to match MS (who handles Menu in
4549           DefWndProc)
4550         * Menu.cs (WndProc): Removed my brainfart
4551
4552 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
4553
4554         * Control.cs(PreProcessMessage): Removed special menu handling 
4555         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
4556
4557 2005-12-07  Mike Kestner  <mkestner@novell.com>
4558
4559         * Control.cs : special case SYSKEYUP so that we can adjust keynav
4560         state according in tracker.
4561         * Menu.cs : promote tracker field to base class and provide a tracker
4562         lookup capability.  Add/Remove shortcuts dynamically if the top menu
4563         has a tracker. Unparent items that are removed from the collection.
4564         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
4565         * Theme*.cs: add always_show_hotkeys field to support configurability
4566         of mnemonic display.  win32 doesn't show mnemonics until Alt is
4567         pressed.
4568
4569 2005-12-07  Jackson Harper  <jackson@ximian.com>
4570
4571         * MdiChildContext.cs: Use Control.ResetCursor.
4572         * Control.cs: ResetCursor needs to set the property so that the
4573         correct XplatUI call gets made.
4574
4575 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
4576
4577         * Control.cs: More fixes to make our key events match MS. We
4578           were not setting the modifier state on KeyData, and we were
4579           not generating any events when Alt was pressed with a key
4580           since handling of WM_SYSxxx was missing for the OnKey methods.
4581
4582 2005-12-07  Jackson Harper  <jackson@ximian.com>
4583
4584         * MdiChildContext.cs: reenable the sizing code.
4585         - When the mouse leaves a window reset its cursor.
4586
4587 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
4588
4589         * ThemeClearlooks.cs: Reflect latest Hwnd changes
4590
4591 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
4592
4593         * Hwnd.cs: Now using the theme 3d bordersize to calculate
4594           widths of Fixed3D borders
4595
4596 2005-12-07  Jackson Harper  <jackson@ximian.com>
4597
4598         * MdiClient.cs: Fix warnings. Earn Mike's love.
4599
4600 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
4601
4602         * ThemeClearlooks.cs:
4603           - Adjusted mouse over button color
4604           - Added first parts of CheckBox drawing
4605           - Added correct color for selected text background
4606           - Fixed ComboBox drawing
4607           - Added CPDrawBorder3D and CPDrawBorder
4608
4609 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
4610
4611         * XplatUIX11.cs: Added call to XBell for AudibleAlert
4612
4613 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
4614
4615         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
4616           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
4617           alert users via sound. We could add an enum arg with different
4618           types of alerts in the future
4619
4620 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
4621
4622         * Control.cs: Fix behaviour problems pointed out by Mike
4623
4624 2005-12-05  Mike Kestner  <mkestner@novell.com>
4625
4626         * StatusBarPanel.cs: add Invalidate method and hook it into all the
4627         prop setters.  Calls parent.Refresh for now, but could be maybe be
4628         optimized with an internal method on StatusBar at some point.
4629         [Fixes #76513]
4630
4631 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
4632
4633         * RichTextBox.cs: Implemented get_SelectionColor
4634
4635 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
4636
4637         * ThemeClearlooks.cs:
4638           - Removed dead code
4639           - Draw black button border only if button is Form.AcceptButton
4640           - Draw correct button color for pressed RadioButton if the mouse 
4641             has entered the button
4642           - Updated ProgressBar drawing!
4643           - Updated CPDrawSizeGrip drawing
4644           - Updated StatusBarPanel drawing
4645
4646 2005-12-05  Mike Kestner  <mkestner@novell.com>
4647
4648         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
4649         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
4650
4651 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
4652
4653         * ThemeClearlooks.cs: Initial check-in, activate with
4654           export MONO_THEME=clearlooks
4655         * ThemeEngine.cs: Added ThemeClearlooks
4656
4657 2005-12-03  Mike Kestner  <mkestner@novell.com>
4658
4659         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
4660         [Fixes #76897]
4661
4662 2005-12-02  Jackson Harper  <jackson@ximian.com>
4663
4664         * Form.cs: If the child form has no menu the default main menu is
4665         used as the active menu.
4666
4667 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
4668
4669         * ListBox.cs: Check if any items exist before trying to resolve 
4670           coordinates into items
4671
4672 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
4673
4674         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
4675           as the second color for the background hatch
4676
4677 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
4678
4679         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
4680         * RichTextBox.cs: FormatText position arguments are 1-based, now making
4681           sure that what we pass to FormatText is always 1-based. Fixes #76885
4682
4683 2005-11-29  Miguel de Icaza  <miguel@novell.com>
4684
4685         * NumericUpDown.cs (EndInit): When we are done initializing,
4686         reflect any updates on the UI.
4687
4688 2005-12-02  Jackson Harper  <jackson@ximian.com>
4689
4690         * ImplicitHScrollBar.cs:
4691         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
4692         their container controls.
4693         * TreeView.cs: Use the new implicit scrollbars.
4694
4695 2005-12-02  Jackson Harper  <jackson@ximian.com>
4696
4697         * TreeView.cs: Make top_node internal so the TreeNodeCollections
4698         can play with it.
4699         * TreeNodeCollection.cs: If we remove the topnode we need to
4700         update topnode to the next node in line.
4701         - When clearing nodes go through the same process as removing
4702         them, so they get depareneted and checked if they are top node.
4703
4704 2005-12-01  Jackson Harper  <jackson@ximian.com>
4705
4706         * TreeView.cs: When imagelists are used the image area is
4707         selectable as well as the text.
4708         - If there are no selected nodes select the first one.
4709         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
4710         so don't do it more then we need to.
4711
4712 2005-12-01  Jackson Harper  <jackson@ximian.com>
4713
4714         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
4715         that arrows can be scaled.
4716
4717 2005-12-01  Jackson Harper  <jackson@ximian.com>
4718
4719         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
4720         fail. Patch by Dieter Bremes
4721
4722 2005-11-30  Jackson Harper  <jackson@ximian.com>
4723
4724         * Form.cs: Property is 2.0 only
4725         * PrintDialog.cs: Signature fix.
4726
4727 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
4728
4729         * TextControl.cs: 
4730           - No longer artificially moves text 2 pixels down (now that we have
4731             borders this is no longer needed)
4732           - Added calcs for left, hanging and right indent
4733
4734 2005-11-23  Mike Kestner  <mkestner@novell.com>
4735
4736         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
4737
4738 2005-11-30  Jackson Harper  <jackson@ximian.com>
4739
4740         * MdiChildContext.cs: Set the cloned menus forms, as these don't
4741         get cloned as part of CloneMenu ().
4742         * Menu.cs: Make sure the parent of the items get set correctly
4743         when they are added.  And the owners are notified of the changes.
4744         * Form.cs: Create an ActiveMenu property, so that when MDI is used
4745         we can change the menu being displayed/handled by the form without
4746         changing the menu assosciated with the form.
4747         - Don't let Mdi children draw/handle menus.
4748         
4749 2005-11-30  Jackson Harper  <jackson@ximian.com>
4750
4751         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
4752         a MenuChanged event. Just to make the API a little more
4753         consistent.
4754         * MainMenu.cs:
4755         * MenuItem.cs: Use the new OnMenuChanged
4756         * MdiChildContext.cs: Handle menu merging.
4757         * Form.cs: Implement MergedMenu.
4758         
4759 2005-11-30  Jackson Harper  <jackson@ximian.com>
4760
4761         * Menu.cs: We were misusing Add. Add goes behind the specified
4762         index according to the docs, and does not replace the specified
4763         index. So I added an Insert method.
4764
4765 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
4766
4767         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
4768           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
4769           is for Jackson
4770         * RichTextBox.cs: Added calls to base for DnD events
4771
4772 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
4773
4774         * TextControl.cs:
4775           - Fixed drag-selection related crash; style fixes
4776           - Implemented undo class
4777             o Implemented method to capture document state for specified
4778               range in document tree
4779             o Implemented method to restore captured document state
4780             o Implemented cursor tracking
4781             o Implemented basic undo stack
4782           - Added undo cursor tracking to methods altering cursor location
4783           - Added undo tracking to selection deletion (still missing
4784             other text-altering hookups)
4785         * RichTextBox.cs:
4786           - Added SelectionLength property
4787           - Implemented CanPaste()
4788           - Implemented Paste()
4789           - Added missing protected methods
4790           - Fixed RTF->Document conversion; now uses font index 0 and color 
4791             index 0 as the default font for the parsed text
4792           - Fixed RTF<->Document font size translation
4793           - Fixed RTF generation, now properly handles cross-tag boundaries
4794             for single line selection
4795           - No longer always appends blank line to generated RTF
4796           - Removed TODOs
4797           - Added missing attributes
4798           - Hooked up undo-related methods
4799         * TextBoxBase.cs:
4800           - Implemented Copy()
4801           - Implemented Paste()
4802           - Implemented Cut()
4803           - Fixed caret mis-behaviour on backspace across line-boundaries
4804
4805 2005-11-29  Jackson Harper  <jackson@ximian.com>
4806
4807         * MdiClient.cs: Add a method for activating mdi children. Very
4808         basic right now. I imagine someday it might need more girth.
4809         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
4810         children windows names are added to the menu item.
4811         * ThemeWin32Classic.cs: Draw the arrow if the item is an
4812         mdilist. This happens regardless of whether or not there are any
4813         mdi windows to see in the list, and according to my tests happens
4814         before the items are even added. Also happens if there isn't even
4815         an mdi client to get windows from.
4816
4817 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
4818
4819         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
4820         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
4821
4822 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
4823
4824         * DataGridTableStyle.cs:
4825           - Create always the styles for the missing columns even if they are
4826             provided by the user (not default table style)
4827         * DataGrid.cs:
4828           - Fixes bug 76770
4829           - Fixes SetDataBinding (always re-attach source)
4830           - Fixes SetNewDataSource (only clear styles if they are not for 
4831             this source)
4832          -  Expands OnTableStylesCollectionChanged to handle style refresh 
4833             and remove properly
4834
4835 2005-11-29  Jackson Harper  <jackson@ximian.com>
4836
4837         * FileDialog.cs: Implement missing bits, remove some dead
4838         code.
4839         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
4840         creation of the panel so that the options set on the dialog are
4841         seen when the panel is created.
4842         * TreeView.cs: raise a click when items are clicked.
4843         
4844 2005-11-29  Jackson Harper  <jackson@ximian.com>
4845
4846         * MdiClient.cs: Pass some signature methods through to base.
4847
4848 2005-11-28  Jackson Harper  <jackson@ximian.com>
4849
4850         * ListView.cs: Raise the click event when items are clicked.
4851
4852 2005-11-28  Jackson Harper  <jackson@ximian.com>
4853
4854         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
4855         a nullref.
4856
4857 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
4858
4859         * ThemeNice.cs: - Removed 1 pixel bitmaps
4860           - Use SmoothingMode.AntiAlias where it makes sense
4861             (ScrollButton arrow for example)
4862           - Enhanced Button focus drawing
4863           - Fixed ComboBox drawing (no artefacts anymore, focus
4864             rectangle is back again, reduced size of ComboButton, etc.)
4865           - Fixed RadioButton focus drawing for Appearence.Button
4866           - Slight ScrollButton redesign
4867           - Some LinearGradientBrush size fixes
4868           - GroupBoxes have now rounded edges
4869           - Fixed StatusBar drawing
4870
4871 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
4872
4873         * ThemeNice.cs: - Remove dead code
4874           - use correct background colors for menus, etc.
4875           - Fake pixel drawing with 1 pixel bitmaps
4876
4877 2005-11-24  Jackson Harper  <jackson@ximian.com>
4878
4879         * MdiClient.cs: Size the scrollbars when resizing the window.
4880         - Resize the maximized windows when the client is resized
4881         * Form.cs: Make the child context available
4882         
4883 2005-11-23  Jackson Harper  <jackson@ximian.com>
4884
4885         * MdiChildContext.cs: Don't size windows if they are maximized.
4886
4887 2005-11-23  Mike Kestner  <mkestner@novell.com>
4888
4889         * ContextMenu.cs: use MenuTracker.
4890         * Control.cs: remove menu handle usage.
4891         * Form.cs: remove menu handle usage.
4892         * Hwnd.cs: remove menu handle usage.
4893         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
4894         motion and clicks to the new Tracker handlers.
4895         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
4896         and handle usage.
4897         * MenuAPI.cs: refactored to combine popup and menubar event handling.
4898         Killed the MENU and MENUITEM data types and associated collections
4899         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
4900         MenuTracker class that exposes the leftovers from the old MenuAPI
4901         static methods. Restructured Capture handling so that only one grab is
4902         done for the entire menu hierarchy instead of handing off grabs to
4903         submenus. Tracker now has an invisible control to Capture when active.
4904         * MenuItem.cs: add sizing accessors, kill Create
4905         and handle usage.
4906         * Theme.cs: remove menu handle and MENU(ITEM) usage.
4907         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
4908         MENU(ITEM). remove menu handle usage, use Menu directly.
4909         * XplatUIDriver.cs: remove menu handle usage.
4910         * XplatUIOSX.cs: remove menu handle usage.
4911         * XplatUIWin32.cs: remove menu handle usage.
4912         * XplatUIX11.cs: remove menu handle usage.
4913
4914 2005-11-22  Jackson Harper  <jackson@ximian.com>
4915
4916         * Hwnd.cs: Don't compute the menu size for
4917         DefaultClientRectangle.
4918         - Reenable menu sizes being computed for GetClienRectangle.
4919         * Form.cs: Remove comment of trechery
4920         
4921 2005-11-22  Jackson Harper  <jackson@ximian.com>
4922
4923         * Hwnd.cs: The adjustments for the menu bar are made when it is
4924         attached to the form.
4925
4926 2005-11-19  Jackson Harper  <jackson@ximian.com>
4927
4928         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
4929         (just like on windows).
4930
4931 2005-11-19  Jackson Harper  <jackson@ximian.com>
4932
4933         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
4934         use real buttons anymore because they are in non client area. The
4935         one TODO here is that I need to somehow invalidate a section of
4936         the non client area.
4937
4938 2005-11-18  Jackson Harper  <jackson@ximian.com>
4939
4940         * Control.cs: Put the enum check back in now that MDI doesnt have
4941         to use this to set border styles.
4942         * Form.cs: Only set mdi child windows borders if the handle has
4943         been created.
4944         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
4945         this directly on to the driver.
4946         - Get the move start position before adjusting for the titlebar
4947         height, this fixes the windows "skipping" when they are first
4948         moved.
4949
4950 2005-11-18  Jackson Harper  <jackson@ximian.com>
4951
4952         * XplatUIX11.cs: Just compute the mdi borders separately as they
4953         don't totally match up with normal form borders.
4954
4955 2005-11-18  Jackson Harper  <jackson@ximian.com>
4956
4957         * Control.cs: Set WS_ styles for borders, so that the driver does
4958         not have to retrieve the control instance to figure out what kind
4959         of borders it should have.
4960         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
4961         driver can know its an mdi child easily.
4962         * XplatUIX11.cs: Get the border styles and whether the window is
4963         MDI from the Styles and ExStyles params instead of having to get a
4964         control. This prevents a chicken and egg problem.       
4965
4966 2005-11-18  Jackson Harper  <jackson@ximian.com>
4967
4968         * MdiClient.cs: Fix typo so scrollbars show up correctly.
4969
4970 2005-11-18  Jackson Harper  <jackson@ximian.com>
4971
4972         * MdiClient.cs: Calculate when to add and remove scrollbars
4973         correctly.
4974         * MdiChildContext.cs: Adjust the y position to take the titlebar
4975         into account.
4976         - No height for FormBorderStyle.None
4977
4978 2005-11-18  Jackson Harper  <jackson@ximian.com>
4979
4980         * Control.cs: Allow non enum values to be used for
4981         InternalBorderStyle.  MDI does this to set a special border style.
4982         - New utility methods for converting points to/from client coords
4983         - Add the newly created control to the Controls collection before
4984         updating its style. This way UpdateStyle can walk the control
4985         heirarchy to find the control if needed.
4986         so I don't need to create a new Point object all the time.
4987         * Form.cs: Let MDI windows handle their border styles.
4988         - Set styles on MDI windows so the correct title style is derived.
4989         * MdiChildContext.cs: Move all the painting and window handling
4990         into the non client area.
4991         - Use correct sizing and put correct buttons on frames based on
4992         the FormBorderStyle.
4993         - Notify the mdi client about scrolling
4994         - Need to handle the buttons ourselves now, because they are all
4995         in non client areas and we can't add controls there.
4996         * MdiClient.cs: Halfway to scrolling, this implementation is
4997         somewhat broken though, we need to check to make sure other
4998         windows aren't causing scrolling before removing the bars. Also
4999         the bars need to be drawn on top, maybe I can switch implicit
5000         controls to be on top.
5001         * Hwnd.cs: caption_height and tool_caption_height are now
5002         properties of an hwnd, this way they can be set by the driver
5003         based on the type of window they are.  In X11 the window manager
5004         handles the decorations so caption_height is zero unless its an
5005         MDI window.
5006         - Add 3 pixel borders for MDI windows (0xFFFF).
5007         - Get rid of some code duplication, have DefaultClientRectanle
5008         just call GetClientRectangle.
5009         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
5010         Hwnd now.
5011         - Set border styles differently for mdi windows.
5012         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
5013         Hwnd now.
5014         
5015 2005-11-15  Mike Kestner  <mkestner@novell.com>
5016
5017         * Menu.cs: when adding an item to the collection, if item is already 
5018         parented, remove it from the parent.
5019
5020 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
5021
5022         * X11DesktopColors.cs: Added KDE support
5023
5024 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
5025
5026         * XplatUIWin32.cs: 
5027           - Clipboard methods now can translate Rtf format
5028           - No longer removes clipboard contents whenever a new format is added
5029             to allow placing multiple formats on the clipboard
5030         * Clipboard.cs: Clipboard now supports getting a IDataObject and
5031           will place all formats contained in it onto the clipboard. Also
5032           now cleans the clipboard before placing a new object onto it
5033         * RichTextBox.cs:
5034           - Implemented set_Rtf
5035           - Implemented set_SelectedRtf
5036           - Created InsertRTFFromStream() method to allow single code base
5037             for all properties and methods that insert RTF into document
5038           - Removed debug output
5039         * TextControl.cs:
5040           - Fixed Delete(int) to fix up line numbers
5041           - Fixed ReplaceSelection to combine start and end line
5042           - Fixed serious DeleteChars bug that would leave the document tree
5043             broken
5044           - Improved DumpTree with several logic checks to detect broken
5045             document trees
5046           - Removed debug lines
5047           - Fixed Caret.WordForward/WordBack moving code, now always also 
5048             updates caret.tag (fixes crash when word-selecting across tag
5049             boundaries via keyboard)
5050           - Added Insert() method for inserting multiline text into documents
5051           - Fixed DeleteChars() calculation errors that would cause a broken
5052             tag chain with multiple tag lines
5053           - DeleteChars() no longer crashes on multi-tag lines if not all tags
5054           - Split() no longer moves caret if split is at caret location
5055           - ReplaceSelection() now updates the cursor and re-displays it
5056           - ReplaceSelection() now uses new Insert() method to avoid code
5057             duplication
5058           - FormatText() can now handle formatting partial lines
5059         * TextBoxBase.cs:
5060           - Append now uses new TextControl.Insert() method (this avoids 
5061             duplicate code)
5062           - Implemented Ctrl-X (Cut) (
5063           - Implemented Ctrl-C (Copy)
5064           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
5065             regeneration when pasting text; roundtripping Copy&Paste within
5066             edit control still fails due to some calculation bugs in GenerateRTF)
5067           - The Delete key will now remove the current selection if it is visible
5068         * TextBox.cs: Removed debug lines
5069         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
5070           driver to be initialized and can't therefore be done via a static ctor)
5071
5072 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
5073
5074         * TextControl.cs: Added backend code for finding char arrays and strings
5075         * TextBoxBase.cs:
5076           - Added mouse wheel scroll support
5077           - Added support for VScroll and HScroll events
5078         * RichTextBox.cs:
5079           - Implemented all seven Find() variants
5080           - Implemented GetCharFromPosition()
5081           - Implemented GetCharIndexFromPosition()
5082           - Implemented GetLineFromIndex()
5083           - Implemented GetPositionFromCharIndex();
5084           - Implemented SaveFile for PlainText and UnicodeText
5085           - Fixed set_Font, now setting a new font applies that font to
5086             the whole document
5087           - Implemented generic Document to RTF converter
5088           - Implemented SaveFile for RichText format (still missing unicode
5089             conversion for non-ansi chars)
5090           - Implemented get_Rtf
5091           - Implemented get_SelectedRtf
5092
5093 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
5094
5095         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
5096           to allow any captures to be released before triggering OnClick. This
5097           way a click handler may capture the mouse without interference.
5098         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
5099           This way we send them even though X may not allow a grab (if the window
5100           isn't visible, for example)
5101
5102 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
5103
5104         * DataGridViewRowEventArgs.cs: DataGridView implementation
5105         * DataGridViewElement.cs: DataGridView implementation
5106         * DataGridViewComboBoxCell.cs: DataGridView implementation
5107         * DataGridViewDataErrorContexts.cs: DataGridView implementation
5108         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
5109         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
5110         * ImageLayout.cs: DataGridView implementation
5111         * DataGridViewComboBoxColumn.cs: DataGridView implementation
5112         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
5113         * DataGridViewSelectionMode.cs: DataGridView implementation
5114         * IDataGridViewEditingControl.cs: DataGridView implementation
5115         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
5116         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
5117         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
5118         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
5119         * DataGridViewColumnSortMode.cs: DataGridView implementation
5120         * DataGridView.cs: DataGridView implementation
5121         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
5122         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
5123         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
5124         * Padding.cs: DataGridView implementation
5125         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
5126         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
5127         * DataGridViewRowEventHandler.cs: DataGridView implementation
5128         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
5129         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
5130         * DataGridViewButtonCell.cs: DataGridView implementation
5131         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
5132         * DataGridViewEditMode.cs: DataGridView implementation
5133         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
5134         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
5135         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
5136         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
5137         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
5138         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
5139         * DataGridViewCellEventHandler.cs: DataGridView implementation
5140         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
5141         * DataGridViewCellStyleConverter.cs: DataGridView implementation
5142         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
5143         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
5144         * DataGridViewColumnEventArgs.cs: DataGridView implementation
5145         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
5146         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
5147         * QuestionEventArgs.cs: DataGridView implementation
5148         * IDataGridViewEditingCell.cs: DataGridView implementation
5149         * DataGridViewTriState.cs: DataGridView implementation
5150         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
5151         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
5152         * DataGridViewColumnCollection.cs: DataGridView implementation
5153         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
5154         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
5155         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
5156         * DataGridViewColumn.cs: DataGridView implementation
5157         * DataGridViewCellBorderStyle.cs: DataGridView implementation
5158         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
5159         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
5160         * DataGridViewRow.cs: DataGridView implementation
5161         * DataGridViewImageCellLayout.cs: DataGridView implementation
5162         * DataGridViewImageCell.cs: DataGridView implementation
5163         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
5164         * DataGridViewCheckBoxCell.cs: DataGridView implementation
5165         * DataGridViewHeaderCell.cs: DataGridView implementation
5166         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
5167         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
5168         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
5169         * DataGridViewTextBoxColumn.cs: DataGridView implementation
5170         * QuestionEventHandler.cs: DataGridView implementation
5171         * DataGridViewCellStyleScopes.cs: DataGridView implementation
5172         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
5173         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
5174         * DataGridViewCell.cs: DataGridView implementation
5175         * DataGridViewCellEventArgs.cs: DataGridView implementation
5176         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
5177         * DataGridViewCellStyle.cs: DataGridView implementation
5178         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
5179         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
5180         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
5181         * TextFormatFlags.cs: DataGridView implementation
5182         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
5183         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
5184         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
5185         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
5186         * DataGridViewButtonColumn.cs: DataGridView implementation
5187         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
5188         * HandledMouseEventArgs.cs: DataGridView implementation
5189         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
5190         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
5191         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
5192         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
5193         * DataGridViewRowCollection.cs: DataGridView implementation
5194         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
5195         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
5196         * DataGridViewHitTestType.cs: DataGridView implementation
5197         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
5198         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
5199         * DataGridViewColumnEventHandler.cs: DataGridView implementation
5200         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
5201         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
5202         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
5203         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
5204         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
5205         * DataGridViewContentAlignment.cs: DataGridView implementation
5206         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
5207         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
5208         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
5209         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
5210         * DataGridViewPaintParts.cs: DataGridView implementation
5211         * DataGridViewCellCollection.cs: DataGridView implementation
5212         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
5213         * DataGridViewImageColumn.cs: DataGridView implementation
5214         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
5215         * DataGridViewElementStates.cs: DataGridView implementation
5216         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
5217         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
5218         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
5219         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
5220         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
5221         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
5222         * DataGridViewRowHeaderCell.cs: DataGridView implementation
5223         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
5224         * DataGridViewTextBoxCell.cs: DataGridView implementation
5225         * DataGridViewBand.cs: DataGridView implementation
5226         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
5227         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
5228         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
5229         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
5230         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
5231         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
5232         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
5233         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
5234         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
5235         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
5236         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
5237
5238 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
5239
5240         * ThemeWin32Classic.cs: 
5241           - Draw the outside focus rectangle around buttons
5242           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
5243             doesn't use end caps for every dash of a line anymore. This
5244             workaround ignores the forecolor.
5245
5246 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
5247
5248         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
5249           endian safe.
5250
5251 2005-11-07  Jackson Harper  <jackson@ximian.com>
5252
5253         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
5254
5255 2005-11-07  Jackson Harper  <jackson@ximian.com>
5256
5257         * ScrollableControl.cs: Calculate the maximum and change vars
5258         (more) correctly so that scrollbars appear as a sensible size.
5259
5260 2005-11-04  Jackson Harper  <jackson@ximian.com>
5261
5262         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
5263         collection.
5264         * TreeView.cs: When the tree is sorted null out the top_node so
5265         that it is recalculated.
5266         - Use dotted lines instead of dashed lines to match MS better.
5267
5268 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
5269
5270         * ListView.cs: 
5271           - Implements key search for items. Useful when browsing files with FileDialog
5272           - When changing view mode or when clear the items reset scrollbar positions
5273
5274 2005-11-04  Jackson Harper  <jackson@ximian.com>
5275
5276         * CurrencyManager.cs: Implement the MetaDataChanged event, the
5277         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
5278         as to what the method may do as there is no real way of creating a
5279         derived CurrencyManager and calling the method. 
5280
5281 2005-11-03  Jackson Harper  <jackson@ximian.com>
5282
5283         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
5284         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
5285         method which seems to just be used internally to refresh the tabs.
5286
5287 2005-11-03  Jackson Harper  <jackson@ximian.com>
5288
5289         * TabControl.cs: Implement the remove method. Fix some broken
5290         comments.
5291
5292 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
5293
5294         * DateTimePicker.cs:
5295           - Added missing DateTimePickerAccessibleObject class
5296           - Added missing events
5297           - Added OnFontChanged method
5298         * Form.cs: Added missing attributes
5299         * TreeView.cs: Added missing attributes
5300
5301 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
5302
5303         * GridItemCollection.cs: Fix signatures
5304
5305 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
5306
5307         * XplatUI.cs: Updated build rev/date
5308         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
5309           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
5310         * Application.cs: Trigger context-specific ExitThread events
5311
5312 2005-11-03  Jackson Harper  <jackson@ximian.com>
5313
5314         * Menu.cs:
5315         * MainMenu.cs:
5316         * GridTableStylesCollection.cs:
5317         * Timer.cs:
5318         * TabPage.cs:
5319         * HelpProvider.cs:
5320         * StatusBar.cs:
5321         * MonthCalendar.cs: Signature fixes
5322
5323 2005-11-03  Jackson Harper  <jackson@ximian.com>
5324
5325         * TreeNodeCollection.cs: Remove should not be virtual.
5326         * TreeView.cs: Implement the last of the missing methods.
5327
5328 2005-11-03  Jackson Harper  <jackson@ximian.com>
5329
5330         * TreeNodeConverter.cs: Implement to get off my class-status back.
5331
5332 2005-11-03  Jackson Harper  <jackson@ximian.com>
5333
5334         * TreeView.cs: Hookup the bits for drag and drop.
5335         * TreeNode.cs: Don't cache the tree_view or index anymore, now
5336         that nodes can be moved from tree to tree easily this just causes
5337         all sorts of problems.
5338         * TreeNodeCollection: Don't need to give treenodes an index and
5339         treeview anymore when they are added, these are computed on the
5340         fly. Also make sure to remove a node before its added.
5341
5342 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
5343
5344         * TextControl.cs:
5345           - Added CaretSelection enum
5346           - Added comparison methods to Marker struct, makes selection code
5347             more readable
5348           - Added SelectionStart and SelectionEnd as 'moveable' location for
5349             the CaretDirection enum and handler
5350           - Added selection_prev variable to track optimized invalidation for
5351             word and line selection
5352           - Added SelectionVisible property (returns true if there is a valid 
5353             selection)
5354           - Switched CaretHasFocus to only display the caret if there is no
5355             visible selection
5356           - Avoiding StringBuilder.ToString to retrieve a single char, instead
5357             using the direct character index; should be much faster
5358           - Added various conditional debug statements
5359           - Fixed invalidation calculation for selection ranges
5360           - Added ExpandSelection() method to support word and line selection
5361           - Switched SetSelectionToCaret to use new Marker compare overloads
5362           - Added central IsWordSeparator() method to determine word 
5363             separators/whitespace and FindWordSeparator() to streamline common
5364             usage of IsWordSeparator()
5365         * TextBoxBase.cs:
5366           - Removed unneeded grabbed variable, it was just mirroring
5367             Control.Capture
5368           - No longer firing OnTextChanged event when Text setter is called,
5369             since the base will fire the event for us
5370           - Added handling of Ctrl-Up/Down selection
5371           - Added handling of Shift-Cursorkey selection
5372           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
5373             words
5374           - Added handling of Shift and Ctrl-Shift-Home/End selection
5375           - Removed some debug output
5376           - Added handling for single/double/tripple-click to place caret/
5377             select word/select line respectively (Fixes bug #76031)
5378           - Added support for drag expansion of word/line selection
5379         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
5380           current selection
5381
5382 2005-11-02  Jackson Harper  <jackson@ximian.com>
5383
5384         * X11Dnd.cs: If the drag is going to and from a MWF window just
5385         copy the data instead of sending it out through the X Selection
5386         mechanism.
5387
5388 2005-11-02  Jackson Harper  <jackson@ximian.com>
5389
5390         * X11Dnd.cs:
5391         * XplatUIX11.cs: When in a drag we don't want motion notify
5392         messages to get passed on to the other controls. This prevents
5393         mouse move messages from showing up in the drag source.
5394
5395 2005-11-02  Jackson Harper  <jackson@ximian.com>
5396
5397         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
5398         the correct button is release to end a drag.
5399         * XplatUIX11.cs: Make the button state internal so the drag system
5400         can access it.  Dragging needs to know about all button releases,
5401         not just left button.
5402
5403 2005-11-02  Miguel de Icaza  <miguel@novell.com>
5404
5405         * Form.cs (Icon): If the icon is null, reset the icon to the
5406         default value. 
5407
5408         * Cursor.cs: When writing the AND-mask bitmap do not include the
5409         number of colors, but hardcode those to two (black and white),
5410         fixes the loading of color cursors (Paint Dot Net).
5411
5412         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
5413         turn off autoscaling.
5414
5415         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
5416
5417 2005-11-02  Jackson Harper  <jackson@ximian.com>
5418
5419         * X11Dnd.cs: Make sure to send a status message if the pointer
5420         enters a control that can not accept a drop, otherwise the cursor
5421         isn't updated correctly. Also tried to compress the lines of code
5422         a bit.
5423
5424 2005-11-02  Jackson Harper  <jackson@ximian.com>
5425
5426         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
5427         set actions correctly.  This isn't perfect as XDND and win32 have
5428         some differences on how you allow actions. I'll clear this up by
5429         adding a path for drag from MWF to MWF windows.
5430         * XplatUIX11.cs: Hook into the dnd system.
5431
5432 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
5433
5434         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
5435         previously shown but they are no longer need it. Very obvious when 
5436         browsing files with FileDialog.
5437
5438 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
5439
5440         * Control.cs: We always need to call OnPaintBackground. We pretty much
5441           ignore AllPaintingInWmPaint and always do the painting there, whether 
5442           it's set or not, since we always ignore the WM_ERASEBKGND message 
5443           (which we don't generate on X11). This fixes #76616.
5444         * Panel.cs: Removed unneeded background painting. This happens properly
5445           in Control.cs already
5446
5447 2005-10-31  Mike Kestner  <mkestner@novell.com>
5448
5449         * Menu.cs: Add items to collection before setting their index.
5450         * MenuItem.cs : add range checking with ArgumentException like MS.
5451         [Fixes #76510]
5452
5453 2005-10-31  Jackson Harper  <jackson@ximian.com>
5454
5455         * ListBox.cs: Invalidate if the area is visible at all not just
5456         contained in the visible rect. Fixes unselection of semi visible
5457         items.
5458
5459 2005-10-31  Jackson Harper  <jackson@ximian.com>
5460
5461         * Control.cs: Consistently name the dnd methods. Make them
5462         internal so we can override them to match some MS behavoir
5463         internally.
5464         * Win32DnD.cs: Use the new consistent names.
5465
5466 2005-10-31  Jackson Harper  <jackson@ximian.com>
5467
5468         * TreeView.cs: Don't draw the selected node when we lose focus.
5469
5470 2005-10-31  Jackson Harper  <jackson@ximian.com>
5471
5472         * X11Dnd.cs: We still need to reset the state even though a full
5473         reset isn't being done, otherwise status's still get sent all over
5474         the place.
5475
5476 2005-10-31  Jackson Harper  <jackson@ximian.com>
5477
5478         * Control.cs: Make the dnd_aware flag internal so the dnd
5479         subsystem can check it. Catch exceptions thrown in dnd handlers to
5480         match MS behavoir.
5481         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
5482         * X11Dnd.cs: Handle null data in the converters. Set the XDND
5483         version when sending a XdndEnter. Use the control/hwnd dnd_aware
5484         flags to reduce the number of dnd enters/status's sent.
5485
5486 2005-10-31  Jackson Harper  <jackson@ximian.com>
5487
5488         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
5489
5490 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
5491
5492         * PictureBox.cs: Fixes 76512
5493
5494 2005-10-28  Jackson Harper  <jackson@ximian.com>
5495
5496         * X11Dnd.cs: Early implementation to support winforms being a drag
5497         source for data on X11. Also restructured the converters so they
5498         can go both ways now.
5499         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
5500         
5501 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
5502
5503         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
5504           clipboard requests
5505
5506 2005-10-27  Jackson Harper  <jackson@ximian.com>
5507
5508         * TreeNode.cs: Implement serialization so my DnD examples will work.
5509
5510 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
5511
5512         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
5513           TreeView.cs: Don't dispose objects that are not owned.
5514           
5515 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
5516
5517         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
5518           should retrieve the current cursor and report that, but XplatUI
5519           doesn't (yet) have an interface for that (and I'm not sure I even
5520           can, on X11)
5521         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
5522           until any message loop processing is done (and the WM_SETCURSOR
5523           replaces the cursor to the proper one)
5524         * XplatUIX11.cs: 
5525           - Fixed override behaviour, we can't set the cursor globally on X11, 
5526             just for our windows.
5527           - Invalidating the System.Drawing X11 display handle when we are
5528             shutting down
5529         * Control.cs: Fix to make csc happy
5530
5531 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
5532
5533         * TextBoxBase.cs: 
5534           - get_Text: Add last line (without trailing newline) to returned
5535             value (Fixes 76212)
5536           - get_TextLength: Count last line in returned length
5537           - ToString: Call Text property instead of duplicating code
5538
5539 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
5540
5541         * ImageList.cs: Dispose ImageAttributes objects.
5542
5543 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
5544
5545         * ImageList.cs: Use attribute constructors with less arguments where
5546           possible.
5547
5548 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
5549
5550         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
5551           Use typeof instead of strings when assembly is referenced. Added
5552           some more comments.
5553
5554 2005-10-21  Jackson Harper  <jackson@ximian.com>
5555
5556         * ListView.cs: Raise a double click event. Also tried to somewhat
5557         fix when the selectedindexchanged event is raised. Its still
5558         broken though.
5559
5560 2005-10-21  Jackson Harper  <jackson@ximian.com>
5561
5562         * TreeView.cs: New method to invalidate the plus minus area of a
5563         node without invalidating the whole node (maybe this can be used
5564         in some more places).
5565         * TreeNodeCollection.cs: When adding to an empty node we need to
5566         invalidate its plus minus area so the little block shows up.
5567         
5568 2005-10-21  Jackson Harper  <jackson@ximian.com>
5569
5570         * TreeView.cs: Make sure that when we invalidate a node the bounds
5571         are big enough to cover the selected box and the focus
5572         rectangle. Use a different colour for the lines connecting nodes
5573         so they show up with all themes.
5574
5575 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
5576
5577         * NativeWindow.cs: Don't call anything that could call into the driver,
5578           we might be on a different thread.
5579
5580 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
5581
5582         * Control.cs(Dispose): Since Dispose might run on a different thread,
5583           make sure that we call methods that could call into the driver via
5584           invoke, to avoid thread issues
5585
5586 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
5587
5588         * XplatUI.cs: Removed finalizer
5589         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
5590           not allowing to be called on the finalizer thread.
5591
5592 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
5593
5594         * ImageList.cs:
5595           - Reverted r51889 and r51891.
5596           - Added ImageListItem class that stores unmodified image items and image
5597             properties required to create list images until handle is created.
5598           - Added AddItem and moved image creation logic to AddItemInternal.
5599           - Added CreateHandle method that creates images based on unmodified items.
5600           - Added DestroyHandle that changes state to store unmodified items.
5601           - Add and AddStrip methods no more create handle.
5602           - ReduceColorDepth has no return value.
5603           - Dispose destroys handle.
5604           - Modified other methods to reflect the above changes.
5605           - Implemented key support.
5606           - Added profile 2.0 members and attributes.
5607           - Added private Reset and ShouldSerialize methods that provide the same
5608             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
5609             them as they are private.
5610           - Added some more comments about implementation details.
5611
5612 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
5613
5614         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
5615
5616 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
5617
5618         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
5619
5620 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
5621
5622         * DataGridDrawingLogic.cs: Fixes column hit calcultation
5623         * DataGridColumnStyle.cs: Remove debug message
5624
5625 2005-10-20  Jackson Harper  <jackson@ximian.com>
5626
5627         * TreeView.cs: We can always get input keys regardless of whether
5628         or not editing is enabled. They are used for navigation.
5629
5630 2005-10-20  Jackson Harper  <jackson@ximian.com>
5631
5632         * TreeNode.cs: Use the viewport rect for determining if a node
5633         needs to be moved for visibility. Don't use Begin/End edit. This
5634         calls a full refresh when its done.
5635         * TreeView.cs: New SetBottom works correctly.  Make the viewport
5636         rect property internal so the treenodes can see it. When clicking
5637         on a node we need to ensure that its visible because it might just
5638         be partly visible when clicked.
5639
5640 2005-10-20  Jackson Harper  <jackson@ximian.com>
5641
5642         * TreeNodeCollection.cs: Remove debug code.
5643
5644 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
5645
5646         * Datagrid.cs: Implements column sorting in Datagrid
5647         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
5648
5649 2005-10-20  Jackson Harper  <jackson@ximian.com>
5650
5651         * TreeNodeCollection.cs: Remove items properly. Update the correct
5652         area after removing them.
5653
5654 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
5655
5656         * Datagrid.cs: Should not call base.OnPaintBackground
5657
5658 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
5659
5660         * XplatUIX11.cs (GetMessage):
5661           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
5662             window instead of client window
5663           - Now properly calculates NC_xBUTTONUP message coordinates
5664           - ScreenToMenu now properly calculates it's coordinates of whole 
5665             window, since menus are in the whole window, not in the client
5666             window
5667           - Added WholeToScreen coordinate translation method
5668
5669 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
5670
5671         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
5672           want to return a message, loop back to the beginning of the function
5673           and grab the next real message to process instead.
5674
5675 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
5676
5677         * Splitter.cs: Properly set limits if no filler control is used
5678
5679 2005-10-19  Jackson Harper  <jackson@ximian.com>
5680
5681         * ColorDialog.cs: Don't show the help button if it is not enabled
5682         instead of disabling it (this is what MS does). Don't create the
5683         panel until the dialog is run, otherwise the vars (such as
5684         ShowHelp) are not set yet.
5685
5686 2005-10-19  Jackson Harper  <jackson@ximian.com>
5687
5688         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
5689         are reduced when adding nodes.
5690         * TreeNode.cs:
5691         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
5692         tree.
5693         
5694 2005-10-19  Jackson Harper  <jackson@ximian.com>
5695
5696         * FolderBrowserDialog.cs: End editing our treeview so the window
5697         actually gets refreshed.
5698
5699 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
5700
5701         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
5702           Obsoleted handling of WM_ERASEBKGND, now always draws our background
5703           inside of WM_PAINT
5704
5705 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
5706
5707         * MenuAPI.cs: Returns after Hidding window
5708         * XplatUIX11.cs: Added TODO found while debugging menu issues
5709
5710 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
5711
5712         * XplatUIX11.cs: Do not re-map the whole window when it's size
5713           becomes non-zero unless it's supposed to be actually visible
5714
5715 2005-10-18  Jackson Harper  <jackson@ximian.com>
5716
5717         * TreeView.cs: We don't need to keep a count anymore.
5718         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
5719         use the Grow method.
5720
5721 2005-10-18  Jackson Harper  <jackson@ximian.com>
5722
5723         * TreeNodeCollection.cs: Insert is not supported on arrays, so
5724         implement it manually here.
5725
5726 2005-10-18  Jackson Harper  <jackson@ximian.com>
5727
5728         * ImageList.cs: Dont kill the list when the colour depth is
5729         changed, just change the colour depth of all the images.
5730         - Same goes for setting the image size. Just resize them all
5731         instead of killing the list softly.
5732
5733 2005-10-18  Jackson Harper  <jackson@ximian.com>
5734
5735         * Control.cs: Don't invalidate empty rectangles.
5736
5737 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
5738
5739         * ListViewItem.cs:
5740           - Adds checked item to the Checked/Item lists (where empty before)
5741           - Do not add items to the Selected lists if they are already present
5742         * ListView.cs:
5743           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
5744           - When deleting items make sure that we delete them for the Selected
5745           and Checked list also.
5746
5747 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
5748
5749         * Label.cs: Dispose objects no longer used
5750         * ThemeWin32Classic.cs: Dispose objects no longer used
5751
5752 2005-10-18  Jackson Harper  <jackson@ximian.com>
5753
5754         * TabControl.cs: Don't refresh the whole control when the tabs are
5755         scrolled, we just need to refresh the tab area.
5756
5757 2005-10-17  Jackson Harper  <jackson@ximian.com>
5758
5759         * XplatUIX11.cs: Compress code a little bit. Only calculate the
5760         after handle when we need it.
5761
5762 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
5763
5764         * Control.cs: When the parent size changes, recalculate anchor 
5765           positions. Partial fix for #76462
5766
5767 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
5768
5769         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
5770           drawn. Fixes #76462
5771
5772 2005-10-17  Jackson Harper  <jackson@ximian.com>
5773
5774         * MonthCalendar.cs: Don't create the numeric up down until our
5775         handle is created. Otherwise our handle is created in the
5776         constructor and we don't know if we are a WS_CHILD or WS_POPUP
5777         yet.
5778
5779 2005-10-17  Jackson Harper  <jackson@ximian.com>
5780
5781         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
5782         correctly.
5783
5784 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
5785         * TreeNode.cs : small logical fix (was using local var instead of field)
5786         
5787 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
5788
5789         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
5790
5791 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
5792
5793         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
5794
5795 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
5796
5797         * Control.cs: 
5798           - Re-implemented anchoring code. My first version was really broken.
5799             This fixes bug #76033. Unlike the previous implementation we will
5800             no longer have round errors since all numbers are calculated from
5801             scratch every time. Removed various anchor-related obsolete vars.
5802           - InitLayout no longer causes layout event firing and layout to be 
5803             performed
5804
5805 2005-10-16  Jackson Harper  <jackson@ximian.com>
5806
5807         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
5808         which was broken).
5809
5810 2005-10-16  Jackson Harper  <jackson@ximian.com>
5811
5812         * TabControl.cs: Remove debug code.
5813
5814 2005-10-16  Jackson Harper  <jackson@ximian.com>
5815
5816         * XEventQueue.cs: Increase the default queue size (very simple
5817         apps needed to grow the queue).
5818         * Hwnd.cs: No finalizer so we don't need to suppress
5819         finalization. Compute the invalid area manually so a new rectangle
5820         does not newto be created.
5821         * ScrollableControl.cs: Don't set any params (otherwise visibility
5822         isn't set correctly).
5823         * MdiChildContext.cs: New constructor takes the mdi parent so it
5824         doesn't have to be computed and avoids a crash on windows. Draw
5825         the window icon properly, and allow the text to be seen.
5826         * Form.cs: Use new MdiChildContext constructor. Make sure the
5827         child context isn't null in wndproc.
5828         * TabControl.cs: Don't set focus, this is muddling keyboard
5829         behavoir. Expand the tab rows when a window size increase will
5830         allow extra tabs to be seen. Don't allow tabs smaller than the
5831         width of a window to be scrolled out of view.
5832         * TreeNode.cs:
5833         * TreeView.cs: Use measure string to calculate a nodes width, the
5834         width is cached and only updated when the text or the font is
5835         changed. Don't check for expand/collapse clicks on the first level
5836         nodes if root lines are disabled.
5837         
5838 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
5839
5840         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
5841
5842 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
5843
5844         * DataGridBoolColumn.cs: fixes warning
5845
5846 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
5847
5848         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
5849         to match more to match more precisely the MS Net behavior
5850
5851 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
5852
5853         * Hwnd.cs: Added field to track if window is mapped
5854         * XplatUIX11.cs: 
5855           - Unmap windows if they become 0-size, re-map when 
5856             they are >0 again; fixes #76035
5857           - Re-set our error handler after initializing X11Desktop
5858             to override any error handlers Gtk or whatever was called
5859             may have set.
5860
5861 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
5862
5863         * CheckedListBox.cs: Removed unused vars
5864         * ListView.cs: Fixed signatures
5865         * RichTextBox.cs: Removed unused vars
5866         * TextBoxBase.cs: Removed unused vars
5867         * XplatUIWin32.cs: Removed unused vars
5868         * XplatUIX11.cs: Removed unused vars
5869         * XplatUI.cs: Updated version and date to latest published
5870
5871 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
5872
5873         * Cursor.cs: Added private .ctor to work around a bug in
5874           resourceset (Thanks to Geoff Norton for the help on this)
5875         * SplitterEventArgs.cs: Made fields accessible so we don't
5876           waste boatloads of objects and can reuse the same one
5877           in Splitter
5878         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
5879           any captions and borders when generating screen coordinates
5880         * Splitter.cs: Reimplemented control, now fully complete, uses
5881           rubberband drawing, supports and obeys all properties, has
5882           proper cursors
5883
5884 2005-10-13  Miguel de Icaza  <miguel@novell.com>
5885
5886         * Form.cs (Form): Setup default values for autoscale and
5887         autoscale_base_size;  Make these instance variables, not static
5888         variables. 
5889
5890         (OnLoad): on the first load, adjust the size of the form.
5891
5892 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
5893
5894         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
5895           width argument to DrawReversibleRectangle()
5896         * XplatUIWin32.cs, XplatUIX11.cs: 
5897           - Implemented width for DrawReversibleRectangle()
5898           - Added logic to DrawReversibleRectangle that recognizes a zero
5899             width or height and only draws a line in that situation
5900         
5901 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
5902
5903         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
5904         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
5905         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
5906           method (it uses our FosterParent window to get a graphics context)
5907
5908 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
5909
5910         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
5911           and SetWindowBackground methods
5912         * Control.cs:
5913           - Setting proper ControlStyles
5914           - We no longer call XplatUI.SetWindowBackground and XplatUI.
5915             EraseWindowBackground, instead we draw the window background
5916             ourselves in PaintControlBackground. This behaviour is
5917             required to match MS, where, when OnPaintBackground is not
5918             called, the background is not drawn.
5919           - Removed unneeded Refresh() in set_Text
5920         * Hwnd.cs: Dropped the ErasePending support. No longer needed
5921         * XplatUIX11.cs:
5922           - Created DeriveStyles method to translate from CreateParams to
5923             FormBorderStyle and TitleStyle, also handles BorderStyle (which
5924             matches FormBorderStyle enum values)
5925           - Consolidated SetHwndStyles and CalculateWindowRect border/title
5926             style calculations into single DeriveStyles method
5927           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
5928             from redrawing the whole window on any resize or expose.
5929           - Fixed CreateWindow usage of SetWindowValuemask. Before not
5930             all styles were applied to our whole/client window appropriately
5931           - Removed EraseWindowBackground() and SetWindowBackground() methods
5932           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
5933             no longer clear/redraw the background through X
5934           - Removed handling of erase_pending bit, we have no use for it (or
5935             so it seems)
5936         * XplatUIOSX.cs:
5937           - Removed generation and handling of WM_ERASEBKGND message
5938           - Removed EraseWindowBackground() and SetWindowBackground() methods
5939           - Removed handling of hwnd.ErasePending flag
5940         * XplatUIWin32.cs:
5941           - Removed EraseWindowBackground() and SetWindowBackground() methods
5942           - We no longer call EraseWindowBackground on PaintEventStart, we 
5943             ignore the fErase flag, erasing is handled in Control in the
5944             background handler
5945         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
5946           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
5947           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
5948           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
5949           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
5950           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
5951           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
5952
5953 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
5954
5955         * PropertyGrids.cs: Get sub properties
5956         * PropertyGridView.cs: Fix drawing code
5957
5958 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
5959
5960         * ListBox.cs: Fixes 76383
5961
5962 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
5963
5964         * DataGridTextBoxColumn.cs: Sets location and size before attachment
5965         * ThemeWin32Classic.cs: Fixes border drawing and calculations
5966         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
5967
5968
5969 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
5970
5971         * ComboBox.cs: Fixes border drawing
5972
5973 2005-10-10  Miguel de Icaza  <miguel@novell.com>
5974
5975         * MimeIcon.cs: Ignore errors if the file can not be read.
5976
5977 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
5978
5979         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
5980          - Fixed border calculations
5981          - Fixed horizontal scrolling in single column listboxes
5982          - Fixed drawing issues
5983
5984 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
5985
5986         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
5987           FormBorderStyle enum
5988         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
5989           code to determine FormBorderStyles from CreateParams
5990         * Form.cs:
5991           - Fixed bug where we'd set the wrong window styles if we were
5992             not creating an MDI window
5993           - Added call to XplatUI.SetBorderStyle when form borders are set
5994         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
5995         * Hwnd.cs:
5996           - Removed obsolete edge style
5997           - Switched from BorderStyle to FormBorderStyle
5998         
5999 2005-10-10  Jackson Harper  <jackson@ximian.com>
6000
6001         * Form.cs: Use the property to get the window handle instead of
6002         accessing it directly. Prevents a null reference exception.
6003
6004 2005-10-10  Jackson Harper  <jackson@ximian.com>
6005
6006         * TreeView.cs: Don't adjust the rect given to DrawString now that
6007         our libgdiplus draws correctly.
6008
6009 2005-10-08  Jackson Harper  <jackson@ximian.com>
6010
6011         * TreeView.cs: Don't try to find the clicked on node if there are
6012         no nodes in the tree.
6013
6014 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
6015
6016         * RichTextBox.cs:
6017
6018           restore
6019
6020 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
6021
6022         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
6023           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
6024           ErrorProvider.cs:
6025           Use ResPool for brushes and dispose System.Drawing objects that
6026           are not used anymore.
6027
6028 2005-10-07  Jackson Harper  <jackson@ximian.com>
6029
6030         * MdiChildContext.cs: Use the new borders instead of drawing them
6031         ourselves.
6032
6033 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
6034
6035         * Calling UpdateBounds after changing the window's BorderStyle 
6036         since the style can change the ClientSize
6037
6038 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
6039
6040         * Control.cs: Made PaintControlBackground virtual
6041         * Panel.cs: Overriding PaintControlBackground instead of using paint
6042           event; paint event method was interfering with 'real' users of the
6043           event.
6044
6045 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
6046
6047         * ThemeWin32Classic.cs: remove border drawing since it is handled
6048         by the base control class now and was causing double border drawing.
6049
6050 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
6051
6052         * Panel.cs: Redraw our background on paint. Not a pretty solution,
6053           but it does seem to match MS behaviour. This fixes bug #75324
6054
6055 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
6056
6057         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
6058           somewhat hackish looking
6059
6060 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
6061
6062         * TextBoxBase.cs:
6063           - We now accept Enter even if AcceptEnter is false, if the containing
6064             form does not have an AcceptButton configured (fixes bug #76355)
6065           - Calculations are now fixed to no longer use Width/Height, but
6066             ClientSize.Width/Height, since we now support borders (this was
6067             a result of fixing borders and therefore bug #76166)
6068           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
6069             true (fixes bug #76354)
6070         
6071 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
6072
6073         * Control.cs: 
6074           - Defaulting BorderStyle and setting it in XplatUI when our window 
6075             is created
6076           - Added enum check to InternalBorderStyle setter
6077         * XplatUIX11.cs: 
6078           - Added drawing of window borders
6079           - Now properly calculates WM decorations offset for toplevel 
6080             windows (fixes bug #74763)
6081         * XplatUIWin32.cs: 
6082           - Implemented BorderStyles for windows (we're letting win32 draw 
6083             the border for us)
6084           - Fixed the signature for SetWindowLong
6085         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
6086           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
6087           setting borders
6088         * UpDownBase.cs: Remove drawing of borders, this is handled by
6089           the driver, outside the client area
6090         * ListView.cs: Removed bogus border calculations. The control should
6091           be oblivious to borders, since those are not part of the client
6092           area. 
6093         * X11DesktopColors.cs: Commented out (currently) unneeded variables
6094         * ThemeWin32Classic.cs: Removed border calculations from ListView 
6095           drawing code
6096
6097 2005-10-06  Jackson Harper  <jackson@ximian.com>
6098
6099         * MdiChildContext.cs: Clear out the old virtual position remove
6100         all the unneeded calls to CreateGraphics.
6101
6102 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
6103
6104         * TextControl.cs: Use proper color for highlighted text; fixes #76350
6105
6106 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
6107
6108         * Form.cs: 
6109           - Added loading and setting of our new default icon
6110           - Only set icon if window is already created
6111
6112 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
6113
6114         * Label.cs:
6115           - Do not explicitly set the foreground and background colors, to
6116             allow inheriting from parents (fixes #76302)
6117           - Use Control's InternalBorderStyle property to deal with borders
6118
6119 2005-10-06  Jackson Harper  <jackson@ximian.com>
6120
6121         * MdiChildContext.cs: Use the new xplatui function to draw a
6122         reversible rect.
6123
6124 2005-10-06  Jackson Harper  <jackson@ximian.com>
6125
6126         * Form.cs: Add the parent before creating the child context cause
6127         we need the parent when setting up the child.
6128
6129 2005-10-06  Jackson Harper  <jackson@ximian.com>
6130
6131         * FolderBrowserDialog.cs: redo the tree population code so a
6132         second thread isn't used. Should be a lot faster and more stable
6133         now.
6134
6135 2005-10-05  Jackson Harper  <jackson@ximian.com>
6136
6137         * TreeView.cs: There are no expand/collapse boxes if the node has
6138         no children.
6139
6140 2005-10-05  Jackson Harper  <jackson@ximian.com>
6141
6142         * X11DesktopColors.cs: Get menu colours for the gtk theme.
6143
6144 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
6145
6146         * FileDialog.cs: Fix InitialDirectory
6147
6148 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
6149
6150         * ComboBox.cs:
6151                 - Fixes changing between styles
6152                 - Fixes simple mode
6153                 - Fixes last item crashing when navigating with keyboard
6154
6155 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
6156
6157         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
6158
6159 2005-10-05  Jackson Harper  <jackson@ximian.com>
6160
6161         * TreeView.cs: If updating the root node do a full refresh.
6162         * TreeNode.cs: The root node should be expanded by default. Also
6163         added a utility prop to tell if we are the root node.
6164         * TreeNodeCollection.cs: Only refresh if the node we are being
6165         added to is expanded. Also added a comment on a potential
6166         optimization.
6167         
6168 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
6169
6170         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
6171           in dispose method. Fixes #76330
6172
6173 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
6174
6175         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
6176
6177                 - Implements vertical and horizontal scrolling using XplatUI
6178                 - Fixes keyboard navagation
6179                 - Fixes EnsureVisible
6180                 - Drawing fixes
6181                 - Handles and draws focus properly
6182
6183
6184 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
6185
6186         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
6187           Create handle. NET_2_0: Destroy handle when value is null.
6188
6189 2005-10-03  Jackson Harper  <jackson@ximian.com>
6190
6191         * ScrollBar.cs: My last scrollbar patch was broken. This is a
6192         revert and a new patch to prevent the thumb from refreshing so
6193         much.
6194
6195 2005-10-02  Jackson Harper  <jackson@ximian.com>
6196
6197         * ScrollBar.cs: Don't update position if it hasn't actually
6198         changed. This occurs when you hold down the increment/decrement
6199         buttons and the thumb gets to the max/min.
6200
6201 2005-10-01  Jackson Harper  <jackson@ximian.com>
6202
6203         * Form.cs:
6204         * MdiChildContext.cs:
6205         * MdiClient.cs: Implement ActiveMdiChild in Form.
6206
6207 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
6208
6209         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
6210
6211 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
6212
6213         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
6214           be found
6215
6216 2005-09-30  Jackson Harper  <jackson@ximian.com>
6217
6218         * ListBox.cs: Don't do a full refresh unless some data has
6219         actually changed.
6220
6221 2005-09-30  Jackson Harper  <jackson@ximian.com>
6222
6223         * TreeView.cs: Make sure that the checkboxes size is factored in
6224         even when not visible.
6225
6226 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
6227
6228         * FileDialog.cs: Fix Jordi's build break
6229
6230 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
6231
6232         * FileDialog.cs: 
6233                 - Use standard the Windows colours for the combobox as espected
6234                 - Dispose objects that use resouces when no longer need them
6235
6236 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
6237
6238         * X11DesktopColors.cs: Initial incomplete implementation
6239         * XplatUIX11.cs: Added call to initialize X11DesktopColors
6240
6241 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
6242
6243         * Theme.cs: 
6244           - Switched Theme color names to match the names defined in 
6245             System.Drawing.KnownColors. Life's hard enough, no need to make 
6246             it harder.
6247           - Added setters to all theme color properties so themes can set
6248             their color schemes. The setters also propagate the color changes
6249             to System.Drawing.KnownColors via reflection
6250         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
6251           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
6252           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
6253           use the new, more logical theme color names
6254         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
6255           post-NT colors
6256         * ThemeWin32Classic.cs:
6257           - Removed code to set the old classic Windows colors. Instead it
6258             now relies on the colors returned by System.Drawing.KnownColors
6259             which will be either modern static colors (Unix) or colors
6260             read from the user's configuration (Win32)
6261           - Updated to use the new, more logical theme color names
6262           - Switched DataGrid drawing code to use only Theme colors instead of
6263             a mix of System.Drawing.KnownColors and Theme colors
6264           - DrawFrameControl(): Removed code that fills the button area, the
6265             fill would overwrite any previous fill done by a control. This
6266             fixes bug #75338 
6267           - Added DrawReversibleRectangle() stub
6268         * ScrollableControl.cs: Set visible state to false when scrollbars
6269           are removed (pdn fix)
6270         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
6271           DrawReversibleRectangle() method to allow drawing primitive 
6272           'rubber bands'
6273         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
6274
6275 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
6276
6277         * ImageList.cs: Add(Icon): Create handle.
6278
6279 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
6280
6281         * ListView.cs:
6282         * ThemeWin32Classic.cs:
6283                 - Fixes detail mode
6284                 - Sets clippings
6285                 - Issues with drawing
6286
6287 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
6288
6289         * ImageList.cs: Moved RecreateHandle back to ImageList as event
6290           source has to be the ImageList.
6291
6292 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
6293
6294         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
6295
6296 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
6297
6298         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
6299
6300 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
6301
6302         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
6303
6304 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
6305         * GridItem.cs: Fixed TODOs
6306         * GridItemCollection.cs: Added ICollection interface
6307
6308 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
6309
6310         * ImageList.cs: Resize icons when needed.
6311
6312 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
6313
6314         * ListViewItem.cs
6315                 - Fixes GetBounds and returns on screen rects
6316         * ListView.cs:
6317                 - Fixes vertical and horzintal scrolling of items
6318         * ThemeWin32Classic.cs:
6319                 - Fixes drawing
6320                 
6321 2005-09-29  Raja R Harinath  <harinath@gmail.com>
6322
6323         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
6324
6325 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
6326
6327         * ImageList.cs: Added comments about handle creation. Moved Handle,
6328           HandleCreated and OnRecreateHandle implementations to ImageCollection.
6329           Handle is created in Add methods.
6330
6331 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
6332          
6333         * DataGridDrawingLogic.cs: 
6334                 - Takes rows into account on Colum calculations
6335                 - Returns the column when clickig
6336         * DataGrid.cs:
6337                 - Fixes default HitTestInfo values
6338                 - Fixes HitTestInfo.ToString
6339                 - Fixes ResetBackColor          
6340         
6341 2005-09-28  Jackson Harper  <jackson@ximian.com>
6342
6343         * MdiChildContext.cs: Obey rules for fixed sized windows (no
6344         sizing or cursor changes). Also added some temp code to draw the
6345         titlebars text (Makes dev a little easier).
6346
6347 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
6348
6349         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
6350
6351 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
6352          
6353         * ListBox.cs: Fixes bug 76253
6354
6355 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
6356
6357         * ImageList.cs: Added comments about the current implementation. Added
6358           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
6359           Format32bppArgb to preserve transparency and can use Graphics.FromImage
6360           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
6361           with Bitmap.LockBits for better performance. Revised the whole file to
6362           match MS.NET behaviour and provide better performance. Non-public
6363           interface members are calling public members even when they throw
6364           NotSupportedException for better maintainability. Moved ColorDepth,
6365           ImageSize, ImageStream and TransparentColor implementations to
6366           ImageCollection for better performance as these properties are not used
6367           by ImageList.
6368         * ImageListStreamer.cs: Added a new internal constructor that takes an
6369           ImageList.ImageCollection and serializes Images based on
6370           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
6371           match ImageList property name.
6372
6373 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
6374
6375         * ListBox.cs: Fixes IndexFromPoint for last item
6376
6377 2005-09-27  Jackson Harper  <jackson@ximian.com>
6378
6379         * Form.cs: Set the position of new mdi children correctly.
6380
6381 2005-09-27  Jackson Harper  <jackson@ximian.com>
6382
6383         * MdiClient.cs: New mdi children need to be added to the back of
6384         the controls collection so the zorder is set correctly. Also add a
6385         count of all the child windows that have been created.
6386
6387 2005-09-27  Jackson Harper  <jackson@ximian.com>
6388
6389         * Form.cs (CreateParams): Setup MDI forms correctly.
6390
6391 2005-09-27  Jackson Harper  <jackson@ximian.com>
6392
6393         * MdiChildContext.cs:
6394         * MonthCalendar.cs:
6395         * UpDownBase.cs:
6396         * ListBox.cs:
6397         * ListView.cs:
6398         * TextBoxBase.cs:
6399         * TreeView.cs:
6400         * ScrollableControl.cs:
6401         * ComboBox.cs: Add implicit controls using the new implict control
6402         functionality in ControlCollection. Also try to block multiple
6403         control add in a suspend/resume layout to save some cycles.
6404         
6405 2005-09-27  Jackson Harper  <jackson@ximian.com>
6406
6407         * Control.cs: Add functionality to the controls collection to add
6408         'implicit controls' these are controls that are created by the
6409         containing control but should not be exposed to the user. Such as
6410         scrollbars in the treeview.
6411         * Form.cs: The list var of the ControlsCollection is no longer
6412         available because of the potential of implicit controls getting
6413         ignored by someone accessing the list directly.
6414
6415 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
6416
6417         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
6418           loose it's parent. (Fixed bug introduced in r49103 when we added
6419           setting the child parent to null on Remove)
6420
6421 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
6422
6423         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
6424         * Splitter.cs: Added missing attributes for BorderStyle property.
6425         * TextBoxBase.cs: Marked Calculate* methods internal.
6426         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
6427         MS.NET.
6428
6429 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
6430          
6431         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
6432
6433 2005-09-25  Jackson Harper  <jackson@ximian.com>
6434
6435         * TreeView.cs: Update the node bounds correctly regardless of
6436         whether the node is visible.
6437
6438 2005-09-25  Jackson Harper  <jackson@ximian.com>
6439
6440         * ImageList.cs: Don't dispose the image after it is added to the
6441         image list. Only reformat images that need to be resized.
6442
6443 2005-09-25  Jackson Harper  <jackson@ximian.com>
6444
6445         * ImageList.cs: Don't set the format when changing the image.
6446
6447 2005-09-25  Jackson Harper  <jackson@ximian.com>
6448
6449         * TreeView.cs: We can't just assume the node has a font. Use the
6450         treeviews font if no node font is available.
6451
6452 2005-09-25  Jackson Harper  <jackson@ximian.com>
6453
6454         * TreeView.cs: Allow the scrollbars to be reset with negative
6455         values.
6456         - Don't add scrollbars to negative sized windows.
6457
6458 2005-09-23  Jackson Harper  <jackson@ximian.com>
6459
6460         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
6461         old Mono.Posix. Also remove some stray code that shouldn't have
6462         been committed.
6463
6464 2005-09-23  Jackson Harper  <jackson@ximian.com>
6465
6466         * TreeView.cs: Attempt at proper sizing of the horizontal
6467         scrollbar. Also don't resize the scrollbars unless they are
6468         visible.
6469
6470 2005-09-23  Jackson Harper  <jackson@ximian.com>
6471
6472         * TreeView.cs: We don't need to expand the invalid area when the
6473         selection changes, as this is all drawn in the node's bounding
6474         box. The area needs to be expanded (previous typo was contracting
6475         it) when the focus rect moves.
6476
6477 2005-09-23  Jackson Harper  <jackson@ximian.com>
6478
6479         * TreeView.cs: Display the selection box under the correct
6480         circumstances. We were rendering white text with no selection box
6481         before.
6482
6483 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
6484
6485         * TextControl.cs(Split): Now updates selection start/end if it points 
6486           into a line that's being split. Fixes a FIXME and bug #75258
6487
6488 2005-09-23  Jackson Harper  <jackson@ximian.com>
6489
6490         * Binding.cs:
6491         * ListControl.cs: Don't use the path when retrieving binding
6492         managers from the binding context. My bat sense tells me that the
6493         path is only used on insertion.
6494
6495 2005-09-22  Jackson Harper  <jackson@ximian.com>
6496
6497         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
6498
6499 2005-09-22  Jackson Harper  <jackson@ximian.com>
6500
6501         * Splitter.cs: There are special cursors used for splitting.
6502         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
6503
6504 2005-09-22  Jackson Harper  <jackson@ximian.com>
6505
6506         * Splitter.cs: Change the cursor appropriately when the splitter
6507         is moused over, so the user actually knows there is a splitter
6508         there.
6509
6510 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
6511
6512        * Label.cs : Fix ToString method to give same output as MS.NET
6513
6514 2005-09-22  Jackson Harper  <jackson@ximian.com>
6515
6516         * TreeView.cs: Create the scrollbars when the handle is created
6517         and add them right away, just make them invisble. Also account for
6518         the window being shrunk vertically to the point that the vert
6519         scrollbar needs to be added.
6520         - Remove some 0.5 adjustments to get around anti aliasing issues.
6521         
6522 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
6523          
6524         * MainMenu.cs: Fixes default value
6525         * MenuItem.cs: Fixes default value
6526
6527 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
6528
6529         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
6530
6531 2005-09-21  Jackson Harper  <jackson@ximian.com>
6532
6533         * Control.cs: Don't try to set the border style on the window if
6534         it hasn't been created. When the window is created the border
6535         style will be used.
6536
6537 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
6538
6539         * Control.cs (Update): Don't call XplatUI if we don't have a
6540           window handle yet
6541
6542 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
6543
6544         * ContainerControl.cs: Instead of throwing an exception, print
6545           a one-time warning about Validate not being implemented
6546         * XplatUIWin32.cs: Removed debug output
6547
6548 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
6549
6550         * Control.cs: Only set XplatUI background if we expect the windowing
6551           system to handle the background. This stops controls that draw their
6552           own background from flickering
6553
6554         * XplatUIX11.cs: Support custom visuals and colormaps for window 
6555           creation. This allows, amongst other things, using MWF X11 windows 
6556           with OpenGL.
6557
6558 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
6559
6560         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
6561           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
6562           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
6563           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
6564           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
6565           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
6566           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
6567           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
6568           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
6569           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
6570           GridColumnStylesCollection.cs, 
6571           IDataGridColumnStyleEditingNotificationService.cs,
6572           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
6573           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
6574           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
6575           TreeNodeCollection.cs, AmbientProperties.cs, 
6576           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
6577           DataObject.cs, ErrorProvider.cs, Splitter.cs,
6578           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
6579           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
6580           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
6581           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
6582           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
6583           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
6584           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
6585           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
6586           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
6587           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
6588           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
6589           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
6590           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
6591           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
6592           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
6593           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
6594           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
6595           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
6596           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
6597           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
6598           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
6599           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
6600           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
6601           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
6602           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
6603           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
6604           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
6605           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
6606           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
6607           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
6608           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
6609           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
6610           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
6611           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
6612           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
6613
6614 2005-09-21  Jackson Harper  <jackson@ximian.com>
6615
6616         * TreeNode.cs: Call Before/After Expand not Collapse when
6617         expanding.
6618
6619 2005-09-20  Jackson Harper  <jackson@ximian.com>
6620         
6621         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
6622
6623 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
6624          
6625         * ListViewItem.cs:
6626                 - Fixes bug 76120
6627                 - Fixes proper storing of subitems
6628                 - Fixes not updated items
6629
6630 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
6631
6632         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
6633           things if our window handle isn't created yet. Also disabled 
6634           debug for TextBoxBase
6635
6636 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
6637
6638         * MenuAPI.cs: Remove filtering of events to allow menu usage
6639
6640 2005-09-20  Miguel de Icaza  <miguel@novell.com>
6641
6642         * Cursor.cs: Allow null to be passed to Cursor.Current.
6643
6644 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
6645
6646         * ThemeWin32Classic.cs:
6647           - Change some private methods/fields to protected virtual so that 
6648             they can be accessed and overriden in derived classes
6649           - First refactoring of some methods. Derived themes now don't 
6650             need to duplicate the complete code from ThemeWin32Classic
6651         * ThemeNice.cs:
6652           - Added nice StatusBar
6653           - Derive from ThemeWin32Classic and not Theme
6654           - Removed duplicate ThemeWin32Classic code
6655
6656 2005-09-20  Miguel de Icaza  <miguel@novell.com>
6657
6658         * Control.cs (ControlCollection.Add): If the value null is passed
6659         the control is ignored. 
6660
6661         Optimize this loop.
6662
6663 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
6664
6665         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
6666           PostQuitMessage state.
6667         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
6668
6669 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
6670
6671         * Application.cs: Our constructor will never get called, move 
6672           initialization to fields; fixes bug #75933
6673
6674 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
6675
6676         * FileDialog.cs :
6677                 - Allow files to be selected properly using file name
6678                 combo box.
6679                 - Add ability to change diretory (absolute / relative)
6680                 using file name combo box.
6681
6682 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
6683          
6684         * ListBox.cs: 
6685                 - Fixes Multicolumn listboxes item wrong calculations
6686                 - Allows to click when only one item is in the listbox
6687                 - Fixes crash when no items using keyboard navigation
6688
6689 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
6690
6691         * ComboBox.cs: Reverted almost everything from the latest patch which
6692           broke ComboBox
6693
6694 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
6695         
6696         * ToolTip.cs:
6697                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
6698         * ComboBox.cs:
6699                 - When DropDownStyle is Simple, it does not show scrollbar 
6700                 to the last item of the list.
6701                 - When DropDownStyle is Simple, it crashed when the list was 
6702                 scrolled down with the down cursor key.
6703                 - Fixed a bug that when DropDownStyle is DropDownList, the 
6704                 selected item was not shown.
6705                 - The position of the selected item was not preserved when 
6706                 the next dropdown happened.
6707         * ThemeWin32Classic.cs:
6708                 - Items were wrapped at the right end.
6709         * CheckedListBox.cs:
6710                 - Fixed Add method
6711         * ListBox.cs:
6712                 - Items should be fully shown.
6713                 - When resizing and vertical scrollbar disappeared, the item 
6714                 of index 0 should be on the top of the list.
6715                 - GetItemRectangle should consider the size of ver. scrollbar
6716         * StatusBar.cs:
6717                 - SizingGrip area should not be allocated when it is not 
6718                 displayed.
6719                 - Now it reflects MinWidth of the containing panel and 
6720                 fixed a crash that happens when its width becomes so small.
6721
6722 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
6723
6724         * CheckedListBox.cs: Fixes bug 76028
6725         * ListBox.cs: Fixes bug 76028
6726
6727 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
6728
6729         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
6730         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
6731
6732 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
6733
6734         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
6735
6736 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
6737
6738         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
6739
6740 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
6741
6742         * IRootGridEntry.cs: Added
6743         * PropertyGridCommands.cs: Added
6744         * PropertiesTab.cs: Added missing methods and property
6745         * PropertyGridView.cs: Made class internal
6746         * PropertyGridTextBox.cs: Made class internal
6747
6748 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
6749
6750         * MimeIcon.cs: Try to check some other environment variables
6751           if "DESKTOP_SESSION" returns "default"
6752
6753 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
6754
6755         * ThemeNice.cs: Corrected background colors (e.g. menus)
6756         * ColorDialog.cs: Use correct background colors for controls
6757
6758 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
6759
6760         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
6761
6762 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
6763
6764         * RichTextBox.cs: Added initial implementation
6765         * lang.cs: Removed. Was accidentally checked in long time ago
6766         * TODO: Removed. Contents were obsolete
6767
6768 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
6769                                                                                 
6770         * PropertiesTab.cs : Added
6771
6772 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
6773                                                                                 
6774         * PropertyGrid.cs : Update
6775         * PropertyGridView.cs : Update
6776         * System.Windows.Forms.resx : Added images and strings
6777
6778 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
6779
6780         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
6781  
6782 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
6783
6784         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
6785           a busy loop right after the Ungrab the X11 display is otherwise 
6786           blocked
6787
6788 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
6789
6790         * ThemeWin32Classic.cs: Optimise the use of clipping
6791
6792 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
6793
6794         * DataGrid.cs: fixes recursion bug
6795
6796 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
6797
6798         * ThemeNice.cs: 
6799           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
6800           - Cleanup
6801
6802 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
6803
6804         * ThemeNice.cs: Draw nice ProgressBars
6805
6806 2005-09-01  Miguel de Icaza  <miguel@novell.com>
6807
6808         * VScrollBar.cs: Another buglet found by Aaron's tool. 
6809
6810         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
6811         bug finder.
6812
6813 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
6814
6815         * ThemeNice.cs:
6816           - Added nicer menu drawing
6817           - Updated DrawTab
6818           - some refactoring
6819
6820 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
6821
6822         * CreateParams.cs (ToString): Made output match MS
6823         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
6824             handle is already created (to avoid forcing window creation)
6825         * XplatUIX11.cs: Set window text to caption after creating window,
6826           in case Text was set before window was created
6827         * Form.cs: Use this.Text instead of a static string as caption
6828
6829 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
6830
6831         * NotifyIcon.cs: Don't set the window to visible; this screws
6832           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
6833           OnPaint without a bitmap)
6834         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
6835           happen very often anyway; we could add the check to the WM_PAINT 
6836           event generation code
6837
6838 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
6839
6840         * NotifyIcon.cs: Fill the icon area with a background color, to 
6841           avoid 'residue' when transparent icons are drawn
6842         * XplatUIX11.cs:
6843           - Handle whole_window == client_window when destroying windows
6844           - SystrayAdd(): Set client_window to whole_window value to
6845             get mouse and other events passed to NotifyIcon
6846
6847 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
6848
6849         * Form.cs: Set proper default for Opacity property
6850         * NotifyIcon.cs:
6851           - ShowSystray(): Don't bother creating telling the OS
6852             about the systray item if no icon is provided
6853           - Now handles WM_NCPAINT message to deal with whole/client window
6854             split
6855           - Create window as visible to not get caught by Expose optimization
6856         * Hwnd.cs: Removed debug message
6857         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
6858           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
6859             PaintEventStart/End to use new client argument
6860         * TextBoxBase.cs:
6861           - Commented out debug messages
6862           - Switched PaintEventStart/End to use new client argument
6863         * XplatUI.cs: Added client window bool to PaintEventStart()/
6864           PaintEventEnd() calls, to support drawing in non-client areas
6865         * XplatUIDriver.cs: 
6866           - Added client window bool to PaintEventStart()/PaintEventEnd() 
6867             calls, to support drawing in non-client areas
6868           - Added conditional compile to allow using MWF BeginInvoke 
6869             on MS runtime
6870         * XplatUIX11.cs:
6871           - Added some conditional debug output
6872           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
6873             whole/client window split
6874           - Implemented handling of client argument to PaintEventStart()/End()
6875         * Control.cs:
6876           - Throw exception if BeginInvoke() is called and the window handle
6877             or one of the window's parent handles is not created
6878           - Added conditional compile to allow using MWF BeginInvoke on
6879             MS runtime
6880           - get_Parent(): Only sets parent if handle is created. This avoids
6881             forcing window handle creation when parent is set.
6882           - Now fires Layout and Parent changed events in proper order
6883           - Switched to use Handle instead of window.Handle for Z-Order setting,
6884             the get_Parent() patch above causes us to possibly get null for 'window'
6885           - Implemented handling of client argument to PaintEventStart()/End()
6886           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
6887             default handling)
6888           - Now sends a Refresh() to all child windows when Refresh() is called
6889
6890 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
6891
6892         * Form.cs: Added (non-functional) Opacity property
6893         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
6894
6895 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
6896         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
6897           use export MONO_THEME=nice to activate it.
6898           Currently supported controls:
6899           - Button
6900           - ComboBox
6901           - ScrollBar
6902           - TabControl (TabAlignment.Top only, other will follow)
6903         * ThemeEngine.cs: Add theme nice
6904         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
6905           if enabled
6906
6907 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
6908
6909         * Splitter.cs: Resize docked control and its neighbor.
6910
6911 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
6912         -- Making Windows with Menus layout correctly --
6913         * Form.cs : The first leg of the fix
6914                 Menu setter - adjust Client Size as needed to make space for the menu
6915                 SetClientSizeCore - doesn't call base version to be able to pass the 
6916                         menu handle to XplatUI.CalculateWindowRect
6917         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
6918         * XplatUIX11.cs: The critical second leg of the fix
6919                 GetWindowPos needs to use a recalculated client_rect
6920                 so that resizing the window doesn't break layout of child controls. 
6921                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
6922                 Lots of \t\n killed
6923
6924 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
6925
6926         * Label.cs: Now properly recalculates width and height on Font and Text
6927           changes if AutoSize is set
6928
6929 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
6930         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
6931
6932 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
6933
6934         * ImageList.cs: Makes ToString method compatible with MS
6935
6936 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
6937
6938         * MenuAPI.cs: fixes bug 75716
6939
6940 2005-08-11 Umadevi S <sumadevi@novell.com>
6941         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
6942
6943 2005-08-11 Umadevi S <sumadevi@novell.com>
6944         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
6945
6946 2005-08-10  Umadevi S <sumadevi@novell.com>
6947         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
6948
6949 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
6950
6951         * Menu.cs: fixes bug 75700
6952         * MenuAPI.cs: fixes navigation issues
6953
6954 2005-08-09  Umadevi S <sumadevi@novell.com>
6955         * CheckedListBox.cs - simple fix for GetItemChecked.
6956
6957 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
6958
6959         * ComboBox.cs: Serveral fixes
6960         * ListBox.cs: Serveral fixes
6961
6962 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
6963
6964         * ComboBox.cs: Fixes FindString methods and GetItemHeight
6965         * ListBox.cs: Fixes FindString methods
6966
6967 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
6968
6969         * DataGrid.cs: fixes bugs exposed by new tests
6970
6971 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
6972
6973         * Mime.cs: Compile Mono assembly references only if compiling
6974           with Mono (Allows to build with VS.Net again)
6975
6976 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
6977
6978         * Control.cs (PaintControlBackground): Draw background image
6979         corrrectly.
6980         (CheckForIllegalCrossThreadCalls): Stubbed.
6981         
6982         * Form.cs (OnCreateControl): Center when should be centered.
6983         
6984         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
6985
6986 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
6987
6988         * Binding.cs: Binding to properties should be case unsensitive
6989
6990 2005-07-18 vlindos@nucleusys.com
6991
6992         * DataGrid.cs: fixes setmember order
6993
6994 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
6995
6996         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
6997         * FileDialog.cs: FileDialog is now resizable and uses the new
6998           MimeIconEngine
6999
7000 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
7001
7002         * DataGridTextBoxColumn.cs: default value
7003         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
7004         * GridTableStylesCollection.cs: fixes checking MappingName
7005         * DataGridDrawingLogic.cs: fixes drawing logic issues
7006         * DataSourceHelper.cs: rewritten to make compatible with more data sources
7007         * DataGrid.cs: fixes    
7008
7009 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
7010
7011         * MimeGenerated.cs: Use case sensitive comparer for
7012           NameValueCollections
7013
7014 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
7015
7016         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
7017         * ThemeWin32Classic.cs: bug fixes, code refactoring
7018         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
7019         * DataGrid.cs: bug fixes, code refactoring
7020         * DataGridTextBox.cs: bug fixes, code refactoring
7021         * DataGridColumnStyle.cs:  bug fixes, code refactoring
7022         * Theme.cs:  bug fixes, code refactoring
7023
7024 2005-07-01  Peter Bartok  <pbartok@novell.com> 
7025
7026         * TextControl.cs: Quick fix for the reported crash on ColorDialog
7027           and other text box usage
7028
7029 2005-07-01  Jackson Harper  <jackson@ximian.com>
7030
7031         * TabControl.cs: Make sure the bottom of the tab covers the pages
7032         border.
7033
7034 2005-06-30  Peter Bartok  <pbartok@novell.com> 
7035
7036         * Form.cs (ShowDialog): Assign owner of the dialog
7037         * TextBoxBase.cs: Always refresh caret size when deleting, caret
7038           might have been moved to a tag with different height
7039
7040 2005-06-30  Jackson Harper  <jackson@ximian.com>
7041
7042         * Form.cs: Don't create an infinite loop when setting focus
7043         * MenuItem.cs: Don't dirty the parents if we don't have any
7044
7045 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
7046
7047         * LibSupport.cs: Rename
7048
7049 2005-06-29  Peter Bartok  <pbartok@novell.com>
7050
7051         * TextBoxBase.cs: Re-align caret after deleting a character
7052         * TextControl.cs:
7053           - DeleteChars(): Ensure that tag covers the provided position
7054           - StreamLine(): Drop reference for dropped tag
7055
7056 2005-06-29  Peter Bartok  <pbartok@novell.com> 
7057
7058         * TextControl.cs: 
7059           - Selections now work properly, anchoring at the initial location
7060             and properly extending in either direction (SetSelectionToCaret(),
7061             SetSelectionStart() and SetSelectionEnd())
7062           - No longer redraws the whole control on selection change, now
7063             calculates delta between previous and new selection and only
7064             invalidates/redraws that area
7065           - Fixed FindPos() math off-by-one errors
7066           - Changed DeleteChars() to verify the provided tag covers the
7067             provided position, selections may have a tag that doesn't cover
7068             the position if the selection is at a tag border
7069           - Fixed off-by-one errors in DeleteChars()
7070           - Added missing streamlining check in DeleteChars() to remove
7071             zero-length tags
7072           - Implemented Invalidate() method, now properly calculates exposures
7073             between two given lines/positions
7074           - Implemented SetSelection()
7075           - Obsoleted and removed FixupSelection()
7076           - Improved RecalculateDocument() logic, removing code duplication
7077
7078 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7079
7080         * LibSupport.cs: changes to match different input/output arguments.
7081
7082 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7083
7084         * LibSupport.cs: added libsupport.so init routine.
7085
7086 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
7087         
7088         * ControlBindingsCollection.cs
7089                 - Throws an exception on null datasource when adding
7090                 - Checks for duplicated bindings when adding
7091
7092 2005-06-28  Jackson Harper  <jackson@ximian.com>
7093
7094         * TreeView.cs (OnKeyDown): Support left and right properly
7095         (navigates as well as expanding and collapsing.
7096         - Add support for Multiply, this expands all the selected nodes
7097         children.
7098         - Fix some tabbing.
7099
7100 2005-06-28  Jackson Harper  <jackson@ximian.com>
7101
7102         * TreeView.cs: Implement keyboard navigation, currently supports,
7103         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
7104         support for toggling checkboxes with the space bar.
7105
7106 2005-06-28  Jackson Harper  <jackson@ximian.com>
7107
7108         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
7109         tree.
7110
7111 2005-06-28  Jackson Harper  <jackson@ximian.com>
7112
7113         * TreeView.cs: Add missing event.
7114
7115 2005-06-27  Peter Bartok  <pbartok@novell.com> 
7116
7117         * TextControl.cs:
7118           - Made line ending size configurable (now allows for counting 
7119             lineendings as \n or \r\n)
7120           - Added margin to viewport to keep caret visible on right side
7121           - Fixed translation routines for line/pos to documentpos to consider
7122             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
7123           - Fixed some line-endings to be unix style
7124           - Fixed Document.FormatText to perform it's calculations 1-based
7125           - Added descriptions for a few methods that might otherwise get 
7126             used wrong
7127           - Added NOTE section with some basic conventions to remember at 
7128             the top of the file
7129           - Major fixup for RichTextBox selection drawing:
7130             * Fixed crashes when multiple tags on a single line were selected
7131             * fixed selection box drawing not overlaying text
7132             * fixed bogus offset calculation for tags not starting at index 1
7133             * Switched behaviour from using multiple Substrings of a 
7134               StringBuilder.ToString() to using multiple 
7135               StringBuilder.ToString(start, length) statements, hoping this is
7136               faster (kept original version commented out in the code, in case
7137               original version was faster)
7138         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
7139           alignment != Left
7140         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
7141           call it as well
7142
7143 2005-06-27  Jackson Harper  <jackson@ximian.com>
7144
7145         * TabControl.cs: Move to the left and right with the arrow
7146         keys. These keys don't cycle beyond first and last like
7147         tab. Refresh all the tabs when scrolling them to the left or
7148         right.
7149
7150 2005-06-27  Jackson Harper  <jackson@ximian.com>
7151
7152         * TabControl.cs:
7153           - ToString: Added method
7154           - CreateParams: Remove TODO and comment
7155           - OnKeyDown: Cycle through bounds properly.
7156           - SelectedIndex: Scroll to the right or left if we need to
7157           display the newly selected tab.
7158
7159 2005-06-23  Jackson Harper  <jackson@ximian.com>
7160
7161         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
7162         set.
7163
7164 2005-06-23  Jackson Harper  <jackson@ximian.com>
7165
7166         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
7167         CTRL-SHIFT-TAB, and HOME, END are there any others?
7168
7169 2005-06-23  Jackson Harper  <jackson@ximian.com>
7170
7171         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
7172
7173 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
7174         
7175         * DataGridTextBoxColumn.cs: fixes and enhancements
7176         * ThemeWin32Classic.cs: fixes and enhancements
7177         * DataGridBoolColumn.cs:  fixes and enhancements
7178         * DataGridDrawingLogic.cs:  fixes and enhancements
7179         * CurrencyManager.cs: fixes and enhancements
7180         * DataGrid.cs: fixes and enhancements
7181         * DataGridColumnStyle.cs:  fixes and enhancements
7182
7183 2005-06-22  Jackson Harper  <jackson@ximian.com>
7184
7185         * TabControl.cs: Add some missing methods that just call into the
7186         base. Make the TabPageCollection's IList interface behave in the
7187         same manner as the MS implementation.
7188
7189 2005-06-22  Peter Bartok  <pbartok@novell.com> 
7190
7191         * TextControl.cs: Added sanity check
7192         * TextBoxBase.cs: 
7193           - Fixed wrapping behaviour, don't set wrap on single line controls
7194             (this fixes the breakage of colordialog introduced in an earlier
7195              checkin)
7196           - Added rudimentary support for autoscrolling right-aligned controls
7197             (still needs fixing, also, center alignment scroll is missing)
7198
7199 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
7200         
7201         * ScrollBar.cs: Fixes thumbpos on Maximum values
7202
7203 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
7204         
7205         * PropertyGridView.cs: Pass context information to UITypeEditors 
7206
7207 2005-06-21  Peter Bartok  <pbartok@novell.com> 
7208
7209         * TextBoxBase.cs:
7210           - Now calling PositionCaret with absolute space coordinates
7211           - Enabled vertical scrolling
7212           - Better tracking of scrollbar changes, tied into WidthChange
7213             event
7214           - Improved cursor tracking
7215           - Removed debug output
7216         * TextControl.cs:
7217           - PositionCaret coordinates are now works in absolute space, not 
7218             the canvas
7219           - Improved tracking of document size
7220           - Added events for width and height changes
7221
7222 2005-06-21  Peter Bartok  <pbartok@novell.com>
7223
7224         * Form.cs: Set focus to active control when form is activated
7225         * TextControl.cs: 
7226           - Added word-wrap functionality to RecalculateLine() 
7227           - Added some short function descriptions for VS.Net to aid in
7228             writing dependent controls
7229           - Added Caret property, returning the current coords of the caret
7230           - Added ViewPortWidth and ViewPortHeight properties
7231           - Added Wrap property
7232           - Added CaretMoved event
7233           - Removed some old debug code
7234           - Split() can now create soft splits
7235           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
7236           - Added method to format existing text
7237           - Fixed size/alignment calculations to use viewport
7238           - RecalculateDocument now can handle changing line-numbers while
7239             calculating lines
7240
7241         * TextBox.cs:
7242           - Added some wrap logic, we don't wrap if alignment is not left
7243           - Added casts for scrollbar var, base class switched types to
7244             also support RichTextBoxA
7245           - Implemented handling of scrollbar visibility flags
7246
7247         * TextBoxBase.cs:
7248           - Switched scrollbars type to RichTextBoxScrollBars to support
7249             RichTextBox
7250           - Added tracking of canvas width/height
7251           - Switched scrollbars to be not selectable (to keep focus on text)
7252           - Added central CalculateDocument() method to handle all redraw
7253             requirements
7254           - Added ReadOnly support
7255           - Added WordWrap support
7256           - Fixed handling of Enter key (we now treat it as a DialogKey)
7257           - Fixed caret positioning when h or v scroll is not zero
7258           - Fixed placing/generation of vertical scrollbar
7259           - Added CalculateScrollBars() method to allow updating scrollbar
7260             limits and visibility
7261           - Fixed handling of horizontal scroll
7262           - Added handling of vertical scroll
7263           - Implemented auto-'jump' when caret moves to close to a left or
7264             right border and there is text to be scrolled into view (currently
7265             there's the potential for a stack overflow, until a bug in
7266             scrollbar is fixed)
7267
7268 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
7269         
7270         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
7271
7272 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
7273
7274         * Mime.cs:
7275         - added inodes.
7276         - return application/x-zerosize for files with size zero
7277           (if no extension pattern matches).
7278         - check matches collection for strings too.
7279         - return only the first mime type if the name value
7280           collection has more than one mime type.
7281
7282 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
7283         
7284         * PropertyGrid.cs: Cleaned up some TODOs
7285         * PropertyGridView.cs: Added support for UITypeEditors
7286
7287 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
7288         
7289         * DataGrid.cs: clears cached value
7290
7291 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
7292
7293         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
7294         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
7295         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
7296         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
7297         
7298 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
7299
7300         * ThemeWin32Classic.cs: fixes colour
7301
7302 2005-06-15  Peter Bartok  <pbartok@novell.com>
7303
7304         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
7305         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
7306         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
7307         * Control.cs: Added some MWFCategory and MWFDescription attributes
7308         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
7309
7310 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
7311
7312         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
7313         usage
7314
7315 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
7316
7317         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
7318         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
7319         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
7320         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
7321         * DataGrid.cs: default datagrid settings for Default Styles, fixes
7322         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
7323
7324 2005-06-13  Jackson Harper  <jackson@ximian.com>
7325
7326         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
7327         isn't printed when the user enables dropping. (X11 does accept
7328         drops).
7329         
7330 2005-06-13  Jackson Harper  <jackson@ximian.com>
7331
7332         * TreeView.cs: Remove some TODOS.
7333
7334 2005-06-13  Jackson Harper  <jackson@ximian.com>
7335
7336         * Form.cs: Hook into the mdi framework.
7337         * MdiClient.cs: Use the base control collections add method so
7338         parents get setup correctly. Set the default back colour and dock
7339         style.
7340         * MdiChildContext.cs: New class, this bad actor handles an
7341         instance of an MDI window. Right now there is only basic
7342         support. You can drag, close, and resize windows. Minimize and
7343         Maximize are partially implemented.
7344
7345 2005-06-13  Jackson Harper  <jackson@ximian.com>
7346
7347         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
7348         freaky when both vals are negative. NOTE: There are probably other
7349         places in XplatUIX11 that this needs to be done.
7350
7351 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
7352
7353         * DataGrid.cs: implement missing methods, move KeyboardNavigation
7354         * DataGridColumnStyle.cs: fixes signature
7355
7356 2005-06-12  Jackson Harper  <jackson@ximian.com>
7357
7358         * XplatUIX11.cs: Use sizing cursors similar to the ones on
7359         windows.
7360
7361 2005-06-11  Jackson Harper  <jackson@ximian.com>
7362
7363         * StatusBarPanel.cs: Signature cleanups. Implement
7364         BeginInit/EndInit.
7365
7366 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
7367
7368         * DataGridTextBoxColumn.cs: Honors aligment
7369         * GridColumnStylesCollection.cs: Contains is case unsensitive
7370         * GridTableStylesCollection.cs: several fixes
7371         * DataGridTableStyle.cs: default column creation
7372         * DataGridDrawingLogic.cs: fixes
7373         * CurrencyManager.cs: ListName property
7374         * DataGrid.cs: multiple styles support
7375         * DataGridColumnStyle.cs: fixes
7376         
7377
7378 2005-06-10  Peter Bartok  <pbartok@novell.com>
7379
7380         * Control.cs(Select): Moved SetFocus call to avoid potential
7381           loops if controls change the active control when getting focus
7382         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
7383           the up/down buttons
7384
7385 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
7386
7387         * ImageListConverter.cs: Implemented
7388
7389 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
7390
7391         * MonthCalendar.cs: Wired in NumericUpDown control for year
7392
7393 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
7394
7395         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
7396           DoubleClick events, since they are not meant to be fired.
7397
7398 2005-06-09  Peter Bartok  <pbartok@novell.com>
7399
7400         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
7401           Jonathan's standalone controls into MWF, implemented missing
7402           events, attributes and methods; added xxxAccessible classes
7403         * AccessibleObject.cs: Made fields internal so other classes
7404           can change them if needed
7405
7406 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
7407
7408         * UpDownBase.cs: Complete implementation
7409         * NumericUpDown.cs: Complete implementation
7410         * DomainUpDown.cs: Complete implementation
7411
7412 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
7413
7414         * DataGridTextBoxColumn.cs: drawing fixes
7415         * DataGridCell.cs: fixes ToString method to match MSNet
7416         * DataGridTableStyle.cs: fixes
7417         * DataGridBoolColumn.cs: fixes, drawing
7418         * DataGridDrawingLogic.cs: fixes, new methods
7419         * DataGridTextBox.cs: Keyboard and fixes
7420         * DataGrid.cs:
7421                 - Keyboard navigation
7422                 - Scrolling fixes
7423                 - Row selection (single, multiple, deletion, etc)
7424                 - Lots of fixes
7425         
7426 2005-06-07  Jackson Harper  <jackson@ximian.com>
7427
7428         * ThemeWin32Classic.cs: Clear the background area when drawing
7429         buttons.
7430
7431 2005-06-06  Peter Bartok  <pbartok@novell.com>
7432
7433         * ImageListStreamer.cs: Fixed signature for GetData
7434         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
7435         * ComboBox.cs:
7436           - Added missing ChildAccessibleObject class
7437           - Added missing OnXXXFocus overrides, switched to using those
7438             instead of the event handler
7439         * Control.cs:
7440           - Added Parent property for ControlAccessibleObject
7441           - Fixed signatures
7442           - Fixed attributes
7443           - Added ResetBindings()
7444         * ListBindingConverter.cs: Implemented some methods
7445         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
7446         * ImageList.cs: Implemented basic handle scheme, removed TODOs
7447         * ContainerControl.cs: Fixed signature, now subscribing to the
7448           ControlRemoved event instead of overriding the handler, LAMESPEC
7449         * CurrencyManager.cs: Added missing attribute
7450         * MonthCalendar.cs: Added missing properties
7451
7452 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
7453
7454         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
7455         
7456 2005-06-06  Gaurav Vaish and Ankit Jain
7457
7458         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
7459         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
7460         
7461 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
7462
7463         * Control.cs: fixes CreateParams Width / Height.
7464
7465 2005-06-05  Peter Bartok  <pbartok@novell.com>
7466
7467         * Win32DnD.cs: Removed compilation warnings
7468
7469 2005-06-05  Peter Bartok  <pbartok@novell.com>
7470
7471         * Control.cs (CreateParams): Since we don't know if one of the
7472           properties we use is overridden, lets make sure if we fail accessing
7473           we continue with a backup plan
7474
7475 2005-06-05  Peter Bartok  <pbartok@novell.com>
7476
7477         * Win32DnD.cs:
7478           - Removed debug output
7479           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
7480             struct
7481           - Plugged resource leak
7482         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
7483           MS size
7484
7485 2005-06-05  Peter Bartok  <pbartok@novell.com>
7486
7487         * XplatUIWin32.cs: Removed DnD code
7488         * Win32DnD.cs: Implemented drop source and drop target functionality
7489
7490 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7491
7492         * UpDownBase.cs: remove duplicate addition of event, enable some code
7493         that was commented out.
7494         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
7495         Validate input when a key is pressed. It works fine now for every
7496         combination of Hexadecimal. Only missing some drawing love when sharing
7497         space with other controls.
7498
7499 2005-06-04  Peter Bartok  <pbartok@novell.com>
7500
7501         * Control.cs:
7502           - We need to pass a window for DragDrop, so enable callback events
7503           - Added DnD callback events when being a DragSource
7504         * XplatUI.cs (StartDrag): Added window handle argument
7505         * XplatUIDriver.cs (StartDrag): Added window handle argument
7506         * QueryContinueDragEventArgs: Made fields internally accessible so
7507           drivers can set them
7508         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
7509           can set them
7510
7511 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
7512
7513         * DataGridTextBoxColumn.cs: column text editing
7514         * DataGridTableStyle.cs: Respect columns styles created by the user
7515         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
7516         * DataGridBoolColumn.cs: bool column editing
7517         * DataGrid.cs: fixes to scrolling, properties, etc
7518         * DataGridTextBox.cs: handle keyboard
7519         * DataGridColumnStyle.cs: fixes
7520
7521 2005-06-02  Jackson Harper  <jackson@ximian.com>
7522
7523         * ImageListStreamer.cs: Somewhat broken implementation of
7524         GetObjectData. The RLE needs some work to match MS properly.
7525
7526 2005-06-02  Jackson Harper  <jackson@ximian.com>
7527
7528         * X11Dnd.cs: Attempting to keep at least one file in MWF
7529         monostyled.
7530
7531 2005-06-02  Peter Bartok  <pbartok@novell.com>
7532
7533         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
7534           that way
7535
7536 2005-06-02  Peter Bartok  <pbartok@novell.com>
7537
7538         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
7539         * XplatUI.cs: Added DoDragDrop() method
7540         * XplatUIDriver.cs: Added DoDragDrop() method
7541
7542 2005-06-02  Jackson Harper  <jackson@ximian.com>
7543
7544         * Splitter.cs: Implement BorderStyle.
7545
7546 2005-06-02  Jackson Harper  <jackson@ximian.com>
7547
7548         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
7549         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
7550         X11 using XDND.
7551
7552 2005-06-02  Peter Bartok  <pbartok@novell.com>
7553
7554         * DataObject.cs:
7555           - Added Data setter
7556           - Fixed broken insertion code for SetData, now also
7557             overwrites any existing entry of the same format name
7558         * Hwnd.cs: Added list of pointers that automatically gets
7559           freed when the window is disposed
7560         * XplatUI.cs: Call driver initialization method when loading
7561           a driver
7562         * Control.cs:
7563           - OnDragLeave takes EventArgs, not DragEventArgs
7564           - Added setting of WS_EX_ACCEPTFILES style when dropping is
7565             supported
7566           - Forces style update when drop state changes
7567         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
7568           not perfect since we cannot (yet) call the IDataObject.GetData()
7569           method, we keep getting 0x80004005 error, dunno why)
7570
7571 2005-06-02  Peter Bartok  <pbartok@novell.com>
7572
7573         * DragEventArgs.cs: Make fields internal so we can cache the
7574           object and re-set the fields from XplatUI
7575
7576 2005-06-02  Jackson Harper  <jackson@ximian.com>
7577
7578         * Control.cs: Add some internal methods so the DnD subsystem can
7579         raise DnD events. Also call into the driver when AllowDrop is set.
7580         * XplatUI.cs:
7581         * XplatUIDriver.cs: New method for setting whether or not a window
7582         is allowed to accept drag and drop messages.
7583                 
7584 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
7585         
7586         * ScrollBar.cs: Make sure that values sent in Scroll events
7587         are always between Maximum and Minimum.
7588
7589 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
7590
7591         * Menu.cs: Call MenuChanged when menuitem visibility has been
7592         changed.
7593         * MenuItem.cs: Rebuild menu when item is (not) visible.
7594         * MainMenu.cs: MainMenu has special MenuChanged.
7595         * Theme.cs: Caption and FrameBorderSize are not fixed.
7596         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
7597         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
7598         * XplatUIX11.cs,
7599         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
7600         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
7601
7602 2005-05-30  Jackson Harper  <jackson@ximian.com>
7603
7604         * DataFormat.cs: We can't statically initialize this stuff because
7605         it calls into the xplatui and could create a loop. So we lazy init
7606         it.
7607
7608 2005-05-28  Jackson Harper  <jackson@ximian.com>
7609
7610         * Control.cs: Proper implementation of Product(Name/Version).
7611
7612 2005-05-27  Jackson Harper  <jackson@ximian.com>
7613
7614         * DataObject.cs: Dont crash if no data is found.
7615
7616 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
7617         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
7618                 as per status page, guessing it should be set to true
7619
7620 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
7621
7622         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
7623         * DataGridTableStyle.cs: set proper formatting text, def header text
7624         * ThemeWin32Classic.cs: new themable paramaters
7625         * DataGridBoolColumn.cs: paint check box, get data, fixes
7626         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
7627         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
7628         * DataGridColumnStyle.cs: fixes
7629         * Theme.cs: new themable paramaters
7630                 
7631 2005-05-26  Peter Bartok  <pbartok@novell.com>
7632
7633         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
7634
7635 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
7636         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
7637
7638 2005-05-24  Peter Bartok  <pbartok@novell.com>
7639
7640         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
7641           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
7642           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
7643           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
7644           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
7645           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
7646           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
7647           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
7648           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
7649           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
7650           missing attributes, etc
7651         * DataGridPreferredColumnWidthTypeConverter.cs: Added
7652
7653 2005-05-24  Peter Bartok  <pbartok@novell.com>
7654
7655         * Help.cs: Added, implemented trivial functions, throws up MessageBox
7656           when user tries to get help
7657         * DataObject.cs, DataFormats.cs, LinkArea.cs,
7658           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
7659           to suppress warnings
7660         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
7661           avoid unreachable code warning
7662
7663 2005-05-20  Peter Bartok  <pbartok@novell.com>
7664
7665         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
7666
7667 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
7668
7669         * DataGridTextBoxColumn.cs: Basic painting methods
7670         * DataGridTableStyle.cs: Set table style in the column
7671         * ThemeWin32Classic.cs: Use Theme for colors
7672         * DataGridDrawingLogic.cs: Implement more drawing
7673         * DataGrid.cs: drawing, theming, enhacements, fixes
7674         * DataGridColumnStyle.cs: fixes, drawing
7675         * Theme.cs: theming for Datagrid
7676
7677 2005-05-20  Peter Bartok  <pbartok@novell.com>
7678
7679         * Cursor.cs: Implemented GetObjectData() method
7680
7681 2005-05-20  Peter Bartok  <pbartok@novell.com>
7682
7683         * Cursors.cs: Added setting of cursor name
7684         * Cursor.cs:
7685           - Implemented constructors
7686           - Implemented Draw and DrawStretched
7687           - Implemented Current property
7688           - Implemented == and != operators
7689           - Implemented Dispose()
7690           - Implemented ToString
7691           - Added missing attributes
7692         * XplatUIX11.cs:
7693           - Added missing reset for OverrideCursor when DoEvents is called
7694           - Fixed creation of cursor, logic was wrong
7695         * XplatUIWin32.cs:
7696           - Added missing reset for OverrideCursor when DoEvents is called
7697           - Fixed creation of cursor, bit arrays were swapped
7698         * Clipboard.cs: Removed obsolete MonoTODO attribute
7699
7700 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
7701
7702         * ComboBox.cs: fixes OnSelectedItemChanged
7703         * ControlBindingsCollection.cs: fixes item range check
7704
7705 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
7706
7707         * UpDownBase.cs:
7708                 - Calc preferred height properly
7709                 - Implement missing properties
7710                 
7711         * NumericUpDown.cs: Implement missing events
7712
7713 2005-05-19  Jackson Harper  <jackson@ximian.com>
7714
7715         * TabControl.cs: New method that resizes the tab pages before
7716         redrawing them. This as needed as the control is double buffered
7717         and sizing will not be recalculated unless ResizeTabPages is
7718         called.
7719         * TabPage.cs: Set base.Text instead of Text in the constructor so
7720         that UpdateOwner does not get called. Use the new Redraw method of
7721         TabControl instead of Refresh so the sizing is recalculated.
7722         * ThemeWin32Classic.cs: Draw the text for button tabs.
7723
7724 2005-05-19  Jackson Harper  <jackson@ximian.com>
7725
7726         * Control.cs: Paint control background images. Fix typo where
7727         PaintControlBackground was not getting called correctly.
7728
7729 2005-05-19  Peter Bartok  <pbartok@novell.com>
7730
7731         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
7732           I can investigate, apparently I broke FileDialog
7733
7734 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
7735
7736         * AxHost.cs: Some simple properties.
7737         * Control.cs: window must be accessible after ctor.
7738         * Form.cs: Added TransparencyKey property.
7739         * TextBoxBase.cs: Implemented Clear. Text property can be null.
7740         * XplatUIWin32.cs: SetBorderStyle implemented.
7741
7742 2005-05-18  Peter Bartok  <pbartok@novell.com>
7743
7744         * DataObject.cs: Entries are not global but particular to the
7745           DataObject, now it behaves that way
7746         * XplatUIWin32.cs: Implemented Clipboard methods
7747         * Clipboard.cs: Implemented
7748         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
7749         * XplatUIOSX.cs: Updated to final clipboard prototypes
7750         * XplatUIX11.cs: Implemented Clipboard methods
7751         * XplatUIDriver.cs: Updated to final clipboard prototypes
7752         * XplatUIStructs.cs:
7753           - Added BITMAPINFOHEADER struct
7754           - Added ClipboardFormats enum
7755         * X11Structs.cs:
7756           - Added ClipboardStruct
7757           - Added Atom enum items for clipboard types
7758           - Fixed atom types for Selection event structures
7759         * DataFormats.cs:
7760           - Added internal properties and methods for drivers to enumerate
7761             all known formats
7762           - Switched initialization method to allow drivers to assign their
7763             own IDs even for the MS predefined clipboard IDs
7764         * XplatUI.cs: Updated to final clipboard interface
7765
7766 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
7767         * PropertyGridView.cs: Fixed compiler warnings.
7768
7769 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
7770         * PropertyGrid.cs: Added some event calls
7771         * PropertyGridView.cs: Change drawing code to use double buffering
7772         * PropertyGridTextBox.cs: Changed Text property name
7773         * GridItem.cs: Added Bounds property.
7774         * GridEntry.cs: Added Bounds property.
7775
7776 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
7777
7778         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
7779         since GetType() may not return the correct type if the object is
7780         a remoting proxy.
7781
7782 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
7783
7784         * TreeNodeCollection.cs: fixes get/set item ranges
7785         
7786 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
7787
7788         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
7789                 
7790 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
7791
7792         * ComboBox.cs: Fix item range comparation
7793         * ListView.cs: Fix item range comparation
7794
7795 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
7796
7797         * FontDialog.cs:
7798           - Clear example panel when OnPaint is called
7799           - Better solution for displaying the example panel text
7800           - Select default indexes in the ListBoxes
7801
7802 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
7803
7804         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
7805
7806 2005-05-11  Peter Bartok  <pbartok@novell.com>
7807
7808         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
7809         * SelectionRangeConverter.cs: Implemented
7810         * PropertyGrid.cs: Fixed attribute value
7811         * Control.cs:
7812           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
7813           - Added Sebastien Pouliot's CAS Stack Propagation fixes
7814         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
7815           that's common to all drivers. First methods to go there are
7816           Sebastien Pouliot's CAS Stack Propagation helper methods
7817         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
7818           Sebastien Pouliot for CAS Stack Propagation
7819
7820 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
7821
7822         * OSXStructs.cs:
7823           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
7824
7825 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
7826
7827         * DataGridTextBoxColumn.cs: fixed some members
7828         * GridColumnStylesCollection.cs: indexed column is case insensitive
7829         * DataGridTableStyle.cs: fixes
7830         * ThemeWin32Classic.cs: add new theme parameter
7831         * Theme.cs: add new theme parameter
7832         * DataGridDrawingLogic.cs: Datagrid's drawing logic
7833         * DataGrid.cs: fixes, new internal properties, etc.
7834         * DataGridColumnStyle.cs: allows to set grid value
7835         *
7836
7837 2005-05-10  Peter Bartok  <pbartok@novell.com>
7838
7839         * AccessibleObject.cs:
7840           - Removed MonoTODO attribute on help, method is correct
7841           - Fixed Bounds property
7842         * AxHost.cs: Moved MonoTODO
7843         * ButtonBase.cs: Now setting AccessibleObject properties
7844         * RadioButton.cs: Setting proper AccessibleObject role
7845         * CheckBox.cs: Setting proper AccessibleObject role
7846         * ControlBindingsCollection.cs: Added properties, methods and attributes
7847         * DataFormats.cs: Fixed awkward internal API, and changed to enable
7848           userdefined DataFormats.Format items as well
7849         * ListControl.cs: Removed data_member from the public eye
7850         * OpenFileDialog.cs:
7851           - Made class sealed
7852           - Added missing attributes
7853         * SaveFileDialog.cs: Added missing attributes
7854         * ImageListStreamer.cs: Fixed code that caused warnings
7855         * LinkLabel.cs: Removed unreachable code
7856         * TreeView.cs: Fixed code that caused warnings
7857         * PropertyGridView.cs: Fixed code that caused warnings
7858         * GridColumnStylesCollection.cs: Added missing attributes
7859         * GridTableStylesCollection: Added missing attribute
7860         * PropertyManager: Added .ctor
7861         * SecurityIDType: Added
7862         * DataObject.cs: Implemented class
7863         * LinkArea.cs: Added missing attribute
7864
7865 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
7866
7867         * RadioButton.cs: call base method to allow to fire OnClick event
7868         * UpDownBase.cs: OnMouseUp call base method
7869         * CheckedListBox.cs: call base method before returning
7870         * TrackBar.cs: call base method before returning
7871         
7872
7873 2005-05-10  Peter Bartok  <pbartok@novell.com>
7874
7875         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
7876           for messages
7877
7878 2005-05-10  Peter Bartok  <pbartok@novell.com>
7879
7880         * DataFormats.cs: Implemented
7881         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
7882           XplatUIX11.cs: Added Clipboard APIs
7883         * XplatUIWin32.cs: Implemented Clipboard APIs
7884         * FolderBrowserDialog.cs: Added missing event, attributes
7885
7886 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
7887
7888         * CheckBox.cs: call base method to allow to fire OnClick event
7889
7890 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
7891
7892         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
7893
7894 2005-05-06  Peter Bartok  <pbartok@novell.com>
7895
7896         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
7897         * Screen.cs: Implemented
7898         * HelpNavigator.cs: Added
7899         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
7900           property
7901         * HelpProvider.cs: Implemented all we can do until we have a CHM
7902           help library (which means that "What's This" does work now)
7903
7904 2005-05-06  Jackson Harper  <jackson@ximian.com>
7905
7906         * XplatUIX11.cs: Fix waking up the main loop.
7907                 
7908 2005-05-05  Peter Bartok  <pbartok@novell.com>
7909
7910         * XplatUI.cs: Updated revision
7911         * Form.cs: Removed enless loop
7912         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
7913         * Label.cs (OnPaint): Added call to base.OnPaint()
7914         * ToolTip.cs: Made ToolTipWindow reusable for other controls
7915         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
7916         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
7917         * AxHost.cs: Added
7918         * ButtonBase.cs: Moved base.OnPaint() call to end of method
7919         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
7920           to ToolTip.ToolTipWindow for drawing and size methods; this allows
7921           reuse of ToolTipWindow by other controls
7922         * SizeGrip.cs: Moved base.OnPaint() call to end of method
7923         * XplatUIX11.cs: Now clipping drawing area (experimental)
7924         * PictureBox.cs: Moved base.OnPaint() call to end of method
7925         * Theme.cs: Fixed ToolTip abstracts to match new format
7926         * ErrorProvider.cs: Implemented
7927
7928 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
7929
7930         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
7931         * LinkLabel.cs:
7932                 - Adds cursors
7933                 - Handles focus
7934                 - Implements LinkBehavior
7935                 - Fixes many issues
7936
7937 2005-05-03  Jackson Harper  <jackson@ximian.com>
7938
7939         * ListView.cs: Calculate the scrollbar positioning on resize and
7940         paint, so they get put in the correct place.
7941
7942 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
7943
7944         * ColorDialogs.cs: The small color panels are now handled by
7945           SmallColorControl. This fixes drawing of the focus rectangle
7946           and adds a 3D border.
7947
7948 2005-05-03  Peter Bartok  <pbartok@novell.com>
7949
7950         * Control.cs: Modified version of Jonathan Chamber's fix for
7951           double-buffering
7952
7953 2005-05-03  Jackson Harper  <jackson@ximian.com>
7954
7955         * ListView.cs: Remove redraw variable. Control now handles whether
7956         or not a redraw needs to be done, and will only raise the paint
7957         event if redrawing is needed.
7958
7959 2005-05-03  Jackson Harper  <jackson@ximian.com>
7960
7961         * Splitter.cs: No decorations for the splitter form. Cache the
7962         hatch brush.
7963
7964 2005-05-03  Jackson Harper  <jackson@ximian.com>
7965
7966         * TreeView.cs: Use dashed lines to connect nodes. Use the
7967         ControlPaint method for drawing the focus rect instead of doing
7968         that in treeview.
7969
7970 2005-05-02  Peter Bartok  <pbartok@novell.com>
7971
7972         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
7973
7974 2005-04-29  Jackson Harper  <jackson@ximian.com>
7975
7976         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
7977         entire image buffer. Just clear the clipping rectangle.
7978
7979 2005-04-29  Jackson Harper  <jackson@ximian.com>
7980
7981         * ThemeWin32Classic.cs: Don't draw list view items that are
7982         outside the clipping rectangle.
7983
7984 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
7985
7986         * ListBox.cs: added horizontal item scroll
7987
7988 2005-04-29  Jackson Harper  <jackson@ximian.com>
7989
7990         * ThemeWin32Classic.cs: Remove some old debug code that was
7991         causing flicker with the new double buffering code.
7992
7993 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
7994
7995         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
7996         behave like combobox and comboboxlist (still not sure if this is
7997         correct though).
7998
7999 2005-04-28  Jackson Harper  <jackson@ximian.com>
8000
8001         * ThemeWin32Classic.cs: Don't fill the middle of progress
8002         bars. This fills areas outside of the clip bounds that don't need
8003         to be filled.
8004
8005 2005-04-28  Jackson Harper  <jackson@ximian.com>
8006
8007         * Control.cs: Don't expose functionality to touch the image buffers.
8008         * ProgressBar.cs:
8009         * ListView.cs: We do not need to (and no longer can) manipulate
8010         the image buffers directly. All of this is handled by Control.
8011
8012 2005-04-28  Peter Bartok  <pbartok@novell.com>
8013
8014         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
8015           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
8016           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
8017
8018 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
8019
8020         * Combobox:
8021                 - Adjust control's height for non-simple comboboxes (bug fix)
8022                 - Remove dead code
8023         * MenuAPI.cs: remove unused var
8024         * ScrollBar.cs: remove unsed var
8025                  
8026         * ListBox.cs: unselect items when clearing
8027
8028 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
8029
8030         * ListControl.cs: honors OnPositionChanged and default Selected Item
8031         * ListBox.cs: unselect items when clearing
8032
8033 2005-04-27  Jackson Harper  <jackson@ximian.com>
8034
8035         * X11Keyboard.cs: Initialize a default keyboard and give a warning
8036         if a "correct" keyboard is not found. This will make us not crash,
8037         but might give some users bad keyboard layouts...seems to be the
8038         same thing rewind does.
8039
8040 2005-04-27  Jackson Harper  <jackson@ximian.com>
8041
8042         * BindingManagerBase.cs: Attach the current/position changed
8043         handlers to their respective events.
8044
8045 2005-04-27  Jackson Harper  <jackson@ximian.com>
8046
8047         * Control.cs: Make sure that the first WM_PAINT does a full draw,
8048         not just a blit.
8049         * ThemeWin32Classic.cs: Don't fill the background for picture
8050         boxes. This could overright user drawing.
8051         * ComboBox.cs: Just fill the clipping rect not the entire client
8052         rect when drawing the background. This prevents pieces of the
8053         image buffer from getting overwritten and is theoretically faster.
8054
8055 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
8056
8057         * ComboBox.cs: Databinding support fixes, fire missing events
8058         * ListControl.cs: implement missing methods and properties, fixes
8059         * ThemeWin32Classic.cs: Databiding support on Drawing
8060         * CheckedListBox.cs: Databinding support fixes, fire missing events
8061         * ListBox.cs: Databinding support fixes, fire missing events
8062         
8063 2005-04-25  Peter Bartok  <pbartok@novell.com>
8064
8065         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
8066
8067 2005-04-25  Jackson Harper  <jackson@ximian.com>
8068
8069         * TreeView.cs: Use the horizontal scrollbars height not width when
8070         determining how much of the client area is available.
8071
8072 2005-04-25  Jackson Harper  <jackson@ximian.com>
8073
8074         * Control.cs: Double buffering is handled differently now. As per
8075         the spec, the extra buffer is created in the WM_PAINT message and
8076         passed down to the control's drawing code.
8077         * GroupBox.cs:
8078         * Label.cs:
8079         * CheckBox.cs:
8080         * ProgressBar.cs:
8081         * RadioButton.cs:
8082         * ColorDialog.cs:
8083         * ComboBox.cs:
8084         * PropertyGridView.cs:
8085         * UpDownBase.cs:
8086         * MessageBox.cs:
8087         * MenuAPI.cs:
8088         * ListView.cs:
8089         * ButtonBase.cs:
8090         * SizeGrip.cs:
8091         * ScrollBar.cs:
8092         * ListBox.cs:
8093         * TrackBar.cs:
8094         * ToolBar.cs:
8095         * PictureBox.cs:
8096         * DateTimePicker.cs:
8097         * StatusBar.cs:
8098         * TreeView.cs: Update to new double buffering system.
8099         * MonthCalendar.cs: Uncomment block, as Capture is now
8100         working. Update to new double buffering
8101         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
8102         * PaintEventArgs.cs: New internal method allows us to set the
8103         graphics object. This is used for double buffering.
8104         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
8105         rectangle. The internal paint_area var has been removed from
8106         StatusBar. The clipping rect should be used instead.
8107         * Theme.cs: Give the PictureBox drawing method a clipping rect.
8108         * TabPage.cs: The RefreshTabs method was removed, so just call the
8109         tab controls Refresh method now.
8110         * TabControl.cs: Update to new double buffering. Make sure the
8111         handle is created before sizing the tab pages, otherwise we will
8112         get stuck in a loop.
8113
8114 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
8115
8116         * LinkLabel.cs: Fix typo, bug #74719; patch
8117           from Borja Sanchez Zamorano
8118
8119 2005-04-22  Jackson Harper  <jackson@ximian.com>
8120
8121         * TreeNode.cs: Implement Handle stuff.
8122         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
8123
8124 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
8125
8126         * DataGridTextBoxColumn.cs: call base constructors, fixes
8127         * GridColumnStylesCollection.cs: missing events, methods, and functionality
8128         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
8129         * DataGridTableStyle.cs: implements create default column styles
8130         * DataGridBoolColumn.cs: which types can handle
8131         * DataGrid.cs: missing methods, fixes, new functionality
8132         * DataGridColumnStyle.cs: fixes
8133
8134 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
8135         * FolderBrowserDialog.cs:
8136         - Use a thread to fill the TreeView
8137         - Adjusted some sizes
8138
8139 2005-04-19  Peter Bartok  <pbartok@novell.com>
8140
8141         * LinkLabel.cs: (Re-)create the pieces when setting the Text
8142           property. Fixes #74360.
8143
8144 2005-04-19  Jackson Harper  <jackson@ximian.com>
8145
8146         * XEventQueue.cs: Lock when getting the lockqueue size.
8147         * PictureBox.cs: Call base OnPaint
8148         
8149 2005-04-19  Peter Bartok  <pbartok@novell.com>
8150
8151         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
8152           messages were no longer being processed (this broke BeginInvoke)
8153
8154           
8155 2005-04-18  Jackson Harper  <jackson@ximian.com>
8156
8157         * TreeView.cs: buglet that caused node images to get drawn
8158         regardless of whether or not they were in the clipping rectangle.
8159
8160 2005-04-18  Jackson Harper  <jackson@ximian.com>
8161
8162         * CurrencyManager.cs: There are four rules for GetItemProperties:
8163         - If the type is an array use the element type of the array
8164         - If the type is a typed list, use the type
8165         - If the list contains an Item property that is not an object, use
8166         that property
8167         - use the first element of the list if there are any elements in
8168         the list.
8169         
8170 2005-04-17  Jackson Harper  <jackson@ximian.oom>
8171
8172         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
8173         click. This handles offsets for scrolling properly and reduces
8174         memory. Also fixed GetNode to not offset now that TopNode works
8175         properly.
8176         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
8177         
8178 2005-04-17  Jackson Harper  <jackson@ximian.com>
8179
8180         * CursorConverter.cs: Initial implementation.
8181
8182 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
8183
8184         * ListControl.cs: work towards complex data binding support on ListControl
8185         * CurrencyManager.cs: work towards complex data binding support on ListControl
8186         * ListBox.cs: work towards complex data binding support on ListControl
8187
8188
8189 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
8190
8191         * GridTableStylesCollection.cs: fixes name and constructor
8192         * DataGridTableStyle.cs: fixes
8193         * DataGridBoolColumn.cs: fixes names and constructors
8194         * DataGrid.cs: define methods and properties. Some init implementations
8195         * DataGridCell.cs: define methods and properties. Some init implementations
8196         * GridTablesFactory.cs: Define methods and properties
8197
8198 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
8199
8200         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
8201         graphics port changes.  We still want the coordinates in global screen
8202         coordinates.
8203
8204 2005-04-14  Jackson Harper  <jackson@ximian.com>
8205
8206         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
8207         check plus minus or checkbox clicks unless those features are enabled.
8208
8209 2005-04-14  Jackson Harper  <jackson@ximian.com>
8210
8211         * TreeView.cs: Add methods for setting the top and bottom visible
8212         nodes. TreeNode::EnsureVisible uses these methods.
8213         * TreeNode.cs: Implement EnsureVisible
8214
8215 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
8216
8217         * Form.cs: Pospone menu assignation if the window has not been created yet
8218         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
8219         size and position
8220
8221 2005-04-12  Jackson Harper  <jackson@ximian.com>
8222
8223         * TreeView.cs: Set the TopNode properly when scrolling
8224         occurs. This has the added benifit of reducing the amount of
8225         walking that needs to be done when drawing. Also removed an old
8226         misleading TODO.
8227         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
8228         
8229 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
8230
8231         * Timer.cs: fixes interval setting when the timer is already enabled
8232         
8233 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
8234
8235         * FolderBrowserDialog.cs: First approach
8236
8237 2005-04-09  Peter Bartok  <pbartok@novell.com>
8238
8239         * FolderBrowserDialog: Added
8240
8241 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
8242
8243         * LinkLabel.cs: move drawing code into the theme
8244         * ThemeWin32Classic.cs: drawing code and painting background bugfix
8245         * Theme.cs: define DrawLinkLabel method
8246
8247 2005-04-05  Jackson Harper  <jackson@ximian.com>
8248
8249         * BindingContext.cs: Use weak references so these bad actors don't
8250         stay alive longer then they need to.
8251
8252 2005-04-05  Jackson Harper  <jackson@ximian.com>
8253
8254         * ListControl.cs: Basic implementation of complex databinding.
8255         * ComboBox.cs:
8256         * ListBox.cs: Add calls to ListControl databinding methods.
8257
8258 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
8259
8260         * FileDialog.cs:
8261           - Don't change PopupButtonState to Normal when the
8262             PopupButton gets pressed several times.
8263           - Renamed ButtonPanel to PopupButtonPanel
8264
8265 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
8266
8267         * ColorDialog.cs: Use cached objects instead of creating them
8268         * LinkLabel.cs: Use cached objects instead of creating them
8269         * Splitter.cs: Use cached objects instead of creating them
8270         * FontDialog.cs: Use cached objects instead of creating them
8271         * PropertyGridView.cs: Use cached objects instead of creating them
8272         * MessageBox.cs: Use cached objects instead of creating them
8273         * FileDialog.cs: Use cached objects instead of creating them
8274         * ThemeWin32Classic.cs: Use cached objects instead of creating them
8275         * TreeView.cs: Use cached objects instead of creating them
8276         
8277 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
8278
8279         * Control.cs: use Equals to compare the font since no == op
8280         * ScrollBar.cs: use Equals to compare the font since no == op
8281
8282 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
8283
8284         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
8285
8286 2005-04-01  Jackson Harper  <jackson@ximian.com>
8287
8288         * Binding.cs: Implement IsBinding.
8289         * BindingManagerBase.cs:
8290         * PropertyManager.cs:
8291         * CurrencyManager.cs: Add IsSuspended property.
8292
8293 2005-04-01  Jackson Harper  <jackson@ximian.com>
8294
8295         * Binding.cs: Had some IsAssignableFrom calls backwards.
8296
8297 2005-04-01  Jackson Harper  <jackson@ximian.com>
8298
8299         * Binding.cs: Handle null data members when pulling data.
8300         * PropertyManager.cs: Handle the data member being a property that
8301         does not exist.
8302
8303 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
8304
8305         * DataGridTextBoxColumn.cs: fixes signature
8306         * DataGrid.cs: calls right constructor
8307
8308 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
8309
8310         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
8311         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
8312         * GridTableStylesCollection.cs: implements GridTableStylesCollection
8313         * DataGridTableStyle.cs: implements DataGridTableStyle
8314         * DataGridBoolColumn.cs: implements DataGridBoolColumn
8315         * DataGridTextBox.cs: implements DataGridTextBox
8316         * DataGridColumnStyle.cs: implements DataGridColumnStyle
8317
8318 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
8319
8320         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
8321
8322 2005-03-29  Peter Bartok  <pbartok@novell.com>
8323
8324         * Application.cs:
8325           - Properly implemented CompanyName property
8326           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
8327             returns a path that includes CompanyName, ProductName and
8328             Version (fixes bug #70330)
8329
8330 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
8331
8332         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
8333           fixes bug #72588.
8334
8335 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
8336
8337         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
8338         
8339           - Added ReadOnly CheckBox
8340           - Further refactoring: moved some code from Open-/SaveFileDialog
8341             to FileDialog
8342
8343 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
8344
8345         * OpenFileDialog.cs: Fixed CheckFileExists
8346         * FileDialog.cs:
8347           Moved FileView and DirComboBox outside FileDialog class.
8348           They can now be used outside FileDialog
8349
8350 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
8351
8352         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
8353         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
8354
8355 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
8356
8357         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
8358           - Added missing CreatePrompt property in SaveDialog
8359           - Overall SaveDialog handling should be better now
8360           - Added non standard ShowHiddenFiles property
8361           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
8362           - Added InitialDirectory and RestoreDirectory support
8363
8364 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
8365
8366         * FileDialog.cs: Made dirComboBox usable
8367
8368 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
8369
8370         * FileDialog.cs: Added Filter support (case sensitiv)
8371
8372 2005-03-24  Jackson Harper  <jackson@ximian.com>
8373
8374         * TabControl.cs: Need a couple more pixels for the lines.
8375
8376 2005-03-23  Jackson Harper  <jackson@ximian.com>
8377
8378         * TabControl.cs: Give the tab page focus when it is selected.
8379
8380 2005-03-23  Jackson Harper  <jackson@ximian.com>
8381
8382         * TabControl.cs: Account for the drawing of tabs borders when
8383         invalidating. If the slider was clicked dont do click detection on
8384         the tabs.
8385
8386 2005-03-23  Jackson Harper  <jackson@ximian.com>
8387
8388         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
8389
8390 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
8391
8392         * CategoryGridEntry.cs: Added
8393         * GridItem.cs: Added helper properties
8394         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
8395         * GridEntry.cs: Updated code for collection
8396         * PropertyGrid.cs: Cleaned up some formatting
8397         * PropertyGridView.cs: Added drop down functionality for enums.
8398         * GridItemCollection.cs: Added enumerator logic
8399         * PropertyGridEntry.cs: Added
8400
8401 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
8402
8403         * FileDialog.cs:
8404           - Removed unnecessary commented code
8405           - Fixed handling for entering the filename manually in the combobox
8406
8407 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
8408
8409         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
8410
8411 2005-03-18  Peter Bartok  <pbartok@novell.com>
8412
8413         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
8414           them being touching the border
8415
8416 2005-03-18  Peter Bartok  <pbartok@novell.com>
8417
8418         * TextControl.cs: Quick hack to center text better
8419
8420 2005-03-18  Peter Bartok  <pbartok@novell.com>
8421
8422         * ControlPaint.cs:
8423           - Don't throw NotImplemented exceptions, just print a notice once
8424             instead (requested by Miguel). This makes running existing SWF
8425             apps a bit easier
8426         * Control.cs:
8427           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
8428           - Added context menu trigger on right click
8429         * Panel.cs: Trigger invalidate on resize
8430         * StatusBar.cs:
8431           - Removed old double-buffer drawing
8432           - Added ResizeRedraw style to force proper update of statusbar
8433         * ListView.cs:
8434           - Removed debug output
8435         * ThemeWin32Classic.cs:
8436           - Fixed drawing of status bar, now draws Text property if there
8437             are no defined panels
8438
8439 2005-03-18  Jackson Harper  <jackson@ximian.com>
8440
8441         * ImageList.cs: When the image stream is set pull all the images
8442         from it.
8443         * ImageListStreamer.cs: Implement reading image list streams.
8444
8445 2005-03-18  Peter Bartok  <pbartok@novell.com>
8446
8447         * ThemeWin32Classic.cs (DrawPictureBox):
8448           - Fixed calculations for centered drawing
8449           - Fixed drawing for normal mode, not scaling the image on normal
8450
8451 2005-03-18  Peter Bartok  <pbartok@novell.com>
8452
8453         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
8454           textbox
8455         * FileDialog.cs:
8456           - Made Open/Save button the accept button for FileDialog
8457           - Tied the cancel button to the IButtonControl cancel button
8458           - Save/Open now properly builds the pathname
8459           - Now handles user-entered text
8460           - Preventing crash on right-click if no item is selected
8461           - Fixed Text property, now uses contents of textbox
8462           - Fixed SelectedText property, now just returns the text part that
8463             is selected in the text box
8464
8465 2005-03-18  Jackson Harper  <jackson@ximian.com>
8466
8467         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
8468         rect, make sure to de-adjust the interior rect after drawing the
8469         tab text.
8470
8471 2005-03-18  Peter Bartok  <pbartok@novell.com>
8472
8473         * MenuAPI.cs: Remove menu *before* executing selected action to
8474           prevent the menu from 'hanging around'
8475           
8476 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
8477
8478         * XplatUIOSX.cs: Implemented WorkingArea property
8479
8480 2005-03-17  Peter Bartok  <pbartok@novell.com>
8481
8482         * XplatUIX11.cs: Fixed menu coord calculations
8483         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
8484           for calculating offsets
8485
8486 2005-03-17  Peter Bartok  <pbartok@novell.com>
8487
8488         * Hwnd.cs: Do not consider menu presence for default client
8489           rectangle location/size
8490         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
8491           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
8492           translation functions
8493         * FileDialog.cs: Fixed (what I presume is a) typo
8494
8495 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
8496
8497         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
8498           X access (avoids X-Async errors)
8499
8500 2005-03-16  Jackson Harper  <jackson@ximian.com>
8501
8502         * TabControl.cs: Raise the SelectedIndexChanged event.
8503
8504 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
8505
8506         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
8507           - Removed vertical ToolBar and replaced it with a custom panel
8508             (desktop and home button already work)
8509           - Added Help button (some controls get resized or relocated then)
8510           - Draw correct text depending on Open or Save.
8511           - Fixed some typos...
8512
8513 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
8514
8515         * ScrollBar.cs:
8516           - Only change Maximum and Minimum when need it (bug fix)
8517
8518 2005-03-15  Peter Bartok  <pbartok@novell.com>
8519
8520         * Form.cs: Use Handle for icon, to trigger creation if
8521           the window does not yet exist
8522         * Control.cs:
8523           - CanSelect: Slight performance improvement
8524           - Focus(): Preventing possible recursion
8525           - Invalidate(): Removed ControlStyle based clear flag setting
8526           - WM_PAINT: fixed logic for calling OnPaintBackground
8527           - WM_ERASEBKGND: Fixed logic, added call to new driver method
8528             EraseWindowBackground if the control doesn't paint background
8529         * XplatUIWin32.cs:
8530           - Moved EraseWindowBackground() method to internal methods
8531           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
8532             is sent via SendMessage on BeginPaint call on Win32
8533         * XplatUIX11.cs:
8534           - Added EraseWindowBackground() method
8535           - No longer sends WM_ERASEBKGND on .Expose, but on call to
8536             PaintEventStart, which more closely matches Win32 behaviour
8537           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
8538           - Fixed SetFocus() to properly deal with client and whole windows
8539         * Hwnd.cs: Added ErasePending property
8540         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
8541         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
8542
8543 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
8544
8545         * XplatUIOSX.cs:
8546           - Fix hard loop when timers exist.
8547           - Fix bugs with middle and right click for 3 button mice.
8548
8549 2005-03-11  Peter Bartok  <pbartok@novell.com>
8550
8551         * XplatUIX11.cs:
8552           - get_WorkingArea: Need to call X directly, GetWindowPos only
8553             returns cached data now
8554           - Added sanity check to GetWindowPos hwnd usage
8555
8556 2005-03-11  Jackson Harper  <jackson@ximian.com>
8557
8558         * BindingManagerBase.cs: This method isn't used anymore as
8559         PullData now updates the data in the control.
8560
8561 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
8562
8563         * Form.cs: fixes menu drawing on X11
8564         * MenuAPI.cs:  fixes menu drawing on X11
8565
8566 2005-03-11  Peter Bartok  <pbartok@novell.com>
8567
8568         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
8569           from Jonathan Gilbert; should fix bug #73606
8570         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
8571           in Screen coordinates. Thanks, Jordi.
8572         * Form.cs: Added missing attribute
8573
8574 2005-03-11  Peter Bartok  <pbartok@novell.com>
8575
8576         * Form.cs:
8577           - Rudimentary Mdi support
8578           - Removed outdated FormParent code
8579           - Implemented lots of missing properties and methods, still missing
8580             transparency support
8581           - Added missing attributes
8582           - Implemented support for MaximumBounds
8583           - Added firing of various events
8584         * XplatUI.cs: Added SetIcon() method
8585         * XplatUIDriver.cs: Added SetIcon() abstract
8586         * XplatUIOSX.cs: Stubbed out SetIcon() method
8587         * XplatUIX11.cs:
8588           - Implemented SetIcon() support
8589           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
8590           - Switched to unix line endings
8591         * XplatUIWin32.cs:
8592           - Made POINT internal so for can access it as part of MINMAX
8593           - Implemented SetIcon() support
8594           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
8595             native Mdi support again, might have to go managed)
8596         * Control.cs: Now fires the StyleChanged event
8597         * MdiClient.cs: Added; still mostly empty
8598
8599 2005-03-10  Peter Bartok  <pbartok@novell.com>
8600
8601         * SaveFileDialog.cs: Added emtpy file
8602
8603 2005-03-08  Peter Bartok  <pbartok@novell.com>
8604
8605         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
8606           in turn triggers OnCreateContro) when creating a handle for the
8607           first time.
8608         * TextControl.cs: Fixed endless loop in certain cases when
8609           replacing the current selection
8610
8611 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
8612
8613         * ScrollBar.cs:
8614           - Honors NewValue changes in Scroll events allowing apps to change it
8615           - Adds First and Last Scroll events
8616           - Fixes Thumb events
8617
8618 2005-03-07  Peter Bartok  <pbartok@novell.com>
8619
8620         * Hwnd.cs: Added DefaultClientRectangle property
8621         * XplatUI.cs: Now using the X11 driver Where() method, which provides
8622           more detailed debug information
8623         * XplatUIX11.cs:
8624           - Fixed size-change feedback loop, where we would pull an old size
8625             off the queue and mistakenly change our window's size to an
8626             earlier value
8627           - Now compressing ConfigureNotify events, to reduce looping and
8628             redraw issues
8629         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
8630           is called
8631
8632 2005-03-07  Jackson Harper  <jackson@ximian.com>
8633
8634         * Binding.cs: Push data pushes from data -> property. Check if the
8635         property is readonly when attempting to set it.
8636
8637 2005-03-07  Jackson Harper  <jackson@ximian.com>
8638
8639         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
8640         instead of IsSubclassOf. Pulling data now sets the value on the
8641         control.
8642         * PropertyManager.cs:
8643         * CurrencyManager.cs: Just need to pull data when updating now,
8644         because PullData will set the value on the control.
8645
8646 2005-03-04  Jackson Harper  <jackson@ximian.com>
8647
8648         * Binding.cs: Implement data type parsing and converting on pulled
8649         data. TODO: Are there more ways the data can be converted?
8650
8651 2005-03-04  Jackson Harper  <jackson@ximian.com>
8652
8653         * Binding.cs: Support <Property>IsNull checks. Also bind to the
8654         controls Validating method so we can repull the data when the
8655         control loses focus.
8656
8657 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
8658
8659         * ColumnHeader.cs:
8660           - Fixes null string format
8661           
8662         * ListView.cs:
8663           - Adds enum type checks
8664           - Fixes redrawing and recalc need after changing some properties
8665           - Fixes on focus_item set after the event
8666           - Fixes adding columns after the control has been created
8667           
8668         * ThemeWin32Classic.cs:
8669           - Fixes CheckBox focus rectangle
8670           - Fixes ColumnHeader drawing
8671
8672
8673 2005-03-03  Jackson Harper  <jackson@ximian.com>
8674
8675         * Binding.cs: Bind to <Property>Changed events so we can detect
8676         when properties are changed and update the data.
8677
8678 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
8679
8680         * ImageList.cs:
8681           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
8682           - Fixes ImageList constructor with ImageList container
8683           - Fixes image scaling (wrong parameters at DrawImage)
8684
8685 2005-02-02  Jackson Harper  <jackson@ximian.com>
8686
8687         * Binding.cs: Make property searches case-insensitive. Eliminate
8688         some duplicated code.
8689
8690 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
8691
8692         * ComboBox.cs:
8693                 - Handle focus event
8694                 - Fix scrollbar events
8695                 - Discard highlighted item if remove it
8696                 - Fixes SelectedItem with strings
8697
8698 2005-03-01  Peter Bartok  <pbartok@novell.com>
8699
8700         * Control.cs:
8701           - Fixed Visible property, now follows (once again) parent chain
8702             to return false if any control in the chain is visible=false
8703           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
8704           - Fixed several places where is_visible instead of Visible was used
8705           - Implemented FIXME related to focus selection when setting focused
8706             control to be invisible
8707
8708         * XplatUIWin32.cs: Now using proper method to find out if window is
8709           visible. Thanks to Jordi for pointing it out
8710
8711 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
8712
8713         * ComboBox.cs: show/hide scrollbar instead of creating it
8714
8715 2005-02-27  Jackson Harper  <jackson@ximian.com>
8716
8717         * CurrencyManager.cs: Add PositionChanged stuff.
8718
8719 2005-02-27  Peter Bartok  <pbartok@novell.com>
8720
8721         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
8722         * XplatUIOSX.cs: Added GetMenuOrigin() stub
8723         * XplatUIWin32.cs: Implemented GetMenuOrigin()
8724         * XplatUIX11.cs:
8725           - Implemented GetMenuDC()
8726           - Implemented GetMenuOrigin()
8727           - Implemented ReleaseMenuDC()
8728           - Implemented generation of WM_NCPAINT message
8729           - Implemented generation and handling of WM_NCCALCSIZE message
8730         * Form.cs: Added debug helper message for Jordi's menu work
8731         * Hwnd.cs:
8732           - Modified ClientRect property; added setter, fixed getter to handle
8733             setting of ClientRect
8734           - Added MenuOrigin property
8735
8736 2005-02-26  Peter Bartok  <pbartok@novell.com>
8737
8738         * XplatUIX11.cs:
8739           - Destroys the caret if a window that's being destroyed contains it
8740           - Ignores expose events coming from the X11 queue for windows that
8741             already are destroyed
8742           - Now uses the proper variable for handling DestroyNotify, before we
8743             marked the wrong window as destroyed
8744           - Improved/added some debug output
8745
8746 2005-02-26  Peter Bartok  <pbartok@novell.com>
8747
8748         * X11Keyboard.cs: Fixes to work on 64bit systems
8749
8750 2005-02-26  Peter Bartok  <pbartok@novell.com>
8751
8752         * Control.cs:
8753           - Now calling OnHandleDestroyed from DestroyHandle()
8754             instead of Dispose()
8755           - Removed bogus call to controls.Remove() from DestroyHandle()
8756
8757 2005-02-26  Peter Bartok  <pbartok@novell.com>
8758
8759         * Control.cs: Properly destroy child windows when our handle is
8760           destroyed
8761
8762 2005-02-25  Peter Bartok  <pbartok@novell.com>
8763
8764         * XplatUI.cs:
8765           - Added 'DriverDebug' define to allow tracing XplatUI API calls
8766           - Alphabetized Static Methods and Subclasses
8767
8768         * XplatUIX11.cs:
8769           - Added XException class to allow custom handling of X11 exceptions
8770           - Created custom X11 error handler, tied into XException class
8771           - Added support for MONO_XEXCEPTIONS env var to allow the user
8772             to either throw an exception on X errors or continue running
8773             after displaying the error
8774           - Added handling of DestroyNotify message
8775           - Added handler for CreateNotify message (still disabled)
8776           - Improved (tried to at least) Where method to provide file and lineno
8777         * X11Structs.cs:
8778           - Added XErrorHandler delegate
8779           - Added XRequest enumeration (to suppor translation of errors)
8780
8781 2005-02-25  Jackson Harper  <jackson@ximian.com>
8782
8783         * PropertyManager.cs: Implement editing features
8784         * CurrencyManager.cs:
8785         * Binding.cs: First attempt at UpdateIsBinding
8786         * BindingManagerBase.cs: Call UpdateIsBinding before
8787         pushing/pulling data.
8788
8789 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
8790
8791         * MenuAPI.cs: Respect disabled items
8792         * ThemeWin32Classic.cs
8793                 - Caches ImageAttributes creation for DrawImageDisabled
8794                 - Fixes vertical menu line drawing
8795                 - Draws disabled arrows in disable menu items
8796
8797 2005-02-24  Peter Bartok  <pbartok@novell.com>
8798
8799         * Hwnd.cs:
8800           - Added UserData property to allow associating arbitrary objects
8801             with the handle
8802           - Fixed leak; now removing Hwnd references from static windows array
8803         * XplatUIWin32.cs:
8804           - Fixed Graphics leak in PaintEventEnd
8805           - Removed usage of HandleData, switched over to Hwnd class
8806         * HandleData.cs: Removed, obsoleted by Hwnd.cs
8807
8808 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
8809
8810         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
8811         * ScrollBar.cs: Fixes bug
8812         * TrackBar.cs: removes death code, clipping, mimize refreshes,
8813          keyboard navigation enhancements
8814
8815 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
8816
8817         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
8818         * GroupBox.cs: Add control styles
8819         * Label.cs: Add control styles
8820         * UpDownBase.cs: Add control styles
8821         * ListBox.cs: Add control styles
8822         * XplatUIWin32.cs: Fixes wrong parameter order
8823
8824
8825 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
8826
8827         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
8828
8829 2005-02-23  Jackson Harper  <jackson@ximian.com>
8830
8831         * PropertyManager.cs: Implement property binding. This doesn't
8832         seem to work yet though as (I think) there are some bugs in
8833         System.ComponentModel.PropertyDescriptor.
8834         * BindingContext.cs: Use new PropertyManager constructor.
8835
8836 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
8837
8838         * ProgressBar.cs: use clip region in ProgressBar
8839         * ThemeWin32Classic.cs: use clip region in ProgressBar
8840
8841 2004-02-22  Jackson Harper  <jackson@ximian.com>
8842
8843         * BindingsCollection.cs: Remove some debug code.
8844
8845 2005-02-22  Jackson Harper  <jackson@ximian.com>
8846
8847         * BindingContext.cs:
8848         * ControlBindingsCollection.cs:
8849         * CurrencyManager.cs:
8850         * Binding.cs:
8851         * BindingManagerBase.cs: Initial implementation
8852         * BindingsCollection.cs: Add an internal contains method that the
8853         BindingManagerBase uses to ensure bindings aren't added twice to
8854         the collection.
8855         * PropertyManager.cs: Stubbed out.
8856         * Control.cs:
8857         * ContainerControl.cs: Hook up databinding
8858         
8859 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
8860
8861         * XplatUIOSX.cs:
8862           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
8863           Fixed Invalidate/Update chain.
8864           Fixed tons of other minor bugs (this is almost a complete rewrite).
8865
8866 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
8867
8868         * ComboBox.cs: do subcontrol creation when the control is created
8869
8870 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
8871
8872         * Label.cs: fixes image drawing (image and imagelist)
8873         * ThemeWin32Classic.cs: cache brushes
8874         
8875 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
8876
8877         * Form.cs: Move menu drawing code to Theme class
8878         * ComboBox.cs: Move ComboBox drawing code to Theme class
8879         * MenuItem.cs: Move menu drawing code to Theme class
8880         * MenuAPI.cs: Move menu drawing code to Theme class
8881         * ThemeWin32Classic.cs: New methods
8882         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
8883         * ListBox.cs: Move Listbox drawing code to Theme class
8884         * Theme.cs: New methods
8885
8886 2005-02-20  Peter Bartok  <pbartok@novell.com>
8887
8888         * Control.cs:
8889           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
8890             only process mnemonics on those)
8891           - Fixed event sequence for key handling; first calling
8892             ProcessKeyEventArgs now
8893         * TextBoxBase.cs:
8894           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
8895             for processing non-character keys
8896           - Fixed WM_CHAR to generate proper event sequence before processing
8897         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
8898           generation
8899
8900 2005-02-19  Peter Bartok  <pbartok@novell.com>
8901
8902         * UserControl.cs: Added TextChanged event; added attributes
8903         * SizeGrip.cs: Implemented resizing and optional display of grip
8904         * Form.cs: Fixed attribute
8905         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
8906           Changed meaning of ScrollWindow bool argument; instead of the
8907           clear attribute (which will be true usually anyway), it gives the
8908           option of moving child controls as well.
8909         * XplatUIX11.cs:
8910           - Changed to match new ScrollWindow argument
8911           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
8912             now handles the implicit parent window a WM puts around us
8913         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
8914           to work)
8915         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
8916         * TreeView.cs: Adjusted to new ScrollWindow arguments
8917
8918 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
8919
8920         * Form.cs: Menu integration with non-client area
8921         * MenuItem.cs: Menu integration with non-client area
8922         * MenuAPI.cs: Menu integration with non-client area
8923
8924 2005-02-18  Peter Bartok  <pbartok@novell.com>
8925
8926         * MethodInvoker.cs: Added
8927         * MdiLayout.cs: Added
8928         * SendKeys.cs: Started implementation
8929         * ErrorIconAlignment.cs: Added
8930
8931 2005-02-18  Peter Bartok  <pbartok@novell.com>
8932
8933         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
8934         * Form.cs: Added handling for Menu-related Non-client messages
8935
8936 2005-02-17  Peter Bartok  <pbartok@novell.com>
8937
8938         * UpDownBase.cs: Fixed typo, compilation errors
8939         * DomainUpDown.cs: Fixed attribute value
8940
8941 2005-02-16  Miguel de Icaza  <miguel@novell.com>
8942
8943         * UpDownBase.cs: Attach entry events.
8944         Propagate events.
8945         Add ForeColor property, Focused, InterceptArrowKeys (interception
8946         does not work yet).
8947
8948 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
8949
8950         * Form.cs:
8951                 - Redraw non client are on Setmenu
8952                 - Calc proper menu starting point
8953
8954 2005-02-17  Peter Bartok  <pbartok@novell.com>
8955
8956         * Application.cs: Fixed message_filter check
8957
8958 2005-02-17  Peter Bartok  <pbartok@novell.com>
8959
8960         * Application.cs: Now calls registered message filters
8961         * DockStyle.cs: Fixed attribute
8962         * Form.cs: Fixed attribute
8963         * Menu.cs: Fixed attribute
8964         * ToolTip.cs: Fixed attribute
8965         * TreeNode.cs: Added missing attributes and arranged in regions
8966         * PropertyGrid.cs: Fixed signatures
8967         * TreeNodeCollection.cs: Added attributes
8968         * Splitter.cs: Added missing attributes; arranged into regions
8969         * TabPage.cs: Added missing attributes; arranged into regions
8970         * TextBoxBase.cs: Added missing attributes
8971         * TextBox.cs: Added missing attributes
8972         * ArrangeDirection.cs: Added missing attributes
8973         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
8974         * ToolBarButton.cs: Fixed attributes
8975         * AnchorStyles.cs: Fixed attribute
8976         * TrackBar.cs: Fixed attributes
8977         * TabControl.cs: Added missing attributes and arranged into regions
8978         * ToolBar.cs: Fixed attribute
8979         * StatusBar.cs: Fixed signature, organized into regions and added
8980           attributes
8981         * StatusBarPanel.cs: Fixed attributes
8982         * ContentsResizedEventArgs.cs: Implemented
8983         * ContentsResizedEventHandler.cs: Implemented
8984         * DateBoldEventArgs.cs: Implemented
8985         * DateBoldEventHandler.cs: Implemented
8986         * UpDownEventArgs.cs: Implemented
8987         * UpDownEventHandler.cs: Implemented
8988         
8989 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
8990
8991         * Form.cs: first Menu NC refactoring
8992         * MenuAPI.cs: first Menu NC refactoring
8993         
8994 2005-02-16  Peter Bartok  <pbartok@novell.com>
8995
8996         * ImeMode.cs: Added missing attributes
8997         * Menu.cs: Fixed attribute
8998         * GroupBox.cs: Fixed attribute
8999         * Label.cs: Fixed attribute
9000         * ColorDialog.cs (RunDialog): Removed TODO attribute
9001         * ComboBox.cs: Fixed attributes
9002         * ListControl.cs: Added missing attributes
9003         * PropertyGrid.cs: Fixed attributes
9004         * Control.cs: Fixed attributes
9005         * ListViewItem.cs: Added TypeConverter attribute
9006         * NotifyIcon.cs: Fixed attributes
9007         * ListView.cs: Fixed attributes
9008         * ButtonBase.cs: Fixed attribute
9009         * ImageList.cs: Added missing attributes
9010         * ContainerControl.cs: Fixed signature
9011         * CheckedListBox.cs: Fixed attribute; added missing attributes
9012         * Panel.cs: Fixed attributes
9013         * PropertyTabChangedEventArgs.cs: Added missing attribute
9014         * PropertyValueChangedEventArgs.cs: Added missing attribute
9015         * Binding.cs: Fixed attribute
9016         * ListViewItemConverter: Implemented ListViewSubItemConverter class
9017         * ListBox.cs: Fixed attribute; added missing attributes;
9018         * ScrollableControl.cs: Added missing attributes
9019         * PictureBox.cs: Added missing attributes; implemented missing property
9020         * DateTimePicker.cs: Added missing attributes
9021         * Theme.cs (ToolWindowCaptionHeight): Fixed type
9022         * MonthCalendar.cs: Fixed attributes
9023         * StatusBarPanel.cs: Added missing attributes
9024         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
9025
9026 2005-02-16  Peter Bartok  <pbartok@novell.com>
9027
9028         * TextBoxBase.cs: The previous method to enforce height yet remember
9029           the requested high was less than ideal, this is an attempt to do
9030           it better.
9031         * Control.cs: Added comment about possible problem
9032         * Copyright: Updated format
9033         * GridItemType.cs: Fixed swapped values
9034
9035 2005-02-15  Jackson Harper  <jackson@ximian.com>
9036
9037         * BaseCollection.cs: Use property so we never access an
9038         uninitialized list. Also initialize the list in the property.
9039
9040 2005-02-15  Peter Bartok  <pbartok@novell.com>
9041
9042         * GroupBox.cs (ProcessMnemonic): Implemented
9043         * Label.cs (ProcessMnemonic): Implemented
9044         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
9045           hotkeys
9046
9047 2005-02-15  Peter Bartok  <pbartok@novell.com>
9048
9049         * RadioButton.cs (ProcessMnemonic): Implemented
9050         * CheckBox.cs (ProcessMnemonic): Implemented
9051         * Control.cs:
9052           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
9053             handling
9054           - Added internal method to allow calling ProcessMnemonic from other
9055             controls
9056         * ContainerControl.cs:
9057           - Started support for handling validation chain handling
9058           - Implemented ProcessMnemonic support
9059           - Added Select() call to Active, to make sure the active control
9060             receives focus
9061         * Form.cs: Setting toplevel flag for Forms (this was lost in the
9062           FormParent rewrite)
9063         * ThemeWin32Classic.cs:
9064           - DrawCheckBox(): Fixed stringformat to show hotkeys
9065           - DrawRadioButton(): Fixed stringformat to show hotkeys
9066         * CommonDialog.cs: Removed WndProc override, not needed
9067
9068 2005-02-14  Peter Bartok  <pbartok@novell.com>
9069
9070         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
9071           missed those in the rewrite
9072
9073 2005-02-14  Miguel de Icaza  <miguel@novell.com>
9074
9075         * NumericUpDown.cs (Increment, ToString): Add.
9076         (DecimalPlaces): implement.
9077         
9078         Add attributes.
9079         
9080         * UpDownBase.cs: Add the designer attributes.
9081
9082 2005-02-13  Peter Bartok  <pbartok@novell.com>
9083
9084         * Panel.cs: Removed border_style, now in Control
9085         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
9086           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
9087
9088 2005-02-13  Peter Bartok  <pbartok@novell.com>
9089
9090         * MouseButtons.cs: Added missing attributes
9091         * XplatUIStructs.cs: Added enumeration for title styles
9092         * LeftRightAlignment.cs: Added missing attributes
9093         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
9094           it compatible with Graphics.FromHwnd()
9095         * SelectedGridItemChangedEventArgs.cs: Fixed property type
9096         * Keys.cs: Added missing attributes
9097         * SelectionRange.cs: Added missing attributes
9098         * SelectionRangeConverter.cs: Added
9099         * XplatUI.cs:
9100           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
9101             ReleaseMenuDC methods
9102           - Renamed ReleaseWindow to UngrabWindow
9103           - Added proper startup notice to allow version identification
9104         * Form.cs:
9105           - Added missing attributes
9106           - Removed FormParent concept
9107         * Label.cs: Removed border_style field, now in Control
9108         * RadioButton.cs: Now properly selects RadioButton when focus is
9109           received
9110         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
9111         * Control.cs:
9112           - Added missing attributes
9113           - Added borderstyle handling
9114           - Removed FormParent concept support
9115           - Fixed calls to XplatUI to match changed APIs
9116           - Fixed bug that would case us to use disposed Graphics objects
9117           - Removed unneeded internal methods
9118           - PerformLayout(): Fixed to handle DockStyle.Fill properly
9119           - SelectNextControl(): Fixed to properly check common parents
9120         * TextBoxBase.cs: Removed border_style field (now in Control)
9121         * MessageBox.cs:
9122           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
9123             fixed calculations for form size
9124           - Added support for localized strings and icons
9125           - Improved form size calculations, added border
9126         * ListView.cs: Removed border_style field (now in Control)
9127         * X11Structs.cs: Moved several structs from X11 driver here
9128         * X11Keyboard.cs: Changed debug message
9129         * Application.cs: Removed FormParent concept support
9130         * CommonDialog.cs:
9131           - Resetting end_modal flag
9132           - Removed FormParent concept support
9133         * NativeWindow.cs: Removed FormParent concept support
9134         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
9135           Client area and Non-Client whole window to allow support for WM_NC
9136           messages
9137         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
9138           prevent using it until it supports Hwnd as per Geoff Norton's request
9139         * ToolBar.cs: Fixed drawing, was not doing proper drawing
9140         * PictureBox.cs: Removed border_style field, now in Control
9141         * XplatUIWin32.cs: Added new driver methods
9142
9143 2005-02-12  Peter Bartok  <pbartok@novell.com>
9144
9145         * OpacityConverter.cs: Implemented
9146         * Hwnd.cs: Internal class to support drivers that need to emulate
9147           client area/non-client area window behaviour
9148
9149 2005-02-11  Peter Bartok  <pbartok@novell.com>
9150
9151         * KeysConverter.cs: Implemented
9152
9153 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
9154
9155         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
9156         * LinkLabel: Added missing attributes
9157         * MainMenu.cs: fixes ToString
9158         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
9159         * ListBox.cs: fixes event position
9160         * TrackBar.cs: adds missing attributes and events
9161         
9162 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
9163
9164         * MenuItem.cs: Use SystemInformation and bug fixes
9165         * MenuAPI.cs: Use SystemInformation and bug fixes
9166
9167 2005-02-09  Jackson Harper  <jackson@ximian.com>
9168
9169         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
9170         their keystate otherwise things like VK_MENU get stuck "on".
9171
9172 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
9173
9174         * ListBox.cs: Fixes AddRange bug
9175         
9176 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
9177
9178         * ProgressBar.cs
9179                 - Add missing attributes
9180                 - Add missing method
9181                 
9182         * CheckedListBox.cs: Added missing attributes
9183                 - Add missing attributes
9184                 - Remove extra method
9185         
9186         * ComboBox.cs: Added missing attributes
9187         * VScrollBar.cs: Added missing attributes
9188         * ScrollBar.cs:  Added missing attributes
9189         * ListBox.cs: Fixes signature, add missing consts
9190         * LinkArea.cs:   Added missing attributes
9191         
9192
9193 2005-02-08  Peter Bartok  <pbartok@novell.com>
9194
9195         * Menu.cs: Added missing attributes
9196         * MainMenu.cs: Added missing attributes
9197         * GroupBox.cs: Added missing attributes
9198         * Label.cs: Added missing attributes
9199         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
9200         * ColorDialog.cs:
9201           - Added Instance and Options properties
9202           - Added missing attributes
9203         * Cursor.cs: Made Serializable
9204         * NotifyIcon: Added missing attributes
9205         * MenuItem.cs: Added missing attributes
9206         * TextBoxBase.cs: Implemented AppendText() and Select() methods
9207         * Panel.cs: Added Missing attributes
9208         * MonthCalendar.cs: Fixed CreateParams
9209
9210 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
9211         
9212         * LinkLabel.cs:
9213                 - Fixes signature
9214                 - Fixes issues with links
9215                 - Adds the class attributes
9216
9217 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
9218         
9219         * ComboBox.cs:
9220                 - Fixes button when no items available in dropdown
9221                 - Fixes repainting problems
9222                 - Adds the class attributes
9223                 
9224 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
9225
9226         * XplatUIOSX.cs: Detect the menu bar and title bar height from
9227         the current theme.  Cache these on startup.
9228
9229 2005-02-07  Jackson Harper  <jackson@ximian.com>
9230
9231         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
9232         the scrollbar buttons when they are depressed.
9233
9234 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
9235
9236         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
9237         Get the display size from the main displayid.  We currently dont
9238         support multiple display configurations.
9239
9240 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
9241
9242         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
9243
9244 2005-02-07  Miguel de Icaza  <miguel@novell.com>
9245
9246         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
9247
9248 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
9249
9250         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
9251
9252 2005-02-04  Jackson Harper  <jackson@ximian.com>
9253
9254         * ThemeWin32Classic.cs: Respect the clipping rect when
9255         drawing. Only fill the intersection of clips and rects so there
9256         isn't a lot of large fills.
9257         * ScrollBar.cs: Pass the correct clipping rect to the theme
9258         engine. Remove some debug code.
9259
9260 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
9261         
9262         * DateTimePicker.cs:
9263                 - Fixed crash on DateTime.Parse, use Constructor instead
9264
9265 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
9266         
9267         * MenuItem.cs:
9268         * MenuAPI.cs:
9269                 - Owner draw support (MeasureItem and DrawItem)
9270
9271 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
9272         
9273         *  Menu.cs:
9274                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
9275                 - Fixes MenuItems.Add range
9276         * MenuItem.cs:
9277                 - MergeMenu and Clone and CloneMenu functions
9278
9279 2005-02-03  Jackson Harper  <jackson@ximian.com>
9280
9281         * ScrollBar.cs: Make abstract
9282         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
9283         is abstract.
9284
9285 2005-02-03  Jackson Harper  <jackson@ximian.com>
9286
9287         * ScrollBar.cs: First part of my scrollbar fixups. This removes
9288         all the unneeded refreshes and uses invalidates with properly
9289         computed rects.
9290
9291 2005-02-03  Peter Bartok  <pbartok@novell.com>
9292
9293         * ComponentModel.cs: Added
9294         * IDataGridEditingService.cs: Added
9295         * Timer.cs: Added missing attributes
9296         * ToolTip.cs: Added missing attributes
9297
9298 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
9299
9300         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
9301
9302 2005-02-03  Peter Bartok  <pbartok@novell.com>
9303
9304         * ListBox.cs: Added missing attributes
9305
9306 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
9307         
9308         * ListBox.cs:
9309                 - Fixes font height after font change
9310                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
9311                 
9312 2005-02-02  Peter Bartok  <pbartok@novell.com>
9313
9314         * HandleData.cs: Introduced static methods to allow class
9315           to be more self-contained and track it's own HandleData objects
9316         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
9317           HandleData to use new static methods
9318
9319 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
9320
9321         * Combobox.cs:
9322                 - Fixes default size and PreferredHeight
9323                 - Missing events
9324                 - ObjectCollection.Insert implementation
9325                 
9326         * ListControl.cs
9327                 - Fixes signature
9328         * ListBox.cs:
9329                 - Several fixes
9330                 - ObjectCollection.Insert implementation
9331                 - No selection after clean
9332                 - Small fixes
9333
9334 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
9335
9336         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
9337
9338 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
9339
9340         * Combobox.cs:
9341                 - Caches ItemHeight calculation for OwnerDrawVariable
9342                 - Handles dropdown properly
9343                 - Fixes several minor bugs
9344
9345 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
9346
9347         * ListBox.cs:
9348                 - Fixes 71946 and 71950
9349                 - Fixes changing Multicolumn on the fly
9350                 - Fixes keyboard navigation on Multicolumn listboxes
9351
9352 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
9353         
9354         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
9355         crash reporter log.
9356
9357 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
9358
9359         * XplatUIOSX.cs: Allow applications to actually exit.
9360
9361 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
9362
9363         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
9364         their parent at creation time rather than lazily later.  Fixes a major
9365         regression we were experiencing.
9366
9367 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
9368
9369         * ThemeWin32Classic.cs: more date time picker painting fixes
9370         * DateTimePicker.cs: more monthcalendar drop down fixes
9371         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
9372
9373 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
9374
9375         * ScrollBar.cs:
9376                 - When moving the thumb going outside the control should stop the moving
9377                 - Adds the firing of missing events
9378                 - Fixes no button show if Size is not specified
9379                 - End / Home keys for keyboard navigation
9380
9381 2005-01-30  Peter Bartok  <pbartok@novell.com>
9382
9383         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
9384           sanity check to prevent theoretical loop
9385         * XplatUIWin32.cs (SetVisible): Removed debug output
9386         * XplatUIX11.cs (SystrayChange): Added sanity check
9387         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
9388         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
9389           behaviour, valid until the X11 client window rewrite is done
9390         * TextBox.cs (ctor): Setting proper default foreground and background
9391           colors
9392
9393 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
9394
9395         * Theme: Added DrawDateTimePicker to interface
9396         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
9397         * DateTimePicker.cs: Created (still needs keys and painting code)
9398         * DateTimePickerFormat.cs: added
9399         * MonthCalendar.cs: fixed CreateParams for popup window mode
9400           
9401 2005-01-29  Peter Bartok  <pbartok@novell.com>
9402
9403         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
9404           this should also the calculations for ligher/darker
9405         * Theme.cs: Fixed defaults for ScrollBar widths/heights
9406
9407 2005-01-29  Peter Bartok  <pbartok@novell.com>
9408
9409         * ArrangeDirection.cs: Added
9410         * ArrangeStartingPositon.cs: Added
9411         * SystemInformation.cs: Implemented
9412         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
9413           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
9414           used by SystemInformation class
9415         * X11Strucs.cs: Added XSizeHints structure
9416         * MenuAPI.cs:
9417           - Fixed CreateParams to make sure the menu window is always visible
9418           - TrackPopupMenu: Added check to make sure we don't draw the
9419             menu offscreen
9420
9421 2005-01-29  Peter Bartok  <pbartok@novell.com>
9422
9423         * HandleData.cs: Added method for altering invalid area
9424         * TextBoxBase.cs: Implemented TextLength
9425
9426 2005-01-28  Peter Bartok  <pbartok@novell.com>
9427
9428         * XplatUIX11.cs: Improvement over last patch, not sending
9429           the WM_PAINT directly anymore, instead we scroll any pending
9430           exposed areas and let the system pick out the WM_PAINT later
9431
9432 2005-01-28  Peter Bartok  <pbartok@novell.com>
9433
9434         * SWF.csproj: Deleted, no longer used. Instead,
9435           Managed.Windows.Forms/SWF.csproj should be used
9436         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
9437           directly, to avoid a potential race condition with the next
9438           scroll
9439
9440 2005-01-28  Peter Bartok  <pbartok@novell.com>
9441
9442         * XplatUI.cs: Made class internal
9443
9444 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
9445
9446         * CheckedListBox.cs:
9447                 - Draw focus
9448                 - Fixed Drawing
9449                 - Missing methods and events
9450
9451 2005-01-27  Peter Bartok  <pbartok@novell.com>
9452
9453         * Application.cs (Run): Don't use form if we don't have one
9454
9455 2005-01-27  Peter Bartok  <pbartok@novell.com>
9456
9457         * TextBoxBase.cs (get_Lines): Fixed index off by one error
9458
9459 2005-01-27  Peter Bartok  <pbartok@novell.com>
9460
9461         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
9462         * GridItem.cs: Added; Patch by Jonathan S. Chambers
9463         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
9464         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
9465         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
9466         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
9467         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
9468         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
9469         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
9470         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
9471         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
9472         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
9473
9474 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
9475
9476         * Combobox.cs:
9477                 - Draw focus on Simple Combobox
9478                 - Fixes drawing issues
9479                 - fixes 71834
9480
9481 2005-01-27  Peter Bartok  <pbartok@novell.com>
9482
9483         * Form.cs:
9484           - Place window in default location, instead of hardcoded 0/0
9485           - Send initial LocationChanged event
9486         * Control.cs:
9487           - UpdateBounds after creation to find out where the WM placed us
9488           - Make sure that if the ParentForm changes location the Form
9489             is notified
9490         * XplatUIX11.cs: XGetGeometry will not return the coords relative
9491             to the root, but to whatever the WM placed around us.
9492             Translate to root coordinates before returning toplevel
9493             coordinates
9494         * XplatUIWin32.cs: Removed debug output
9495         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
9496           flag to GetWindowPos, to allow translation of coordinates on X11
9497
9498 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
9499
9500         * ListBox.cs: connect LostFocus Event
9501
9502 2005-01-27  Peter Bartok  <pbartok@novell.com>
9503
9504         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
9505           XplatUIX11.cs: Extended the Systray API
9506         * Form.cs: Removed debug output
9507         * Application.cs: Fixed focus assignment, always need to call
9508           XplatUI.Activate() since Form.Activate() has rules that may
9509           prevent activation
9510         * NotifyIcon.cs: Should be complete now
9511         * ToolTip.cs: Worked around possible timer bug
9512
9513 2005-01-27  Jackson Harper  <jackson@ximian.com>
9514
9515         * TabControl.cs:
9516         - Only invalidate the effected tabs when the
9517         selected index changes. This reduces drawing and gets rid of some
9518         flicker.
9519         - Only refresh if the tabs need to be shifted, otherwise only
9520         invalidate the slider button.
9521         - On windows the tabs are not filled to right if the slider is
9522         visible.
9523         
9524 2005-01-27  Jackson Harper  <jackson@ximian.com>
9525
9526         * TabControl.cs: Only refresh on mouseup if we are showing the
9527         slider. Also only invalidate the button whose state has changed.
9528
9529 2005-01-26  Peter Bartok  <pbartok@novell.com>
9530
9531         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
9532         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
9533           and SystrayRemove() methods
9534         * XplatUIOSX.cs: Stubbed Systray methods
9535         * XplatUIX11.cs:
9536           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
9537             methods
9538           - Fixed broken XChangeProperty calls (marshalling messed up things)
9539         * X11Structs.cs: Added enums and structs required for Size hinting
9540         * NotifyIcon.cs: Added & implemented
9541
9542 2005-01-26  Jackson Harper  <jackson@ximian.com>
9543
9544         * TabControl.cs: Space vertically layed out tabs properly.
9545
9546 2005-01-26  Peter Bartok  <pbartok@novell.com>
9547
9548         * Form.cs (CreateClientParams): Always set the location to 0,0
9549           since we're a child window.
9550
9551         * Control.cs (SetVisibleCore): Always explicitly setting the location
9552           of a toplevel window, apparently X11 doesn't like to move windows
9553           while they're not mapped.
9554
9555 2005-01-26  Jackson Harper  <jackson@ximian.com>
9556
9557         * TabControl.cs: Implement FillToRight size mode with vertically
9558         rendered tabs.
9559
9560 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
9561
9562         * ControlPaint.cs, ThemeWin32Classic.cs
9563                 - Fixes DrawFocusRectangle
9564
9565 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
9566
9567         * MenuAPI.cs:
9568                 - MenuBar tracking only starts when item is first clicked
9569                 - Fixes menu hidding for multiple subitems
9570                 - Unselect item in MenuBar when item Executed
9571                 - Fixes bug 71495
9572
9573 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
9574
9575         * ListControl.cs:
9576                 - IsInputKey for ListBox
9577         * ListBox.cs:
9578                 - Focus item
9579                 - Shift and Control item selection
9580                 - Implement SelectionMode.MultiExtended
9581                 - Fixes RightToLeft
9582         * ComboBox.cs:
9583                 - IsInputKey implemented
9584                 - Do not generate OnTextChangedEdit on internal txt changes
9585                 
9586 2005-01-23  Peter Bartok  <pbartok@novell.com>
9587
9588         * AccessibleObject.cs: Partially implemented Select()
9589         * MonthCalendar.cs: Added missing attributes and events
9590         * Form.cs: Fixed CreateParams behaviour, now controls derived from
9591           form can properly override CreateParams.
9592         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
9593           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
9594           Control performs Invalidate & Update
9595         * NativeWindow (CreateHandle): Added special handling for Form
9596           and Form.FormParent classes to allow overriding of From.CreateParams
9597         * Control.cs:
9598           - ControlNativeWindow: Renamed 'control' variable to more intuitive
9599             name 'owner'
9600           - ControlNativeWindow: Added Owner property
9601           - Removed usage of Refresh() on property changes, changed into
9602             Invalidate(), we need to wait until the queue is processed for
9603             updates, direct calls might cause problems if not all vars for
9604             Paint are initialized
9605           - Added call to UpdateStyles() when creating the window, to set any
9606             styles that CreateWindow might have ignored.
9607           - Added support for Form CreateParent overrides to UpdateStyles()
9608         * MessageBox.cs: Removed no longer needed FormParent override stuff,
9609           CreateParams are now properly overridable
9610         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
9611           CreateParams are now properly overridable
9612
9613 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
9614
9615         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
9616         OnTextBoxChanged.
9617
9618         Capture LostFocus and OnTextBoxChanged.  The later introduces a
9619         recursive invocation that I have not figured out yet.
9620
9621         Reset the timer when not using (it was accumulating).
9622
9623
9624         (OnTextBoxChanged): Set UserEdit to true here to track whether the
9625         user has made changes that require validation.
9626
9627         Reset changing to avoid loops.
9628
9629 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
9630
9631         * NumericUpDown.cs: Display value at startup.
9632
9633         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
9634         ValidateEditText.
9635
9636         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
9637         filled in.  Added some basic parsing of text.
9638
9639         Still missing the OnXXX method overrides, and figuring out the
9640         events that must be emitted.
9641
9642         * UpDownBase.cs: Handle UserEdit on the Text property.
9643         
9644 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
9645
9646         * ComboBox.cs:
9647           - Fixes IntegralHeight
9648           - ToString method
9649
9650 2005-01-21  Jackson Harper  <jackson@ximian.com>
9651
9652         * TabControl.cs: Set the SelectedIndex property when SelectedTab
9653         is set so that the page visibility is updated and the tabs are
9654         sized correctly.
9655
9656 2005-01-21  Jackson Harper  <jackson@ximian.com>
9657
9658         * TabControl.cs: Use cliping rectangle for blitting. Give the
9659         theme the clipping rect so we can do clipping while
9660         drawing. Remove some debug code.
9661
9662 2005-01-21  Jackson Harper  <jackson@ximian.com>
9663
9664         * TabPage.cs: Add a new method so tab pages can force the tab
9665         control to recalculate the tab page sizes.
9666         * TabControl.cs: UpdateOwner needs to make the tab control recalc
9667         sizes.
9668
9669 2005-01-20  Jackson Harper  <jackson@ximian.com>
9670
9671         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
9672
9673 2005-01-20  Jackson Harper  <jackson@ximian.com>
9674
9675         * TreeView.cs: Set the bounds for nodes properly. They were
9676         getting screwed up when checkboxes were not enabled, but images
9677         were.
9678
9679 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
9680
9681         * ListBox.cs:
9682                 - Owner draw support
9683                 - Fixes
9684                 
9685 2005-01-20  Jackson Harper  <jackson@ximian.com>
9686
9687         * XplatUIStructs.cs: More misc keys
9688         * X11Keyboard.cs: Ignore some control keys.
9689
9690 2005-01-20  Jackson Harper  <jackson@ximian.com>
9691
9692         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
9693         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
9694
9695 2005-01-19  Peter Bartok  <pbartok@novell.com>
9696
9697         * Control.cs: Un-selecting the control when it is loosing focus
9698
9699 2005-01-19  Jackson Harper  <jackson@ximian.com>
9700
9701         * TreeView.cs: Hook up to the text controls leave event so we can
9702         end editing when the users clicks outside the text box.
9703         
9704 2005-01-19  Jackson Harper  <jackson@ximian.com>
9705
9706         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
9707         get set in the conversion array.
9708
9709 2005-01-19  Peter Bartok  <pbartok@novell.com>
9710
9711         * Application.cs (ModalRun): Added a call to CreateControl to ensure
9712           focus is properly set
9713         * Button.cs:
9714           - Added missing attributes
9715           - removed styles, those are already set in the base class
9716         * ButtonBase.cs:
9717           - Added missing attributes
9718           - Added clip window styles
9719         * CheckBox.cs: Added missing attributes
9720         * CommonDialog.cs:
9721           - FormParentWindow.CreateParams: Added required clip styles
9722         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
9723           also filters modifier keys
9724         * MessageBox.cs:
9725           - Added assignment of Accept and Cancel button to enable Enter
9726             and Esc keys in MessageBox dialogs
9727           - FormParentWindow.CreateParams: Added required clip styles
9728         * RadioButton.cs: Added missing attributes
9729         * TextControl.cs: No longer draws selection if control does not
9730           have focus
9731         * TextBoxBase.cs:
9732           - Now draws simple rectangle around test area to make it obvious
9733             there's a control. This is a hack until we properly support borders
9734           - A few simple fixes to support selections better, now erases selected
9735             text when typing, and resets selection when using movement keys
9736
9737 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
9738
9739         * UpDownBase.cs: Added some new properties.
9740
9741         * DomainUpDown.cs: Implement a lot to get my test working.
9742
9743 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
9744
9745         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
9746
9747 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
9748
9749         * OSXStructs (WindowAttributes): Fixed csc complaints
9750
9751 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
9752
9753         * XplayUIOSX.cs:
9754           OSXStructs.cs: Initial refactor to move enums and consts into
9755           OSXStructs and use them in the driver for greater readability.
9756
9757 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
9758
9759         * XplatUIOSX.cs: Initial support for Standard Cursors.
9760         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
9761
9762 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
9763
9764         * ComboBox.cs: ability to change style when the ctrl is already
9765         created, missing methods and events, bug fixes, signature fixes
9766
9767 2005-01-19  Peter Bartok  <pbartok@novell.com>
9768
9769         * Cursors.cs (ctor): Added ctor to fix signature
9770
9771 2005-01-18  Peter Bartok  <pbartok@novell.com>
9772
9773         * Button.cs: Implemented DoubleClick event
9774         * ButtonBase.cs:
9775           - Fixed keyboard handling to behave like MS, where the press of
9776             Spacebar is equivalent to a mousedown, and the key release is
9777             equivalent to mouseup. Now a spacebar push will give the same
9778             visual feedback like a mouse click.
9779           - Added missing attributes
9780           - Added ImeModeChanged event
9781           - Added support for generating DoubleClick event for derived classes
9782         * CheckBox.cs:
9783           - Implemented DoubleClick event
9784           - Added missing attributes
9785         * CommonDialog.cs: Added missing attribute
9786         * ContextMenu.cs: Added missing attributes
9787         * RadioButton.cs:
9788           - AutoChecked buttons do not allow to be unselected when clicked
9789             (otherwise we might end up with no selected buttons in a group)
9790           - Added missing attributes
9791           - Implemented DoubleClickEvent
9792         * ThreadExceptionDialog.cs: Enabled TextBox code
9793
9794 2005-01-18  Peter Bartok  <pbartok@novell.com>
9795
9796         * Form.cs: Removed debug output
9797         * Button.cs: Added support for DoubleClick method
9798
9799 2005-01-18  Peter Bartok  <pbartok@novell.com>
9800
9801         * Form.cs:
9802           - Added method to parent window that allows triggering size
9803             calculations when a menu is added/removed
9804           - set_Menu: Cleaned up mess from early days of Form and Control,
9805             now properly triggers a recalc when a menu is added/removed
9806           - Added case to select form itself as focused form if no child
9807             controls exist
9808           - Added PerformLayout call when showing dialog, to ensure properly
9809             placed controls
9810         * Control.cs:
9811           - Select(): Made internal so Form can access it
9812           - Focus(): Only call Xplat layer if required (avoids loop), and sets
9813             status
9814         * Application.cs (Run): Removed hack and calls PerformLayout instead
9815           to trigger calculation when Form becomes visible
9816
9817 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
9818
9819         * ComboBox.cs: fixes for ownerdraw
9820
9821 2005-01-18  Peter Bartok  <pbartok@novell.com>
9822
9823         * TextControl.cs:
9824           - Sentinel is no longer static, each Document gets it's own, this
9825             avoids locking or alternatively overwrite problems when more
9826             than one text control is used simultaneously.
9827           - Switched to use Hilight and HilightText brushes for text selection
9828
9829         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
9830
9831 2005-01-18  Peter Bartok  <pbartok@novell.com>
9832
9833         * Control.cs:
9834           - Hooked up the following events:
9835                 o ControlAdded
9836                 o ControlRemoved
9837                 o HandleDestroyed
9838                 o ImeModeChanged
9839                 o ParentChanged
9840                 o TabStopChanged
9841                 o Invalidated
9842                 o SystemColorsChanged
9843                 o ParentFontChanged
9844                 o Move
9845           - Removed debug output
9846           - Added a call to the current theme's ResetDefaults when a color change
9847             is detected
9848         * Form.cs: Now setting the proper ImeMode
9849         * Theme.cs: Defined a method to force recreation of cached resources
9850           and rereading of system defaults (ResetDefaults())
9851         * ThemeWin32Classic.cs: Added ResetDefaults() stub
9852
9853 2005-01-17  Peter Bartok  <pbartok@novell.com>
9854
9855         * Control.cs: Added missing attributes
9856
9857 2005-01-17  Jackson Harper  <jackson@ximian.com>
9858
9859         * TreeNode.cs: Implement editing. Add missing properties selected
9860         and visible.
9861         * TreeView.cs: Implement node editing. Also some fixes to use
9862         Invalidate (invalid area) instead of Refresh when selecting.
9863
9864 2005-01-17  Peter Bartok  <pbartok@novell.com>
9865
9866         * Control.cs:
9867           - Implemented InvokeGotFocus() method
9868           - Implemented InvokeLostFocus() method
9869           - Implemented InvokePaint() method
9870           - Implemented InvokePaintBackground() method
9871           - Implemented InvokeClick() method
9872           - Implemented FindForm() method
9873           - Implemented RectangleToClient() method
9874           - Implemented ClientToRectangle() method
9875           - Implemented ResetBackColor() method
9876           - Implemented ResetCursor() method
9877           - Implemented ResetFont() method
9878           - Implemented ResteForeColor() method
9879           - Implemented ResetImeMode() method
9880           - Implemented ResetLeftToRight() method
9881           - Implemented ResetText() method
9882           - Implemented Scale() methods
9883           - Implemented ScaleCore() method
9884           - Implemented Update() method
9885           - Removed unused variables
9886           - Stubbed AccessibilityNotifyClients and
9887             ControlAccessibleObject.NotifyClients() methods (dunno what to do
9888             with those yet)
9889           - Now setting proper default for RightToLeft property
9890           - Fixed bug in SetClientSizeCore that would cause windows to get
9891             really big
9892           - Now sending Click/DoubleClick events
9893           - Now selecting controls when left mouse button is clicked on
9894             selectable control
9895         * AccessibleEvents.cs: Added
9896         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
9897         * XplatUIOSX.cs: Stubbed UpdateWindow() method
9898         * XplatUIWin32.cs: Implemented UpdateWindow() method
9899         * XplatUIX11.cs: Implemented UpdateWindow() method
9900         * Form.cs: Removed stray semicolon causing CS0162 warning
9901         * ThemeWin32Classic.cs: Fixed unused variable warnings
9902         * ScrollableControl.cs: Now calls base method for ScaleCore
9903         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
9904           style to avoid interference with internal click handler (which is
9905           different than standard Control click handling)
9906         * RadioButton.cs:
9907           - Now unchecks all sibling radio buttons when control is
9908             selected (Fixes #68756)
9909           - Removed internal tabstop variable, using the one inherited from
9910             Control
9911
9912 2005-01-17  Jackson Harper  <jackson@ximian.com>
9913
9914         * NavigateEventArgs.cs: Fix base type.
9915         * LinkLabel.cs: Sig fix
9916         
9917 2005-01-17  Jackson Harper  <jackson@ximian.com>
9918
9919         * TreeView.cs: Only invalidate the effected nodes bounds when
9920         selecting nodes.
9921
9922 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
9923
9924         * XplatUIWin32.cs: fixes Win32 marshaling
9925         * XplatUIX11.cs: fixes method signature
9926
9927 2005-01-17  Peter Bartok  <pbartok@novell.com>
9928
9929         * XplatUIX11.cs: Clean up resources when we no longer need them
9930
9931 2005-01-17  Peter Bartok  <pbartok@novell.com>
9932
9933         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
9934           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
9935           and DestroyCursor() methods.
9936         * Cursor.cs: Partially implemented, now supports standard cursors;
9937           still contains some debug code
9938         * Cursors.cs: Implemented class
9939         * Control.cs:
9940           - WndProc(): Added handling of WM_SETCURSOR message, setting the
9941             appropriate cursor
9942           - Implemented Cursor property
9943           - Replaced break; with return; more straightforwar and possibly
9944             faster
9945           - Now properly setting the result for WM_HELP
9946         * X11Structs.cs: Added CursorFontShape enum
9947         * XplatUIStructs.cs:
9948           - Added StdCursor enum (to support DefineStdCursor() method)
9949           - Added HitTest enum (to support sending WM_SETCURSOR message)
9950         * XplatUIX11.cs:
9951           - Now sends the WM_SETCURSOR message
9952           - Implemented new cursor methods
9953         * XplatUIOSX.cs: Stubbed new cursor methods
9954         * XplatUIWin32.cs:
9955           - Implemented new cursor methods
9956           - Added GetSystemMetrics function and associated enumeration
9957
9958 2005-01-15  Peter Bartok  <pbartok@novell.com>
9959
9960         * Control.cs:
9961           - WndProc(): Now handles EnableNotifyMessage
9962           - SelectNextControl(): Fixed bug where if no child or sibling
9963             controls exist we looped endlessly
9964
9965 2005-01-14  Jackson Harper  <jackson@ximian.com>
9966
9967         * TreeView.cs: Recalculate the tab pages when a new one is added
9968         so that the proper bounding rects are created.
9969
9970 2005-01-14  Jackson Harper  <jackson@ximian.com>
9971
9972         * TreeView.cs: Draw a gray box instead of a grip in the lower
9973         right hand corner when there are both horizontal and vertical
9974         scroll bars.
9975
9976 2005-01-14  Jackson Harper  <jackson@ximian.com>
9977
9978         * Control.cs: When erasing backgrounds use FromHwnd instead of
9979         FromHdc when there is a NULL wparam. This occurs on the X driver.
9980         * XplatUIX11.cs: Set the wparam to NULL.
9981
9982 2005-01-13  Jackson Harper  <jackson@ximian.com>
9983
9984         * PictureBox.cs: Implement missing methods (except ToString, need
9985         to test that on windows) and events. When visibility is changed we
9986         need to redraw the image because the buffers are killed. When size
9987         is changed refresh if the sizemode needs it.
9988
9989 2005-01-13  Peter Bartok  <pbartok@novell.com>
9990
9991         * Control.cs (SelectNextControl): Was using wrong method to select
9992           a control
9993
9994 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
9995
9996         * ComboBox.cs: fixes dropstyle
9997
9998 2005-01-13  Peter Bartok  <pbartok@novell.com>
9999
10000         * Form.cs:
10001           - Implemented Select() override
10002           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
10003           - Now sets keyboard focus on startup
10004         * Control.cs (SelectNextControl): Now properly handles directed=true
10005         * TextBoxBase.cs:
10006           - WndProc: Now passes tab key on to base if AcceptTabChar=false
10007           - Added (really bad) focus rectangle (mostly for testing)
10008         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
10009           to enforce redraw on focus changes
10010         * ContainerControl.cs:
10011           - Fixed detection of Shift-Tab key presses
10012           - Fixed traversal with arrow keys
10013         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
10014           gonna keep this or if it's complete yet
10015         
10016 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
10017
10018         * ComboBox.cs: missing properties, fixes
10019
10020 2005-01-13  Peter Bartok  <pbartok@novell.com>
10021
10022         * Panel.cs (ctor): Setting Selectable window style to off
10023         * Splitter.cs (ctor): Setting Selectable window style to off
10024         * GroupBox.cs (ctor): Setting Selectable window style to off
10025         * Label.cs (ctor): Setting Selectable window style to off
10026
10027 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
10028
10029         * UpDownBase.cs (InitTimer): If the timer has been already
10030         created, enable it.
10031
10032         Use a TextBox instead of a Label.
10033
10034 2005-01-12  Jackson Harper  <jackson@ximian.com>
10035
10036         * TreeView.cs: Refresh the tree after sorting the nodes. Always
10037         draw the connecting node lines (when ShowLines is true).
10038         * TreeNode.cs: The nodes index can now be updated. This is used
10039         when a node collection is sorted.
10040         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
10041         insert or an existing unsorted node collection can be sorted.
10042         
10043 2005-01-12  Peter Bartok  <pbartok@novell.com>
10044
10045         * ContainerControl.cs: Implemented ProcessDialogKeys()
10046
10047 2005-01-12  Peter Bartok  <pbartok@novell.com>
10048
10049         * Control.cs:
10050           - Implemented SelectNextControl() method
10051           - Several focus related bug fixes
10052           - Fixed Docking calculations to match MS documentation and
10053             behaviour
10054
10055 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
10056
10057         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
10058         bug fixes
10059
10060 2005-01-12  Peter Bartok  <pbartok@novell.com>
10061
10062         * Control.cs:
10063           - Fixed broken Contains() method
10064           - Implemented GetNextControl() method. Finally. This is the pre-
10065             requisite for focus handling.
10066
10067 2005-01-12  Peter Bartok  <pbartok@novell.com>
10068
10069         * OSXStrucs.cs: Added
10070
10071 2005-01-12  Peter Bartok  <pbartok@novell.com>
10072
10073         * XplatUIWin32.cs:
10074           - Removed PeekMessageFlags
10075           - Implemented SetWindowStyle() method
10076         * XplatUIStructs.cs: Added PeekMessageFlags
10077         * X11Structs: Added missing border_width field to XWindowChanges struct
10078         * XplatUIX11.cs:
10079           - PeekMessage: Now throws exception if flags which are not yet
10080             supported are passed
10081           - Implemented SetWindowStyle() method
10082           - Fixed SetZOrder to handle AfterHwnd properly
10083         * XplatUI.cs: Added SetWindowStyle() method
10084         * XplatUIDriver.cs: Added SetWindowStyle() abstract
10085         * Control.cs:
10086           - Implemented UpdateStyles() method
10087           - Implemented UpdateZOrder() method
10088         * XplatUIOSX.cs: Added SetWindowStyle() stub
10089
10090 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
10091
10092         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
10093         button mouse).
10094
10095
10096 2005-01-11  Jackson Harper  <jackson@ximian.com>
10097
10098         * TreeView.cs: Still need to draw lines to siblings even if out of
10099         the current node is out of the clip.
10100
10101 2005-01-11  Jackson Harper  <jackson@ximian.com>
10102
10103         * TreeView.cs: When setting the hbar/vbar/grip position use
10104         SetBounds so that perform layout is only called once. Also suspend
10105         and resume layout so layout is only done once for all controls.
10106         - Removed some debug fluff
10107         * SizeGrip.cs: Call base implmentation in overriding methods.
10108         - When visibility is changed the drawing buffers are killed so we
10109         need to redraw.
10110
10111 2005-01-11  Jackson Harper  <jackson@ximian.com>
10112
10113         * TreeView.cs: Calculate the open node count while drawing. This
10114         saves us an entire tree traversal for every paint operation. Use
10115         a member var for the open node count so less vars are passed around.
10116
10117 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
10118
10119         * MonthCalendar.cs:
10120         - fixed selection to use mousemove, not mouse polling on timer
10121         * ThemeWin32Classic.cs
10122         - removed redundant unused variable "no_more_content"
10123         
10124 2005-01-11  Peter Bartok  <pbartok@novell.com>
10125
10126         * XplatUIX11.cs (DoEvents): Needs to return when no more events
10127           are pending, so it now calls PeekMessage instead of GetMessage;
10128           implemented a incomplete version of PeekMessage
10129         
10130 2005-01-11  Peter Bartok  <pbartok@novell.com>
10131
10132         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
10133           I18n issues
10134         * TextBoxBase.cs: Added sending of TextChanged event
10135
10136 2005-01-10  Jackson Harper  <jackson@ximian.com>
10137
10138         * TreeView.cs: Try not to draw outside the clipping rectangle on
10139         each node element.
10140
10141 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
10142
10143         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
10144
10145 2005-01-10  Jackson Harper  <jackson@ximian.com>
10146
10147         * TreeView.cs:
10148         - Implement fast scrolling. Now only the newly
10149         exposed nodes are drawn and the old image is moved using the
10150         XplatUI::ScrollWindow method.
10151         - Factor in height of nodes when calculating whether or not the
10152         node is in the clipping rect.
10153
10154 2005-01-10  Jackson Harper  <jackson@ximian.com>
10155
10156         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
10157
10158 2005-01-10  Peter Bartok  <pbartok@novell.com>
10159
10160         * Application.cs: Added temporary hack to resolve all our resize
10161           required issues on startup. This will get fixed properly at
10162           some point in the future
10163
10164 2005-01-10  Jackson Harper  <jackson@ximian.com>
10165
10166         * SizeGrip.cs: New internal class that is used as a sizing
10167         grip control...hence the name.
10168
10169 2005-01-10  Peter Bartok  <pbartok@novell.com>
10170
10171         * Control.cs: Implemented proper TabIndex handling, now assigning
10172           a tabindex when a control is added to a container
10173         * GroupBox.cs (ctor): Now sets the Container style bit, required
10174           for Control.GetNextControl()
10175
10176 2005-01-09  Jackson Harper  <jackson@ximian.com>
10177
10178         * TextBoxBase.cs: Clear window when scrolling (fixes build).
10179
10180 2005-01-09  Peter Bartok <pbartok@novell.com>
10181
10182         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
10183           XplatUIX11.cs: Added ability to control ScrollWindow expose and
10184           an overload for ScrollWindow to allow only scrolling a rectangle
10185
10186 2005-01-09  Peter Bartok <pbartok@novell.com>
10187
10188         * Form.cs:
10189           - Implemented SetDesktopBounds method
10190           - Implemented SetDesktopLocation method
10191
10192 2005-01-08  Jackson Harper  <jackson@ximian.com>
10193
10194         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
10195         the node count has changed, this removes to VScroll::Refresh calls
10196         when drawing.
10197
10198 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
10199
10200         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
10201
10202 2005-01-07  Jackson Harper  <jackson@ximian.com>
10203
10204         * TreeNode.cs: Just update the single node when it is
10205         checked. Don't refresh after toggling, the Expand/Collapse already
10206         handles this.
10207         * TreeView.cs: Respect clipping a little more when drawing. Try
10208         not to redraw things that don't need to be redrawn. Just hide the
10209         scrollbars when they are no longer needed instead of removing
10210         them, so they don't have to be created again and again.
10211         
10212 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
10213
10214         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
10215         coordinates to window space to place the caret properly, FIXED.
10216         Implement GetWindowState & SetWindowState
10217
10218 2005-01-06  Peter Bartok <pbartok@novell.com>
10219
10220         * Form.cs:
10221           - Implemented ClientSize property
10222           - Implemented DesktopBounds property
10223           - Implemented DesktopLocation property
10224           - Implemented IsRestrictedWindow property
10225           - Implemented Size property
10226           - Implemented TopLevel property
10227           - Implemented FormWindowState property
10228         * Control.cs:
10229           - Implemented GetTopLevel() method
10230           - Implemented SetTopLevel() method
10231         * X11Structs.cs (Atom):
10232           - Added AnyPropertyType definition
10233           - Added MapState definiton and updated XWindowAttribute struct
10234         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
10235         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
10236         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
10237         * XplatUIWin32.cs:
10238           - Implemented GetWindowState() and SetWindowState() methods
10239           - Fixed Win32GetWindowLong return type
10240         * XplatUIX11.cs:
10241           - Introduced central function for sending NET_WM messages
10242           - Implemented GetWindowState() and SetWindowState() methods
10243         * TextBoxBase.cs (set_Lines):
10244           - Now uses Foreground color for text added via Text property (Duh!)
10245           - Added code to remember programmatically requested size (fixes
10246             behaviour when Multiline is set after Size)
10247           - Added AutoSize logic
10248
10249 2005-01-06  Jackson Harper  <jackson@ximian.com>
10250
10251         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
10252
10253 2005-01-06  Jackson Harper  <jackson@ximian.com>
10254
10255         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
10256         set to less then 0.
10257
10258 2005-01-06  Jackson Harper  <jackson@ximian.com>
10259
10260         * ScrollableControl.cs: Lazy init the scrollbars.
10261         
10262 2005-01-06  Jackson Harper  <jackson@ximian.com>
10263
10264         * Theme.cs: Speed up getting pens and solid brushes, by using
10265         their ARGB as a hash instead of tostring and not calling Contains.
10266
10267 2005-01-06  Peter Bartok <pbartok@novell.com>
10268
10269         * Form.cs:
10270           - Implemented OnActivated and OnDeactivate event trigger
10271           - Implemented Activate() method
10272           - Fixed ShowDialog() to activate the form that was active before
10273             the dialog was shown
10274         * XplatUIX11.cs:
10275           - Added global active_window var that tracks the currently active
10276             X11 window
10277           - Now always grabs Property changes from the root window to always
10278             catch changes on the active window property
10279           - Added code to PropertyNotify handler to send Active/Inactive
10280             messages when state changes. This puts X11 and Win32 en par on
10281             WM_ACTIVATE notifications (except for double notifications when
10282             the user clicks away from our modal window to another one of our
10283             windows)
10284
10285 2005-01-05  Jackson Harper  <jackson@ximian.com>
10286
10287         * ImageList.cs: Implment ctor
10288
10289 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
10290
10291         * XplatUIOSX.cs: Implement Activate/SetTopmost
10292
10293 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
10294
10295         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
10296
10297 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
10298
10299         * XplatUIOSX.cs: Implement GetActive/SetFocus.
10300
10301 2005-01-05  Peter Bartok <pbartok@novell.com>
10302
10303         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
10304           XplatUIOSX.cs: Added GetActive method to return the currently
10305           active window for the application (or null, if none is active)
10306         * Form.cs:
10307           - Implemented ActiveForm
10308           - Commented out owner assignment for modal dialogs (causes problems
10309             on Win32, since the owner will be disabled)
10310           - Reworked some Active/Focus handling (still incomplete)
10311         * CommonDialog.cs: Commented out owner assignment for modal dialogs
10312           (causes problems on Win32, since the owner will be disabled)
10313         * IWin32Window: Added ComVisible attribute
10314
10315 2005-01-05  Peter Bartok <pbartok@novell.com>
10316
10317         * ToolTip.cs (WndProc): Enable setting focus now that we have the
10318           required XplatUI functions.
10319
10320 2005-01-05  Peter Bartok <pbartok@novell.com>
10321
10322         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
10323           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
10324           to implement focus and activation handling; still incomplete and
10325           with debug output
10326
10327 2005-01-04  Peter Bartok <pbartok@novell.com>
10328
10329         * TextBoxBase.cs: Changed access level for Document property to
10330           match switch to internal for TextControl
10331
10332 2005-01-04  Peter Bartok <pbartok@novell.com>
10333
10334         * AccessibleObject: Added ComVisible attribute
10335
10336 2005-01-04  Jackson Harper  <jackson@ximian.com>
10337
10338         * X11Keyboard.cs: Remove unneeded var.
10339
10340 2005-01-04  Jackson Harper  <jackson@ximian.com>
10341
10342         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
10343         but PAINT.
10344         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
10345         ClientMessage. This makes apps exit cleanly (more often).
10346         
10347 2005-01-04  Jackson Harper  <jackson@ximian.com>
10348
10349         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
10350         handling focus, return correct colors and fonts,
10351         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
10352         handle selection, horizontal scrolling, and mouse interaction.
10353
10354 2005-01-04  Peter Bartok <pbartok@novell.com>
10355
10356         * ICommandExecutor.cs: Added
10357         * IDataGridColumnStyleEditingNotificationService.cs: Added
10358         * IFeatureSupport.cs: Added
10359         * IFileReaderService.cs: Added
10360         * IDataObject.cs: Added ComVisible attribute
10361         * AmbientProperties.cs: Added
10362         * BaseCollection.cs: Added missing attributes
10363         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
10364         * BaseCollection.cs: Added missing attributes
10365         * Binding.cs: Added TypeConverter attribute
10366         * BindingContext.cs: Added DefaultEvent attribute
10367         * BindingsCollection.cs: Added DefaultEvent attribute
10368         * Button.cs: Added DefaultValue attribute
10369         * DragEventArgs.cs: Added ComVisible attribute
10370         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
10371         * KeyEventArgs.cs: Added ComVisible attribute
10372         * KeyPressEventArgs.cs: Added ComVisible attribute
10373         * MouseEventArgs.cs: Added ComVisible attribute
10374         * NavigateEventArgs.cs: Added
10375         * NavigateEventHandler.cs: Added
10376         * FeatureSupport.cs: Added
10377         * OSFeature.cs: Added
10378         * Theme.cs: Added abstract Version property to support OSFeature
10379         * ThemeWin32Classic.cs: Added Version property to
10380           support OSFeature.Themes
10381         * ProgressBar.cs: Removed OnPaintBackground override, not required since
10382           the proper styles to avoid background drawing are set, also doesn't
10383           match MS signature
10384         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
10385         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
10386         * ScrollEventArgs.cs: Added ComVisible attribute
10387         * SplitterEventArgs.cs: Added ComVisible attribute
10388         * AccessibleSelection.cs: Added Flags attribute
10389         * Appearance.cs: Added ComVisible attribute
10390         * Border3DSide.cs: Added ComVisible attribute
10391         * Border3DStyle.cs: Added ComVisible attribute
10392         * BorderStyle.cs: Added ComVisible attribute
10393         * DragAction.cs: Added ComVisible attribute
10394         * ErrorBlinkStyle.cs: Added
10395         * ScrollEventType.cs: Added ComVisible attribute
10396         * AnchorStyles.cs: Added Editor attribute
10397         * DockStyle.cs: Added Editor attribute
10398         * HorizontalAlignment.cs: Added ComVisible attribute
10399         * HelpEventArgs.cs: Added ComVisible attribute
10400         * PaintEventArgs.cs: Added IDisposable
10401
10402 2005-01-04  Peter Bartok <pbartok@novell.com>
10403
10404         * TextControl.cs: Switched Line, LineTag and Document classes to
10405           internal
10406
10407 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
10408
10409         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
10410         Simple mode, fixes, IntegralHeight, etc.
10411
10412 2005-01-04  Peter Bartok <pbartok@novell.com>
10413
10414         * TextBoxBase.cs: Using proper font variable now
10415
10416 2005-01-04  Peter Bartok <pbartok@novell.com>
10417
10418         * Form.cs (ShowDialog): Set parent to owner, if provided
10419         * GroupBox.cs: Removed unused vars
10420         * TextControl.cs:
10421           - Added GetHashCode() for Document and LineTag classes
10422           - Removed unused variables
10423           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
10424             to allow translation between continuous char position and line/pos
10425         * CheckBox.cs: Removed vars that are provided by base class
10426         * RadioButton.cs: Removed vars that are provided by base class, added
10427           new keyword where required
10428         * LinkLabel.cs: Added new keyword where required
10429         * Control.cs (WndProc): Removed unused variable
10430         * TextBoxBase.cs:
10431           - Finished SelectionLength property
10432           - Implemented SelectionStart property
10433           - Implemented Text property
10434           - Removed unused vars
10435         * MessageBox.cs: Added new keyword where required
10436         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
10437           WndProc signature
10438         * MenuAPI.cs: Added new keyword where required
10439         * ButtonBase.cs: Removed vars that are provided by base class, added
10440           new keyword where required
10441         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
10442           argument to double, to allow compiling with csc 2.0 (Atsushi ran
10443           into this)
10444         * Application.cs (Run): Now triggers the ThreadExit event
10445         * CommonDialog.cs: Added new keyword where required; now properly sets
10446           parent (owner) for dialog
10447         * XplatUIX11.cs: Commented out unused vars
10448         * StatusBar.cs: Fixed signature for Text property
10449         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
10450
10451 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
10452
10453         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
10454         TrackBar.cs, MonthCalendar.cs: remove unused vars
10455
10456 2005-01-03  Jackson Harper  <jackson@ximian.com>
10457
10458         * ThemeWin32Classic.cs:
10459         * X11Keyboard.cs: Remove unused vars.
10460
10461 2005-01-03  Peter Bartok  <pbartok@novell.com>
10462
10463         * TextBox.cs:
10464           - set_Text: Tied into TextControl
10465           - set_TextAlignment: Tied into TextControl
10466         * TextControl.cs:
10467           - Added alignment properties and implemented alignment handling
10468             and drawing (still has a bug, not generating proper expose events)
10469           - Added new Line() constructor to allow passing the line alignment
10470           - Fixed selection setting, properly handling end<start now
10471           - Added aligment considerations to RecalculateDocument()
10472         * TextBoxBase.cs:
10473           - Now properly enforces control height for single line controls
10474           - Added support for CharacterCasing
10475           - Added IsInputKey override
10476           - Fixed Keys.Enter logic
10477           - Added SetBoundsCore override
10478           - Fixed mouse selection handling
10479
10480 2005-01-03  Jackson Harper  <jackson@ximian.com>
10481
10482         * TreeView.cs:
10483           - Collapse and uncheck all nodes when CheckBoxes is disabled.
10484           - Checkboxes are always aligned to the bottom of the node,
10485           regardless of item height.
10486           - Use the node bounds to draw the text so we can center it when
10487           the item height is greater then the font height.
10488           - Node::Bounds are only the text part of the node.
10489         * TreeNode.cs: New method to combine collapsing and unchecking all
10490           nodes recursively.
10491
10492 2005-01-02  Jackson Harper  <jackson@ximian.com>
10493
10494         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
10495         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
10496         tree when a check is changed. TODO: Only refresh the checked node.
10497
10498 2004-12-30  Jackson Harper  <jackson@ximian.com>
10499
10500         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
10501         * TreeNode.cs: When collapsing make sure to never collapse the
10502         root node.
10503
10504 2004-12-29  Jackson Harper  <jackson@ximian.com>
10505
10506         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
10507         
10508 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
10509
10510         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
10511
10512 2004-12-28  Peter Bartok  <pbartok@novell.com>
10513
10514         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
10515           not yet assigned
10516
10517 2004-12-28  Peter Bartok  <pbartok@novell.com>
10518
10519         * Control.cs (WndProc): Added WM_HELP handler, now generates
10520           HelpRequested event
10521         * Form.cs: Added HelpButton property and required support code
10522         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
10523
10524 2004-12-28  Peter Bartok  <pbartok@novell.com>
10525
10526         * CommonDialog.cs:
10527           - Made DialogForm.owner variable internal
10528           - Added check to ensure owner form is set before setting
10529             owner properties in CreateParams
10530
10531 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
10532
10533         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
10534           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
10535           GetCursorPos.  Fix major visibility issues.  Rework the windowing
10536           system to support borderless/titleless windows (implements menus).
10537           Fix GetWindowPos.  Implement initial background color support for
10538           views.
10539
10540 2004-12-28  Peter Bartok  <pbartok@novell.com>
10541
10542         * Form.cs (get_CreateParams): Make sure we have an owner before using
10543           the owner variable. Implement proper default if no owner exists
10544
10545 2004-12-28  Peter Bartok  <pbartok@novell.com>
10546
10547         * In preparation for making Managed.Windows.Forms the default build target
10548           for System.Windows.Forms, the following stubbed files were added.
10549           Dialogs are currently being implemented by contributors and are only
10550           short-term place holders.
10551         * ColorDialog.cs: Initial check-in (minmal stub)
10552         * DataGrid.cs: Initial check-in (minimal stub)
10553         * DataGridLineStyle.cs: Initial check-in (minimal stub)
10554         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
10555         * DataGridTableStyle.cs: Initial check-in (minimal stub)
10556         * FontDialog.cs: Initial check-in (minimal stub)
10557         * FileDialog.cs: Initial check-in (minimal stub)
10558         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
10559         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
10560         * OpenFileDialog: Initial check-in (minimal stub)
10561         * IComponentEditorPageSite.cs: Initial check-in
10562         * Splitter.cs: Initial check-in (for Jackson)
10563         * SplitterEventArgs.cs: Initial check-in (for Jackson)
10564         * SplitterEventHandler.cs: Initial check-in (for Jackson)
10565         * TextBox.cs: Initial check-in; still needs some wiring to
10566           TextControl backend
10567         * Form.cs: Implemented ControlBox property
10568         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
10569         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
10570         * TextControl.cs: Added selection functionality; added todo header
10571         * TextBoxBase.cs:
10572           - Implemented Lines property
10573           - Implemented TextHeight property
10574           - Implemented SelectedText property
10575           - Implemented SelectionLength property
10576           - Implemented SelectAll method
10577           - Implemented ToString method
10578           - Removed and cleaned up some debug code
10579           - Implemented (still buggy) mouse text selection
10580
10581 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
10582
10583         * ComboBox.cs: Complete DropDownList implementation, fixes.
10584
10585 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
10586
10587         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
10588         * ComboBoxStyle.cs: ComboBoxStyle enum
10589         * ComboBox.cs: Initial work on ComboBox control
10590
10591 2004-12-21  Peter Bartok  <pbartok@novell.com>
10592
10593         * Control.cs (ctor, CreateParams): Moved setting of is_visible
10594           forward so that anything that creates a window gets the default,
10595           also no longer uses Visible property in CreateParams to avoid
10596           walking up the parent chain and possibly get the wrong visible
10597           status. Fixed IsVisible to no longer walk up to the parent.
10598
10599 2004-12-21  Peter Bartok  <pbartok@novell.com>
10600
10601         * Form.cs (ShowDialog): Unset modality for the proper window
10602  
10603 2004-12-20  Peter Bartok  <pbartok@novell.com>
10604
10605         * CommonDialog.cs: Initial check-in
10606
10607 2004-12-20  Peter Bartok  <pbartok@novell.com>
10608
10609         * Control.cs (Visible): Now uses the parent window instead of the
10610           client area window for the property
10611
10612         * Form.cs
10613           - ShowDialog(): Now uses the proper window for modality
10614           - The default visibility state for the form parent is now false. This
10615             will prevent the user from seeing all the changes to the form and
10616             its controls before the application hits Application.Run()
10617           - Removed some stale commented out code
10618
10619         * NativeWindow.cs:
10620           - Added FindWindow() method to have a method to check for existence
10621             of a window handle
10622           - Added ability to override default exception handling (for example
10623             when debugging with VS.Net; to do this the ExternalExceptionHandler
10624             define must be set
10625           - Removed some useless debug output
10626
10627         * XplatUIX11.cs:
10628           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
10629             not working as expected
10630           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
10631             property to allow switching back to the modal window if focus is
10632             given to another one of our windows (Application Modal)
10633           - Now only sets override_redirect if we create a window
10634             without WS_CAPTION
10635           - Moved EventMask selection before mapping of newly created window
10636             so we can catch the map event as well
10637           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
10638           - Added various Atom related DllImports
10639           - Implemented Exit() method
10640           - .ctor() : No longer shows window if WS_VISIBLE is not defined
10641             in the CreateParams
10642
10643         * MessageBox.cs: Now properly deals with the FormParent window by
10644           providing an override the FormParent CreateParams property to
10645           set as POPUP instead of OVERLAPPED window.
10646
10647 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
10648
10649         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
10650         Minor code cleanup.
10651
10652 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
10653         
10654         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
10655
10656 2004-12-18  Peter Bartok  <pbartok@novell.com>
10657
10658         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
10659           implementing SetModal() method
10660
10661 2004-12-18  Peter Bartok  <pbartok@novell.com>
10662
10663         * X11Structs.cs (XGCValues): Fixed type of function element
10664         * XplatUI.cs: Added ScrollWindow() method
10665         * XplatUIDriver.cs: Added ScrollWindow() abstract
10666         * XplatUIWin32.cs: Implemented ScrollWindow() method
10667         * XplatUIX11.cs: Implemented ScrollWindow() method
10668         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
10669
10670 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
10671
10672         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
10673         Some more keyboard support (INCOMPLETE)
10674
10675 2004-12-17  Peter Bartok  <pbartok@novell.com>
10676
10677         * TextControl.cs:
10678         - Added color attribute to line tags.
10679         - Added color argument to all functions dealing with tags
10680         - Added color argument support to various functions
10681         - Fixed miss-calculation of baseline/shift in certain circumstances
10682
10683         * TextBoxBase.cs: Added new color option to test code
10684
10685 2004-12-17  Jackson Harper  <jackson@ximian.com>
10686
10687         * TreeNode.cs:
10688         * MonthCalendar.cs: Signature fixes
10689
10690 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
10691
10692         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
10693         keyboard event moved it.  Create a new graphics context for each paint resolves this
10694
10695 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
10696
10697         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
10698         Make caret exist and go blink blink.  Initial keyboard support.
10699         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
10700         works.
10701
10702 2004-12-17  Jackson Harper  <jackson@ximian.com>
10703
10704         * XplatUIStructs.cs: Updated set of virtual keycodes.
10705         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
10706
10707 2004-12-17  Jackson Harper  <jackson@ximian.com>
10708
10709         * XplatUIX11.cs: Prune old keyboard code.
10710
10711 2004-12-17  Jackson Harper  <jackson@ximian.com>
10712
10713         * XplatUIX11.cs: When generating mouse wparams get the modifier
10714         keys from the ModifierKeys property.
10715
10716 2004-12-17  Jackson Harper  <jackson@ximian.com>
10717
10718         * X11Keyboard.cs: Send up/down input when generating
10719         messages. Remove some unused vars.
10720
10721 2004-12-17  Jackson Harper  <jackson@ximian.com>
10722
10723         * TabControl.cs:
10724         * TreeView.cs: get rid of warnings.
10725
10726 2004-12-17  Jackson Harper  <jackson@ximian.com>
10727
10728         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
10729
10730 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
10731
10732         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
10733           CheckedListBox.cs: Implementation
10734
10735 2004-12-17  Peter Bartok  <pbartok@novell.com>
10736
10737         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
10738
10739 2004-12-16  Peter Bartok  <pbartok@novell.com>
10740
10741         * TextControl.cs:
10742           - InsertCharAtCaret(): Fixed start pos fixup
10743           - CaretLine_get: No longer derives the line from the tag, the tag
10744             could be stale if lines in the document have been added or deleted
10745           - RebalanceAfterDelete(): Fixed bug in balancing code
10746           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
10747           - Line.Streamline(): Now can also elminate leading empty tags
10748           - DumpTree(): Added a few more tests and prevented exception on
10749             uninitialized data
10750           - Added Debug section for Combining lines
10751           - Delete(): Now copies all remaining properties of a line
10752           
10753         * TextBoxBase.cs:
10754           - Left mousebutton now sets the caret (and middle button still acts
10755             as formatting tester, which must go away soon)
10756           - Added Debug section for Deleting/Combining lines
10757           - Fixed calculations for UpdateView after Combining lines
10758
10759 2004-12-16  Peter Bartok  <pbartok@novell.com>
10760
10761         * TextControl.cs: Now properly aligns text on a baseline, using the
10762           new XplatUI.GetFontMetrics() method. Simplified several calculations
10763         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
10764           defined
10765
10766 2004-12-16  Peter Bartok  <pbartok@novell.com>
10767
10768         * XplatUI.cs: Added GetFontMetrics() method
10769         * XplatUIDriver.cs: Added GetFontMetrics() abstract
10770         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
10771           into libgdiplus, our private GetFontMetrics function
10772         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
10773         * XplatUIWin32.cs: Implemented GetFontMetrics() method
10774
10775 2004-12-16  Jackson Harper  <jackson@ximain.com>
10776
10777         * XplatUIStruct.cs: Add enum for dead keys
10778         * X11Keyboard.cs: Map and unmap dead keys.
10779
10780 2004-12-16  Jackson Harper  <jackson@ximian.com>
10781
10782         * X11Keyboard.cs: Detect and use the num lock mask.
10783
10784 2004-12-16  Peter Bartok  <pbartok@novell.com>
10785
10786         * Control.cs (CreateGraphics): Added check to make sure the
10787           handle of the window exists before calling Graphics.FromHwnd()
10788
10789 2004-12-16  Peter Bartok  <pbartok@novell.com>
10790
10791         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
10792           contains a lot of code that's not supposed to be there for the
10793           real thing, but required for developing/testing the textbox
10794           backend.
10795
10796 2004-12-16  Peter Bartok  <pbartok@novell.com>
10797
10798         * TextControl.cs:
10799         - Fixed Streamline method
10800         - Added FindTag method to Line
10801         - Added DumpTree method for debugging
10802         - Added DecrementLines() method for deleting lines
10803         - Fixed UpdateView to update the cursor to end-of-line on single-line
10804           updates
10805         - Added PositionCaret() method
10806         - Fixed MoveCaret(LineDown) to move into the last line, too
10807         - Added InsertChar overload
10808         - Fixed InsertChar tag offset calculations
10809         - Added DeleteChar() method
10810         - Added Combine() method for folding lines
10811         - Fixed Delete() method, no longer allocates wasted Line object and
10812           now copies all properties when swapping nodes
10813         - Delete() method now updates document line counter
10814
10815 2004-12-15  Jackson Harper  <jackson@ximian.com>
10816
10817         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
10818         * X11Keyboard.cs: Expose the currently selected modifier keys
10819         through a property.
10820
10821 2004-12-15  Peter Bartok  <pbartok@novell.com>
10822
10823         * TextControl.cs: Initial check-in. Still incomplete
10824
10825 2004-12-15  Jackson Harper  <jackson@ximian.com>
10826
10827         * TreeNode.cs:
10828         * TreeView.cs: Fix build on csc (second time today ;-))
10829
10830 2004-12-15  Jackson Harper  <jackson@ximian.com>
10831
10832         * TreeView.cs: Store the treenodes plus/minus box bounds when it
10833         is calculated and use this for click testing.
10834         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
10835
10836 2004-12-15  Jackson Harper  <jackson@ximian.com>
10837
10838         * TreeView.cs: Pass the nodes image index to the image list when
10839         drawing that image.
10840
10841 2004-12-15  Jackson Harper  <jackson@ximian.com>
10842
10843         * X11Keyboard.cs: Set messages hwnd.
10844         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
10845         post_message calls.
10846
10847 2004-12-15  Jackson Harper  <jackson@ximian.com>
10848
10849         * X11Keyboard.cs: Fix to compile with csc.
10850         
10851 2004-12-15  Jackson Harper  <jackson@ximian.com>
10852
10853         * X11Structs.cs: Add key mask values
10854         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
10855         * X11Keyboard.cs: New file - Extrapolates and interpolates key
10856         down/up foo into WM_CHAR foo
10857         * KeyboardLayouts.cs: Common keyboard layouts
10858         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
10859         post messages into the main queue.
10860
10861 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
10862
10863         * Button.cs: implement ProcessMnemonic
10864         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
10865           brushes everytime
10866         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
10867         * ButtonBase.cs: Show HotkeyPrefix (not the &)
10868
10869 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
10870         
10871         * MonthCalendar.cs: Implemented click-hold for next/previous month
10872           and date selection
10873           
10874 2004-12-11  Peter Bartok  <pbartok@novell.com>
10875
10876         * X11Structs.cs:
10877           - Added XKeyboardState (moved from XplatUIX11.cs)
10878           - Added XCreateGC related enums and structures
10879           - Added GXFunction for XSetFunction
10880
10881         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
10882
10883         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
10884           CaretVisible() calls
10885
10886         * ToolTip.cs: Added code to prevent stealing focus from app windows
10887
10888         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
10889           DestroyCaret, SetCaretPos and CaretVisible)
10890
10891         * XplatUIX11.cs:
10892           - Added implementation for caret functions
10893           - Moved hover variables into a struct, to make it a bit easier
10894             on the eyes and to debug
10895           - Removed XKeyboardState (moved to XplatUIX11.cs)
10896           - Moved Keyboard properties into the properties region
10897
10898         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
10899           call to get a graphics context for our control
10900
10901         * XplatUIOSX.cs: Added empty overrides for the new caret functions
10902
10903         * TreeView.cs: Fixed bug. No matter what color was set it would always
10904           return SystemColors.Window
10905
10906         * XplatUIWin32.cs: Implemented caret overrides
10907
10908 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
10909
10910         * ListBox.cs: fire events, implement missing methods and properties,
10911         sorting.
10912
10913 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
10914
10915         * MonthCalendar.cs: invalidation bug fixing
10916         * ThemeWin32Classic.cs: paint fixing
10917
10918 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
10919
10920         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
10921         prepare the CGContextRef there now.
10922
10923 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
10924
10925         * MonthCalendar.cs:
10926           - optimisationL only invalidate areas that have changed
10927         * ThemeWin32Classic.cs:
10928           - only paint parts that intersect with clip_area
10929
10930 2004-12-09  Peter Bartok  <pbartok@novell.com>
10931
10932         * Application.cs: Undid changes from r37004 which cause problems
10933         on X11
10934
10935 2004-12-09  Ravindra  <rkumar@novell.com>
10936
10937         * ToolBar.cs: Added support for displaying ContextMenu
10938         attached to a button on ToolBar.
10939         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
10940         property.
10941
10942 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
10943
10944         * Label.cs: autosize works in text change and removes unnecessary
10945         invalidate
10946
10947 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
10948
10949         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
10950         remove warnings
10951
10952 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
10953
10954         * XplatUIOSX.cs: Added mouse move/click/grab support
10955         Remove some debugging WriteLines not needed anymore.
10956         Add window resizing/positioning.
10957         Fix visibility on reparenting.
10958
10959 2004-12-08  Peter Bartok  <pbartok@novell.com>
10960
10961         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
10962
10963 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
10964
10965         * XplatUIOSX.cs: Initial checkin
10966         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
10967
10968 2004-12-03  Ravindra <rkumar@novell.com>
10969
10970         * ListView.cs: Added some keybindings and fixed scrolling.
10971         ScrollBars listen to ValueChanged event instead of Scroll
10972         Event. This would let us take care of all changes being
10973         done in the scrollbars' values programmatically or manually.
10974         * ListView.cs (CanMultiselect): Added a check for shift key.
10975         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
10976         * ListViewItem.cs (Clone): Fixed. We need to make a copy
10977         of ListViewSubItemCollection as well.
10978
10979 2004-12-06  Peter Bartok <pbartok@novell.com>
10980
10981         * Control.cs (Parent): Added check and exception to prevent
10982         circular parenting
10983
10984 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
10985
10986         * ListBox.cs: implemented clipping, selection single and multiple,
10987         bug fixing
10988
10989 2004-12-03  Ravindra <rkumar@novell.com>
10990
10991         * ListView.cs (ListView_KeyDown):
10992         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
10993         when CTRL key is pressed.
10994         * ListViewItem.cs (Selected): Fixed setting the property.
10995
10996 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
10997
10998         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
10999
11000         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
11001         MinimizeBox, ShowInTaskbar, TopMost properties.
11002
11003         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
11004         will be implemented).
11005
11006 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
11007
11008         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
11009
11010         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
11011         tests.
11012         
11013         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
11014         
11015         * TreeView.cs: BackColor is Colors.Window.
11016
11017 2004-12-01  Jackson Harper  <jackson@ximian.com>
11018
11019         * TreeView.cs: When resizing the tree if the user is making it
11020         smaller we don't get expose events, so we need to handle adding
11021         the horizontal scrollbar in the size changed handler as well as
11022         the expose handler.
11023
11024 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
11025
11026         * DrawItemState.cs: fixes wrong enum values
11027
11028 2004-12-01  Jackson Harper  <jackson@ximian.com>
11029
11030         * TreeView.cs: Resize the hbar as well as the vbar on resize.
11031
11032 2004-12-01  Jackson Harper  <jackson@ximian.com>
11033
11034         * NodeLabelEditEventArgs.cs:
11035         * NodeLabelEditEventHandler.cs:
11036         * OpenTreeNodeEnumerator.cs:
11037         * TreeNode.cs:
11038         * TreeNodeCollection.cs:
11039         * TreeView.cs:
11040         * TreeViewAction.cs:
11041         * TreeViewCancelEventArgs.cs:
11042         * TreeViewCancelEventHandler.cs:
11043         * TreeViewEventArgs.cs:
11044         * TreeViewEventHandler.cs: Initial implementation.
11045
11046 2004-12-01  Ravindra <rkumar@novell.com>
11047
11048         * ListView.cs (CalculateListView): Fixed scrolling related
11049         calculations. Also, removed some debug statements from other
11050         places.
11051         * ListViewItem.cs: Changed access to 'selected' instance variable
11052         from private to internal.
11053         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
11054
11055 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
11056
11057         * ThemeWin32Classic.cs: remove cache of brush and pens for
11058         specific controls and use the global system, fixes scrollbutton
11059         bugs (for small sizes, disabled, etc)
11060         
11061         * ScrollBar.cs: does not show the thumb for very small controls
11062         (as MS) and allow smaller buttons that the regular size
11063
11064 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
11065
11066         * UpDownBase.cs: Add abstract methods for the interface.
11067         Add new virtual methods (need to be hooked up to TextEntry when it
11068         exists).
11069         Add override methods for most features.
11070         Computes the size, forces the height of the text entry.
11071
11072         * NumericUpDown.cs: Put here the current testing code.
11073
11074         * Set eol-style property on all files that do not have mixed line
11075         endings, to minimize the future problems.  There are still a few
11076         files with mixed endings, and someone should choose whether they
11077         want to move it or not.
11078
11079 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
11080
11081         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
11082         System.Colors
11083         
11084 2004-11-30  Ravindra <rkumar@novell.com>
11085
11086         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
11087         drawing and replaced use of SystemColors by theme colors.
11088         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
11089         * ListView.cs (ListViewItemCollection.Add): Throw exception when
11090         same ListViewItem is being added more than once.
11091
11092 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
11093
11094         * MonthCalendar.cs:
11095           - ControlStyles love to make the control not flicker
11096           
11097 2004-11-30  Peter Bartok  <pbartok@novell.com>
11098
11099         * CharacterCasing.cs: Added
11100
11101 2004-11-29  Peter Bartok  <pbartok@novell.com>
11102
11103         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
11104           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
11105           I am removing these files as they conflict with already completed
11106           work. While it is fantastic to get contributions to MWF, I
11107           respectfully ask that everyone please coordinate their contributions
11108           through mono-winforms-list or #mono-winforms at this time. We're
11109           explicitly avoiding stubbing and don't want controls that don't have
11110           their basic functionality implemented in svn. Please also see
11111           http://www.mono-project.com/contributing/winforms.html
11112
11113
11114 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
11115
11116         * Application.cs (ModalRun): Don't hang after exit.
11117
11118         * Theme.cs: New TreeViewDefaultSize property.
11119
11120         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
11121         with less hardcoded SystemColors constant.
11122         Implemented TreeViewDefaultSize.
11123
11124         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
11125         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
11126
11127
11128 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
11129
11130         * MonthCalendar.cs:
11131           - Fix NextMonthDate and PrevMonthDate click moving calendar
11132
11133 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
11134
11135         * MonthCalendar.cs:
11136           - Fix usage of ScrollChange Property when scrolling months
11137
11138 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
11139
11140         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
11141          - Fixes menu destroying
11142          - Support adding and removing items on already created menus
11143
11144 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
11145
11146         * MonthCalendar.cs:
11147           - Re-worked all bolded dates handling to match win32
11148         * ThemeWin32Classic.cs:
11149           - Fixed rendering with bolded dates
11150
11151 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
11152
11153         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
11154         - Horizontal scroolbar
11155         - Multicolumn
11156         - Fixes
11157
11158
11159 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
11160
11161         * MonthCalendar.cs:
11162           - Fix Usage of MaxSelectionCount from SelectionRange
11163           - Fixed Shift + Cursor Selection
11164           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
11165           - Fixed normal cursor selection to be compat with win32
11166           - Fixed Shift + Mouse Click selection
11167
11168 2004-11-24  Peter Bartok <pbartok@novell.com>
11169
11170         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
11171         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
11172         * XplatUIX11.cs:
11173           - CreatedKeyBoardMsg now updates keystate with Alt key
11174           - Added workaround for timer crash to CheckTimers, Jackson will
11175             develop a proper fix and check in later
11176           - Implemented DispatchMessage
11177           - Removed calling the native window proc from GetMessage (call
11178             now moved to DispatchMessage)
11179
11180         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
11181           the keydata (Fixes bug #69831)
11182
11183         * XplatUIWin32.cs:
11184           - (DispatchMessage): Switched to return IntPtr
11185           - Added DllImport for SetFocus
11186
11187 2004-11-24  Ravindra <rkumar@novell.com>
11188
11189         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
11190         background drawing.
11191         * ListViewItem.cs: Fixed various properties, calculations
11192         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
11193         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
11194         and some internal properties. Fixed MouseDown handler and Paint
11195         method.
11196
11197 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
11198
11199         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
11200
11201 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
11202
11203         * ContainerControl.cs: correct accidental check in of local changes
11204
11205 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
11206
11207         * ThemeWin32Classic.cs:
11208                 - Fixed Drawing Last month in grid (sometimes not showing)
11209         * MonthCalendar.cs:
11210                 - Fixed title width calculation bug (makeing title small)
11211
11212 2004-11-23  Peter Bartok <pbartok@novell.com>
11213
11214         * XplatUIX11.cs:
11215           - Added generation of WM_MOUSEHOVER event
11216           - Added missing assignment of async_method atom
11217           - Fixed WM_ERASEBKGND; now only redraws the exposed area
11218
11219 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
11220
11221         * ThemeWin32Classic.cs:
11222                 - Fixed Drawing of today circle when showtodaycircle not set
11223                 - fixed drawing of first and last month in the grid (gay dates)
11224         * MonthCalendar.cs:
11225                 - Fixed Drawing of today circle
11226                 - Fixed drawing of grady dates
11227                 - Fixed HitTest for today link when ShowToday set to false
11228                 - Fixed DefaultSize to obey ShowToday
11229
11230 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
11231
11232         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
11233         * System.Windows.Forms/Theme.cs
11234         * MonthCalendar.cs: added for MonthCalendar
11235         * SelectionRange.cs: added for MonthCalendar
11236         * Day.cs: added for MonthCalendar: added for MonthCalendar
11237         * DateRangeEventArgs.cs: added for MonthCalendar
11238         * DateRangeEventHandler.cs: added for MonthCalendar
11239
11240 2004-11-22  Ravindra <rkumar@novell.com>
11241
11242         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
11243         property.
11244
11245 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
11246
11247         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
11248         event handler.
11249         
11250         * NumericUpDown.cs: Added new implementation.
11251         * UpDownBase.cs: Added new implementation.
11252
11253         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
11254         implementations.
11255         
11256         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
11257         implementations.
11258
11259         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
11260         methods.
11261
11262 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
11263
11264         * Timer.cs  (Dispose): Should call the base dispose when
11265         overriding.
11266
11267 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
11268
11269         * ScrollBar.cs: updates thumb position when max, min or increment
11270         is changed
11271
11272 2004-11-21  Ravindra <rkumar@novell.com>
11273
11274         * ListView.cs: Implemented item selection, activation and
11275         column header style. Fixed properties to do a redraw, if
11276         required. Added support for MouseHover, DoubleClick, KeyDown
11277         and KeyUp event handling and some minor fixes.
11278         * ListViewItem.cs: Fixed constructor.
11279         * ThemeWin32Classic.cs: Improved drawing for ListView.
11280
11281 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
11282
11283         * ThemeWin32Classic.cs: initial listbox drawing code
11284         * DrawMode.cs: new enumerator
11285         * ListControl.cs: stubbed class
11286         * ListBox.cs: initial implementation
11287         * Theme.cs: new methods definitions
11288         * SelectionMode.cs: new enumerator
11289
11290 2004-11-17  Peter Bartok  <pbartok@novell.com>
11291
11292         * XplatUIWin32.cs: Added double-click events to the class style
11293         * Control.cs (WndProc):
11294           - Added handling of click-count to MouseDown/ MouseUp events.
11295           - Added handling of middle and right mouse buttons
11296           - Removed old debug code
11297
11298 2004-11-17  Jackson Harper  <jackson@ximian.com>
11299
11300         * XplatUIX11.cs: Use the new Mono.Unix namespace.
11301
11302 2004-11-17  Ravindra <rkumar@novell.com>
11303
11304         * ListView.cs: Added event handling for MouseMove/Up/Down.
11305         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
11306         * ThemeWin32Classic.cs: We need to clear the graphics context and
11307         draw column header in a proper state.
11308
11309
11310 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
11311
11312         *  Menu.cs: fixes signature
11313
11314 2004-11-16  Peter Bartok  <pbartok@novell.com>
11315
11316         * XplatUIX11.cs (GetMessage): Implemented generation of
11317           double click mouse messages
11318
11319 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
11320
11321         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
11322         not by menu
11323
11324 2004-11-11  Peter Bartok  <pbartok@novell.com>
11325
11326         * HandleData.cs: Added Visible property
11327         * XplatUIX11.cs (IsVisible): Now uses Visible property from
11328           HandleData
11329         * XplatUIX11.cs: Removed old debug leftovers
11330         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
11331         * Control.cs (WndProc): Removed old debug leftovers,
11332           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
11333           needed WM_SIZE handling
11334
11335 2004-11-11  Jackson Harper  <jackson@ximian.com>
11336
11337         * OwnerDrawPropertyBag.cs:
11338         * TreeViewImageIndexConverter.cs: Initial implementation
11339
11340 2004-11-10  Jackson Harper  <jackson@ximian.com>
11341
11342         * ThemeWin32Classic.cs:
11343         * TabControl.cs: instead of moving tabs by the slider pos just
11344         start drawing at the tab that is offset by the slider. This way
11345         scrolling always moves by exactly one tab.
11346
11347 2004-11-10  Jackson Harper  <jackson@ximian.com>
11348
11349         * TabControl.cs: You can only scroll left when the slider has
11350         already ben moved right.
11351         
11352 2004-11-10  Jackson Harper  <jackson@ximian.com>
11353
11354         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
11355         the clip area.
11356         
11357 2004-11-10  Jackson Harper  <jackson@ximian.com>
11358
11359         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
11360         clip area.
11361         
11362 2004-11-09  Jackson Harper  <jackson@ximian.com>
11363
11364         * TabControl.cs (CalcXPos): New helper method so we can determine
11365         the proper place to start drawing vertical tabs.
11366         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
11367         
11368 2004-11-09  Jackson Harper  <jackson@ximian.com>
11369
11370         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
11371         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
11372         and Bottom, left and right are illegal values for this and
11373         multiline is enabled when the alignment is set to left or right.
11374         (DrawTab): Each alignment block should draw the text itself now
11375         because Left requires special love. Also add rendering for Left
11376         aligned tabs.
11377         
11378 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
11379
11380         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
11381         does not destroy the windows, removes debugging messages
11382
11383 2004-11-09  jba  <jba-mono@optusnet.com.au>
11384
11385         * ThemeWin32Classic.cs
11386         (DrawButtonBase): Fix verticle text rect clipping in windows
11387         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
11388         rendering and incorrect text rect clipping
11389         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
11390         rendering and incorrect text rect clipping
11391         
11392 2004-11-08  Jackson Harper  <jackson@ximian.com>
11393
11394         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
11395         bottom when they are bottom aligned so the bottoms of the tabs get
11396         displayed.
11397         * TabControl.cs (DropRow): Move rows up instead of down when the
11398         tab control is bottom aligned.
11399
11400 2004-11-08 13:59  pbartok
11401
11402         * XplatUIX11.cs:
11403           - Added handling for various window styles
11404           - Added handling for popup windows
11405           - Added SetTopmost handling
11406
11407 2004-11-08 13:55  pbartok
11408
11409         * XplatUIWin32.cs:
11410           - Added argument to SetTopmost method
11411           - Fixed broken ClientToScreen function
11412
11413 2004-11-08 13:53  pbartok
11414
11415         * XplatUIStructs.cs:
11416           - Added missing WS_EX styles
11417
11418 2004-11-08 13:53  pbartok
11419
11420         * XplatUI.cs, XplatUIDriver.cs:
11421           - Added argument to SetTopmost
11422
11423 2004-11-08 13:52  pbartok
11424
11425         * X11Structs.cs:
11426           - Added XSetWindowAttributes structure
11427           - Improved XWindowAttributes structure
11428           - Added SetWindowValuemask enum
11429           - Added window creation arguments enum
11430           - Added gravity enum
11431           - Added Motif hints structure
11432           - Added various Motif flags and enums
11433           - Added PropertyMode enum for property functions
11434
11435 2004-11-08 13:50  pbartok
11436
11437         * Form.cs:
11438           - Fixed arguments for updated SetTopmost method
11439
11440 2004-11-08 13:49  pbartok
11441
11442         * ToolTip.cs:
11443           - Fixed arguments for updated SetTopmost function
11444           - Fixed usage of PointToClient
11445
11446 2004-11-08 13:44  pbartok
11447
11448         * MenuAPI.cs:
11449           - Added Clipping of children and siblings
11450
11451 2004-11-08 13:41  pbartok
11452
11453         * MainMenu.cs:
11454           - Removed SetMenuBarWindow call. We do this in Form.cs
11455
11456 2004-11-08 13:40  jackson
11457
11458         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
11459           scrolling jimmi in the correct location with bottom aligned tabs
11460
11461 2004-11-08 13:36  pbartok
11462
11463         * ContainerControl.cs:
11464           - Implemented BindingContext
11465           - Implemented ParentForm
11466
11467 2004-11-08 12:46  jackson
11468
11469         * TabControl.cs: Put bottom rendered tabs in the right location
11470
11471 2004-11-08 07:15  jordi
11472
11473         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
11474           removes dead code
11475
11476 2004-11-05 17:30  jackson
11477
11478         * TabControl.cs: When selected tabs are expanded make sure they
11479           don't go beyond the edges of the tab control
11480
11481 2004-11-05 14:57  jackson
11482
11483         * TabControl.cs: Reset show_slider so if the control is resized to
11484           a size where it is no longer needed it's not displayed anymore
11485
11486 2004-11-05 13:16  jackson
11487
11488         * TabControl.cs: Make tab pages non visible when added to the
11489           control
11490
11491 2004-11-05 12:42  jackson
11492
11493         * TabControl.cs: Implement SizeMode.FillToRight
11494
11495 2004-11-05 12:16  jackson
11496
11497         * Control.cs: Do not call CreateHandle if the handle is already
11498           created
11499
11500 2004-11-05 11:46  jackson
11501
11502         * TabControl.cs: Remove superflous call to CalcTabRows
11503
11504 2004-11-05 09:07  jackson
11505
11506         * XplatUIX11.cs: Update for Mono.Posix changes
11507
11508 2004-11-05 07:00  ravindra
11509
11510         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
11511           scrolling.
11512
11513 2004-11-04 22:47  jba
11514
11515         * ThemeWin32Classic.cs:
11516           - Fix Button rendering for FlatStyle = Flat or Popup
11517           - Fix RadioButton and CheckBox rendering when Appearance = Button
11518             (normal and flatstyle).
11519           - Correct outer rectangle color when drawing focus rectangle
11520           - Adjust button bounds to be 1 px smaller when focused
11521           - Make button not draw sunken 3d border when pushed (windows compat)
11522           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
11523           - Offset the text in RadioButton and Checkbox when being rendered as
11524           a button.
11525           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
11526           radiobuttons
11527           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
11528           - Fixed disabled text rendering for normally rendered radiobuttons
11529
11530 2004-11-04 10:26  jackson
11531
11532         * TabControl.cs: Recalculate tab rows when resizing
11533
11534 2004-11-04 07:47  jordi
11535
11536         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
11537           collection completion, drawing issues, missing features
11538
11539 2004-11-04 05:03  ravindra
11540
11541         * ScrollBar.cs:
11542                 - We need to recalculate the Thumb area when
11543                 LargeChange/maximum/minimum values are changed.
11544           - We set the 'pos' in UpdatePos() method to minimum, if it's less
11545                 than minimum. This is required to handle the case if large_change is
11546                 more than max, and use LargeChange property instead of large_change
11547                 variable.
11548           - We return max+1 when large_change is more than max, like MS does.
11549
11550 2004-11-04 04:29  ravindra
11551
11552         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
11553                 - Changed default value signatures (prefixed all with ListView).
11554                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
11555                 ListView.
11556           - Fixed calculations for ListViewItem and implemented Clone()
11557           method.
11558
11559 2004-11-04 04:26  ravindra
11560
11561         * Theme.cs, ThemeWin32Classic.cs:
11562                 - Changed default ListView values signatures (prefixed all with
11563                 ListView).
11564           - Fixed default size values for VScrollBar and HScrollBar.
11565                 - Fixed DrawListViewItem method.
11566
11567 2004-11-04 04:05  ravindra
11568
11569         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
11570
11571 2004-11-04 04:04  ravindra
11572
11573         * ImageList.cs: Implemented the missing overload for Draw method.
11574
11575 2004-11-03 19:29  jackson
11576
11577         * TabControl.cs: Handle dropping rows on selection properly
11578
11579 2004-11-03 11:59  jackson
11580
11581         * TabControl.cs: remove debug code
11582
11583 2004-11-03 11:52  jackson
11584
11585         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
11586           the scrolly widgerywoo
11587
11588 2004-11-02 13:52  jackson
11589
11590         * TabControl.cs: Resize the tab pages and tabs when the tab control
11591           is resized
11592
11593 2004-11-02 13:40  jackson
11594
11595         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
11596           selected tab to the bottom
11597
11598 2004-11-02 13:39  jackson
11599
11600         * TabPage.cs: Store the tab pages row
11601
11602 2004-11-02 12:33  jordi
11603
11604         * MenuItem.cs: fixes handle creation
11605
11606 2004-11-02 11:42  jackson
11607
11608         * TabControl.cs: signature fix
11609
11610 2004-11-02 08:56  jackson
11611
11612         * TabControl.cs: Calculate whether the tab is on an edge properly.
11613           Remove top secret debugging code
11614
11615 2004-11-01 19:57  jackson
11616
11617         * TabControl.cs: Add click handling, and proper sizing
11618
11619 2004-11-01 19:47  jackson
11620
11621         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
11622           tab controls
11623
11624 2004-11-01 19:39  jackson
11625
11626         * TabPage.cs: add internal property to store the bounds of a tab
11627           page
11628
11629 2004-10-30 04:23  ravindra
11630
11631         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
11632           values.
11633
11634 2004-10-30 04:21  ravindra
11635
11636         * ListView.cs, ListViewItem.cs: Added support for scrolling and
11637           fixed calculations.
11638
11639 2004-10-30 03:06  pbartok
11640
11641         * XplatUIX11.cs:
11642           - Removed extension of DllImported libs
11643
11644 2004-10-29 09:55  jordi
11645
11646         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
11647           navigation, itemcollection completion, menu fixes
11648
11649 2004-10-27 22:58  pbartok
11650
11651         * XplatUIX11.cs:
11652           - Now throws a nice error message when no X display could be opened
11653
11654 2004-10-26 13:51  jordi
11655
11656         * ListView.cs: removes warning
11657
11658 2004-10-26 03:55  ravindra
11659
11660         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
11661           ThemeWin32Classic.cs: Some formatting for my last checkins.
11662
11663 2004-10-26 03:36  ravindra
11664
11665         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
11666           control and default values.
11667
11668 2004-10-26 03:35  ravindra
11669
11670         * Theme.cs: Added some default values for ListView control.
11671
11672 2004-10-26 03:33  ravindra
11673
11674         * ToolBar.cs: ToolBar should use the user specified button size, if
11675           there is any. Added a size_specified flag for the same.
11676
11677 2004-10-26 03:33  ravindra
11678
11679         * ColumnHeader.cs: Added some internal members and calculations for
11680           ColumnHeader.
11681
11682 2004-10-26 03:32  ravindra
11683
11684         * ListViewItem.cs: Calculations for ListViewItem.
11685
11686 2004-10-26 03:31  ravindra
11687
11688         * ListView.cs: Added some internal members and calculations for
11689           ListView.
11690
11691 2004-10-22 13:31  jordi
11692
11693         * MenuAPI.cs: speedup menus drawing
11694
11695 2004-10-22 13:16  jackson
11696
11697         * XplatUIX11.cs: Make sure to update exposed regions when adding an
11698           expose event
11699
11700 2004-10-22 11:49  jackson
11701
11702         * Control.cs: oops
11703
11704 2004-10-22 11:41  jackson
11705
11706         * Control.cs: Check to see if the window should have its background
11707           repainted by X when drawing.
11708
11709 2004-10-22 11:31  jackson
11710
11711         * XplatUIX11.cs: When invalidating areas only use XClearArea if
11712           clear is true, this way we do not get flicker from X repainting the
11713           background
11714
11715 2004-10-22 11:28  jackson
11716
11717         * XEventQueue.cs: Queue properly
11718
11719 2004-10-21 09:38  jackson
11720
11721         * XEventQueue.cs: Fix access modifier
11722
11723 2004-10-21 09:36  jackson
11724
11725         * XEventQueue.cs: Don't loose messages
11726
11727 2004-10-21 09:22  jackson
11728
11729         * XEventQueue.cs: Don't loose messages
11730
11731 2004-10-20 04:15  jordi
11732
11733         * BootMode.cs: enum need it by SystemInfo
11734
11735 2004-10-19 21:58  pbartok
11736
11737         * XplatUIWin32.cs:
11738           - Small sanity check
11739
11740 2004-10-19 21:56  pbartok
11741
11742         * Form.cs:
11743           - Added private FormParentWindow class which acts as the container
11744             for our form and as the non-client area where menus are drawn
11745           - Added/Moved required tie-ins to Jordi's menus
11746           - Fixed/Implemented the FormStartPosition functionality
11747
11748 2004-10-19 21:52  pbartok
11749
11750         * Control.cs:
11751           - Removed unneeded locals
11752           - Added code to all size and location properties to understand and
11753             deal with the parent container of Form
11754
11755 2004-10-19 21:33  pbartok
11756
11757         * Application.cs:
11758           - Fixed to deal with new Form subclasses for menus
11759
11760 2004-10-19 17:48  jackson
11761
11762         * XEventQueue.cs: commit correct version of file
11763
11764 2004-10-19 16:50  jackson
11765
11766         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
11767
11768 2004-10-19 16:15  jordi
11769
11770         * MenuAPI.cs: MenuBarCalcSize returns the height
11771
11772 2004-10-19 08:31  pbartok
11773
11774         * Control.cs:
11775           - Added missing call to PreProcessMessage before calling OnXXXKey
11776           methods
11777
11778 2004-10-19 00:04  ravindra
11779
11780         * ToolTip.cs: Fixed constructor.
11781
11782 2004-10-18 09:31  jordi
11783
11784         * MenuAPI.cs: menuitems in menubars do not have shortcuts
11785
11786 2004-10-18 09:26  jordi
11787
11788         * MenuItem.cs: fixes MenuItem class signature
11789
11790 2004-10-18 08:56  jordi
11791
11792         * MenuAPI.cs: prevents windows from showing in the taskbar
11793
11794 2004-10-18 00:28  ravindra
11795
11796         * ToolTip.cs: Suppressed a warning message.
11797
11798 2004-10-18 00:27  ravindra
11799
11800         * Control.cs: Default value of visible property must be true.
11801
11802 2004-10-17 23:19  pbartok
11803
11804         * ToolTip.cs:
11805           - Complete implementation
11806
11807 2004-10-17 23:19  pbartok
11808
11809         * XplatUIX11.cs:
11810           - Added EnableWindow method
11811           - Added SetModal stub
11812           - Added generation of WM_ACTIVATE message (still needs testing)
11813           - Added SetTopMost stub
11814           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
11815
11816 2004-10-17 23:17  pbartok
11817
11818         * XplatUIWin32.cs:
11819           - Removed VirtualKeys to XplatUIStructs
11820           - Implemented SetTopMost method
11821           - Implemented EnableWindow method
11822           - Bugfix in ScreenToClient()
11823           - Bugfixes in ClientToScreen()
11824
11825 2004-10-17 22:51  pbartok
11826
11827         * XplatUIStructs.cs:
11828           - Added WS_EX styles to WindowStyles enumeration
11829
11830 2004-10-17 22:50  pbartok
11831
11832         * XplatUI.cs, XplatUIDriver.cs:
11833           - Added method for enabling/disabling windows
11834           - Added method for setting window modality
11835           - Added method for setting topmost window
11836
11837 2004-10-17 22:49  pbartok
11838
11839         * ThemeWin32Classic.cs:
11840           - Added ToolTip drawing code
11841
11842 2004-10-17 22:49  pbartok
11843
11844         * Theme.cs:
11845           - Added ToolTip abstracts
11846
11847 2004-10-17 22:47  pbartok
11848
11849         * Form.cs:
11850           - Fixed Form.ControlCollection to handle owner relations
11851           - Added Owner/OwnedForms handling
11852           - Implemented Z-Ordering for owned forms
11853           - Removed unneeded private overload of ShowDialog
11854           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
11855             so I hope)
11856           - Fixed Close(), had wrong default
11857           - Added firing of OnLoad event
11858           - Added some commented out debug code for Ownership handling
11859
11860 2004-10-17 22:16  pbartok
11861
11862         * Control.cs:
11863           - Fixed/implemented flat list of controls
11864
11865 2004-10-17 22:14  pbartok
11866
11867         * Application.cs:
11868           - Added code to simulate modal dialogs on Win32
11869
11870 2004-10-17 16:11  jordi
11871
11872         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
11873           mouse event
11874
11875 2004-10-17 13:39  jordi
11876
11877         * MenuAPI.cs: menu drawing fixes
11878
11879 2004-10-15 09:10  ravindra
11880
11881         * StructFormat.cs: General Enum.
11882
11883 2004-10-15 09:09  ravindra
11884
11885         * SizeGripStyle.cs: Enum for Form.
11886
11887 2004-10-15 09:08  ravindra
11888
11889         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
11890           in Theme for ListView.
11891
11892 2004-10-15 09:06  ravindra
11893
11894         * ColumnHeader.cs: Flushing some formatting changes.
11895
11896 2004-10-15 09:05  ravindra
11897
11898         * ListViewItem.cs: Implemented GetBounds method and fixed coding
11899           style.
11900
11901 2004-10-15 09:03  ravindra
11902
11903         * ListView.cs: Implemented Paint method and fixed coding style.
11904
11905 2004-10-15 07:34  jordi
11906
11907         * MenuAPI.cs: fix for X11
11908
11909 2004-10-15 07:32  ravindra
11910
11911         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
11912                 - Renamed Paint() method to Draw() for clarity. Also, moved
11913                 DrawImage() to OnPaint().
11914
11915 2004-10-15 07:25  ravindra
11916
11917         * CheckBox.cs, RadioButton.cs:
11918                 - Removed Redraw (), we get it from ButtonBase.
11919                 - Implemented Paint (), to do class specific painting.
11920
11921 2004-10-15 07:16  ravindra
11922
11923         * ButtonBase.cs:
11924                 - Redraw () is not virtual now.
11925                 - Added an internal virtual method Paint (), so that
11926                 derived classes can do their painting on their own.
11927                 - Modified OnPaint () to call Paint ().
11928
11929 2004-10-15 06:43  jordi
11930
11931         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
11932           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
11933
11934 2004-10-15 00:30  ravindra
11935
11936         * MessageBox.cs:
11937                 - MessageBox on windows does not have min/max buttons.
11938                 This change in CreateParams fixes this on Windows. We
11939                 still need to implement this windowstyle behavior in
11940                 our X11 driver.
11941
11942 2004-10-14 05:14  ravindra
11943
11944         * ToolBar.cs:
11945                 - Changed Redraw () to do a Refresh () always.
11946                 - Fixed the MouseMove event handling when mouse is pressed,
11947                 ie drag event handling.
11948                 - Replaced the usage of ToolBarButton.Pressed property to
11949                 ToolBarButton.pressed internal variable.
11950
11951 2004-10-14 05:10  ravindra
11952
11953         * ToolBarButton.cs:
11954                 - Added an internal member 'inside' to handle mouse move
11955                 with mouse pressed ie mouse drag event.
11956                 - Changed 'Pressed' property to return true only when
11957                 'inside' and 'pressed' are both true.
11958                 - Some coding style love.
11959
11960 2004-10-14 00:17  ravindra
11961
11962         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
11963           public method.
11964
11965 2004-10-14 00:15  ravindra
11966
11967         * ButtonBase.cs: Redraw () related improvements.
11968
11969 2004-10-14 00:14  ravindra
11970
11971         * MessageBox.cs: Moved InitFormSize () out of Paint method and
11972           removed unnecessary calls to Button.Show () method.
11973
11974 2004-10-13 17:50  pbartok
11975
11976         * XplatUIX11.cs:
11977           - Formatting fix
11978           - Removed destroying of window until we solve the problem of X
11979             destroying the window before us on shutdown
11980
11981 2004-10-13 16:32  pbartok
11982
11983         * ButtonBase.cs:
11984           - Now Redraws on MouseUp for FlatStyle Flat and Popup
11985
11986 2004-10-13 14:18  pbartok
11987
11988         * XplatUIX11.cs:
11989           - Added code to destroy the X window
11990
11991 2004-10-13 14:18  pbartok
11992
11993         * XplatUIWin32.cs:
11994           - Added code to destroy a window
11995
11996 2004-10-13 14:12  pbartok
11997
11998         * ButtonBase.cs:
11999           - Added the Redraw on Resize that got dropped in the last rev
12000
12001 2004-10-13 09:06  pbartok
12002
12003         * ThemeWin32Classic.cs:
12004           - Path from John BouAntoun:
12005             * Fix check rendering (centre correctly for normal style, offset
12006               correctly for FlatStyle).
12007             * Fix border color usage (use backcolor) for FlatStyle.Popup
12008             * Use checkbox.Capture instead of checkbox.is_pressed when
12009               rendering flatstyle states.
12010
12011 2004-10-12 21:48  pbartok
12012
12013         * ThemeWin32Classic.cs:
12014           - Removed all occurences of SystemColors and replaced them with the
12015             matching theme color
12016
12017 2004-10-12 21:41  pbartok
12018
12019         * ThemeWin32Classic.cs:
12020           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
12021             him using the function for flatstyle drawing
12022           - Changed functions to use the new version of CPDrawBorder3D
12023
12024 2004-10-12 21:15  pbartok
12025
12026         * ControlPaint.cs:
12027           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
12028             match MS documentation. They need to return defined colors if the
12029             passed color matches the configured control color. Thanks to John
12030             BouAntoun for pointing this out.
12031
12032 2004-10-12 20:57  pbartok
12033
12034         * Control.cs:
12035           - Fix from John BouAntoun: Raise ForeColorChanged event when text
12036             color is changed
12037
12038 2004-10-12 20:46  pbartok
12039
12040         * CheckBox.cs:
12041           - Fix from John BouAntoun: Now properly sets the Appearance property
12042
12043 2004-10-12 20:45  pbartok
12044
12045         * ThemeWin32Classic.cs:
12046           - Fixes from John BouAntoun: now handles forecolors and backcolors
12047             for flatstyle rendered controls much better; It also fixes normal
12048             checkbox rendering when pushed or disabled.
12049
12050 2004-10-08 02:50  jordi
12051
12052         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
12053           work
12054
12055 2004-10-07 08:56  jordi
12056
12057         * ThemeWin32Classic.cs: Removes deletion of cached brushes
12058
12059 2004-10-06 03:59  jordi
12060
12061         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
12062           XplatUIWin32.cs: removes warnings from compilation
12063
12064 2004-10-05 12:23  jackson
12065
12066         * RadioButton.cs: Fix ctor
12067
12068 2004-10-05 11:10  pbartok
12069
12070         * MessageBox.cs:
12071           - Partial implementation by Benjamin Dasnois
12072
12073 2004-10-05 10:15  jackson
12074
12075         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
12076           by John BouAntoun
12077
12078 2004-10-05 03:07  ravindra
12079
12080         * ToolBar.cs:
12081                 - Removed a private method, Draw ().
12082                 - Fixed the ButtonDropDown event handling.
12083                 - Fixed MouseMove event handling.
12084
12085 2004-10-05 03:04  ravindra
12086
12087         * ThemeWin32Classic.cs:
12088                 - Added DrawListView method and ListViewDefaultSize property.
12089                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
12090                 - Changed DOS style CRLF to Unix format (dos2unix).
12091
12092 2004-10-05 03:03  ravindra
12093
12094         * Theme.cs:
12095                 - Added DrawListView method and ListViewDefaultSize property.
12096
12097 2004-10-05 02:42  ravindra
12098
12099         * ToolBarButton.cs: Added an internal member dd_pressed to handle
12100           clicks on DropDown arrow.
12101
12102 2004-10-04 22:56  jackson
12103
12104         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
12105           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
12106           Control handle the buffers, derived classes should not have to
12107           CreateBuffers themselves.
12108
12109 2004-10-04 21:20  jackson
12110
12111         * StatusBar.cs: The control handles resizing the buffers now.
12112
12113 2004-10-04 21:18  jackson
12114
12115         * Control.cs: When resizing the buffers should be invalidated. This
12116           should be handled in Control not in derived classes.
12117
12118 2004-10-04 14:45  jackson
12119
12120         * TabPage.cs: oops
12121
12122 2004-10-04 02:14  pbartok
12123
12124         * LeftRightAlignment.cs:
12125           - Initial check-in
12126
12127 2004-10-04 01:09  jordi
12128
12129         * ThemeWin32Classic.cs: fixes right button position causing right
12130           button not showing on horizontal scrollbars
12131
12132 2004-10-02 13:12  pbartok
12133
12134         * XplatUIX11.cs:
12135           - Simplified the Invalidate method by using an X call instead of
12136             generating the expose ourselves
12137           - Added an expose when the window background is changed
12138           - Implemented ClientToScreen method
12139
12140 2004-10-02 13:08  pbartok
12141
12142         * XplatUIWin32.cs:
12143           - Added Win32EnableWindow method (test for implementing modal
12144           dialogs)
12145           - Added ClientToScreen method and imports
12146
12147 2004-10-02 13:07  pbartok
12148
12149         * XplatUI.cs, XplatUIDriver.cs:
12150           - Added ClientToScreen coordinate translation method
12151
12152 2004-10-02 13:06  pbartok
12153
12154         * KeyPressEventArgs.cs:
12155           - Fixed access level for constructor
12156
12157 2004-10-02 13:06  pbartok
12158
12159         * NativeWindow.cs:
12160           - Changed access level for the window_collection hash table
12161
12162 2004-10-02 13:05  pbartok
12163
12164         * Form.cs:
12165           - Added KeyPreview property
12166           - Added Menu property (still incomplete, pending Jordi's menu work)
12167           - Implemented ProcessCmdKey
12168           - Implemented ProcessDialogKey
12169           - Implemented ProcessKeyPreview
12170
12171 2004-10-02 13:02  pbartok
12172
12173         * Control.cs:
12174           - Added private method to get the Control object from the window
12175           handle
12176           - Implemented ContextMenu property
12177           - Implemented PointToScreen
12178           - Implemented PreProcessMessage
12179           - Implemented IsInputChar
12180           - Implemented IsInputKey
12181           - Implemented ProcessCmdKey
12182           - Completed ProcessKeyEventArgs
12183           - Fixed message loop to call the proper chain of functions on key
12184           events
12185           - Implemented ProcessDialogChar
12186           - Implemented ProcessDialogKey
12187           - Implemented ProcessKeyMessage
12188           - Implemented ProcessKeyPreview
12189           - Added RaiseDragEvent stub (MS internal method)
12190           - Added RaiseKeyEvent stub (MS internal method)
12191           - Added RaiseMouseEvent stub (MS Internal method)
12192           - Added RaisePaintEvent stub (MS Internal method)
12193           - Added ResetMouseEventArgs stub (MS Internal method)
12194           - Implemented RtlTranslateAlignment
12195           - Implemented RtlTranslateContent
12196           - Implemented RtlTranslateHorizontal
12197           - Implemented RtlTranslateLeftRight
12198           - Added generation of KeyPress event
12199
12200 2004-10-02 05:57  ravindra
12201
12202         * ListViewItem.cs: Added attributes.
12203
12204 2004-10-02 05:32  ravindra
12205
12206         * ListView.cs: Added attributes.
12207
12208 2004-10-01 11:53  jackson
12209
12210         * Form.cs: Implement the Close method so work on MessageBox can
12211           continue.
12212
12213 2004-09-30 14:06  pbartok
12214
12215         * XplatUIX11.cs:
12216           - Bug fixes
12217
12218 2004-09-30 11:34  jackson
12219
12220         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
12221
12222 2004-09-30 07:26  ravindra
12223
12224         * ListViewItemConverter.cs: Converter for ListViewItem.
12225
12226 2004-09-30 07:26  ravindra
12227
12228         * SortOrder.cs: Enum for ListView control.
12229
12230 2004-09-30 07:25  ravindra
12231
12232         * ColumnHeader.cs: Supporting class for ListView control.
12233
12234 2004-09-30 07:24  ravindra
12235
12236         * ListView.cs, ListViewItem.cs: Initial implementation.
12237
12238 2004-09-30 07:20  ravindra
12239
12240         * ItemActivation.cs: Enum for ListView Control.
12241
12242 2004-09-29 20:29  pbartok
12243
12244         * XplatUIX11.cs:
12245           - Added lookup of pixel value for background color; tries to get a
12246             color 'close' to the requested color, it avoids having to create a
12247             colormap.  Depending on the display this could mean the used color
12248             is slightly off the desired color. Might have to change it to a more
12249             resource intensive colormap approach, but it will work as a
12250           workaround to avoid red screens.
12251
12252 2004-09-29 14:27  jackson
12253
12254         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
12255
12256 2004-09-28 12:44  pbartok
12257
12258         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
12259           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
12260           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
12261           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
12262           TrackBar.cs, VScrollBar.cs:
12263           - Streamlined Theme interfaces:
12264             * Each DrawXXX method for a control now is passed the object for
12265               the control to be drawn in order to allow accessing any state the
12266               theme might require
12267
12268             * ControlPaint methods for the theme now have a CP prefix to avoid
12269               name clashes with the Draw methods for controls
12270
12271             * Every control now retrieves it's DefaultSize from the current
12272             theme
12273
12274 2004-09-28 12:17  jackson
12275
12276         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
12277           drawing
12278
12279 2004-09-24 14:57  jackson
12280
12281         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
12282           Gives us a nice little performance boost.
12283
12284 2004-09-24 12:02  jackson
12285
12286         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
12287           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
12288           Control and supporting classes. Initial checkin
12289
12290 2004-09-23 13:08  jackson
12291
12292         * Form.cs: Temp build fixage
12293
12294 2004-09-23 01:39  ravindra
12295
12296         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
12297           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
12298           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
12299           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
12300           EventHandlers needed by ListView Control.
12301
12302 2004-09-22 14:12  pbartok
12303
12304         * ScrollableControl.cs:
12305           - Implemented DockPadding property
12306           - Implemented AutoScroll property
12307           - Implemented AutoScrollMargin property
12308           - Implemented AutoScrollMinSize property
12309           - Implemented AutoScrollPosition property
12310           - Implemented DisplayRectangle property (still incomplete)
12311           - Implemented CreateParams property
12312           - Implemented HScroll property
12313           - Implemented VScroll property
12314           - Implemented OnVisibleChanged property
12315
12316 2004-09-22 14:09  pbartok
12317
12318         * Form.cs:
12319           - Added Form.ControllCollection class
12320           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
12321             RemoveOwnedForm (still incomplete, missing on-top and common
12322             minimize/maximize behaviour)
12323           - Added StartPosition property (still incomplete, does not use when
12324             creating the form)
12325           - Added ShowDialog() methods (still incomplete, missing forcing the
12326             dialog modal)
12327
12328 2004-09-22 14:05  pbartok
12329
12330         * Application.cs:
12331           - Added message loop for modal dialogs
12332
12333 2004-09-22 14:02  pbartok
12334
12335         * GroupBox.cs:
12336           - Fixed wrong types for events
12337
12338 2004-09-22 14:00  pbartok
12339
12340         * Shortcut.cs, FormWindowState.cs:
12341           - Fixed wrong values
12342
12343 2004-09-22 12:01  jackson
12344
12345         * Control.cs: Text is never null
12346
12347 2004-09-20 22:14  pbartok
12348
12349         * XplatUIWin32.cs:
12350           - Fixed accessibility level for Idle handler
12351
12352 2004-09-20 18:54  jackson
12353
12354         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
12355           XplatUIX11.cs: New message loop that uses poll so we don't get a
12356           busy loop
12357
12358 2004-09-17 10:43  pbartok
12359
12360         * ScrollBar.cs:
12361           - Fixed behaviour of arrow buttons. Now properly behaves like
12362             Buttons (and like Microsoft's scrollbar arrow buttons)
12363
12364 2004-09-17 10:14  pbartok
12365
12366         * ScrollBar.cs:
12367           - Added missing release of keyboard/mouse capture
12368
12369 2004-09-17 06:18  jordi
12370
12371         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
12372           Theme.cs: Very early menu support
12373
12374 2004-09-16 17:45  pbartok
12375
12376         * XplatUIWin32.cs:
12377           - Fixed sending a window to the front
12378           - Added overload for SetWindowPos to avoid casting
12379
12380 2004-09-16 17:44  pbartok
12381
12382         * Control.cs:
12383           - Added SendToBack and BringToFront methods
12384
12385 2004-09-16 07:00  ravindra
12386
12387         * Copyright: Added Novell URL.
12388
12389 2004-09-16 07:00  ravindra
12390
12391         * ToolBar.cs: Invalidate should be done before redrawing.
12392
12393 2004-09-15 21:19  ravindra
12394
12395         * ColumnHeaderStyle.cs: Enum for ListView Control.
12396
12397 2004-09-15 21:18  ravindra
12398
12399         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
12400           ListView Control.
12401
12402 2004-09-13 18:26  jackson
12403
12404         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
12405           properly
12406
12407 2004-09-13 18:13  jackson
12408
12409         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
12410           a second thread and post messages into the main threads message
12411           queue. This makes timing much more consistent. Both win2K and XP
12412           have a minimum timer value of 15 milliseconds, so we now do this
12413           too.
12414
12415 2004-09-13 15:18  pbartok
12416
12417         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
12418           XplatUIX11.cs:
12419           - Added Z-Ordering methods
12420
12421 2004-09-13 10:56  pbartok
12422
12423         * Form.cs:
12424           - Fixed #region names
12425           - Moved properties and methods into their proper #regions
12426
12427 2004-09-13 10:51  pbartok
12428
12429         * Form.cs:
12430           - Added Accept and CancelButton properties
12431           - Added ProcessDialogKey() method
12432
12433 2004-09-13 08:18  pbartok
12434
12435         * IWindowTarget.cs:
12436           - Initial check-in
12437
12438 2004-09-10 21:50  pbartok
12439
12440         * Control.cs:
12441           - Added DoDragDrop() [incomplete]
12442           - Properly implemented 'Visible' handling
12443           - Added SetVisibleCore()
12444           - Implemented FindChildAtPoint()
12445           - Implemented GetContainerControl()
12446           - Implemented Hide()
12447
12448 2004-09-10 19:28  pbartok
12449
12450         * Control.cs:
12451           - Moved methods into their appropriate #regions
12452           - Reordered methods within regions alphabetically
12453
12454 2004-09-10 18:57  pbartok
12455
12456         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
12457           - Added method to retrieve text from window
12458
12459 2004-09-10 18:56  pbartok
12460
12461         * Control.cs:
12462           - Moved some internal functions into the internal region
12463           - Implemented FontHeight
12464           - Implemented RenderRightToLeft
12465           - Implemented ResizeRedraw
12466           - Implemented ShowFocusCues
12467           - Implemented ShowKeyboardCues
12468           - Implemented FromChildHandle
12469           - Implemented FromHandle
12470           - Implemented IsMnemonic
12471           - Implemented ReflectMessage
12472           - All public and protected Static Methods are now complete
12473
12474 2004-09-10 16:54  pbartok
12475
12476         * Control.cs:
12477           - Implemented remaining missing public instance properties
12478           - Alphabetized some out of order properties
12479
12480 2004-09-10 05:51  ravindra
12481
12482         * PictureBox.cs: Added a check for null image.
12483
12484 2004-09-10 00:59  jordi
12485
12486         * GroupBox.cs: remove cvs tag
12487
12488 2004-09-09 05:25  ravindra
12489
12490         * ToolBar.cs: Make redraw accessible from ToolBarButton.
12491
12492 2004-09-09 05:23  ravindra
12493
12494         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
12495           parent redraw.
12496
12497 2004-09-09 02:28  pbartok
12498
12499         * ThemeWin32Classic.cs:
12500           - Improve disabled string look
12501
12502 2004-09-09 01:15  jordi
12503
12504         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
12505           args and handler
12506
12507 2004-09-08 23:56  ravindra
12508
12509         * ItemBoundsPortion.cs: It's enum, not a class!
12510
12511 2004-09-08 23:47  ravindra
12512
12513         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
12514           Enums for Form.
12515
12516 2004-09-08 21:13  ravindra
12517
12518         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
12519           ListView control.
12520
12521 2004-09-08 21:03  ravindra
12522
12523         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
12524           avoid crash.
12525
12526 2004-09-08 21:01  ravindra
12527
12528         * ScrollableControl.cs: Removed unreachable code.
12529
12530 2004-09-08 06:45  jordi
12531
12532         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
12533
12534 2004-09-08 01:00  jackson
12535
12536         * XplatUIX11.cs: Only run the timers when updating the message
12537           queue. This effectively gives X messages a higher priority then
12538           timer messages. Timers still need love though
12539
12540 2004-09-07 14:01  jackson
12541
12542         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
12543           this for us and the handle is no longer valid.
12544
12545 2004-09-07 13:59  jackson
12546
12547         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
12548           loop that manages to not crash. TODO: Add poll and cleanup timers
12549
12550 2004-09-07 11:12  jordi
12551
12552         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
12553
12554 2004-09-07 03:40  jordi
12555
12556         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
12557           fixes, methods, multiple links
12558
12559 2004-09-06 06:55  jordi
12560
12561         * Control.cs: Caches ClientRectangle rectangle value
12562
12563 2004-09-05 02:03  jordi
12564
12565         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
12566           certain situations
12567
12568 2004-09-04 11:10  jordi
12569
12570         * Label.cs: Refresh when font changed
12571
12572 2004-09-02 16:24  pbartok
12573
12574         * Control.cs:
12575           - Added sanity check to creation of double buffer bitmap
12576
12577 2004-09-02 16:24  pbartok
12578
12579         * ButtonBase.cs:
12580           - Fixed selection of text color
12581           - Fixed handling of resize event; now properly recreates double
12582             buffering bitmap
12583           - Added missing assignment of TextAlignment
12584           - Added proper default for TextAlignment
12585
12586 2004-09-02 14:26  pbartok
12587
12588         * RadioButton.cs:
12589           - Added missing RadioButton.RadioButtonAccessibleObject class
12590
12591 2004-09-02 14:26  pbartok
12592
12593         * Control.cs:
12594           - Added missing Control.ControlAccessibleObject class
12595           - Started to implement Select()ion mechanisms, still very incomplete
12596
12597 2004-09-02 14:25  pbartok
12598
12599         * AccessibleObject.cs:
12600           - Added missing methods
12601
12602 2004-09-02 14:23  pbartok
12603
12604         * AccessibleNavigation.cs, AccessibleSelection.cs:
12605           - Initial check-in
12606
12607 2004-09-02 10:32  jordi
12608
12609         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
12610           pool for pens, brushes, and hatchbruses
12611
12612 2004-09-01 15:30  jackson
12613
12614         * StatusBar.cs: Fix typo
12615
12616 2004-09-01 14:44  pbartok
12617
12618         * RadioButton.cs:
12619           - Fixed state
12620
12621 2004-09-01 14:39  pbartok
12622
12623         * Button.cs, RadioButton.cs:
12624           - Functional initial check-in
12625
12626 2004-09-01 14:01  pbartok
12627
12628         * CheckBox.cs:
12629           - Added missing default
12630           - Added missing region mark
12631
12632 2004-09-01 09:10  jordi
12633
12634         * Label.cs: fixes method signatures, new methods, events, fixes
12635           autosize
12636
12637 2004-09-01 07:19  jordi
12638
12639         * Control.cs: Init string variables with an empty object
12640
12641 2004-09-01 04:20  jordi
12642
12643         * Control.cs: fires OnFontChanged event
12644
12645 2004-08-31 20:07  pbartok
12646
12647         * ButtonBase.cs:
12648           - Enabled display of strings
12649
12650 2004-08-31 20:05  pbartok
12651
12652         * Form.cs:
12653           - Added (partial) implementation of DialogResult; rest needs to be
12654             implemented when the modal loop code is done
12655
12656 2004-08-31 19:55  pbartok
12657
12658         * CheckBox.cs:
12659           - Fixed to match the removal of the needs_redraw concept
12660
12661 2004-08-31 19:55  pbartok
12662
12663         * ButtonBase.cs:
12664           - Removed the rather odd split between 'needs redraw' and redrawing
12665           - Now handles the events that require regeneration (ambient
12666             properties and size)
12667
12668 2004-08-31 19:41  pbartok
12669
12670         * Control.cs:
12671           - Added firing of BackColorChanged event
12672           - Added TopLevelControl property
12673           - Fixed handling of WM_ERASEBKGRND message
12674
12675 2004-08-31 12:49  pbartok
12676
12677         * ButtonBase.cs:
12678           - Removed debug
12679           - Minor fixes
12680
12681 2004-08-31 12:48  pbartok
12682
12683         * CheckBox.cs:
12684           - Finished (famous last words)
12685
12686 2004-08-31 04:35  jordi
12687
12688         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
12689           scrolling bugs, adds new methods
12690
12691 2004-08-30 14:42  pbartok
12692
12693         * CheckBox.cs:
12694           - Implemented CheckBox drawing code
12695
12696 2004-08-30 14:42  pbartok
12697
12698         * ButtonBase.cs:
12699           - Made Redraw() and CheckRedraw() virtual
12700           - Improved mouse up/down/move logic to properly track buttons
12701
12702 2004-08-30 09:44  pbartok
12703
12704         * CheckBox.cs:
12705           - Updated to fix broken build. Not complete yet.
12706
12707 2004-08-30 09:28  pbartok
12708
12709         * CheckState.cs:
12710           - Initial checkin
12711
12712 2004-08-30 09:17  pbartok
12713
12714         * Appearance.cs:
12715           - Initial check-in
12716
12717 2004-08-27 16:12  ravindra
12718
12719         * ToolBarButton.cs: Added TypeConverter attribute.
12720
12721 2004-08-27 16:07  ravindra
12722
12723         * ImageIndexConverter.cs: Implemented.
12724
12725 2004-08-27 14:17  pbartok
12726
12727         * Control.cs:
12728           - Removed unneeded stack vars
12729           - First attempt to fix sizing issues when layout is suspended
12730
12731 2004-08-25 15:35  jordi
12732
12733         * ScrollBar.cs: more fixes to scrollbar
12734
12735 2004-08-25 14:04  ravindra
12736
12737         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
12738           Added the missing divider code and grip for ToolBar Control.
12739
12740 2004-08-25 13:20  pbartok
12741
12742         * Control.cs:
12743           - Control now properly passes the ambient background color to child
12744             controls
12745
12746 2004-08-25 13:20  jordi
12747
12748         * ScrollBar.cs: small bug fix regarding bar position
12749
12750 2004-08-25 12:33  pbartok
12751
12752         * Timer.cs:
12753           - Now only calls SetTimer or KillTimer if the enabled state has
12754           changed
12755
12756 2004-08-25 12:33  pbartok
12757
12758         * XplatUIWin32.cs:
12759           - Fixed timer handling, now seems to work
12760           - Improved error message for window creation
12761
12762 2004-08-25 12:32  pbartok
12763
12764         * Control.cs:
12765           - Fixed generation of MouseUp message
12766
12767 2004-08-25 12:29  jordi
12768
12769         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
12770           and fixes for progressbar
12771
12772 2004-08-24 18:43  ravindra
12773
12774         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
12775           in ToolBar control.
12776
12777 2004-08-24 17:15  pbartok
12778
12779         * Panel.cs:
12780           - Added #region
12781           - Added missing events
12782           - Alphabetized
12783
12784 2004-08-24 17:14  pbartok
12785
12786         * StatusBar.cs, PictureBox.cs:
12787           - Now uses Control's CreateParams
12788
12789 2004-08-24 16:36  pbartok
12790
12791         * XplatUIX11.cs:
12792           - Fixed background color handling
12793           - Fixed sending of enter/leave events on a grab
12794
12795 2004-08-24 16:35  pbartok
12796
12797         * X11Structs.cs:
12798           - Refined definitions for CrossingEvent
12799
12800 2004-08-24 12:37  jordi
12801
12802         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
12803           formmating, methods signature, and adds missing events
12804
12805 2004-08-24 12:24  jordi
12806
12807         * Control.cs: fire OnEnabledChanged event
12808
12809 2004-08-24 11:17  pbartok
12810
12811         * XplatUIWin32.cs:
12812           - Implemented SetTimer() and KillTimer()
12813
12814 2004-08-24 11:16  pbartok
12815
12816         * XplatUIX11.cs:
12817           - Now uses Remove instead of Add to kill the timer
12818
12819 2004-08-24 10:16  jackson
12820
12821         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
12822           picture boxes in the theme now. Draw picture box borders and obey
12823           sizing modes
12824
12825 2004-08-24 05:49  jackson
12826
12827         * Timer.cs: Remove top secret debugging code
12828
12829 2004-08-24 05:34  jackson
12830
12831         * PictureBox.cs: Temp hack to make picture boxes draw their full
12832           image
12833
12834 2004-08-24 05:29  jackson
12835
12836         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
12837           XplatUIX11.cs: Move timers to the driver level. On X they are
12838           queued by the driver and checked on idle.
12839
12840 2004-08-24 01:07  jackson
12841
12842         * XplatUIX11.cs: Use a queue for async messages instead of passing
12843           them as ClientMessages since that was totally broken. Also simply
12844           check for events and return an idle message if none are found. This
12845           gives us an idle handler, and prevents deadlocking when no messages
12846           are in the queue.
12847
12848 2004-08-23 18:19  ravindra
12849
12850         * XplatUIWin32.cs: Removed the unwanted destructor.
12851
12852 2004-08-23 17:27  pbartok
12853
12854         * ButtonBase.cs:
12855           - Finishing touches. Works now, just needs some optimizations.
12856
12857 2004-08-23 16:53  jordi
12858
12859         * ScrollBar.cs: small fix
12860
12861 2004-08-23 16:45  pbartok
12862
12863         * Application.cs:
12864           - Removed debug output
12865           - Simplifications
12866
12867 2004-08-23 16:43  jordi
12868
12869         * ScrollBar.cs: [no log message]
12870
12871 2004-08-23 16:10  pbartok
12872
12873         * Form.cs:
12874           - Fixed handling of WM_CLOSE message
12875           - Removed debug output
12876
12877 2004-08-23 16:09  pbartok
12878
12879         * Application.cs:
12880           - Added handling of Idle event
12881           - Added handling of form closing
12882           - Fixed reporting of MessageLoop property
12883           - Removed some unneeded code, should provide a bit of a speedup
12884
12885 2004-08-23 15:22  pbartok
12886
12887         * Control.cs:
12888           - Added InitLayout() method
12889           - Added code to properly perform layout when Anchor or Dock property
12890             is changed
12891           - Changed 'interpretation' of ResumeLayout. MS seems to have a
12892             LAMESPEC, tried to do it in a way that makes sense
12893
12894 2004-08-23 14:10  jordi
12895
12896         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
12897           properties and methods
12898
12899 2004-08-23 13:55  pbartok
12900
12901         * Control.cs:
12902           - Properly fixed Jordi's last fix
12903           - Now uses Cursor's Position property instead of calling XplatUI
12904           directly
12905
12906 2004-08-23 13:44  jordi
12907
12908         * PaintEventHandler.cs: Adding missing attribute
12909
12910 2004-08-23 13:39  pbartok
12911
12912         * Cursor.cs:
12913           - Implemented Position property
12914
12915 2004-08-23 13:39  pbartok
12916
12917         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
12918           - Added method to move mouse cursor
12919
12920 2004-08-23 13:39  pbartok
12921
12922         * XplatUIX11.cs:
12923           - Fixed setting of background color
12924           - Added method to move mouse cursor
12925
12926 2004-08-23 13:16  jordi
12927
12928         * Control.cs: avoids null exception
12929
12930 2004-08-22 17:46  jackson
12931
12932         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
12933           PictureBox
12934
12935 2004-08-22 17:40  jackson
12936
12937         * XplatUIX11.cs: Add some missing locks
12938
12939 2004-08-22 15:10  pbartok
12940
12941         * Control.cs, Form.cs:
12942           - Removed OverlappedWindow style from Control, instead it's default
12943             now is child
12944           - Made form windows OverlappedWindow by default
12945
12946 2004-08-22 13:34  jackson
12947
12948         * ScrollBar.cs: Update the position through the Value property so
12949           the OnValueChanged event is raised.
12950
12951 2004-08-22 12:04  pbartok
12952
12953         * SWF.csproj:
12954           - Added Cursor.cs and UserControl.cs
12955
12956 2004-08-22 12:03  pbartok
12957
12958         * Cursor.cs:
12959           - Started implementation, not usable yet
12960
12961 2004-08-22 12:00  pbartok
12962
12963         * UserControl.cs:
12964           - Implemented UserControl (complete)
12965
12966 2004-08-21 19:20  ravindra
12967
12968         * ToolBar.cs: Correcting the formatting mess of VS.NET.
12969
12970 2004-08-21 18:49  ravindra
12971
12972         * ToolBar.cs: Probably this completes the missing attributes in
12973           toolbar control.
12974
12975 2004-08-21 18:03  ravindra
12976
12977         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
12978           Fixed toolbar control signatures.
12979
12980 2004-08-21 16:32  pbartok
12981
12982         * LinkLabel.cs:
12983           - Signature Fixes
12984
12985 2004-08-21 16:30  pbartok
12986
12987         * Label.cs:
12988           - Signature fixes
12989
12990 2004-08-21 16:19  pbartok
12991
12992         * Control.cs, Label.cs:
12993           - Signature fixes
12994
12995 2004-08-21 15:57  pbartok
12996
12997         * ButtonBase.cs:
12998           - Added loads of debug output for development
12999           - Fixed typo in method name
13000
13001 2004-08-21 15:52  pbartok
13002
13003         * ToolBarButtonClickEventArgs.cs:
13004           - Added missing base class
13005
13006 2004-08-21 14:53  pbartok
13007
13008         * Control.cs:
13009           - Updated to match new GrabWindow signature
13010
13011 2004-08-21 14:51  pbartok
13012
13013         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
13014           - Added method to get default display size
13015
13016 2004-08-21 14:23  pbartok
13017
13018         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
13019           - Added method to query current grab state
13020           - Added argument to allow confining a grab to a window
13021
13022 2004-08-21 14:22  pbartok
13023
13024         * Keys.cs:
13025           - Added [Flags] attribute so that modifiers can be used in bitwise
13026           ops
13027
13028 2004-08-21 14:21  pbartok
13029
13030         * TrackBar.cs, ScrollBar.cs:
13031           - Replaced direct XplatUI calls with their Control counterpart
13032
13033 2004-08-21 13:32  pbartok
13034
13035         * Control.cs:
13036           - Implemented Created property
13037
13038 2004-08-21 13:28  pbartok
13039
13040         * Control.cs:
13041           - Implemented ContainsFocus
13042
13043 2004-08-21 13:26  pbartok
13044
13045         * Control.cs:
13046           - Implemented CausesValidation
13047
13048 2004-08-21 13:21  pbartok
13049
13050         * Control.cs:
13051           - Implemented CanFocus
13052           - Implemented CanSelect
13053           - Implemented Capture
13054
13055 2004-08-21 12:35  pbartok
13056
13057         * XplatUIWin32.cs:
13058           - Fixed bug with Async message handling
13059           - Implemented getting the ModifierKeys
13060
13061 2004-08-21 12:32  jackson
13062
13063         * AsyncMethodResult.cs: Make sure we have the mutex before we
13064           release it. Fixes BeginInvoke on windows
13065
13066 2004-08-21 11:31  pbartok
13067
13068         * XplatUIWin32.cs, XplatUIX11.cs:
13069           - Drivers now return proper mouse state
13070
13071 2004-08-21 10:54  jackson
13072
13073         * Control.cs: Implement EndInvoke
13074
13075 2004-08-21 10:48  jackson
13076
13077         * Timer.cs: Remove unneeded finalizer
13078
13079 2004-08-20 19:52  ravindra
13080
13081         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
13082           in mouse event handling in the ToolBar control.
13083
13084 2004-08-20 19:50  ravindra
13085
13086         * ImageList.cs: Changed draw method to use the arguments passed in
13087           to draw the image.
13088
13089 2004-08-20 18:58  pbartok
13090
13091         * XplatUIStructs.cs:
13092           - Added private message for async communication
13093
13094 2004-08-20 17:38  ravindra
13095
13096         * Control.cs: Made RightToLeft property virtual and removed a
13097           Console.WriteLine.
13098
13099 2004-08-20 14:39  jordi
13100
13101         * ThemeGtk.cs: use style_attach
13102
13103 2004-08-20 14:39  pbartok
13104
13105         * XplatUIWin32.cs:
13106           - Added jackson's Async code from X11 to Win32
13107
13108 2004-08-20 14:09  pbartok
13109
13110         * SWF.csproj:
13111           - Added all new files
13112
13113 2004-08-20 14:09  pbartok
13114
13115         * Control.cs:
13116           - Added call to set window background color
13117
13118 2004-08-20 14:03  pbartok
13119
13120         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
13121           - Added method for setting the window background
13122
13123 2004-08-20 14:02  pbartok
13124
13125         * XplatUIWin32.cs:
13126           - Added method for setting the background color
13127           - Added handling for erasing the window background
13128
13129 2004-08-20 13:45  jordi
13130
13131         * TrackBar.cs: fixes timer, new properties and methods
13132
13133 2004-08-20 13:34  jackson
13134
13135         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
13136           correct thread
13137
13138 2004-08-20 13:22  jackson
13139
13140         * Timer.cs: Timer Tick events are now handed through Controls Async
13141           mechanism so the callbacks are executed in the same thread as X
13142
13143 2004-08-20 13:19  jackson
13144
13145         * XplatUIDriver.cs: Expose functionality to send async messages
13146           through the driver
13147
13148 2004-08-20 13:18  jackson
13149
13150         * Control.cs: Implement Begininvoke
13151
13152 2004-08-20 13:14  jackson
13153
13154         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
13155           messages through the driver
13156
13157 2004-08-20 13:12  jackson
13158
13159         * XplatUIX11.cs: Lock before all X operations. Also added Async
13160           method functionality through XSendEvent
13161
13162 2004-08-20 13:11  jackson
13163
13164         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
13165           This will screw up on 64 bit systems)
13166
13167 2004-08-20 13:10  jackson
13168
13169         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
13170           Async messages through X/Win32
13171
13172 2004-08-19 19:39  pbartok
13173
13174         * XplatUIX11.cs:
13175           - Updated code to match new HandleData.DeviceContext type
13176
13177 2004-08-19 19:38  pbartok
13178
13179         * HandleData.cs:
13180           - Made DeviceContext a generic object to allow usage from various
13181           drivers
13182           - Added support for queueing Windows messages
13183
13184 2004-08-19 19:37  pbartok
13185
13186         * XplatUIWin32.cs:
13187           - Added generation of MouseEnter, MouseLeave and MouseHover events
13188           - Added cleanup on EndPaint
13189
13190 2004-08-19 19:17  pbartok
13191
13192         * Control.cs:
13193           - Added handling of WM_MOUSEHOVER
13194           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
13195           code
13196
13197 2004-08-19 18:55  jordi
13198
13199         * ThemeGtk.cs: fixes button order
13200
13201 2004-08-19 18:12  jordi
13202
13203         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
13204
13205 2004-08-19 17:09  pbartok
13206
13207         * Control.cs:
13208           - Added Right property
13209           - Added RightToLeft property
13210
13211 2004-08-19 16:27  jordi
13212
13213         * ThemeGtk.cs: experimental GTK theme support
13214
13215 2004-08-19 16:26  jordi
13216
13217         * ITheme.cs, Theme.cs: move themes from an interface to a class
13218
13219 2004-08-19 16:25  jordi
13220
13221         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
13222           theme enhancaments
13223
13224 2004-08-19 16:04  pbartok
13225
13226         * XplatUIX11.cs:
13227           - Added colormap basics
13228           - Added a way to re-initialize with a different display handle
13229           - Fixed setting of the window background color
13230           - Added various X11 imports related to colors and colormaps
13231
13232 2004-08-19 15:51  pbartok
13233
13234         * X11Structs.cs:
13235           - Removed packing hints (Paolo suggested this a while back)
13236           - fixed colormap type
13237           - Added default Atom types
13238           - Added Screen and color structs and enums
13239
13240 2004-08-19 15:39  pbartok
13241
13242         * ImageList.cs:
13243           - Added missing Draw() method
13244           - Added missing RecreateHandle event
13245
13246 2004-08-19 15:30  pbartok
13247
13248         * Form.cs:
13249           - Added handling of WM_CLOSE
13250
13251 2004-08-18 13:16  jordi
13252
13253         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
13254           a table
13255
13256 2004-08-18 09:56  jordi
13257
13258         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
13259
13260 2004-08-17 15:31  ravindra
13261
13262         * SWF.csproj: Updated project.
13263
13264 2004-08-17 15:25  pbartok
13265
13266         * Control.cs:
13267           - Drawing improvement; don't call UpdateBounds if we are not visible
13268             (or have been minimized)
13269
13270 2004-08-17 15:24  pbartok
13271
13272         * XplatUIWin32.cs:
13273           - Finished IsVisible
13274           - Added Win32GetWindowPlacement
13275
13276 2004-08-17 15:08  jackson
13277
13278         * Panel.cs: Initial checkin of the Panel
13279
13280 2004-08-17 14:25  pbartok
13281
13282         * Control.cs:
13283           - Fixed broken handling of default window sizes
13284
13285 2004-08-17 13:29  jackson
13286
13287         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
13288           has a large startup time.
13289
13290 2004-08-17 10:25  jackson
13291
13292         * HandleData.cs: union areas properly
13293
13294 2004-08-17 10:12  jackson
13295
13296         * HandleData.cs: union areas properly
13297
13298 2004-08-16 20:00  ravindra
13299
13300         * ToolBar.cs, ToolBarButton.cs: Added attributes.
13301
13302 2004-08-16 18:48  ravindra
13303
13304         * ToolBar.cs: Added attributes.
13305
13306 2004-08-16 17:17  ravindra
13307
13308         * SWF.csproj: Updated project.
13309
13310 2004-08-16 17:16  jackson
13311
13312         * XplatUIX11.cs: Check for more expose events before sending a
13313           WM_PAINT so they can all be grouped together. This makes dragging a
13314           window across another window redraw in a sane way.
13315
13316 2004-08-16 15:47  pbartok
13317
13318         * Control.cs:
13319           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
13320             support OnMouseEnter/Leave()
13321           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
13322             exposure handling
13323
13324 2004-08-16 15:46  pbartok
13325
13326         * XplatUIStructs.cs, XplatUIX11.cs:
13327           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
13328           OnMouseEnter/Leave()
13329
13330 2004-08-16 15:34  jackson
13331
13332         * XplatUIX11.cs: Group multiple expose events in HandleData, make
13333           sure messages get the message field set to WM_NULL if they are not
13334           handled.
13335
13336 2004-08-16 15:24  jackson
13337
13338         * HandleData.cs: HandleData is used for storing message information
13339           for window handles
13340
13341 2004-08-15 17:23  ravindra
13342
13343         * ColorDepth.cs: Added attribute.
13344
13345 2004-08-15 17:23  ravindra
13346
13347         * SWF.csproj: Updated project for ToolBar Control.
13348
13349 2004-08-15 17:20  ravindra
13350
13351         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
13352           control and also dos2unix format.
13353
13354 2004-08-15 17:13  ravindra
13355
13356         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
13357           ToolBarButtonClickEventArgs.cs,
13358           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
13359           ToolBarTextAlign.cs: First Implementation of ToolBar control.
13360
13361 2004-08-15 15:31  pbartok
13362
13363         * ButtonBase.cs:
13364           - First (mostly) working version
13365
13366 2004-08-13 16:15  pbartok
13367
13368         * Control.cs:
13369           - Fixed Anchor default
13370
13371 2004-08-13 15:43  pbartok
13372
13373         * Control.cs:
13374           - Changed GetCursorPos signature
13375
13376 2004-08-13 15:42  pbartok
13377
13378         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
13379           - Changed signature for GetCursorPos
13380
13381 2004-08-13 15:25  pbartok
13382
13383         * XplatUIX11.cs:
13384           - Cleanup
13385           - Fixed resizing/exposure handling
13386
13387 2004-08-13 15:22  jordi
13388
13389         * ThemeWin32Classic.cs: removes redundant code and fixes issues
13390           with tickposition
13391
13392 2004-08-13 14:55  jordi
13393
13394         * TrackBar.cs: change from wndproc to events
13395
13396 2004-08-13 13:00  jordi
13397
13398         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
13399           XplatUIX11.cs: implements PointToClient (ScreenToClient)
13400
13401 2004-08-13 12:53  pbartok
13402
13403         * XplatUIWin32.cs:
13404           - Changed GetWindowPos to also provide client area size
13405           - Fixed broken prototypes for several win32 functions
13406
13407 2004-08-13 12:53  pbartok
13408
13409         * XplatUI.cs, XplatUIDriver.cs:
13410           - Changed GetWindowPos to also provide client area size
13411
13412 2004-08-13 12:52  pbartok
13413
13414         * XplatUIX11.cs:
13415           - Added generation of WM_POSCHANGED
13416           - Changed GetWindowPos to also provide client area size
13417
13418 2004-08-13 12:52  pbartok
13419
13420         * Control.cs:
13421           - Added Dispose() and destructor
13422           - Fixed resizing and bounds calculation
13423           - Fixed Layout
13424           - Added memory savings for invisible windows
13425
13426 2004-08-13 12:46  jordi
13427
13428         * TrackBar.cs: adds timer and grap window
13429
13430 2004-08-13 10:25  jackson
13431
13432         * Timer.cs: SWF Timer
13433
13434 2004-08-12 16:59  pbartok
13435
13436         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
13437           - Implemented method to get current mouse position
13438
13439 2004-08-12 14:29  jordi
13440
13441         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
13442           enhancement, fix mouse problems, highli thumb, etc
13443
13444 2004-08-12 13:31  pbartok
13445
13446         * Control.cs:
13447           - Fixed Anchoring bugs
13448
13449 2004-08-12 13:01  jackson
13450
13451         * StatusBar.cs: Don't forget things
13452
13453 2004-08-12 12:54  jackson
13454
13455         * ThemeWin32Classic.cs: Handle owner draw status bars
13456
13457 2004-08-12 12:54  jackson
13458
13459         * StatusBar.cs: Implement missing properties, events, and methods.
13460           Handle mouse clicking
13461
13462 2004-08-12 10:19  jackson
13463
13464         * StatusBarPanelClickEventArgs.cs,
13465           StatusBarPanelClickEventHandler.cs: Classes for handling status
13466           bar panel click events
13467
13468 2004-08-12 10:10  jackson
13469
13470         * Control.cs: Add missing properties
13471
13472 2004-08-12 09:46  pbartok
13473
13474         * BindingsManagerBase.cs:
13475           - Name changed to BindingManagerBase.cs
13476
13477 2004-08-12 09:25  jordi
13478
13479         * ScrollableControl.cs: calls ctrlbase instead of exeception
13480
13481 2004-08-11 16:28  pbartok
13482
13483         * InputLanguageChangingEventArgs.cs:
13484           - Never check in before compiling. Fixes the last check-in
13485
13486 2004-08-11 16:26  pbartok
13487
13488         * InputLanguageChangingEventArgs.cs:
13489           - More signature fixes
13490
13491 2004-08-11 16:20  pbartok
13492
13493         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
13494           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
13495           ImageListStreamer.cs, InputLanguage.cs,
13496           InputLanguageChangedEventArgs.cs,
13497           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
13498           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
13499           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
13500           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
13501           - Signature fixes
13502
13503 2004-08-11 16:16  pbartok
13504
13505         * Application.cs:
13506           - Fixed Signature
13507           - Added .Net 1.1 method
13508
13509 2004-08-11 15:25  pbartok
13510
13511         * SWF.csproj:
13512           - Fixed BindingManagerBase.cs filename
13513
13514 2004-08-11 15:22  pbartok
13515
13516         * BindingManagerBase.cs:
13517           - Was checked in with wrong filename
13518
13519 2004-08-11 14:50  pbartok
13520
13521         * SWF.csproj:
13522           - Updated
13523
13524 2004-08-11 13:41  jordi
13525
13526         * XplatUIWin32.cs: Fixes ClientRect
13527
13528 2004-08-11 13:19  pbartok
13529
13530         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
13531           XplatUIX11.cs:
13532           - We had SetWindowPos and MoveWindow to set window positions and
13533             size, removed MoveWindow. We have GetWindowPos, so it made sense to
13534             keep SetWindowPos as matching counterpart
13535           - Added some X11 sanity checking
13536
13537 2004-08-11 12:59  pbartok
13538
13539         * Control.cs:
13540           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
13541             (It seems that SetBounds is just a front for SetBoundsCore and
13542              SetBoundsCore updates the underlying window system and
13543              UpdateBounds is responsible for updating the variables associated
13544              with the Control and sending the events)
13545           - Major cleanup of Size handling; we now have two sizes, client_size
13546             and bounds. Bounds defines the window with decorations, client_size
13547             without them.
13548
13549 2004-08-11 12:55  pbartok
13550
13551         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
13552           - Added method to calculate difference between decorated window and
13553             raw client area
13554
13555 2004-08-11 12:54  pbartok
13556
13557         * Label.cs:
13558           - Forcing redraw on resize
13559
13560 2004-08-11 11:43  pbartok
13561
13562         * ImageList.cs:
13563           - Removed disposing of the actual images when the list is disposed
13564
13565 2004-08-11 09:13  pbartok
13566
13567         * Control.cs:
13568           - Now properly reparents windows
13569
13570 2004-08-11 08:37  pbartok
13571
13572         * Control.cs:
13573           - Duh!
13574
13575 2004-08-11 07:47  pbartok
13576
13577         * Control.cs:
13578           - Rewrote the collection stuff. Might not be as fast now, not
13579             keeping the number of children around and accessible directly, but
13580             it's more straightforward
13581
13582 2004-08-11 07:44  pbartok
13583
13584         * AccessibleObject.cs:
13585           - Fixed to match ControlCollection rewrite
13586
13587 2004-08-11 07:43  pbartok
13588
13589         * ImageList.cs:
13590           - Added missing creation of the collection list
13591
13592 2004-08-10 20:08  jackson
13593
13594         * StatusBar.cs: Get the paint message from WndProc
13595
13596 2004-08-10 19:31  jackson
13597
13598         * ThemeWin32Classic.cs: Create Brushes as little as possible
13599
13600 2004-08-10 19:20  jackson
13601
13602         * UICues.cs: Add Flags attribute
13603
13604 2004-08-10 19:19  jackson
13605
13606         * StatusBarPanel.cs: Signature cleanup
13607
13608 2004-08-10 19:10  jackson
13609
13610         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
13611           Initial implementation of status bar item drawing
13612
13613 2004-08-10 17:27  jordi
13614
13615         * TrackBar.cs: add missing methods, properties, and restructure to
13616           hide extra ones
13617
13618 2004-08-10 16:24  jackson
13619
13620         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
13621           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
13622           attribute
13623
13624 2004-08-10 13:21  jordi
13625
13626         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
13627           enhancements and standarize on win colors defaults
13628
13629 2004-08-10 12:52  jackson
13630
13631         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
13632           ThemeWin32Classic.cs: Implement DrawItem functionality
13633
13634 2004-08-10 12:47  jordi
13635
13636         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
13637
13638 2004-08-10 12:32  jordi
13639
13640         * Control.cs: throw ontextchange event
13641
13642 2004-08-10 11:43  pbartok
13643
13644         * Control.cs:
13645           - Added more to the still unfinished Dock/Anchor layout code
13646
13647 2004-08-10 11:39  pbartok
13648
13649         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
13650           - Added GetWindowPos method
13651
13652 2004-08-10 11:36  pbartok
13653
13654         * XplatUIWin32.cs:
13655           - Implemented several methods
13656
13657 2004-08-10 09:47  jackson
13658
13659         * TrackBar.cs: Allow control to handle buffering
13660
13661 2004-08-10 09:41  jackson
13662
13663         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
13664
13665 2004-08-10 09:24  jackson
13666
13667         * Label.cs, LinkLabel.cs: Let Control handle buffering.
13668
13669 2004-08-10 09:09  jackson
13670
13671         * StatusBar.cs: Let Control handle all the buffering.
13672
13673 2004-08-10 09:08  jackson
13674
13675         * Control.cs: Control will now handle the buffering code, so each
13676           control does not have to implement this.
13677
13678 2004-08-10 08:34  jackson
13679
13680         * XplatUIDriver.cs: Use default colors from the theme
13681
13682 2004-08-09 17:12  pbartok
13683
13684         * ImageList.cs:
13685           - Fixed several bugs Ravindra pointed out
13686
13687 2004-08-09 16:11  pbartok
13688
13689         * Control.cs:
13690           - Added incomplete dock layout code
13691           - Added support for mouse wheel
13692
13693 2004-08-09 16:09  pbartok
13694
13695         * XplatUIX11.cs:
13696           - Added handling for middle and right mousebutton
13697           - Added handling for mouse wheel
13698           - Added handling for key state and mouse state and position
13699           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
13700           messages
13701
13702 2004-08-09 15:40  jackson
13703
13704         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
13705           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
13706           checkin
13707
13708 2004-08-09 15:37  jackson
13709
13710         * StatusBar.cs: Initial implementation of StatusBar
13711
13712 2004-08-09 15:36  jackson
13713
13714         * ITheme.cs: Add support for drawing status bar and getting status
13715           bar item sizes
13716
13717 2004-08-09 15:35  pbartok
13718
13719         * MouseButtons.cs:
13720           - Fixed values
13721
13722 2004-08-09 15:34  jackson
13723
13724         * ThemeWin32Classic.cs: Add support for drawing status bar and get
13725           status bar item sizes
13726
13727 2004-08-09 15:21  jackson
13728
13729         * ThemeWin32Classic.cs: Use known colors for default control
13730           colours
13731
13732 2004-08-09 15:12  jackson
13733
13734         * ThemeWin32Classic.cs: Make the default font static, it is static
13735           in control so this doesn't change functionality and creating fonts
13736           is sloooooow.
13737
13738 2004-08-09 14:56  pbartok
13739
13740         * X11Structs.cs:
13741           - Added GrabMode enum
13742
13743 2004-08-09 14:55  pbartok
13744
13745         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
13746           - Removed Run method, was only required for initial development
13747
13748 2004-08-09 14:51  pbartok
13749
13750         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
13751           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
13752           capture
13753
13754 2004-08-09 13:48  pbartok
13755
13756         * XplatUIX11.cs:
13757           - Fixed default sizing for child windows
13758
13759 2004-08-09 12:56  pbartok
13760
13761         * XplatUIX11.cs:
13762           - Added generation of WM_DESTROY message
13763           - Added handling of window manager induced shutdown
13764
13765 2004-08-09 11:31  jackson
13766
13767         * ThemeWin32Classic.cs: New names for control properties
13768
13769 2004-08-09 11:25  jackson
13770
13771         * Control.cs: Use new color names
13772
13773 2004-08-09 11:02  jackson
13774
13775         * XplatUI.cs: Get default window properties from the theme
13776
13777 2004-08-09 11:01  jackson
13778
13779         * ITheme.cs: The theme engine now controls default window
13780           properties
13781
13782 2004-08-09 11:00  jackson
13783
13784         * ThemeWin32Classic.cs: Add default window color properties
13785
13786 2004-08-09 10:17  jackson
13787
13788         * ThemeWin32Classic.cs: Use correct default back color
13789
13790 2004-08-09 10:05  jackson
13791
13792         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
13793           the theme now.
13794
13795 2004-08-09 09:56  jackson
13796
13797         * XplatUI.cs: Remove defaults, these are handled by the theme now.
13798
13799 2004-08-09 09:54  jackson
13800
13801         * Control.cs: Get default properties from the theme.
13802
13803 2004-08-09 09:53  jackson
13804
13805         * ITheme.cs: Themes now handle default control properties
13806
13807 2004-08-09 09:53  jackson
13808
13809         * ThemeWin32Classic.cs: Themes now handle default control
13810           properties so coloring will be consistent
13811
13812 2004-08-08 16:54  jordi
13813
13814         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
13815
13816 2004-08-08 15:08  jordi
13817
13818         * XplatUIX11.cs: fixes keyboard crash
13819
13820 2004-08-08 13:47  jordi
13821
13822         * Label.cs: add cvs header info
13823
13824 2004-08-08 12:09  jackson
13825
13826         * ThemeWin32Classic.cs: Add pen_buttonface
13827
13828 2004-08-08 11:52  jordi
13829
13830         * Label.cs, LinkLabel.cs: [no log message]
13831
13832 2004-08-08 11:34  jordi
13833
13834         * ThemeWin32Classic.cs: Use Windows Standard Colours
13835
13836 2004-08-07 17:32  jordi
13837
13838         * TrackBar.cs: throw exceptions of invalid enums values
13839
13840 2004-08-07 17:31  jordi
13841
13842         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
13843           draw method name
13844
13845 2004-08-07 16:56  jackson
13846
13847         * HorizontalAlignment.cs: Initial checkin
13848
13849 2004-08-07 13:16  jordi
13850
13851         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
13852           methods
13853
13854 2004-08-07 13:05  jordi
13855
13856         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
13857           GetSysColor defines
13858
13859 2004-08-06 18:01  pbartok
13860
13861         * ThemeWin32Classic.cs:
13862           - Fixed some rounding issues with float/int
13863
13864 2004-08-06 18:00  jackson
13865
13866         * DockStyle.cs, AnchorStyles.cs:
13867
13868                   Add flags and serializable attributes.
13869
13870 2004-08-06 17:46  pbartok
13871
13872         * XplatUIX11.cs:
13873           - Implemented GetParent
13874
13875 2004-08-06 17:18  pbartok
13876
13877         * TrackBar.cs:
13878           - Fixed some rounding issues with float/int
13879
13880 2004-08-06 17:17  pbartok
13881
13882         * X11Structs.cs, XplatUIX11.cs:
13883           - Fixed Refresh and Invalidate
13884
13885 2004-08-06 15:30  pbartok
13886
13887         * Control.cs, X11Structs.cs, XplatUIX11.cs:
13888           - Fixed recursive loop when resizing
13889           - Improved/fixed redrawing on expose messages
13890
13891 2004-08-06 09:53  jordi
13892
13893         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
13894           keyboard navigation
13895
13896 2004-08-06 08:02  pbartok
13897
13898         * X11Structs.cs, XplatUIX11.cs:
13899           - Fixed reparenting
13900           - Fixed window border creation
13901
13902 2004-08-05 15:38  pbartok
13903
13904         * XplatUIX11.cs:
13905           - Attempted fix for reparenting problems
13906
13907 2004-08-04 15:14  pbartok
13908
13909         * Control.cs:
13910           - Fixed Invalidation bug (calculated wrong client area)
13911           - Added ClientSize setter
13912
13913 2004-08-04 15:13  pbartok
13914
13915         * Form.cs:
13916           - Added AutoScale properties
13917
13918 2004-08-04 15:13  pbartok
13919
13920         * SWF.csproj:
13921           - Added latest files
13922
13923 2004-08-04 14:11  pbartok
13924
13925         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
13926           XplatUIX11.cs:
13927           - Added Invalidate handling
13928
13929 2004-08-03 17:09  jordi
13930
13931         * XplatUIDriver.cs: fixes spelling mistake
13932
13933 2004-07-27 09:53  jordi
13934
13935         * TrackBar.cs: fixes trackbar events, def classname, methods
13936           signature
13937
13938 2004-07-27 09:29  jordi
13939
13940         * ScrollBar.cs: fixes scrollbar events
13941
13942 2004-07-27 04:38  jordi
13943
13944         * Control.cs: changes to be able to run winforms samples
13945
13946 2004-07-26 11:42  jordi
13947
13948         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
13949           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
13950
13951 2004-07-26 05:41  jordi
13952
13953         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
13954           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
13955           implementation
13956
13957 2004-07-22 09:22  jordi
13958
13959         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
13960           check link overlapping, implement events, and fixes
13961
13962 2004-07-21 10:28  jordi
13963
13964         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
13965
13966 2004-07-21 10:19  jordi
13967
13968         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
13969           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
13970           LinkLabelLinkClickedEventArgs.cs,
13971           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
13972           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
13973           implementation
13974
13975 2004-07-19 13:09  jordi
13976
13977         * Control.cs, Label.cs: label control re-written: added missing
13978           functionlity, events, and properties
13979
13980 2004-07-19 10:49  jordi
13981
13982         * Control.cs: fixes SetBounds logic
13983
13984 2004-07-19 01:29  jordi
13985
13986         * Control.cs: Call RefreshWindow only if the window has created
13987
13988 2004-07-15 14:05  pbartok
13989
13990         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
13991           - Implemented ImageList and ImageList.ImageCollection classes
13992           - Added ColorDepth enumeration
13993           - Updated SWF VS.Net project
13994
13995 2004-07-15 11:06  jordi
13996
13997         * XplatUIStructs.cs: added MsgButons enum
13998
13999 2004-07-15 11:03  jordi
14000
14001         * Control.cs: added basic mouse handeling events
14002
14003 2004-07-15 03:38  jordi
14004
14005         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
14006           Vertical TrackBar control implementation
14007
14008 2004-07-13 09:33  jordi
14009
14010         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
14011
14012 2004-07-13 09:31  jordi
14013
14014         * Control.cs, Form.cs: commit: new properties and fixes form size
14015           problems
14016
14017 2004-07-09 14:13  miguel
14018
14019         * ProgressBar.cs: Spelling
14020
14021 2004-07-09 11:25  pbartok
14022
14023         * ProgressBar.cs:
14024           - Removed usage of Rectangle for drawing. Miguel pointed out it's
14025           faster
14026
14027 2004-07-09 11:17  miguel
14028
14029         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
14030
14031                 * ProgressBar.cs: Fixed spelling for `block'
14032
14033                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
14034                 style guidelines.
14035
14036                 Avoid using the += on rect.X, that exposed a bug in the compiler.
14037
14038 2004-07-08 23:21  pbartok
14039
14040         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
14041           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
14042           BaseCollection.cs, Binding.cs, BindingContext.cs,
14043           BindingMemberInfo.cs, BindingsCollection.cs,
14044           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
14045           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
14046           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
14047           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
14048           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
14049           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
14050           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
14051           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
14052           FrameStyle.cs, GiveFeedbackEventArgs.cs,
14053           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
14054           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
14055           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
14056           InputLanguageChangedEventArgs.cs,
14057           InputLanguageChangedEventHandler.cs,
14058           InputLanguageChangingEventArgs.cs,
14059           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
14060           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
14061           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
14062           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
14063           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
14064           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
14065           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
14066           QueryAccessibilityHelpEventArgs.cs,
14067           QueryAccessibilityHelpEventHandler.cs,
14068           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
14069           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
14070           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
14071           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
14072           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
14073           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
14074           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
14075           XplatUIX11.cs, lang.cs:
14076           - Initial check-in
14077