* TreeNode.cs: Add the 2.0 collapse method.
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2007-03-07  Jackson Harper  <jackson@ximian.com>
2
3         * TreeNode.cs: Add the 2.0 collapse method.
4
5 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
6
7         * DataGridViewColumn.cs: Fix HeaderText behaviour (Bug #80746).
8
9 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
10
11         * DataGridView.cs: Change DataSource will clear column and row
12         lists. Call Invalidate() to reflect DataSource change.
13
14 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
15
16         * DataGridView.cs: Add rows when DataSource is System.Data.DataView
17         and a new row is added to it.
18
19 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
20
21         * DataGridView.cs: Add columns when DataSource is en empty list but
22         is a System.Data.DataView (from a System.Data.DataTable).
23
24 2007-03-06  Andreia Gaita  <avidigal@novell.com>
25
26         * Label.cs: Implement AutoEllipsis (2.0)
27
28 2007-03-06  Jackson Harper  <jackson@ximian.com>
29
30         * TreeView.cs: Implement 2.0 TopNode setter property.
31         - Use a local var instead of the skipped_nodes field for computing
32         how many nodes to skip.  Otherwise we won't scroll because the
33         valuechanged handler checks if skipped_nodes is equal to the new
34         value.
35         - Implement 2.0 Sort method.
36         - Add useless 2.0 DoubleBuffer property
37         - Implement 2.0 LineColors property.  Lets you change the color of
38         the lines in the tree. Terribly useful for creating non cohesive
39         desktops.
40         - Implement 2.0 image key feature.
41
42 2007-03-06  Jackson Harper  <jackson@ximian.com>
43
44         * TreeView.cs: We can't get the bounds of the nodes before raising
45         the AfterSelect event, because that event could change the node's
46         bounds (scrolling, font change, etc).
47
48 2007-03-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
49
50         * XplatUIWin32.cs: When faking styles don't remove the WS_VISIBLE flag.
51         * Form.cs: Don't recreate handle when creating FormWindowManager, just
52           update window styles. In CreateParams us VisibleInternal instead of
53           VIsible to get the actual visible flag set for this form.
54         * FormWindowManager.cs: Activate the form whenever the mouse clicks on
55           the nc area. Fixes #81042. Also fix HandleTitleBarDoubleClick to
56           handle the case when the form is already maximized, in which case
57           it should be restored. Fixes #81043.
58
59 2007-03-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
60
61         * XplatUIX11.cs: Tool windows still get wm styles. Fixes toolwindows showing up with double decorations.
62
63 2007-03-05  Jackson Harper  <jackson@ximian.com>
64
65         * TreeViewHitTestInfo.cs: implement.
66
67 2007-03-05  Jackson Harper  <jackson@ximian.com>
68
69         * InternalWindowManager.cs: class status fix.
70
71 2007-03-05  Rolf Bjarne Kvinge <RKvinge@novell.com> 
72
73         * InternalWindowManager.cs: All windows that have a parent
74         are confined to their parent when they're being moved.
75         Fixes #80822.
76
77 2007-03-04  Gert Driesen  <drieseng@users.sourceforge.net>
78
79         * SystemInformation.cs: Marked KeyboardDelay and KeyboardSpeed public
80         on 2.0 profile. Fixes bug #81018. Small code formatting fixes.
81
82 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
83
84         * ThemeWin32Classic.cs: ManagedWindowSetButtonLocations: Make all
85           buttons invisible before deciding which ones should be visible
86           (fixes minimize/maximize buttons showing up in toolwindows). Remove
87           an unused variable.
88         * InternalWindowManager.cs: Remove warning.
89
90 2007-03-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
91
92         * ListView.cs: Add a check in ListViewItemCollection.RemoveAt
93         to throw an InvalidOperationException is virtual mode is being used.
94
95 2007-03-02  Jonathan Pobst  <monkey@jpobst.com>
96
97         * SplitContainer.cs, SplitterPanel.cs, StatusStrip.cs, TableLayoutPanel.cs,
98         ToolStrip.cs, ToolStripContainer.cs, ToolStripContentPanel.cs,
99         ToolStripControlHost.cs, ToolStripDropDownItems.cs, ToolStripItem.cs,
100         ToolStripMenuItem.cs, ToolStripOverflowButton.cs, ToolStripPanel.cs,
101         ToolStripPanelRow.cs, ToolStripProfessionalRenderer.cs, ToolStripSplitButton.cs,
102         ToolStripStatusLabel.cs, ToolStripTextBox.cs: Corcompare work.
103
104 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
105
106         * XplatUI.cs: Fixed returning driver.KeyboardSpeed instead of
107           driver.KeyboardDelay from XplatUI.KeyboardDelay 
108         * XplatUIW      in32.cs: Implemented KeyboardSpeed/KeyboardDelay properties
109           (patch by Sergey Volk)
110
111 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
112
113         * ToolWindowManager.cs: Added, contains logic for
114           tool windows.
115         * CreateParams.cs: Add a few helper methods and an
116           internal variable to know which control the CreateParams belongs
117           to.
118         * Control.cs: Call Form.ChangingParent when the
119           parent is about to be changed.
120         * XplatUIX11.cs: DeriveStyles (): Set
121           caption_height for all windows that have captions and are children.
122           Update to use ToolWindowManager instead of InternalWindowManager
123           for ToolWindows.
124         * XplatUIWin32.cs: Set fake window styles for all
125           windows that have window managers.
126         * MdiWindowManager.cs: Added MaximizedTitleButtons (buttons are
127           now duplicated for mdi windows when they are
128           maximized, first for the buttons the window itself has, then for
129           the buttons that appear in the menu bar. Makes things a little
130           easier). Updated UpdateWindowDecorations, SetWindowState and the
131           mouse eventhandlers accordingly.
132         * Form.cs: Add ChangingParent (), contains the
133           logic of what should happen when the parent changes. In MdiParent
134           don't set things that ChangingParent () is doing. When handling
135           WM_CLOSE, we can close the form if there are any other modal forms
136           and the current form is a descendent of the modal form.
137         * InternalWindowManager.cs: A lot of refactoring,
138           the title buttons are now extracted to a separate container class
139           that takes care of all button code (clicks, tooltips, etc). Moved
140           Iconic|Maximized|Normal Bounds properties to this class from
141           MdiWindowManager, so that the window state logic can succeed for
142           other than mdi wm's. Implemented general window state change logic.
143           Moved CreateButtons to ThemeWin32Classic, since the theme might
144           override which buttons are available when as well as the exact
145           location.
146         * FormWindowManager.cs: Added, contains logic for
147           normal forms.
148         * ThemeWin32Classic.cs: ManagedWindowSetButtonLocations now decides
149           which buttons go where (and if they are at all visible). 
150           Removed special handling of maximized windows, since they aren't special. 
151           In DrawManagedWindowDecorations don't try to draw the text if it is
152           empty.
153         * MdiClient.cs: ArrangeIconicWindows: Don't  calculate any sizes, 
154           use whatever the wm gives us.
155
156 2007-03-02  Jonathan Pobst  <monkey@jpobst.com>
157
158         * ButtonBase.cs: Add 2.0 properties.
159         * Button.cs: Override Draw for 2.0.
160         * Control.cs: Add Entered and Selected properties.
161         * FlatButtonAppearance.cs, TextFormatFlags.cs, TextImageRelation.cs,
162         TextRenderer.cs: Make internal for 1.1 to unify drawing code.
163         * Theme.cs: New abstract functions for drawing Standard, Flat, Popup
164         buttons.
165         * ThemeWin32Classic.cs: Implement layout calculations for 2.0 buttons.
166
167 2007-03-01  Jonathan Pobst  <monkey@jpobst.com>
168
169         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code.  :/
170
171 2007-03-01  Jonathan Pobst  <monkey@jpobst.com>
172
173         * XplatUIWin32.cs: Register a new class with Windows each time we get
174         a new ClassStyle.  [Fixes bugs #79432, #80817]
175         * Controls.cs: Set the correct ClassStyle in CreateParams.
176         * ToolStripDropDown.cs: Don't request an invalid ClassStyle.
177
178 2007-03-01  Gert Driesen  <drieseng@users.sourceforge.net>
179
180         * ListView.cs: Add fireEvent argument to ReorderColumn since the
181         ColumnReordered event must not be signaled when modifying DisplayIndex
182         of a ColumnHeader. Added internal ReorderColumns method which takes
183         care of drawing, and updating the internal DisplayIndex of the
184         ColumnHeader. Added AddColumn method which is invoked from
185         ColumnHeaderCollection when adding or inserting columns, and which
186         ensures that reorder_columns_indices is kept in sync. Avoid redrawing
187         after adding each ColumnHeader in ColumnHeaderCollection.AddRange.
188         Recalculated dispay indices after removing a ColumnHeader.
189         * ColumnHeader.cs: Save DisplayIndex separately from ListView to
190         match MS. Allows last display index to be returned after ListView
191         is disposed. Update actual location of ColumnHeader when DisplayIndex
192         is modified.
193
194 2007-03-01  Everaldo Canuto  <everaldo@simios.org>
195
196         * LinkLabel.cs: Improve CalcTrimRectangle.
197         
198         * ThemeWin32Classic.cs: Fix some compilation problem under VS 2003.
199
200 2007-02-28  Everaldo Canuto  <everaldo@simios.org>
201
202         * LinkLabel.cs: Rename CalcMeasurementFactor as CalcTrimRectangle and
203         get rectangle as a result value.
204
205 2007-02-28  Everaldo Canuto  <everaldo@simios.org>
206
207         * LinkLabel.cs: Theres some diferences between rectangle return from 
208         MeasureCharacterRanges and the area used for DrawString to fix this 
209         CalcMeasurementFactor method was created, it calcules the diferences
210         to be use later to adjust rectangle in draw operations. Fixes #80473.
211         
212         * ThemeWin32Classic.cs: Use factor calculated by CalcMeasurementFactor
213         to adjust draw rectangle.
214
215 2007-02-27  Everaldo Canuto  <everaldo@simios.org>
216
217         * ThemeWin32Classic.cs: In DrawLinkLabel draw focus rectangle before draw
218         text and some other changes to reduce and optimize source code.
219
220 2007-02-27  Jonathan Pobst  <monkey@jpobst.com>
221
222         * RadioButton.cs: Implement 2.0 event.
223         * RelatedImageListAttribute.cs: Implement new class.
224
225 2007-02-27  Everaldo Canuto  <everaldo@simios.org>
226
227         * MenuAPI.cs: Change keynav_state before call SelectItem. Fixes #80901.
228
229 2007-02-27  Jonathan Pobst  <monkey@jpobst.com>
230
231         * CheckBox.cs: Implement 2.0 functionality.
232
233 2007-02-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
234
235         * ListView.cs: Refactor Add and AddRange methods of
236         ListViewItemCollection, to not update the ListView
237         everytime an item is added in AddRange. Also move the update
238         code to a new CollectionChanged method, and call it
239         from other methods that need it as well (this should also fix some
240         bugs when Sorting is used).
241
242 2007-02-27  Jackson Harper  <jackson@ximian.com>
243
244         * TextControl.cs: Try to never let the caret stay in a non-text
245         tag.
246         * TextBoxBase.cs: Update the caret.
247
248 2007-02-26  Jonathan Pobst  <monkey@jpobst.com>
249
250         * XplatUIStructs.cs: Add some convenience methods for POINT structure.
251         * XplatUIWin32.cs: Add some convenience methods for RECT structure,
252         delete POINT structure, duplicate of one in XplatUIStructs.
253         * TextRenderer.cs: Use XplatUIWin32.RECT instead of UXTheme.RECT.
254
255 2007-02-26  Gert Driesen  <drieseng@users.sourceforge.net>
256
257         * ListView.cs: Initialize LabelEditEventArgs after setting Text of
258         edit box since otherwise the Label would immediately be set (even if
259         the user did not modify the label). In OnKeyDown set Handled to true
260         if Return or Escape was pressed. In ColumnHeaderCollection unlink
261         columns that are to be removed. In ListViewItemCollection unlink items
262         that are to be removed.
263
264 2007-02-24  Jonathan Pobst  <monkey@jpobst.com>
265
266         * TextRenderer.cs: If we set a GDI clip region, we need to clear
267         it when we are done.  [Fixes bug #80949]
268
269 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
270
271         * Form.cs: Wrap checking ShowWithoutActivation in a NET_2_0 block.
272
273 2007-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
274
275         * ListView.cs: I forgot to commit the changes for ListView 
276         in my previous patch.
277
278 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
279
280         * Clipboard.cs: Partially implement an overload of SetDataObject.
281         * Form.cs: Implement ShowWithoutActivation.
282         * XPlatUIWin32.cs: Fix for WM_SHOWNOACTIVATE for forms.
283
284 2007-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
285
286         This is a first set of changes to make the Virtual mode works,
287         by avoiding the retrieval of ListViewItem instances until
288         draw time.
289
290         * ListView.cs: Store item position in the ListView instead of the
291         ListViewItem, this way we don't request the Bounds property of
292         ListViewItem inside the ListView calculations, as well as cache the item
293         size in item_size field. Store indexes instead of ListViewItem
294         instances in the matrix used by icon view. Add a ItemMatrixLocation
295         struct to hold the row and col info of the matrix info.
296
297         * ListViewItem.cs: Don't store the location anymore, and only cache
298         the rectangles for GetBounds. Use the ListView.GetItemLocation
299         method to retrieve the actual location.
300
301 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
302
303         * TextRenderer.cs: Add clipping support, thanks to George.
304         [Fixes bug #80949]
305
306 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
307
308         * ListViewItem.cs: Cancel label edit when item is removed from 
309         ListView.
310         * ListView.cs: Move setting of focus to EndEdit. Fire BeforeLabelEdit
311         event before the edit textbox is displayed.  Added CancelEdit method
312         which is used end to editing while ignoring the value set by the
313         user. In EndEdit, set focus to ListView to avoid losing focus to
314         other controls. In ListViewItemCollection.Clear, cancel editing of
315         any of the items.  In Remove, cancel editing of item being removed.
316         Avoid udplicate code by modifing RemoveAt to invoke Remove.
317
318 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
319
320         * FileDialog.cs: Update FSEntry when move is successful. Fixes
321         bug #80948.  
322
323 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
324
325         * MainMenu.cs: Change Draw method to take care about MenuOrigin to be 
326         compatible with non X11 systems. Fixes #80901.
327
328 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
329
330         * ListView.cs: Added bool argument to UpdateMultiSelection to specify
331         whether the item should be unselected and reselect. We do no want this
332         when we're starting to edit the label. Do not fire the 
333         SelectedIndexChanged event from ListView when its already been fired
334         by modifying ListViewItem.Selected. Fixes bug #80943.
335
336 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
337
338         * TextRenderer.cs: Previos commit logic was backwards.
339
340 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
341
342         * TextRenderer.cs: Don't add padding on MeasureText if we were
343         sent the NoPadding flag.
344
345 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
346
347         * ThemeWin32Classic.cs: Invert order of drawing operation with DrawImage
348         after DrawButton. To prevent image overlaps button borders SetClip and 
349         ResetClip added before and after draw image. Fixes #79129.
350
351 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
352
353         * FolderBrowserDialog.cs: Use ClientSize instead of Size to specify 
354         window size, it fix problem when you run under win32 that theres
355         Size diferent than ClientSize. Also fix controls size and positions
356         to mimic Win32. Fixes #80837.
357
358 2007-02-22  Everaldo Canuto  <everaldo@simios.org>
359
360         * Form.cs: Handle WM_NCHITTEST and return HTMENU when point is on 
361         menu area to fix some problems for non X11 systems. Fixes #80613.
362
363 2007-02-22  Jackson Harper  <jackson@ximian.com>
364
365         * TreeNode.cs: When a node is expanded, set its is_expanded flag
366         even if it doesn't have any children.
367
368 2007-02-22  Jackson Harper  <jackson@ximian.com>
369
370         * TreeView.cs: Calculate the top node 'on the fly', this
371         eliminates issues where you need to click on the tree before
372         scrolling it to get the top node computed correctly.
373         * TreeNodeCollection.cs: We don't need to mess with the top node
374         anymore.
375
376 2007-02-22  Jackson Harper  <jackson@ximian.com>
377
378         * DataGridViewRow.cs: Fix typo so height can actually be set.
379         Patch by Peter Grimm.
380
381 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
382
383         * FileDialog.cs: Fixed support for renaming files and directories.
384         * ListView.cs: Do not lose focus when edit is canceled. Process
385         Escape as regular key (to prevent closing of dialogs).
386
387 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
388
389         * ListView.cs: Removed TODO for LabelEdit. Removed extra tabs and
390         spaces. Changed spaces to tabs. Removed unnecessary init of bools.
391
392 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
393
394         * FileDialog.cs: LabelEditEventArgs.Label now returns null when user
395         did not modify label.
396         * ListView.cs: Only set LabelEditEventArgs.Label if user actually
397         modified the text. Reset Label when user presses Escape in edit mode.
398         Move focus to ListView after having cancelled or finished editing the
399         label.
400
401 2007-02-21  Gert Driesen  <drieseng@users.sourceforge.net>
402
403         * ComboBox.cs: Removed unnecessary initializations. Marked items field
404         private. Clear textbox when Text is set to null and SelectedIndex is
405         already -1.
406         * FileDialog.cs: Removed unnecessary initializations. Removed 
407         workarounds for ComboBox bugs that are now fixed. Modified
408         DefaultExt, InitialDirectory and Title property to change null to
409         zero-length string in getters. Avoid directly accessing fields.
410
411 2007-02-20  Jackson Harper  <jackson@ximian.com>
412
413         * TextControl.cs: Remove RecalAlignments call, that was some
414         debugging leftovers.
415         - Don't use the line indent when we shouldn't.
416         * RichTextBox.cs: Add support for paragraph left indents.
417
418 2007-02-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
419
420         * Control.cs: Fix BeginInvoke signature for 2.0 profile.
421         Seems like the class status pages doesn't catch params differences.
422
423 2007-02-19  Gert Driesen  <drieseng@users.sourceforge.net>
424
425         * ComboBox.cs: Removed extra tabs. Changes spaces to tabs.
426
427 2007-02-19  Gert Driesen  <drieseng@users.sourceforge.net>
428
429         * ComboBox.cs: Setting Text should have no effect if item text of
430         selected item exactly matches value. First lookup text using
431         case-sensitive comparison, and fallback to case-insensitive comparison.
432         FindString(Exact) returns -1 if search string is null. On 2.0 profile, 
433         allow startIndex to be last index. Changed ArgumentOutOfRangeException
434         paramname to match MS. Restart from first item if string is not found
435         after startIndex. Fixed paramname of ArgumentNullException that is
436         thrown for null value in ObjectCollection.Contains.
437
438 2007-02-19  Everaldo Canuto  <everaldo@simios.org>
439
440         * XplatUIStructs.cs: WM_XXX UISTATE elements uncommented.
441
442 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
443
444         * ListControl.cs: In SelectedValue use value.Equals to compare for
445         equality instead of ==, otherwise it will fail for strings.
446         Fixes #80794.
447
448 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
449         
450         * ComboBox.cs: Switch the order to ShowSelection and ActivateCaret,
451         since the caret won't show up unless ShowSelection is true. 
452         Fixes #80795.
453
454 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
455
456         * Application.cs: When disabling all forms but the main form, do not
457           disable any descendants of the main form (such as mdi children or
458           other parented forms). Fixes #80822 on Windows.
459         * Form.cs: If we have a parent, set the WS_CHILD style.
460         * Control.cs: Update the window styles if the control whose parent has
461           changed is a form (the WS_CHILD style has to be switched).
462
463 2007-02-19  Everaldo Canuto  <everaldo@simios.org>
464
465         * XplatUIStructs.cs: MsgUIState structure added.
466
467 2007-02-18  Gert Driesen  <drieseng@users.sourceforge.net>
468
469         * FileDialog.cs: Removed need for separate fileName field. On 2.0
470         profile, do not check filename(s) for illegal character if filename(s)
471         were set non-interactively but always check on 1.0 profile. Fixed NRE
472          in DefaultExt and only strip off first leading dot. Improve exception
473         message when invalid Filter is set. Do not ignore InitialDirectory if
474         it does no exist. Store specified Title, and if empty use default
475         title (depending on type of dialog). Added an internal DialogTitle 
476         property for retrieving dialog title. Fixed logic of displayed dir to
477         more closely match MS. Avoid setting ComboBox.Text to a zero-length 
478         string as its buggy.
479         * OpenFileDialog.cs: In OpenFile, throw ArgumentNullException if
480         FileName is a zero-length string (it can never be null). Override 
481         DialogTitle property to set default title of dialog box.
482         * SaveFileDialog.cs: Override DialogTitle property to set default
483         title of dialog box.
484
485 2007-02-18  Gert Driesen  <drieseng@users.sourceforge.net>
486
487         * FileDialog.cs: Modify default text of filename and filetype labels
488         to match that of MS. Reset do_not_call_OnSelectedIndexChanged...
489         after we've updated the SelectedIndex. Fixes part of bug #80887.
490         * SaveFileDialog.cs: Set text of filetype label.
491
492 2007-02-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
493
494         * LabelEditEventArgs.cs: New internal SetLabel method, to set the
495         label field. Needed by latest Jackson's fixes for ListView.
496
497 2007-02-16  Andreia Gaita  <avidigal@novell.com>
498
499         * PrintPreviewControl/PrintPreviewDialog: Properly dispose of 
500         print preview images.
501
502 2007-02-16  Jackson Harper  <jackson@ximian.com>
503
504         * ListView.cs: Make AfterLabelEdit work correctly.
505         * FileDialog.cs: After changing the name of the folder, we have to
506         make sure that it is created, or that we pop up an error because
507         it already exists.
508
509 2007-02-16  Jackson Harper  <jackson@ximian.com>
510
511         * X11Dnd.cs: Implement aliases on mime handlers, so things like
512         System.String are mapped to text.
513         - Handle dataobjects, getting all the possible formats out of them
514         - We dont need the drag event args before we give feedback. This
515         allows feedback cursors to be immediate before selections have
516         been converted.
517
518 2007-02-16  Jackson Harper  <jackson@ximian.com>
519
520         * TextBoxBase.cs: Modified the method for inserting images to
521         taking a line and position instead of tag and position.
522         * RichTextBox.cs: Handle PngBlip data by inserting the png image
523         into the RTF file.
524         * TextControl.cs: Allow images to be inserted as the first tag of
525         a line.
526         - Fix some off by one issues when we assume the first tag is a
527         text tag, not an image tag.
528
529 2007-02-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
530
531         * ListView.cs: Set focus to ListView when ItemControl gets a
532         WM_RBUTTONDOWN message, to mimic .Net behaviour. 
533         Fixes part of #80467.
534
535 2007-02-15  Rolf Bjarne Kvinge <RKvinge@novell.com> 
536
537         * DateTimePicker.cs: Call RecreateHandle if the Format changes and
538           validate Text input (if null or empty string reset Value to default
539           value). Fixes #80830.
540
541 2007-02-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
542
543         * ListView.cs: Set owner as null for columns and items when
544         Dispose is invoked. Fixes #80607.
545
546 2007-02-14  Jonathan Pobst  <monkey@jpobst.com>
547
548         * ToolStrip.cs: Allow LayoutStyle.Flow, make sure to call OnOpening when
549         showing DropDowns, don't show a Grip when doing Flow layout.
550         [This fixes the toolbox in PDN 2.72.]
551         * ToolStripItem.cs: Add Anchor property and some internal properties to
552         reduces needed changes to FlowLayout.
553         * ToolStripOverflow.cs: Remove unused variable.
554         * ToolStripSplitStackLayout.cs: If a ToolStripItem isn't visible, don't
555         use it in the layout calculations.
556
557 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
558
559         * ToolTip.cs: Add HotkeyPrefix.Hide to MeasureString format, it fix an issue
560         reported in #79640.
561         
562         * ThemeWin32Classic.cs: Uses format for MeasureString in ToolTipSize to fiz
563         size calculation.
564
565 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
566
567         * ToolBar.cs, ToolBarButton.cs: Revert and remove HotkeyPrefix from 
568         MeasureString format, it can make button very large in some cases, it is
569         strange but is what win32 do.
570
571 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
572
573         * ToolBar.cs, ToolBarButton.cs: Uses format in MeasureString to fix string 
574         size calculation.
575
576         * ThemeWin32Classic.cs: Set HotkeyPrefix in toolbar text format to fix text
577         rendering, the value is based on MenuAccessKeysUnderlined.
578
579 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
580
581         * Theme.cs: Change MenuAccessKeysUnderlined to "true" that is value used
582         for most themes.
583         
584         * ThemeWin32Classic.cs: Override MenuAccessKeysUnderlined as false.
585         
586         * ThemeNice.cs, ThemeGtk.cs, ThemeClearlooks.cs: Remove always_draw_hotkeys
587         and use MenuAccessKeysUnderlined instead.
588
589 2007-02-13  Andreia Gaita  <avidigal@novell.com>
590
591         * ContainerControl.cs: Focus fix for nunit treeview selection bug.
592         A selected control would not get a Focus call if:
593                 - the default active control of the container is the same as
594                   the one that was selected
595                 - we are switching from one container to another
596         Under these conditions, the container being selected already has
597         an active_control, which is the same as the one being activated, 
598         so set_ActiveControl would always return and not send the Focus
599         call. Fix to check if the currently active control of the container
600         is actually focused.
601
602 2007-02-13  Jonathan Pobst  <monkey@jpobst.com>
603
604         * StatusStrip.cs: Implement the spring layout.
605         * ToolStripControlHost.cs: Make sure the hosted control's visibility
606         always matches the host.
607         * ToolStripItem.cs: Write a more accurate layout for TextBeforeImage
608         and TextAfterImage.
609
610 2007-02-13  Andreia Gaita  <avidigal@novell.com>
611
612         * Control.cs: Code reorganization only.
613           - Reorganize the WndProc cases so that each case has it's own handling method, 
614           to help with the no-line-numbering stack traces.
615           - Formatting changes (it's vstudio's fault, really :p)
616
617 2007-02-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
618
619         * MonthCalendar.cs: Switch to using Thread.CurrentCulture instead of
620           Thread.CurrentUICulture to match DateTimePicker's (and MS)
621           behaviour.
622
623 2007-02-12  Jackson Harper  <jackson@ximian.com>
624
625         * RichTextBox.cs:
626         * TextBox.cs: By default we have a non multiline document
627         - use the multiline property instead of the internal variable
628         * TextBoxBase.cs: Treat multiline and non multiline the same in
629         most places.
630         - Use the documents multiline flag instead of tracking it ourself
631         * TextControl.cs: Attempt at getting multiline to match MS
632         behavior.  Lines now track an offset, which is either their X or Y
633         offset depending on whether or not we are in multiline mode.
634         - Update all the methods to understand that lines have an X value.
635         - Fix crash in Undo::Duplicate when empty lines are deleted.
636
637 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
638
639         * Label.cs: CalcPreferredHeight and CalcPreferredWidth methods removed and 
640         code moved to properties PreferredHeight and PreferredWidth. It solve the
641         all problems when preferred sizes must be recalculated. Fixes #80801.
642
643 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
644
645         * Label.cs: Fix CalcPreferredHeight for 2.0 that must return only
646         font height when compatible_text_rendering is false. Partially fix #80801.
647
648 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
649
650         * Form.cs: Fixed typo in exception message. Fixes bug #80779.
651
652 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
653
654         * Form.cs: Improved exception messages in ShowDialog.
655
656 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
657
658         * PrintDialog.cs: On 1.0 profile, throw ArgumentException in RunDialog if
659         PrinterSettins has not been set. On 2.0 profile, initialize PrinterSettings
660         if not set. Fixes bug #80764. Avoid accessing current_settings field
661         directly.
662
663 2007-02-08  Everaldo Canuto  <everaldo@simios.org>
664
665         * Theme.cs: An new property MenuAccessKeysUnderlined added with default value
666         false.
667
668         * SystemInformation.cs: An new property MenuAccessKeysUnderlined added, it is
669         public in 2.0 and for easy maintenance and dont break compatibility it is 
670         internal in 1.1.
671         
672 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
673
674         * ToolStripItem.cs: Implement using images from ImageList.
675
676 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
677
678         * DateTimePicker.cs: Change default date-formatting culture from
679           CurrentThread.CurrentUICulture to CurrentThread.CurrentCulture,
680           seems to be the way MS does it.
681
682 2007-02-08  Andreia Gaita  <avidigal@novell.com>
683
684         * PrintPreviewControl.cs: rewrite toolbar code to fix #80725. Correct 6-up image 
685         (the 6 was cut off on the right side)
686
687 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
688
689         * Form.cs: Tell MenuStrips to close when the form is clicked.
690         * MenuStrip.cs, ToolStrip.cs, ToolStripControlHost.cs, 
691         ToolStripDropDown.cs, ToolStripDropDownItem.cs, ToolStripItem.cs,
692         ToolStripItemCollection.cs, ToolStripMenuItem.cs, ToolStripProfessionalRenderer.cs,
693         ToolStripSplitButton.cs, ToolStripSplitStackLayout.cs: Add 
694         support for Overflow, where items that do not fit are automatically
695         reparented to a drop down menu.
696         * ToolStripOverflow.cs, ToolStripOverflowButton.cs: Added.
697         Also: fixes bug #80747.
698
699 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
700
701         * ComboBox.cs: Remove warning (unused code).
702         * ScrollableControl.cs: Remove warning for 1.1 profile.
703
704 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
705
706         * Form.cs: Remove a warning.
707
708 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
709
710         * DateTimePicker.cs: Fixed a NRE if CustomFormat was null. Handles the
711           'g' specifier, not documented anywhere, but seems to always show up
712           as a single space (might have something to do with the DateTime 'g'
713           specifier, which is the era format, but since DateTimePicker can't
714           go earlier than 1753 it wouldn't matter) . Fixed quote handling,
715           won't crash if the format has an unmatched quote. Now shows
716           single-character formats correctly. Fixes #80744.
717
718 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
719
720         * StatusStrip.cs: Stretch property needs to call base.Stretch,
721         not this.Stretch to fix stack overflow. [Fixes bug #80760]
722
723 2007-02-07  Chris Toshok  <toshok@ximian.com>
724
725         * ThemeWin32Classic.cs (DrawButtonBase): don't clear to the
726         background color.  it overwrites the background image we've
727         already painted.  Fixes #80599.
728
729 2007-02-07  Chris Toshok  <toshok@ximian.com>
730
731         * DataGrid.cs: return immediately from Edit() when there are no
732         columns.  Fixes #80662.
733
734 2007-02-07  Chris Toshok  <toshok@ximian.com>
735
736         * MessageBox.cs: fix #80625.  don't always show the Help button in
737         2.0.  use the displayHelpButton parameter to determine if we
738         should show it. Also, make the internal show_help field private.
739
740 2007-02-07  Chris Toshok  <toshok@ximian.com>
741
742         * Control.cs (SetVisibleCore): check in the proposed patch for
743         80604, and set is_visible before calling CreateControl.
744
745 2007-02-07  Jonathan Pobst  <monkey@jpobst.com>
746
747         * ListView.cs: UseCompatibleStateImageBehavior setter changed from NIEX to 
748         MonoInternalNote.  This is added automagically by VS2005, so let's not crash
749         on it.
750
751 2007-02-06  Everaldo Canuto  <everaldo@simios.org>
752
753         * MenuAPI.cs: hotkey_active internal field added, it is required because
754         we need to know when hotkeys must be draw, before this change a keystate
755         Navigating was used but we can have menu in navigating state without
756         hotkeys. Fixes #80694.
757         
758         * ThemeWin32Classic.cs: Only draw hot keys when hotkey_active is true.
759
760 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
761
762         * Control.cs: Handle WM_CAPTURECHANGED in 1.1 code as well, and change
763           corresponding events and methods to be internal for 1.1 profile and
764           public for 2.0 profile (required by SizeGrip).
765         * Form.cs: Use SizeGrip as a virtual SizeGrip (and don't add it to the
766           implicit control list). Don't set the size nor the location of the
767           SizeGrip anymore as it's not needed.
768         * SizeGrip.cs: Rewrote large parts, it now supports a virtual mode to
769           draw directly on the captured control (fixes #80656). Removed
770           ShowGrip (it wasn't used anywhere), redraw (always true), added
771           GetDefaultSize and GetDefaultRectangle to calculate defaults.
772         * ScrollableControl.cs: Make UpdateSIzeGripVisible internal so it can
773           be called from SizeGrip.
774
775 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
776
777         * Timer.cs: Throw ArgumentException if Interval <= 0.
778
779 2007-02-05  Jackson Harper  <jackson@ximian.com>
780
781         * TreeView.cs: We need to check scrollbar visibility when window
782         visibility is updated, because non visible trees don't ever add
783         scrollbars.
784         * Cursor.cs: We want the override cursor to be reset to NULL when
785         we set current cursor to the default cursor.
786
787 2007-02-05  Jackson Harper  <jackson@ximian.com>
788
789         * TextControl.cs: Don't have crlfs when we are non multiline.
790         - Consolidate the line position.
791
792 2007-02-05  Jackson Harper  <jackson@ximian.com>
793
794         * X11Keyboard.cs: BACK+CTRL gets a special char code.
795
796 2007-02-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
797
798         * XplatUIX11.cs: Implemented WM_CAPTURECHANGED support, we're now
799           handling LeaveNotify->NotifyUngrab in order to send
800           WM_CAPTURECHANGED. However sometimes the NotifyUngrab arrives late
801           after calling XUngrabPointer, so we call WindowUngrabbed directly
802           from UngrabWindow in order to send WM_CAPTURECHANGED immediately.
803         * Control.cs: Handle WM_CAPTURECHANGED in order to raise
804           MouseCaptureChanged correctly. Also create handles if changing
805           Capture (matches MS behaviour).
806
807 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
808
809         * SizeGrip.cs: Make the last change 2.0 only.
810
811 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
812
813         * SizeGrip.cs: If resizing and the capture is lost, revert any size
814           changes to initial size (fixes #80597).
815
816 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
817
818         * SizeGrip.cs: Use the normal icon for SizeGrip if it is disabled.
819
820 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
821
822         * SizeGrip.cs: Only draw sizegrip if enabled (but always draw
823           background) and only allow dragging if enabled. This way the
824           sizegrip can be used to fill the open square that otherwise would
825           have been shown in the bottom right corner of ScrollableControl
826           when ScrollableControl is not suppose to support sizing.
827         * ScrollableControl.cs: Create UpdateSizeGripVisible to decide when the
828           sizegrip is shown and enabled, and hook up with necessary events.
829
830 2007-02-01  Chris Toshok  <toshok@ximian.com>
831
832         * DataGridTextBoxColumn.cs: clean up the
833         GetFormattedString/GetColumnValueAtRow combination of functions.
834         Also fix UpdateUI, and the initial state of
835         IsInEditOrNavigateMode.
836
837         * DataGridTextBox.cs: don't chain up to base.OnMouseWheel - we
838         aren't supposed to scroll the textbox here, we're supposed to
839         scroll the datagrid.
840
841 2007-02-01  Chris Toshok  <toshok@ximian.com>
842
843         * ComboBox.cs: use vscrollbar_ctrl.Dock instead of explicitly
844         setting the position.
845
846 2007-02-01  Chris Toshok  <toshok@ximian.com>
847
848         * DataGrid.cs (OnLeave): we can now do the CancelCurrentEdit thing
849         here, since the most recent focus fixes keep us from generating
850         the Leave event when our textbox gets focus.
851         (Edit): we should be passing null for the column style's
852         instantText parameter.
853         
854 2007-02-01  Jonathan Pobst  <monkey@jpobst.com>
855
856         * ToolStripDropDownItem.cs: Make sure DropDownOpening event is 
857         raised.  Fixes menu text/icons not showing up in PDN.
858
859 2007-02-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
860
861         * Control.cs: Remove code in constructor that makes every
862         control with WS_CHILD set have initial location -1, -1.
863
864 2007-01-31  Jackson Harper  <jackson@ximian.com>
865
866         * X11Dnd.cs: Take the keyboard on init to reduce coupling with
867         XplatUIX11.
868         * XplatUIX11.cs: Give teh keyboard to teh dnd.
869
870 2007-01-31  Jackson Harper  <jackson@ximian.com>
871
872         * X11Dnd.cs: Use IDataObject instead of the DataObject class.
873         - Remove some debug code.
874
875 2007-01-31  Jackson Harper  <jackson@ximian.com>
876
877         * XplatUIX11.cs: If you set the override cursor during a grab, it
878         should actually override the grab cursor.  This comes into play
879         when you are setting custom cursors in a DND feedback method.
880
881 2007-01-31  Jackson Harper  <jackson@ximian.com>
882
883         * X11Dnd.cs: Add support for handling the QueryContinue and
884         GiveFeedback events.
885         - Cancel drag and drop actions when the escape key is clicked.
886         * XplatUIX11.cs: Let the dnd subsystem get key events, so that it
887         can handle the ESCAPE key.
888         - Allow dnd to swallow BUTTONUP messages if it needs to.  This is
889         done when dnd events are continued after the button is released.
890         - Add a new helper method so that dnd can translate key events.
891
892 2007-01-31  Alexander Olk  <alex.olk@googlemail.com>
893
894         * FileDialog.cs: Rewrite of Jacksons OnClickCancelButton patch to
895         make it more obvious what is happening.
896
897 2007-01-30  Jackson Harper  <jackson@ximian.com>
898
899         * XplatUIX11.cs: Don't break when handling button release in drag
900         and drop operations. We need that BUTTONUP message to get through
901         so capture is released.
902         * X11Dnd.cs: We don't need to manually grab the pointer anymore,
903         this is handled automatically when the mouse is down.
904
905 2007-01-30  Jackson Harper  <jackson@ximian.com>
906
907         * FileDialog.cs: OnClickCancelButton gets called whenever the dialog
908         is closed, so we need to make sure that we aren't changing the
909         dialog result when the OK (Open or Save) button has been clicked
910         and we are closing the window ourselves.  Note we don't need to
911         worry about the cache being written in this case, because it was
912         already done in the previous FilOk call.
913
914 2007-01-30  Rolf Bjarne Kvinge  <RKvinge@novell.com>
915         
916         * DateTimePicker.cs: Remove a warning.
917         * ComboBox.cs: Remove a couple of warnings.
918
919 2007-01-29  Chris Toshok  <toshok@ximian.com>
920
921         * XplatUIX11.cs: don't crash, and remove the icon if the user has
922         set one, if SetIcon is passed a null icon.
923
924 2007-01-29  Andreia Gaita  <avidigal@novell.com>
925
926         * TextBox.cs: Redraw when the password characters changes
927         * TextControl.cs: Check if textbox has a password char and draw 
928         a line of password chars instead of the text in the line. LineTag gets 
929         an extra Draw() method which allows document.Draw to override the text 
930         that will be drawn. Removes 1024 char limitation on length of passworded 
931         lines.
932
933 2007-01-29  Jackson Harper  <jackson@ximian.com>
934
935         * TextBoxBase.cs: Deleting sections of text is undoable.  Deleting
936         single chars is not.
937
938 2007-01-28  Jonathan Pobst  <monkey@jpobst.com>
939
940         * TextRenderer.cs: Fix cutting off the bottom of letters like "j" by
941         one pixel.  Fix a StackOverflowException caused by an overload wrongly
942         calling itself.
943
944 2007-01-26  Everaldo Canuto  <everaldo@simios.org>
945
946         * MenuAPI.cs: Fixed kerboard grab problem when "enter"key is pressed,
947         also remove ProcessArrowKey and put the code inside ProcessKeys.
948
949 2007-01-26  Jonathan Pobst  <monkey@jpobst.com>
950
951         * PaddingConverter.cs: Added.
952
953 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
954         
955         * ThemeWin32Classic.cs: Only draw the text of a StatusBar if
956         ShowPanels is false (fixes #80600). Only draw up to 127 characters
957         of text (fixes #80601). For panels clip the text to draw to the
958         panel (fixes #80603).
959
960 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
961
962         * ComboBox.cs: Fixed implementation of ResetText.
963
964 2007-01-25  Jackson Harper  <jackson@ximian.com>
965
966         * TextControl.cs: For the last char of a line we need to use the
967         line size, not that chars width, since it won't actually be
968         computed since the right side of a char is based on the start of
969         the left side of the next char, and the next char does not exist.
970
971 2007-01-25  Chris Toshok  <toshok@ximian.com>
972
973         * Splitter.cs: fix the new unit tests, and reindent some switch
974         statements.
975
976 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
977
978         * ComboBox.cs: Implemented 2.0 methods and events.
979         * TextBoxBase.cs: Added OnTextUpdate, so that
980         ComboBox.ComboTextBox can inform ComboBox of it.
981
982 2007-01-25  Jackson Harper  <jackson@ximian.com>
983
984         * TextControl.cs: Respect ShowSelection when deciding whether or
985         not to display the caret, this allows comboboxes to have carets
986         when the combotextbox does not have focus.
987
988 2007-01-25  Jackson Harper  <jackson@ximian.com>
989
990         * TextControl.cs: Add a Suspend/Resume for updating, basically the
991         same as the Suspend/Resume for recalc, except this will do actual
992         Invalidates.
993         - New Undo manager, works much like the MS version.
994         - Implemented Redo
995         * TextBoxBase.cs: The Cut operation is undoable.
996
997 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
998         
999         * TextBoxBase.cs: Don't antialias text. Makes it look way better
1000         on Windows (no difference on Linux).    
1001
1002 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1003
1004         * XplatUIWin32.cs: Set SWP_NOACTIVATE in RequestNCRecalc as well,
1005         we don't want to activate any windows. Fixes #79433.
1006
1007 2007-01-25  Jonathan Pobst  <monkey@jpobst.com>
1008
1009         - ButtonBase.cs: Fix capitalization of parameter: disposing.
1010         [Fixes bug #80609]
1011
1012 2007-01-25  Alexander Olk  <alex.olk@googlemail.com>
1013
1014         * FileDialog.cs:
1015         - Move to using System.ComponentModel.EventHandlerList
1016         - Replace Refresh with Invalidate
1017         - Clear the mime filecache on closing
1018         - Some other memory reducing work. After beeing closed FD now uses
1019           only about 300 KB for the fdo mime stuff plus the memory of the
1020           cached icons.
1021         * Mime.cs: Changed coding style and removed unnecessary commented
1022         code. Some more memory memory reducing work.
1023
1024 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1025
1026         * ComboBox.cs: Implemented FlatStyle and DropDownHeight, and added
1027         a few other missing 2.0 properties.
1028         * Theme.cs: Added DrawFlatStyleComboBox.
1029         * ThemeWin32Classic.cs: Implemented DrawFlatStyleComboBox.
1030
1031 2007-01-24  Chris Toshok  <toshok@ximian.com>
1032
1033         * XplatUIX11.cs: fix the wake_waiting logic - we always clear the
1034         wake_waiting flag, not just when there's data to be read.  if we
1035         don't, then future wakeup's won't reach us and we'll be doomed to
1036         wait for the entire 1 second timeout forever (unless there are X
1037         events to be had).
1038
1039 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
1040
1041         * ComboBox.cs: FindStringExactMaxException doesn't throw AOORE on 2.0
1042         until you pass Items.Count, not Items.Count - 1 like 1.1.
1043
1044 2007-01-24  Gert Driesen  <drieseng@users.sourceforge.net>
1045
1046         * ColumnHeader.cs: Fixed ParamName in ArgumentOutOfRangeException.
1047
1048 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
1049
1050         * ToolStripContainer.cs: The recent Dock fix exposed that I was
1051         adding the panels in the wrong order.
1052
1053 2007-01-24  Jackson Harper  <jackson@ximian.com>
1054
1055         * TextBoxBase.cs: When we move the caret we also need to move the
1056         selection, this fixes some random crashing after doing select
1057         text, unselect, delete a char, paste.
1058
1059 2007-01-24  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1060
1061         * Form.cs: Update SizeGrip's location even if it's not visible (fixes #80592).
1062
1063 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
1064
1065         * Control.cs: In OnParentBackgroundImageChanged remove conditions to call
1066         OnBackgroundImageChanged, it mimics win32 behavior. Fixes #80553. 
1067         * ToolBar.cs: Force redraw in BackgroundImageChanged.
1068
1069 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
1070
1071         * ToolBar.cs:
1072         - Implement support for vertical toolbars. Fixes #80539;
1073         - Call LayoutToolBar when resize, it fix some other problems in layout.
1074         - Rename requested_height to requested_size, as we can have width on it
1075         when toolbar is vertical.
1076         - Create a private property "Vertical" that uses Dock to verify when 
1077         toolbar is vertical or not.
1078         - Set ControlStyles when change Dock property.
1079         - Refactory in LayoutToolBar to have better variables names and to support
1080         vertical toolbars.
1081         - Fixes default value for ButtonSize when button count is equal zero, size
1082         must be (39, 36) test case writed.
1083
1084 2007-01-23  Chris Toshok  <toshok@ximian.com>
1085
1086         * Control.cs: fix the checks so that they work correctly for mdi
1087         parents/children.
1088
1089 2007-01-23  Chris Toshok  <toshok@ximian.com>
1090
1091         * Control.cs: ControlCollection seems to have super-secret
1092         abstraction breaking knowledge of Mdi containers.  allow MdiClient
1093         to add toplevel controls.
1094
1095 2007-01-23  Chris Toshok  <toshok@ximian.com>
1096
1097         * Control.cs: throw an ArgumentException if a toplevel control is
1098         added to our control collection from ControlCollection.Add, as
1099         well as from ControlCollection.IList.Add.  This fixes the
1100         ControlSetTopLevelTest.TestTopLevelAdd unit test.
1101
1102         Also, in ControlCollection.IList.Add, don't through an
1103         ArgumentNullException, throw an ArgumentException, when value ==
1104         null.  This matches MS.
1105
1106 2007-01-23  Chris Toshok  <toshok@ximian.com>
1107
1108         * BindingSource.cs: initial, incomplete, implementation of
1109         BindingSource.
1110
1111 2007-01-23  Jackson Harper  <jackson@ximian.com>
1112
1113         * TextControl.cs:
1114         * TextBoxBase.cs: Checking in some pieces of the undo stuff so
1115         that I can fix a broken unit test (TextBoxTest::ClearUndo)
1116         
1117 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
1118
1119         * ToolBar.cs: Add status fields to ToolBarButtonInfo.
1120
1121 2007-01-23  Andreia Gaita  <avidigal@novell.com>
1122
1123         * TreeNode.cs: Add new 2.0 ImageKey and SelectedImageKey properties.
1124         * TreeNodeCollection.cs: New Add() methods, ContainsKey and
1125         IndexOfKey() for 2.0
1126
1127 2007-01-23  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1128
1129         * XplatWin32.cs: In RequestNCRecalc call SetWindowPos with SWP_NOZORDER
1130         to prevent it from changing z-order.
1131         * MdiWindowManager.cs: Refactor part of SetWindowState to MdiClient, only
1132         leave UI updates in MdiWindowManager.
1133         * InternalWindowManager.cs: Check for 0 sized nc areas and make them
1134         1 sized (NC handling goes weird on Linux otherwise).
1135         * MdiClient.cs: Add missing ExStyle (WS_EX_CLIENTEDGE), so it's no longer
1136         necessary to handle WM_NCCALCSIZE anymore. This also made it possible to
1137         remove a few NCRequestRecalcs. Changed calculations in IconicBounds
1138         to use ClientSize of MdiClient instead of entire size. Refactored ActivateChild
1139         and SetWindowState(s) to allow for changing the size of an activated child
1140         before activating it (reduces a lot of flicker).
1141
1142 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
1143
1144         * Form.cs: Changing FormBorderStyle has different semantics based
1145         on whether the Form is visible or not.  If not visible, don't change
1146         the Size.  But InvalidateNC needs to be called to force the window
1147         to pick up the changes and redraw itself.  [Fixes bug #80574]
1148
1149 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
1150
1151         [Moma work]
1152         * ContainerControl.cs: ProcessCmdKey.
1153         * ErrorProvider.cs: new constructor.
1154         * Form.cs: fix AutoValidateEvent compiler warning.
1155         * Label.cs: fix OnAutoSizeChanged compiler warning.
1156         * MenuStrip.cs: fix CanOverflow compiler warning.
1157         * TabControl.cs: SelectTab, OnSelected methods, Selected event.
1158         * TextBox.cs: Dispose.
1159         * ToolStrip.cs: CanOverflow, re-enable double buffering.
1160         * ToolStripControlHost.cs: fix CausesValidation compiler warning.
1161         * ToolStripDropDown.cs: fix ContextStripMenu compiler warning.
1162         * ToolStripItem.cs: Overflow, RightToLeft properties.
1163
1164 2007-01-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1165
1166         * Form.cs: Move the layout of the main form to MdiWindowManager.
1167         * MdiWindowManager.cs: If WindowState changes from or to Maximized,
1168         do a layout of the main window to update MdiClient's client area to
1169         the right area. Fixes #80533. Remove the calculation of nc size, 
1170         it was just wrong and the correct one is the same as for 
1171         InternalWindowManager. 
1172
1173 2007-01-20  Jonathan Pobst  <monkey@jpobst.com>
1174
1175         * Control.cs: Setting Anchor or Dock needs to reset the other
1176         to its default.  [Fixes bug #80556]
1177
1178 2007-01-20  Chris Toshok  <toshok@ximian.com>
1179
1180         * CheckedListBox.cs: class status changes.
1181
1182         * ScrollableControl.cs: same.
1183
1184         * RichTextBox.cs: same.
1185
1186         * ContainerControl.cs: same.
1187
1188         * ListView.cs: same.
1189
1190         * NotifyIcon.cs: same.
1191
1192         * MenuStrip.cs: same.
1193
1194         * RadioButton.cs: same.
1195
1196         * CheckBox.cs: same.
1197
1198         * PrintPreviewDialog.cs: same.
1199
1200         * Form.cs: same.
1201
1202 2007-01-19  Jonathan Pobst  <monkey@jpobst.com>
1203
1204         * TreeNode.cs: Apply Alan's patch for Name property.
1205
1206 2007-01-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1207         
1208         * Form.cs: Implemented SizeGripStyle.
1209         * SizeGrip.cs: Check for minimum and maximum size for the
1210         control being resized and only resize if size has actually
1211         changed.
1212
1213 2007-01-19  Chris Toshok  <toshok@ximian.com>
1214
1215         * DataGridColumnStyle.cs: stop setting _readonly in the
1216         PropertyDescriptor setter.  fixes a unit test failure.
1217
1218         also, rename ParentReadOnly to TableStyleReadOnly, and have it
1219         just consult our table style (if we have one).  We don't need to
1220         consult the datagrid readonly attribute because that's passed in
1221         as the _ro arg to Edit.  this simplifies things a little.
1222         
1223         * DataGrid.cs: use CurrentColumn instead of
1224         current_cell.ColumnNumber just to simplify some of the code.
1225
1226         switch the order of some things in the CurrentCell setter to keep
1227         the previous cell from getting a textbox again -
1228         EnsureCellVisibility causes scrolling to happen, which calls Edit.
1229         So we need to set the new cell before calling it.
1230         
1231         call Edit in OnEnter, as does Microsoft.
1232         
1233         also, make sure the current table style isn't the one we create
1234         initially when checking to see if it's different than the one
1235         we're setting it to in BindColumns (this fixes #80421).
1236
1237         * GridTableStylesCollection.cs: table styles can have "" for a
1238         mapping name.  part of the fix for #80421.
1239
1240         * DataGridTextBoxColumn.cs: simplify the readonly calculation in
1241         Edit significantly.
1242
1243 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
1244
1245         * TextRenderer.cs: Rewrote to be complete-er, more MS-matching-er,
1246         and less GDI object leaky-er.
1247
1248 2007-01-18  Andreia Gaita  <avidigal@novell.com>
1249
1250         * LinkLabel.cs: Add opaque control style
1251
1252 2007-01-18  Jackson Harper  <jackson@ximian.com>
1253
1254         * TextControl.cs: Calculate width properly.
1255         - Don't store the tag's X offset, this can be figured out very
1256         easily.
1257         - When getting the caret tag make sure to get the last empty tag.
1258
1259 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
1260
1261         * Form.cs: Recalculate our size after setting a new FormBorderStyle.
1262         [Fixes bug #79959]
1263
1264         * Control.cs: Color.Empty shouldn't count for previous transparent
1265         redraw changes.
1266
1267 2007-01-18  Jackson Harper  <jackson@ximian.com>
1268
1269         * TextBox.cs:
1270         * RichTextBox.cs:
1271         * TextControl.cs: Starting to merge in some pieces of my older
1272         undo work.  Basically just some slight cleanup of the undo API.
1273
1274 2007-01-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1275
1276         * TrackBar.cs: Fix signature of RightToLeftLayout.
1277         * StatusBar.cs: Implemented missing 2.0 methods and attributes.
1278         * StatusBarPanel.cs: Implemented missing 2.0 methods and attributes.
1279         * Application.cs: Implemented UseWaitCursor.
1280
1281 2007-01-18  Jackson Harper  <jackson@ximian.com>
1282
1283         * TextControl.cs: We can't skip tags if any part of the tag is
1284         visible.
1285
1286 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
1287
1288         * ContainerControl.cs: Override OnLayout.
1289
1290 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
1291
1292         * NotifyIcon.cs: Add ContextMenuStrip and Tag properties.
1293
1294         * ContextMenuStrip.cs: Make sure context menu is shown on top of 
1295         everything else.
1296
1297 2007-01-18  Chris Toshok  <toshok@ximian.com>
1298
1299         * ContainerControl.cs: remove the partial handling of LBUTTONDOWN
1300         (leftover from the container_selected days, I'd wager).  fixes bug
1301         #80546.
1302
1303 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
1304
1305         * Control.cs: Apply patch from George to fix the new testcase on
1306         bug #80451.  We can't just check for Color.Transparent, we need 
1307         to check if the back color's alpha channel is < 255.
1308
1309 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
1310
1311         * Form.cs: Move setting show_icon = true to before the constructor
1312         so that the base constructor has that information when it calculates
1313         the form's size.  Was causing forms to be (6, 6) bigger than they
1314         were supposed to be.  Thanks for catching this Rolf!
1315
1316 2007-01-18  Jackson Harper  <jackson@ximian.com>
1317
1318         * TextControl.cs: When replacing a selection we need to invalidate
1319         from the initial selection start, because selection start is moved
1320         to the end of the replacement.
1321
1322 2007-01-18  Andreia Gaita  <avidigal@novell.com>
1323
1324         * LinkLabel.cs: Missing ControlStyles. Fixes #80482
1325
1326 2007-01-18  Chris Toshok  <toshok@ximian.com>
1327
1328         * DataGridTextBoxColumn.cs: fix most of the NotWorking unit tests
1329         I just added.
1330
1331 2007-01-17  Everaldo Canuto  <everaldo@simios.org>
1332
1333         * ToolBar.cs: Add layout methods to ToolBarButtonInfo class, every 
1334         layout methods and properties from ToolBarButton must be available
1335         into ToolBarButtonInfo.
1336
1337 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
1338
1339         * Control.cs: If the control has a transparent background, we
1340         need to refresh it when it moves and when it's parent's background
1341         image changes.  [Fixes bug #80451]
1342
1343 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
1344
1345         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code!  Doh!
1346
1347 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
1348
1349         * XplatUIWin32.cs: Implement proper double buffering for Windows.
1350         [Fixes bug #80447, and probably speeds up things as well]
1351
1352 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1353
1354         * XplatUIX11.cs: Caption height for MDI children is 19, not 26.
1355         * XplatUIWin32.cs: We need to recalculate NC size after changing 
1356         window style to toolwindow (otherwise the client rectangle will be
1357         3 pixels to small for some reason).
1358         * MdiWindowManager.cs: Revert NC size calculations to match how
1359         they are calculated only based on window styles (to match
1360         Win32AdjustWindowRectEx, since otherwise when setting size or 
1361         location, Control will call Win32AdjustWindowRectEx to update client 
1362         size, which would provoke a paint, then we'd get a NCCALCSIZE and 
1363         calculate a different value of client size causing another paint 
1364         (and flickering))
1365         * InternalWindowManager.cs: When moving or resizing a window only
1366         update size or location if they actually changed.
1367         * ThemeWin32Classic.cs: ManagedWindowsBorderWidth is now 4 instead of 3
1368         (seems to match Windows behaviour better). Cleaned up 
1369         ManagedWindowDecorations to draw what's needed and nothing else
1370         (was drawing borders and lines where they shouldn't be)
1371         * Hwnd.cs: GetWindowRectangle now knows about MDI border sizes
1372         (style = 0xFFFF) and takes into account caption height when 
1373         calculating window rectangle.   
1374
1375 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
1376
1377         * ToolBar.cs: Internal ToolBarButtonInfo class added, Because same button 
1378         can be added to toolbar multiple times, we need to maintain a list of 
1379         button information for each positions.
1380
1381 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
1382
1383         * ToolBar.cs: Some small stetic changes.
1384
1385 2007-01-16  Jackson Harper  <jackson@ximian.com>
1386
1387         * TextBoxBase.cs: Use the new SuspendRecalc/ResumeRecalc methods
1388         that allow us to have nested recalc = false blocks.
1389         - Add paste support for images in the RichTextBox
1390         * RichTextBox.cs: flush the text after the color is changed, so
1391         the change takes effect.
1392         - Use SuspendRecalc
1393         - Some extra debugging info
1394         * TextControl.cs: Tags no longer track their length, it is just
1395         computed from the next tags length, this makes things a little
1396         simpler and reduces places that we have to track length changes.
1397         - Refactored the linetag class a little so we could make it
1398         a base class for different kinds of tags
1399         - Created a image tag, a tag that can have a single image inserted
1400         into it
1401         - Replace the norecalc flag with a Suspend/Resume Recalc pair, so
1402         that we can call suspend multiple times.
1403         - Add some debugging methods
1404
1405 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1406
1407         * MdiClient.cs: Add ActivatePreviousChild for 
1408         mdi child window navigation.
1409         * Form.cs: Use MdiClient.ActivateNextChild/
1410         ActivatePreviousChild instead of Form.SelectNextControl
1411         to select the next/previous child since 
1412         SelectNextControl doesn't do it in the same order
1413         as mdi children should do it.
1414
1415 2007-01-16  Chris Toshok  <toshok@ximian.com>
1416
1417         * Control.cs: remove container_selected field.
1418
1419 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1420
1421         * MdiClient.cs: Update main form's ActiveChild when
1422         updating keyboard focus for the mdi child.
1423
1424 2007-01-16  Jonathan Pobst  <jpobst@novell.com>
1425
1426         * Control.cs: PreferredSize fix.
1427
1428         * Form.cs: Add several 2.0 events, properties, and methods.
1429
1430 2007-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
1431
1432         * Form.cs: Provide meaningful message when MdiParent is assigned a
1433         Form that is not an MdiContainer.
1434
1435 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1436
1437         * MdiClient.cs: Update main form's ActiveChild when
1438         activating a mdi child.
1439
1440 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1441
1442         * MdiWindowManager.cs: Fix NRE when merging menus and main form
1443         doesn't have a menu.
1444
1445         * Form.cs: Request NCRecalc after creating a mdi child window.
1446         Implement mdi key handling (Ctrl+F4, Ctrl+Shift+F4, Ctrl+Tab, 
1447         Ctrl+Shift+Tab, Ctrl+F6 and Ctrl+Shift+F6).
1448         
1449         * MdiClient.cs: Add new method SendFocusToActiveChild that either
1450         sends keyboard focus to the active child, or to the MdiClient
1451         if there are no child forms.
1452         
1453 2007-01-15  Chris Toshok  <toshok@ximian.com>
1454
1455         * ListView.cs: drop the *Internal overrides, just do our work in
1456         ItemControl's WndProc instead.
1457
1458         * UpDownBase.cs: a few large changes.  Fix up the Selectable state
1459         of the various controls, and forward the events properly (in the
1460         same manner as MS) from the textbox to the UpDown.  Also the
1461         ActiveControl of the UpDownBase gets set properly now.  Finally,
1462         we don't call UpdateEditText from the ctor.  Fixes bug #79957.
1463
1464         * NumericUpDown.cs: set Text in the ctor.
1465
1466         * DomainUpDown.cs: call UpdateEditText in the ctor.
1467         
1468         * TextBox.cs: on ms.net, WM_LBUTTONDOWN sets focus on the textbox,
1469         so even a Selectable = false textbox can be focused if you click
1470         in it.  Go figure.
1471
1472         * Control.cs: remove On{Got,Lost}FocusInternal.  Subclasses can
1473         just add their handling in their respective WndProc's.  Also add
1474         an explicit FocusInternal method that doesn't consult CanFocus
1475         before calling Select(this).
1476
1477         * TextBoxBase.cs: deal with removal of the FocusInternal calls -
1478         do our work in WndProc instead.
1479
1480         * TabControl.cs: same.
1481
1482         * ComboBox.cs: same.
1483
1484 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
1485
1486         * Menu.cs: implement MergeItems and Replace for MenuMerge method.
1487         Fixes #80006.
1488
1489 2007-01-15 Carlos Alberto Cortez <calberto.cortez@gmail.com>
1490
1491         * ListViewItem.cs:
1492         * ThemeWin32Classic.cs: Don't draw the item text outside
1493         item bounds in Details view, as well as use trimming.
1494         Fixes bug #80376.
1495
1496 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
1497
1498         * Form.cs: Implement Form.ShowIcon.
1499         
1500         * XplatUIWin32.cs: Allow the SetIcon win32 call to set the icon to
1501         null, which when combined with the DlgModalFrame window style removes
1502         the icon from the title bar.
1503
1504 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
1505
1506         * Control.cs: Call OnMouseClick after OnClick. (2.0)
1507
1508 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
1509
1510         * MdiWindowManager.cs: In CreateMaximizedMenu fix a position of icon
1511         menu when mdi child windows theres a menu, uses insert to get icon
1512         at first position. Partially fix #80006.
1513
1514 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
1515
1516         * Clipboard.cs: Implement 2.0 methods.
1517
1518 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
1519
1520         * Menu.cs: Implement Insert method of MenuItemCollection class
1521         to fix MenuMerge.
1522
1523 2007-01-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1524
1525         * ListView.cs: Implement 2.0 FindItemWithText method.
1526
1527 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
1528
1529         * Form.cs: When process WM_NCCALCSIZE message use ClienSize.Width
1530         to calculate menu bar size. Fixes #80290.
1531
1532 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
1533
1534         * ThemeWin32Classic.cs: Fix position of menuitem check mark.
1535
1536 2007-01-11  Chris Toshok  <toshok@ximian.com>
1537
1538         * XplatUIX11.cs: don't send duplicate WM_ACTIVATE messages to the
1539         initial form.
1540
1541 2007-01-11  Chris Toshok  <toshok@ximian.com>
1542
1543         * LinkLabel.cs: make sure to call base.Select in our Select method
1544         if it turns out we're going to be selected (i.e. if we have a link
1545         that is going to receive focus).  That way our container's
1546         ActiveControl is updated properly.
1547
1548 2007-01-11  Chris Toshok  <toshok@ximian.com>
1549
1550         * LinkLabel.cs: turns out that LinkLabels are only Selectable if
1551         they have 1 or more links.  this fixes the crash gert reported.
1552
1553 2007-01-11  Andreia Gaita  <avidigal@novell.com>
1554
1555         * ContainerControl.cs: Remove ContainerSelected flag, not needed
1556         anymore.
1557
1558         * Control.cs (Controls.Add): Check if control to be added to the collection
1559         is a top level control, and throw an ArgumentException if it is.
1560         Remove ContainerSelectedFlag, not needed anymore.
1561
1562         * XplaUIWin32.cs (SetTopMost): Add flag SWP_NOACTIVATE so that setting the
1563         top most control doesn't activate the form. This fixes a problem in the
1564         MessageBox, where the default button wouldn't get focus because the form
1565         was activated before being Loaded - when the Owner is set, SetTopMost is
1566         called, and it would activate it.
1567
1568 2007-01-11  Jonathan Pobst  <jpobst@novell.com>
1569
1570         * Button.cs: When clicked and setting the parent form's DialogResult,
1571         use FindForm instead of Parent, since parent could be a container
1572         control and not the Form.  Fixes bug #80495.
1573
1574 2007-01-10  Chris Toshok  <toshok@ximian.com>
1575
1576         * Form.cs: move the call to SendControlFocus into the same
1577         is_loaded check.
1578
1579 2007-01-10  Chris Toshok  <toshok@ximian.com>
1580
1581         * UpDownBase.cs (.ctor): remove the ActiveControl assignment here.
1582         It breaks in the face of the new ActiveControl stuff, and should
1583         be unnecessary.
1584
1585         * Form.cs (WndProc): in the WM_ACTIVATE case, we need to set the
1586         activecontrol's focus if it's not already set, after we set
1587         ActiveControl, but before we call OnActivated.  Re-fixes #79667
1588         after the previous focus/active control fixes regressed it.
1589
1590         * Control.cs: reindent some code.
1591         
1592 2007-01-10  Chris Toshok  <toshok@ximian.com>
1593
1594         * Splitter.cs: clearing some outstanding changes from my tree.
1595         Replace all accesses (not writes) to the internal dock_style field
1596         with the Dock property.
1597
1598 2007-01-10  Chris Toshok  <toshok@ximian.com>
1599
1600         * Control.cs: make FireEnter, FireLeave, FireValidating, and
1601         FireValidated virtual.
1602
1603         * Form.cs: override and don't chain up calls to FireEnter and
1604         FireLeave.
1605
1606 2007-01-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1607
1608         * ListView.cs: Add more text padding space when using
1609         auto resize for columns (the previous value didn't work fine).
1610
1611         * ThemeWin32Classic.cs: Update text position inside columns,
1612         to match the appeareance of .Net.
1613
1614         * ColumnHeader.cs: When using auto resize, only the Width should
1615         depend on the sub items, not the Height. Also, set width after
1616         auto resizing (the value of Width should never remain as -1 or -2).
1617
1618 2007-01-10  Chris Toshok  <toshok@ximian.com>
1619
1620         * Application.cs: fix compilation errors when debug is enabled.
1621
1622 2007-01-10  Chris Toshok  <toshok@ximian.com>
1623
1624         * ContainerControl.cs (set_ActiveControl): rework this a bit (and
1625         add some nice ascii art pictures and explanation of the process).
1626         (GetMostDeeplyNestedActiveControl): new utility function we need
1627         because our ActiveControl can refer to a child container with its
1628         own ActiveControl.
1629
1630         * Form.cs (OnActivated): remove the call to SelectActiveControl
1631         from here, since you can override this method and not chain up,
1632         and winforms still sets the active control.
1633         (OnCreateControl): also remove the unnecessary SelectActiveControl
1634         call from here.
1635         (WndProc): it's actually called from the WM_ACTIVATE block, just
1636         before calling OnActivated.
1637
1638         * Control.cs (Select (Control)): move the call to XplatUI.SetFocus
1639         inside the else.  the ActiveControl setter will end up setting
1640         focus on @control.  This keeps us from setting it again (and
1641         generating an extra LostFocus/GotFocus pair).
1642         (Select (bool, bool)): reindent.
1643
1644 2007-01-10  Jonathan Pobst  <jpobst@novell.com>
1645
1646         * FlowLayoutPanel.cs, MenuStrip.cs, SplitContainer.cs, SplitterPanel.cs,
1647         StatusStrip.cs, TableLayoutPanel.cs, TableLayoutStyleCollection.cs,
1648         ToolStrip.cs, ToolStripComboBox.cs, ToolStripContainer.cs,
1649         ToolStripContentPanel.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
1650         ToolStripDropDownButton.cs, ToolStripDropDownItem.cs, ToolStripDropDownMenu.cs,
1651         ToolStripItem.cs, ToolStripMenuItem.cs, ToolStripPanel.cs, ToolStripPanelRow.cs,
1652         ToolStripSeparator.cs, ToolStripSplitButton.cs, ToolStripStatusLabel.cs
1653         ToolStripTextBox.cs: Another wave of corcompare work.
1654
1655 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1656
1657         * ColumnHeader.cs: Implement 2.0 AutoResize method using
1658         the Width property.
1659
1660         * ListView.cs: Implement 2.0 AutoResizeColumn and AutoResizeColumns
1661         methods by callling Column.AutoResize method on columns.
1662
1663 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
1664
1665         * Control.cs: Provide proper implementations of PreferredSize
1666         and GetPreferredSize (2.0).
1667
1668 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
1669
1670         * Form.cs: Remove one character (!) to make my previous OnClosing
1671         stuff work for modal windows like MessageBox.
1672
1673 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1674
1675         * ListView.cs:
1676         * ThemeWin32Classic.cs: Use ListView.GetReorderedColumn instead of
1677         ListView.Columns to get the last displayed column. Fixes #80452.
1678
1679 2007-01-09  Everaldo Canuto  <everaldo@simios.org>
1680
1681         * Label.cs, LinkLabel.cs: Source code identation fixes.
1682
1683 2007-01-08  Everaldo Canuto  <everaldo@simios.org>
1684
1685         * ToolBarButton.cs: Remove InvalidateBorder and use Invalidate instead,
1686         we dont need to invalidate only borders because when we invalidate four
1687         border lines the invalidate's generates a complete redraw of button, 
1688         because it now invalidate a complete rect some other redraws operations
1689         are fixed. Fixes #80196.
1690         
1691         * Theme.cs, ThemeNice.cs, ThemeClearLooks.cs, ThemeWin32Classic.cs:
1692         Remove ToolBarInvalidateEntireButton as it is not used.
1693
1694 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
1695         
1696         * Form.cs: Make sure that both OnClosing and OnFormClosing are
1697         called for 2.0 profile.
1698         * CloseReason.cs: Make class internal for 1.1.
1699
1700 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
1701
1702         * ToolStripManager.cs: Implement FindToolStrip functionality.
1703         * ToolStrip.cs: Register and unregister with ToolStripManager.
1704
1705 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
1706
1707         * Control.cs: This was messy.  2.0 moves much of ControlCollection
1708         to ArrangedElementCollection.  Implemented this with as few #if's as 
1709         possible (which is still too many).
1710
1711 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
1712
1713         * Control.cs: Implement SizeFromClientSize() [2.0].
1714
1715 2007-01-07  Everaldo Canuto  <everaldo@simios.org>
1716
1717         * Hwnd.cs: On GetClientRectangle add a new parameter border_static,
1718         use Theme.BorderSize to calculate area instead of static value 1, 
1719         by the way use new BorderStaticSize instead     Border3DSize when 
1720         border_static is true. Fixes #79537.
1721         
1722         * XplatUIOSX.cs: Fix call to GetClientRectangle. 
1723         
1724         * ThemeWin32Classic.cs: On CPDrawBorder3D dont draw inner border when
1725         it is not needed.
1726
1727 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
1728
1729         * Hwnd.cs: Gives more code legibility to GetWindowRectangle.
1730
1731 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
1732
1733         * Label.cs: Override CreateParams to use WS_EX_STATICEDGE instead of
1734         WS_EX_CLIENTEDGE in ExStyles when BorderStyle is Fixed3D, it is
1735         
1736         * Hwnd.cs: 
1737         - border_static field added, it will used to define when a control 
1738         theres 3D border but it must be static (thin).
1739         - In GetWindowRectangle use Theme.BorderSize to calculate area 
1740         instead of static value 1, by the way use new BorderStaticSize instead
1741         Border3DSize when border_static is true.
1742
1743         * XplatUIX11.cs, XplatUIOSX.cs: 
1744         - When WS_EX_STATICEDGE ExStyle is set define border_static as true.
1745         
1746         * Theme.cs: BorderStaticSize field added.
1747
1748 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
1749
1750         * XplatUIX11.cs: Removed unused hwnd var in SetBorderStyle.
1751
1752 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
1753
1754         * Control.cs: Under InternalBorderStyle call RecreateHangle to 
1755         mimic same behavior than win32 that set border only in CreateParams,
1756         it fix problems under CreateParams overrides. Fix #79442 and partial
1757         fix #79537.
1758         
1759         * XplatUIX11.cs: Dont set hwnd.border_style in SetBorderStyle instead
1760         of thi control you must call recreate handle. 
1761         
1762         * XplatUIWin32.cs: Remove all SetBorderStyle code, for win32 we dont
1763         need to do anything as RecreateHangle will take care about borders.
1764
1765 2007-01-05  Mike Kestner  <mkestner@novell.com>
1766
1767         * ListView.cs: hack to eliminate Lost/Got focus notifications on
1768         cycles between the ItemControl and parent.  Fixes #80388.
1769
1770 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
1771
1772         * Control.cs: Lazy init layout engine. Do not directly use 
1773         layout_engine since LayoutEngine may be overridden (on 2.0 profile).
1774
1775 2007-01-05  Chris Toshok  <toshok@ximian.com>
1776
1777         * DataGrid.cs: don't forceably rebind columns in SetDataSource
1778         unless our list manager has changed (i.e. unless we have reason to
1779         believe our columns have changed).  Fixes #80422.
1780         
1781         also, disable the call do BindColumns in
1782         OnListManagerMetaDataChanged.  this breaks this test in 2.0 (in
1783         1.1 the event isn't raised in response to a column addition on a
1784         table.)
1785
1786 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
1787
1788         * Control.cs: Move LayoutEngine.Layout to the OnLayout method, so
1789         that inheritors can not call it if they choose.  Fixes bug #80456.
1790
1791 2007-01-05  Andreia Gaita  <avidigal@novell.com>
1792
1793         * XplatUIWin32.cs: Initialize MSG.refobject at 0 so it 
1794         doesn't blow up with a null exception on marshalling.
1795         
1796 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
1797
1798         * Control.cs: Implement several 2.0 protected properties and methods.
1799         Ensure that all necessary events are being called when properties
1800         are set.
1801
1802 2007-01-05  Mike Kestner  <mkestner@novell.com>
1803
1804         * ListView.cs: implement PgUp/PgDn for Details view.  Also
1805         fixes First/LastVisibleIndex to use the item_control.ClientRect 
1806         instead of the parent control.  Fixes #80378.
1807
1808 2006-01-05  Atsushi Enomoto  <atsushi@ximian.com>
1809
1810         * PageSetupDialog.cs : cosmetic refactoring; use RegionInfo to
1811           determine whether to use yard-pound or not (bug #78399).
1812
1813 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
1814
1815         * FileDialog.cs: Sebastien fixed the libgdiplus png alpha
1816         problems. So it is time to bring back the old popupbutton colors.
1817
1818 2006-01-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1819
1820         * ColumnHeader.cs:
1821         * ListView.cs: Implement 2.0 ColumnHeader.DisplayIndex
1822         property by using the internal information of the
1823         columns order in ListView.
1824
1825 2007-01-04  Jonathan Pobst  <monkey@jpobst.com>
1826
1827         * CommonDialog.cs, Cursor.cs, ErrorProvider.cs, HelpProvider.cs:
1828         Add 2.0 Tag properties.
1829
1830         * LinkArea.cs: Add 2.0 ToString method.
1831
1832 2007-01-03  Chris Toshok  <toshok@ximian.com>
1833
1834         * DataGrid.cs: the Alt+0 handling was wrong, it should have been
1835         Ctrl+0.  Fixes bug #80367.  Also, don't eat the Delete keypress
1836         when we're editing, which fixes #80047.
1837
1838 2007-01-03  Chris Toshok  <toshok@ximian.com>
1839
1840         * Form.cs: apply patch contributed by Dominik Seichter.  fixes
1841         #80404.
1842
1843 2007-01-03  Jonathan Pobst  <monkey@jpobst.com>
1844
1845         * MenuStrip.cs, ToolStripMenuItem.cs: Add MdiWindowListItem
1846         property and implementation.
1847
1848         * Form.cs, MdiClient.cs, MdiWindowManager.cs: Add needed hooks
1849         for MdiWindowListItem property.
1850
1851         * ToolStripDropDown.cs: Don't consider hidden menu items while
1852         laying out the menu.
1853
1854 2007-01-03  Andreia Gaita  <avidigal@novell.com>
1855
1856         * SendKeys.cs: window handle is not needed in win32, so just
1857         get the active window for X after parsing keys and don't use
1858         it when building the message; it is passed by parameter to the 
1859         Xplat method and used there to build the message instead. Also,
1860         wait for events to be processed on SendWait, as opposed to Send,
1861         which doesn't wait :) Playing with threads and Send() completely 
1862         hangs on ms.net, only SendWait() works.
1863         
1864         XplatUIX11.cs
1865         X11Display.cs: Check for valid window handle.
1866
1867 2007-01-03  Jackson Harper  <jackson@ximian.com>
1868
1869         * TextControl.cs: Need to prevent wrap calculations when replacing
1870         text (this was there before i removed it accidently).
1871         - Don't update the cursor during the positioning, just set it to
1872         selection_start at the end of the operaion.
1873
1874 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1875
1876         * Control.cs:
1877         * NotifyIcon.cs: corcompare work, no more X's in 1.1 class status.
1878         
1879 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1880
1881         * MonthCalendar.cs: Added Click and DoubleClick events again,
1882         but this time they only hide Control's Click and DoubleClick.
1883         
1884 2007-01-03  Gert Driesen  <drieseng@users.sourceforge.net>
1885
1886         * Theme.cs: Re-enabled DefaultFont change. Use const to refer to
1887         System.Drawing assembly. Spaces to tabs. Removed extra tabs.
1888
1889 2007-01-02  Jackson Harper  <jackson@ximian.com>
1890
1891         * TextBoxBase.cs: We move the caret with the split now, so we
1892         don't need to explicitly move the caret after splitting.  This
1893         fixes the caret bumping down an extra line on Enter.
1894
1895 2007-01-02  Miguel de Icaza  <miguel@novell.com>
1896
1897         * ContainerControl.cs: Add AutoValidateChanged event (for PDN
1898         2.72). 
1899
1900         * ScrollableControl.cs: Add Scroll event.
1901
1902 2007-01-02  Mike Kestner  <mkestner@novell.com>
1903
1904         * ListView.cs: one more try with help from georgegiolfan@yahoo.com 
1905         to fix all hdr height padding codepaths.  Fixes #80207.
1906
1907 2007-01-02  Chris Toshok  <toshok@ximian.com>
1908
1909         * StatusBar.cs (.ctor): remove the Anchor setting, as it's just
1910         setting it to the Control defaults anyway, and it being after the
1911         Dock set was screwing up layout.
1912         (set_Dock): don't short circuit out of setting base.Dock.  Also,
1913         no need to call UpdateStatusBar here, as it'll be re-layed out if
1914         it needs to be.
1915
1916 2007-01-02  Mike Kestner  <mkestner@novell.com>
1917
1918         * ListView.cs: patch from georgegiolfan@yahoo.com to add padding
1919         to header height for width == -1. Fixes the rest of #80207.
1920
1921 2007-01-02  Mike Kestner  <mkestner@novell.com>
1922
1923         * ListView.cs: rework the mouse event forwarding everaldo added
1924         to translate the coordinates to the parent control not
1925         raise the parent events until after we've done our work. Hover
1926         needs more work, in the case where HoverSelection is on, because
1927         the item control receives more than one MouseHover per Enter
1928         event, so we need to ensure only the "first" hover gets forwarded.
1929         Opening a minor bug for that.
1930
1931 2007-01-02  Gert Driesen  <drieseng@users.sourceforge.net>
1932
1933         * CheckedListBox.cs: Fixed SelectionMode to match MS.
1934         * ListControl.cs: Implemented AllowSelection property. Removed extra
1935         tabs.
1936         * ListBox.cs: Implemented AllowSelection property.
1937
1938 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1939
1940         * MenuItem.cs: In MdiWindowClickHandler uses sender instead of
1941         SelectedItem, it prevent for errors when you must disable item
1942         before perform click. Fixes #80409.
1943
1944 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1945
1946         * MenuAPI.cs: Prevent second level and beyond submenus to close
1947         until first level when move out side of popup.
1948         
1949 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1950
1951         * MenuAPI.cs:
1952         - Down submenu positin in three pixels.
1953         - Closes sub menu when mouse leaves from menu. Fixes #80402.
1954
1955 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1956
1957         * ThemeWin32Classic.cs:
1958         - Fix popup menu size adding one pixel on the top.
1959         - Down menu item border from two to one to mimic Win32.
1960         - Some source identation fixes. 
1961
1962 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
1963
1964         * ThemeWin32Classic.cs: Use float numbers to calculate size and
1965         position of menu arrows, it fix wrong arrow size.
1966
1967 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
1968
1969         * ThemeWin32Classic.cs: Uses CPDrawBorder3D to draw menu borders
1970         instead of line, it simplify draw operation and fix it using 3D
1971         borders to mimic Win32.
1972
1973 2007-01-01  Jonathan Pobst  <monkey@jpobst.com>
1974
1975         * StatusStrip.cs: Add implementation of the sizing grip.
1976
1977         * ToolStripRenderer.cs, ToolStripProfessionalRenderer.cs: Add
1978         StatusStrip rendering.
1979
1980 2006-12-31  Chris Toshok  <toshok@ximian.com>
1981
1982         * ToolBar.cs: don't assign to dock_style in the .ctor.  it doesn't
1983         override the layout style (anchor/dock) of the control.  assign to
1984         Dock instead.  Fixes bug #80416.
1985
1986         * ToolStrip.cs: same.
1987
1988 2006-12-31  Andreia Gaita  <avidigal@novell.com>
1989
1990         * ContainerControl.cs: Use ContainerSelected flag to check if 
1991         a Container is directly selected, or if Select is called on a 
1992         non-container. If a container is directly selected, focus events 
1993         should not be raised.
1994         Apply #80411 patch to throw exception on set_ActiveControl if 
1995         control is the same as the current one.
1996         
1997         * Control.cs: Use ContainerSelected flag (see above).
1998         Add invalidation check to raise event but not invalidate if 
1999         dimensions are 0.       
2000         Apply #80411 patch.
2001         
2002
2003 2006-12-31  Everaldo Canuto  <everaldo@simios.org>
2004
2005         * MenuAPI.cs: After click, dont close popup menu when menu is
2006         ContextMenu. Fixes #80399.
2007
2008 2006-12-30  Chris Toshok  <toshok@ximian.com>
2009
2010         * ContainerControl.cs: make sure we throw the exception if the
2011         container control doesn't contain the control we're setting
2012         ActiveControl to.
2013
2014 2006-12-30  Chris Toshok  <toshok@ximian.com>
2015
2016         * Control.cs (SetTopLevel): fix the exception raised by
2017         SetTopLevel for child controls.
2018         (set_Anchor): call UpdateDistances when setting the anchor type.
2019         This fixes bug #80336.
2020
2021 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
2022
2023         * Theme.cs: For now, revert back to 8pt font.
2024
2025 2006-12-29  Everaldo Canuto  <everaldo@simios.org>
2026
2027         * MenuAPI.cs: Set popup as active when open a ContextMenu. 
2028         Fixes #80395.
2029
2030 2006-12-29  Chris Toshok  <toshok@ximian.com>
2031
2032         * Control.cs: reorder the code in OnResize to give the same event
2033         ordering as MS.
2034
2035 2006-12-29  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2036
2037         * MdiClient.cs: Implemented MdiLayout for ArrangeIcons,
2038         TileHorizontally and TileVertically.
2039         
2040 2006-12-29  Alexander Olk  <alex.olk@googlemail.com>
2041
2042         * ColorDialog.cs, FileDialog.cs, FolderBrowserDialog.cs,
2043         FontDialog.cs, Mime.cs, MimeIcon.cs, OpenFileDialog.cs,
2044         SaveFileDialog.cs, ThemeClearlooks.cs, ThemeNics.cs:
2045         Corrected copyright and email adress.
2046
2047 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
2048
2049         * TreeNode.cs: On 2.0 profile, throw InvalidOperationException instead
2050         of Exception in FullPath property if no TreeView is associated with
2051         the TreeNode.
2052
2053 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
2054
2055         * Theme.cs: Marked default_font as private, and initialize it in ctor
2056         with MS Sans Sarif 8.25 on 1.0 profile, and SystemFonts.DefaultFont
2057         on 2.0 profile.
2058         * ThemeGtk.cs: Removed default_font intialization.
2059         * ThemeWin32Classic.cs: Removed default_font initialization.
2060
2061 2006-12-28  Chris Toshok  <toshok@ximian.com>
2062
2063         * Control.cs: fix a couple of place where we were creating handles
2064         more aggressively than we should be.  Fixes ControlRefresh unit
2065         tests.
2066
2067 2006-12-28  Chris Toshok  <toshok@ximian.com>
2068
2069         * Control.cs: contrary to what the comment said, Control.Dock does
2070         not supercede Control.Anchor - the last one you assign to decides
2071         the layout behavior.  so we need to keep track of which was the
2072         last set.  Also, fix some of the affected property arguments in
2073         PerformLayout calls, and remove an redundant parent.PerformLayout
2074         call in OnResized.
2075
2076         Add a VisibleInternal property, which returns is_visible.  We
2077         can/should get rid of all the usage of this field elsewhere.
2078
2079 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2080         
2081         * Control.cs: DoubleBuffered property reflects the OptimizedDoubleBuffer
2082         control style, not DoubleBuffer. Added UseDoubleBuffering property
2083         that indicates whether doublebuffering is enabled and supported.
2084         (comment from and code based on Gert Driesen's patch in #80324).
2085         Fixes #80324.
2086
2087 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2088         
2089         * Control.cs: Fixed a NRE.
2090
2091 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2092
2093         * TrackBar.cs: Fix SmallChange and LargeChange exceptions
2094         for 2.0.
2095
2096 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2097
2098         * Control.cs: Rewrote double buffering, now a seperate
2099         class handles all the buffering, no Graphics is disposed of
2100         until the painting is finished (earlier implementation 
2101         would crash if the control was resized in the OnPaint, 
2102         since it would cause the double buffer to be recreated
2103         and the old one disposed), a separate Graphics is 
2104         created for every paint (MS behaviour and anyways the state
2105         of the Graphics would have to be saved and restored otherwise)
2106         
2107         * XplatUIDriver.cs: 
2108         * XplatUIX11.cs:
2109         * XplatUI.cs: Added and implemented GetOffscreenGraphics 
2110         so that we can get the graphics for the back buffer without
2111         having to create a new one and remove the offscreen_dc parameter
2112         from CreateOffscreenDrawable and DestroyOffscreenDrawable.
2113         
2114 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2115
2116         * ListView.cs: Add key-related 2.0 methods for CheckedItemCollection.
2117         Also make virtual all the key-related methods.
2118
2119         * ListViewItem.cs: Make virtual the key related methods for
2120         ListViewSubItemCollection.
2121
2122 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2123
2124         * ListView.cs:
2125         * ListViewItem.cs:
2126         * ThemeWin32Classic.cs:
2127         * Theme.cs: Initial support for Tile view in ListView,
2128         as well as the implementation of the required bits for it (Item
2129         and Subitem).
2130
2131 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
2132
2133         * MonthCalendar.cs: On 2.0, throw ArgumentOutOfRangeException instead
2134         of ArgumentException in MaxSelectionCount, MaxDate and MinDate.
2135         Provide useful exception messages.
2136
2137 2006-12-27  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2138
2139         * TrackBar.cs: Remove a warning.
2140         * MonthCalendar.cs: Moved back to using Capture to hide the calendar
2141         when used by DateTimePicker, fixes #80287. This also requires that 
2142         MonthCalendar implements it's own drawing for the yearly updown control,
2143         otherwise the Capture tracking would be too complicated. Removed the Click 
2144         and DoubleClick events (according to comments they were hiding the base class
2145         event to prevent them from beeing fired - MSDN only says MonthCalendar doesn't
2146         raise these events, not that they cannot be raised. It is possible to raise 
2147         them by calling OnClick and OnDoubleClick). Added two internal fields in 
2148         HitTestInfo in order to track give more tracking info needed by MonthCalendar.
2149         * ThemeWin32Classic.cs: Implement drawing of MonthCalendar's updown part.
2150         * DateTimePicker.cs: Removed handling of MonthCalendar's LostFocus
2151         event, no longer needed.
2152         
2153 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
2154
2155         * ScrollableControl.cs: In AutoScrollMinSize, only set AutoScroll to
2156         true if new value differs from current value.
2157
2158 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
2159
2160         * Control.cs: ControlCollection.Count must be public. Fixed build of
2161         unit tests.
2162
2163 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
2164
2165         * ListView.cs: Redraw when FullRowSelect is changed. Fixes bug #80379.
2166
2167 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
2168
2169         * ComboBox.cs: Mergable=>MergableProperty. Fixes build.
2170
2171 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
2172
2173         * Control.cs: Invalidates control including when Width and Height is 
2174         equal zero or is not visible, only Paint event must be care about 
2175         this. Fixes #79913.
2176
2177 2006-12-26  Chris Toshok  <toshok@ximian.com>
2178
2179         * CurrencyManager.cs, PropertyManager.cs, BindingManagerBase.cs:
2180         more corcompare work.
2181
2182         * DataGridView.cs: fix compiler warning.
2183
2184         * ColumnHeader.cs: some corcompare work, and also take the
2185         opportunity to make the internal fields private.
2186
2187         * ListView.cs: fix the fallout from the above field change.
2188
2189 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
2190
2191         * ToolStripButton.cs, ToolStripComboBox.cs, ToolStripControlHost.cs,
2192         ToolStripItem.cs, ToolStripProgressBar.cs, ToolStripSplitButton.cs,
2193         ToolStripTextBox.cs: Fixes to events and corcompare.
2194
2195 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
2196
2197         * ListView.cs: Call owner.OnMousexx event to propagate events from
2198         item to ListView. Fixes #80367.
2199
2200 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
2201
2202         * ComboBox.cs: On 2.0, DropDownWidth throws ArgumentOutOfRangeException
2203         if value is less than one. ItemHeight should not be set to a value
2204         less than 1, and throw ArgumentOutOfRangeException on 2.0 profile. 
2205         Removed extra tabs.
2206
2207 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
2208
2209         * ToolStripMenuItem.cs: Add ShortcutDisplayString for Moma.
2210         * ToolStripStatusLabel.cs: Add Spring for Moma.
2211
2212 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
2213
2214         * DataGridView.cs: Fixed several NullReferenceException in On* methods.
2215         Fixed code formatting. Removed debug code.
2216         * DataGridViewTextBoxEditingControl.cs: Removed debug code.
2217
2218 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
2219
2220         * DataGridView.cs: Fixed GridColor, DefaultSize, DefaultCellStyle,
2221         RowHeadersDefaultStyle, RowHeadersWidth to match MS. Throw
2222         ArgumentOutOfRangeException if ColumnCount is negative. In 
2223         ColumnHeadersHeight, throw ArgumentOutOfRangeException if height is
2224         less than 4 or higher than 32768.
2225         * DataGridViewCellStyle.cs: Fixed default value for NullValue.
2226         Fixed FormatProvider to return CurrentCulture unless explicitly set.
2227         Fixed IsFormatProviderDefault to return true if FormatProvider has
2228         not been explicitly set.
2229
2230 2006-12-25  Chris Toshok  <toshok@ximian.com>
2231
2232         * Application.cs: add a couple of 2.0 events.
2233
2234 2006-12-25  Chris Toshok  <toshok@ximian.com>
2235
2236         * Control.cs: fix compiler warning.
2237
2238         * AxHost.cs: corcompare fixes.
2239
2240         * ApplicationContext.cs: corcompare fixes.
2241
2242 2006-12-25  Chris Toshok  <toshok@ximian.com>
2243
2244         * Control.cs: only update dist_right/dist_bottom if the
2245         width/height is > 0.  this fixes anchored controls being resized
2246         smaller until they disappear and then resized larger again.
2247
2248 2006-12-25  Chris Toshok  <toshok@ximian.com>
2249
2250         * Control.cs: a couple of changes.  Remove dist_left and dist_top,
2251         since they're nothing more than X/Left and Y/Top, respectively.
2252
2253         Also, move back to a per-control Bitmap/Graphics for
2254         DeviceContext, since using the static Hwnd.bmp/bmp_g is bad in the
2255         MT case.  Go with a tiny bitmap though, 1x1, instead of Width x
2256         Height.
2257
2258 2006-12-25  Miguel de Icaza  <miguel@novell.com>
2259
2260         * MessageBox.cs: Implemented overload that takes a new "bool
2261         displayHelpButton" by adding a new internal field "show_help".
2262         When clicked this will raise the HelpRequested on the owner or the
2263         main form. 
2264
2265         From: 007dbe3ff0ca4729a4f5fcd1d8ab2a2e.txt
2266         From: c935e12b95fe4dc1ae670e7f4dc5fd68.txt
2267
2268         * ListView.cs: Add support ColumnWidthChanged and
2269         ColumnWidthChanging. 
2270
2271         Add support for ColumnReordered event.
2272         (ReorderColumn): Add NET_2_0 specific support for cancelling the
2273         reorder.
2274
2275         Very nice codebase!
2276
2277         * TextBoxBase.cs (GetLineFromCharIndex): Implement this method.
2278
2279         This is used by report f4ae0a88a0a244558aaadf017c9b9efe.
2280
2281 2006-12-24  Chris Toshok  <toshok@ximian.com>
2282
2283         * GridTablesFactory.cs: 2.0 corcompare work.
2284
2285         * ToolStripContainer.cs: add "override" to
2286         ContextMenuStripChanged, and remove the local event object.
2287
2288         * ToolStripDropDown.cs: same with a couple properties.
2289
2290         * ToolStripPanel.cs: same with AutoSizeChanged event.
2291
2292         * TextBoxBase.cs: add "override" to AutoSizeChanged.
2293
2294         * Form.cs: add the remaining 2.0 events, and do some corcompare
2295         attribute work.
2296
2297         * DateTimePicker.cs: add "new" to padding.
2298
2299         * ButtonBase.cs: use Control's use_compatible_text_rendering.
2300
2301         * ToolStripContentPanel.cs: use base.AutoSizeChanged.
2302
2303         * DataGridView.cs: PaddingChanged is overridden.
2304
2305 2006-12-24  Chris Toshok  <toshok@ximian.com>
2306
2307         * Control.cs: corecompare work here too.
2308
2309         * DataGridViewElement.cs, DataGridView.cs,
2310         DataGridViewButtonCell.cs, DataGridViewRowCollection.cs,
2311         DataGridViewImageColumn.cs, DataGridViewComboBoxColumn.cs,
2312         DataGridViewImageCell.cs, DataGridViewCheckBoxCell.cs,
2313         DataGridViewHeaderCell.cs, DataGridViewCell.cs: more corcompare
2314         work.
2315
2316 2006-12-24  Miguel de Icaza  <miguel@novell.com>
2317
2318         * Control.cs: Switched the error message on the console for a
2319         todo.  A review of the code will have to cope with this anyways
2320         (since its a large feature, it is in our radar) and it was
2321         producing too much output when running PDN.
2322
2323         * ToolStripComboBox.cs: Set the text when the SelectedIndex
2324         changes.  Applications depend on this (PDN 2.72)
2325
2326 2006-12-23  Chris Toshok  <toshok@ximian.com>
2327
2328         * TableLayoutSettings.cs: finish up the corcompare work for this
2329         class.
2330
2331 2006-12-23  Chris Toshok  <toshok@ximian.com>
2332
2333         * Control.cs: make SetImplicitBounds internal, do some futzing
2334         with LayoutEngine so that it's available in 1.1, and remove the
2335         entire duplicated code mess from PerformLayout.  Use
2336         System.Windows.Forms.Layout.DefaultLayout instead.
2337
2338         * LayoutEngine.cs: make this class internal in 1.1, public in 2.0.
2339
2340 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
2341
2342         * Form.cs: Add MainMenuStrip property.
2343
2344 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
2345
2346         * Control.cs: Add ContextMenuStrip property and implementation.
2347         Fix ContextMenu implementation to show menu centered on control when
2348         activated using the keyboard instead of showing at screen (0,0).
2349
2350         * ToolStripDropDown.cs: Fix needed overload of Show ().
2351
2352 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
2353
2354         * Menu.cs: Name property added for 2.0 profile.
2355         
2356 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
2357
2358         * Menu.cs: Update information about FindMenuItem, method to be
2359         implemented soon.
2360
2361 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
2362
2363         * MenuAPI.cs: When deselect items deselect also selected subitems.
2364         
2365 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
2366
2367         * MenuAPI.cs: When hides menu set Wnd to null, it prevents
2368         FindSubItemByCoord to found itens that is not active, also an
2369         cheking added to FindSubItemByCoord to search for items only 
2370         in visible popup windows. Fixes #80274.
2371
2372 2006-12-22  Everaldo Canuto  <everaldo@simios.org>
2373
2374         * UserControl.cs: Remove MonoTodo and use InternalBorderStyle,
2375         internal property, it be care about change ExStyle. 
2376
2377 2006-12-22  Andreia Gaita  <avidigal@novell.com>
2378
2379         * ContainerControl.cs: set activeControl for parent forms up the 
2380         tree when the new activecontrol is a container.
2381         When validating the active control, if it is a container, also
2382         raise up the validation for it's active control. Fixes #80280
2383         
2384         * Control.cs: Add internal property flag and check to prevent
2385         Focus events from getting raised when Select() is called for
2386         a ContainerControl. There are still too many focus events being
2387         raised at the moment though.
2388         Cleaned up the code a bit.
2389
2390 2006-12-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2391
2392         * Control.cs: Added all missing 2.0 events.and
2393         fixed a couple of corcompare issues.
2394         * TrackBar.cs: Implemented missing 2.0 bits.
2395         * MonthCalendar.cs, 
2396         * DateTimePicker.cs, 
2397         * MdiClient.cs: Fixed some corcompare issues.
2398
2399 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
2400
2401         * ContextMenuStrip.cs, FlowLayoutPanel.cs, SplitContainer.cs,
2402         SplitterPanel.cs: corecompare work.
2403
2404 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
2405
2406         * ToolStripContainer.cs, ToolStripDropDown.cs, StatusStrip.cs:
2407         Clean up warnings for BackgroundImageChanged and PaddingChanged
2408         events now that they are implemented in Control.cs.
2409
2410 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
2411
2412         * Control.cs: Make sure layout_engine isn't null before using it (2.0).
2413         
2414         * TableLayoutControlCollection.cs, TableLayoutPanel.cs, TableLayoutCellPosition.cs,
2415         TableLayoutSettings.cs, TableLayoutStyleCollection.cs: Initial implementation
2416         of TableLayoutPanel and supporting cast.
2417
2418 2006-12-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2419
2420         * XplatUIWin32.cs: 
2421         - GrabWindow now confines the mouse pointer to the confine window.
2422         - Added Win32ClipCursor and Win32GetClipCursor.
2423
2424         * Control.cs: 
2425         - Added CaptureWithConfine to be able to capture and confine 
2426         mouse pointer.
2427         
2428         * InternalWindowManager.cs: 
2429         - Call CaptureWithConfine instead of Capture if we're an
2430         MdiChild (fixes #79982).
2431
2432 2006-12-21  Chris Toshok  <toshok@ximian.com>
2433
2434         * DataGrid.cs: guard against the initial state of selection, where
2435         selection_start == -1.  make sure we only select from index >= 0.
2436         Fixes bug #80291.
2437
2438 2006-12-21  Chris Toshok  <toshok@ximian.com>
2439
2440         * Control.cs: we don't need to be so draconian with
2441         UpdateDistances, and we thusly don't need to call it before
2442         calling PerformLayout in ResumeLayout.  Fixes bug #80289.
2443
2444 2006-12-21  Daniel Nauck  <dna@mono-project.de>
2445
2446         * ComboBox.cs,
2447         TextBox.cs: Implemented AutoComplete properties.
2448
2449 2006-12-20  Chris Toshok  <toshok@ximian.com>
2450
2451         * DataGridView*.cs: some corecompare work.
2452
2453 2006-12-20  Jackson Harper  <jackson@ximian.com>
2454
2455         * XplatUIX11.cs: We need to hide the caret when deleting it,
2456         otherwise you get carets left lying around everywhere.
2457         * TextBoxBase.cs: Kill then redraw the caret when scrolling.  This
2458         prevents getting some weird half drawn caret tracers when
2459         scrolling.
2460         * TextControl.cs: Attempt to reduce the number of times we need to
2461         recreate the caret.
2462
2463 2006-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
2464
2465         * MonthCalendar.cs: Fixed previous month button. Removed extra tabs.
2466
2467 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2468
2469         * DateTimePicker.cs:
2470         - Implemented missing 2.0 bits.
2471         - Changed some default values to match MS.
2472         
2473 2006-12-20  Jackson Harper  <jackson@ximian.com>
2474
2475         * TextBoxBase.cs: When changing the font across the document we
2476         can't recalculate after changing each line, since that will cahnge
2477         the line count.
2478         - PreferredHeight is a little different than i thought.
2479         - When backspacing, move the caret before we do the actual char
2480         delete, because when that delete crosses a wrap boundary the
2481         positional information will change.
2482
2483 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2484
2485         * Control.cs: Added some missing 2.0 bits: 
2486         BackgroundImageLayout, BackgroundImageLayoutChanged, 
2487         OnPaddingChanged, MouseClick, MouseDoubleClick, PaddingChanged and 
2488         add IBindableComponent and IDropTarget implementation.
2489         
2490         * MonthCalendar.cs: 
2491         - Added all missing 2.0 features:
2492         BackgroundImageLayout, RightToLeftLayout, 
2493         OnHandleDestroyed, RightToLeftLayoutChanged, 
2494         BackgroundImageLayoutChanged, MouseClick, MouseDoubleClick,
2495         PaddingChanged.
2496         - Rewrote all the BoldDate code, it was completely broken.
2497         - Fixed all the tests (the tests can now be re-enabled, the
2498         problems were not with the tests, but with the control, it was
2499         mostly broken).
2500         
2501         * DateTimePicker.cs: Changed the location where the 
2502         MonthCalendar is shown.
2503         
2504 2006-12-19  Chris Toshok  <toshok@ximian.com>
2505
2506         * DataGridView.cs: add IDropTarget implementation.
2507
2508         * ToolStripPanel.cs: add IDropTarget implementation.
2509
2510 2006-12-19  Jackson Harper  <jackson@ximian.com>
2511
2512         * TextControl.cs: soft now means something different than what it
2513         used to mean, we want to move the caret regardless of whether or
2514         not this break was soft (would we really have wanted the caret
2515         to not move with the break in the old context?)
2516         * TreeView.cs: Make sure we factor in the vert scrollbar when
2517         calculating the horizontal scrollbar's maximum.
2518
2519 2006-12-19  Andreia Gaita  <avidigal@novell.org>
2520
2521         * SendKeys.cs: Fix Send() behaviour, clear keys after sending,
2522         check for keywords in alternate casing, close bug #80049.
2523
2524 2006-12-19  Chris Toshok  <toshok@ximian.com>
2525
2526         * ToolStripItem.cs: add the implementation of the 4 IDropTarget
2527         methods (which all do nothing).
2528
2529         * IDropTarget.cs: add the 4 missing methods.
2530
2531 2006-12-19  Chris Toshok  <toshok@ximian.com>
2532
2533         * TableLayoutRowStyleCollection.cs: corcompare work.
2534         
2535         * TableLayoutSettings.cs: same.
2536
2537         * TableLayoutStyle.cs: same.
2538
2539         * TableLayoutColumnStyleCollection.cs: same.
2540
2541 2006-12-19  Jonathan Pobst  <monkey@jpobst.com>
2542
2543         * ColumnStyle.cs, RowStyle.cs, TableLayoutStyle.cs: Plumbing for
2544         TableLayoutPanel I've had in my local tree for way too long.
2545
2546 2006-12-19  Miguel de Icaza  <miguel@novell.com>
2547
2548         * TableLayoutSettings.cs: Finish the public API (still needs all
2549         the logic to update on changes). 
2550
2551         * TableLayoutPanelCellPosition.cs: new file.
2552         
2553         * TableLayoutRowStyleCollection.cs,
2554         TableLayoutColumnStyleCollection, TableLayoutStyle.cs,
2555         TableLayoutSettings.cs: Track the final 2.0 table api.
2556
2557 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2558
2559         * ColumnHeader.cs: Add Tag, Name, ImageKey, ImageIndex,
2560         and Image List 2.0 members for ColummnHeader.
2561         * ListView.cs: Add key-related 2.0 methods for
2562         ColumnHeaderCollection.
2563
2564 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
2565
2566         * ListViewItem.cs: Changed AddRange overloads to match MS: throw
2567         ArgumentNullException if items argument is null. Ignore null item in
2568         arrays. Removed extra tabs.
2569
2570 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
2571
2572         * MonthCalendar.cs: Fixed InvalidCastException.
2573
2574 2006-12-19  Jackson Harper  <jackson@ximian.com>
2575
2576         * TextControl.cs: Don't increment the position here.
2577         - When calculating char positions only add in the line break size
2578         for hard line breaks.
2579
2580 2006-12-19  Andreia Gaita  <avidigal@novell.org>
2581
2582         * SendKeys.cs: Changed some things to match ms.net behaviour
2583         when parsing shifted capital letters.
2584         
2585         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32, XplatUIOSX: 
2586         Add window handle as parameter to SendInput. X11 needs the 
2587         window handle, and the handle being passed      to it in the keys 
2588         queue is the active control handle (which windows needs), not 
2589         the window handle.
2590         
2591         XplatUIX11.cs, XplaUIX11-new.cs, X11Display: Implement SendInput 
2592         to support SendKeys on X.       
2593         
2594         * X11Keyboard: Implement helper method to lookup a linux keycode
2595         given the virtual keycode. Added table of keycode-2-virtualkey
2596         values to support this.
2597
2598 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2599
2600         * ListView.cs: Add support for SelectedIndexCollection
2601         and SelectedItemCollection 2.0 methods. Implement support
2602         for ImageKey too.
2603         * ListViewItem.cs: Add support for ListViewSubItemCollection
2604         2.0 methods. Also, fix an incorrect behavior of AddRange method
2605         (it shouldn't call Clear).
2606         * ThemeWin32Classic.cs: Support for ListView.ImageKey 2.0 property.
2607
2608 2006-12-19  Jackson Harper  <jackson@ximian.com>
2609
2610         * RichTextBox.cs: 
2611         * TextBoxBase.cs: New args for FormatText
2612         * TextControl.cs: Rewrote the main drawing method, this version
2613         feels a little easier to understand and debug to me.  Hopefully it
2614         does to others also
2615         - Fix FormatText to OR in the new formating values.  Added
2616         FormatSpecified param, basically this works in the same way as
2617         BoundsSpecified in Control.
2618         - Set the caret properties when the caret is positioned.
2619         - When wrapping text make sure that we calculate the width of the
2620         last character
2621         - when calculating alignments we might have wrapped down to the
2622         next line, so don't search for an individual tag, search for the
2623         end of the line
2624         - We need to invalidate the selection area when we replace the
2625         selection.
2626         
2627 2006-12-19  Daniel Nauck  <dna@mono-project.de>
2628
2629         * Application.cs: add Restart () 2.0 support
2630
2631 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2632
2633         * MenuItem.cs: Invalidate menu item rectangle after change Enable
2634         property. Fixes #80268.
2635         
2636 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2637
2638         * MenuAPI.cs: Dont trigger select event when closes top menu
2639         item. Fixes #80270.
2640
2641 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2642
2643         * MenuAPI.cs: When you click on menuitem only trigger onselect
2644         event for top menu itens. Fixes #80271.
2645         
2646 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2647
2648         * MdiWindowManager.cs: Make IconicBounds depend on
2649         the bottom of MdiClient, not the top (fixes #80267)
2650         
2651 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2652
2653         * MdiClient.cs: Added missing 2.0 attribute
2654
2655 2006-12-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2656
2657         * ListViewItem.cs: Add Name and Tag 2.0 properties, as well
2658         as IndexOfKey, ContainsKey, RemoveByKey and indexer 2.0.
2659
2660 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2661
2662         * MenuAPI.cs: Fix click when menuitem is not popup,
2663         this regression was caused by last commit (#80272).
2664
2665 2006-12-17  Everaldo Canuto  <everaldo@simios.org>
2666
2667         * MenuAPI.cs: When a non-toplevel menuitem is clicked dont
2668         fire click event or close menu. Fixes #80272.
2669
2670 2006-12-17  Daniel Nauck  <dna@mono-project.de>
2671
2672         * ListViewHitTestInfo.cs: add
2673
2674 2006-12-17  Daniel Nauck  <dna@mono-project.de>
2675
2676         * ButtonBase.cs: Added FlatButtonAppearance 2.0 support.
2677         * FlatButtonAppearance.cs: add
2678         * DockingAttribute.cs: add
2679
2680 2006-12-17  Chris Toshok  <toshok@ximian.com>
2681
2682         * DataGrid.cs: hook up MetaDataChanged event on the list manager,
2683         and rebind our columns when it does - this way, if you make
2684         changes to the DataTable (or set the Table attribute on a DataView
2685         after setting it as the DataGrid's DataSource, the changes are
2686         made visible.)  Fixes bug #80107.
2687
2688 2006-12-17  Daniel Nauck  <dna@mono-project.de>
2689
2690         * ListViewGroup.cs: add internal Location property for layouting.
2691         * Theme.cs: add abstract ListViewGroupHeight function.
2692         * ThemeWin32Classic.cs: implement ListViewGroupHeight function.
2693
2694 2006-12-16  Andreia Gaita  <avidigal@novell.com>
2695
2696         * TabControl.cs: Fixed checks for NET_2_0-specific exceptions.
2697         Added reset of selected index to 0 when adding first tab page.
2698         Fixes #80264
2699         
2700         * NumericUpDown.cs: Fix NET_2_0 check
2701
2702 2006-12-16  Daniel Nauck  <dna@mono-project.de>
2703
2704         * ListViewGroup.cs: fixed DefaultValueAttribute value
2705
2706 2006-12-16  Daniel Nauck  <dna@mono-project.de>
2707
2708         * AutoCompleteStringCollection.cs: add new AutoCompleteStringCollection 2.0 class
2709
2710 2006-12-15  Miguel de Icaza  <miguel@novell.com>
2711
2712         * Button.cs, ComboBox.cs, ScrollBar.cs, UserControl.cs,
2713         TextBoxBase.cs, ListView.cs, ContainerControl.cs,
2714         ScrollableControl.cs: Add a handful of methods that are
2715         overwritten in 2.0 
2716
2717 2006-12-15  Chris Toshok  <toshok@ximian.com>
2718
2719         * XplatUIWin32.cs: initial implementation of the Reversible
2720         drawing functions.  there are some problems.  DrawReversibleFrame
2721         doesn't seem to work at all for Dashed FrameStyle, and in the
2722         Thick case there are drawing errors at the corners (we probably
2723         need to bind Rectangle instead of doing moveto/lineto's.)
2724
2725 2006-12-16  Andreia Gaita  <avidigal@novell.com>
2726         
2727         * SendKeys.cs: Implemented. SendKeys uses a new method in XPlatUI, SendInput, 
2728         to send blocks of key messages. Send accumulates keys to send with Flush, 
2729         while SendWait sends all keys immediately.
2730                 
2731         * XplaUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, 
2732         XplatUIX11.cs,  XplatUIX11-new.cs:
2733         - Define SendInput and stubs for OSX and X11, implements Win32 with a call
2734         to Win32 SendInput.
2735         - Added INPUT support structures to XplatUIWin32 for Win32SendInput
2736         
2737         Tests:  It seems ms.net is hooking the keyboard to implement this, so doing unit
2738         testing for ms.net on this class is very tricky, as the tests run too fast 
2739         to allow the hook to release, essentially freezing the keyboard and the 
2740         test. So, barring a win32 miracle, they'll be commited in the ms-notworking     
2741         category :p
2742
2743 2006-12-16  Daniel Nauck  <dna@mono-project.de>
2744
2745         * Padding.cs: fixed serialization compability to MS ("_var" field names),
2746                         added missing attributes.
2747  
2748 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2749
2750         * ListViewGroup.cs: Added missing attributes.
2751         * ListViewGroupCollection.cs: Added missing attributes.
2752
2753 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2754
2755         * ListViewItem.cs: fixed ListViewSubItem text property.
2756
2757 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2758         
2759         * Control.cs: Added missing 2.0 attributes
2760         
2761 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2762         
2763         * MdiClient.cs: Added missing 2.0 attribute.
2764         * MonthCalendar.cs: Added some missing 2.0 attributes 
2765         and properties.
2766         
2767 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2768
2769         * ListView.cs: implemented ListViewItemCollection Add 2.0 support.
2770
2771 2006-12-15  Jonathan Pobst  <monkey@jpobst.com>
2772
2773         * MainMenu.cs: Add the new 2.0 constructor to help out people
2774         using the MainMenu in VS2005.
2775
2776 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2777         
2778         * MdiChildContext.cs: Removed it, no longer used.
2779         * MdiClient.cs: Added missing 2.0 attributes.
2780         
2781 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2782         
2783         * InternalWindowManager.cs: Fix a NullRef with previous 
2784         changes for toolwindows.
2785         
2786 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2787
2788         * Control.cs: 
2789         - Added AfterTopMostControl to allow for certain controls 
2790         to always stay on top when normal controls are brought to 
2791         front.
2792         
2793         * XplatUIWin32.cs: 
2794         - (DrawInversibleRectangle): Get window rectangle from Win32 
2795         in stead of from control, since Win32 doesn't calculate
2796         screen coords correctly from control's Location if it 
2797         have docked siblings.
2798         
2799         * MdiWindowManager.cs:
2800         - Correct the control menu popup location when clicked on
2801         the maximized form icon. (fixes #80223.1)
2802         - Don't show moving rectangle if mouse hasn't moved from
2803         the original clicked point.
2804         - Removed FormGotFocus handler (not used).
2805         - Calculate the control buttons location from the main
2806         window's size and not client size (fixes #79770).
2807         - Form is now closed when the form icon is double-clicked
2808         (fixes #79775). 
2809         - Correct NCCalcSize numbers a little bit (fixes #80223.2)
2810         
2811         * InternalWindowManager.cs:
2812         - Moved some MDI-only methods to MdiWindowManager.
2813         - Removed unused properties and methods.
2814         - Unified method naming for methods handling wm messages.
2815         - Moved all message handling to seperate methods for
2816         each message.
2817         
2818         * ThemeWin32Classic.cs:
2819         - DrawManagedWindowDecorations now draws the title bar 
2820         with a gradient brush.
2821         - Add a CPDrawButtonInternal that allows us to specify
2822         light, normal and dark colors for the buttons (control 
2823         buttons for MDI children were drawn with the same light
2824         color as the background, therefore loosing the 3D effect).
2825         
2826         * SizeGrip.cs:
2827         - Add a CapturedControl property that is used to 
2828         determine the control to resize (defaults to parent). 
2829         Needed for MdiClient, since its SizeGrip's parent is
2830         MdiClient, but the control to resize is the main form.
2831         
2832         * MdiClient.cs:
2833         - Set SizeGrip's CapturedControl to the main form in order
2834         to resize the main form and not the MdiClient.
2835         - Override AfterTopMostControl to leave the scrollbars 
2836         always on top.
2837
2838 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2839
2840         * ListView.cs: fixed ListViewItemCollection AddRange and
2841                         implemented ListViewItemCollection AddRange 2.0 support.
2842
2843 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2844
2845         * ListViewGroup.cs: Add.
2846         * ListViewGroupCollection.cs: Add
2847         * ListView.cs: Add ListViewGroup (Group) and ShowGroups 2.0 support.
2848         * ListViewItem.cs: Add ListViewgroup (Group), ListViewGroups constructors and
2849                                 stub for ImageKey 2.0 support.
2850
2851 2006-12-14  Mike Kestner  <mkestner@novell.com>
2852
2853         * ListView.cs: add text padding to the autocalculation for columns
2854         of width -2.  Fixes #80207.
2855  
2856 2006-12-14  Mike Kestner  <mkestner@novell.com>
2857
2858         * ListView.cs: add some index guarding for partial row navigation 
2859         logic.  Fixes #80250.
2860
2861 2006-12-14  Mike Kestner  <mkestner@novell.com>
2862
2863         * ListView.cs: throw ArgumentExceptions when parented ListViewItems
2864         are added or inserted to the collection.  Fixes #81099.
2865
2866 2006-12-13  Everaldo Canuto  <everaldo@simios.org>
2867
2868         * MenuAPI.cs: Closes menu when right click out side of popup
2869         it fix problem in ContextMenu and MainMenu. Fixes #80252.
2870
2871 2006-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2872
2873         * ListViewItem.cs: Fix dumb error.
2874
2875         * ListView.cs: Add Find and ContainsKey methods in 
2876         ListViewItemCollection, and also return true for IsReadOnly
2877         and IsFixedSize (changes for 2.0). 
2878
2879 2006-12-13  Gert Driesen  <drieseng@users.sourceforge.net>
2880
2881         * Control.cs: Allow Region to be set to null.
2882
2883 2006-12-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2884
2885         * MdiWindowManager.cs: Remove unused (commented out) code.
2886         * Form.cs: When the MdiChild is maximized, the form needs 
2887         WM_NCMOUSELEAVE, so request it.
2888         * InternalWindowManager.cs: 
2889         - Added tooltips to control buttons.
2890         - Removed duplicated control button handling code.
2891         - Removed unused (commented out) code.
2892         
2893 2006-12-12  Everaldo Canuto  <everaldo@simios.org>
2894
2895         * MenuAPI.cs: Set cursor to default in popup menus, a XplatUI.SetCursor 
2896         was used because we must set cursor without trigger ChangeCursor event
2897         and without change Cursor control property. Fixes #79963.
2898
2899 2006-12-12  Andreia Gaita  <avidigal@novell.com>
2900         
2901         * Control.cs: Check if Region setter value is null, and ignore
2902
2903 2006-12-12  Jackson Harper  <jackson@ximian.com>
2904
2905         * TextControl.cs: We were almost always drawing one more line then
2906         needed, since the GetLineByPixel will return the last line found
2907         at that pixel. In most cases though, we were invalidating up to
2908         the junction between two lines.
2909         - Improve debug code.
2910
2911 2006-12-12  Chris Toshok  <toshok@ximian.com>
2912
2913         * XplatUI.cs: add static DrawReversibleFrame, DrawReversibleLine,
2914         and FillReversibleRectangle.
2915
2916         * XplatUIDriver.cs: add abstract DrawReversibleFrame, DrawReversibleLine,
2917         and FillReversibleRectangle.
2918
2919         * XplatUIWin32.cs: add stubs which do nothing for
2920         DrawReversibleFrame, DrawReversibleLine, and
2921         FillReversibleRectangle.
2922
2923         * XplatUIOSX.cs: add stubs which raise NIE for
2924         DrawReversibleFrame, DrawReversibleLine, and
2925         FillReversibleRectangle.
2926
2927         * XplatUIX11.cs: add working implementation for
2928         DrawReversibleFrame, DrawReversibleLine, and
2929         FillReversibleRectangle.
2930         
2931         * ControlPaint.cs: implement DrawReversibleFrame,
2932         DrawReversibleLine, and FillReversibleRectangle, by calling into
2933         the appropriate XplatUI method.
2934
2935 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2936
2937         * Form.cs: Make MdiClient have the focus even if it's
2938         not selectable, since it should receive WM_KEY* and WM_MOUSE 
2939         messages. Fixes #79907.
2940         
2941 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2942
2943         * Hwnd.cs: Save the CreateParams.ExStyle so that it can be
2944         queried after the window is created.
2945         
2946         * XplatUIX11.cs: Added SendParentNotify to implement 
2947         WM_PARENTNOTIFY logic. Fixes #79965.
2948         
2949         * Control.cs: Added MakeParam.
2950         
2951 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2952
2953         * MdiClient.cs: Resume Layout before setting window
2954         states (fixes #80201).
2955
2956 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2957
2958         * MenuAPI.cs: Deselect a menu item after performing
2959         the click (fixes #80197).
2960
2961 2006-12-11  Jackson Harper  <jackson@ximian.com>
2962
2963         * TextBoxBase.cs: We need to cap this value, since Maximum -
2964         ViewPortHeight can be less than zero.
2965         - Only do selection with the left mouse button.
2966         * TextBox.cs: Don't tell the world that we have a context menu.
2967         * Control.cs: New method so that we can control whether or not the
2968         context menu is visible outside MWF.
2969
2970 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
2971
2972         * ToolBarButton.cs: Fix text positon. 
2973
2974 2006-12-11  Miguel de Icaza  <miguel@novell.com>
2975
2976         * ProgressBar.cs (MarqueeAnimationSpeed): Add stub.
2977
2978         * Control.cs (DoubleBuffered): Add implementation.
2979
2980         * Application.cs (OpenForms): Add.
2981
2982 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
2983
2984         * Form.cs: Use opacity instead of Opactiy to determine if we need
2985         to set the WS_EX_LAYERED bit.  [Fixes bug #80185]
2986
2987 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
2988
2989         * Control.cs: Fix NRE if Control.Site was set to null.
2990
2991 2006-12-11  Chris Toshok  <toshok@ximian.com>
2992
2993         * Control.cs: ControlCollection.Remove should return if the arg is
2994         null, and ControlCollection.SetChildIndex should raise a ANE.
2995
2996 2006-12-11  Gert Driesen  <drieseng@users.sourceforge.net>
2997
2998         * Control.cs: Verify value set for Dock property. Code formatting
2999         updates.
3000
3001 2006-12-11  Jackson Harper  <jackson@ximian.com>
3002
3003         * TextControl.cs: Draw the caret and the selection when a flag is
3004         set on the owner.
3005         * TextBoxBase.cs: We want to draw the caret and the selection for
3006         TextBox but not for TextBoxBase.
3007         - If the window is resized and scrolling is no longer needed (the
3008         whole doc is visible) set the scroll position to zero.
3009         - The default SelectWord (the one TextBox uses) should move the
3010         caret to the end of the word.
3011         - SelectAll moves the caret to the end of the selection.
3012         * TextBox.cs: We don't selectall on focus, we just do it when the
3013         control is created.
3014         
3015 2006-12-11  Mike Kestner  <mkestner@novell.com>
3016
3017         * ComboBox.cs: stub in a 2.0 override for ProcessKeyEventArgs.
3018
3019 2006-12-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3020
3021         * ListView.cs: Add Insert, IndexOfKey, RemoveByKey and indexer 
3022         2.0 support.
3023         * ListViewItem.cs: Add Name 2.0 property.
3024
3025 2006-12-11  Andreia Gaita  <avidigal@novell.com>
3026
3027         * TabControl.cs: Set visibility on selected or default tab 
3028         when tabcontrol handle is created, so that it's contents
3029         actually show up (duh). Fixes #80193
3030         Don't redraw the control if there is no handle created, as
3031         the selected index might be completely invalid. Added some tests
3032         to check for this.
3033
3034 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
3035
3036         * ToolBar.cs: Uses maximun width and height of all buttons as 
3037         button rectangle when ButtonSize specified, it looks strange but
3038         is what happens in Win32. Fixes #80189.
3039
3040 2006-12-11  Jackson Harper  <jackson@ximian.com>
3041
3042         * TextControl.cs: Need to track undo levels ourself, since
3043         compound actions will mess them up.
3044
3045 2006-12-10  Andreia Gaita  <avidigal@novell.com>
3046
3047         * TabControl.cs: Raise SelectedIndexChanged for 1.1 if the
3048         SelectedIndex value is changed (even if it's not valid).
3049         Reset SelectedIndex to 0 when the handle is created and if
3050         the current index is invalid.
3051         Fixes SelectdeIndex unit tests and #80128
3052
3053 2006-12-08  Chris Toshok  <toshok@ximian.com>
3054
3055         * DataGrid.cs (set_CurrentCell): because EnsureCellVisibility
3056         calls EndEdit, it needs to be called before we set current_cell to
3057         its new value.  Otherwise, we end up committing the value in the
3058         textbox to the new cell as well.  Fixes bug #80160.
3059
3060 2006-12-08  Chris Toshok  <toshok@ximian.com>
3061
3062         * Form.cs (set_CancelButton): if the button's DialogResult is
3063         None, set it to Cancel.  Fixes bug 80180.
3064
3065 2006-12-08  Jackson Harper  <jackson@ximian.com>
3066
3067         * TextBoxBase.cs: Ugh, ClientSize can be 0,0 sometimes, so we need
3068         to watch ourselves when setting the canvas size and setting the
3069         scrollbar values.
3070
3071 2006-12-08  Chris Toshok  <toshok@ximian.com>
3072
3073         * DataGrid.cs: comment out the two MakeTransparent calls for the
3074         time being so people using trunk (and not 1.2.2) on windows can
3075         actually use the datagrid.  This deals with bug #80151.
3076
3077 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
3078
3079         * ThemeWin32Classic.cs: Change ButtonBase_DrawImage to use the
3080         Graphics.DrawImage (image, int, int, int, int) overload instead
3081         of Graphics.DrawImage (image, int, int).  GDI+ can't figure out
3082         the dpi difference and was blurring images it drew.
3083         [Fixes bug #79960]
3084
3085 2006-12-08  Chris Toshok  <toshok@ximian.com>
3086
3087         * ThemeWin32Classic.cs (DataGridPaintRows): handle case where
3088         rowcnt is 0 (such as with an empty datasource), and make sure we
3089         initialize not_usedarea.Y to cells.Y, so we don't draw over the
3090         other areas (caption, parent row, etc, etc).  Fixes bug #80095.
3091
3092 2006-12-08  Chris Toshok  <toshok@ximian.com>
3093
3094         * DataGridColumnStyle.cs (SetDataGrid): don't try to access a null
3095         grid.
3096
3097 2006-12-08  Chris Toshok  <toshok@ximian.com>
3098
3099         [ Fixes bug #80167 ]
3100         
3101         * ThemeWin32Classic.cs: don't draw the image if the button's flat
3102         style is FlatStyle.System.
3103
3104         * ButtonBase, ThemeClearlooks.cs, ThemeGtk.cs, ThemeNice.cs: make
3105         ButtonBase.flat_style private, and switch uses of it to the public
3106         property.
3107         
3108 2006-12-08  Chris Toshok  <toshok@ximian.com>
3109
3110         [ Fixes bug #80121 ]
3111         
3112         * ThemeWin32Classic.cs: center the caption text in the datagrid
3113         when we draw it.
3114
3115         * DataGrid.cs: lessen the amount we add to the caption height from
3116         6 to 2.  6 was making it huge.
3117
3118 2006-12-08  Andreia Gaita  <avidigal@novell.com>
3119
3120         * UpDownBase: Handle MouseWheel call directly instead of capturing
3121         the inner textbox's OnMouseWheel. Fixes #80166
3122
3123 2006-12-08  Jackson Harper  <jackson@ximian.com>
3124
3125         * TextControl.cs: We need to invalidate the textbox when we empty
3126         it (how had this not been discovered before?)
3127
3128 2006-12-08  Jackson Harper  <jackson@ximian.com>
3129
3130         * TextBoxBase.cs: Reworked the mouse down code so I could get it
3131         to behave like MS, we now ignore the eventargs.Click and just
3132         track state ourself, which we were already doing anyways.
3133         - Constrain the double click handler to the double click size.
3134         
3135 2006-12-08  Chris Toshok  <toshok@ximian.com>
3136
3137         * DataGrid.cs: the mousewheel code shouldn't try to scroll in a
3138         direction if that scrollbar isn't shown.  fixes bug #80158.
3139
3140 2006-12-08  Andreia Gaita  <avidigal@novell.com>
3141
3142         * NumericUpDown.cs: Update value on getter. Fixes #79950
3143
3144 2006-12-08  Chris Toshok  <toshok@ximian.com>
3145
3146         * MenuItem.cs: add back in the event cloning code.  I didn't know
3147         how to do it in the face of the EventHandlerList work i'd done
3148         last week.  Fixes bug #80183.
3149
3150 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
3151
3152         * Control.cs: Add an invalidate to the BackgroundImage setter.
3153         [Fixes 80184]
3154
3155 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
3156
3157         * ToolStrip*: Add some small properties reported by MoMA, fix event
3158         firing and default properties based off of unit tests, and add some
3159         attributes based off of the class status page.
3160
3161 2006-12-07  Jackson Harper  <jackson@ximian.com>
3162
3163         * TextBoxBase.cs: Take HideSelection into account when determining
3164         whether or not to show the selection.
3165         * RichTextBox.cs: After inserting the RTF into the document move
3166         the cursor to the beginning of the document.
3167
3168 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
3169
3170         * Control.cs: Remove static ArrayList "controls" which maintained
3171         a reference to every control created.
3172         * Application.cs: Create a static FormCollection to maintain a reference
3173         to every form created.  Use it in places that formerly enumerated through
3174         the controls one looking for forms.
3175         * Form.cs: Add and remove self from above FormCollection.
3176
3177 2006-12-07  Alexander Olk  <alex.olk@googlemail.com>
3178
3179         * MimeIcon.cs: gdk_pixbuf_save_to_buffer is part of libgdk-pixbuf,
3180           not libgdk (though it makes me wonder why I didn't have any
3181           problems)
3182
3183 2006-12-07  Chris Toshok  <toshok@ximian.com>
3184
3185         [ you had to know this was coming after that last commit...]
3186         
3187         * XplatUIX11.cs: implement the 3 Offscreen functions in terms of
3188         XPixmaps (CreateOffscreenDrawable maps to XCreatePixmap,
3189         DestroyOffscreenDrawable to FreePixmap, and BlitFromOffscreen to
3190         XCopyArea).
3191
3192 2006-12-07  Chris Toshok  <toshok@ximian.com>
3193
3194         * XplatUI.cs: add 3 calls (CreateOffscreenDrawable,
3195         DestroyOffscreenDrawable, and BlitFromOffscreen) that encompass
3196         all the behavior we need for double buffering.
3197
3198         * XplatUIDriver.cs: implement the 3 double buffer methods using a
3199         client side Bitmap, just like the old Control-based double buffer
3200         code did.  The methods are virtual, so each XplatUI driver
3201         subclass can replace the implementation to use a faster, platform
3202         specific approach.
3203
3204         * Control.cs: make use of the 3 Offscreen XplatUI calls in the
3205         double buffer code, and clean things up a bit in the process.
3206
3207 2006-12-06  Chris Toshok  <toshok@ximian.com>
3208
3209         * Control.cs: reindent WndProc.
3210
3211 2006-12-06  Chris Toshok  <toshok@ximian.com>
3212
3213         [ I wanna be like BenM when I grow up ]
3214         
3215         * Hwnd.cs: create a single static Graphics object on the static
3216         Bitmap we create.  use this for our text measurements.
3217
3218         * Control.cs (DeviceContext): stop using the backbuffer's dc_mem.
3219         This was causing us to allocate a backbuffer for every control,
3220         even when it wasn't flagged as double buffered.  Instead use the
3221         single graphics instance.  This might have implications for
3222         multithreaded applications.  If we run into problems we can switch
3223         to creating 1 Graphics per control, on the static Hwnd bitmap.
3224
3225         this change nets us a 7M savings in private dirty mappings when
3226         running FormsTest.exe.
3227
3228 2006-12-06  Chris Toshok  <toshok@ximian.com>
3229
3230         * ListView.cs: the BackgroundImage override is just to set
3231         attributes.  chain up to base.BackgroundImage.
3232
3233         * RichTextBox.cs: same.
3234
3235         * ToolBar.cs: same, but we need to also redraw the toolbar when it
3236         changes, so instead a handler for BackgroundImageChanged.
3237         
3238         * Control.cs: make background_image private.
3239
3240 2006-12-06  Chris Toshok  <toshok@ximian.com>
3241
3242         * ScrollBar.cs: change the assignment of cursor to Cursor.  not
3243         sure we even need this assignment, but roll with it for now.
3244
3245         * Control.cs: make the cursor field private.
3246
3247 2006-12-06  Chris Toshok  <toshok@ximian.com>
3248
3249         * Form.cs: we don't need to explicitly set ImeMode to
3250         ImeMode.NoControl - that's a natural fallout of Control.ImeMode's
3251         behavior in the face of ImeMode.Inherit.
3252
3253         * ButtonBase.cs: change DefaultImeMode to ImeMode.Disable, and
3254         change the ctor's assignment to use ImeMode instead of ime_mode.
3255
3256         * Control.cs (get_ImeMode): don't assume DefaultImeMode ==
3257         ImeModeInherit.  Only check for the parent's imemode (and return
3258         NoControl if there is no parent) if ime_Mode == ImeMode.Inherit.
3259         This fixes the button unit test, which sets both ImeMode and
3260         DefaultImeMode to ImeMode.Disable.
3261
3262         also make the ime_mode field private.
3263
3264 2006-12-06  Chris Toshok  <toshok@ximian.com>
3265
3266         * Control.cs: make control_style private.
3267
3268         * TextBoxBase.cs: fix the HandleClick override.  it was explicitly
3269         setting the styles to true, then setting them to false instead of
3270         reverting to their previous values.
3271
3272         also, call SetStyle on the scrollbars instead of using
3273         control_style directly.
3274
3275 2006-12-06  Jonathan Pobst  <monkey@jpobst.com>
3276
3277         * FormCollection.cs: Implement. [2.0]
3278
3279 2006-12-06  Chris Toshok  <toshok@ximian.com>
3280
3281         * Control.cs: make tab_stop private.
3282
3283         * Label.cs: set TabStop, not tab_stop.  reformat some event
3284         add/remove methods to make them more compact.
3285
3286 2006-12-06  Chris Toshok  <toshok@ximian.com>
3287
3288         * RadioButton.cs: fix TabStop handling.
3289
3290 2006-12-06  Chris Toshok  <toshok@ximian.com>
3291
3292         * TextBox.cs: remove the explicit assignments to has_focus.
3293         Control does that.
3294
3295         * ButtonBase.cs: remove the assignment to has_focus.  Control will
3296         manage that.
3297         
3298 2006-12-06  Chris Toshok  <toshok@ximian.com>
3299
3300         * ButtonBase.cs: remove all uses of is_enabled from this code.
3301         it's always true when any of the code containing the checks is
3302         executed.
3303
3304 2006-12-06  Chris Toshok  <toshok@ximian.com>
3305
3306         * ImageList.cs: reinstate the ShouldSerialize*/Reset* methods,
3307         with different semantics (some are present in both 1.1 and 2.0
3308         profiles) so that we match MS's behavior in our unit tests.
3309
3310 2006-12-06  Jackson Harper  <jackson@ximian.com>
3311
3312         * TextControl.cs: Make this operation undoable.
3313         * TextBoxBase.cs: Factor the border width into the preferred
3314         height.
3315         - implement Modified as per the spec.
3316
3317 2006-12-06  Chris Toshok  <toshok@ximian.com>
3318
3319         * Timer.cs, Control.cs, Menu.cs: make control_tag private.
3320
3321 2006-12-06  Chris Toshok  <toshok@ximian.com>
3322
3323         * Control.cs: make right_to_left and context_menu fields private.
3324
3325 2006-12-06  Chris Toshok  <toshok@ximian.com>
3326
3327         * AccessibleObject.cs, Control.cs, XplatUIX11GTK.cs,
3328         XplatUIX11.cs, Form.cs, RadioButton.cs, ScrollableControl.cs: make
3329         Control.child_controls private.  switch all uses over to
3330         Control.Controls.
3331
3332 2006-12-06  Chris Toshok  <toshok@ximian.com>
3333
3334         * System.Windows.Forms/GroupBox.cs,
3335         System.Windows.Forms/AccessibleObject.cs,
3336         System.Windows.Forms/ErrorProvider.cs,
3337         System.Windows.Forms/Control.cs,
3338         System.Windows.Forms/UpDownBase.cs,
3339         System.Windows.Forms/ScrollBar.cs,
3340         System.Windows.Forms/DateTimePicker.cs,
3341         System.Windows.Forms/Form.cs, System.Windows.Forms/Label.cs,
3342         System.Windows.Forms/ToolTip.cs,
3343         System.Windows.Forms/RadioButton.cs,
3344         System.Windows.Forms/LinkLabel.cs,
3345         System.Windows.Forms/Splitter.cs,
3346         System.Windows.Forms/TextBoxBase.cs,
3347         System.Windows.Forms/ToolStripTextBox.cs,
3348         System.Windows.Forms/ContainerControl.cs,
3349         System.Windows.Forms/ThemeWin32Classic.cs,
3350         System.Windows.Forms/SizeGrip.cs,
3351         System.Windows.Forms/ToolStripDropDown.cs,
3352         System.Windows.Forms/ScrollableControl.cs: Make Control.parent
3353         private.  switch all uses over to Control.Parent.
3354
3355 2006-12-06  Chris Toshok  <toshok@ximian.com>
3356
3357         * RichTextBox.cs: don't assign to has_focus in GotFocus/LostFocus.
3358         Control does this before calling emitting these events.
3359
3360         * TabControl.cs: same.
3361
3362         * ThemeWin32Classic.cs: use Control.ClientRectangle instead of
3363         Control.client_rect.
3364
3365         * ButtonBase.cs: use the ClientSize property instead of the
3366         client_size field.
3367
3368         * ScrollableControl.cs: same.
3369
3370         * Control.cs: another pass at making properties private.  also,
3371         move the initialization of tab_stop to the ctor.
3372
3373 2006-12-05  Andreia Gaita <avidigal@novell.com>
3374
3375         * TabControl.cs: Let the selected index be set freely if the 
3376         control handle is not yet created.
3377
3378 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
3379
3380         * Control.cs: Revert dist_top, dist_right, and dist_bottom to 
3381         internal until I can rewrite DefaultLayout.
3382         * ToolStrip.cs: Fix build error and some general cleaning.
3383         * ToolStripControlHost.cs, SplitterPanel.cs, DataGridView.cs:
3384         Fix build errors caused by making some of Control's fields private.
3385
3386 2006-12-05  Jackson Harper  <jackson@ximian.com>
3387
3388         * TextControl.cs: Redo Insert a little so that it use IndexOf
3389         instead of Split, this prevents it from messing up on things like
3390         \n\n\n. Also more effecient since the split array doesn't need to
3391         be created.
3392         * TextBoxBase.cs: AppendText doesnt handle multiline and non
3393         multiline text differently, this is the first of many fixes that
3394         will make multiline/non-multiline the same thing as far as the
3395         TextBoxBase is concerned.
3396         - Don't split the text and insert lines, this can lose some line
3397         endings (like is the last line a soft or hard break). Instead use
3398         the new Insert.
3399         - Fix an off by one when combining all the lines in the Text
3400         getter.
3401         - Remove separate multiline handling from the Text getter/setter.
3402
3403 2006-12-05  Chris Toshok  <toshok@ximian.com>
3404
3405         * ButtonBase.cs: a few changes:
3406
3407         - don't reinitialize internal Control fields in the ctor when they
3408         have the same values as Control sets them.
3409
3410         - don't set has_focus in OnGotFocus/OnLostFocus.  Control does
3411         this before calling those methods.
3412
3413         - we don't need to call Refresh for anything.  use Invalidate
3414         instead.
3415
3416         - OnEnabledChanged doesn't need to redraw at all - Control.cs
3417         calls Refresh in its OnEnabledChanged.
3418         
3419         - several of the events we were registered for in the ctor to
3420         redraw ourselves already include calls to Invalidate in the
3421         property setters that raise the events.  remove the extra
3422         invalidation.
3423
3424         - reformat a switch statement that was 83274658 columns wide.
3425         
3426 2006-12-05  Mike Kestner  <mkestner@novell.com>
3427
3428         * ComboBox.cs: fix a unit test regression from a TextBox
3429         SelectionLength return of -1 when there's no selection.  
3430
3431 2006-12-05  Chris Toshok  <toshok@ximian.com>
3432
3433         * Control.cs, Button.cs, ThemeGtk.cs, Form.cs, ListView.cs,
3434         ThemeWin32Classic.cs, SizeGrip.cs, ToolBar.cs: first pass at
3435         cleaning up some of the internal Control fields being used by
3436         subclasses.
3437
3438 2006-12-05  Mike Kestner  <mkestner@novell.com>
3439
3440         * ComboBox.cs: fix some Simple mode regressions.  Set Visible on the
3441         listbox after AddImplicit calls since it defaults to hidden. Add a 
3442         hack to preserve requested heights across DropDownStyle changes.
3443
3444 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
3445
3446         * PropertyGrid.cs: Hide FindFirstItem method from public API.
3447
3448 2006-12-05  Chris Toshok  <toshok@ximian.com>
3449
3450         * DataGridView.cs: fix compiler warnings.
3451
3452         * PrintControllerWithStatusDialog.cs: same.
3453
3454         * ToolBar.cs: same.
3455
3456         * FolderBrowserDialog.cs: same.
3457
3458         * Splitter.cs: same.
3459
3460         * DataGridViewComboBoxCell.cs: same.
3461
3462         * XplatUIWin32.cs: same.
3463
3464         * PictureBox.cs: same.
3465
3466         * Win32DnD.cs: same.
3467
3468         * PageSetupDialog.cs: same.
3469
3470         * FileDialog.cs: same.
3471
3472         * PrintDialog.cs: same.
3473
3474         * DataGridTextBoxColumn.cs: same.
3475
3476         * DrawTreeNodeEventArgs.cs: same (and fix corcompare)
3477
3478 2006-12-05  Chris Toshok  <toshok@ximian.com>
3479
3480         * TextBox.cs, CheckedListBox.cs, MonthCalendar.cs, Menu.cs,
3481         MainMenu.cs, ListView.cs, LabelEditTextBox.cs, ToolBar.cs: more
3482         System.ComponentModel.EventHandlerList work.
3483
3484 2006-12-05  Jonathan Chambers  <joncham@gmail.com>
3485
3486         * DrawTreeNodeEventArgs.cs: Added.
3487
3488 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3489         
3490         * InternalWindowManager.cs: Remove an unused field.
3491         
3492 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3493
3494         * InternalWindowManager.cs:
3495         - Save the point where the title bar is clicked.
3496         
3497         * MdiWindowManager.cs:
3498         - Only allow moving of the window as long as the 
3499         clicked point on the title bar does not get out of
3500         MdiClient's rectangle. Fixes #79982.
3501         
3502         * MdiClient.cs:
3503         - Added Horizontal/VerticalScrollbarVisible.
3504         - Simplified the scrollbar sizing algorithm.
3505         - Cache the difference in scrolled value in
3506         H/VBarValueChanged and move the calculation out
3507         of the for loop.
3508
3509 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3510
3511         * Control.cs: Make the Console.WriteLine in WndProc 
3512         write more info.
3513
3514 2006-12-05  Chris Toshok  <toshok@ximian.com>
3515
3516         * ToolStripManager.cs, ToolStripButton.cs,
3517         ToolStripContentPanel.cs, ToolStripComboBox.cs, ToolStrip.cs,
3518         ToolStripMenuItem.cs, ToolStripItem.cs, ToolStripControlHost.cs,
3519         ToolStripSplitButton.cs, ToolStripSeparator.cs,
3520         ToolStripRenderer.cs, ToolStripDropDownItem.cs,
3521         ToolStripProgressBar.cs, ToolStripContainer.cs,
3522         ToolStripTextBox.cs, ToolStripPanel.cs, ToolStripDropDown.cs: move
3523         to using System.ComponentModel.EventHandlerList.
3524
3525 2006-12-04  Chris Toshok  <toshok@ximian.com>
3526
3527         * LinkLabel.cs: fix up compiler warnings.
3528
3529         * TableLayoutSettings.cs: same.
3530
3531         * TreeView.cs: same.
3532
3533         * ToolBar.cs: same.
3534
3535         * TabControl.cs: same.
3536
3537         * RichTextBox.cs: same.
3538
3539         * ListViewItem.cs: same.
3540
3541         * PropertyGrid.cs: same.
3542
3543         * DataGridViewRowPostPaintEventArgs.cs: corcompare fix.
3544
3545         * ToolTip.cs same.
3546
3547         * TextRenderer.cs: fix up compiler warnings.
3548
3549         * Label.cs: same.
3550
3551         * Form.cs: corcompare fixes.
3552
3553         * PictureBox.cs: fix up compiler warnings.
3554
3555         * ImageListStreamer.cs: same.
3556
3557         * TrackBar.cs: corcompare fix.
3558
3559         * Control.cs: fix up compiler warnings.
3560
3561         * SplitterPanel.cs: same.
3562
3563         * NumericTextBox.cs: same.
3564
3565         * ImageList.cs: same.
3566
3567         * StatusStrip.cs: same.
3568
3569         * ProgressBar.cs: corcompare fix.
3570
3571         * ToolStripButton.cs: fix up compiler warnings.
3572
3573         * ToolStripStatusLabel.cs: same.
3574
3575         * ToolStripSplitButton.cs: same.
3576
3577         * ToolStripSeparator.cs: same.
3578
3579         * ToolStripProgressBar.cs: same.
3580
3581         * ToolStripDropDownMenu.cs: same
3582
3583         * ToolStripDropDown.cs: same.
3584
3585         * ToolStripDropDownButton.cs: same.
3586
3587         * ToolStrip.cs: same.
3588
3589         * ToolStripControlHost.cs: same.
3590
3591         * ToolStripContentPanel.cs: same.
3592
3593         * ToolStripDropDown.cs: same.
3594
3595         * ToolStripContainer.cs: same.
3596
3597         * ToolStripPanel.cs: same, and add "new" where we need it to work
3598         with the new ArrangedElementCollection.
3599
3600         * ToolStripItemCollection.cs: add "new" where we need it to work
3601         with the new ArrangedElementCollection.
3602
3603 2006-12-04  Andreia Gaita <avidigal@novell.com>
3604
3605         * TabControl.cs: Fix default tab selection to after TabControl
3606         gets focus and not before. Fixes #80128
3607
3608 2006-12-04  Chris Toshok  <toshok@ximian.com>
3609
3610         * DataGridTableStyle.cs: remove the gross calling of
3611         datagrid.Refresh from here.  It's a broken idea and it doesn't
3612         work anyway.
3613
3614         * DataGrid.cs: instead, just register/unregister from the
3615         DataGridTableStyle events in CurrentTableStyle.  we play it
3616         conservatively and EndEdit + CalcAreasAndInvalidate on any event,
3617         even though some would most likely not require it.  Fixes bug
3618         #80115 (and one portion of #80117 as a side effect).
3619
3620 2006-12-04  Chris Toshok  <toshok@ximian.com>
3621
3622         * DataGrid.cs (set_CaptionVisible): EndEdit before doing the work
3623         so the textbox (if any) goes away.  Fixes bug #80117.
3624
3625 2006-12-04  Chris Toshok  <toshok@ximian.com>
3626
3627         * DataGridColumnStyle.cs: set the column's readonly property
3628         initially based on the property descriptor's IsReadOnly.  Fixes
3629         bug #80044.
3630
3631 2006-12-04  Chris Toshok  <toshok@ximian.com>
3632
3633         * ComboBox.cs: wrap the dropdown style changing work in
3634         SuspendLayout/ResumeLayout.  Fixes bug #79968.
3635
3636 2006-12-04  Jackson Harper  <jackson@ximian.com>
3637
3638         * TextBoxBase.cs: Fix off by one, since these are one-based.
3639         * TextBox.cs: Select all the text when we get focus.  The TextBox
3640         does this but the RTB does not.
3641
3642 2006-12-04  Chris Toshok  <toshok@ximian.com>
3643
3644         * DataGridTextBoxColumn.cs: remove some spew.
3645
3646         * DataGridColumnStyle.cs (SetColumnValueAtRow): this seems right
3647         but some part of me is saying "it shouldn't be here.."  At any
3648         rate, it fixes bug #80046.  Call IEditableObject.EndEdit after
3649         setting the value.
3650
3651 2006-12-04  Chris Toshok  <toshok@ximian.com>
3652
3653         * DataGridColumnStyle.cs (SetDataGrid): call CheckValidDataSource
3654         to reassign the propertydescriptor.
3655
3656 2006-12-04  Jackson Harper  <jackson@ximian.com>
3657
3658         * TextBoxBase.cs:
3659         * TextControl.cs: Remove some unused variables.  Maybe this will
3660         patch things up between mike and I.
3661         - don't split lines less then one char wide, if the viewport is
3662         that small text won't be visible anyways.
3663         
3664 2006-12-04  Jackson Harper  <jackson@ximian.com>
3665
3666         * TextBoxBase.cs: Default selection length is -1, need to do some
3667         more testing on windows to see when this is used for the property.
3668         - Redid the Lines [] property to that we properly remove soft line
3669         breaks
3670         - added support for preserving carriage returns
3671         -  CanUndo is not a variable like 'is undo enabled' it just returns
3672         true if there is undo operations available.
3673         - AppendText doesn't need to grab the last tag itself anymore,
3674         this happens automatically when we move the cursor.
3675         * TextControl.cs: Add CompoundActions to the undo class. This
3676         allows combining the other operations into one big option.  ie a
3677         paste will combine { delete old, insert new, move cursor }
3678         - Add InsertString undo operation
3679         - New method for deleting multiline text
3680         - Add carriage returns to lines. So we can preserve carriage
3681         returns when text is 'roundtripped'
3682
3683 2006-12-04  Chris Toshok  <toshok@ximian.com>
3684
3685         * DataGrid.cs (CalcCellsArea): cells_area.Width/Height are at a
3686         minimum 0.  Fixes the scrollbar exception in bug #80136.
3687
3688 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3689
3690         * MdiClient.cs: 
3691         * MdiWindowManager: Removed unused fields and methods.
3692         
3693 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3694         
3695         * StatusBar.cs: Update all panels when a AutoSize=Contents
3696         panel needs updating.
3697         
3698         * StatusBarPanel.cs: Remove twidth and only use initialize.
3699         Fixes #80031.
3700                 
3701 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3702
3703         * Form.cs: When a form's MdiParent is set add it directly
3704         on top of the z-order in stead of relying on MdiClient's
3705         ActivateChild to do it. Fixes #80135.
3706         
3707         * MdiClient.cs: 
3708         - Remove original_order, mdi_child_list is already doing
3709         the same thing.
3710         - Create mdi_child_list on construction in
3711         stead of first use (avoids a few null checks).
3712
3713         * MenuItem.cs: Use an already existing list of mdi children
3714         to get the correct order of children and remove the other
3715         redundant list.
3716
3717 2006-12-04  Chris Toshok  <toshok@ximian.com>
3718
3719         * PropertyGridView.cs: cached_splitter_location is only used in
3720         !DOUBLEBUFFER code.
3721
3722         * PropertyGrid.cs: implement the ComComponentNameChanged event
3723         using Events, hoping that would fix the warning.  Looks like a
3724         compiler bug instead (#80144).
3725
3726         * PropertyManager.cs: remove unused method.
3727
3728 2006-11-04  Everaldo Canuto  <everaldo@simios.org>
3729
3730         * ThemeWin32Classic.cs: Dont draw arrow when menuitem on menubar, 
3731         include parentesis to fix expression evaluation. Fixes #79634.
3732
3733 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
3734         
3735         * MenuAPI.cs:
3736         - Changes to fix behavior in Menu control, some reported in #80097
3737         and other detected during behavior refactory like a select event
3738         problems.
3739         - Remove unneded "if's" conditions.
3740         - Created an internal to flag when popup is active in control, we need 
3741         it because in .NET you can have menu active but without popup active
3742         when you active menu using popup without visible items.
3743         - Mimic win32 behavior for Select and Popup events.  
3744         - Dont open popup menu when you dont have visible subitems.
3745         - Do nothing when click on disabled menu item.
3746         - Some small changes to follow the coding style guidelines.
3747         - Unselect menu only when another control gives focus. Fixes #80097.
3748         - Remove unused code.
3749         
3750         * MenuItem.cs: internal VisibleItems method to check if menu
3751         theres visible subitems, it will be usefull to fix some 
3752         behavior in Menu control.
3753         
3754 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
3755         
3756         * Timer.cs: Tag property for 2.0 profile.
3757         
3758 2006-12-01  Chris Toshok  <toshok@ximian.com>
3759
3760         [ after removing all warning suppressions, this cleans up over 100 warnings. ]
3761         
3762         * Win32DnD.cs: comment out some unused fields.
3763
3764         * XplatUIWin32.cs: comment out some unused pinvokes, and remove
3765         some unused properties/methods.
3766
3767         * XplatUIX11.cs: fix MousePosition so we override the base class's
3768         property instead of conflicting with it.
3769
3770         * PictureBox.cs: comment out some unused fields
3771
3772         * OSXStructs.cs: make some struct fields public.
3773
3774         * XplatUIOSX.cs: comment out some unused pinvokes, and fix
3775         MousePosition so we override the base class's property instead of
3776         conflicting with it.
3777
3778         * X11Dnd.cs: comment out some unused fields
3779
3780         * X11DesktopColors.cs: fix some struct field visibility to quiet
3781         the compiler.
3782
3783         * X11Dnd.cs: remove some debug code.
3784
3785         * ThemeClearlooks.cs: comment out unused field.
3786
3787         * ThemeNice.cs: mark some methods as overriding ThemeWin32Classic as needed.
3788
3789         * ThemeGtk.cs: comment out some unused pinvokes.
3790
3791         * Timer.cs: remove some unused fields.
3792
3793         * ThemeClearlooks.cs: comment out unused field.
3794
3795         * UpDownBase.cs: comment out unused field.
3796
3797         * DataObject.cs: comment out unused field.
3798
3799         * DataGridBoolColumn.cs: reomve unused field.
3800
3801         * DataGrid.cs: remove unused field.
3802
3803         * Cursor.cs: remove old ToBitmap code.
3804
3805         * ControlPaint.cs: remove unused method.
3806
3807         * ScrollBar.cs: remove unused fields.
3808
3809         * ComboBox.cs: remove unused field, and chain up to
3810         AccessibleObject ctor.
3811
3812         * ListBox.cs: remove unused field.
3813
3814         * ButtonBase.cs: wrap a couple fields in NET_2_0.
3815
3816         * GridEntry.cs: remove unused fields.
3817
3818         * Binding.cs: remove unused fields.
3819
3820         * AxHost.cs: remove unused method.
3821
3822         * ContainerControl.cs: remove unused field.
3823
3824         * ScrollableControl.cs: remove unused fields.
3825
3826 2006-12-01  Chris Toshok  <toshok@ximian.com>
3827
3828         * XplatUI.cs, XplatUIWin32.cs, XplatUIGTK.cs: nuke
3829         the Where/WhereString stuff.  it's easy enough to CWL
3830         Environment.StackTrace.
3831
3832         * XplatUIX11.cs: same, but also fix up a lot of mcs warnings about
3833         unused private fields.
3834
3835 2006-12-01  Jackson Harper  <jackson@ximian.com>
3836
3837         * TextControl.cs: Do not update the view while inserting multiline
3838         text. If we update the view we might wrap lines, before entering
3839         the new lines, which causes the new line insertion calculations to
3840         be totally fubared.
3841         - Remove an old TODO
3842         - Make debug output a little nicer
3843         
3844 2006-12-01  Chris Toshok  <toshok@ximian.com>
3845
3846         * ToolBar.cs: revert the ImeMode fix here and add an XXX comment.
3847
3848 2006-12-01  Chris Toshok  <toshok@ximian.com>
3849
3850         [ fix the majority of the CS0108 warnings we've been suppressing ]
3851         
3852         * TreeView.cs: mark BackgroundImageChanged as 'new'.
3853
3854         * ToolBar.cs: ImeMode just passes stuff to Control.  Rename Layout
3855         to "LayoutToolBar" to quiet mcs.
3856         
3857         * TabControl.cs: mark our ControlCollection class as 'new'.
3858
3859         * TextBoxBase.cs: mark some events as 'new'.
3860
3861         * Splitter.cs: TabStop is 'new'.
3862
3863         * ControlBindingsCollection.cs: mark a few methods as new since
3864         they change the visibility from protected to public.
3865
3866         * RadioButton.cs: DoubleClick -> base class, and remove unused
3867         HaveDoubleClick.
3868
3869         * MonthCalendar.cs: ImeMode property -> base class, and mark many
3870         events as new.
3871
3872         * NumericUpDown.cs: TextChanged -> base class.
3873
3874         * CheckedListBox.cs: mark our ObjectCollection class as new to
3875         quiet mcs.
3876
3877         * FolderBrowserDialog.cs: make HelpRequest event new and have it
3878         muck with the base class.
3879
3880         * StatusBar.cs: fix some mcs warnings about Update being the same
3881         name as a base class method.
3882
3883         * RichTextBox.cs: mark some events as new, and make them do things
3884         to the base class impl.
3885
3886         * UserControl.cs: mark TextChanged as new, and have it manipulate
3887         base.TextChanged.
3888
3889         * UpDownBase.cs: mark some things new.
3890
3891         * CheckBox.cs: mark DoubleClick "new", and add some text about
3892         what we need to look at.
3893
3894         * Panel.cs: make the events "new", and manipulate the base
3895         version.  these are just here for attributes.
3896
3897         * AccessibleObject.cs: make owner private.
3898
3899         * Control.cs: deal with AccessibleObject.owner being private.
3900         cache our own copy if we need it.
3901
3902         * Button.cs: add "new" to the DoubleClickEvent.
3903
3904         * ListBox.cs: no need to track our own has_focus here.  let
3905         Control.has_focus do it for us.  Also some other work to clear up
3906         warnings about not overriding base class methods of the same name.
3907         
3908         * ComboBox.cs: clear up some warnings about not override base
3909         class methods of the same name.
3910
3911 2006-12-01  Chris Toshok  <toshok@ximian.com>
3912
3913         * Form.cs: flag a few things as "new" to quiet some of the mcs
3914         warnings.
3915
3916         * AxHost.cs: same.
3917
3918         * PrintPreviewDialog.cs: same.
3919
3920         * DataGridView.cs: fix a ton of corcompare warnings.  not all, but
3921         now DGV isn't so horrible on the class status page.  also, move
3922         all events to using System.ComponentModel.EventHandlerList.  my
3923         wrists hurt.
3924
3925 2006-12-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3926
3927         * MdiWindowManager.cs:
3928         - Set form to active mdi child if shown,
3929         and update the active mdi child to the next 
3930         remaining child in the z-order if the form is hidden.
3931
3932         * Form.cs: 
3933         - Track if the form has been visible and if its 
3934         visibility is beeing changed, so that the MdiClient
3935         can properly decide the ActiveMdiChild. The MdiClient 
3936         cannot track this since the form can change visibility 
3937         before MdiClient is created.
3938
3939         * MdiClient.cs:
3940         - Don't activate anything of the parent form is changing
3941         its visibility.
3942         - Rework ActiveMdiChild to only return visible mdi 
3943         children and take into account several other corner 
3944         cases.
3945
3946 2006-12-01  Chris Toshok  <toshok@ximian.com>
3947
3948         * IBindableComponent.cs: new 2.0 interface.
3949
3950 2006-12-01  Gert Driesen  <drieseng@users.sourceforge.net>
3951
3952         * DataGrid.cs: Font for caption area is bold by default.
3953
3954 2006-12-01  Everaldo Canuto  <everaldo@simios.org>
3955
3956         * Menu.cs: Tag property for 2.0.
3957         
3958 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
3959
3960         * ThemeWin32Classic.cs: Adjust menu separator drawing. 
3961         
3962 2006-12-01  Chris Toshok  <toshok@ximian.com>
3963
3964         * TreeView.cs: doh, the Begin* events should be
3965         TreeViewCancelEventHandler.
3966
3967 2006-12-01  Chris Toshok  <toshok@ximian.com>
3968
3969         * Form.cs: Form.ControlCollection already stores off the
3970         form_owner field.  don't access the base class's internal "owner"
3971         field.
3972
3973         * Control.cs: make all the fields in Control.ControlCollection
3974         private.  there's no need for any internal fields here.
3975
3976 2006-12-01  Chris Toshok  <toshok@ximian.com>
3977
3978         * DataGrid.cs: call SetDataSource instead of CalcGridAreas in
3979         OnHandleCreated.  Fixes bug #80109.
3980
3981 2006-12-01  Chris Toshok  <toshok@ximian.com>
3982
3983         * Button.cs, PropertyGridTextBox.cs, ComboBox.cs,
3984         SplitContainer.cs, Control.cs, StatusStrip.cs,
3985         DataGridTableStyle.cs, MenuItem.cs, DomainUpDown.cs, ImageList.cs,
3986         NumericTextBox.cs, NumericUpDown.cs, Panel.cs, CommonDialog.cs,
3987         DataGrid.cs, ScrollBar.cs, TrackBar.cs, PictureBox.cs,
3988         DateTimePicker.cs, StatusBar.cs, Form.cs, PrintPreviewDialog.cs,
3989         Label.cs, UserControl.cs, CheckBox.cs, RadioButton.cs,
3990         LinkLabel.cs, ListControl.cs, PropertyGrid.cs, Splitter.cs,
3991         MenuStrip.cs, FolderBrowserDialog.cs, NotifyIcon.cs,
3992         TextBoxBase.cs, ListView.cs, DataGridBoolColumn.cs,
3993         PrintPreviewControl.cs, RichTextBox.cs, ListBox.cs, TabControl.cs,
3994         DataGridColumnStyle.cs, ContextMenu.cs, TreeView.cs:
3995
3996         do most of the work to convert our code over to use
3997         System.ComponentModel.Component.Events for
3998         adding/removing/dispatching events.
3999
4000
4001 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
4002
4003         * DataGridView.cs: Fix an ArgumentNullException reported 
4004         twice today in IRC.
4005
4006 2006-11-30  Mike Kestner  <mkestner@novell.com>
4007
4008         * ComboBox.cs: fix the scrollbar mouse event forwarding in the 
4009         grabbed listbox.  Fixes #80036 and #80101.
4010
4011 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
4012
4013         * Message.cs: Changed ToString() to match MS.
4014         
4015 2006-11-30  Jackson Harper  <jackson@ximian.com>
4016
4017         * TextBoxBase.cs: You can still change the selected text on a read
4018         only textbox.
4019         * TextControl.cs: Lower magic number for wrap calculations. This
4020         lets text get closer to the right (far) edge.
4021
4022 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
4023
4024         * Control.cs: Tweak 2.0 layout properties.
4025         * Form.cs: Switch ToolStripMenuTracker hooks to ToolStripManager.
4026         * TextRenderer.cs: Add a new overload.
4027         * ToolStrip*: Huge amount of changes and new features.
4028
4029 2006-11-30  Mike Kestner  <mkestner@novell.com>
4030
4031         * ComboBox.cs: fixes for LargeChange and Maximum to get the 
4032         scroll range correct.  Fixes #79994.
4033
4034 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
4035
4036         * MdiWindowManager.cs: Update main form's text when
4037         a form is closed. (fixes #80038)
4038         
4039 2006-11-30  Everaldo Canuto  <everaldo@simios.org>
4040
4041         * ToolBar.cs:
4042         - Fix an regression in ButtonSize.
4043         - Get ImeMode default value change to "Disable".
4044         - Get ShowTooltips default value change to true, default value is 
4045         "false" but after make a test in .NET we get "true" result as default.
4046         
4047 2006-11-29  Jonathan Pobst  <monkey@jpobst.com>
4048
4049         * ToolStripDropDown.cs: Fix for SupportsTransparency change.
4050
4051 2006-11-29  Chris Toshok  <toshok@ximian.com>
4052
4053         * XplatUIWin32.cs (GetWindowTransparency): check return value of
4054         GetLayeredWindowAttributes.  if it's 0, return 1.0, as
4055         SetWindowTransparency hasn't been called.
4056
4057 2006-11-29  Chris Toshok  <toshok@ximian.com>
4058
4059         * Form.cs (set_TransparencyKey): only call SetWindowTransparency
4060         if it's supported.
4061         (set_AllowTransparency): reorder things a little so that the
4062         WS_EX_LAYERED style is removed properly.
4063
4064 2006-11-29  Chris Toshok  <toshok@ximian.com>
4065
4066         [ totally cosmetic eye-candy feature, fixes bug #80089 ]
4067         
4068         * Form.cs: only call the XplatUI transparency method (get/set) if
4069         SupportsTransparency says it's supported. Otherwise fallback to
4070         doing nothing (in the set case) or returning the instance field we
4071         cache (in the get case).
4072
4073         * XplatUIStructs.cs: add TransparencySupport flag enum.
4074         
4075         * XplatUIDriver.cs: add abstract GetWindowTransparency, and track
4076         change to SupportsTransparency.
4077
4078         * XplatUIOSX.cs: stub out GetWindowTransparency, and return
4079         TransparencySupport.None from SupportsTransparency.
4080
4081         * XplatUIX11.cs: Stub out GetWindowTransparency, and return
4082         TransparencySupport.Set from SupportsTransparency.
4083
4084         * XplatUIWin32.cs: implement GetWindowTransparency calling
4085         GetLayeredWindowAttributes, and implement SupportsTransparency by
4086         checking whether or not both
4087         GetWindowTransparency/SetWindowTransparency are available
4088         entrypoints.  We need to do this since SetWindowTransparency is
4089         available as of win2k, but GetWindowTransparency requires winxp.
4090         yay win32 api.
4091
4092         * XplatUI.cs: Add GetWindowTransparency, and change
4093         SupportsTransparency to allow for either/both Get/Set.
4094
4095 2006-11-29  Chris Toshok  <toshok@ximian.com>
4096
4097         * DataGrid.cs: keep from going into an infinite loop redrawing a
4098         datagrid that has no datasource.  Fixes bug #80033.
4099
4100 2006-11-29  Chris Toshok  <toshok@ximian.com>
4101
4102         * MenuItem.cs: fix the NRE when we assign text (and therefore call
4103         Invalidate) before the mainmenu has been assigned to a control.
4104
4105 2006-11-29  Chris Toshok  <toshok@ximian.com>
4106
4107         * DataGrid.cs: detect when we should be double the double click
4108         row/column autosize stuff, although that codepath has yet to be
4109         written.  part of the work for bug #79891.
4110
4111 2006-11-29  Chris Toshok  <toshok@ximian.com>
4112
4113         * Binding.cs (SetControl): fix unit test.
4114
4115 2006-11-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4116
4117         * PageSetupDialog.cs: Validate the margins and set them in
4118         PageSettings. 
4119         * NumericTextBox.cs: New class to mimic the behavior of the
4120         textboxes used in the printing dialogs.
4121
4122 2006-11-29  Andreia Gaita  <avidigal@novell.com>
4123         
4124         * Form.cs: Revert previous change (remove call UpdateBounds
4125         from form constructor), because it messes with the handle creation
4126         order, and that one needs lots and lots of love.
4127         * PrintPreviewDialog.cs: Revert change to CreateHandle (add check
4128         for valid printer and throw InvalidPrinterException if document
4129         is set but printer not valid), adding a MonoTODO. Once 
4130         handle creation is done properly, we can put this back in.
4131
4132 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
4133
4134         * MenuItem.cs: Create a invalidate method for menu item, to be
4135         calling from set text, it make text changes to imadiate update
4136         on screen. Fixes #80013. 
4137         
4138 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
4139
4140         * ToolBar.cs: Fixes and simplify toolbar button layout, it 
4141         fixes bug #80070 and some other problem on toolbar buttons
4142         layout.
4143
4144 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
4145
4146         * ThemeWin32Classic.cs: Paint toolbar toggle button background 
4147         with dotted brush.      Fixes #79564
4148         
4149 2006-11-28  Andreia Gaita  <avidigal@novell.com>
4150
4151         * Form.cs: Removed call to UpdateBounds on Form
4152         constructor, it was causing a call to CreateHandle
4153         before it was supposed to.
4154         * PrintControllerWithStatusDialog: Applied patch
4155         by Chris Toshok to hide controller when there are
4156         no printers available.
4157         PrintDialog.cs: initialize printer settings to 
4158         null - correct DefaultValues test #5
4159         * PrintPreviewControl.cs: Move PrintController
4160         initialization to GeneratePreview
4161         * PrintPreviewDialog.cs: 
4162         - Remove Preview generation     from Document_set(). It is 
4163         called on OnPaint
4164         - Throw InvalidPrinterException on CreateHandle if
4165         a Document is set but there are no printers or 
4166         printer is not valid.
4167         * ThemeWin32Classic: don't paint PrintPreviewControl
4168         if there is nothing to paint    
4169
4170 2006-11-28  Miguel de Icaza  <miguel@novell.com>
4171
4172         * Form.cs: Add another popular method.
4173
4174         * TabPage.cs: ditto.
4175
4176 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4177
4178         * MenuItem.cs: Fixed a warning.
4179         * InternalWindowManager: Fixed a warning.
4180
4181 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4182
4183         * MenuItem.cs:
4184         - When cloning a menu also clone MdiList and clone the 
4185           window menu items properly (as the forms and menuitems
4186           are kept in an internal hashtable, these need updating 
4187           as well)
4188         - Rewrote the window menu code, menu items are added in the
4189           order the forms were added to their parent, and they are
4190           updated every time the window menu is shown (before the
4191           list was only generated once, in the current order of the
4192           forms, and would never be updated). A checkmark is shown
4193           next to the item corresponding to the active mdi child.
4194
4195 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4196
4197         * XplatUIStructs.cs: 
4198         - Added WM_NCMOUSEHOVER and WM_NCMOUSELEAVE.
4199         
4200         * XplatUIWin32.cs: 
4201         - Added TME_NONCLIENT to TMEFlags.
4202         - Handles WM_NCMOUSEMOVE in GetMessage to 
4203           generate WM_NCMOUSEHOVER and WM_NCMOUSELEAVE messages.
4204
4205         * MdiWindowManager:
4206         - Now merges mdi child menu to parent menu when maximized.
4207         - Recalculate NC areas of both mdi child and mdi parent. 
4208           Fixes #79757 (4).
4209           on window state and size changes.Fixes #79844 (3).
4210         - Handle WM_NCCALCSIZE to properly calculate borders.
4211
4212         * Form.cs:
4213         - Add/remove to the mdi containers list of mdi children 
4214           in the order they are added.
4215         - Pass on WM_NCLBUTTONUP, WM_NCMOUSEMOVE and WM_NCMOUSELEAVE 
4216           to the maximized mdi child.
4217         
4218         * InternalWindowManager.cs:
4219         - Only execute a click on the control buttons on the mouse up,
4220           not on the mouse down. Show the state of the button 
4221           (was only showing Normal state, never Pressed state). The
4222           pressed button now follows the mouse (if you click the Close 
4223           button and move the mouse over the Maximize button, the 
4224           Maximize button will be shown as pressed). Since Win32 does
4225           not generate WM_NCLBUTTONUP if you release the button outside
4226           of the nc area, we need to handle WM_NCMOUSELEAVE and treat
4227           it as a mouse up.
4228         
4229         * ThemeWin32Classic.cs:
4230         - Draw a missing border around mdi child forms. Fixes #79844 (2).
4231
4232         * MdiClient.cs:
4233         - Added a list of forms which contains the order the forms are
4234           added to the mdi parent.
4235         - Handle WM_NCPAINT to properly draw a 3D border. Fixes #79844 (2).
4236         - Handle WM_NCCALCSIZE to properly calculate the 3D border.
4237         - If the active form changes set the scrollbars to the top
4238           of the Z order, otherwise the form could hide them.
4239         - Scrollbars are now sized according to ClientSize, not 
4240           to Size, and they take into account the other scrollbar
4241           to determine maximum.
4242         
4243 2006-11-28  Rolf Bjarne Kvinge <RKvinge@novell.com>
4244         
4245         * XplatUI.cs:
4246         * XplatUIDriver.cs:
4247         * XplatUIX11.cs:
4248         * XplatUIWin32.cs:
4249         * XplatUIOSX.cs:
4250         - Added RequestAdditionalWM_NCMessages for windows to 
4251           opt in for WM_NCMOUSELEAVE and WM_NCMOUSEHOVER.
4252           Currently only implemented in XplatUIWin32.
4253
4254 2006-11-27  Chris Toshok  <toshok@ximian.com>
4255
4256         * Hwnd.cs: only add the hwnd to the windows hash in
4257         set_WholeWindow and set_ClientWindow if whole_window/client_window
4258         are not IntPtr.Zero.  also, remove the unused SetObjectWindow.
4259
4260 2006-11-27  Mike Kestner  <mkestner@novell.com>
4261
4262         * ComboBox.cs: remove redundant OnDropDown call.  It is called
4263         from the ComboListBox.ShowWindow code. Fixes #79969.
4264
4265 2006-11-27  Chris Toshok  <toshok@ximian.com>
4266
4267         * Hwnd.cs: remove the setters for ExposePending and
4268         NCExposePending - noone uses them.
4269
4270 2006-11-27  Jackson Harper  <jackson@ximian.com>
4271
4272         * TextControl.cs: new param for ReplaceSelection which determines
4273         whether we select the new selection, or set the cursor to the end
4274         of the new selection.
4275         * TextBoxBase.cs: Use new param for ReplaceSelection.  When
4276         pasting, select the new text.
4277         * RichTextBox.cs: Use new param for ReplaceSelection.
4278
4279 2006-11-27  Jackson Harper  <jackson@ximian.com>
4280
4281         * TextBoxBase.cs: Set the selection to the caret after the caret
4282         is moved, otherwise they get out of sync.
4283
4284 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
4285
4286         * ToolBar.cs: Fixe size of ToolBar when AutoSize is false,
4287         it fixes #80015
4288
4289 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
4290
4291         * ThemeWin32Classic.cs: 
4292         - Fix toolbar drop down arrow position.
4293         - Fix drop down appearance when ToolBar.Appearance is normal,
4294         it fixes #80018.
4295         
4296 2006-11-26  Gert Driesen  <drieseng@users.sourceforge.net>
4297
4298         * ProgressBar.cs: GetStyle fixes for 2.0 profile.
4299         * Control.cs: Same.
4300         * UpDownBase.cs: Same.
4301         * ButtonBase.cs: Same.
4302         * ScrollBar.cs: Same.
4303         * TrackBar.cs: Same.
4304         * PictureBox.cs: Same.
4305         * UserControl.cs: Same.
4306         * Label.cs: Same.
4307         * ListControl.cs: Same.
4308         * TextBoxBase.cs: Same.
4309         * ListView.cs: Same.
4310         * RichTextBox.cs: Same.
4311         * TreeView.cs: Same.
4312
4313 2006-11-25  Jordi Mas i Hernandez <jordimash@gmail.com>
4314
4315         * PrintDialog.cs:
4316         - Text label for where 
4317         - Text label comment was not shown
4318
4319 2006-11-23  Everaldo Canuto  <everaldo@simios.org>
4320
4321         * ThemeWin32Classic.cs: Fix toolbar drop down arrow size.
4322
4323 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
4324
4325         * InternalWindowManager.cs: 
4326         - Handle WM_PARENTNOTIFY to activate the form
4327         if any child control is clicked.
4328         - The form is only sizable if not minimized.
4329
4330         * MdiWindowManager.cs:
4331         - Save the IconicBounds if the form is moved.
4332         - Rework SetWindowState, now the window bounds 
4333         are stored only if the old window state is Normal.
4334         
4335         * MdiClient.cs:
4336         - In SetWindowStates store the old window state if 
4337         the window is maximized and restore window state if
4338         the window looses focus.
4339         - Don't handle any scrollbar value changes if 
4340         initializing the scroll bars. Fixes #79771.
4341         - Reworked ArrangeIconicWindows. Current algorithm
4342         tests bounds agains all other minimized windows, if
4343         any intersections create new bounds (going left to 
4344         right, bottom to top) and then test again. When 
4345         successful the bounds are saved and never computed
4346         again. Fixes #79774.
4347
4348 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
4349
4350         * InternalWindowManager.cs: Added HandleTitleBarUp.
4351
4352 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
4353
4354         * NumericUpDown.cs: In .NET 1.1, user entered text is still
4355         hexadecimal in ParseUserEdit.
4356
4357         
4358 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
4359
4360         * MdiWindowManager.cs: 
4361         - Handle a click on the form's icon to show the 
4362         system menu (when maximized). Fixes #79775.
4363         - Change the existing click handler for the form's
4364         icon when not maximized to show on MouseUp.
4365         Fixes #79776.
4366
4367         * Form.cs: In OnResize only layout the mdi child's
4368         parent if it actually has a parent. Might not if
4369         the window is closing.
4370
4371
4372 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
4373
4374         * MdiClient.cs: Ignore active MDI client for text of parent, if
4375         child has no text set.
4376
4377 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
4378
4379         * ToolBar.cs: Fixed ToString to match MS.
4380
4381 2006-11-22  Andreia Gaita  <avidigal@novell.com>
4382
4383         * NumericUpDown: 
4384         - Fix DecimalPlaces, Hexadecimal and ThousandsSeparator to 
4385         update inner values on set. Fixes #79966.
4386         - Override OnLostFocus to update value on NET 2. Fixes #79950.
4387         - Fix hexadecimal parsing.
4388         
4389         * UpDownBase: Override OnGotFocus and OnLostFocus to notify 
4390         parent. Fixes #79957
4391
4392 2006-11-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4393
4394         * Control.cs: After calling SetWindowsPos in SetBoundsCore 
4395         the actual size has to be queried, since if height /
4396         width is negative Win32 changes it to 0. 
4397         Fixes #79999 on Windows.
4398         
4399         * XplatUIX11.cs: Set height / width to 0 if negative
4400         in SetWindowPos. Fixes #79999 on Linux.
4401         
4402 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
4403
4404         * ThemeWin32Classic.cs: Fix text redenring when button is
4405         pressed.
4406
4407 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
4408
4409         * MenuAPI.cs: Fixes behavior when menu is opened by kerboard
4410         and later navigate by mouse. Fixes #79528.
4411
4412 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
4413
4414         * ToolBar.cs: Set default value for TabStop to false in
4415         constructor, it fixes remaining behavior of bug #79863.
4416
4417 2006-11-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4418
4419         * MdiWindowManager.cs:
4420         * InternalWindowManager.cs:
4421         - Moved a few methods specific to Mdi from 
4422         InternalWindowManager to MdiWindowManager.
4423         Fixes #79996.
4424         
4425 2006-11-21  Chris Toshok  <toshok@ximian.com>
4426
4427         * XplatUIOSX.cs: stub out InvalidateNC.
4428
4429         * XplatUIWin32.cs: implement InvalidateNC using the call I found
4430         at http://www.dotnet247.com/247reference/msgs/58/292037.aspx.
4431
4432         * XplatUIX11.cs: rename InvalidateWholeWindow to InvalidateNC.
4433
4434         * XplatUIDriver.cs: add InvalidateNC abstract method.
4435
4436         * XplatUI.cs: add InvalidateNC.
4437
4438 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
4439
4440         * ToolBar.cs: Invalidate complete button area when pressed status 
4441         was changed.
4442         * ToolButton.cs: Fix InvalidateBorder for DropDown buttons.
4443         * ThemeWin32Classic.cs: Increase vertical and horizontal position 
4444         by 1 when button is pressed.
4445
4446 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
4447
4448         * ToolButton.cs: Invalidate middle of DropDown button when
4449         ToolBar theres DropDownArrows.
4450         * ThemeWin32Classic.cs: Change position of DropDown arrow and
4451         fix DropDown drawing operations.
4452
4453 2006-11-20  Chris Toshok  <toshok@ximian.com>
4454
4455         * NativeWindow.cs: fix the formatting of functions ('{' on the
4456         following line), and enable the thread exception dialog.
4457
4458         * Application.cs: remove the duplicate exception catching from
4459         here.
4460
4461 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
4462
4463         * Toolbar.cs: Triggers button click event when click on icon
4464         of dropdown ToolBarButton. Fixes #79912.
4465         
4466 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4467
4468         * Theme.cs:
4469         * ThemeWin32Classic.cs:
4470         - Added a property WindowBorderFont to enable themeing
4471           of mdi child windows' Text.
4472           
4473 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4474
4475         * InternalWindowManager.cs:
4476         * Form.cs:
4477         * MdiClient.cs:
4478         * MdiWindowManager.cs: 
4479         - If mdi child is maximized, set mdi parent's
4480           text to "Parent - [Child]". Fixes #79770.
4481         - If there is any maximized mdi child windows, only the active 
4482           window (and any new windows) is maximized, the rest are normal.
4483         - On a WindowState change only save mdi child's window bounds 
4484           if the old window state was normal. Fixes #79774.
4485         - The scroll bars are now calculated on hopefully all
4486           necessary events. Fixed #79771 / #79844->6 / #79906.
4487         - MdiClient.SizeScrollBars() now takes into account docked 
4488           controls in the parent when calculating available space.
4489         - InternalWindowManager now always repaints the entire title
4490           area. Fixes #79844->1/4/5.
4491         - Added RequestNCRecalc on mdi child windowstate changes.
4492           Fixes #79772.
4493
4494 2006-11-20  Mike Kestner  <mkestner@novell.com>
4495
4496         * ComboBox.cs: setup LargeChange on the scrollbar. Invoke FireMouseUp
4497         in the MouseUp handler of the listbox and move the return handling
4498         code to FireMouseUp to avoid scrolling on ups.  Fixes #79952.
4499
4500 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
4501
4502         * Toolbar.cs: Ignore right mouse clicks in toolbar. Fixes #79855. 
4503
4504 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
4505
4506         * MimeIcon.cs: Seems that DllImports that were fine in 1.2 are not
4507           working in 1.2.x anymore. So, updated.
4508
4509 2006-11-19  Gert Driesen  <drieseng@users.sourceforge.net>
4510
4511         * NumericUpDown.cs: Use NegativeSign, NumberDecimalSeparator and
4512         NumberGroupSeparator of current culture instead of assuming en-US.
4513         Fixed bug #79967.
4514
4515 2006-11-17  Mike Kestner  <mkestner@novell.com>
4516
4517         * Control.cs: Add the concept of implicit bounds setting so that
4518         dock/undock round trips preserve explicitly set size/locations.
4519         Fixes #79313.
4520
4521 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
4522
4523         * FileDialog.cs: Trim all filters, otherwise DirInfo.GetFiles
4524           can't handle those filters. (Fixes bug #79961)
4525
4526 2006-11-17  Chris Toshok  <toshok@ximian.com>
4527
4528         [ fixes the exit/crashes associated with #79835.  it's clearly
4529         suboptimal though, we need to figure out a better way to solve
4530         this. ]
4531         
4532         * PrintPreviewControl.cs: deal with the new invalid printer
4533         exceptions.
4534
4535         * PageSetupDialog.cs: if the printer is invalid, pop up a dialog
4536         and return false (so CommonDialog.ShowDialog doesn't actually show
4537         the form.)
4538
4539         * PrintDialog.cs: enable/disable the Ok button depending on
4540         whether or not the printer is valid.
4541
4542         * CommonDialog.cs (ShowDialog): only actually show the form if
4543         RunDialog returns true.
4544
4545 2006-11-17  Jackson Harper  <jackson@ximian.com>
4546
4547         * TextControl.cs: When soft splitting a line, mark it as a soft
4548         split line. Also carry over the current line break to the next
4549         line.
4550
4551 2006-11-17  Chris Toshok  <toshok@ximian.com>
4552
4553         * XplatUIX11.cs: when scrolling a window with an invalid area, we
4554         only want to shift the part of the invalid area that overlaps the
4555         area we're scrolling.  we also don't want to clear the invalid
4556         area unless the invalid area was entirely contained within the
4557         scrolling area.
4558
4559 2006-11-16  Chris Toshok  <toshok@ximian.com>
4560
4561         * XplatUIX11.cs: remove the handling of the TimerEvent stuff, and
4562         also make sure to free the memory returned by XGetWindowProperty
4563         in GetText().
4564
4565         * X11Structs.cs: remove the TimerEvent stuff, it's unused.
4566
4567 2006-11-16  Chris Toshok  <toshok@ximian.com>
4568
4569         * XplatUI.cs: add a new super secret way to get at the totally
4570         unsupported X11 backend.
4571
4572 2006-11-16  Gert Driesen  <drieseng@users.sourceforge.net>
4573
4574         * NumericUpDown.cs: Allow lowercase letters when in hex-mode.
4575
4576 2006-11-16  Jackson Harper  <jackson@ximian.com>
4577
4578         * TreeView.cs: Allow more explicit setting of top node position
4579         for scrollbars. Slower algo, but more accurate.
4580         - CollapseAll should maintain the current top node.
4581         * TextBoxBase.cs: When positioning the caret, use the line, pos
4582         method, since the x, y method does not grab the correct tag, and
4583         the caret height never gets set correctly. (Maybe I should just do
4584         away with the caret having its own height, and always use the
4585         carets current tag for height).
4586
4587 2006-11-16  Jonathan Pobst  <monkey@jpobst.com
4588
4589         [Fixes 79778, 79923]
4590
4591         * XplatUIWin32.cs: Don't allow a parent to be set to IntPtr.Zero.
4592         Parent to the FosterParent instead.
4593
4594 2006-11-16  Jackson Harper  <jackson@ximian.com>
4595
4596         * TreeView.cs: Need to recalc the topnode when we expand or
4597         collapse. The scrolling methods can't handle this on their own,
4598         since they use differences between the last scroll position, and
4599         those difference get completely messed up since we are expanding
4600         nodes.  This problem should probably be fixed in the scrolling
4601         methods, so they can figure out exactly where they are, but this
4602         will slow things down a little.
4603         * ThemeWin32Classic.cs: Special case for groupboxes with empty
4604         strings, makes nunit-gui look a lot nicer.
4605
4606 2006-11-16  Chris Toshok  <toshok@ximian.com>
4607
4608         * XplatUIX11.cs: nasty, nasty, nasty changes required because of
4609         the broken multithreaded event handling we have in here.  File
4610         this entry under "Why we should move to the new X11 backend".
4611
4612         Any thread can make it into UpdateMessageQueue, which gets events
4613         from the X socket - some of which could belong to hwnds being
4614         managed by a different thread.  We can also have multiple threads
4615         in UpdateMessageQueue at the same time, with each one reading from
4616         the X socket.  This leads to many problems, with the following
4617         solutions:
4618
4619         We can't use hwnd.Queue.Enqueue anywhere in here and must use
4620         EnqueueLocked.
4621
4622         The MotionNotify compression we do can't work across threads
4623         (without locking the entire queue, perhaps) since we call
4624         hwnd.Queue.Peek, so we just punt and don't compress motion events
4625         unless the owning thread is the one which got the X event.
4626
4627         ConfigureNotify is another fun one, since it modifies the hwnd's
4628         bounds and then enqueues the event.  We add a lock to Hwnd which
4629         is held when setting configure_pending to true (and enqueuing the
4630         event).
4631
4632         There is a race wrt the wake socket.  we need to make sure that
4633         only 1 thread is waiting on that socket, or else a thread could
4634         sleep waiting for data that never comes.  It's difficult (but not
4635         impossible) to make happen, because it seems to require something
4636         like the following:
4637
4638             1. Thread 1 polls on wake_receive
4639         
4640             2. poll returns saying there's data to be read on
4641                wake_receive.
4642         
4643             3. Thread 2 polls on wake_receive and immediately returns
4644                saying there's data to be read.
4645
4646             4. Thread 2 reads the wakeup byte from wake_receive
4647
4648             5. Thread 1 attempts to read the wakeup byte from
4649                wake_receive.
4650
4651             6. Thread 2 exits (due to a form closing, perhaps).
4652
4653             7. Thread 1 blocks forever.
4654         
4655         Fun, eh?
4656
4657         Fixing the Expose handling isn't done yet, and the races inherent
4658         in that piece of code are responsible for the drawing mistakes you
4659         see when generating expose events in a MT app (like NPlot).  This
4660         one is the likely to be the hardest to bandaid, and it doesn't
4661         appear to cause anything but drawing problems.  The other issues
4662         caused apps to exit or hang.
4663
4664         * XEventQueue.cs: output some spew when Dequeue/Enqueue/Peek are
4665         called from a different thread than the one that should be calling
4666         these functions.
4667
4668         * Hwnd.cs: add some locks to be used by the XplatUIX11 code.
4669
4670 2006-11-15  Chris Toshok  <toshok@ximian.com>
4671
4672         * Application.cs: null out the context's MainForm when we exit
4673         RunLoop.  Fixes a newly checked in unit test as well as the last
4674         ODE from bug #79933.
4675
4676 2006-11-15  Chris Toshok  <toshok@ximian.com>
4677
4678         * Form.cs (set_Owner): allow a null value so we can clear the
4679         form's owner.
4680         (Dispose): set all our owned_form's Owner properties to null, and
4681         clear the owned_forms collection.
4682         (WM_CLOSE): clean up this a little bit.. still not right though.
4683
4684         * ApplicationContext.cs: OnMainFormClosed should only call
4685         ExitThreadCore if the main form isn't recreating.  Fixes unit
4686         test.
4687
4688 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
4689
4690         [Fixes 78346]
4691
4692         * ComboBox.cs: Set the Hwnd.no_activate flag for the ComboListBox.
4693
4694 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
4695
4696         [Fixes 79433]
4697
4698         * Hwnd.cs: Add a flag to show a window, but not activate it, to 
4699         keep popup window types from stealing focus from the main form
4700         on Windows.
4701
4702         * XPlatUIWin32.cs: Use SW_SHOWNOACTIVATE if above field is true.
4703
4704         * MenuAPI.cs: Set above flag to true.
4705
4706 2006-11-15  Chris Toshok  <toshok@ximian.com>
4707
4708         * XplatUIX11.cs: mimic win32 behavior on BUTTONUP events, where
4709         the button being released is not in wParam.
4710
4711 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
4712
4713         * Form.cs: Add the released button to MouseEventArgs.Button
4714         for the OnMouseUp call to the MenuTracker.  Fixes menu clicking
4715         on Win32.
4716
4717 2006-11-15  Chris Toshok  <toshok@ximian.com>
4718
4719         * XplatUIX11.cs: add (untested) a _NET_WM_NAME implementation of
4720         GetText().  untested because it's unused in our implementation.
4721         Control.Text always caches the text, even if
4722         ControlStyles.CacheText is not set.
4723
4724         fixes bug #79939.
4725
4726 2006-11-15  Chris Toshok  <toshok@ximian.com>
4727
4728         [ fixes #79933 ]
4729         
4730         * Form.cs: in Close() don't do anything after we send the WM_CLOSE
4731         message.  no hiding, no disposing.
4732
4733         in the WM_CLOSE handler, hide the form if it's modal.
4734
4735 2006-11-15  Chris Toshok  <toshok@ximian.com>
4736
4737         * XplatUIX11.cs: use AddExpose instead of sending a message.
4738         fixes textbox border drawing.
4739
4740 2006-11-15  Chris Toshok  <toshok@ximian.com>
4741
4742         * PropertyGridView.cs: keep from crashing on mouse move/down when
4743         the property grid is empty.
4744
4745 2006-11-14  Jackson Harper  <jackson@ximian.com>
4746
4747         * TextControl.cs: Make PageUp and PageDown more like the MS
4748         versions.
4749         * TextBoxBase.cs: When we set the text property position the
4750         cursor at the beginning of the document.
4751
4752 2006-11-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4753
4754         * Form.cs: if a mdi child's WindowState has changed
4755         before it's creation, it would display wrong control
4756         buttons.
4757         
4758 2006-11-14  Alexander Olk  <alex.olk@googlemail.com>
4759
4760         * TreeView.cs: De-uglify TreeView checkbox checkmarks.
4761           (Fixes bug #79927)
4762
4763 2006-11-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4764
4765         * XplatUIX11.cs: send a WM_NCPAINT on WM_NCCALCSIZE so that 
4766         the window gets to paint its borders even if the window is
4767         getting smaller.
4768         
4769         * Form.cs: on a WM_NCPAINT invalidate the entire menu, 
4770         otherwise the old control buttons would still be painted 
4771         if the window gets bigger.
4772         
4773         * PaintEventArgs.cs: add an internal method so that the clip 
4774         rectangle can be changed.
4775         
4776 2006-11-13  Chris Toshok  <toshok@ximian.com>
4777
4778         [ fixes bug #79745 ]
4779         
4780         * NotifyIcon.cs: lots of cleanup.
4781
4782         * X11Structs.cs: add an enum for XEMBED messages.
4783
4784         * XplatUIX11.cs: reindent one of the giant switch statements, it
4785         was taking up an additional tab stop, and this file is already way
4786         too wide for my laptop's screen.
4787
4788         Also, add handling for the XEmbed EMBEDDED_NOTIFY message.  When
4789         we get it, resize the hwnd to the WMNormalHints max_width/height.
4790
4791 2006-11-13  Jackson Harper  <jackson@ximian.com>
4792
4793         * TextBoxBase.cs: Compute the value changes for the mouse wheel
4794         teh simple way.
4795
4796 2006-11-13  Chris Toshok  <toshok@ximian.com>
4797
4798         * XplatUIX11.cs, XplatUIStructs.cs: kind of a gross fix for
4799         #79898.  force a reference to the Region to stick around so the
4800         unmanaged object isn't collected (rendering our handle in the MSG
4801         stale).
4802
4803 2006-11-13  Chris Toshok  <toshok@ximian.com>
4804
4805         * XplatUIX11.cs: fix #79917 for window managers which support
4806
4807         using XStoreName on the raw utf8, and we need to convert to
4808         COMPOUND_TEXT if it's non-latin1.
4809
4810 2006-11-13  Chris Toshok  <toshok@ximian.com>
4811
4812         * Form.cs (set_DialogResult): we need to set closing to false if
4813         we're setting our result to None.  fixes bug #79908.
4814
4815 2006-11-13  Jackson Harper  <jackson@ximian.com>
4816
4817         * TextControl.cs: When formatting text, compute the adjusted tag
4818         lengths correctly, using FindTag for the end tag instead of trying
4819         to figure it out outselves.
4820         * TreeNode.cs: Use ActualItemHeight, which is the actual height of
4821         the item, ItemHeight doesn't work, because trees with large
4822         imagelists use those for their height
4823         * TreeView.cs: ActualItemHeight factors in the image height
4824         - compute left edge of checkboxes correctly
4825         - when expanding/collapsing move the bottom down one pixel, so we
4826         aren't moving part of the node
4827
4828 2006-11-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4829
4830         * XplatUIX11.cs: The PaintEventArgs is also added to the drawing
4831         stack in PaintEventStart so that it won't get disposed by the gc
4832         before reaching PaintEventEnd.
4833
4834 2006-11-13  Jackson Harper  <jackson@ximian.com>
4835
4836         * TextBoxBase.cs: Don't select the word if we are on a line with
4837         no text.
4838         - We don't need to position the caret on mouse up, since the mouse
4839         move handler should be doing this
4840         - When double clicking a blank line, the caret is advanced to the
4841         next line.
4842
4843 2006-11-13  Gert Driesen  <drieseng@users.sourceforge.net>
4844
4845         * TreeNodeCollection.cs: Avoid duplicating indexer code.
4846
4847 2006-11-12  Gert Driesen  <drieseng@users.sourceforge.net>
4848
4849         * ColorDialog.cs: Reset size of dialog between calls to ShowDialog.
4850         Fixes part of bug #79910.
4851
4852 2006-11-11  Alexander Olk  <alex.olk@googlemail.com>
4853
4854         * ColorDialog.cs: Fix a NRE when adding a color to custom colors
4855           (bug #79903). Some minor string updates to match ms.
4856
4857 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
4858
4859         * FileDialog.cs: Don't add an extension if the filename
4860           already ends with that extension.
4861
4862 2006-11-10  Jackson Harper  <jackson@ximian.com>
4863
4864         * TreeView.cs: Use the currently highlighted node for the
4865         BeforeSelect event.
4866         * TextBoxBase.cs: There is no need to expand selection on
4867         MouseMove.
4868         - CanUndo means 'is there any undo operations', not 'is undo
4869         allowed on this textcontrol. Fixed ClearUndo unit test.
4870
4871 2006-11-10  Andreia Gaita  <shana.ufie@gmail.com>
4872
4873         * Button.cs: only perform click when button is Selectable (so as 
4874         not to activate default buttons when they're disabled)
4875         
4876         * Control.cs: Rewrite of the SelectNextControl and related 
4877         methods. HandleClick now selects next control if the current one
4878         is being disabled.
4879         
4880         * Form.cs: OnActivated selects next active control only if Load 
4881         has already occurred. If Load hasn't run, there's no point in 
4882         selecting here, Load might change the state of controls.
4883         
4884         * FocusTest.cs: Tests marked as working again for these fixes
4885
4886 2006-11-10  Chris Toshok  <toshok@ximian.com>
4887
4888         * XplatUIX11.cs: a couple of fixes.
4889
4890         - use XInternAtoms with almost all the atoms we need to register,
4891         instead of many, many calls to XInternAtom.  should help a bit on
4892         startup time, at the expense of making the code look a little
4893         worse.
4894
4895         - fall back to setting TransientFor on TOOLWINDOW's if their hwnd
4896         isn't reparented (which seems to be a clue that we're running fon
4897         compiz) and they have an Owner form.  This fixes the tool windows
4898         in paint.net when running under compiz.
4899
4900         - when setting the opacity of a window, support both the case
4901         where the window has been reparented and also when it hasn't been.
4902         Since compiz/beryl doesn't seem to reparent windows, and these are
4903         the only window managers which support translucency, I'm not sure
4904         why we need the hwnd.reparented case at all.. but leave it in.
4905         now we get translucent windows in paint.net under compiz/beryl.
4906
4907 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
4908
4909         * FileDialog.cs: Always return the value for FilterIndex that
4910           was set. Internally convert it to values that make sense.
4911
4912 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
4913         
4914         * ThemeWin32Classic.cs: Fix drowp down arrow borders.
4915
4916 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
4917
4918         * Toolbar.cs: Change default value of DropDownArrows to true, the 
4919         signature still using false to make it compatible with MS but the 
4920         initial value is true. Fixes #79855.
4921
4922 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
4923
4924         * MimeIcon.cs: Don't throw an exception on windows. Mime stuff is
4925           only available on Linux.
4926
4927 2006-11-09  Everaldo Canuto  <everaldo@simios.org>
4928
4929         * Toolbar.cs, ToolBarButton.cs: Fix wrong separator size and
4930         reduce number of calls to redraw method during toolbar creation.
4931
4932 2006-11-09  Mike Kestner  <mkestner@novell.com>
4933
4934         * ListView.cs : raise SelectedIndexChanged when an item is selected
4935         programmatically via the Item.Selected property.  Gert's nice 
4936         ListViewSelectedIndexChanged test fixture now runs clean.
4937
4938 2006-11-09  Mike Kestner  <mkestner@novell.com>
4939
4940         * ListView.cs : raise SelectedIndexChanged when a selected item is
4941         removed from the item collection using Remove or RemoveAt.
4942
4943 2006-11-09  Mike Kestner  <mkestner@novell.com>
4944
4945         * ListView.cs : raise SelectedIndexChanged once per selected item
4946         for compat with MS.  Fixes #79849+.
4947
4948 2006-11-09  Chris Toshok  <toshok@ximian.com>
4949
4950         * TabControl.cs: initialize row_count to 0, and set it to 1 when
4951         we need to (if we have any tab pages).  Fixes unit test.
4952
4953 2006-11-09  Chris Toshok  <toshok@ximian.com>
4954
4955         * Label.cs (CalcPreferredWidth): if Text == "", our preferred
4956         width is 0, not 3.  Fixes a unit test.
4957
4958 2006-11-09  Mike Kestner  <mkestner@novell.com>
4959
4960         * ListView.cs : use Implicit scrollbars so that focus isn't 
4961         stolen from the listview when they are clicked. Fixes #79850.
4962
4963 2006-11-09  Chris Toshok  <toshok@ximian.com>
4964
4965         * PropertyGridView.cs (OnPaint): only call DrawGridItems if we
4966         have a root item.  Fixes #79879.
4967
4968 2006-11-09  Alexander Olk  <alex.olk@googlemail.com>
4969
4970         * FileDialog.cs:
4971           - Fix ToString ()
4972           - An ArgumentException is now thrown if a wrong filter
4973             is applied (matches ms). The previous filter doesn't change
4974             anymore if an exception is thrown.
4975           - Changing the FileName property also affects FileNames
4976         * ColorDialog.cs: The length of the CustomColors array is always
4977           16. It doesn't matter if we use a smaller array or null to update
4978           or change the custom colors property.
4979         * FolderBrowserDialog.cs: Throw an InvalidEnumArgumentException if
4980           for RootFolder if we get a undefined value.
4981
4982 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4983
4984         * StatusBarPanel.cs: 
4985         - Width is set to MinWidth if Width is smaller than
4986         MinWidth. Fixes #79842.
4987         - MinWidth now always overrides Width (MSDN says MinWidth
4988         is set to Width when AutoSize = None, but they do not 
4989         behave like that).
4990         - Style has now the the correct default value.
4991         
4992 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4993  
4994         * TrackBar.cs: 
4995         - The control is completely invalidated on 
4996         Got/LostFocus to draw the focus rectangle correctly.
4997         - When AutoSize then height is always 45 (width for 
4998         vertical controls).
4999         
5000         * ThemeWin32Classic.cs: The TrackBar thumb is now centered
5001         on the mouse when moved and it doesn't move when grabbed
5002         until the mouse moves as well. Also fixed some wrong 
5003         calculations when clicking on the thumb (control thought
5004         click was outside of thumb and didn't grab it).
5005         Fixes some of the issues in #79718.
5006
5007 2006-11-08  Everaldo Canuto  <everaldo@simios.org>
5008
5009         * Toolbar.cs: Prevent disabled button to highlight. Fixes #79868.
5010
5011 2006-11-08  Chris Toshok  <toshok@ximian.com>
5012
5013         * PropertyGridView.cs: only call ToggleValue if the item is not
5014         readonly.
5015
5016 2006-11-08  Jackson Harper  <jackson@ximian.com>
5017
5018         * TextBoxBase.cs: The RichTextBox and textbox have very different
5019         word selection methods.  Implement the textbox's simple word
5020         selection here, and let the RichTextBox override and provide it's
5021         own.
5022         - Don't do extra selection on mouseup
5023         * RichTextBox.cs: Use the documents word selection algorithm, I
5024         think ideally, this function will be pulled into the
5025         RichTextBox.cs code someday.
5026
5027 2006-11-08  Chris Toshok  <toshok@ximian.com>
5028
5029         * RootGridEntry.cs: new class to represent GridItemType.Root.
5030
5031         * CategoryGridEntry.cs: reformat, and add boilerplate.
5032         
5033         * GridEntry.cs: remove the UIParent stuff - turns out .Parent
5034         returns the UI parent anyway, and we need special handling to
5035         implement the GetTarget method in the face of it.  Also, implement
5036         Select().
5037
5038         * PropertyGrid.cs, PropertyGridView.cs: a number of fixes.  create
5039         a root grid item, and use that instead of PropertyGrid.grid_items.
5040         Also, make use of TypeConverters (and add limitted support for
5041         ICustomTypeDescriptors) when initially populating the grid.
5042         Arrays now show up more or less properly.
5043
5044 2006-11-08  Chris Toshok  <toshok@ximian.com>
5045
5046         * Application.cs: set the modal dialog to non modal after we close
5047         it.  Fixes bug #79866.
5048
5049 2006-11-08  Jackson Harper  <jackson@ximian.com>
5050
5051         * TextControl.cs: When combining lines carry over the line end
5052         style from the end line.
5053         - Invalidate the selected area when setting it, if it is visible.
5054         * TextBoxBase.cs: Only rich text box can do full line selects.
5055         - Make sure to set the cursor position when there is a click,
5056         otherwise two clicks in separate areas could cause a large chunk
5057         to be selected.
5058
5059 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
5060
5061         * Toolbar.cs: Release flat button borders when Toolbar lost focus. 
5062         Fixes #79863.
5063
5064 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
5065
5066         * Toolbar.cs: Prevent toolbar to open more than one tooltip at same
5067         time. Remove tooltips when ToolButton click events.  Fixes #79856.
5068
5069 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
5070
5071         * MenuAPI.cs: Ignore right click for menu actions and fixes
5072         menu border when clicked.  Fixes #79846.
5073
5074 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
5075
5076         * XplatUIX11.cs, XplatUIX11.cs: Fix MouseRelease to only release
5077         MouseState after create wParam for message, this fixes mouse button 
5078         equal none in mouse up events.
5079         
5080 2006-11-07  Andreia Gaita  <shana.ufie@gmail.com>
5081
5082         * Control.cs : Focus() now calls Select to set the Container's
5083         Active Control and to give it focus. To avoid infinite recursion
5084         (because ActiveControl also calls Focus at one point), a check 
5085         is made in Focus with the help of a new internal variable
5086         is_focusing.
5087
5088 2006-11-07  Mike Kestner  <mkestner@novell.com>
5089
5090         * ListView.cs : raise OnSelectedIndexChanged in CreateHandle
5091         if there's a selection.  Fixes #79849.
5092
5093 2006-11-07  Gert Driesen  <drieseng@users.sourceforge.net>
5094
5095         * PropertyGrid.cs: Avoid fixed height of help description label.
5096         Fixes part of bug #79829.
5097
5098 2006-11-07  Chris Toshok  <toshok@ximian.com>
5099
5100         * XplatUIX11.cs: fix #79790 again, by using the
5101         _NET_WM_STATE_SKIP_TASKBAR atom to implement Form.ShowInTaskbar.
5102
5103 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
5104
5105         * ToolBar.cs: Fix left click checking.
5106
5107 2006-11-07  Chris Toshok  <toshok@ximian.com>
5108
5109         * ProgressBar.cs: fix a typo in ToString().  fixes a unit test.
5110
5111 2006-11-07  Chris Toshok  <toshok@ximian.com>
5112
5113         * RelatedPropertyManager.cs: set property_name in our ctor.  fixes
5114         PropertyManager unit tests.
5115
5116         * PropertyManager.cs: make property_name internal.
5117
5118 2006-11-07  Chris Toshok  <toshok@ximian.com>
5119
5120         * ButtonBase.cs: initialize base.ime_mode to ImeMode.Disable to
5121         pass a unit test.  Also, don't set image_index to anything in
5122         response to setting the ImageList property.
5123
5124 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
5125
5126         * ToolBar.cs: Ignore click events when mouse button is not a
5127         left button, only accepts other button for dropdown menus.  
5128         Fixes #79854.
5129
5130 2006-11-07  Chris Toshok  <toshok@ximian.com>
5131
5132         * DataGrid.cs: make the back and parent row buttons a little less
5133         ugly.
5134
5135 2006-11-07  Jackson Harper  <jackson@ximian.com>
5136
5137         * TextBoxBase.cs: When converting to Text don't put line breaks in
5138         for soft line breaks.
5139         * TextControl.cs: There is an initial "fake" line in the document,
5140         this is now a soft break line, so that an extra line feed doesn't
5141         get added to the end of documents.
5142
5143 2006-11-07  Chris Toshok  <toshok@ximian.com>
5144
5145         [ fix bug #79778 ]
5146         
5147         * CurrencyManager.cs: if the list is readonly, don't bother
5148         checking if IBindingList.AllowNew is true.
5149
5150         * ThemeWin32Classic.cs (DataGridPaintParentRow): make this work
5151         for non-DataRowView datasources..  or rather, make it not crash.
5152         (DataGridPaintRelationRow): make sure we limit the row painting to
5153         the area not covered by the row header, and make our cell width at
5154         least large enough to cover the relation area.  This allows grids
5155         that have relations but no rows to render correctly.
5156         (DataGridPaintRowContents): same type of changes here.
5157         (SetDataSource): move back to always calling
5158         CalcAreasAndInvalidate.  this fixes a crash/drawing problem when
5159         navigating back through relations.
5160         (HitTest): handle the case where we have no cells but have
5161         relations.  Right now we generate a hit in cell 0 of whatever the
5162         row is, not sure if this is strictly correct, but it works for our
5163         purposes.
5164         
5165         * DataGrid.cs (EndEdit, CancelEdit): if we have no columns, don't
5166         bother doing anything.
5167
5168 2006-11-07  Jonathan Pobst  <monkey@jpobst.com>
5169
5170         * StatusStrip.cs, ToolStripStatusLabel.cs: By request, an
5171         early version of StatusStrip.  Not responsible for eaten
5172         application or firstborn children.
5173
5174 2006-11-06  Chris Toshok  <toshok@ximian.com>
5175
5176         * TabControl.cs: in OnGotFocusInternal/OnLostFocusInternal don't
5177         call GetTabRect with a -1 index.  Fixes #79847.
5178
5179 2006-11-06  Jackson Harper  <jackson@ximian.com>
5180
5181         * TreeNodeCollection.cs: Update scrollbars after clearing.
5182
5183 2006-11-06  Chris Toshok  <toshok@ximian.com>
5184
5185         * NumericUpDown.cs: fix the ToString method for some unit test
5186         love.
5187
5188 2006-11-06  Chris Toshok  <toshok@ximian.com>
5189
5190         * PropertyGrid.cs:
5191         - set the initial SelectedGridItem if we can.
5192
5193         - Exclude non-mergable properties only if we're merging > 1
5194         object.  Merging 1 object isn't really merging, obviously.
5195
5196         - Handle PropertySort.NoSort just like Alphabetical, which is
5197         wrong of course, but at least gets things on the screen.
5198         
5199         * PropertyGridView.cs:
5200         - Add method "FindFirstItem" which finds the first property grid
5201         item, so we can select it by default.
5202
5203         - make use of GridEntry.CanResetValue.
5204
5205         - Don't call RedrawBelowItemOnExpansion here anymore, the
5206         individual GridEntry's will do that.
5207
5208         - Remove the ITypeDescriptorContextImpl internal class.
5209         
5210         * GridEntry.cs:
5211         - this class needs to implement ITypeDescriptorContext, as it's
5212         what MS's PropertyDescriptorGridEntry does, which means we can
5213         remove the ITypeDescriptorContextImpl internal class from
5214         PropertyGrid.cs.  This fixes the crashing portion of bug #79829.
5215
5216         - keep a reference to our PropertyGridView, and move the call to
5217         RedrawBelowItemOnExpansion here from PGV.  This means
5218         programmaticly setting Expanded actually does something visible.
5219
5220         - add a CanResetValue() function which takes into account our
5221         possibly multiple "selected_objects" in the merged case.  Shifting
5222         PropertyGridView to use this method fixes another unreported
5223         crasher found running the test for #79829.
5224
5225         - when Top or Bounds is updated, make sure the PropertyGridTextBox
5226         is updated to reflect this.
5227
5228         * CategoryGridEntry.cs: the ctor takes the PGV now.
5229         
5230 2006-11-06  Jackson Harper  <jackson@ximian.com>
5231
5232         * TextControl.cs: These are 1 based.
5233         * TextBoxBase.cs: When setting the selected text, don't change the
5234         selected text tags, this is done by ReplaceText, just position the
5235         cursor at the end of the new text.
5236
5237 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
5238
5239         * ListView.cs: Allow label edit only when, when LabelEdit is
5240           set to true.
5241
5242 2006-11-06  Jackson Harper  <jackson@ximian.com>
5243
5244         * TextControl.cs: If a suitable wrapping position isn't found,
5245         just wrap right in the middle of a word.
5246
5247 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
5248
5249         * ListView.cs, ListViewItem.cs: Implement LabelEdit. Fixes
5250           bug #79820.
5251
5252 2006-11-06  Jackson Harper  <jackson@ximian.com>
5253
5254         * TreeView.cs: Can't use the VisibleCount property when setting
5255         scrollbar heights, because this doesn't take into account whether
5256         or not the horz scrollbar just came visible.
5257
5258 2006-11-05  Everaldo Canuto  <everaldo@simios.org>
5259
5260         * MenuAPI.cs: Deactivate menu on mouse up when menus it is already
5261         activated.  Fixes #79369, #79832.
5262
5263 2006-11-05  Alexander Olk  <alex.olk@googlemail.com>
5264
5265         * FileDialog.cs: *sigh* Because of recent runtime changes (r67043) I
5266           had to remove support for links that point to a directory. FileInfo
5267           returns no usefull information (means, the directory they point to)
5268           for such links. Replaced some empty string ("") with String.Empty.
5269
5270 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
5271
5272         * TreeNodeCollection.cs: To match MS, in 1.0 profile throw 
5273         NullReferenceException when attempting to remove node that is not in
5274         collection. Throw NullReferenceException when null is passed to 
5275         Remove. Allow first element of the collection to be removed. Fixes
5276         bug #79831.  In GetEnumerator ().Current return null if positioned 
5277         before the first element of the collection. In GetEnumerator ().Reset,
5278         position before first element of the collection.
5279
5280 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
5281
5282         * PropertyGrid.cs: To match MS, remove default title and description
5283         for panel. Fixed tooltips for Categorized and Alphabetic toolbar
5284         buttons.
5285
5286 2006-11-04  Chris Toshok  <toshok@ximian.com>
5287
5288         * Theme.cs: add a Clamp method, just for kicks.
5289
5290         * ThemeWin32Classic.cs: clamp all color components to [0..255].
5291
5292 2006-11-04  Chris Toshok  <toshok@ximian.com>
5293
5294         * Form.cs: if the form isn't visible, Close() does nothing.
5295
5296 2006-11-03  Chris Toshok  <toshok@ximian.com>
5297
5298         * Form.cs (Close): if the form is modal, don't Dispose of it, only
5299         Hide it.
5300         (WndProc): don't Dispose after handling the WM_CLOSE message.
5301
5302         * Application.cs (RunLoop): toplevels is a list of Forms, so treat
5303         them as such, instead of using casts from Control to Form.  Also,
5304         don't Dispose of the modal dialog when we fall out of the loop -
5305         Close() it instead.
5306
5307         fixes bug #79813.
5308
5309 2006-11-03  Chris Toshok  <toshok@ximian.com>
5310
5311         * Control.cs (Dispose): only go through the dispose thing if we're
5312         @disposing, and we haven't already been disposed.  Fixes bug
5313         #79814.
5314
5315         * Form.cs: no reason to call "base.Dispose()" here instead of
5316         "Dispose()".
5317
5318 2006-11-03  Mike Kestner  <mkestner@novell.com>
5319
5320         * ComboBox.cs : use ToString instead of casts in AddItem for
5321         sorting functionality.  Fixes #79812.
5322
5323 2006-11-03  Chris Toshok  <toshok@ximian.com>
5324
5325         * Application.cs: pave the way for actually using the thread
5326         exception dialog.  it's ifdefed out at the moment.
5327
5328 2006-11-03  Chris Toshok  <toshok@ximian.com>
5329
5330         * ThreadExceptionDialog.cs: until we get a better layout, actually
5331         hide the details textbox and label when we shouldn't see them.
5332
5333 2006-11-03  Jackson Harper  <jackson@ximian.com>
5334
5335         * TextBoxBase.cs: Don't bail from the scrollbar calcs for non
5336         multiline textboxes anymore.  This method also determines the
5337         width/height of a textboxes canvas area.
5338         - Sorta a revert of the last patch.  For multiline just position
5339         the controls, then bail.  This way the scrollbar width won't be
5340         altered.
5341
5342 2006-11-03  Everaldo Canuto  <everaldo@simios.org>
5343
5344         * ThemeWin32Classic.cs: Dont paint inner lines of 3D border when
5345         it dont need.  Fixes #79537.
5346
5347 2006-11-02  Jackson Harper  <jackson@ximian.com>
5348
5349         * X11Dnd.cs: We always allow copy, since XDND implies Copy.  Also
5350         send the status after firing the DndOver event.
5351
5352 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5353
5354         * TrackBar.cs: Now orientation only switches height / width if
5355         the control's handle is created (Win32 does it like this). Also 
5356         fixed a typo in ToString() for a test to pass, changed the 
5357         exception thrown in set_LargeChange and set_SmallChange to 
5358         match Win32 behaviour, and added TrackBar tests to the unit 
5359         tests.
5360
5361 2006-11-02  Chris Toshok  <toshok@ximian.com>
5362
5363         * XplatUIX11.cs: the atom we want is _NET_WM_STATE_SKIP_TASKBAR,
5364         not _NET_WM_STATE_NO_TASKBAR.
5365
5366 2006-11-02  Jackson Harper  <jackson@ximian.com>
5367
5368         * TextControl.cs: Increment count by one, since in the update view
5369         count - 1 is used.
5370
5371 2006-11-02  Jackson Harper  <jackson@ximian.com>
5372
5373         * TextBoxBase.cs: Use client rectangle not bounds for checking if
5374         the mouse is in the client rectangle (duh).
5375
5376 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5377         
5378         * TrackBar.cs: Fixed trackbar jumping around when clicking
5379         on it - the trackbar was not detecting correctly at which
5380         side of the thumb the click was done. (fixes #79718)
5381
5382 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
5383
5384         * ListBox.cs: scroll visible area when change SelectedIndex to
5385         a non visible area.  Fixes #79481.
5386
5387 2006-11-01  Jackson Harper  <jackson@ximian.com>
5388
5389         * TextControl.cs: When replacing the selection move the selection
5390         start/end/anchor to the end of the new text.
5391
5392 2006-11-01  Jackson Harper  <jackson@ximian.com>
5393
5394         * XplatUIWin32.cs: When setting the parent change the controls
5395         visibility to it's visibility flag, not to it's old parents
5396         visibility (.Visible walks the parent chain).
5397
5398 2006-11-01  Chris Toshok  <toshok@ximian.com>
5399
5400         * XplatUIX11.cs: revert the #79790 fix, as the simple.
5401         XSetTransientForHint fix breaks paint .net's tool windows.  more
5402         work needed for that one.
5403
5404 2006-11-01  Chris Toshok  <toshok@ximian.com>
5405
5406         * ScrollBar.cs: throw ArgumentException instead of Exception in
5407         LargeChange/SmallChange setters.  fixes unit tests.
5408
5409 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
5410
5411         * ContainerControl.cs: reverted rev.67183 (which was itself
5412         a reversion of rev.66853... eh).
5413         
5414         * Control.cs: Fixes Reflector hang by changing Focus() call
5415         to what it was before rev.66643 (calling Select() here sets 
5416         ActiveControl, which in some situations calls back Focus and 
5417         eventually does a stack overflow). Temp fix.    
5418         Changes to GetNextControl() to not look for children to select when
5419         parent cannot be selectable (so it looks for siblings instead)  
5420         
5421 2006-10-31  Mike Kestner  <mkestner@novell.com>
5422
5423         * CheckedListBox.cs : off by one error in returned index from
5424         ObjectCollection.Add.  Fixes #79758.
5425
5426 2006-10-31  Chris Toshok  <toshok@ximian.com>
5427
5428         * UpDownBase.cs: remove the OnGotFocusInternal/OnLostFocusInternal
5429         calls for the textbox/spinner, to keep from recursing to the point
5430         where we crash.  Fixes #79760.
5431
5432 2006-10-31  Chris Toshok  <toshok@ximian.com>
5433
5434         * ListControl.cs (set_SelectedValue): don't throw exceptions on
5435         null/"" value, just return.  matches ms's behavior and fixes some
5436         failing tests.
5437
5438 2006-10-31  Chris Toshok  <toshok@ximian.com>
5439
5440         * Control.cs (set_Capture): make a logic a little easier to
5441         follow.
5442
5443         * XplatUIX11.cs (CleanupCachedWindows): zero out the Grab window
5444         if it's being destroyed.  A necessary fix surely, but a bandaid
5445         also, to fix the stuck capture problem in bug #78413.
5446
5447 2006-10-31  Chris Toshok  <toshok@ximian.com>
5448
5449         * XplatUIX11.cs: fix a couple of compiler warnings, and follow the
5450         convention of clearing hwnd.ClientRect when we set the
5451         width/height (so it'll be recalculated by Hwnd).
5452
5453 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
5454
5455         * ContainerControl.cs: reversed Contains check from
5456         ActiveControl due to hanging problems. This fix
5457         partly regresses #79667 (button does not have
5458         initial focus), so this might be a symptom for 
5459         a larger parenting problem (set_ActiveControl
5460         is being called but the child control does
5461         not have the parent set yet?)   
5462         
5463 2006-10-31  Mike Kestner  <mkestner@novell.com>
5464
5465         * MenuAPI.cs : fix keynav when menu is click activated.
5466
5467 2006-10-31  Jonathan Pobst  <monkey@jpobst.com>
5468
5469         * ToolStrip*: Version 0.2.
5470
5471         * MenuStrip.cs: Version 0.1.
5472
5473         * Form.cs: Add a 2.0 MenuStrip tracker like the 1.1 Menu one.
5474
5475 2006-10-30  Chris Toshok  <toshok@ximian.com>
5476
5477         [ fixes the oversized notify icon issue in bug #79745 ]
5478         
5479         * NotifyIcon.cs: scale the icon down to the size we're given by
5480         the XplatUI layer (this would be faster if we did it once instead
5481         of whenever we paint..)  Also, remove the WM_NCPAINT handling,
5482         since it's never invoked.
5483
5484         * XplatUIX11.cs: the gnome and kde systrays use icons that are 24
5485         pixels high by default, so let's hardcode our systray icon to that
5486         size.  The SYSTEM_TRAY protocol should really have a way for
5487         client apps to query for the correct icon size.. but oh well.  A
5488         couple of patches to deal with the screwy client_window ==
5489         whole_window notifyicon stuff (we don't want to PerformNCCalc, for
5490         instance, and also make sure we don't XSelectInput twice).
5491
5492 2006-10-30  Chris Toshok  <toshok@ximian.com>
5493
5494         * Control.cs: ugh, the unit test fix (CH11, yesterday) breaks when
5495         recreating forms.  Control recreation is the bane of my existence.
5496         Fix it in a way that keeps everyone happy.
5497
5498 2006-10-30  Chris Toshok  <toshok@ximian.com>
5499
5500         * XplatUIX11.cs: use StructureNotifyMask on all whole_windows, not
5501         just non-CHILD ones.  otherwise sometimes scrollbars end up with
5502         client_windows not being resized to the proper size (ReportBuilder
5503         shows this extremely well).
5504
5505 2006-10-30  Chris Toshok  <toshok@ximian.com>
5506
5507         * XplatUIX11.cs (SetWMStyles): reinstate the XSetTransientForHint
5508         for non-WS_EX_APPWINDOW windows.  This is what keeps them from
5509         showing up in the gnome taskbar.  Fixes bug #79790.
5510
5511 2006-10-30  Chris Toshok  <toshok@ximian.com>
5512
5513         * ApplicationContext.cs: guard against a NRE.
5514
5515         * Application.cs: null out the old MainForm for the context, so we
5516         don't try to use it again once it's disposed.  Fixes bug #79783.
5517
5518 2006-10-30  Chris Toshok  <toshok@ximian.com>
5519
5520         * DataGrid.cs (set_DataSource, set_DataMember): if we have a
5521         BindingContext, set the data source directly, otherwise do the
5522         lazy approach - the actual ListManager will be created when we get
5523         a BindingContext. Fixes bug #79700.
5524
5525 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
5526
5527         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
5528           XplatUIX11.cs: Remove old 2 parameter SetVisible.
5529
5530         * Control.cs: Use the new 3 parameter SetVisible with activate = true.
5531
5532 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
5533
5534         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Add an overload
5535         of SetVisible that allows a window to be shown, but not activated.
5536         This is needed on Windows for MenuStrip, and can probably be used
5537         with MainMenu and ComboBox to fix the focus stealing issues on
5538         Windows.
5539
5540         * XplatUIOSX.cs, XplatUIX11.cs: Not needed, call existing SetVisible.
5541
5542 2006-10-30  Alexander Olk  <alex.olk@googlemail.com>
5543
5544         * PictureBox.cs: Fix the output of the ToString method.
5545
5546 2006-10-29  Chris Toshok  <toshok@ximian.com>
5547
5548         * Control.cs (get_TopLevelControl): fix bug #79781.
5549
5550 2006-10-29  Chris Toshok  <toshok@ximian.com>
5551
5552         * ListControl.cs (set_DataSource): throw Exception here, not
5553         ArgumentException, to match MS behavior.
5554
5555 2006-10-29  Chris Toshok  <toshok@ximian.com>
5556
5557         * Form.cs: remove the try-catch's around calls to GetWindowState.
5558         We can just check the return value.
5559
5560         * XplatUIX11.cs: don't throw exceptions from GetWindowState.
5561         Instead return -1.
5562
5563         * XplatUI.cs: Add note about additional return value for
5564         GetWindowState.
5565
5566 2006-10-29  Chris Toshok  <toshok@ximian.com>
5567
5568         * Control.cs (CreateHandle): when we create our handle, we also
5569         create the handles of our child controls.  Fixes one of the
5570         Control unit tests (CH11).
5571
5572 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
5573
5574         * MimeIcon.cs: If a gnome icon doesn't exist add a default icon.
5575
5576 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
5577
5578         * ThemeClearlooks.cs: A little speedup.
5579
5580 2006-10-27  Chris Toshok  <toshok@ximian.com>
5581
5582         * Control.cs: implement Control.FromChildHandle in a way that
5583         matches the docs (and fixes the failed test.)
5584
5585 2006-10-27  Chris Toshok  <toshok@ximian.com>
5586
5587         * DataGridTableStyle.cs: reproduce buggy MS behavior (with
5588         comments).
5589
5590         * DataGrid.cs: implement ResetForeColor such that the tests
5591         succeed.
5592         
5593 2006-10-27  Chris Toshok  <toshok@ximian.com>
5594
5595         * ToolBarButton.cs: setting text/tooltiptext to null results in it
5596         being set to "".  Fixes bug #79759.
5597
5598 2006-10-27  Jackson Harper  <jackson@ximian.com>
5599
5600         * TextControl.cs: We need to clear the entire selection area when
5601         setting the start, otherwise multiline selections are still
5602         visible.
5603
5604 2006-10-26  Chris Toshok  <toshok@ximian.com>
5605
5606         * PropertyGridView.cs: 
5607
5608         - ifdef all the code specific to the double
5609         buffer case, and provide some alternatives in the non-doublebuffer
5610         code, which makes heavy use of XplatUI.ScrollWindow to move things
5611         around without having to invalidate (and cause flicker).  There
5612         are still some drawing problems in the non-doublebuffered case, so
5613         DOUBLEBUFFER is defined by default.
5614
5615         - Fix the way dropdowns are handled.  now we explicitly watch for
5616         the events which might cause the dropdown to close, and break out
5617         of the nested event loop there.  This gets rid of all Capture
5618         code, at the expense of the Msg special casing.  Seems to work,
5619         though, and fixes bug #79743.
5620
5621 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
5622         * Control.cs: SetIsRecreating now recreates implicitly added
5623         child controls as well. Finally fixes #79629. The flag passed to 
5624         SetIsRecreating has also been removed since it wasn't used.
5625         
5626 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5627
5628         * PageSetupDialog.cs: Clean some code, fix some bits, 
5629         add some checks, and add a printer sub-dialog.
5630
5631 2006-10-26  Chris Toshok  <toshok@ximian.com>
5632
5633         * PropertyGrid.cs: make set_SelectedObject call
5634         set_SelectedObjects, and move the duplicate logic to the
5635         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
5636
5637         * PropertyGridView.cs: hide the textbox when we get a
5638         SelectedObjectsChanged event.
5639
5640         Fixes bug #79748.
5641
5642 2006-10-26  Chris Toshok  <toshok@ximian.com>
5643
5644         * PropertyGridView.cs: deal with the type converter not supporting
5645         GetStandardValues() or GetStandardValues() returning null, which
5646         is does in the default case.  Fixes #79742.
5647
5648 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
5649
5650         * CheckedListBox.cs: nunit no longer crashes when selecting 
5651         Project/Edit menu option
5652         
5653 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
5654
5655         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
5656         is no menu selected. fixes #79739
5657
5658 2006-10-25  Chris Toshok  <toshok@ximian.com>
5659
5660         * PropertyGridView.cs: factor out the splitter invalidation code
5661         into the SplitterPercent setter, and for kicks implement the
5662         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
5663         amount in either direction.
5664
5665 2006-10-25  Chris Toshok  <toshok@ximian.com>
5666
5667         * PropertyGridView.cs: do some cleanup of the brush used to draw
5668         text - read only fields should be grayed out.  not sure how to do
5669         this with the textbox, though.  but the textbox's should also be
5670         readonly now at least.  Also, hide/show the textbox when resizing
5671         the control.
5672         
5673         * CursorConverter.cs: use System.Reflection when getting the
5674         properties of Cursors, as TypeDescriptor.GetProperties isn't
5675         returning static properties.
5676
5677 2006-10-25  Chris Toshok  <toshok@ximian.com>
5678
5679         * PropertyGridView.cs: factor out the up/down handling, and reuse
5680         it for page up/down.  also add End/Home support.
5681
5682 2006-10-25  Chris Toshok  <toshok@ximian.com>
5683
5684         * PropertyGridView.cs:
5685
5686         - ensure the selected grid item is visible in the scrolled area,
5687         fixes bug #79572.
5688
5689         - fix Keys.Down handling when you're on the last item in the
5690         propertygrid.
5691
5692 2006-10-25  Mike Kestner  <mkestner@novell.com>
5693
5694         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
5695         clicks too.  Fixes #79725.
5696
5697 2006-10-24  Chris Toshok  <toshok@ximian.com>
5698
5699         * PropertyGrid.cs: use property.Converter instead of
5700         TypeDescriptor.GetConverter(property.PropertyType), so we catch
5701         TypeConverters declared on the property as well as on the
5702         PropertyType.  Fixes bug #79678.
5703
5704 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
5705
5706         * MimeIcon.cs, Mime.cs:
5707           Fallback to the default platform handler if no shared mime info
5708           stuff exists (fixes #79693).
5709
5710 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
5711         * ContainerControl.cs: Incorrect contains check in ActiveControl 
5712         from previous fix (duh).
5713
5714 2006-10-20  Chris Toshok  <toshok@ximian.com>
5715
5716         * PropertyGridView.cs: the dropdown should be MIN(number of items
5717         in list, 15).  Fixes #79551.
5718
5719 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
5720         Fixes #79384, #79394, #79652, #79667
5721         * Application.cs: 
5722         
5723         - Modal windows are now destroyed in the proper order for windows
5724         
5725         * ContainerControl.cs:
5726         
5727         - ActiveControl setter has more conditions on when to return:
5728                 - if we're reselecting the active control, but it actually
5729                 didn't have focus (window hidden or some such), it runs
5730                 - if the active control being selected doesn't actually 
5731                 exist in the container, it returns
5732         
5733         * Form.cs
5734         
5735         - The ShowDialog now gets the current form as the owner when
5736         invoking without parameters, and correctly activates the owner 
5737         when returning
5738         
5739         * MessageBox.cs
5740         
5741         - MessageBox now catches the Escape key to exit
5742
5743 2006-10-20  Chris Toshok  <toshok@ximian.com>
5744
5745         * PropertyGridView.cs: fix a number of issues (bug #78565, and
5746         most of bug #79676):
5747
5748         - you can navigate around the property grid with the arrow keys.
5749
5750         - the dropdown is sized properly when the pg has a vertical
5751         scrollbar.
5752
5753         - fix the indentation for subentries, and properly select the
5754         entire label rect.
5755
5756         - fix the gray bar's drawing (only draw it to the last element,
5757         not for the height of the control.  Also make sure we draw that
5758         last horizontal grid line.
5759
5760         - use the same mechanism the datagrid uses wrt the editing textbox
5761         when scrolling/resizing/etc.  Namely, we hide it first, do the
5762         operation, then show it again (if it's still visible).
5763         
5764         - aggressively remove a lot of unnecessary refreshes (and also
5765         calls to Invalidate(). call more limited variants, and only redraw
5766         what we need.)
5767         
5768         * PropertyGrid.cs:
5769
5770         - when we're populating the merged collection, fill in the UI
5771         parent with either the passed in item, or the category item we
5772         create.
5773
5774         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
5775
5776         * GridItem.cs: drop some fully qualified names.
5777         
5778         * GridEntry.cs: add a "UIParent", which is basically the parent
5779         treenode.
5780
5781         * GridItemCollection.cs: add an IndexOf method.
5782
5783 2006-10-20  Mike Kestner  <mkestner@novell.com>
5784
5785         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
5786         a working win32 NC invalidation mechanism, we can't invalidate
5787         menus.  [Fixes #79705]
5788
5789 2006-10-20  Mike Kestner  <mkestner@novell.com>
5790
5791         * ListBox.cs : don't update the VScrollbar if the list is empty,
5792         just hide it.  [Fixes #79692]
5793
5794 2006-10-20  Jackson Harper  <jackson@ximian.com>
5795
5796         * RichTextBox.cs: Handle some special chars better, and don't skip
5797         the entire group when we encounter a special char that we don't
5798         handle correctly.
5799
5800 2006-10-18  Chris Toshok  <toshok@ximian.com>
5801
5802         * PropertyGridView.cs: address a number of issues from bug #79676,
5803         mostly of the cosmetic variety.
5804
5805         - The highlight rectangle for indented items not extends all the
5806         way to the left.
5807
5808         - Indented items aren't indented so much.
5809
5810         - the dropdown is properly sized width-wise if the pg has a
5811         vertical scrollbar.
5812
5813 2006-10-18  Chris Toshok  <toshok@ximian.com>
5814
5815         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
5816         systray stuff is rather convoluted to begin with.
5817
5818         systray icons are a single window for some reason (that I haven't
5819         figured out yet), and for them, client_window == whole_window.
5820         Given the way the tests are structured elsewhere to determine
5821         which paints are pending (client vs. nc), that situation will
5822         always yield PAINT, not NCPAINT.  So, if we have a pending
5823         nc_expose and no pending expose, remove the hwnd from the paint
5824         queue, and also set nc_expose_pending to false, to keep us from
5825         blocking further expose's adding the hwnd to the paint queue.
5826
5827         phew.  like i said, a rather convoluted change.  Fixes the
5828         notifyicon repaint issues in bug #79645.
5829
5830 2006-10-18  Chris Toshok  <toshok@ximian.com>
5831
5832         * Form.cs: when getting the backcolor of the form, don't get
5833         base.BackColor, as this allows parents to influence the background
5834         color.  This breaks mdi forms.  Instead, if the background_color
5835         is empty, return the default.
5836
5837 2006-10-18  Chris Toshok  <toshok@ximian.com>
5838
5839         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
5840         to being private instead of internal static.
5841
5842         * Control.cs: remove all the stupid ParentWaitingOnRecreation
5843         crap, it wasn't working for more deeply nested controls anyway,
5844         and we already have the is_recreating flag - use that instead.
5845         Before calling DestroyHandle in RecreateHandle, recurse through
5846         the control tree setting it to true.  this returns the recreate
5847         code to much of its original simplicity, while now guaranteeing we
5848         actually recreate everything we're supposed to.  This change gets
5849         fyireporting actually showing mdi children.
5850
5851 2006-10-17  Chris Toshok  <toshok@ximian.com>
5852
5853         * Form.cs: remove some debug spew, and collapse some duplicate
5854         code at the end of SetClientSizeCore.
5855
5856         * XplatUIX11.cs: 
5857         - add some more debug spew here too wrt Destroy handling.
5858         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
5859         in Control's handling of WM_DESTROY.
5860         - Remove the handling of zombie window DestroyNotifies from the
5861         event loop - we don't need it.  Now the only DestroyNotifies we
5862         actually handle are ones generated by X.
5863         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
5864         match gtk's (functioning) handling of this. This keep metacity
5865         from leaving droppings in the form of wm borders with no window
5866         contents all over the place.
5867
5868         * Control.cs:
5869         - add a bunch of debug spew wrt control recreation.
5870         - fix a bug where we weren't tracking Visible properly on
5871         recreated hwnds.
5872         - fixed the WM_PAINT double buffer handling to support re-entrant
5873         calls (yes, i know it's gross, but it's happening to us).
5874
5875 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5876         * ThemeWin32Classic.cs: changed drawing of selected days
5877         to make them look better.
5878
5879 2006-10-16  Chris Toshok  <toshok@ximian.com>
5880
5881         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
5882         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
5883
5884         * XplatUIX11.cs: move away from using hwnd.client_dc and
5885         hwnd.non_client_dc and on to a stack of dc's (and in window's
5886         case, PAINTSTRUCT's), so we can deal with nested Paint calls
5887         without puking or not disposing of Graphics objects.
5888
5889         * XplatUIOSX.cs: same.
5890
5891         * XplatUIWin32.cs: same.
5892
5893 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
5894
5895         * FileDialog.cs: Don't call on_directory_changed inside
5896           OnSelectedIndexChanged (it changes the SelectedIndex too).
5897           Instead move it to OnSelectionChangeCommitted.
5898
5899 2006-10-13  Chris Toshok  <toshok@ximian.com>
5900
5901         * XplatUIX11.cs: more Destroy work.  the current code does the
5902         following things, in order:
5903
5904         1. Enumerates all handles of all controls at or below the one
5905         being destroyed, in pre-order.  As it is doing this, it marks the
5906         handles as zombie and clears all references to them.
5907         
5908         2. calls XDestroyWindow on the window passed in.
5909
5910         3. SendMessage's WM_DESTROY to all he handles in the accumulated
5911         list.
5912
5913 2006-10-13  Chris Toshok  <toshok@ximian.com>
5914
5915         * XplatUIX11.cs: set hwnd.zombie to true before calling
5916         SendMessage (WM_DESTROY).  this keeps us from marking the new
5917         window a zombie, and also keeps us from calling sendmessage at
5918         all.
5919
5920 2006-10-13  Jackson Harper  <jackson@ximian.com>
5921
5922         * TextControl.cs: Do not show the caret and selection at the same
5923         time.  Reduces ugliness by 35%.
5924
5925 2006-10-13  Chris Toshok  <toshok@ximian.com>
5926
5927         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
5928         zombie after we do the recursive call, so we actually do call
5929         SendMessage on the children controls.
5930         (GetMessage): if we find a pending paint event for a zombie hwnd,
5931         remove the hwnd from the paint queue, or else it will always be
5932         there (and we'll effectively loop infinitely)
5933
5934 2006-10-13  Mike Kestner  <mkestner@novell.com>
5935
5936         * MenuItem.cs : add Selected format under keynav too.
5937         Fixes #79528.
5938
5939 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
5940
5941         * PropertyGrid.cs: Fixed some NRE's and small difference between our
5942         implementation and that of MS.
5943
5944 2006-10-13  Chris Toshok  <toshok@ximian.com>
5945
5946         * Control.cs (OnInvalidated) only futz with the invalid_region if
5947         the control is double buffered.  this fixes the apparent hang in
5948         the ListView unit tests.  Someone needs to make the
5949         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
5950
5951 2006-10-13  Chris Toshok  <toshok@ximian.com>
5952
5953         * PropertyGridView.cs:
5954
5955         - do a little refactoring so that only one place calls
5956         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
5957         else call that.  Also make it Refresh, since there are redraw bugs
5958         otherwise (we should take a look at that...)
5959
5960         - do a little more refactoring work to share the body of code
5961         involved with the drop down.  it was duplicated in the code
5962         dealing with the listbox handling and in the code dealing with the
5963         UITypeEditors.
5964
5965         - add a Capture to the dropdown form's control once it's
5966         displayed, and add a MouseDown handler that checks to make sure
5967         the position is inside the control.  If it's not, close the
5968         dropdown.  This fixes #78190.
5969
5970         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
5971         if the value is different than the initial value.
5972         
5973 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
5974
5975         * Control.cs: see #78650
5976         - Fixed GetNextControl for several cases:
5977                 - Changed FindFlatForward to return 
5978                 correct sibling control when more than one
5979                 control has same TabIndex as the currently 
5980                 focused one.
5981                 - Changed FindFlatBackward to loop children
5982                 from last to first and apply same logic as in
5983                 FindFlatForward
5984                 - Changed FindControlForward to search for
5985                 children when control is not a container
5986                 but has children, or search for siblings if
5987                 control is a container...
5988                 - Changed FindControlBackward   to continue
5989                 searching for child controls when hitting 
5990                 Panel-like parents
5991                 
5992         - Fixed Focus method to update ActiveControl
5993         (FocusTest.FocusSetsActive failure)
5994         
5995         * TabControl.cs:
5996         - Focus rectangle now refreshes when gaining
5997         or losing focus
5998         - Removed grab for Tab key on IsInputKey that 
5999         was keeping tab navigation from working (#78650)
6000
6001 2006-10-13  Chris Toshok  <toshok@ximian.com>
6002
6003         * PropertyGridView.cs:
6004         - Rewrite SetPropertyValue to loop over SelectedGridItem's
6005         SelectedObjects.
6006
6007         - Deal with GridItem.Value == null a few places.
6008
6009         * PropertyGrid.cs: 
6010         - replace the PopulateGridItemCollection with a pair of methods
6011         which compute the intersection of all the properties in the
6012         SelectedObjects array.  Fixes #79615.
6013
6014         - Throw ArgumentException from set_SelectedObjects if there's a
6015         null in the array.
6016
6017         - Add GetTarget method which can be used to traverse up the
6018         GridItem.Parent chain.  It depends on the assumption that
6019         selected_objects for different GridEntries are always in the same
6020         order (a safe assumption).  Use this method and loop over all the
6021         selected objects in the entry when calling RemoveValueChanged and
6022         AddValueChanged.
6023         
6024         * GridEntry.cs: Make this handle multiple selected objects.
6025         .Value returns null if not all the selected objects share the same
6026         value.
6027
6028 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
6029         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
6030           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
6031           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
6032           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
6033           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
6034         add additional functionality.
6035
6036 2006-10-12  Mike Kestner  <mkestner@novell.com>
6037
6038         * ErrorProvider.cs : new ToolTipWindow ctor sig.
6039         * HelpProvider.cs : new ToolTipWindow ctor sig.
6040         * ToolTip.cs : remove ToolTip param from Window sig since it is
6041         not used.
6042         * ToolBar.cs : add tooltip support.  Fixes #79565.
6043
6044 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
6045
6046         * ComboBox.cs: move the events in set_SelectedIndex to 
6047         after the call to HighlightIndex in order to avoid 
6048         possible recursion and subsequent problems with the call
6049         to HighlightIndex and include a range check in 
6050         set_HighlightIndex. Fixes #79588
6051         
6052 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
6053
6054         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
6055         to ui thread's settings instead of sunday. 
6056         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
6057
6058 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
6059
6060         * DateTimePicker.cs
6061         * MonthCalendar.cs
6062         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
6063         and implement missing functionality (selecting different parts 
6064         of the date and edit them individually with the keyboard).
6065         
6066 2006-10-11  Chris Toshok  <toshok@ximian.com>
6067
6068         * Control.cs (OnInvalidated): fix NRE relating to last change.
6069
6070 2006-10-11  Chris Toshok  <toshok@ximian.com>
6071
6072         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
6073         atoms in _NET_WM_STATE here if the window is maximized.  We need
6074         to do this because we're *replacing* the existing _NET_WM_STATE
6075         property, so those atoms will be lost otherwise, and any further
6076         call to GetWindowState will return Normal for a window which is
6077         actually maximized.  Fixes #79338.
6078
6079 2006-10-11  Jackson Harper  <jackson@ximian.com>
6080
6081         * TextControl.cs: Special case for setting selection end to
6082         selection start, we basically kill the anchor.
6083         - some todo comments.
6084
6085 2006-10-11  Chris Toshok  <toshok@ximian.com>
6086
6087         * Control.cs: switch to using an "invalid_region" to track which
6088         parts of the image buffer need updating.  This is more code than
6089         the simple fix from r66532.  That version just attempted to always
6090         fill the entire buffer on redraw, which turns out to be
6091         inefficient when invalidating small rectangles.  This version
6092         simply adds the invalid rectangle to the invalid region.  When we
6093         get any WM_PAINT message we see if it can be filled using the
6094         image buffer, and if it can't (if the paint event's clip rectangle
6095         is visible in the invalid region) we first fill the image buffer.
6096         So, the image buffer is still a cache, we just fill it lazily.
6097
6098         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
6099         need it any longer.
6100
6101 2006-10-11  Chris Toshok  <toshok@ximian.com>
6102
6103         * XplatUIX11.cs (SetWindowPos): we need to update both position as
6104         well as size after calling XMoveResizeWindow.  This keeps us from
6105         ignoring future SetWindowPos calls.  Fixes the disappearing
6106         DateTimePicker in the ToolBarDockExample from bug #72499.
6107
6108 2006-10-11  Chris Toshok  <toshok@ximian.com>
6109
6110         * TextBoxBase.cs: reorder things a bit when it comes to
6111         resizing-causing-recalculation.  we were recalculating the
6112         document when our position was changed, which shouldn't happen.
6113         We only care about size changes.  Clear up some more redundant
6114         recalculation calls while I'm at it.  This makes the toolbar dock
6115         example snappy when you're just dragging toolbars around (since it
6116         causes a relayout whenever you move one.)
6117
6118 2006-10-11  Chris Toshok  <toshok@ximian.com>
6119
6120         * ToolBarButton.cs (get_Rectangle): this only returns
6121         Rectangle.Empty if Visible == false, or Parent == null.
6122         Parent.Visible doesn't matter.
6123
6124 2006-10-10  Chris Toshok  <toshok@ximian.com>
6125
6126         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
6127         by .net 1.1, so switch to an internal method instead.
6128
6129 2006-10-10  Chris Toshok  <toshok@ximian.com>
6130
6131         * Control.cs (WM_PAINT): when a control is double buffered we draw
6132         initially to the ImageBuffer and then copy from there.  But when a
6133         parent control which has child controls is double buffered, the
6134         initial drawing doesn't encompass the entire ClientRectangle of
6135         the parent control, so we end up with uninitialized bits (this is
6136         easily seen by dragging the top toolbar in
6137         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
6138         manually set the ClipRectangle of the paint_event (only the one we
6139         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
6140         of the nastiness in bug #72499.
6141
6142         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
6143         which we use in Control.cs's WM_PAINT handling.
6144
6145 2006-10-10  Jackson Harper  <jackson@ximian.com>
6146
6147         * TextBoxBase.cs: Finish off the autoscrolling stuff.
6148
6149 2006-10-10  Chris Toshok  <toshok@ximian.com>
6150
6151         * Cursor.cs: Apply a slightly different patch to the one suggested
6152         in #79609.
6153
6154 2006-10-10  Jackson Harper  <jackson@ximian.com>
6155
6156         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
6157         not the parent form.
6158         * TextControl.cs: use difference in old line count vs new count to
6159         calculate how many lines were added, this takes into account soft
6160         line breaks properly.
6161
6162 2006-10-10  Chris Toshok  <toshok@ximian.com>
6163
6164         * LinkLabel.cs: don't call MeasureCharacterRanges against a
6165         rectangle located at 0,0 and the size of the text.  Use
6166         ClientRectangle instead.  This fixes rendering of non-left aligned
6167         link labels.
6168
6169 2006-10-10  Jackson Harper  <jackson@ximian.com>
6170
6171         * TextBoxBase.cs: When we set the selection start position the
6172         caret.
6173         * TextControl.cs: Need to update the caret when we decrement it to
6174         zero.
6175         - Make sure that the selection_visible flag gets reset to false if
6176         the selection isn't visible.  Before this you could get it set to
6177         visible by changing the selection start, then changing the end to
6178         equal the start.
6179
6180 2006-10-09  Jackson Harper  <jackson@ximian.com>
6181
6182         * TreeView.cs: Don't update scrollbars when we aren't visible.
6183         * TreeNodeCollection.cs: Only need to update scrollbars if being
6184         added to an expanded visible node or the root node.
6185
6186 2006-10-09  Chris Toshok  <toshok@ximian.com>
6187
6188         * XplatUIX11.cs (SendMessage): fix NRE.
6189
6190 2006-10-09  Jackson Harper  <jackson@ximian.com>
6191
6192         * TextBoxBase.cs: Implement horizontal autoscrolling.
6193         * TextControl.cs: Add a movement types that allows moving forward
6194         and backwards without wrapping.
6195
6196 2006-10-09  Mike Kestner  <mkestner@novell.com>
6197
6198         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
6199         with focus "expansion" of labels.  Fixes #79532 and then some.
6200         * ThemeWin32Classic.cs : add LineLimit to ListView label format
6201         when wrapping.
6202
6203 2006-10-09  Jackson Harper  <jackson@ximian.com>
6204
6205         * TextBoxBase.cs: Set the default max values to MaxValue since
6206         we use the scrollbar for autoscrolling and the default value is
6207         100.  If we don't do this the caret won't keep up with typing
6208         after about 18 characters.
6209         * TextControl.cs: Make sure the selection is offset by the
6210         viewport x.  This fixes selection when using auto scrolling.
6211
6212 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
6213         
6214         * Form.cs: The active control should be selected after the 
6215         OnLoad so that any child control initialization that affects
6216         the selection is done. Fixes #79406
6217
6218 2006-10-06  Chris Toshok  <toshok@ximian.com>
6219
6220         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
6221         to have no evil effects.
6222
6223         - Stop selecting StructureNotifyMask on non-toplevel windows.
6224
6225           The only way children should be resized is by using the SWF api,
6226           and we already send WM_WINDOWPOSCHANGED messages in those cases.
6227           Toplevel windows can be interacted with via the window manager,
6228           and so we keep the input mask there.
6229
6230           The other event StructureNotifyMask gives us (that we care
6231           about) is DestroyNotify.  The code is already structured such
6232           that it assumes we won't be getting a DestroyNotify event for
6233           the window we pass to XDestroyWindow (which is what
6234           StructureNotifyMask is supposed to guarantee.)  So, that code
6235           shouldn't be affected by this either.
6236
6237         - Stop selecting VisibilityChangeMask altogether.
6238
6239           We weren't doing anything with the resulting events anyway.
6240         
6241         This vastly reduces the number of X requests and events we see
6242         when resizing/laying out a large ui.
6243
6244 2006-10-06  Chris Toshok  <toshok@ximian.com>
6245
6246         * ScrollableControl.cs (DisplayRectangle): we need to take into
6247         account the DockPadding regardless of whether or not auto_scroll
6248         == true.  rework this slightly to this effect, and fix bug #79606,
6249         and part of #72499 (you can now see the drag handles and drag
6250         toolbars around).
6251
6252 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
6253
6254         * ListViewItem.cs: Collections of selected and checked items are now
6255         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
6256         we mark the collection "dirty".
6257         * ListView.cs: Marked collections readonly. Modified UpdateSelection
6258         to only clear SelectedItems when a new item is selected and MultiSelect
6259         is enabled. CheckedItems and SelectedItems now subscribe to Changed
6260         event of ListViewItemCollection, and mark its list dirty whenever
6261         that event is fire. This allows us to return selected/checked items 
6262         in the same order as they are in the Items collection. This matches
6263         the MS behavior.
6264
6265 2006-10-06  Chris Toshok  <toshok@ximian.com>
6266
6267         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
6268         right mouse clicks.  Fixes bug #79593.
6269
6270 2006-10-06  Chris Toshok  <toshok@ximian.com>
6271
6272         * Splitter.cs: doh, fix splitters that don't want to cancel the
6273         movement when you drag them.  Also, impose the limits on the
6274         values we send to the SplitterMovingEvent.  Fixes #79598.
6275
6276 2006-10-06  Jackson Harper  <jackson@ximian.com>
6277
6278         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
6279         since we use this for auto scrolling also.
6280
6281 2006-10-05  Chris Toshok  <toshok@ximian.com>
6282
6283         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
6284         beginning to think that most datagrid column types don't need this
6285         method.  Fixes bug #79392.
6286
6287 2006-10-05  Chris Toshok  <toshok@ximian.com>
6288
6289         * DataGrid.cs: move back to a more lazy scheme for creating the
6290         CurrencyManager, so we aren't updating it every time you set
6291         either DataSource or DataMember.  Also, don't call
6292         RecreateDataGridRows if the currency manager hasn't changed.
6293
6294 2006-10-05  Chris Toshok  <toshok@ximian.com>
6295
6296         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
6297         emitted, SelectedIndex should already be updated.  Fixes bug
6298         #78929.
6299
6300 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
6301
6302         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
6303           ToolStripTextBox.cs: Initial commit.
6304         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
6305
6306 2006-10-05  Jackson Harper  <jackson@ximian.com>
6307
6308         * TabControl.cs: We need to invalidate the tab control area when
6309         new ones are added (duh).
6310
6311 2006-10-03  Chris Toshok  <toshok@ximian.com>
6312
6313         * Form.cs (ProcessDialogKey): if the focused control is in this
6314         form and is a button, call its PerformClick method here.  Fixes
6315         #79534.
6316
6317 2006-10-04  Jackson Harper  <jackson@ximian.com>
6318
6319         * TabPage.cs: Ignore setting of Visible, and add an internal
6320         method for setting the controls visibility.  TabPage's Visible
6321         property is a little strange on MS, this seems to make us
6322         compatible, and fixes cases where people set all the tab pages to
6323         visible.
6324         * TabControl.cs: Use the new internal setting on tab pages
6325         visibility.
6326
6327 2006-10-03  Mike Kestner  <mkestner@novell.com>
6328
6329         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
6330
6331 2006-10-03  Mike Kestner  <mkestner@novell.com>
6332
6333         * ListView.cs : use is_visible instead of Visible to check if 
6334         scrollbars should be placed/sized.  Also some max_wrap_width
6335         love for LargeIcon view.  [Fixes #79533]
6336
6337 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
6338
6339         * TextControl.cs :
6340           Make set_TextAlign() do actually update the align. Fixed #78403.
6341
6342 2006-10-03  Chris Toshok  <toshok@ximian.com>
6343
6344         * DataGrid.cs: fix a crash when switching datasources if the
6345         vertical scrollbar is at someplace other than Value = 0.  Also,
6346         reduce the number of recalculation passes we do in SetDataSource
6347         from 2 to 1.
6348
6349 2006-10-03  Jackson Harper  <jackson@ximian.com>
6350
6351         * TextBoxBase.cs: Move the if value the same bail check up, we
6352         don't want to empty the document if it is already empty, this
6353         seems to severly mess up the caret.  TODO: I should probably fix
6354         the empty statement to update teh caret somehow.
6355
6356 2006-10-03  Chris Toshok  <toshok@ximian.com>
6357
6358         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
6359         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
6360         reflection, an internal row type, properties on said type, etc.)
6361         will work with our datagrid.  Fixes #79531.
6362
6363 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
6364
6365         * FileDialog.cs: Don't crash if a path is not accessible
6366           (System.UnauthorizedAccessException). Fixes #79569.
6367         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
6368           a ':' too. Return unknown icon for those paths/files.
6369
6370 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
6371
6372         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
6373         GetContainerControl returns null.
6374
6375 2006-10-02  Chris Toshok  <toshok@ximian.com>
6376
6377         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
6378         call to XGetWindowAttributes instead of "handle".  fixes an X
6379         error using notifyicon after the NotifyIconWindow to Form base
6380         class switch.
6381
6382 2006-10-02  Chris Toshok  <toshok@ximian.com>
6383
6384         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
6385         server grab and looping we need to do to get down to the most
6386         deeply nested child window.
6387         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
6388         QueryPointer again after the WarpPointer so we can generate a
6389         proper (fake) MotionNotify event to be enqueued in the destination
6390         window's queue.
6391         (GetCursorPos): call QueryPointer.
6392
6393         Fixes #79556.
6394
6395 2006-10-02  Jackson Harper  <jackson@ximian.com>
6396
6397         * NotifyIcon.cs: Derive the notify icon from a form, so things
6398         like FindForm work on it.
6399         - Swallow the WM_CONTEXTMENU message, since that is generated on
6400         mouse down, and context menu is a mouse up kinda guy.  I believe
6401         the correct fix here is probably to make the notify icon entirely
6402         NC area, but this seems to work fine for anyone not manipulating
6403         WndProc.
6404
6405 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
6406
6407         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
6408           ToolStripItemCollection.cs, ToolStripLabel.cs,
6409           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
6410           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
6411           Initial implementation.
6412         * TextRenderer.cs: Provide padding to MeasureText.
6413
6414 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
6415
6416         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
6417         of ButtonBaseAccessibleObject. Fix bug #79552.
6418
6419 2006-10-02  Jackson Harper  <jackson@ximian.com>
6420
6421         * MdiWindowManager.cs: When maximizing use the containers client
6422         rect, not it's bounds, so nc area is accounted correctly.
6423         - Use the parent form's size for the menu position, since the
6424         client isn't always the full form size.
6425
6426 2006-10-01  Chris Toshok  <toshok@ximian.com>
6427
6428         * ScrollableControl.cs: make sure neither right_edge or
6429         bottom_edge are < 0, since they're used as LargeChange for the
6430         horiz/vert scrollbars respectively.  Fixes #79539.
6431
6432 2006-10-01  Chris Toshok  <toshok@ximian.com>
6433
6434         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
6435         the xplatuix11 code can cause us to destroy/recreate our handle.
6436
6437         * XplatUIX11.cs
6438         (SystrayAdd):
6439         - this code can be invoked many times for the same Hwnd.  Make
6440           sure we only destroy the client window once (the first time this
6441           method is called).  This fixes bug #79544.
6442         - Remove the call to the improperly bound XSync.  why we had two
6443           bindings to this, I will never know, but this call resulted in
6444           events being discarded from the queue(!).
6445         - correct a misunderstanding of _XEMBED_INFO - the second atom is
6446           not our current state but the state we wish to be in.  So, 0 if
6447           we don't want to be mapped.  Change it to 1.
6448         (SystrayRemove): The XEMBED spec makes mention of the fact that
6449         gtk doesn't support the reparent of client windows away from the
6450         embedder.  Looking at gtksocket-x11.c seems to agree with this.
6451         The only avenue we have for removing systray icons is to destroy
6452         them.  We don't want the handle to go away for good, though, so
6453         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
6454         #79545.
6455         
6456 2006-10-01  Chris Toshok  <toshok@ximian.com>
6457
6458         * Form.cs (WndProc): inline the native_enabled variable usage into
6459         the cases in which it's used.  Fixes #79536.
6460
6461 2006-09-29  Mike Kestner  <mkestner@novell.com>
6462
6463         * ListView.cs : toggle the selection state for ctrl clicks in 
6464         multiselect mode. [Fixes #79417]
6465
6466 2006-09-29  Mike Kestner  <mkestner@novell.com>
6467
6468         * ListView.cs : kill CanMultiSelect and refactor the selection
6469         code to support multiselection in the absence of mod keys. Steal
6470         arrow/home/end keys by overriding InternalPreProcessMessage to
6471         restore regressed keynav behavior.
6472         [Fixes #79416]
6473
6474 2006-09-29  Jackson Harper  <jackson@ximian.com>
6475
6476         * MdiClient.cs: Repaint the titlebars when the active window is
6477         changed.
6478
6479 2006-09-29  Chris Toshok  <toshok@ximian.com>
6480
6481         * Application.cs: when entering a runloop with a modal, make sure
6482         the hwnd is enabled.  Fixes #79480.
6483
6484 2006-09-29  Chris Toshok  <toshok@ximian.com>
6485
6486         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
6487         when ListManager.CanAddRows == false, bump us back one.
6488
6489         * DataGridColumnStyle.cs (ParentReadOnly): remove the
6490         listmanager.CanAddRows check.  This makes ArrayLists uneditable
6491         using a datagrid, which is not right.
6492         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
6493         is an IEditable, but call property_descriptor.SetValue regardless.
6494         fixes #79435.
6495
6496 2006-09-29  Chris Toshok  <toshok@ximian.com>
6497
6498         * DataGridBoolColumn.cs: we need to test equality in the face of
6499         possible null values (as is the case with the default NullValue).
6500         This patch keeps us from crashing in that case.
6501
6502 2006-09-29  Jackson Harper  <jackson@ximian.com>
6503
6504         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
6505         here, since it will get called for every node collection in the
6506         tree. This is now done in the treeview once the sorting is
6507         finished.
6508         * TreeView.cs: Recalculate the visible order, and update the
6509         scrollbars after sorting, set the top nope to the root so that the
6510         recalc actually works.
6511
6512 2006-09-29  Chris Toshok  <toshok@ximian.com>
6513
6514         * LinkLabel.cs: more handling of the default link collection in
6515         the face of LinkArea manipulation.  The default link collection
6516         contains 1 element (start=0,length=-1).  If the user sets LinkArea
6517         to anything and the links collection is the default, clear it.
6518         Then only add the link if its nonempty.  Fixes #79518.
6519
6520 2006-09-29  Chris Toshok  <toshok@ximian.com>
6521
6522         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
6523         piece correctly when we hit a '\n'.  Fixes #79517.
6524
6525 2006-09-29  Chris Toshok  <toshok@ximian.com>
6526
6527         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
6528         change the binding of gdk_init_check to take two IntPtr's, and
6529         pass IntPtr.Zero for both of them.  Fixes #79520.
6530
6531 2006-09-29  Mike Kestner  <mkestner@novell.com>
6532
6533         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
6534         [Fixes #78779]
6535
6536 2006-09-28  Jackson Harper  <jackson@ximian.com>
6537
6538         * XplatUIX11.cs: When translating NC messages make sure we go from
6539         whole window to screen, not client window to screen.
6540         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
6541         method doesn't exist
6542         - Skip over controls that aren't forms when arranging.
6543
6544 2006-09-28  Jackson Harper  <jackson@ximian.com>
6545
6546         * XplatUIWin32.cs: Clip the rect to the parent window.
6547         * XplatUIStructs.cs: Add clipping modes struct.
6548         * InternalWindowManager.cs: New private method that factors title
6549         bar heights in when calculating the pos of an NC mouse message.
6550         - Use SendMessage to force a paint when the form's size is changed
6551         instead of painting the decorations immediately.
6552         - Don't let the NC button click messages get to DefWndProc,
6553         because they will attempt to handle windowing themself, and this
6554         messes up z-order (it will put them in front of the scrollbars).
6555         * XplatUIX11.cs: Make sure that we don't reset window managers if
6556         we already have one (ie the window is an MDI window).
6557
6558 2006-09-28  Chris Toshok  <toshok@ximian.com>
6559
6560         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
6561         menu code really needs going over.
6562
6563 2006-09-27  Chris Toshok  <toshok@ximian.com>
6564
6565         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
6566         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
6567         window is maximizable.  So, we need to make sure that even if we
6568         clear the border/wm frame of those functions, they're still
6569         available (basically, we remove the decoration without removing
6570         the function).  Half the fix for #79338.
6571
6572 2006-09-27  Chris Toshok  <toshok@ximian.com>
6573
6574         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
6575         Fixes bug #79515.
6576
6577 2006-09-27  Chris Toshok  <toshok@ximian.com>
6578
6579         * Splitter.cs: reorder things a bit so that we don't actually
6580         draw/move the splitter until after calling OnSplitterMoving.  This
6581         lets users cancel/disallow the movement by explicitly setting
6582         event.SplitX/SplitY.  Fixes #79372.
6583
6584 2006-09-27  Jackson Harper  <jackson@ximian.com>
6585
6586         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
6587         because it is most likely on a window being destroyed, and that
6588         will give us an X11 error.
6589
6590 2006-09-27  Chris Toshok  <toshok@ximian.com>
6591
6592         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
6593         the dropdown button now toggles between showing and hiding the
6594         dropdown.  Also, get rid of dropdown_form_showing and just use
6595         dropdown_form.Visible.  We still don't do a grab, but I'll leave
6596         that part to someone who has handled Capture-fu before.
6597
6598 2006-09-27  Chris Toshok  <toshok@ximian.com>
6599
6600         * DataGrid.cs: return false if alt isn't pressed when '0' is
6601         pressed.  this keeps the '0' key from being swallowed, and fixes
6602         bug #79350.
6603
6604 2006-09-27  Chris Toshok  <toshok@ximian.com>
6605
6606         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
6607         Calling Refresh (in response to a scrollbar event) screws up the
6608         scrollbar painting.  Fixes bug #78923.
6609
6610 2006-09-27  Chris Toshok  <toshok@ximian.com>
6611
6612         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
6613         then insert into hashtable" blocks threadsafe.
6614
6615 2006-09-27  Chris Toshok  <toshok@ximian.com>
6616
6617         * MessageBox.cs (CreateParams): the styles should be |'ed with our
6618         baseclass's, since otherwise the
6619         ControlBox/MinimizeBox/MaximizeBox assignments above have no
6620         effect.  This gets the close button back in messageboxes.
6621
6622 2006-09-27  Chris Toshok  <toshok@ximian.com>
6623
6624         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
6625         flag, not just != 0.  this makes flags that are actually multiple
6626         bits (like WS_CAPTION) work.  fixes bug #79508.
6627
6628 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
6629
6630         * PageSetupDialog.cs: add support for getting and settings the 
6631         paper size, source and orientation.
6632
6633 2006-09-26  Chris Toshok  <toshok@ximian.com>
6634
6635         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
6636         and caption == "", we need to remove the resize handles as well as
6637         the title bar.
6638
6639         * Control.cs (set_Text): turns out that setting Text on a form
6640         should change the WM styles on the window, since if ControlBox ==
6641         false, the only way to get a window border is to have a non-""
6642         Text property.  check winforms/forms/text.cs for an example.  so,
6643         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
6644         update both window styles and title.  This fixes a lot of dialogs
6645         (including the preferences dialog in MonoCalendar.)
6646
6647 2006-09-26  Chris Toshok  <toshok@ximian.com>
6648
6649         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
6650         control isn't a Form), call Win32ShowWindow to hide the window,
6651         but don't update the control Visible property.  When we reparent
6652         back to a parent control, call SetVisible in order for the
6653         window's visibility to be reinstated.
6654
6655         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
6656         the FosterParent.
6657
6658         * Control.cs (ControlCollection.Remove): remove that value.Hide()
6659         call for good, since it breaks MonoCalendar (and other things I'm
6660         sure.) Also, set all_controls to null *after* the owner calls,
6661         which end up regenerating it.
6662         (ChangeParent): allow new_parent to be == null, passing
6663         IntPtr.Zero down to XplatUI.
6664
6665         this fixes #79294 the right way.
6666
6667 2006-09-26  Mike Kestner  <mkestner@novell.com>
6668
6669         * GridEntry.cs : internal SetParent method.
6670         * PropertyGrid.cs : attach to property changed on the proper
6671         target if we have a hierarchical grid with subobjects. Setup
6672         GridItem.Parent for hierarchical items.
6673         * PropertyGridView.cs : Set value on the correct target for
6674         hierarchical grids. [Fixes #78903]
6675
6676 2006-09-26  Chris Toshok  <toshok@ximian.com>
6677
6678         * Control.cs (ChildNeedsRecreating): this should return true if
6679         either we're being recreated and the child is in our list, or our
6680         parent is waiting for our recreation.
6681
6682 2006-09-26  Chris Toshok  <toshok@ximian.com>
6683
6684         * Control.cs (ControlCollection.Remove): reinstate the
6685         value.Hide() call as suggested in bug #79294.
6686
6687 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
6688
6689         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
6690         coordinates (versus a relative move).
6691
6692 2006-09-26  Chris Toshok  <toshok@ximian.com>
6693
6694         * Control.cs: rework child recreation a little bit.  It turns out
6695         that we race between the DestroyNotify the WM_DESTROY message.  If
6696         the parent gets its DestroyNotify before the child gets the
6697         WM_DESTROY message, the child ends up not recreating (since the
6698         parent finishes its recreation on DestroyNotify, and the child
6699         checks ParentIsRecreating.)
6700
6701         So, instead we store off a list of all the child controls which
6702         need to be recreated when the parent control starts to recreate
6703         itself.  Then, when child controls get their WM_DESTROY message we
6704         check to see if they're in the parent's pending recreation list,
6705         and if so, we recreate.  This removes all dependency on ordering
6706         from the code and fixes the initial MonoCalendar upgrade dialog.
6707         
6708 2006-09-26  Jackson Harper  <jackson@ximian.com>
6709
6710         * TextControl.cs: Use the Line to get the length of the line,
6711         since soft line breaks can change the end line.
6712
6713 2006-09-26  Chris Toshok  <toshok@ximian.com>
6714
6715         * Control.cs (ControlCollection.AddImplicit): don't add the
6716         control again if it's already in one of our lists.  This keeps us
6717         from adding controls over and over again for comboboxes when their
6718         handle gets recreated (as the combobox adds implicit controls in
6719         OnHandleCreated).  Fixes the X11 errors in bug #79480.
6720
6721 2006-09-26  Jackson Harper  <jackson@ximian.com>
6722
6723         * TextControl.cs: When deleting characters make sure that any
6724         orphaned zero lengthed tags get deleted.
6725         - Fix ToString for zero lengthed tags.
6726
6727 2006-09-25  Jackson Harper  <jackson@ximian.com>
6728
6729         * TextControl.cs: When getting a tag at the location there can be
6730         multiple tags at the same spot, these are 0-lengthed tags that
6731         appear when extra formatting has been stuck in a location.  We
6732         need to pull out the last of these 0 lengthed tags.
6733
6734 2006-09-25  Jackson Harper  <jackson@ximian.com>
6735
6736         * TextControl.cs: Fix print out in debug method.
6737         * TextBoxBase.cs: When text is set bail if we are setting to the
6738         previous value.
6739         
6740 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
6741
6742         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
6743           It is now possible to change the selected index in a FontXXXListBox
6744           with the up and down arrow keys from the FontXXXTextBoxes.
6745           Also, send the FontXXXTextBox mouse wheel event to the corresponding
6746           FontXXXListBoxes to match ms.
6747
6748 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
6749
6750         * SystemInformation.cs: Return a clone of the theme's MenuFont because
6751         anyone can dispose it, anytime. All other properties returns enums, 
6752         structs or basic types so they don't need such tricks.
6753
6754 2006-09-22  Jackson Harper  <jackson@ximian.com>
6755
6756         * XplatUI.cs:
6757         * XplatUIWin32.cs:
6758         * Clipboard.cs:
6759         * DataFormats.cs:
6760         * XplatUIOSX.cs:
6761         * XplatUIDriver.cs: Update interface to add a primary selection
6762         flag, so the driver can use the primary selection buffer if
6763         needed.
6764         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
6765
6766         * RichTextBox.cs: We need to supply the data object to paste now
6767         (so we can choose to supply CLIPBOARD or PRIMARY).
6768         * TextBoxBase.cs: Supply data object to paste (see above).
6769         - Middle click uses the primary selection data object.
6770         
6771 2006-09-21  Chris Toshok  <toshok@ximian.com>
6772
6773         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
6774         of SetWMStyles.  It's still a rat's nest and is largely
6775         order-dependent which I dislike immensely.  This also fixes the X
6776         button disappearing from toplevel forms.
6777
6778 2006-09-21  Mike Kestner <mkestner@novell.com>
6779
6780         * ListBox.cs: move Jordi's click/dblclick raising code to the
6781         mouse up handler.
6782
6783 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
6784
6785         * ListBox.cs: Fixes 79450
6786
6787 2006-09-21  Mike Kestner <mkestner@novell.com>
6788
6789         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
6790         to deal with people updating the TreeNodeCollection after the tree
6791         is disposed.  "Fixes" 79330.
6792
6793 2006-09-20  Jackson Harper <jackson@ximian.com>
6794
6795         * TextControl.cs: Push the cursor record onto the undo stack
6796         before the delete action. This fixes 78651.
6797
6798 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
6799
6800         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
6801         CreateParams. Fixes 79329.
6802
6803 2006-09-19  Chris Toshok  <toshok@ximian.com>
6804
6805         * XplatUIX11.cs: a couple of blanket code massage passes to clean
6806         things up a bit.  First, get rid of the NetAtoms array (and the NA
6807         enum), and just embed the atoms as static fields.  Also, add a
6808         couple of functions (StyleSet and ExStyleSet) to clean up all the
6809         bitmask testing of styles.
6810
6811         * X11Structs.cs: remove the NA enum, not needed anymore.
6812         
6813 2006-09-19  Chris Toshok  <toshok@ximian.com>
6814
6815         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
6816         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
6817         added cleanup to get MessageBox titles appearing again, which were
6818         broken by my earlier fix for caption-less/ControlBox-less windows.
6819
6820 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
6821
6822         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
6823           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
6824           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
6825           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
6826           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
6827           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
6828           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
6829           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
6830           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
6831           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
6832           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
6833             Inital import.
6834         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
6835           ToolStripButton.cs: Stubs needed for above.
6836         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
6837
6838 2006-09-15  Chris Toshok  <toshok@ximian.com>
6839
6840         * XplatUIX11.cs:
6841         - make the MessageQueues hashtable Synchronized.
6842         
6843         - SendMessage: if the Hwnd is owned by a different thread, use the
6844         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
6845         thread.  Fixes bug #79201.
6846
6847 2006-09-15  Chris Toshok  <toshok@ximian.com>
6848
6849         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
6850         ControlBox == false, we disallow maximize/minimize/close.  If the
6851         form Caption is "" we also disallow move (and get rid of the Title
6852         decoration).  Unfortunately, regardless of how things are set,
6853         we're stuck with the Title and WM menu.
6854
6855 2006-09-15  Chris Toshok  <toshok@ximian.com>
6856
6857         * Application.cs: add locking around the static message_filters
6858         ArrayList, part of #79196.
6859
6860 2006-09-15  Chris Toshok  <toshok@ximian.com>
6861
6862         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
6863         Form.ControlBox == false, the window has no titlebar nor resize
6864         handles.  fixes bug #79368.
6865
6866 2006-09-15  Chris Toshok  <toshok@ximian.com>
6867
6868         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
6869         >= 0.  Fixes bug #79370.
6870
6871 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
6872         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
6873         * Control.cs:
6874             Add properties: LayoutEngine, Margin, DefaultMargin.
6875             Add method: GetPreferredSize.
6876             Move layout logic from PerformLayout to layout engines. 
6877
6878 2006-09-13  Chris Toshok  <toshok@ximian.com>
6879
6880         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
6881         fix for #79326 broke #78718, so this change addresses that.
6882
6883         - in SendWMDestroyMessages remove the call to
6884         CleanupCachedWindows, since we might be recreating the control and
6885         need to maintain the references to right Hwnd handles.  Also, set
6886         the zombie flag to true for each of the children in the hierarchy
6887         instead of calling hwnd.Dispose.  This will cause GetMessage to
6888         ignore all events for the window except for DestroyNotify.
6889
6890         - In GetMessage, ignore messages except for DestroyNotify for
6891         zombie hwnds.
6892         
6893         * Control.cs: revert the is_recreating fix from the last
6894         ChangeLog.  It's definitely "right", but it breaks switching from
6895         an MDI form to a non-MDI form.  Will need to revisit that.
6896
6897         * Hwnd.cs: add a zombie flag, which means "the
6898         client_window/whole_window handles are invalid, but we're waiting
6899         for the DestroyNotify event to come in for them".  Set the flag to
6900         false explicitly if setting WholeWindow/ClientWindow, and also
6901         when Disposing.
6902         
6903 2006-09-13  Chris Toshok  <toshok@ximian.com>
6904
6905         * XplatUIX11.cs: rework window destruction slightly.
6906
6907         - when destroying the windows associated with a control, we don't
6908         need 2 separate XDestroyWindow calls.  Just the one for the
6909         whole_window (or for client_window if whole_window is somehow
6910         IntPtr.Zero -- can this happen?) is enough.
6911
6912         - reworked SendWMDestroyMessages slightly, so we always dispose
6913         the child control hwnd's after sending the messages.
6914         
6915         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
6916         the two places it was used (one was even using hwnd.Handle and the
6917         other hwnd.client_window.  ugh), adding another call in
6918         SendWMDestroyMessages.  We need this new call because now the
6919         DestroyNotify events in the queue will be ignored for the child
6920         controls (as their hwnd's were disposed, and the window id's
6921         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
6922
6923         - this fixes bug #79326.
6924
6925 2006-09-13  Chris Toshok  <toshok@ximian.com>
6926
6927         * Control.cs: don't always set is_recreating to false at the end
6928         of RecreateHandle, since sometimes we're not done (and won't be
6929         until WndProc handles the WM_DESTROY message).  Also, set
6930         is_recreating to false in the WM_DESTROY handling code.  Part of
6931         the fix for bug #79326.
6932
6933 2006-09-13  Miguel de Icaza  <miguel@novell.com>
6934
6935         * X11DesktopColors.cs: Start the droppage of debugging messages.
6936
6937         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
6938
6939 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
6940
6941         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
6942
6943 2006-09-12  Chris Toshok  <toshok@ximian.com>
6944
6945         * DataGrid.cs (get_ListManager): if the list_manager is null, try
6946         to create it using SetDataSource.  Fixes bug #79151.
6947
6948 2006-09-11  Chris Toshok  <toshok@ximian.com>
6949
6950         * XEventQueue.cs: add a DispatchIdle property.
6951
6952         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
6953         either the queue is null, or the queue has DispatchIdle set to
6954         true.
6955         (DoEvents): set queue.DispatchIdle to false around the
6956         peek/translate/dispatch message loop in this method.  This keeps
6957         Application.Doevents from emitting idle events.  Part of the fix
6958         for #78823.
6959
6960 2006-09-11  Chris Toshok  <toshok@ximian.com>
6961
6962         * DataGrid.cs (set_DataSource): make this work for both the
6963         winforms/datagrid test and ReportBuilder.  It seems as though when
6964         we've created a ListManager (or maybe it's if we have a
6965         BindingContext?), when we set the DataSource it clears the
6966         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
6967         #79333.
6968
6969 2006-09-11  Chris Toshok  <toshok@ximian.com>
6970
6971         * XplatUIX11.cs: deal with queue being null, which happens in all
6972         the Clipboard functions.  Fixes one of the two problems mentioned
6973         in #78612.
6974
6975 2006-09-11  Chris Toshok  <toshok@ximian.com>
6976
6977         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
6978         button on various spots (including outside the menu) works closer
6979         to MS, and doesn't crash.  Fixes #79343.
6980
6981 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
6982
6983         * ListView.cs: Do not initialize item_sorter in init. To match MS,
6984         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
6985         and the internal comparer is set. When a new ListViewItemSorter is set,
6986         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
6987         was specified. No further processing is necessary if SortOrder is set
6988         to it's current value. If Sorting is modified to None, and View is
6989         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
6990         (either custom or our internal ItemComparer) to null, on 1.0 profile
6991         only set item_sorter to null if its our internal IComparer. If Sorting
6992         is modified to Ascending or Descending, then use our internal IComparer
6993         if none is set, and if the current IComparer is our internal one then:
6994         on 2.0 profile always replace it with one for new Sorting, and on 1.0
6995         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
6996         Enum.IsDefined to verify whether a valid View value is specified in
6997         its setter. Automatically sort listview items when listview is
6998         created. In Sort, do nothing if ListView is not yet created, or if
6999         no item_sorter is set (no Sorting was set, Sorting was explicitly set
7000         to None or ListViewItemSorter was set to null). Added Sort overload
7001         taking a bool to indicate whether the ListView should be redrawn when
7002         items are sorted (we use this in ListViewItemCollection to avoid double
7003         redraws). Modified our internal IComparer to take the sort order into
7004         account. In Add and AddRange methods of ListViewItemCollection, also
7005         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
7006         view), but use overload with noredraw option to avoid double redraw.
7007         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
7008         true when View is Tile, and do the same when attempting to set View to
7009         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
7010         for selected/checked indices, as it involves overhead when sorting is
7011         done while these collections are not used all that often. Instead
7012         we'll build the indices on demand. Modified IList implementation of
7013         CheckedIndexCollection to use public methods if object is int.
7014         Modified CheckedListViewItemCollection to hide checked items if
7015         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
7016         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
7017         IList implementation in SelectedIndexCollection to use public methods
7018         if object is int. Modified SelectedListViewItemCollection to hide
7019         selected items if listview is not yet created.
7020         * ListViewItem.cs: CheckedIndices list no longer needs to be
7021         maintained separately (see ListView changes). Also clone font, fixes
7022         test failure.
7023
7024 2006-09-11  Mike Kestner  <mkestner@novell.com>
7025
7026         * ComboBox.cs: if we are updating the contents of the currently
7027         selected index, refresh the control or the textbox selection.
7028         [Fixes #79066]
7029
7030 2006-09-11  Mike Kestner  <mkestner@novell.com>
7031
7032         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
7033         the 'specified' logic has been moved there.  This seems like a bug 
7034         in Control.cs, since our current SetBoundsCore completely ignores 
7035         the specified parameter.  Peter's commit seems to indicate that is 
7036         the way the MS control implementation works.  [Fixes #79325]
7037
7038 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
7039
7040         * XplatUI.cs: Set default_class_name to be composed
7041         of current domain id. This allows MWF to be loaded in multiple
7042         domains on Win32.
7043
7044 2006-09-09  Miguel de Icaza  <miguel@novell.com>
7045
7046         * X11Keyboard.cs: If we are unable to obtain the input method, do
7047         not call CreateXic to create the input context.   Should fix
7048         #78944/79276.
7049
7050 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
7051
7052         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
7053           Simplified gnome support by adding more pinvokes to get the
7054           icon for a file or mime type.
7055
7056 2006-09-08  Jackson Harper  <jackson@ximian.com>
7057
7058         * MenuAPI.cs: Deslect popup context menu items before closing the
7059         window, so that you don't see the previously selected item
7060         selected when you reopen the menu.
7061         * TextControl.cs: Update the cursor position even if we don't have
7062         focus.  This fixes typing in things like the ComboBox.  I'm not
7063         totally sure we should always set the visibility if we don't have
7064         focus, but couldn't find any corner cases where the cursor showed
7065         up when it shouldn't.
7066
7067 2006-09-08  Chris Toshok  <toshok@ximian.com>
7068
7069         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
7070         our arrays are length 256.  & 0xff before indexing.  Fixes the
7071         crash in bug #78077.
7072         
7073 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7074
7075         * ThemeWin32Classic.cs: 
7076         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
7077         is true. Handle that check box too.
7078
7079 2006-09-07  Chris Toshok  <toshok@ximian.com>
7080
7081         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
7082         79244.
7083
7084 2006-09-07  Chris Toshok  <toshok@ximian.com>
7085
7086         * Control.cs: in set_BackColor only do the work if
7087         background_color != value.
7088
7089         * XplatUIX11.cs: move the clearing of invalid areas (both client
7090         and nc) to the same block of code where we set (nc_)expose_pending
7091         to false.  That is, move it from PaintEventEnd to PaintEventStart,
7092         so things that cause invalidates from within OnPaint will trigger
7093         another call to OnPaint.  Fixes bug #79262.
7094
7095 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
7096
7097         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
7098         * FileDialog.cs: Fix typo
7099
7100 2006-09-07  Jackson Harper  <jackson@ximian.com>
7101
7102         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
7103         for tab pages if they have any.
7104
7105 2006-09-06  Mike Kestner  <mkestner@novell.com>
7106
7107         * Splitter.cs: use the "current" rect when finishing drag handle
7108         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
7109
7110 2006-09-06  Mike Kestner  <mkestner@novell.com>
7111
7112         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
7113         support offset splitters. [Fixes #79298]
7114
7115 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
7116
7117         * Mime.cs: Fixed a bug that could override the global mime type
7118           result.
7119
7120 2006-09-05  Jackson Harper  <jackson@ximian.com>
7121
7122         * TabControl.cs: Better calculation method for setting the slider
7123         pos. Prevents crashes on really wide tabs.
7124         - Draw Image on tab pages if an image list is used.
7125
7126 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7127
7128         * MonthCalendar.cs: When Font changes, the Size should be
7129         updated to fit the new font's space requirements.
7130
7131 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
7132
7133         * ListBox.cs: If the items are cleared with Items.Clear set
7134           top_index to 0.
7135
7136 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7137
7138         * MonthCalendar.cs: Handle arrow keys as input keys. Also
7139         fire DateChanged event instead of DateSelected event when
7140         the date was changed by keyboard interaction.
7141
7142 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7143
7144         * DateTimePicker.cs: Handle DateChanged for the associated
7145         month_calendar control, and set month_calendar.Font from 
7146         OnFontChanged method, as well as resize the height of the
7147         control when needed. Make PreferredHeight proportional.
7148
7149 2006-09-01  Chris Toshok  <toshok@ximian.com>
7150
7151         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
7152         properties.
7153
7154         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
7155
7156 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
7157
7158         * FileDialog.cs: Set ClientSize instead of window size, to allow space
7159           for decorations (Fixes #79219)
7160
7161 2006-09-01  Mike Kestner  <mkestner@novell.com>
7162
7163         * ComboBox.cs: first stab at sorting plus some selection handling
7164         fixes to bring us more in line with MS behavior.  Also switches back
7165         to index based selection.  Alternative patches for index-based 
7166         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
7167         and latency@gmx.de on bug 78848.  I assume they were similar to this
7168         code I've had simmering in my tree forever.
7169         [Fixes #78848]
7170
7171 2006-09-01  Chris Toshok  <toshok@ximian.com>
7172
7173         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
7174         when setting list position guard against ending up with a -1 index
7175         (the other part of the fix for #78812).  Should probably make sure
7176         we don't need the analogous fix in the ItemDeleted case.
7177
7178         * DataGrid.cs:
7179         - in SetDataSource, work around the fact that the way
7180         OnBindingContextChanged is invoked will cause us to re-enter this
7181         method.  I'll remove the hack once I investigate
7182         OnBindingContextChanged.
7183
7184         - fix the logic in set_DataSource and set_DataMember (basically
7185         what to do if the other of the two is null.)
7186         
7187         - in OnListManagerItemChanged, we need to take into account the
7188         edit row when deciding whether or not to call RecreateDataGridRows
7189         (part of the fix for #78812).
7190
7191 2006-09-01  Jackson Harper  <jackson@ximian.com>
7192
7193         * Splitter.cs: Don't do anything if there is no control to affect
7194         (prevents us from crashing in weird tet cases).
7195         * TreeView.cs: Bounding box for the mouse movement reverting
7196         focus/selection back to previously selected node.  This matches
7197         MS, and makes the tree a lot more useable.
7198         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
7199         use clipping so they are not drawn.  This fixes when the control
7200         is set to have a transparent background, or if it was over an
7201         image.
7202
7203 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
7204
7205         * MimeIcon.cs: Improved handling for reading default icons when
7206           using gnome (2.16 made it necessary). Check and read svg icons
7207           first, then 48x48 and then 32x32 icons.
7208
7209 2006-08-31  Chris Toshok  <toshok@ximian.com>
7210
7211         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
7212         visible.
7213
7214         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
7215         ProcessKeyPreview.  Fixes part of #77806.
7216
7217         * DataGrid.cs: big patch.
7218
7219         - revert the queueing up of DataSource/DataMember if inside
7220         BeginInit/EndInit calls.  That's not the way the datagrid achieves
7221         its delayed databinding.  Instead, call SetDataSource in
7222         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
7223         #78811.
7224
7225         - Also, it wasn't mentioned in #78811, but the test case exhibits
7226         behavior that was lacking in our datagrid implementation - Columns
7227         that have mapping names that don't exist in the datasource's
7228         properties aren't shown.  Yuck.  To fix this I added the bound
7229         field to the column style, and basically any calculation to figure
7230         out anything about columns uses a loop to find the bound columns.
7231         still need to investigate if I can cache an array of the bound
7232         columns or if the indices must be the same.
7233
7234         - When setting CurrentCell, we no longer abort if the cell being
7235         edited was in the add row.  This fixes the other part of #77806.
7236
7237         - The new code also fixes #78807.
7238         
7239         * ThemeWin32Classic.cs: perpetrate the same disgusting
7240         column.bound field hack, and only render bound fields.
7241
7242 2006-08-31  Chris Toshok  <toshok@ximian.com>
7243
7244         * DataGridColumnStyle.cs: add bound field.  this field is true if
7245         the datasource has a property corresponding to the mapping name.
7246
7247         * DataGridTableStyle.cs: set the bound field on the column styles
7248         depending on whether or not we have a column for that property.
7249
7250 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
7251
7252         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
7253           splitter control (fixes #79228)
7254
7255 2006-08-31  Chris Toshok  <toshok@ximian.com>
7256
7257         * DataGridColumnStyle.cs: we need to delay the assignment of
7258         property descriptor until the last possible moment due to the lazy
7259         databinding stuff in the datagrid.  Also, fix the exceptions
7260         thrown by CheckValidDataSource to match MS.
7261
7262 2006-08-31  Jackson Harper  <jackson@ximian.com>
7263
7264         * Form.cs: When activated select the active control, if there is
7265         no active control, we select the first control.
7266         * XplatUIX11.cs: If there is no focus control when we get a
7267         FocusIn event, find the toplevel form and activate it.  This
7268         occurs when you popup a window, it becomes the focus window, then
7269         you close that window, giving focus back to the main window.
7270
7271 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7272
7273         * MonthCalendar.cs: 
7274         * ThemeWin32Classic.cs: Cache Font in bold style, as well
7275         as StringFormat with Center alignments in MonthCalendar,
7276         instead of creating new ones when drawing the control. 
7277         Also, draw the month name in bold style.
7278
7279 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
7280
7281         * Control.cs:
7282           - PerformLayout(): It would seem MS performs the fill even if the 
7283             control is not visible (part of #79218 fix)
7284           - ResetBackColor(): Use the setter to reset the color, to allow
7285             overriders to catch the change.
7286         * Form.cs:
7287           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
7288           - CreateHandle(): dito (part of $79218 fix)
7289           - Don't set an icon if we have a dialog
7290         * ScrollableControl.cs:
7291           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
7292           - ScrollIntoView(): No need to scroll if control is already visible
7293             (resolves fixme and fixes #79218)
7294
7295 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7296
7297         * MonthCalendar.cs: Change proportions in SingleMonthSize
7298         to match the aspect of the original control.
7299
7300 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
7301
7302         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
7303           get updated when they get maximized.
7304
7305 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
7306
7307         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
7308
7309 2006-08-29  Chris Toshok  <toshok@ximian.com>
7310
7311         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
7312
7313 2006-08-29  Jackson Harper  <jackson@ximian.com>
7314
7315         * TreeView.cs: Need to track selected node and highlighted node,
7316         they aren't always the same thing, when the mouse is down on a
7317         node it is hilighted, but not selected yet.
7318         - Do the HideSelection stuff right
7319         - Need to focus on rbutton mouse down. And redraw selection when
7320         right click is mouse upped.
7321
7322 2006-08-29  Mike Kestner  <mkestner@novell.com>
7323
7324         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
7325         when SubItems.Count < Columns.Count.  [Fixes #79167]
7326
7327 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
7328
7329         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
7330
7331 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
7332
7333         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
7334           from X. Only send based on ConfigureNotify if we don't have the
7335           correct location in hwnd (if the window manager moved us)
7336
7337 2006-08-28  Mike Kestner  <mkestner@novell.com>
7338
7339         * ListView.cs: remove a TODO. 
7340         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
7341         [Fixes ListView part of #79166]
7342
7343 2006-08-28  Mike Kestner  <mkestner@novell.com>
7344
7345         * ListView.cs: move wheel handler to parent since it is focused
7346         instead of the item_control now.  [Fixes #79177]
7347
7348 2006-08-28  Mike Kestner  <mkestner@novell.com>
7349
7350         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
7351         when the control is focused. [Fixes #79171]
7352
7353 2006-08-28  Mike Kestner  <mkestner@novell.com>
7354
7355         * ListView.cs: size the item and header controls for empty and
7356         unscrollable views.
7357         * ThemeWin32Classic.cs: draw disabled backgrounds.
7358         [Fixes #79187]
7359
7360 2006-08-28  Chris Toshok  <toshok@ximian.com>
7361
7362         * Form.cs: remove unused "active_form" static field.
7363
7364         * Hwnd.cs: lock around accesses to static windows collection.
7365
7366         * Application.cs: lock threads in Exit ().
7367
7368 2006-08-28  Chris Toshok  <toshok@ximian.com>
7369
7370         * NativeWindow.cs: lock around accesses to window_collection.
7371         
7372 2006-08-28  Chris Toshok  <toshok@ximian.com>
7373
7374         * Control.cs: err, fix this the right way, by locking on controls
7375         when using it.  not by making it synchronized.
7376
7377 2006-08-28  Chris Toshok  <toshok@ximian.com>
7378
7379         * Control.cs: make the static "controls" field synchronized, as it
7380         gets updated from multiple threads.
7381
7382 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
7383
7384         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
7385           Prevent other threads from exiting when calling thread sets quit state.
7386         * XEventQueue.cs: Added PostQuitState property
7387
7388 2006-08-27  Chris Toshok  <toshok@ximian.com>
7389
7390         * AsyncMethodData.cs: add a slot for the window handle.
7391
7392         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
7393         window (the destination control's window, not the foster window).
7394
7395         * Control.cs (BeginInvokeInternal): store the window's handle in
7396         the AsyncMethodData.
7397         
7398
7399 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
7400
7401         * XplatUIX11.cs:
7402           - PostQuitMessage: Removed resetting S.D display handle, we might have
7403             another loop started after calling PostQuitMessage (Fixes #79119)
7404           - Created destructor to reset S.D handle
7405
7406 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
7407
7408         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
7409
7410 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
7411
7412         * TextControl.cs (Insert): Update the caret position even if we don't
7413           have a handle yet, just don't call the driver in that case.
7414         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
7415           to the end of the new selection text (Fixes #79184)
7416
7417 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
7418
7419         * Form.cs (Activate): Only activate if the handle is created)
7420         * Control.c:
7421           - Mark window as invisible when it's disposed
7422           - Check if window handle is created when setting window visible, 
7423             instead of relying just on the is_created variable
7424           - Check if object is disposed when creating the control (Fixes #79155)
7425
7426 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
7427
7428         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
7429           when allowing layout again. Otherwise we re-generate the anchoring 
7430           distance to the border again and actually alter what the user wanted
7431           This is ugly, it'd be better if we used DisplayRectangle instead of
7432           ClientRectangle for Control.UpdateDistances, but that causes us to
7433           have other problems (initial anchoring positons would be wrong)
7434           (Fixes #78835)
7435
7436 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
7437
7438         * Control.cs:
7439           - The size and location setters shouldn't go directly to 
7440             SetBoundsCore, but to SetBounds, which triggers layout on the
7441             parent, then calls SetBoundsCore. (Related to fix for #78835)
7442           - SetBounds: Moved actual location update code into this function
7443             from SetBoundsCore, to match MS. Added call to PerformLayout if
7444             we have a parent (to trigger resizing of anchored parents if the 
7445             child size has changed (see testcase for #78835) 
7446         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
7447           new control code
7448         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
7449
7450 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
7451
7452         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
7453           System.Drawing when a toplevel window gets closed; there might
7454           be other toplevel windows belonging to the same app (Fixes #78052)
7455
7456 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
7457
7458         * FileDialog.cs: After reading FileDialog settings from mwf_config
7459           use Desktop prefix only if a real folder doesn't exist anymore.
7460         * FontDialog.cs: Added char sets.
7461           It is now possible to select the font, size or style with the
7462           textboxes.
7463
7464 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
7465
7466         * PrintPreviewDialog.cs: Use assembly name constants.
7467
7468 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
7469
7470         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
7471           scrollbar from whacking it's buttons)
7472
7473 2006-08-24  Chris Toshok  <toshok@ximian.com>
7474
7475         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
7476         in this patch (aggregating setting Left/Top/Width/Height to
7477         setting Bounds on the scrollbars), but the crux of the fix is in
7478         Recalculate, where we scroll by the remaining scroll_position if
7479         we're hiding a scrollbar.  The 2*$5 reward in the comment is
7480         serious.
7481
7482 2006-08-24  Jackson Harper  <jackson@ximian.com>
7483
7484         * MdiClient.cs:
7485         * MdiWindowManager.cs: If the form is made a non-mdi window we
7486         need to remove the form closed event so that closing forms works
7487         correctly.
7488
7489 2006-08-24  Jackson Harper  <jackson@ximian.com>
7490
7491         * Control.cs: Make IsRecreating internal so that the driver can
7492         check it
7493         - Temporarily remove the Hide when controls are removed, its
7494         making a whole bunch of things not work because visibility isn't
7495         getting reset elsewhere correctly
7496         * Form.cs: Need to do a full handle recreation when the mdi parent
7497         is set.
7498         * XplatUIX11.cs: If we are recreating handles don't dispose the
7499         HWNDs.  What was happening is the handles were being recreated in
7500         SendWMDestroyMessages, but then flow continued on in that method
7501         and destroyed the new handles.
7502
7503 2006-08-23  Jackson Harper  <jackson@ximian.com>
7504
7505         * Form.cs: MdiClient is always at the back of the bus
7506         * Control.cs: When the order of items in the collection is changed
7507         we need to reset the all_controls array
7508         - do the same sorta setup thats done when adding a control when a
7509         control is set on the collection.
7510
7511 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
7512
7513         * TextBoxBase.cs (get_Text): Return an empty array if our document
7514           is empty (fixes #79052)
7515
7516 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
7517
7518         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
7519           on WM_SYSCHAR messages (fixes #79053)
7520
7521 2006-08-23  Chris Toshok  <toshok@ximian.com>
7522
7523         * DataGrid.cs: fix flickering when scrolling vertically.
7524
7525 2006-08-23  Chris Toshok  <toshok@ximian.com>
7526
7527         * DataGrid.cs (EndEdit): only invalidate the row header when we
7528         need to.
7529
7530 2006-08-23  Chris Toshok  <toshok@ximian.com>
7531
7532         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
7533         methods.  fixes the flicker when scrolling around.
7534
7535 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
7536
7537         * FileDialog.cs: Making sure the control is created before we get a 
7538           chance to use it with BeginInvoke (Fixes #79096)
7539
7540 2006-08-23  Chris Toshok  <toshok@ximian.com>
7541
7542         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
7543         width to use when painting the rows.
7544
7545 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
7546
7547         * TextBoxBase.cs:
7548           - Throw ArgumentException if a negative value is passed to SelectionLength
7549           - Update the selection end if start is moved. end needs to be always
7550             after start. (Fixes #79095)
7551           - Track selection length; MS keeps the selection length even if start
7552             is changed; reset on all other operations affection selection
7553
7554 2006-08-22  Jackson Harper  <jackson@ximian.com>
7555
7556         * TreeView.cs: Make sure both scrollbars get displayed and sized
7557         correctly when the other bar is visible.
7558         - Use the original clip rectangle for checking if the area between
7559         the two scrollbars is visible, not the viewport adjusted clipping
7560         rectangle.
7561
7562 2006-08-22  Jackson Harper  <jackson@ximian.com>
7563
7564         * Binding.cs: We don't use IsBinding because it requires the
7565         control to be created, which really shouldn't be necessary just to
7566         set a property on the control.
7567
7568 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7569
7570         * ComboBox.cs: Some CB.ObjectCollection methods must throw
7571         ArgumentNullReferenceException when the argument is null.
7572
7573 2006-08-21  Jackson Harper  <jackson@ximian.com>
7574
7575         * Timer.cs: Track the thread that the timer is started in (NOT
7576         CREATED), this way messages for it will only be triggered on its
7577         queue.
7578         * XEventQueue.cs: Track the timers here, this makes timers per
7579         thread, like MS.
7580         * XplatUIX11.cs: The timers are moved to the XEventQueue.
7581
7582 2006-08-19  Chris Toshok  <toshok@ximian.com>
7583
7584         * XplatUIX11.cs: after further communication with pdb, we get the
7585         best of both worlds.  SetZOrder working for un-Mapped windows, and
7586         no X errors for un-mapped windows.
7587
7588 2006-08-19  Chris Toshok  <toshok@ximian.com>
7589
7590         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
7591         as it was causing pdn toolbars to not have the correct stacking.
7592
7593 2006-08-18  Mike Kestner  <mkestner@novell.com> 
7594
7595         * ListView.cs : guard against negative ClientArea.Width in scrollbar
7596         calculation.  Not sure why control should ever be setting a negative
7597         width though.  Fixes #78931.
7598
7599 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7600
7601         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
7602         null items in ObjectCollection class.
7603         * ListBox.cs.: Likewise.
7604
7605 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
7606
7607         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
7608           as the base method in ThemeWin32Classic should work fine.
7609           Fixed bug #78607.
7610
7611 2006-08-18  Jackson Harper  <jackson@ximian.com>
7612
7613         * Binding.cs: When validating if the value entered doesn't convert
7614         properly reset to the old value.
7615         * RadioButton.cs: Don't fire click when we get focus.
7616
7617 2006-08-18  Jackson Harper  <jackson@ximian.com>
7618
7619         * FileDialog.cs: Paint the selection on the directory combobox the
7620         same way as on MS. 
7621
7622 2006-08-17  Jackson Harper  <jackson@ximian.com>
7623
7624         * ErrorProvider.cs: Don't allow the error control to be selected.
7625         * Control.cs: Don't send the SetFocus messages, the control
7626         activation will do this, and if we do it blindly here validation
7627         does not work.
7628
7629 2006-08-17  Jackson Harper  <jackson@ximian.com>
7630
7631         * Control.cs:
7632         * ContainerControl.cs: Make validation events fire in the correct
7633         order.  TODO: For some reason the first validation event is not
7634         getting fired.
7635
7636 2006-08-17  Mike Kestner  <mkestner@novell.com> 
7637
7638         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
7639
7640 2006-08-17  Mike Kestner  <mkestner@novell.com> 
7641
7642         * ComboBox.cs : implement scroll wheel support for popped-down
7643         state. Fixes #78945. 
7644
7645 2006-08-17  Jackson Harper  <jackson@ximian.com>
7646
7647         * TreeView.cs: Specify treeview actions (old patch that didn't get
7648         committed for some reason).
7649         - Don't let the mouse wheel scroll us too far.  Just want to make
7650         the bottom node visible, not scroll it all the ways to the top.
7651
7652 2006-08-17  Jackson Harper  <jackson@ximian.com>
7653
7654         * XplatUIX11.cs: Mouse wheel events go to the focused window.
7655
7656 2006-08-17  Mike Kestner  <mkestner@novell.com> 
7657
7658         * ComboBox.cs : don't do mouseover selection in simple mode.
7659
7660 2006-08-16  Jackson Harper  <jackson@ximian.com>
7661
7662         * Form.cs: Fire the closing events for all the mdi child windows
7663         when a window is closed.  If the cancel args are set to true, the
7664         main window still gets the event fired, but it doesn't not close.
7665         * MdiWindowManager.cs: Do this closing cleanup in a Closed
7666         handler, instead of when the button is clicked, so cancelling the
7667         close works correctly.
7668         * ComboBox.cs: Send the mouse down to the scrollbar.
7669
7670 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7671
7672         * ListBox.cs: When passing 'null' to SelectedItem,
7673         set SelectedIndex to -1, to unselect items. This is the
7674         observed behaviour in .Net.
7675
7676 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
7677
7678         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
7679           MS flags saying there won't be any. (fixes #78800)
7680         * Control.cs (HandleClick): Made virtual
7681
7682 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
7683
7684         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
7685           cultures. Fixed bug #78399.
7686
7687 2006-08-16  Jackson Harper  <jackson@ximian.com>
7688
7689         * Form.cs: Use the MdiClients MdiChildren property to access
7690         MdiChildren instead of creating the array from the child controls.
7691         * MdiClient.cs: Maintain a separate array of the mdi children, so
7692         that insertion order is maintained when the Z-order is changed.
7693
7694 2006-08-16  Mike Kestner  <mkestner@novell.com> 
7695
7696         * ListView.cs : add an ItemComparer and default to it for sorting.
7697         Fixes #79076, but sorting needs a complete overhaul to be compat with
7698         MS.
7699
7700 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
7701
7702         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
7703
7704 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7705
7706         * Hwnd.cs (Mapped): Properly traverse the tree
7707
7708 2006-08-15  Chris Toshok  <toshok@ximian.com>
7709
7710         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
7711         pass manager.Current.GetType() to ParseData.  It has to be the
7712         property type.  So, hold off doing the ParseData until we're in
7713         SetPropertyValue where we know the type.  This fixes the crash in
7714         #78821 but the textbox is still empty.
7715
7716 2006-08-15  Chris Toshok  <toshok@ximian.com>
7717
7718         * DataGrid.cs:
7719         - when we're scrolling, only call Edit() again if the
7720         current cell is still unobscured. Fixes bug #78927.
7721         - when handling mousedown on a cell, ensure the cell is visible
7722         before calling Edit.
7723         - remove the properties from DataGridRow, and remove the
7724         DataGridParentRow class altogether.
7725         
7726
7727 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7728
7729         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
7730           fire OnTextChanged by ourselves. There's no point calling base,
7731           we don't set the base value anywhere else. Fixes #78773.
7732
7733 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7734
7735         * ListBox.cs: Call CollectionChanged when modifying
7736         an item from Items indexer, to update the actual items
7737         in the list box.
7738
7739 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7740
7741         * PrintDialog.cs: Small fixes for focus and a pair of checks,
7742         to match .Net behaviour.
7743
7744 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7745
7746         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
7747
7748 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
7749
7750         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
7751
7752 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7753
7754         * MessageBox.cs: Prevent potential NRE exception.
7755         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
7756
7757 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
7758
7759         * MessageBox.cs: Calculate the owner of a messagebox, also make
7760           it topmost. Fixes #78753
7761
7762 2006-08-14  Chris Toshok  <toshok@ximian.com>
7763
7764         * XplatUIX11.cs: A couple of fixes so that metacity will let us
7765         programmatically move windows.  first, set the PPosition hint as
7766         well as the USPosition hint.  Second include some code from pdb
7767         that sets the window type to NORMAL when we set the transient for
7768         hint.  This is because, in the absence of a window type, metacity
7769         thinks any window with TransientFor set is a dialog, and refuses
7770         to let us move it programmatically.  fascists.
7771
7772 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
7773
7774         * XplatUIX11.cs: When setting normal hints, take into consideration
7775           an different hints previously set so we don't delete them (fixes #78866)
7776
7777 2006-08-12  Chris Toshok  <toshok@ximian.com>
7778
7779         * ToolBarButton.cs: make Layout return a boolean, if something to
7780         do with the button's layout changed.
7781
7782         * ToolBar.cs:
7783         - add another parameter to Redraw, @force, which all existing
7784           calls set to true.
7785         - make the Layout function return a boolean which is true if the
7786           layout has actually changed.  Redraw now uses this (and @force)
7787           to determine when to invalidate.  At present the only place
7788           where @force can be false is the call from OnResize, when
7789           background_image == null.  So, resizing a toolbar when the
7790           layout doesn't change results in no drawing.
7791
7792 2006-08-12  Chris Toshok  <toshok@ximian.com>
7793
7794         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
7795         the VScrollBar and HScrollbar reversed.  oops.
7796
7797         * DataGrid.cs: fix the logic that assigns sizes to the implicit
7798         scrollbars.  we were assigning them twice (once in
7799         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
7800         therefore causing two scrollbar resizes (and redraws?) to happen
7801         per grid resize.
7802
7803 2006-08-12  Chris Toshok  <toshok@ximian.com>
7804
7805         * ToolBarButton.cs: redraw the entire button if the theme tells us
7806         to.
7807
7808         * Theme.cs: add ToolBarInvalidateEntireButton.
7809
7810         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
7811         buttons, just the border.
7812
7813         * ThemeNice.cs: redraw the entire toolbar button since we need to
7814         draw the highlight image.
7815
7816         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
7817         we need to redraw the entire button (not just the border).
7818
7819 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
7820
7821         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
7822           for vertical bars. Fixes the mismatches shown by #78513
7823
7824 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
7825
7826         * FileDialog.cs: If a saved/remembered path doesn't exist
7827           anymore, fall back to "Desktop".
7828
7829 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
7830
7831         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
7832           parent. It's apparently legal to not have one
7833         * XplatUIX11.cs:
7834           - SetZOrder: Don't try to set Z-Order on an unmapped window
7835           - CreateWindow: 0,0 are legal coordinates for a window. don't move
7836             it unless the coordinates are negative
7837
7838 2006-08-10  Mike Kestner  <mkestner@novell.com>
7839
7840         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
7841         when setting to null per msdn docs.  Fixes #78854.
7842
7843 2006-08-10  Chris Toshok  <toshok@ximian.com>
7844
7845         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
7846         flickering by setting a clip rectangle on the Graphics when we
7847         need to redraw just a particular menuitem.  Also, rename "OnClick"
7848         to "OnMouseDown" to reflect what it actually is.
7849         
7850         * Form.cs: track the OnMouseDown change.
7851
7852 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
7853
7854         * CommonDialog.cs: Properly inherit the CreateParams from the form
7855           and only change what we need. Fixes #78865
7856
7857 2006-08-10  Chris Toshok  <toshok@ximian.com>
7858
7859         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
7860         flickering in flat mode (and most of the flickering in general) by
7861         only invalidating the button border (and not the entire rectangle)
7862         when the state changes.  A couple of cases still flicker:
7863         ToggleButtons, and the dropdown arrow case when the user mouse
7864         ups.
7865
7866 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
7867
7868         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
7869           for german keyboards. Numlock state shouldn't affect the behaviour
7870           of the Del key. Fixes bug #78291.
7871
7872 2006-08-10  Chris Toshok  <toshok@ximian.com>
7873
7874         * ListControl.cs: remove the items.Clear line from BindDataItems,
7875         as this is the first thing done by both subclasses in their
7876         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
7877         passed -1, refresh the list.  This gets databinding working when
7878         the datasource is set on the list before the datasource is
7879         populated (as in wf-apps/ReportBuilder.)
7880
7881         * ComboBox.cs: remove the argument to BindDataItems.  This call
7882         should really go away, and be initiated by the ListControl code.
7883
7884         * ListBox.cs: same.
7885
7886 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
7887
7888         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
7889           if no data is in the document when the control is displayed
7890
7891 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
7892
7893         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
7894           yes (fixes #78806)
7895         * TextControl.cs: 
7896           - PositionCaret: Allow positioning of caret but don't call methods 
7897             requiring a handle if the window isn't created yet
7898           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
7899           - owner_HandleCreated: Don't position the caret, just update it's 
7900             location. User might have already set a different position
7901
7902 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
7903
7904         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
7905           windows. Screws up the returned coordinates for child windows. 
7906           Fixes #78825. I'm hoping this doesn't break something, since the
7907           code was explicitly put in 8 months ago, but no bug was attached.
7908           Menus still seem to work properly.
7909
7910 2006-08-08  Chris Toshok  <toshok@ximian.com>
7911
7912         * DataGrid.cs: make BeginInit/EndInit actually do what they're
7913         supposed to do - delay data binding until the EndInit call.  Also,
7914         make the table style collection's CollectionChangeAction.Refresh
7915         work properly.
7916
7917         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
7918         (with action = Refresh) when a consituent table's MappingName is
7919         changed.
7920
7921 2006-08-08  Chris Toshok  <toshok@ximian.com>
7922
7923         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
7924         Invalidate, since changing the text can change the size of the all
7925         toolbar buttons.
7926
7927 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
7928
7929         * Form.cs (AddOwnedForm): Still need to add the form to our listif
7930           we don't have it yet
7931
7932 2006-08-08  Chris Toshok  <toshok@ximian.com>
7933
7934         * PrintControllerWithStatusDialog.cs: don't .Close() the status
7935         dialog, as this causes X errors later on, since we actually
7936         destroy the window.  Instead, .Hide() it.
7937
7938 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
7939
7940         * ComboBox.cs: Added focus reflection for popup window
7941         * XplatUIX11.cs: 
7942           - Removed transient setting for non-app windows for now, not sure it
7943             was needed
7944           - Fixed logic checking if we have captions when deciding 
7945             override_redirect, WS_CAPTION is two bits and a 0 check was not
7946             sufficient
7947           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
7948             complicated
7949         * Form.cs: 
7950           - AddOwnedForm: Don't just add the form to the list, call the property
7951             to ensure the driver is informed about the ownership as well
7952           - CreateHandle: Set the TopMost status in the driver if we have an owner
7953         * XplatUI.cs: Fixed debug statement
7954
7955 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
7956         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
7957           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
7958           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
7959           TrackBarRenderer.cs: Make constructor private.
7960         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
7961         * ProfessionalColorTable.cs: Make properties virtual.
7962
7963 2006-08-06  Duncan Mak  <duncan@novell.com>
7964
7965         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
7966         is not changing.
7967
7968 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
7969         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
7970           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
7971           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
7972           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
7973           Initial import of new 2.0 classes.
7974
7975 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
7976         * Application.cs: Add 2.0 VisualStyles properties.
7977
7978 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
7979         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
7980           XplatUIX11.cs: Create property to allow access to existing private
7981           variable "themes_enabled"
7982
7983 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7984
7985         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
7986         file size, as otherwise our class libraries fail using windows. Fixes
7987         bug #78759.
7988
7989 2006-08-04  Jackson Harper  <jackson@ximian.com>
7990
7991         * Form.cs:
7992         * XplatUIX11.cs: Move the toolwindow window manager creation into
7993         the X11 driver, this way on win32 we can let windows create/handle
7994         the toolwindows.
7995
7996 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7997
7998         * PrintDialog.cs: Remove some redundant checks, add some others,
7999         clean some code, and move the focus to the text boxes when the
8000         values are incorrect.
8001
8002 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
8003
8004         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
8005
8006 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
8007
8008         * NumericUpDown.cs: Setting the Minimum and Maximum is now
8009           handled correctly. Fixes bug #79001.
8010
8011 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8012
8013         * PrintDialog.cs: The "Copies" numeric up down must have
8014         set the Minimum property to 1; only if the value is bigger
8015         than 1, activate "Collate" check box. This is the behaviour of .Net.
8016         Also modify the Document elements only if it is not null.
8017
8018 2006-08-03  Jackson Harper  <jackson@ximian.com>
8019
8020         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
8021         length. (We have a larger array then actual node count).
8022                 
8023 2006-08-03  Jackson Harper  <jackson@ximian.com>
8024
8025         * ComboBox.cs: Don't show selection by default.
8026         - The SelectAll isn't needed here, since the focus code should do
8027         that
8028         - DDL style lists to manual selection drawing, so when they
8029         get/lose focus they have to invalidate.
8030
8031 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
8032
8033         * TextBoxBase.cs: Don't always show all selections by default.
8034
8035 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
8036         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
8037           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
8038           Fixed various typos.
8039
8040 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
8041
8042         * Control.cs: Removing the controls in a ControlCollection with
8043           Clear now hides the controls as expected. Fixes bug #78804. 
8044
8045 2006-08-03  Jackson Harper  <jackson@ximian.com>
8046
8047         * Control.cs: Revert previous focus patch, it breaks reflector.
8048
8049 2006-08-03  Jackson Harper  <jackson@ximian.com>
8050
8051         * ComboBox.cs: Cleanup selection and focus with the combobox.
8052         This also eliminates some duplicated keyboard code, since now
8053         everything is handled by the main class.
8054         - Make list selection work on mouse up instead of down, to match
8055         MS.
8056
8057 2006-08-02  Jackson Harper  <jackson@ximian.com>
8058
8059         * Control.cs: Setting focus needs to go through the whole
8060         selection mechanism.
8061
8062 2006-08-02  Chris Toshok  <toshok@ximian.com>
8063
8064         * PrintPreviewDialog.cs: change MinimumSize to use
8065         base.MinimumSize so it works.
8066
8067 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
8068
8069         * TextControl.cs:
8070           - UpdateCaret: Added sanity check in case caret isn't defined yet
8071           - Line.Delete: Now updating selection and caret markers if we're
8072             transfering a node (Properly fixes #78323)
8073           - SetSelectionEnd: Added sanity check
8074         * TextBoxBase.cs: Removed broken attempt to fix #78323
8075
8076 2006-08-01  Chris Toshok  <toshok@ximian.com>
8077
8078         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
8079         Close() call is handled in Form, not here.
8080
8081 2006-08-01  Chris Toshok  <toshok@ximian.com>
8082
8083         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
8084         layout/rendering.
8085
8086         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
8087         for sizes < 100% zoom.  The code now aggressively attempts to keep
8088         from calling document.Print (), and tries not to use the scaling
8089         g.DrawImage whenever possible (it still does if you scale to >
8090         100%, since usually that involves huge images).
8091
8092         * PrintPreviewControl.cs: hook up the close button.
8093
8094 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
8095         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
8096           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
8097           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
8098           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
8099           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
8100           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
8101           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
8102           Removed [Serializable] for 2.0 Event Handlers.
8103
8104 2006-07-31  Jackson Harper  <jackson@ximian.com>
8105
8106         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
8107         * TextControl.cs: Uncomment out the body of this method.
8108
8109 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
8110
8111         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
8112           standard cursors.
8113
8114 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
8115
8116         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
8117           that embed TextBox and need selections visible even if textbox is not
8118           focused to enforce that behaviour.
8119         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
8120           selection drawing
8121
8122 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
8123
8124         * TextControl.cs:
8125           - Added new SetSelectionStart/SetSelectionEnd overloads
8126           - Fixed viewport width assignment to be accurate
8127           - Adjusted alignment line shift calculations to allow cursor on right
8128             aligned lines to be always visible at the right border (like MS)
8129         * TextBoxBase.cs:
8130           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
8131           - TextBoxBase_SizeChanged: recalculating canvas on size changes
8132           - CalculateScrollBars: Use ViewPort size instead of window size, to
8133             properly consider space occupied by the border and scrollbars 
8134             (Fixes #78661)
8135           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
8136             calculations; no longer leaves artifacts
8137           - CaretMoved: Adjusted window scrolling to match MS and fixed several
8138             calculation bugs (Still missing right/center align calculations)
8139
8140 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
8141
8142         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
8143           use of both scroll rect and clip rect, as they do the same.
8144
8145 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
8146
8147         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
8148           in the event handler (fixes #78912)
8149
8150 2006-07-31  Chris Toshok  <toshok@ximian.com>
8151
8152         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
8153         grid.ListManager.Count, since grid.ListManager might be null.
8154         This of course begs the question "why are we drawing rows for a
8155         grid with no list manager (and therefor no rows)?"  Fixes the
8156         crash in bug #78929.
8157
8158 2006-07-31  Chris Toshok  <toshok@ximian.com>
8159
8160         * RelatedPropertyManager.cs: Don't always chain up to the parent
8161         ctor.  instead, call SetDataSource if the parent's position is !=
8162         -1.  Fixes the crash in #78822.
8163
8164 2006-07-31  Chris Toshok  <toshok@ximian.com>
8165
8166         * DataGrid.cs (get_ListManager): use field instead of property
8167         accessors for datasource and datamember.
8168         (RowsCount): make internal again.
8169         (OnMouseDown): end edits before resizing columns/rows.
8170         (OnMouseUp): restart edits after resizing columns/rows.
8171
8172 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
8173
8174         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
8175           This fixes the situation where the last set cursor is displayed
8176           whenever the mouse is over scrollbars.
8177
8178 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8179
8180         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
8181         Document properties, as well as initial values.
8182
8183 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
8184
8185         * XplatUIWin32.cs (SetBorderStyle): Setting both border
8186           and ClientEdge results in a 3-pixel border, which is
8187           wrong.
8188
8189 2006-07-28  Jackson Harper  <jackson@ximian.com>
8190
8191         * TreeNodeCollection.cs: Fix the clear method.
8192         - Fix the Shrink also
8193
8194 2006-07-27  Jackson Harper  <jackson@ximian.com>
8195
8196         * TreeView.cs: Make sure the visible order is computed when we
8197         attempt to size the scrollbars (for trees that mess with the
8198         scrolling when they shouldn't.
8199         - Make sure to give the scrollbars valid values.
8200
8201 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
8202
8203         * XplatUIX11.cs: Move motion compression code to where it
8204           has less performance impact
8205
8206 2006-07-26  Jackson Harper  <jackson@ximian.com>
8207
8208         * UpDownBase.cs: When the control is selected make the child
8209         controls non selectable, so that a click on them won't do a
8210         focus/unfocus cycle.
8211         - Don't give focus to the text box when the spinner is selected.
8212         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
8213
8214 2006-07-26  Chris Toshok  <toshok@ximian.com>
8215
8216         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
8217         satisfied with this solution.  If the bitmaps are small, we should
8218         just cache them in the PrintPreviewDialog and draw them here.
8219         Also, the layout is broken for the 2-up and 3-up cases.
8220
8221         * Theme.cs: add PrintPReviewControlPaint.
8222
8223         * PrintPreviewDialog.cs: first pass implementation.
8224
8225         * PrintPreviewControl.cs: first pass implementation.  No
8226         scrollbars yet.
8227
8228         * PrintDialog.cs: only validate fields if that particular portion
8229         of the UI is enabled.  Also, set the document's controller to a
8230         PrintControllerWithStatusDialog wrapping the document's print
8231         controller.
8232
8233         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
8234         bring up a SaveFileDialog (i hope we don't want to match the
8235         behavior of the crappy windows file entry) and set the
8236         PrinterSettings.PrintFileName accordingly.
8237
8238 2006-07-26  Jackson Harper  <jackson@ximian.com>
8239
8240         * ContainerControl.cs: Add a field that disables auto selecting
8241         the next control in a container when the container is activated.
8242         * UpDownBase.cs: Don't select the text box when the up down is
8243         selected.
8244
8245 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
8246
8247         * XEventQueue.cs: Added methods for peeking (used for compression
8248           of successive events)
8249         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
8250           mouse move events (fixes #78732)
8251
8252 2006-07-25  Jackson Harper  <jackson@ximian.com>
8253
8254         * UpDownBase.cs: Use an internal class for the textbox so that we
8255         can control focus.  the updown control should always have focus,
8256         if either the text area or the buttons are clicked.
8257         - Send the key messages to the textbox, since it never actually
8258         has focus
8259         - Activate and decativate the textbox caret.
8260
8261 2006-07-24  Jackson Harper  <jackson@ximian.com>
8262
8263         * Control.cs: Use the directed select when selecting a control,
8264         this way the container controls override will get called and the
8265         whole ActiveControl chain will get triggered.  TODO: probably need
8266         to make sure this gets done everywhere instead of the old
8267         Select(Control).
8268         * ContainerControl.cs: Implement the directed Select method to
8269         find and activate the correct child control.    
8270         
8271 2006-07-22  Mike Kestner  <mkestner@novell.com>
8272
8273         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
8274         menu handling code so that clicks without a grab work too.
8275         [Fixes #78914]
8276
8277 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
8278
8279         * FileDialog.cs: Enable the BackButton when dirstack has one element.
8280           Added some small optimizations.
8281
8282 2006-07-21  Matt Hargett  <matt@use.net>
8283
8284         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
8285
8286 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
8287
8288         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
8289           tests pass and match MS in some strange border cases.
8290
8291 2006-07-21  Chris Toshok  <toshok@ximian.com>
8292
8293         * ThemeWin32Classic.cs: handle drawing of the relation links and
8294         parent row buttons.
8295
8296         * Theme.cs: change args to DataGridPaintParentRow.
8297
8298         * DataGrid.cs: Don't use controls for the relation links and
8299         parent buttons, so we have to handle all their interactions in
8300         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
8301         when we're navigating through child tables, so we can reinstate
8302         selection, expanded state, current cell, etc.
8303
8304 2006-07-20  Chris Toshok  <toshok@ximian.com>
8305
8306         * ToolBar.cs: When we redraw a button, for whatever reason,
8307         there's no reason to redraw the entire toolbar.  Also, don't call
8308         Control.Refresh from within Redraw, as it's much heavier than
8309         Invalidate (which is really what we want).
8310
8311 2006-07-20  Chris Toshok  <toshok@ximian.com>
8312
8313         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
8314         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
8315         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
8316         traces from within a debug IBindingList datasource
8317         (in mono/winforms/datagrid) for *days*, I've finally gotten things
8318         to work in a similar fashion.
8319
8320 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8321
8322         * ListBox.cs: Don't call Sort () when setting 
8323         the Sorted property to false (avoid an unnecessary sort).
8324
8325 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8326
8327         * ListControl.cs: DataSource should throw an ArgumentException
8328         instead of a normal exception when the argument is not of the 
8329         correct type.
8330
8331 2006-07-20  Mike Kestner  <mkestner@novell.com>
8332
8333         * Control.cs: add InternalPreProcessMessage to allow us to steal
8334         key events before MWF gets its paws on them.  Adapted from a
8335         suggestion by eno.
8336         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
8337         up/down/left/right navigation. Override the new internal control
8338         method to steal the events since they never make it to WndProc.
8339         * ToolBarButton.cs: don't worry about pushed when setting hilight
8340         since the drawing code prefers pushed to hilight. Invalidate on 
8341         Hilight changes. Fixes #78547 and #78525.
8342
8343 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
8344
8345         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
8346           the canvas size. Fixes #78868
8347
8348 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
8349
8350         * Splitter.cs: Track requested split position until first layout
8351           is performed. Fixes #78871
8352
8353 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
8354
8355         * Application.cs: Removed code that forces 1.x for the version
8356           number if the version started with 0. Not sure why that code was
8357           there and I couldn't find any bugs that indicated we needed it.
8358           Fixes #78869
8359
8360 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
8361
8362         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
8363           ResetDefaults(), just write some output to the console until it's
8364           implemented. Fixes bug #78907 for now. Eliminated two warnings.
8365
8366 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
8367
8368         * PropertyGridView.cs: set StartPosition of drop down forms
8369         so they appear in correct initial spot.  Fixes #78190.
8370
8371 2006-07-19  Mike Kestner  <mkestner@novell.com>
8372
8373         * ThemeWin32Classic.cs: use parent background color when drawing
8374         flat toolbars.  Restructure the conditionals to make sure non-flat
8375         non-Divider toolbars are filled too.  Fixes #78837.
8376
8377 2006-07-19  Mike Kestner  <mkestner@novell.com>
8378
8379         * ListBox.cs: Sort on collection changes even if the handle
8380         isn't created yet.  Fixes #78813.
8381
8382 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8383
8384         * ListControl.cs: DisplayMember should never be null,
8385         and now we assign String.Empty when null is passed to it (this
8386         is the .Net way).
8387
8388 2006-07-17  Mike Kestner  <mkestner@novell.com>
8389
8390         * ListViewItem.cs: restructure Font and subitem Font handling 
8391         to hold a specific font and refer back to owner on null.
8392         Fixes #78761.
8393
8394 2006-07-17  Mike Kestner  <mkestner@novell.com>
8395
8396         * ToolBar.cs: bandaid for side-effect of previous patch which was
8397         discarding explicit heights for non-AutoSize toolbars.  Need to
8398         extend my format tester to deal with AutoSize=false. Fixes #78864.
8399
8400 2006-07-15  Jackson Harper  <jackson@ximian.com>
8401
8402         * LabelEditTextBox.cs:
8403         * TreeView.cs: Use a new LabelEdit class for node editing, this
8404         class automatically 'closes' itself when it gets the enter key or
8405         loses focus.
8406         - Use the client rectangle when setting the trees scrollbars, so
8407         border style is taken into account.
8408         
8409 2006-07-14  Jackson Harper  <jackson@ximian.com>
8410
8411         * TreeNode.cs:
8412         * TreeView.cs: Make the editing work similar to MSs, firing the
8413         events correctly and ending edits correctly.
8414
8415 2006-07-14  Mike Kestner  <mkestner@novell.com>
8416
8417         * ToolBarButton.cs:
8418         * ToolBar.cs: layout restructuring and redraw enhancements to support
8419         formatting changes gracefully, like setting TextAlign, ImageList, 
8420         ButtonSize, and Appearance.  Handles explicit button sizing quirks
8421         of the MS controls.  Things like flat toolbars ignoring button size
8422         but becoming constant sized at the largest button's size.  Normal
8423         toolbars with an image set cannot be shrunk smaller than the image,
8424         but text can be clipped/ignored.
8425         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
8426         is zero.  Seems like DrawString should be smart enough to not put
8427         anything on screen though. Also trim labels and ellipsize at the char
8428         boundary, not word.
8429         Fixes #78711 and #78483.
8430
8431 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
8432
8433         * FolderBrowserDialog.cs: Disable "New Folder" button and
8434           "New Folder" contextmenu menuitem if a folder like "My Computer"
8435           is selected.
8436
8437 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
8438
8439         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
8440         * FolderBrowserDialog.cs:
8441           - Use MWFConfig to store and read size and position settings
8442           - Added code to create a new folder (button or context menu).
8443             Use TreeView labeledit to change the name of the new folder.
8444
8445 2006-07-14  Jackson Harper  <jackson@ximian.com>
8446
8447         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
8448         when the tree is scrolled we end editing.
8449
8450 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
8451
8452         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
8453           Down arrows
8454
8455 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
8456
8457         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
8458         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
8459         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
8460         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
8461         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
8462         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
8463         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
8464         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
8465         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
8466         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
8467         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
8468         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
8469         ListViewItemSelectionChangedEventHandler.cs,
8470         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
8471         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
8472         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
8473         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
8474         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
8475         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
8476         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
8477         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
8478         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
8479         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
8480         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
8481         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
8482         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
8483         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
8484         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
8485         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
8486         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
8487         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
8488         WebBrowserNavigatingEventHandler.cs, 
8489         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
8490
8491 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
8492
8493         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
8494         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
8495         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
8496         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
8497         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
8498         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
8499         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
8500         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
8501         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
8502         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
8503         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
8504         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
8505         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
8506         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
8507         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
8508         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
8509         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
8510         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
8511         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
8512         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
8513         ListViewItemStates.cs, MaskFormat.cs: Added
8514
8515 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
8516
8517         * PropertyGridView.cs: Fix keyboard navigation of drop down.
8518         Patch from eno for bug 78558.
8519         
8520 2006-07-13  Jackson Harper  <jackson@ximian.com>
8521
8522         * TreeView.cs: When an edit is finished make sure that the
8523         selected node is visible.
8524         - When setting the top/bottom use the scrollbars is_visible, so
8525         everything will be set correctly even if the tree isn't visible
8526         yet.
8527
8528 2006-07-13  Jackson Harper  <jackson@ximian.com>
8529
8530         * ComboBox.cs: Revert the item->index part of my previous patch.
8531         * TreeView.cs: Use LostFocus instead of Leave for detecting when
8532         the edit box has lost focus (duh).
8533         - Just make the edit box not visible when we get return, that will
8534         take the focus, which will call EndEdit
8535         * TreeNode.cs When we start editing, notify the treeview.
8536
8537 2006-07-12  Jackson Harper  <jackson@ximian.com>
8538
8539         * ComboBox.cs: Clear out old items before setting the item list.
8540         This prevents databound controls from having their items added
8541         twice.
8542         - Switch the combobox to use indices whereever possible instead of
8543         using Item's.  This allows usto navigate through lists that have
8544         more then one item with the same string value (ie a, b, b, a).
8545         - Scroll the listboxes scrollbar when a non visible item is
8546         highlighted
8547         - Allow keypress to cycle through all the possible values. For
8548         example if you have b1, b2, b3 and hold down the B key all the
8549         values will be cycled through.
8550         
8551 2006-07-12  Jackson Harper  <jackson@ximian.com>
8552
8553         * TextBoxBase.cs:
8554         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
8555         this using the internal methods.
8556         * Control.cs: Add OnGotFocusInternal.  A new method that allows
8557         controls to "override" OnGotFocus and change focus behavior if
8558         needed.
8559         - Same thing for LostFocus
8560         * ComboBox.cs: Pass off focus to the text control properly.
8561
8562 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
8563
8564         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
8565         * FolderBrowserDialog.cs: Almost a complete rewrite.
8566           - Better support for Environment.Specialfolders
8567           - Added support for MWFVFS
8568           - Made setting SelectedPath work
8569
8570 2006-07-12  Jackson Harper  <jackson@ximian.com>
8571
8572         * Control.cs: Optimze getting all the controls.
8573
8574 2006-07-11  Jackson Harper  <jackson@ximian.com>
8575
8576         * ContainerControl.cs: Override SETFOCUS in the container control,
8577         so that it is not selected on mouse click.
8578
8579 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
8580
8581         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
8582           Hopefully we will have a better way once all of focus is complete.
8583
8584 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
8585
8586         * ThemeWin32Classic.cs: Commented out some debug code and fixed
8587           a compile error with csc.
8588
8589 2006-07-11  Jackson Harper  <jackson@ximian.com>
8590
8591         * Control.cs: When hiding a control only select the next control
8592         if the current control was focused.
8593         - Don't handle enter/leave when setting/killing focus, this is
8594         done by the container control.
8595         - Remove is_selected, it's not needed anymore.
8596         - Add utility methods for selecting a child control, and for
8597         firing the Enter/Leave events.
8598         * ContainerControl.cs: When a control is activated fire the
8599         enter/leave events.
8600         - Don't wrap when processing the tab key, so that focus can be
8601         moved outside of the container.
8602         - Use the correct active control
8603
8604 2006-07-11  Jackson Harper  <jackson@ximian.com>
8605
8606         * ComboBox.cs: Remove some debug code that was blinding me.
8607         * UpDownBase.cs: These controls actually aren't implicit, they are
8608         visible to the user.
8609
8610 2006-07-10  Chris Toshok  <toshok@ximian.com>
8611
8612         * DataGrid.cs: move back to the is_adding boolean field.  god i
8613         hate this is_editing/is_adding/is_changing stuff.
8614
8615 2006-07-10  Chris Toshok  <toshok@ximian.com>
8616
8617         * DataGridTableStyle.cs: just check if the property type is bool.
8618         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
8619         Don't use CanRenderType.
8620
8621         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
8622         if our text == NullText.  Remove CanRenderType.
8623
8624         * DataGridBoolColumn.cs: nuke CanRenderType.
8625
8626         * DataGrid.cs: reenable some code to end the current edit inside
8627         of set_CurrentCell.  This fixes the other 1.1.16 regression.
8628         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
8629         Also, remove the visible_row_count arg from CalcRowHeaders, since
8630         we don't need to worry about the actual height of the area.
8631
8632 2006-07-10  Chris Toshok  <toshok@ximian.com>
8633
8634         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
8635         mode, just return.
8636
8637         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
8638         the real sense of the IsInEditOrNavigateMode property (true =
8639         navigate, false = edit).  Also, update OnKeyPress to reflect this.
8640
8641         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
8642         column style exists, we still need to set its property descriptor
8643         to match up with our list manager.
8644
8645 2006-07-10  Chris Toshok  <toshok@ximian.com>
8646
8647         * ThemeWin32Classic.cs: implement the new row/header painting
8648         approach.  The parent row painting will likely go away and
8649         replaced with label controls, but the rest seems to work ok (and
8650         efficiently).
8651
8652         * Theme.cs: change the way we draw datagrid rows.  we don't draw
8653         the row headers as a block now.  Instead we draw them in the
8654         normal draw-row loop.  Add some calls for drawing parent rows and
8655         relation rows.
8656
8657         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
8658         a default table style.  Set the defaults from ThemeEngine.Current,
8659         not SystemColors.  Fix lots of misc issues with property setters.
8660
8661         * DataGrid.cs: move loads of style information out of this class
8662         as it's being duplicated with DataGridTableStyle.  keep track of a
8663         special DataGridTableStyle for the properties we used to mirror
8664         here.  Switch all the style properties to access this table style
8665         instead of instance fields of this class.  Also add a internal
8666         class to represent parent rows (more needs to be stored here, like
8667         the selection state from the parent table, as well as the
8668         expansion state.)  Also, for datasources with relations, do the
8669         right thing for collapse/expand, and add support for the
8670         navigation/parent row buttons.
8671
8672         Lastly, fix the crash in the 1.1.16 build.
8673
8674         * GridTableStylesCollection.cs: make the explicit interface
8675         implementations call the class's methods as opposed to duplicating
8676         them.
8677
8678         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
8679         0 so the text doesn't jump around when we move the cursor.
8680
8681 2006-07-10  Jackson Harper  <jackson@ximian.com>
8682
8683         * TextBoxBase.cs:
8684         * ListBox.cs: Match MS's ToString (this makes debugging focus
8685         stuff infinitely easier).
8686
8687 2006-07-10  Jackson Harper  <jackson@ximian.com>
8688
8689         * Control.cs (SelectNextControl): When checking the control's
8690         parent use this instead of ctrl.parent so that null can be passed
8691         to SelectNextControl. (I have unit tests for this).
8692         - Remove unused var.
8693
8694 2006-07-10  Chris Toshok  <toshok@ximian.com>
8695
8696         * CurrencyManager.cs: correct one regression, the removal of the
8697         finalType field.  Also, add a MonoTODO on CanAddRows, implement
8698         Refresh() correctly, and fix some event emission in
8699         ListChangedHandler.
8700
8701 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
8702
8703         * FileDialog.cs: Don't use brackets for new folders if they exist
8704           under *nix. Instead use -(number of existing folders +1).
8705
8706 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
8707
8708         * FileDialog.cs:
8709           - Fixed really nasty bug #78771
8710           - Don't block the whole GUI when reading directories with a lot of
8711             entries. Use an other thread instead and call BeginInvoke to
8712             update the ListView in MWFFileView
8713
8714 2006-07-07  Chris Toshok  <toshok@ximian.com>
8715
8716         * Control.cs (Dispose): release any Capture when disposing.
8717
8718 2006-07-07  Chris Toshok  <toshok@ximian.com>
8719
8720         * LinkLabel.cs (Select): if we chain up to the parent, set
8721         focused_index to -1 so we'll search for the first available link
8722         the next time the user tabs into us.  Also, if the direction is
8723         backward and focused_index == -1, start the search from the last
8724         element.
8725
8726 2006-07-07  Chris Toshok  <toshok@ximian.com>
8727
8728         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
8729         is beyond the end of the text, don't do anything.
8730         (CreateLinkPieces): set our ControlStyles.Selectable based on
8731         whether or not we have any links.
8732         (Link.Invalidate): use a loop instead of foreach.
8733         (Link.set_Start): null out owner.sorted_links so it'll be
8734         recreated by CreateLinkPieces.
8735
8736 2006-07-06  Chris Toshok  <toshok@ximian.com>
8737
8738         * LinkLabel.cs: revert the SetStyle change.
8739
8740 2006-07-06  Chris Toshok  <toshok@ximian.com>
8741
8742         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
8743         (OnEnableChanged): s/Refresh/Invalidate
8744         (OnGotFocus): if we have a focused index already, refocus it (so
8745         if we mouse out/in to the window it'll focus the right link).
8746         (OnKeyDown): move the tab handling out of here.
8747         (OnLostFocus): don't set focused_index to -1, so we can refocus it
8748         when we lose focus.
8749         (OnMouseDown): don't Capture here - Control handles it.  Also,
8750         focus the active link.
8751         (OnMouseUp): don't deal with Capture.
8752         (OnPaintBackgroundInternal): remove.
8753         (OnTextAlignChanged): CreateLinkPieces before calling the
8754         superclass's method.
8755         (OnTextChanged): call CreateLinkPieces before calling superclass's
8756         method.
8757         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
8758         move around.
8759         (Select): implement this, moving the selection between different
8760         links, and call parent.SelectNextControl if we don't have another
8761         link to focus in the given direction.
8762         (CreateLinkPieces): call Invalidate instead of Refresh.
8763         
8764 2006-07-06  Chris Toshok  <toshok@ximian.com>
8765
8766         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
8767         new LinkLabel internals.
8768
8769         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
8770         over pieces looking for active/focused/etc links.  also, deal with
8771         runs of text (and links) with embedded \n's in them, and use
8772         MeasureCharacterRanges instead of MeasureString to figure out the
8773         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
8774         two-step.
8775
8776 2006-07-04  Jackson Harper  <jackson@ximian.com>
8777
8778         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
8779         XKB or key auto repeat, do it manually.  Without key auto repeat,
8780         when a key is held down we get key press, key release, key press,
8781         key release, ... with auto repeat we get key press, key press, key
8782         press ..., and then a release when the key is actually released.
8783
8784 2006-07-03  Jackson Harper  <jackson@ximian.com>
8785
8786         * TabControl.cs:
8787         * ThemeWin32Classic.cs: Tabs do not obey normal background color
8788         rules, they are always control color regardless of the background
8789         color.
8790
8791 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
8792
8793         * FileDialog.cs: Added internal class MWFConfig.
8794           Removed Registry support and replaced it with support for the new
8795           MWFConfig class. See MWFConfig comments for more information.
8796
8797 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
8798
8799         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
8800           rectangle. Added some patches from eno from bug #78490 and fixed
8801           the arrow position for small up and down CPDrawScrollButtons.
8802
8803 2006-06-30  Jackson Harper  <jackson@ximian.com>
8804
8805         * InternalWindowManager.cs: Remove some debug code.
8806         * Form.cs: When an MdiParent is set to null, the window is
8807         "detatched" and becomes a normal window.
8808         * MdiClient.cs: Don't bring the new child form to the front until
8809         it is activated (setting it as active does this), this makes the
8810         previously active forms titlebar get redrawn as inactive.
8811
8812 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
8813
8814         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
8815           with later controls
8816
8817 2006-06-29  Mike Kestner  <mkestner@novell.com>
8818
8819         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
8820         arrow in keynav state.  Fixes #78682.
8821
8822 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
8823
8824         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
8825           order (fixes #78393)
8826
8827 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
8828
8829         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
8830           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
8831           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
8832           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
8833           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
8834           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
8835           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
8836           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
8837           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
8838           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
8839           enumerations (FlagsAttribute, SerializableAttribute, added/removed
8840           values)
8841
8842 2006-06-28  Mike Kestner  <mkestner@novell.com>
8843
8844         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
8845
8846 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
8847
8848         * PropertyGrid.cs,
8849           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
8850           item lines from other area (It also makes BackColor consistent and
8851           compatible with .NET). Fixed bug #78564.
8852
8853 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
8854
8855         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
8856         Patch from Eno for #78555.
8857
8858 2006-06-27  Chris Toshok  <toshok@ximian.com>
8859
8860         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
8861
8862         * DataGridColumnStyle.cs: same.
8863
8864         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
8865         
8866         * DataGridDrawingLogic.cs: nuke.
8867
8868 2006-06-27  Chris Toshok  <toshok@ximian.com>
8869
8870         * DataGridTableStyle.cs: clean up the constructors, and build the
8871         list of child relations for this table.  I have no idea if this is
8872         where we should be doing it (it probably isn't), but since we're
8873         already iterating over the properties..
8874
8875         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
8876         struct and array for keeping track of row information, similar to
8877         what's shown in a hack on
8878         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
8879
8880         * Theme.cs: be consistent about the naming of DataGrid methods,
8881         prefering ColumnWidths and RowHeights over columnsWidths and
8882         RowsHeights.
8883
8884         * ThemeWin32Classic.cs: same, and also add support for variable
8885         sized rows (and the +/- expansion icons for related rows).
8886
8887 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
8888
8889         * TextBoxBase.cs: Applied Eno's patch from #78660
8890
8891 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
8892
8893         * Form.cs (ScaleCore): We don't want to scale our form if it's
8894           state is minimized or maximized, but we still need to scale our
8895           child windows. Also, added try/finally block to ensure layout
8896           gets reset (Fixes #78697)
8897
8898 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
8899
8900         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
8901
8902 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
8903
8904         * Form.cs: Fixed c+p error and added check to resize form if minimum
8905           size is bigger than current size (Fixes #78709)
8906
8907 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
8908
8909         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
8910
8911 2006-06-26  Mike Kestner  <mkestner@novell.com>
8912
8913         * ComboBox.cs: only do Keypress handling in the combo when there  
8914         are items in the collection. Fixes #78710.
8915
8916 2006-06-26  Chris Toshok  <toshok@ximian.com>
8917
8918         * Binding.cs: make this work bi-directionally.  also, clear up
8919         other mixups between Push/Pull Data (e.g. we're supposed to pull
8920         data when validating).
8921
8922         * BindingManagerBase.cs: trim some fully qualified collection
8923         types.
8924
8925         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
8926
8927 2006-06-23  Chris Toshok  <toshok@ximian.com>
8928
8929         * PropertyManager.cs: It appears (according to the unit tests)
8930         that PropertyManager doesn't use
8931         PropertyDescriptor.AddValueChanged to track propery value changes
8932         in its datasource, but uses the same scheme as Binding, where it
8933         looks for a <Property>Changed event and binds to it.
8934
8935         Also, according to the docs, IsSuspended always returns false for
8936         a property manager with a non-null datasource.
8937
8938 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
8939
8940         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
8941           need to update the actual DialogResult. (Fixes #78613)
8942
8943 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
8944
8945         * Form.cs (ShowDialog): Release any captures before running the
8946           new message pump (fixes #78680)
8947
8948 2006-06-22  Mike Kestner  <mkestner@novell.com>
8949
8950         * ListView.cs: Layout column widths properly in details mode even 
8951         if HeaderStyle.None is set.  Fixes #78691.
8952
8953 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
8954
8955         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
8956
8957 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
8958
8959         * Control.cs (ContainsFocus): Using new driver method to get focused
8960           window, instead of trying to use internal tracking var, which can
8961           recursion issues (Fixes #78685)
8962         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
8963           XplatUIWin32.cs: Added GetFocus method to return focused window
8964
8965 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8966
8967         * ColorDialog.cs: when the mouse button is pressed inside the color
8968         matrix, don't let the cursor move out of it until the button is
8969         released, which is the behavior on windows. Changed 'colours' by
8970         'colors' to use the same word consistently.
8971
8972 2006-06-21  Chris Toshok  <toshok@ximian.com>
8973
8974         * DataGrid.cs: add in some basic navigation stuff (navigating to a
8975         child relation and back, using a stack).  Also, remove
8976         GetDataSource and the code that calls it - it's not needed.  Also,
8977         track CurrencyManager.ListName's removal.
8978
8979 2006-06-21  Chris Toshok  <toshok@ximian.com>
8980
8981         * CurrencyManager.cs: push some of the original type checking from
8982         BindingContext.CreateBindingManager to here, and remove some of
8983         the finalType stuff.  Need more tests to make sure I've got the
8984         ListName part right, and we might need more in SetDataSource.
8985
8986         * PropertyManager.cs: add a ctor that takes just the datasource,
8987         and no property name.  Make SetDataSource work with a null
8988         property_name, and make Current return the data_source if the
8989         property descriptor is null.  this makes 'string foo = "hi";
8990         BindingContext[foo].Current' return "hi" as it should.
8991
8992         * RelatedCurrencyManager.cs: make this code more generic - there's
8993         no reason the parent manager has to be CurrencyManager, and
8994         there's no reason to pass the DataRelation.  It suffices to use a
8995         BindingManagerBase and PropetyDescriptor.
8996
8997         * RelatedPropertyManager.cs: make a similar change here.
8998         
8999         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
9000         flower I knew it could be.
9001
9002 2006-06-20  Chris Toshok  <toshok@ximian.com>
9003
9004         * PropertyManager.cs: the PropertyChangedHandler is invoked when
9005         data in the source has changed and we need to update the control,
9006         so s/PullData/PushData.
9007
9008         * CurrencyManager.cs: Refresh is meant to update the control from
9009         data in the datasource.  So, s/PullData/PushData.
9010
9011         * BindingContext.cs: add more ugliness (we weren't handling the
9012         case where data_source = DataTable and data_member = column_name).
9013
9014         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
9015         from the perspective of the datasource.  PullData pulls from the
9016         control, PushData pushes to the control.
9017
9018 2006-06-20  Chris Toshok  <toshok@ximian.com>
9019
9020         * BindingContext.cs: rewrite the CreateBindingManager code to
9021         handle navigation paths more or less properly.  This could
9022         definitely stand some more work, in particular to push the
9023         recursion up to the toplevel.  But that relies on fixes in other
9024         places (System.Data comes to mind).
9025
9026         Also, move to a flat hashtable (and encode the twolevel nature of
9027         the dictionary into the hash key).  This lets us implement the
9028         IEnumerable.GetEnumerator method.
9029
9030         * RelatedCurrencyManager.cs: new class.  Update our view based on
9031         our relation and our parent CurrencyManager's position.
9032
9033         * CurrencyManager.cs: split out some logic from the ctor into
9034         SetView, so it can be called from the new RelatedCurrencyManager
9035         subclass.
9036
9037         * RelatedPropertyManager.cs: new class.  Update our datasource
9038         based on the position of our parent CurrencyManager.
9039
9040         * PropertyManager.cs: split out some logic from the ctor into
9041         SetDataSource, so it can be called from the new RelatedDataSource
9042         subclass.  Also, make the Current getter return the value
9043         of the PropertyDescriptor, not the data_source.
9044
9045         * Binding.cs: no need to duplicate the string splitting code here.
9046
9047 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
9048
9049         * Control.cs:
9050           - set_Enabled: OnEnabledChanged is not called if the inherited state 
9051             of the control is not altered, even though  we might be changing the
9052             internal state of the control (#78458)
9053           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
9054             OnEnabledChanged, to allow easy altering of any child window state
9055           - OnEnabledChanged: Added code to enable/disable driver window state
9056           - OnParentEnabledChanged: Instead of firing the event, call 
9057             OnEnabledChanged, which will fire the event and also a) set driver
9058             window state and pass the enabled state to any grandchildren (#78458)
9059
9060 2006-06-19  Jackson Harper  <jackson@ximian.com>
9061
9062         * InternalWindowManager.cs: We don't set the cursor explicitly
9063         thats done via the response to NCHITTESTs.
9064         - Don't need to adjust for titlebar heights anymore, the
9065         coordinates are coming in the correct coordinates now (see peters
9066         last patch).
9067
9068
9069 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
9070
9071         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
9072           being translated relative to whole window, instead of client window.
9073           That caused broken offsets on mouseclick (and caused gas for our
9074           InternalWindowManager)
9075
9076 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
9077
9078         * TextControl.cs:
9079           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
9080           - Undo(): Added replay of cursor move on DeleteChars action; added
9081             calling Undo() again if a recorded cursor move is invalid (to
9082             ensure that some action is performed on Undo)
9083         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
9084
9085 2006-06-16  Jackson Harper  <jackson@ximian.com>
9086
9087         * MdiClient.cs: Instead of just sizing maximized windows when
9088         there is a resize we also have to adjust the Y of minimized
9089         windows, so they stay pinned to the bottom of the mdi container.
9090         - Eliminate separate tracking of the active control, we can just
9091         get this from the controls collection.
9092         - Paint the decorations for the newly activated titlebar so we get
9093         a pretty blue bar.
9094         * InternalWindowManager.cs:
9095         * ThemeWin32Classic.cs: Minimized windows get all three buttons
9096         even if they are a tool window.
9097         
9098 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
9099
9100         * TextControl.cs (Undo): Handle non-existent cursor locations in the
9101           undo buffer, these can happen when text was deleted and the cursor
9102           was recorded first. Since we will also have a recorded cursor
9103           after the delete this is not an issue. (Fixes #78651)
9104
9105 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
9106
9107         * AccessibleObject.cs: Remove dependence on Control.is_selected;
9108           instead properly track control states internally (allows us to
9109           remove is_selected from Control)
9110
9111 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9112
9113         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
9114         whose width is not a multiple of 8.
9115
9116 2006-06-13  Jackson Harper  <jackson@ximian.com>
9117
9118         * MdiClient.cs:  Only maximize the next child if the current one
9119         is maximized.
9120
9121 2006-06-13  Chris Toshok  <toshok@ximian.com>
9122
9123         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
9124         modified.  Also, guard against grid or grid_drawing being null in
9125         Invalidate.
9126
9127         * DataGrid.cs: Reformat tons of getters/setters.  In the
9128         DataMember setter, just call SetNewDataSource instead of
9129         duplicating some of its functionality.  In SetNewDataSource, don't
9130         check ListManager for null, since the property getter creates the
9131         object if needed.
9132
9133         * DataGridTableStyle.cs: don't set TableStyle or call
9134         SetDataGridInternal on the column here, it's done in
9135         GridColumnStylesCollection.Add.
9136
9137         * GridColumnStylesCollection.cs: fix all the explicit interface
9138         implementations to just call our methods.  Nuke AddInternal() and
9139         move the body of it to Add().  Also, add a call to
9140         column.SetDataGridInternal to Add().
9141
9142         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
9143         base()+duplicate code.  Also, use the Format property instead of
9144         format to generate an Invalidate ala MS.  Lastly, create the
9145         textbox here, unconditionally.
9146         (set_Format): call Invalidate.
9147         (get_TextBox): no need to call EnsureTextBox.
9148         (Commit): remove the message box.
9149         (Edit) remove the call to EnsureTextBox.
9150         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
9151         (EnterNullValue): no need to check textbox for null.
9152         (HideEditBox): no need to check textbox for null.
9153         (SetDataGridInColumn): add the textbox to the grid's controls.
9154         (EnsureTextBox): nuke.
9155         
9156 2006-06-13  Jackson Harper  <jackson@ximian.com>
9157
9158         * MdiWindowManager.cs: Hook up to the maximized menus paint event
9159         and redraw the buttons when needed. Unhook when the window is
9160         unmaximized.
9161         * MainMenu.cs: Add an internal Paint event, the mdi window manager
9162         needs this so that it can redraw its buttons when the menu is
9163         repainted.
9164         * InternalWindowManager.cs:
9165         * Form.cs: The method order has changed for DrawMaximizedButtons,
9166         so that it can be a PaintEventHandler.
9167         
9168 2006-06-13  Jackson Harper  <jackson@ximian.com>
9169
9170         * MdiClient.cs: When we close a maximized mdi window, the next mdi
9171         window is activated and maximized, even if it wasn't before.
9172         - When  a new window is activated repaint the decorations of the
9173         old one, so that it no longer has the Active "look" (the blue
9174         titlebar).
9175         * InternalWindowManager.cs: Open up CreateButtons to base classes
9176         so they can recreate the buttons on state changes.
9177         - If a window is maximized give it all three buttons
9178         * MdiWindowManager.cs: Create the titlebar buttons when the state
9179         is changed, this is needed because a toolwindow will not have all
9180         three buttons until it is maximized.
9181
9182 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
9183
9184         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
9185           Fixed bug #78609.
9186
9187 2006-06-12  Jackson Harper  <jackson@ximian.com>
9188
9189         * KeysConverter.cs: Make sure we handle the Ctrl special case
9190         if its the only key.
9191         
9192 2006-06-12  Jackson Harper  <jackson@ximian.com>
9193
9194         * Theme.cs: Add a method to get the size of a managed window
9195         toolbar button.
9196         * InternalWindowManager.cs: Remove the ButtonSize property, this
9197         should be retrieved from the theme.
9198         * MdiWindowManager.cs: Get the button size from the theme
9199         * ThemeWin32Classic.cs: Make the method to get the managed window
9200         titlebar button size public.
9201         - Handle the different button sizes of maximized toolwindows
9202         (should match any maximized window).
9203         - Get the titlebar height from the theme, not the WM (which gets
9204         it from the theme).
9205
9206 2006-06-12  Jackson Harper  <jackson@ximian.com>
9207
9208         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
9209         event down to the mdi window manager.
9210         - Expose some extra stuff to base classes
9211         - Make sure to end the Capture on an NC Mouse up, so that we can
9212         get double clicks properly, and the sizing doens't stick.
9213         - When doing PointToClient contain it in the workable desktop
9214         area, this prevents windows from changing size when the cursor is
9215         pulled outside of the working area while sizing.
9216         * MdiWindowManager.cs: When we get a double click maximize the
9217         window.
9218         - Reset the cursor after handling mode changes.
9219
9220 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
9221
9222         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
9223           current desktop, instead of just assuming a 0, 0 origin. This
9224           is needed for our internal window manager, to know the top
9225           margin of the desktop
9226
9227 2006-06-12  Chris Toshok  <toshok@ximian.com>
9228
9229         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
9230         we need this to get rid of the selected background in the bool
9231         column.
9232         (CancelEditing): move the ConcedeFocus call to above the Abort
9233         call.  Also, set is_changing to false and invalidate the row
9234         header if we were changing before.
9235         (ProcessKeyPreviewInternal): remove, since noone outside this
9236         class calls it anymore.  Roll the code into ProcessKeyPreview.
9237         (EndEdit): remove the internal version.
9238         (InvalidateCurrentRowHeader): make private.
9239
9240         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
9241         Keys.Escape handling (and with it the last call to
9242         DataGrid.EndEdit from outside the class.)
9243
9244
9245 2006-06-12  Chris Toshok  <toshok@ximian.com>
9246
9247         * DataGridTextBox.cs (.ctor): isedit defaults to false.
9248         (OnKeyPress): set isedit to true.
9249         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
9250         already handled by the grid.
9251
9252         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
9253         right.  ugh.
9254         (set_DataSource): SetDataSource always returns true, so stop
9255         putting it in an if statement.
9256         (EndEdit): get rid of some {}'s
9257         (ProcessGridKey): return true in case Keys.Escape.
9258         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
9259         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
9260         PositionChanged, stopped connecting to CurrentChanged.
9261         (GetDataSource): simplify this a bunch.
9262         (SetDataSource): change return type from bool to void.
9263         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
9264         to this, and make sure we don't set ListManager.Position inside
9265         set_CurrentCell.
9266         (OnListManagerItemChanged): if we're passed an actual index,
9267         redraw that row.
9268
9269         * CurrencyManager.cs (set_Position): don't call PullData here.
9270
9271 2006-06-09  Jackson Harper  <jackson@ximian.com>
9272
9273         * TreeNode.cs:  Recalculate the visible order before doing the
9274         Expand/Collapse Below calls, because those calls generate an
9275         expose.
9276         - Reduce calls to the TreeView property, which is mildly expensive
9277         by using a local var.
9278         * Form.cs: Layout the MDI child windows when creating the parent
9279         form.
9280         - Don't use the internal constructor anymore
9281         * MdiClient.cs: use the parent form width/height (if available)
9282         when laying out the child windows, we do this because the
9283         mdiclient isn't docked yet when the initial layout is done.
9284         - Don't need an internal constructor anymore.
9285
9286 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9287
9288         * FileDialog.cs: handle access errors when trying to create a folder
9289         or changing to a directory. No need to initialize out parameters.
9290
9291 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
9292
9293         * FileDialog.cs: Append a number when creating a new folder if the
9294           folder already exists (use parenthesis instead of square brackets)
9295
9296 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
9297
9298         * FileDialog.cs:
9299           - Disabled registry support for windows and added better registry
9300             error checking for other systems (need to investigate why it
9301             works perfectly on my system)
9302           - If a folder already exist show an error MessageBox instead of
9303             trying to create an indexed name.
9304           - Fixed a non intentional typo.
9305
9306 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9307
9308         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
9309
9310 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
9311
9312         * FileDialog.cs: When creating a new folder don't crash if the
9313           folder already exists.
9314
9315 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
9316
9317         * FileDialog.cs: Allmost a complete rewrite.
9318           - added a "virtual" file system that handles the differences
9319             between unix and windows file systems (especially the directory
9320             structure). Moved most of the directory and file handling code
9321             into the vfs.
9322             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
9323             UnixFileSystem and FSEntry.
9324           - Recently used folder/directory, size, location and used file names
9325             (file name ComboBox) are now stored in the registry and get read
9326             before the dialog shows up (fixes part 6 of bug #78446).
9327           - Creation of new folders/directories is now possible (context menu
9328             or ToolBar). Added TextEntryDialog for this that fills in the gap
9329             until ListView.LabelEdit works.
9330           - Fixed cursor handling (bug #78527) and focus handling for
9331             PopupButtonPanel
9332           - Various "Search in" ComboBox enhancements. The content of the
9333             dropdown listbox now almost matches ms.
9334           - Changed the behaviour when the user switches to SpecialFolder
9335             Recent to show the ListView in View.Details.
9336           - Beside using the ToolBar to change the View property of the
9337             file ListView it is now possible to use the context menu too.
9338
9339 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
9340
9341         * ComboBox.cs: Don't create a new ObjectCollection when an item
9342           gets inserted. Just insert the item in the existing object_items
9343           ArrayList.
9344
9345 2006-06-08  Jackson Harper  <jackson@ximian.com>
9346
9347         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
9348         that the treeview and root node checks are done also, this fixes a
9349         regression i caused in the unit tests.
9350
9351 2006-06-07  Wade Berrier <wberrier@novell.com> 
9352
9353         * RichTextBox.cs: More ISO8859-1 -> unicode
9354
9355 2006-06-07  Mike Kestner  <mkestner@novell.com>
9356
9357         * ComboBox.cs : use items to hold highlight/selection so that
9358         collection insertions don't require synchronization.
9359
9360 2006-06-07  Jackson Harper  <jackson@ximian.com>
9361
9362         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
9363         routine.  We now always keep the sized edge at the cursor instead
9364         of computing movement and adjusting rects.  There is one buglet
9365         with this method though when the cursor is moved over area that
9366         the window can not expand too (such as the toolbars on the desktop).
9367
9368 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9369
9370         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
9371         here. Fixes crash on startup in AlbumSurfer.
9372
9373 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
9374
9375         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
9376           values
9377
9378 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9379
9380         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
9381         statement to avoid calling XNextEvent which will block if another thread
9382         took the event that we were expecting. Fixes bug #78605.
9383
9384 2006-06-07  Mike Kestner  <mkestner@novell.com>
9385
9386         * ListView.cs : isolated checkbox clicking from the selection logic.
9387         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
9388
9389 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9390
9391         * Form.cs: Check that the value passed to Form.DialogResult
9392         is a valid enum value.
9393
9394 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9395
9396         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
9397         Computer'. Clicking it in the network view goes to 'My Computer'.
9398         Added CIFS filesystem type. Display the mount point of filesystems.
9399         Avoid duplicate mount points (happens for me with CIFS);
9400
9401 2006-06-06  Jackson Harper  <jackson@ximian.com>
9402
9403         * InternalWindowManager.cs: Draw the maximized windows buttons
9404         when resizing.
9405
9406 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9407
9408         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
9409         all other dialogs. Fixes bug #78585.
9410
9411 2006-06-06  Mike Kestner  <mkestner@novell.com>
9412
9413         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
9414         Only invalidate checkbox on checkstate changes to avoid flicker.
9415         * ListBox.cs : avoid unselect/select when clicking selected item.
9416         avoid reselection flicker for already multiselected items.
9417         Fixes #78382.
9418
9419 2006-06-06  Jackson Harper  <jackson@ximian.com>
9420
9421         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
9422         the parent form so that the menu is removed if needed.
9423
9424 2006-06-06  Mike Kestner  <mkestner@novell.com>
9425
9426         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
9427         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
9428
9429 2006-06-06  Mike Kestner  <mkestner@novell.com>
9430
9431         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
9432
9433
9434 2006-06-06  Jackson Harper  <jackson@ximian.com>
9435
9436         * Control.cs: Use the property (instead of the field) to get the
9437         default cursor so it is instantiated correctly.
9438         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
9439         resizes so we need to manually repaint the window decorations here.
9440         - Set the titlebar button locations as soon as they are created,
9441         otherwise they are not set correctly on win32.
9442         
9443 2006-06-06  Chris Toshok  <toshok@ximian.com>
9444
9445         * CurrencyManager.cs (set_Position): call PullData before
9446         OnCurrentChanged.
9447         (AddNew): after calling IBindingList.AddNew, update our
9448         listposition, and call OnCurrentChanged/OnPositionChanged (without
9449         calling PullData).
9450         (OnCurrentChanged): remove the call to PullData from here.
9451         (OnItemChanged): remove the call to PushData from here.
9452         (OnPositionChanged): change the test from == null to != null to
9453         match the other methods.
9454         (ListChangedHandler): the grossest part of the patch.  Implement
9455         this such that it passes the unit tests in CurrencyManagerTest and
9456         the output more or less matches that of MS's implementation.
9457  
9458 2006-06-06  Mike Kestner  <mkestner@novell.com>
9459
9460         * ListView.cs : only update check state on single click.
9461         * ThemeWin32Classic.cs : fix focus drawing for details view without
9462         fullrowselect.  Fixes #78454.
9463         * XplatUIX11.cs : fix for double click emission.
9464
9465 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
9466
9467         * PropertyGridView.cs : Applied Atsushi's patch to fix
9468         font dialog bug  (#78197).
9469
9470 2006-06-05  Jackson Harper  <jackson@ximian.com>
9471
9472         * TreeNode.cs: Compute the next node for expanding/collapsing
9473         correctly. We now factor in nodes without a NextNode
9474         correctly. (Fixes somes cases in nunit-gui).
9475         * InternalWindowManager.cs: Set the bounds when updating the
9476         virtual position of a tool window.
9477         
9478 2006-06-05  Chris Toshok  <toshok@ximian.com>
9479
9480         * DataGrid.cs: rename cached_currencymgr to list_manager.
9481         (set_CurrentCell): move SetCurrentCell code here, and clean it up
9482         some.
9483         (CurrentRow, CurrentColumn): single accessors so we can make the
9484         cursor movement code a lot easier to understand.
9485         (CurrentRowIndex): implement this in terms of CurrentRow.
9486         (BeginEdit): clean this up a bit.
9487         (CancelEditing): sort out the is_editing/is_changing/is_adding
9488         stuff a little.
9489         (EndEdit): minor changes.
9490         (OnKeyDown): add a comment about a (most likely) unnecessary
9491         check.
9492         (OnMouseDown): cancel editing when we click on a row header.  And
9493         use the CurrentRow setter, not CurrentCell.
9494         (ProcessDialogKey): directly call ProcessGridKey.
9495         (UpdateSelectionAfterCursorMove): factor out this common block of
9496         code (it's used everywhere that we move the cursor by updating row
9497         or column).
9498         (ProcessGridKey): pretty substantial overhaul.  Use the
9499         CurrentRow/CurrentColumn properties to make the code a lot more
9500         readable.  Only use the CurrentCell property when we have to
9501         modify both row and column at once.  Tab behavior is still broken,
9502         and Delete is untested.
9503         (Select): if we have no selected rows, set selection_start to
9504         @row.
9505         (EditCurrentCell): rename EditCell this.  It was only ever invoked
9506         with CurrentCell as the arg, so drop the arg and rename it.
9507
9508         * DataGridColumnStyle.cs: clean up the constructors a little, and
9509         drop CommonConstructor().
9510
9511         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
9512         actually get notified when the user hits it.
9513         (ProcessKeyMessage): *substantially* simplify this method.
9514         There's no reason (that I can see) for the textbox to be making
9515         calls into the datagrid at all.  Remove all of them but the ones
9516         for Enter handling.  those will take some more work.
9517
9518         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
9519         calling HideEditBox.
9520         (HideEditBox): if we have an active textbox, render it invisible
9521         without causing a re-layout of the datagrid.
9522
9523 2006-06-05  Mike Kestner  <mkestner@novell.com>
9524
9525         * ListView.cs : fix NRE crasher when focuseditem is cleared by
9526         collection changes by resetting it to Items[0].  Fixes #78587.
9527
9528 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9529
9530         * MessageBox.cs: if the height of the text is larger than the icon_size,
9531         use that. Fixes bug #78575.
9532
9533 2006-06-05  Jackson Harper  <jackson@ximian.com>
9534
9535         * TreeView.cs: Fix line drawing when scrolling.  To do this each
9536         node is basically responsible for drawing its entire horizontal
9537         area.  When drawing a node it draws its parent node lines if
9538         needed.
9539         - Adjust the clip area to the viewport rectangle
9540         - Fix Left/Right key handling to match MS. (It expand/collapses
9541         and moves to parents/first child but does not move selection to
9542         sibling nodes).
9543         - Fix SetTop to work with new bound calculation code
9544         - When scrollbars are no longer needed we need to reset scrolling
9545         vars and recalculate the visible order so the redraw is correct
9546         * TreeNode.cs: We can't expand/collapse nodes with no children.
9547
9548 2006-06-03  John Luke  <john.luke@gmail.com> 
9549
9550         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
9551         so the colors work without dev packages
9552         
9553 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
9554
9555         * Control.cs 
9556           - Select: Implemented to just use activate. Seems to match MS 
9557             behaviour closest. Documented to only do actual control walking 
9558             based on it's parameters if in a container control so I moved 
9559             the code there.
9560           - Removed selection check logic from our internal Select() method
9561         * ContainerControl.cs:
9562           - Select: Moved selection logic from Control here, since MS documents
9563             that containers obey the bool arguments. No longer calling base
9564
9565 2006-06-02  Jackson Harper  <jackson@ximian.com>
9566
9567         * TreeView.cs: If the selected node isn't changed when we get
9568         focus update the previously selected node so that we see the
9569         selection box.
9570
9571 2006-06-02  Mike Kestner  <mkestner@novell.com>
9572
9573         * ComboBox.cs: restructure grab and general mouse event handling.
9574         Make the composite control raise mouse events like it was a single
9575         control for leaves/enters/motion/up/down events.  fix dropdown list
9576         coordinate mangling and refactor it into the scrollbar subclass to
9577         reduce code duplication.  Fixes #78282 #78361 and #78457.
9578
9579 2006-06-02  Mike Kestner  <mkestner@novell.com>
9580
9581         * ScrollBar.cs: remove Capture setting/clearing, as it happens
9582         automatically in the Control.WndProc.
9583
9584 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9585
9586         * FileDialog.cs: fix crash when running SharpChess, which sets the
9587         FilterIndex to 2 with only one Filter.
9588
9589 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9590
9591         * ToolBar.cs: add SizeSpecified property.
9592         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
9593         try to figure out our real size, otherwise fallback to what the
9594         container says.
9595
9596 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
9597
9598         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
9599         * Control.cs (WndProc): MS always calls the DefWndProc to pass
9600           up the event
9601
9602 2006-06-01  Mike Kestner  <mkestner@novell.com>
9603
9604         * ListView.cs: revamp the focus management in ListView.  It still
9605         causes churn of LostFocus/GotFocus emissions on clicks, but it's
9606         better than not handling focus at all.  Will revisit when pdb feels
9607         the general focus handling is solid.  Fixes #78526.
9608
9609 2006-06-01  Jackson Harper  <jackson@ximian.com>
9610
9611         * TreeView.cs: Set the default border style in the constructor.
9612         - Move painting to use OnPaintInternal instead of capturing
9613         WM_PAINT, this is the correct way of doing things
9614         - UpdateBelow shouldn't invalidate the scrollbar area
9615         - Cap the top on update below in case the node was above the top
9616         of the viewport rectangle.
9617         - ExpandBelow and Collapse below need to obey Begin/End Update.
9618         * TreeNode.cs: Make is_expanded internal so the treenode
9619         collection can change it without firing the whole event chain.
9620         * TreeNodeCollection.cs: When clearing all the child nodes make
9621         sure to recalc the visible order.
9622         - Improve algo for remove the top node
9623
9624 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
9625
9626         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
9627           SendMessage directly calling window procedures, which in turn might
9628           call SetFocus()
9629
9630 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
9631
9632         * Control.cs: Don't handle WM_SETFOCUS if the same window already
9633           has focus (works around X11 sending a FocusIn after our SetFocus)
9634         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
9635
9636 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
9637
9638         * Mime.cs: Fix for the NET_2_0 build.
9639           NameValueCollection needs StringComparer now.
9640
9641 2006-05-31  Chris Toshok  <toshok@ximian.com>
9642
9643         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
9644         return (via an out parameter) the starting X of the column.
9645         (UpdateVisibleColumn): track change to FromPixelToColumn.
9646         (HitTest): add a ColumnResize case here.
9647         (DrawResizeLine): new function, probably poorly named.
9648
9649         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
9650         only need to keep one reference.
9651         (set_ListManager): same.
9652         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
9653         Also, add support for HitTestType.ColumnResize.
9654         (OnMouseMove): add column resize behavior here, and change the
9655         cursor to the correct one as we move around the datagrid.
9656         (OnMouseUp): terminate the column resize if we're resizing.
9657         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
9658         for the current cell.
9659         (ConnectListManagerEvents): use cached_currencymgr.
9660         (DisconnectListManagerEvents): fill this in, using
9661         cached_currencymgr.
9662         (SetCurrentCell): remove cached_currencymgr_events handling.
9663         (SetDataMember): only call DisconnectListManagerEvents if
9664         cached_currencymgr is != null.
9665         (SetDataSource): same.
9666         (OnListManagerCurrentChanged): cached_currencymgr_events ->
9667         cached_currencymgr.
9668
9669 2006-05-31  Jackson Harper  <jackson@ximian.com>
9670
9671         * BindingManagerBase.cs: Remove somedebug code that creeped into
9672         SVN.
9673         * TreeNode.cs: We get the indent level dynamically right now, so
9674         don't track it as a member.
9675         * TreeNodeCollection.cs: Make sure all nodes added to the list
9676         have parents, treeviews/topnodes setup properly.
9677         - Don't attempt to track indent level.
9678
9679 2006-05-30  Jackson Harper  <jackson@ximian.com>
9680
9681         * BindingContext.cs: Create the currency manager tables here.
9682         This allows us to more easily create null tables (when bad data
9683         members are used), and more easily create related currency
9684         managers.
9685         * CurrencyManager.cs: All the table creation stuff is done by the
9686         binding context now.
9687         - Current should throw an exception if listposition is -1.
9688         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
9689         been bound yet.
9690
9691 2006-05-30  Mike Kestner  <mkestner@novell.com>
9692
9693         * ListView.cs: allow reexpansion of zero-width column headers.
9694         Fixes #78528.
9695
9696 2006-05-28  Chris Toshok  <toshok@ximian.com>
9697
9698         * CurrencyManager.cs (get_Current): after the late binding
9699         listposition = -1 fix, we need to guard against it here and return
9700         null, otherwise we raise an exception (which is swallowed
9701         elsewhere, and breaks datagrid databinding.)
9702
9703 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
9704
9705         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
9706           than WM_SYSKEY, don't throw if get something unexpected (#78507)
9707
9708 2006-05-26  Jackson Harper  <jackson@ximian.com>
9709
9710         * ControlPaint.cs:
9711         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
9712         values, it's faster and it's all we care about (we don't care if
9713         the names aren't equal).
9714         * KeyboardLayouts.cs: Eliminate some dead code.
9715         - Lazy init things
9716         * X11Keyboard.cs: Lazy init keyboard detection.
9717         - Cleanup access modifiers a little.
9718
9719 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
9720
9721         * XplatUIX11.cs: Once again, attempting to get layout just right.
9722
9723 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
9724
9725         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
9726           the sizes of each link section, that will result in sizes that
9727           match DrawString's layout (Fixes #78391)
9728
9729 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
9730
9731         * FileDialog.cs: If AddExtension property is true autocomplete the
9732           extensions in SaveFileDialog correctly. Fixes bug #78453.
9733           Set MyNetwork and MyComputer to "C:\" for windows. This should
9734           fix part 8 of bug #78446 for now.
9735
9736 2006-05-26  Chris Toshok  <toshok@ximian.com>
9737
9738         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
9739         invalidate the current row header if we need to, but presumably
9740         we'll invalidate the row corrsponding to the bounds or
9741         editingControl.
9742         (GridHScrolled): switch back to this method, as it's part of the
9743         public api.  *sigh*.
9744         (GridVScrolled): same.
9745         (OnMouseWheel): hack up something that more or less works.  Call
9746         GridHScrolled/GridVScrolled directly, instead of duplicating much
9747         of their code here.
9748         (EnsureCellVisibility): reinstate a bunch of this code, since we
9749         can't just set the scrollbar Value and expect to do all the work
9750         in the ValueChanged handler.  Also, Call Update() after scrolling
9751         in one direction so the other XplatX11.ScrollWindow call has the
9752         proper stuff in the proper places.
9753         (EditCell): set is_editing to true before calling .Edit.
9754
9755         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
9756         don't bother comparing first.
9757         (OnKeyPress): call grid.ColumnStartedEditing before calling
9758         base.OnKeyPress.  this will set is_changing and invalidate the row
9759         header if necessary.
9760         (ProcessKeyMessage): for WM_CHAR messages, call
9761         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
9762         and WM_KEYDOWN.
9763         
9764         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
9765         it's done in the DataGrid.
9766         (NextState): call grid.ColumnStartedEditing, which takes care of
9767         invalidating the row header (and setting is_changing).
9768
9769         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
9770         here.  it's done in the DataGrid.
9771
9772 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9773
9774         * Control.cs: allow changing the cursor when the mouse position is
9775         out of bounds but Capture is set.
9776         * LinkLabel.cs: handle the case when the mouse button is pressed on the
9777         linklabel but released somewhere else.
9778
9779 2006-05-25  Jackson Harper  <jackson@ximian.com>
9780
9781         * TreeView.cs: When we get focus if there is no selected node make
9782         it the top node
9783         - Remove some uneeded setup code from Draw.
9784         * TreeNodeCollection.cs: If the tree doesn't have a top node when
9785         a new node is inserted make the new node the top.
9786         * XplatUIX11.cs:
9787         * Timer.cs: Use Utc time so that no local time zone stuff needs to
9788         be used (should be faster).
9789         
9790 2006-05-25  Chris Toshok  <toshok@ximian.com>
9791
9792         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
9793         problem with the last commit.
9794
9795 2006-05-25  Chris Toshok  <toshok@ximian.com>
9796
9797         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
9798         need the invalidate call here, while scrolling right-to-left via
9799         the left arrow key (i.e. moving the editing cell while scrolling).
9800
9801         * DataGrid.cs (.ctor): remove the initialization of
9802         ctrl_pressed/shift_pressed.  We no longer track them using key
9803         up/down handlers, but by using Control.ModifierKeys.  Also, switch
9804         to using ValueChanged handlers on the scrollbars instead of
9805         Scrolled event handlers.  This simplifies a bunch of the scrolling
9806         code.
9807         (GridHValueChanged): rename from GridHScrolled, and change it to
9808         work with the new event args.
9809         (GridVValueChanged): same.
9810         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
9811         (OnMouseWheel): actually scroll the datagrid.  Don't change the
9812         selected cell.
9813         (ProcessGridKey): correct all the keyboard navigation stuff I
9814         could find.  Ctrl up/down/left/right/home/end work now.
9815         (EnsureCellVisibility): correct method name spelling.  Also,
9816         simplify this a touch by not explicitly calling the
9817         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
9818         scrollbar value.
9819         (OnKeyUpDG): no need for this method now.
9820         
9821 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9822
9823         * LinkLabel.cs: display the OverrideCursor when hovering the label.
9824         Fixes bug #78392.
9825
9826 2006-05-25  Chris Toshok  <toshok@ximian.com>
9827
9828         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
9829         r61019.
9830
9831 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
9832
9833         * Application.cs: Moved setting of is_modal and closing to before
9834           we create the control, to allow the event handlers called as a
9835           result of creation affect closing. Also removed Gonzalo's previous
9836           change to setting DialogResult, the behaviour has been moved to 
9837           Form.ShowDialog()
9838         * Form.cs: 
9839           - ShowDialog(): Removed explicit creation of the form, let RunLoop
9840             handle it instead
9841           - ShowDialog(): If no dialog result is set, we need to return Cancel
9842           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
9843             the close is cancelled
9844
9845 2006-05-25  Jackson Harper  <jackson@ximian.com>
9846
9847         * StatusBar.cs: We only need to update the sizes of the other
9848         panels when we have auto size contents.  Also we are only updating
9849         the contents of the panel, not the borders, so compensate for the
9850         border width (TODO: get this width from the theme somehow).
9851         * TreeView.cs: Scrollable is true by default
9852         - Use invalidate instead of refresh where needed
9853         - Factor the scrollable value into scrollbar updating
9854         - Update the scrollbars if the Scrollable property is altered
9855         - Update the selected node if its ImageIndex is changed
9856         - Handle null nodes in UpdateNode (mainly so we don't have to
9857         check if selected is null when updating it
9858         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
9859         are factored into the visible count
9860         - Use VisibleCount for clarity in the code
9861         - When the font is changed we need to recurse through all the
9862         nodes and invalidate their sizes
9863         
9864 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9865
9866         * Application.cs: set the DialogResult to fixed when the main form is
9867         hidden or destroyed while being modal.
9868
9869 2006-05-25  Miguel de Icaza  <miguel@novell.com>
9870
9871         * Theme.cs: Use Tangoified messagebox icons. 
9872
9873         (GetSizedResourceImage): Also cope with width = 0 and do not
9874         trigger a warning in that case (0 means "give me your icon from
9875         the resouce, no special size needed).
9876
9877 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
9878
9879         * Application.cs: Leave runloop if the the main modal form is 
9880           hidden (fixes #78484)
9881
9882 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
9883
9884         * BindingContext.cs : reject null datasource in Contains() and
9885           Item[].
9886         * CurrencyManager.cs : check data_member validity when data_source
9887           is dataset. When it is late binding, the initial position is -1.
9888
9889 2006-05-24  Jackson Harper  <jackson@ximian.com>
9890
9891         * TreeNodeCollection.cs: Dont't recalculate the visible order on
9892         inserted nodes that aren't visible.  This changes the
9893         max_visible_order which confuses scrollbar settings.
9894         - Use the enumerator to get the prev node instead of duplicating
9895         code.
9896         * TreeView.cs: Use new method for setting scrollbar values
9897         - Don't set the bounds every time the scrollbar is updated
9898         - When updating below the root node use an invalidate instead of a
9899         refresh to prevent the child controls (scrollbars) from being
9900         refreshed. (UpdateBelow still needs to be reworked anyways).
9901         - Reenable SetBottom now that visible orders are set correctly,
9902         added some debug code incase we ever get bad values there again.
9903         - Set the scrollbar max to 2 less then the max value, this
9904         compensates for the max value being one above the node count, and
9905         for scrollbars adding one extra "notch".
9906         - When drawing image nodes if there is an imagelist we draw the
9907         first image in the list if the supplied image index is out of the
9908         image list's bounds.
9909         
9910 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
9911
9912         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
9913           we receive a size change from the WM (Fixes #78503)
9914
9915 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
9916
9917         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
9918           rectangle (Fixes #78501)
9919
9920 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
9921
9922         * ButtonBase.cs: 
9923           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
9924             as a bitfield.
9925           - Fixed MouseMove to no longer switch pressed state unless the left
9926             mouse button is pressed. Atsushi provided the original patch (#78485)
9927           
9928 2006-05-24  Jackson Harper  <jackson@ximian.com>
9929
9930         * ScrollBar.cs: New internal methods that allow us to change a
9931         couple values on the scrollbar (the most common case is maximum
9932         and large change) without getting multiple invalidates.
9933
9934 2006-05-24  Chris Toshok  <toshok@ximian.com>
9935
9936         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
9937         (Edit): save off the original state in oldState, and set
9938         grid.is_editing to true.
9939         (OnKeyDown): abort editing if escape is pressed.  also, call
9940         NextState if space is pressed.
9941         (OnMouseDown): call NextState.
9942         (NextState): factor out shared code from OnKeyDown and OnMouseDown
9943         here.  Also, only invalidate the row header once (on the initial
9944         is_changing switch) to save on redraws.
9945
9946 2006-05-24  Chris Toshok  <toshok@ximian.com>
9947
9948         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
9949         if the value in the cell is different than it was before.  This
9950         keeps us from triggering a layout when we move around a datarid
9951         with a highlighted cell.
9952         (Edit): suspend layout when creating/positining the text box, and
9953         resume passing false so we don't ever actually re-layout.
9954         (ReleaseHostedControl): same.
9955         (EnsureTextBox): reformat slightly, and set WordWrap to false.
9956
9957         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
9958         control-key sequences should go to the datagrid - remove that
9959         lock.  Also, modify the conditions under which we move between
9960         cells when moving the cursor within a cell, and remove the "this"
9961         and "base" from field accesses.  We weren't even consistent, given
9962         they all were in the base class.
9963
9964 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
9965
9966         * Binding.cs : (.ctor)
9967           An obvious NRE fix for BindingTest.CtorNullTest().
9968
9969 2006-05-23  Chris Toshok  <toshok@ximian.com>
9970
9971         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
9972         them between lines.  This fixes some quirks editing cells in the
9973         datagrid.
9974
9975 2006-05-23  Jackson Harper  <jackson@ximian.com>
9976
9977         * TreeView.cs: Use begin/end update when doing expand/collapse all
9978         so that we don't get flicker on the scrollbar.
9979
9980 2006-05-23  Jackson Harper  <jackson@ximian.com>
9981
9982         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
9983         treenode calculations to be independant of the painting code. To
9984         do this nodes track a visible order which is calculated by the
9985         treeview.
9986         - Call new methods for expanding/collapsing nodes.  These methods
9987         use scrollwindow so we don't have to update everything below the
9988         node.
9989         * TreeView.cs: Refactored drawing and scrolling code.  We don't
9990         need to update nodes when drawing anymore or calculate scrollbar
9991         stuff.
9992         - Added new methods for expanding/collapsing nodes. These methods
9993         use ScrollWindow so as to not have to redraw all the nodes below.
9994         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
9995         we add/remove nodes or sort.
9996         - Handle removing the selected and the top node properly.
9997
9998 2006-05-23  Chris Toshok  <toshok@ximian.com>
9999
10000         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
10001         maybe this should actually happen in the datagrid code?
10002         (EndEdit): no need to invalidate anything, given that
10003         ReleaseHostedControl causes the datagrid to relayout, which
10004         invalidates everything anyway.
10005
10006         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
10007         in SetCurrentCell).
10008         (set_SelectionBackColor): call InvalidateSelection instead of
10009         Refresh.
10010         (set_SelectionForeColor): same.
10011         (BeginEdit): Flesh this out a bit.
10012         (CancelEditing): only do any of this if we're editing/adding.
10013         (EndEdit): same.
10014         (OnMouseDown): there's no need to cancel editing here, it's done
10015         in SetCurrentCell.
10016         (SetCurrentCell): only invalidate the current row header if it's a
10017         different row than the new one.
10018         (ShiftSelection): fix this to work like MS does.
10019         (ResetSelection): factor out the invalidation of selected_rows to
10020         InvalidateSelection.
10021         (SetDataSource): cancel any editing that's going on.
10022
10023         * DataGridColumnStyle.cs
10024         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
10025         call the non-interface version.
10026
10027         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
10028         header rectangle with the clip rectangle so we don't redraw the
10029         entire header for just a small area.  Gets rid of the last flicker
10030         when horizontally scrolling.
10031         (DataGridPaintRow): same.
10032
10033 2006-05-23  Mike Kestner  <mkestner@novell.com>
10034
10035         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
10036         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
10037         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
10038         Critical bug report.
10039
10040 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
10041
10042         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
10043           and this fixes #78493
10044
10045 2006-05-23  Miguel de Icaza  <miguel@novell.com>
10046
10047         * Theme.cs (GetSizedResourceImage): Scale images if the proper
10048         size is not found.  
10049         
10050         * FileDialog.cs: Do not change the background for the side bar as
10051         it wont work nicely with the theme, and also reduces the artifacts
10052         in rendering the icons (which I want to fix too).
10053
10054         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
10055         resources, not resgen resources. 
10056
10057         (PlatformDefaultHandler): Pull images using the new API.
10058
10059 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
10060
10061         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
10062           a reference to the hwnd and will not remove it unless there are
10063           no pending exposures (fixes #78341)
10064         * XplatUI.cs: Improved debug
10065
10066 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
10067
10068         * MenuAPI.cs : don't handle OnClick event when it was not the left
10069           button. Fixed bug #78487.
10070
10071 2006-05-23  Mike Kestner  <mkestner@novell.com>
10072
10073         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
10074         prefer submenus to the top menu for item lookup, to avoid popping down
10075         top-row items.
10076
10077 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
10078
10079         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
10080           Graphics.FillRectangle as the visual results are really bad (even
10081           on win). We now draw perfect arrows (and perfect shadows when the
10082           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
10083           Pen.DashPattern to draw the dots of each line.
10084
10085 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
10086
10087         * FileDialog.cs: Update the filename combobox when navigating through
10088           the ListView with the cursor keys. Fixes part 7 of bug #78446.
10089
10090 2006-05-22  Mike Kestner  <mkestner@novell.com>
10091
10092         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
10093         Fixes #78463.
10094
10095 2006-05-22  Mike Kestner  <mkestner@novell.com>
10096
10097         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
10098         requests. Fix a misspelled parameter and a copy paste exception error
10099         in Select.
10100
10101 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
10102
10103         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
10104           to get the same width/height (5/13) on X11 as the default font has on
10105           win32. This means that our DefaultFont emSize is smaller than the 
10106           the MS SWF equivalent (even thought the width/height stays the same)
10107
10108 2006-05-20  Jackson Harper  <jackson@ximian.com>
10109
10110         * MdiClient.cs:
10111         * MdiWindowManager.cs:
10112         * InternalWindowManager.cs: Make sure to use the border width from
10113         the theme.
10114
10115 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
10116
10117         * PrintDialog.cs: Implements printer details
10118
10119 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
10120
10121         * FileDialog.cs: Added focus handling for PopupButtonPanel.
10122           Fixes part 1 and 2 of bug #78446
10123
10124 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
10125
10126         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
10127           instead of sticking to the first ever calculated value
10128
10129 2006-05-19  Mike Kestner  <mkestner@novell.com>
10130
10131         * ComboBox.cs: fix mouse motion selection to use MousePosition and
10132         PointToClient, since Capture is set. Fixes #78344.
10133
10134 2006-05-19  Mike Kestner  <mkestner@novell.com>
10135
10136         * ListView.cs: match MS behavior in Details view where items are not
10137         drawn if Columns.Count == 0. 
10138         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
10139         Use a separate pen to draw the check, since changing the width affects
10140         the box as well.  Fixes #78454.
10141
10142 2006-05-18  Miguel de Icaza  <miguel@novell.com>
10143
10144         * ListView.cs: ArgumentOutOfRangeException, single versions of the
10145         exception should throw the name of the invalid argument.
10146
10147         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
10148         there are no files listed. 
10149
10150 2006-05-18  Jackson Harper  <jackson@ximian.com>
10151
10152         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
10153         up.
10154
10155 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
10156
10157         * Control.cs: Brought back our old UpdateZOrder method as a private
10158           function and switched our calls from UpdateZOrder to the new one.
10159           This fixes the Paint.Net canvas disappearing bug.
10160
10161 2006-05-18  Jackson Harper  <jackson@ximian.com>
10162
10163         * Theme.cs:
10164         * ThemeWin32Classic.cs:
10165         * InternalWindowManager.cs: Move the drawing into the theme,
10166         expose everything the theme should need from the window manager.
10167
10168 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
10169
10170         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
10171           from the call to NativeWindow to avoid walking up the parent chain
10172           further than needed (speeds up setting cursors and avoids setting
10173           the wrong cursor if a parent has another cursor defined)
10174         * Cursor.cs: When loading an icon as cursor, MS uses the center of
10175           the icon as hotspot, not what's contained as hotspot in the icon
10176           file. This fixes the perceived drawing offset seen with Paint.Net
10177         
10178 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
10179
10180         * XplatUIX11.cs: 
10181           - Store the calculated rectangle in Hwnd object and use it when 
10182             setting the client size
10183           - Force Toolwindows to always be type Dock, to ensure they're on top
10184
10185 2006-05-18  Mike Kestner  <mkestner@novell.com>
10186
10187         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
10188         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
10189         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
10190         Substantial refactoring to remove confusing nested classes. Coding
10191         standard and Get+Set->property refactorings.  Shift to index based
10192         highlighting in ComboListBox instead of constantly using IndexOf and
10193         Items[]. Add invalidations on resize for DropDownList to fix ugliness
10194         in FileDialog growth.  Draw borders manually since Simple mode needs
10195         to look like two independent controls.  Make listbox border
10196         conditional to DropDownStyle.  Improved OwnerDraw support.
10197
10198 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
10199
10200         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
10201         Don't set the disposed graphics to null, so we can throw the "right"
10202         exception if the graphics is reused later (added a flag to avoid 
10203         double disposing). Some behaviours are different under 2.0 and are
10204         filled under bug #78448.
10205
10206 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
10207
10208         * Control.cs: When double-buffering is enabled, we need to reset
10209           our graphics context between paint calls. Otherwise, any 
10210           transformations and other alterations on the context will 
10211           become cumulative (#77734)
10212
10213 2006-05-18  Mike Kestner  <mkestner@novell.com>
10214
10215         * ListView.cs: do focused item selection like MS on clicks. 
10216         Rework focus handling for ItemControl so LostFocus invalidates as
10217         well.
10218         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
10219         the ListView ItemControl has focus.
10220
10221 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
10222
10223         * XplatUIX11.cs: If client_window ends up being width or height zero
10224           due to border settings, move it off window inside whole_window (#78433)
10225
10226 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
10227
10228         * Mime.cs: Shrink the mime file cache correctly.
10229
10230 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
10231
10232         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
10233
10234 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
10235
10236         * XplatUIX11.cs (AddExpose): More sanity checks
10237
10238 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
10239
10240         * XplatUIX11.cs:
10241           - AddExpose: Don't add expose ranges outside the size of our
10242             window
10243           - Cast opacity values to Int32 to avoid crashes with certain
10244             values
10245           - Added disabled code paths that protect against illegal cross-
10246             thread painting (Developers.exe)
10247
10248 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
10249
10250         * ProgressBar.cs: Invalidate the control when it's resized
10251           since block size is based on control size. (#78388)
10252
10253 2006-05-16  Miguel de Icaza  <miguel@novell.com>
10254
10255         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
10256         of setting the incoming argument to the "reset" value, we set the
10257         this.datamember to string.empty (before we were invalidating the
10258         incoming data).   
10259
10260         Fixes 78420
10261
10262 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
10263
10264         * Form.cs: Only apply transparency settings after the form
10265           is created. (Fixes #77800)
10266
10267 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
10268
10269         * ApplicationContext.cs: Grab the HandleDestroyed event so
10270           we know when to fire OnMainFormClosed 
10271
10272 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
10273
10274         * Application.cs: Introduced sub-class to allow tracking of
10275           threads and centralized triggering of the event mess for
10276           ThreadExit, AppExit, etc..  (#76156)
10277
10278 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
10279
10280         * MimeIcon.cs:
10281           - Do not return a null icon index value for a mime subclass.
10282             Instead try the main mime type class too.
10283           - Seems that some newer distributions don't have a link to some
10284             gnome default icons anymore. So check the default gnome dir too.
10285           
10286
10287 2006-05-16  Jackson Harper  <jackson@ximian.com>
10288
10289         * MdiClient.cs: Don't paint the parent background image if we have
10290         our own background image.
10291
10292 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
10293
10294         * Control.cs:
10295           - PerformLayout: Do not shrink space filled by DockStyle.Fill
10296             controls, all filled controls are supposed to overlap (#78080)
10297           - UpdateZOrder is supposed to update the control's z-order in the
10298             parent's z-order chain. Fixed to behave like that
10299           - BringToFront: Removed obsolete code
10300           - SendToBack: Simplyfied
10301           - SetChildIndex: Trigger layout calculations when Z-order changes
10302             since layout is done by z-order
10303
10304 2006-05-16  Chris Toshok  <toshok@ximian.com>
10305
10306         [ fixes bug #78410 ]
10307         * DataGrid.cs (set_AlternatingBackColor): use
10308         grid_drawing.InvalidateCells instead of Refresh().
10309         (set_BackColor): call grid_drawing.InvalidateCells.
10310         (set_BackgroundColor): use Invalidate instead of Refresh.
10311
10312         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
10313         invalidate the cell area.
10314
10315 2006-05-15  Chris Toshok  <toshok@ximian.com>
10316
10317         [ fixes bug #78011 ]
10318         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
10319         on to DataGridPaintRow.
10320         (DataGridPaintRow): take a clip argument, and only draw the cells
10321         which intersect it.  same with the not_usedarea.
10322
10323         * Theme.cs (DataGridPaintRow) add @clip parameter.
10324
10325         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
10326         XplatUI.ScrollWindow.
10327         (ScrollToRow): same.
10328
10329         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
10330         with last column which was causing a gray swath to appear with the
10331         XplatUI.ScrollWindow code.
10332
10333 2006-05-15  Chris Toshok  <toshok@ximian.com>
10334
10335         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
10336         use XplatUI.ScrollWindow.
10337         (VerticalScrollEvent): use XplatUI.ScrollWindow.
10338
10339 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
10340
10341         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
10342
10343 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
10344
10345         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
10346           file since there are no equivalent X11 cursors
10347
10348 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
10349
10350         * MonthCalendar.cs : DateTimePicker should reflect selected date
10351           on mouse*up*, not mouse*down*. Fixed originally reported part of
10352           bug #76474.
10353
10354 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
10355
10356         * TabControl.cs : When argument index is equal or more than tab
10357           count, just ignore. Fixed bug #78395.
10358
10359 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
10360
10361         * Control.cs: Dispose all child controls when control is diposed (#78394)
10362
10363 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
10364
10365         * ColorDialog.cs: Finally it is possible to select the color with
10366           the text boxes
10367
10368 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
10369
10370         * PrintDialog.cs: Fix typo
10371
10372 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
10373
10374         * PrintDialog.cs: PrintDialog is not resizable
10375         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
10376           color. Made some ToolBar drawing methods protected virtual.
10377
10378 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
10379
10380         * PrintDialog.cs: Implementation of the PrintDialog
10381
10382 2006-05-12  Chris Toshok  <toshok@ximian.com>
10383
10384         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
10385         thumb, instead use MoveThumb.  This has the side effect of making
10386         most of the other thumb moving machinery use MoveThumb as well.
10387         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
10388         need to actually invalidate the rectangle where the new thumb will
10389         go.
10390         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
10391         We force an Update() after, so it's not as fast as it could be,
10392         but at least there's zero flicker and no droppings.
10393         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
10394         (UpdateThumbPos): add another argument (dirty), which says whether
10395         or not to calculate/add dirty regions which we later invalidate.
10396         For cases where we know we're going to use MoveThumb, we pass
10397         false for this.  Otherwise, pass true.
10398
10399 2006-05-12  Jackson Harper  <jackson@ximian.com>
10400
10401         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
10402         the status bar.
10403         
10404 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
10405
10406         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
10407           and GetClipRegion methods and UserClipWontExposeParent property.
10408         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
10409           overriding UserClipWontExposeParent property, setting to false, since
10410           Win32 handles the required expose messages to draw our clipped parent
10411           areas internally
10412         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
10413           PaintEventStart to set the user clip region if set.
10414         * Control.cs: 
10415           - Now internally tracking the Region for the control since we need to
10416             store it if the handle is not yet created and only set it when it
10417             becomes created. Before setting the region forced handle creation
10418           - Added code to draw the parents underneath a user-clipped region
10419         * Hwnd.cs: Added UserClip property
10420
10421 2006-05-12  Chris Toshok  <toshok@ximian.com>
10422
10423         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
10424         (set_Maximum): same.
10425         (set_Minimum): same.
10426         (set_SmallChange): same.
10427         (OnMouseUpSB): remove the call to refresh when releasing the
10428         thumb.  We shouldn't need it.
10429         
10430 2006-05-12  Miguel de Icaza  <miguel@novell.com>
10431
10432         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
10433         AutoSize set to None, we do not need to relayout everything, we
10434         just need to invalidate the current region.
10435
10436         (Draw): Do not draw the entire ClientArea, just redraw the
10437         clip area being passed.
10438
10439         * MdiClient.cs: Make MdiClient constructor with the Form argument
10440         internal. 
10441
10442 2006-05-12  Jackson Harper  <jackson@ximian.com>
10443
10444         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
10445         parents background image,  but strangely not their own.
10446         - (DrawStatusBarPanel): Take into account horizontal alignment
10447         when drawing the strings and icons.
10448
10449 2006-05-12  Mike Kestner  <mkestner@novell.com>
10450
10451         * ListBox.cs: avoid invalidations for focus when the collection is
10452         empty. 
10453
10454 2006-05-12  Chris Toshok  <toshok@ximian.com>
10455
10456         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
10457         invalidate the entire thumb area.  Call InvalidateDirty which
10458         limits the redraw to the thumb itself and surrounding pixels.
10459
10460         * XplatUIX11.cs (ScrollWindow): optimize copying.
10461         
10462 2006-05-12  Chris Toshok  <toshok@ximian.com>
10463
10464         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
10465         Figure out the positioning/layout in a single pass instead of
10466         multiple recursive invocations.  Speeds up the initial display of
10467         the data grid.  Also, make many things private that were
10468         originally public but unused outside this class.
10469
10470 2006-05-11  Jackson Harper  <jackson@ximian.com>
10471
10472         * MdiClient.cs: Improved layout code.
10473
10474 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
10475
10476         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
10477           not SelectedObject.
10478
10479 2006-05-11  Chris Toshok  <toshok@ximian.com>
10480
10481         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
10482         union of that will always be {0,0,width,height}.
10483
10484 2006-05-11  Jackson Harper  <jackson@ximian.com>
10485
10486         * Form.cs: Match MS's DefaultSize for forms (they must have
10487         changed the size in sp2).
10488
10489 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
10490
10491         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
10492
10493 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
10494
10495         * TextControl.cs : Fixed bug #78109. This incorrect position
10496           comparison caused crash on automatic line split.
10497         * TextBoxBase.cs : reduce duplicate code.
10498
10499 2006-05-10  Jackson Harper  <jackson@ximian.com>
10500
10501         * MdiClient.cs: Active form is only sent to the back when using
10502         the Next form functionality, when a form is clicked the current
10503         active shouldn't be sent to the back.
10504         - Layout the mdi windows when the container is first made visible.
10505         * Form.cs: Give the MdiClient a ref to the containing form when we
10506         create it.
10507         
10508 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
10509
10510         * LinkLabel.cs : link_font could be uninitialized, so populate one
10511           before actual use. Fixed bug #78340.
10512
10513 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
10514
10515         * XplatUIX11.cs : clipboard format native value is IntPtr.
10516           Fixed bug #78283.
10517
10518 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
10519
10520         * Control.cs: 
10521           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
10522             which is passed up the parent chain by DefWndProc
10523           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
10524             to DefWndProc (#77956)
10525         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
10526
10527 2006-05-10  Jackson Harper  <jackson@ximian.com>
10528
10529         * MdiClient.cs: We need to remove the controls from the mdi
10530         collection, when we close the window.
10531         * MdiWindowManager.cs: Special handling of closing mdi windows.
10532         * InternalWindowManager.cs: Make the close method virtual so the
10533         mdi window manager can handle it specially.
10534
10535 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
10536
10537         * DataGrid.cs:
10538           - Recalculate grid when the data source has changed
10539           - Matches styles provided by user from all data sources types
10540         * DataGridTableStyle.cs: For columns that provided by the user set the
10541         with the preferred value is there was unassigned.
10542         * CurrencyManager.cs: throw OnItemChanged event
10543
10544 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
10545
10546         * PictureBox.cs: Don't animate until handle is created. Start animation
10547           when handle is created.
10548
10549 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
10550
10551         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
10552           current codebase.
10553         * XEventQueue.cs: We don't need to provide the extra info
10554
10555 2006-05-10  Jackson Harper  <jackson@ximian.com>
10556
10557         * MdiClient.cs: If the mdi clients parent form has a background
10558         image set, we draw that background image for the mdi area's
10559         background.
10560
10561 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
10562
10563         * TextBoxBase.cs: Set IBeam cursor (#78347)
10564
10565 2006-05-10  Mike Kestner  <mkestner@novell.com>
10566
10567         * ToolBar.cs: fix some text padding issues with ButtonSize
10568         calculation. Update the default size to match MS documentation.
10569         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
10570         button size. Fixes #78296.
10571
10572 2006-05-10  Mike Kestner  <mkestner@novell.com>
10573
10574         * ListBox.cs: use is_visible for scrollbar positioning in case the
10575         control isn't on screen yet.  Fix off by one with Right vs Width
10576         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
10577         
10578 2006-05-10  Jackson Harper  <jackson@ximian.com>
10579
10580         * X11Dnd.cs: Drop to a control with another control on top of it.
10581         * ToolBar.cs: Work on a copy of the buttons list, so that it can
10582         be modified in click handlers. TODO: Look for similar problems in
10583         other controls.
10584
10585 2006-05-09  Jackson Harper  <jackson@ximian.com>
10586
10587         * Form.cs: Window managers need the old window state when setting
10588         window state now.
10589         * InternalWindowManager.cs: Allow the base mdi window manager to
10590         handle more of the MDI only stuff (like maximize buttons).
10591         * MdiWindowManager.cs: Fix some snafus in changing the window
10592         state.  Add all the menu functionality, for both popup and
10593         maximized menus.
10594         * MdiClient.cs: When a new form is selected the currently
10595         activated form is sent to the back, this matches MS.
10596         - Implement a new method to activate the next mdi child window.
10597
10598 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
10599
10600         * Control.cs: 
10601           - Added new InternalCapture method to allow controls to prevent
10602             the capture behaviour on the click handlers
10603           - Switched to use InternalCapture
10604         * ComboBox.cs:
10605           - Using InternalCapture to prevent mouse captures from being released
10606             on mouse button release (Fixes #78100)
10607         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
10608           returns Form borders if a caption is present. (Fixes #78310)
10609
10610 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
10611
10612         * TreeNode.cs: Changed serialization .ctor to not require every field
10613           to be present. (#78265)
10614         * OwnerDrawPropertyBag.cs: Added serialization .ctor
10615
10616 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
10617
10618         * MimeIcon.cs: for is faster than foreach for strings.
10619
10620 2006-05-05  Mike Kestner  <mkestner@novell.com>
10621
10622         * CheckedListBox.cs: update check handling code to not use selected.
10623         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
10624         behavior for visual feedback, motion response, shift/ctrl handling,
10625         and properly deal with all 4 selection modes. Updates to bounds
10626         handling logic.  Add scroll wheel support. [Fixes #77842]
10627
10628 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
10629
10630         * ListView.cs:
10631           - Moved adding of Implicit controls into .ctor. That way, subsequent
10632             creation of the controls will not cause them to think they are 
10633             toplevel windows (fixes #78200 header problem)
10634           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
10635           - Switched visibility setting of header control to use internal field
10636             to avoid triggering handle creation
10637           - Now checking if handle is created before causing a refresh when items
10638             are added (This makes us now match handle creation time with MS)
10639         * Splitter.cs: Removed loading of private splitter cursor, switched to
10640           Cursors version now that that is loading the right ones
10641         * Cursors.cs: Load proper splitter cursors from resources
10642         * Cursor.cs: Added second method of loading resource cursors for the 
10643           VS.Net users amongst us
10644
10645 2006-05-05  Mike Kestner  <mkestner@novell.com>
10646
10647         * ListView.cs: give header_control a minimum size based on the
10648         ListView size.
10649
10650 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
10651
10652         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
10653           window seems to do that with metacity, so set that type. (#78120)
10654
10655 2006-05-05  Mike Kestner  <mkestner@novell.com>
10656
10657         * ListViewItem.cs: fix Details mode checkbox layout bug.
10658         * ThemeWin32Classic.cs: draw a ListView column header for unused space
10659         at the end of the header, if it exists. [Fixes for #78200]
10660
10661 2006-05-04  Jackson Harper  <jackson@ximian.com>
10662
10663         * MdiClient.cs: Add a helper property to get the container form.
10664         * MdiWindowManager.cs: We have to make sure to use the menu origin
10665         when drawing the icons and buttons, this fixes maximized window
10666         icons/buttons on win32.
10667         * InternalWindowManager.cs: Reset the restore captions when a
10668         window goes from Maximized to Minimized and vice versa. Move the
10669         DrawMaximizedButtons into the MdiWindowManager source, tool
10670         windows can't be maximized. NOTE: This could use a little
10671         refactoring if time ever permits.
10672         
10673 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
10674
10675         * TextBox.cs: Add MWFCategoryAttributes
10676         * TextBoxBase.cs: Add MWFCategoryAttributes
10677         * Form.cs: Add MWFCategoryAttributes
10678
10679 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
10680
10681         * Control.cs: Add MWFCategoryAttributes
10682         * ScrollableControl.cs: Add MWFCategoryAttributes
10683
10684 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
10685
10686         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
10687           Divider is true. Fix a little glitch in PropertyToolBar
10688           drawing code
10689
10690 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
10691
10692         * Control.cs:
10693           - Dispose: Call base.Dispose, this causes the disposed event
10694             to be fired (and probably other, more important stuff)
10695           - SetVisibleCore: Set is_visible to true after creating the
10696             window so that the window still gets created invisible (if
10697             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
10698             to generate a WM_ACTIVE message
10699         * Form.cs: Call Dispose when we want to destroy the window, instead of
10700           just destroying the handle (Dispose will do that for us)
10701         * XplatUIX11.cs:
10702           - RootWindow also needs a queue, so we can properly process the
10703             property change events from RootWindow (like Activate)
10704           - Generatic synthetic WM_ACTIVE message when the active window is
10705             being destroyed
10706
10707 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
10708
10709         * LinkLabel.cs: Trigger a recalc of our label dimensions when
10710           bounds are changed
10711
10712 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
10713
10714         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
10715           for determining width and height (image might not be assigned if
10716           we're drawing an imagelist)
10717
10718 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
10719
10720         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
10721         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
10722           height from system
10723         * Theme.cs: No longer returns hardcoded menu height, instead calls
10724           new driver method
10725         * Form.cs (OnLoad): Scaling happens before triggering Load events 
10726           on MS (# 78257)
10727
10728 2006-05-01  Mike Kestner  <mkestner@novell.com>
10729
10730         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
10731
10732 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
10733
10734         * TextBoxBase.cs: Removed Fixme
10735         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
10736
10737 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
10738
10739         * XplatUIX11.cs:
10740           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
10741             the rectangle relative to the parent, considering borders. We
10742             don't really want that.
10743           - ScrollWindow: Fixed warning to be more understandable
10744         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
10745           scrollbars and scroll only the visible area
10746         * RichTextBox.cs: Removed debug output
10747
10748 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
10749
10750         * NumericUpDown.cs (Text): Just use base
10751         * UpDownBase.cs: Ensure txtView is created before using it
10752
10753 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
10754
10755         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
10756           casting to IntPtr to avoid 64bit overflow errors
10757
10758 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
10759
10760         * Control.cs:
10761           - AllowDrop: Don't force handle creation.
10762           - CreateHandle: Added call to tell driver if we're allowed to drop
10763
10764 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
10765
10766         * FileDialog.cs: Remember the last directory not only for the
10767           current instance but also for new FileDialog instances.
10768
10769 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
10770         
10771         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
10772           broke sending async messages
10773
10774 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
10775
10776         * XplatUIX11.cs:
10777           - ScrollWindow: Fixed method. We finally generate expose events again
10778             for scrolled areas. This was causing 'garbage' when scrolling
10779             textbox and other controls that used ScrollWindow
10780           - Switched from using the regular queue for paint events to the MS 
10781             model of 'generating' paint events when the queue is empty.
10782             We use the new XQueueEvent.Paint subclass to store which windows
10783             need painting.
10784           - AddExpose now takes the x/y/width/height of the exposed area
10785             and inserts the window into the paint queue if not already there
10786           - InvalidateWholeWindow: Switched to use new AddExpose method
10787           - UpdateMessageQueue: Added which queue to monitor for paint events
10788           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
10789             the unlikely case nothing above handles it. We reset the expose
10790             pending states to get them off the queue.
10791           - GetMessage: Now pulls a paint event if no other events are in the
10792             queue
10793           - Invalidate: Switched to new AddExpose method
10794           - PeekMessage: Updated to understand pending paint events
10795           - UpdateWindow: Fixed logic bug. We were only updating if the window
10796             didn't need updating. Also switched to sending WM_PAINT directly,
10797             like MS does.
10798         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
10799           and random access Remove(). The random access is needed to handle
10800           UpdateWindow() where a WM_PAINT is sent directly without accessing
10801           the queue.
10802         * ScrollBar.cs: Added Update() calls to cause immediate updates to
10803           allow for better feedback when scrolling. Scrollbars are small and
10804           the immediate update should make it 'feel' more responsive without
10805           slowing things down. ScrollBar still needs it's invaliate logic
10806           updated to not always invalidate the whole bar on certain changes.
10807
10808 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10809
10810         * Control.cs:
10811         (BackColor): if the control does not support a transparent background,
10812         return the default backcolor when the parent backcolor is transparent.
10813
10814 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
10815
10816         * Application.cs: Updated to new StartLoop/GetMessage API
10817         * RichTextBox.cs: Provide some output on RTF parsing errors
10818         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
10819           new queue_id argument to GetMessage and PeekMessage to allow faster
10820           handling of per-thread queues in drivers.
10821         * Hwnd.cs: Added Queue tracking and property
10822         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
10823         * XEventQueue.cs: Added thread trackingA
10824         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
10825         * XplatUIX11.cs:
10826           - Implemented new per-thread queue
10827           - GetMessage: Fixed return/break behaviour on several cases. We were
10828             returning stale messages in some cases, instead of just processing
10829             the next message
10830
10831 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
10832
10833         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
10834
10835 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
10836
10837         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
10838           fixed off-by-one comparisons between Width/Height and Right/Bottom.
10839
10840 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
10841
10842         * PropertyGridView.cs: Fix drop down width.
10843
10844 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
10845
10846         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
10847           a mess in DrawToolBar, so I removed one of them.
10848
10849 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
10850
10851         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
10852           needed (clip). Otherwise we get artifacts.
10853
10854 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
10855
10856         * FixedSizeTextBox.cs: Added constructor to allow specifying which
10857           dimension is fixed
10858         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
10859           and switched FixedSizeTextBox to only be fixed vertical (#78116)
10860         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
10861           if it matches the scale base font (avoids unneeded scaling)
10862
10863 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
10864
10865         * X11DesktopColors.cs: One gtk_init_check should be enough
10866
10867 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
10868
10869         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
10870           match MS behaviour
10871
10872 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
10873
10874         * TextBoxBase.cs: 
10875           - Generate OnTextChanged for Backspace even if we're only deleting
10876             the current selection
10877           - When setting the Text property, only select all text if the
10878             control does not have focus when it is being set. Otherwise
10879             just place the cursor at the beginning of the control
10880
10881 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
10882
10883         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
10884           Added a little helper to draw PropertyGrid ToolBar with a different
10885           border and a different BackColor.
10886         * PropertyGrid.cs: Some background parts didn't get painted with the
10887           correct background color. Added a class that helps us to draw the
10888           correct border for PropertyGridView and a class that helps us to
10889           draw ToolBars with a different backcolor
10890         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
10891
10892 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
10893
10894         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
10895         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
10896
10897 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
10898
10899         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
10900           into the palette entries. Also, since we're working on a copy
10901           we needed to copy the palette back onto the bitmap.
10902         * Cursor.cs: Same fix as XplatUIWin32.cs.
10903
10904 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
10905
10906         * ImageListStreamer.cs: Need to read the var (or we're off)
10907
10908 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
10909
10910         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
10911           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
10912           TextBoxBase.cs: Unused var fixes
10913         * AxHost.cs: Small 2.0 fix
10914         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
10915           as it seems that is what at least Metacity expects. This will make
10916           icons show up on 64bit platforms. We still have some 64bit size
10917           issues, though, since the startup app window size still won't match.
10918
10919 2006-04-25  Mike Kestner  <mkestner@novell.com>
10920
10921         * *.cs: cleanup newly reported exception var unused warnings.
10922
10923 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
10924
10925         * ThemeWin32Classic.cs: Button image alignment now matches exactly
10926           ms
10927
10928 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
10929
10930         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
10931           image. The image position is always the same, no matter if the
10932           button is pressed or not.
10933
10934 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
10935
10936         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
10937           selection and set the correct filename for SaveFileDialog.
10938           Patch by Emery Conrad.
10939
10940 2006-04-24  Mike Kestner  <mkestner@novell.com>
10941
10942         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
10943         check for item.X outside the ClientRect instead of item.Y. Fixes
10944         #78151.
10945
10946 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10947
10948         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
10949         trust that value blindly and do some sanity check. Fixes bug #77814.
10950
10951 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10952
10953         * ImageListStreamer.cs: save the mask as a 1bpp image.
10954
10955 2006-04-21  Mike Kestner  <mkestner@novell.com>
10956
10957         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
10958         pass Checked and Indeterminate to the Theme Engine. Improve
10959         encapsulation with ListBox.
10960         * ListBox.cs: Keep a StringFormat instead of calculating it every item
10961         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
10962         nested types.  Move all CheckState functionality to CheckedListBox.
10963         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
10964         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
10965         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
10966         single base list. Fix scrollbar sizing and placement to mirror MS.
10967         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
10968         used.
10969         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
10970         for CheckedListBox by using new DrawItemState info.  Center the
10971         checkboxes on the items. Use new StringFormat property.
10972
10973 2006-04-18  Jackson Harper  <jackson@ximian.com>
10974
10975         * Form.cs: MdiChildren don't do default locations the same way as
10976         regular forms.  This prevents a crash when trying to position the
10977         mdi windows.
10978
10979 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
10980
10981         * PropertyGridTextBox.cs: Formatting, copyright
10982         * PropertiesTab.cs: Formatting
10983         * PropertyGrid.cs: Formatting
10984         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
10985           click toggling of values
10986           
10987 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
10988
10989         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
10990         * Control.cs (.ctor): verify_thread_handle is static, don't reset
10991           every time a control is created
10992         * Application.cs: Removed obsolete EnableRTLMirroring method
10993
10994 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
10995
10996         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
10997         SelectedIndex to -1. Fixes bug #78121.
10998
10999 2006-04-17  Jackson Harper  <jackson@ximian.com>
11000
11001         * Binding.cs: Handle null values for Current and BindingContext.
11002         This occurs when binding is a little delayed.
11003         * CurrencyManager.cs: return null for Current when there are no
11004         items in the list.
11005         - Hookup to the listchanged event on the DataView and update
11006         bindings when the list is changed.  This fixes late binding of
11007         controls.
11008
11009 2006-04-17  Jackson Harper  <jackson@ximian.com>
11010
11011         * X11Dnd.cs:
11012         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
11013         Ringenbach.
11014
11015 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
11016
11017         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
11018           place
11019         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
11020           with the correct ButtonState
11021
11022 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
11023
11024         * XplatUIX11.cs: Improved distinguishing between window types to
11025           tell the WM a type closer to what the app wants (Fixes #78107)
11026
11027 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
11028
11029         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
11030           GrabHandle
11031
11032 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
11033
11034         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
11035           drawing code to reflect the size grip changes
11036
11037 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11038
11039         * ImageListStreamer.cs: fix handling of the mask that follows the main
11040         bitmap when deserializing and serialize it properly. The generated mask
11041         should better be a 1bpp image, but I'll do that later.
11042
11043 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
11044
11045         * FileDialog.cs: Show something in the DirComboBox on *nix if the
11046           path doesn't fit into some of our Current.Places
11047
11048 2006-04-13  Jackson Harper  <jackson@ximian.com>
11049
11050         * ComboBox.cs: Use borders instead of drawing our own decorations,
11051         try to obey correct rules for heights.
11052         * Theme.cs:
11053         * ThemeNice.cs:
11054         * ThemeClearLooks.cs:
11055         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
11056         this is now handled by borders.
11057         - Remove unused DrawListBoxDecorationSize method.
11058         
11059 2006-04-13  Mike Kestner  <mkestner@novell.com>
11060
11061         * MenuAPI.cs: null guarding for the disbled click check fixes crash
11062         reported by Alex.
11063
11064 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
11065
11066         * ThemeWin32Classic.cs: 
11067           - Fixed CPDrawStringDisabled
11068           - Corrected drawing of disabled menu items
11069           - Fixed drawing of disabled radio buttons (bug #78095)
11070           - Draw check in a disabled CheckBox with color ControlDark 
11071
11072 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
11073
11074         * Form.cs: Use the provided width when calculating the menu size;
11075           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
11076           and ClientSize.Width won't be updated yet
11077         * Application.cs: Use Visible instead of Show() to make form visible,
11078           this way we create the handle later and menusize is considered
11079
11080 2006-04-12  Mike Kestner  <mkestner@novell.com>
11081
11082         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
11083         reporting.
11084
11085 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
11086
11087         * TextBox.cs: Implemented context menu
11088
11089 2006-04-12  Mike Kestner  <mkestner@novell.com>
11090
11091         * ListView.cs: implement box selection. fixes #77838.
11092         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
11093
11094 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
11095
11096         * XplatUIX11.cs: Added setting of window type when transient window
11097           is created (metacity would move it otherwise)
11098         * X11Structs.cs: Added WINDOW_TYPE atoms
11099         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
11100           background (the control is Opaque but still wants transparent
11101           backgrounds)
11102
11103 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
11104
11105         * Control.cs: Added OnPaintBackgroundInternal to allow controls
11106           that set Opaque but don't mean it (like all ButtonBase-derived
11107           controls) to still draw their background
11108         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
11109           the background
11110
11111 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
11112
11113         * Control.cs (PaintControlBackground): Set the graphics object
11114           on our PaintEvent to null to prevent it from being disposed
11115           when the PaintEvent gets disposed
11116
11117 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
11118
11119         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
11120         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
11121
11122 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
11123
11124         * Control.cs: 
11125           - Added transparency check to BackColor property. Transparent
11126             backgrounds are only allowed if the control styles permit it
11127           - Added recursive painting of parent control background and
11128             foreground if a control with a transparent backcolor is drawn
11129             (Thanks to Tim Ringenback for providing his 'hack' as a base
11130              for this patch) Fixes #77985 and #78026.
11131           - Added Opaque style check before calling OnPaintBackground, no
11132             need to draw the background if the control is opaque
11133           - Removed ControlAccessibleObject owner variable (inherited from
11134             base, no need to define again)
11135           - Added some documentation links explaining the drawing events
11136             and styles
11137
11138 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
11139
11140         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
11141           that the affected control is the located at the left border of our
11142           parent (Fixes #77936)
11143
11144 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
11145
11146         * TextBoxBase.cs: When rendering disabled or readonly controls,
11147           draw the background with 'Control' instead of 'Window' color as
11148           long as the user hasn't specifically set a color
11149
11150 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
11151
11152         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
11153           since that won't be updated if the user types text (only if it's
11154           programatically set)
11155
11156 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
11157
11158         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
11159           layout changes do to app-triggered resizes will have the proper
11160           display rectangle for layout
11161
11162 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
11163
11164         * ThemeWin32Classic.cs:
11165           - Make use of the SystemBrushes and SystemPens wherever possible
11166           - Corrected some highlight colors
11167           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
11168             drawing
11169         * Theme.cs: Added Empty field to CPColor struct
11170
11171 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
11172
11173         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
11174           is displayed when calculating the display rectangle. Thanks to Mike
11175           for teaching me the err of my ways.
11176
11177 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
11178
11179         * ScrollableControl.cs:
11180           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
11181             (instead of 0,0) and we now return the real width/height instead of
11182             just the clientrectangle, adjusted for padding. The rectangle is
11183             now cached and created by the new CalculateDisplayRectangle method.
11184           - Created new CalculateDisplayRectange method, which basically does
11185             what get_DisplayRectangle() did originally, but now using the 
11186             right edge instead of DisplayRectangle to determine the size of
11187             our scrollbars
11188           - get_Canvas(): Fixed it to properly calculate canvas for 
11189             right/bottom controls which seem to be placed to the right/bottom
11190             of any controls that have a fixed location
11191           - Removed TODO that's taken care of
11192           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
11193             and SetDisplayRectLocation according to new MSDN2 docs
11194           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
11195             event when that is called, this is added for compatibility
11196           - ScrollControlIntoView(): Implemented.
11197           - Switched scrollbars to be implicit, they shouldn't be selectable
11198         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
11199           call it when the active control is set/changed
11200         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
11201         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
11202           implicit_control variable (used for native Win32 message generation)
11203         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
11204           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
11205         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
11206         * XplatUIStructs.cs: Added ScrollBarCommands enum
11207
11208 2006-04-10  Jackson Harper  <jackson@ximian.com>
11209
11210         * ButtonBase.cs:
11211         * CheckedListBox.cs:
11212         * ComboBox.cs:
11213         * DataGrid.cs:
11214         * DataGridView.cs:
11215         * Form.cs:
11216         * GroupBox.cs:
11217         * ListBox.cs:
11218         * PrintPreviewControl.cs:
11219         * ProgressBar.cs:
11220         * PropertyGrid.cs:
11221         * Splitter.cs:
11222         * StatusBar.cs:
11223         * TrackBar.cs:
11224         * UpDownBase.cs: Fixup base event overrides.
11225         
11226 2006-04-06  Mike Kestner  <mkestner@novell.com>
11227
11228         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
11229         all user-initiated value changes to min <= value <= max-thumbsz+1.
11230         (set_Value): check for vert/horiz when calculating new thumb position.
11231         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
11232         like MS does.
11233         (OnMouseMoveSB): refactor the thumb dragging code and refine
11234         invalidation logic to reduce flicker.
11235         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
11236         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
11237         (UpdateThumbPosition): small code readability cleanup
11238
11239 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
11240
11241         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
11242           different
11243
11244 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
11245
11246         * ThemeNice.cs: Use a better graphics effect when a button is pressed
11247
11248 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
11249
11250         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
11251         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
11252           This dramatically reduces the number of Pen.Dispose calls. 
11253           Where possible call ResPool methods only once instead of calling it
11254           over and over again (for example for the same color).
11255
11256 2006-04-06  Mike Kestner  <mkestner@novell.com>
11257
11258         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
11259         Also remove an unused private field on the collection. Fixes #77972.
11260
11261 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
11262
11263         * ThemeNice.cs: Added ToolBar drawing code
11264
11265 2006-04-06  Mike Kestner  <mkestner@novell.com>
11266
11267         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
11268         I'm assuming that means we need to look up the toplevel for the
11269         provided control. Fixes the crash trace in #77911 but exposes another
11270         crash in some strange reflection usage in NDocGui.
11271
11272 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
11273
11274         * ThemeNice.cs: Gave it a little silver touch and added Images
11275           method
11276         * FontDialog.cs: FontDialog is not resizable
11277         * FileDialg.cs: Added SizeGripStyle.Show
11278
11279 2006-04-05  Jackson Harper  <jackson@ximian.com>
11280
11281         * KeyboardLayouts.cs: Remove warning.
11282
11283 2006-04-05  Jackson Harper  <jackson@ximian.com>
11284
11285         * Control.cs: Enable OnPaintInternal so we can use it for drawing
11286         all of our controls instead of Paint +=.
11287         * ListBox.cs:
11288         * ListView.cs:
11289         * MenuAPI.cs:
11290         * MessageBox.cs:
11291         * NotifyIcon.cs:
11292         * ProgressBar.cs:
11293         * ScrollBar.cs:
11294         * Splitter.cs:
11295         * StatusBar.cs:
11296         * TabControl.cs:
11297         * TextBoxBase.cs:
11298         * ToolBar.cs:
11299         * TrackBar.cs:
11300         * UpDownBase.cs:
11301         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
11302         use OnPaintInternal. Remove Width/Height and Visible checks in
11303         paint handler, this is done at a higher level now.
11304         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
11305         * PaintEventArgs.cs: Add a handled flag so controls that don't
11306         want anymore painting after OnPaintInternal can make sure OnPaint
11307         isn't called.
11308
11309 2006-04-05  Mike Kestner  <mkestner@novell.com>
11310
11311         * Form.cs: fix the menu WndProc hacks to respect the native enabled
11312         state of the form, so that we don't process events when Modal dialogs
11313         are up. Fixes #77922.
11314
11315 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
11316
11317         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
11318           checking is done.
11319
11320 2006-04-05  Mike Kestner  <mkestner@novell.com>
11321
11322         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
11323
11324 2006-04-05  Mike Kestner  <mkestner@novell.com>
11325
11326         * ListView.cs (HeaderMouseMove): null guarding for the over column
11327         when setting up the drag_to_index.  Fixes #78015.
11328
11329 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
11330
11331         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
11332           in the taskbar. Transient windows seem to accomplish that.
11333
11334 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
11335
11336         * Form.cs:
11337           - Re-enabled CreateParams.X/Y code for FormStartPosition
11338           - Added code for manual placement when creating the Control
11339           - Incomplete patch to treat MDI forms differently when
11340             setting the ClientSizeCore. (Still need to figure out handling
11341             x/y coords there)
11342         * XplatUIX11.cs:
11343           - When we're explicitly setting the X/Y position of a non-Child
11344             window, let the WM know. Metacity really wants this.
11345
11346 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
11347
11348         * ThemeNice.cs: Added CPDrawButton
11349
11350 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
11351
11352         * ThemeNice.cs: Changed the color for focused buttons and activated
11353           the arrows for small scroll buttons.
11354
11355 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
11356
11357         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
11358           anymore. Changed some method modifiers to protected (virtual)
11359         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
11360           changes
11361         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
11362           Updated drawing of menus, buttons and progressbars; added
11363           CPDrawBorder3D 
11364
11365 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11366
11367         * ImageListStreamer.cs: implemented serialization/deserialization
11368         of the images.
11369
11370 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
11371
11372         * ThemeWin32Classic.cs:
11373           - Removed all the DrawFrameControl stuff; CPDrawButton,
11374             CPDrawCheckBox and CPDrawRadioButton are now handled directly
11375             inside the methods
11376           - Updated and corrected the drawing code of CPDrawButton,
11377             CPDrawCheckBox and CPDrawRadioButton to better match ms
11378           - Updated theme checkbox and radiobutton code to use the CP*
11379             methods
11380
11381 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
11382
11383         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
11384           bug is fixed
11385
11386 2006-03-31  Jackson Harper  <jackson@ximian.com>
11387
11388         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
11389         sometimes.
11390         * UpDownBase.cs: Don't CreateGraphics manually, use a
11391         Refresh. Ideally we would invalidate the correct areas here.
11392
11393 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
11394
11395         * XplatUIX11.cs: 
11396           - We now track the mapping state of windows. If a window (or 
11397             one of it's parents) is not mapped we no longer permit
11398             WM_PAINT messages to be generated since we'd otherwise get 
11399             lots of BadMatch X errors. Jackson did all the work figuring
11400             out the problem.
11401           - Destroying the caret if the window it's contained in is 
11402             destroyed. Can't use regular DestroyCaret method since it
11403             might fall into a drawing function (trying to remove the
11404             caret) and with that generate new BadMatch errors. Again,
11405             Jackson tracked this down.
11406           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
11407             make sure we send the messages to all windows. (The old code
11408             would send the WM_DESTROY to the window, and then all child
11409             windows would be 'gone' because the WM_DESTROY handle lookup
11410             would no longer find the destroyed window)
11411         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
11412         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
11413
11414 2006-03-31  Jackson Harper  <jackson@ximian.com>
11415
11416         * ScrollableControl.cs: Dont recalc if we are not visible.
11417
11418 2006-03-31  Mike Kestner  <mkestner@novell.com>
11419
11420         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
11421         the visibility branch.
11422
11423 2006-03-31  Jackson Harper  <jackson@ximian.com>
11424
11425         * ScrollBar.cs: Cap values when incrementing/decrementing.
11426
11427 2006-03-31  Mike Kestner  <mkestner@novell.com>
11428
11429         * MenuAPI.cs: setup menu.tracker for popup/context menus.
11430         * ToolTip.cs: guard against timer expirations with no active control.
11431         Not sure why it happened.
11432
11433 2006-03-31  Mike Kestner  <mkestner@novell.com>
11434
11435         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
11436         text.
11437         * ToolTip.cs: Position the tooltip based on where the cursor is at
11438         popup time, not at MouseEnter time.  Add a Down state so that we don't
11439         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
11440         positioning offset. Lookup DisplaySize at positioning time, since it
11441         can theoretically change during invocation.
11442         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
11443         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
11444
11445 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
11446
11447         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
11448           Fixes behaviour when the Text property of the box is String.Empty
11449
11450 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
11451
11452         * XplatUIX11.cs: Only send mouseleave for our client windows, not
11453           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
11454           a window)
11455
11456 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
11457
11458         * FileDialog.cs: Visual enhancement for the popup buttons in 
11459           PopupButtonPanel
11460
11461 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
11462
11463         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
11464           code
11465
11466 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
11467
11468         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
11469           highlighted menu items to match ms
11470
11471 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
11472
11473         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
11474
11475 2006-03-30  Mike Kestner  <mkestner@novell.com>
11476
11477         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
11478         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
11479         go active to account for HotLight to Selected transition.
11480         * MenuItem.cs: add internal Selected prop. Fill out the Status
11481         property by calculating it from item info. Add HotLight,
11482         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
11483
11484 2006-03-30  Mike Kestner  <mkestner@novell.com>
11485
11486         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
11487
11488 2006-03-29  Jackson Harper  <jackson@ximian.com>
11489
11490         * Form.cs: Implement TODO.
11491
11492 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
11493
11494         * PrintPreviewDialog.cs: Implemented missing methods and events; still
11495           missing proper dialog setup in the constructor
11496
11497 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
11498
11499         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
11500         * Control.cs:
11501           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
11502           - Fixed ResetBindings and removed TODO
11503           - Added check for cross-thread calls to get_Handle()
11504           - Added Marshaller attribute for set_Font to satisfy class status
11505         * FontDialog.cs: Removed TODOs that seemed implemented
11506         * UpDownBase.cs: Removed unneeded TODO and Fixme
11507         * MessageBox.cs: Implemented support for Default button and removed TODO
11508         * FileDialog.cs: Removed obsolete TODO
11509         * DomainUpDown.cs: Removed obsolete TODO
11510         * ButtonBase.cs: Removed obsolete TODO
11511         * XplatUIWin32.cs: Removed obsolete TODO
11512         * Form.cs:
11513           - Removed obsolete TODO
11514           - Calling CheckAcceptButton when the acceptbutton is changed to allow
11515             internal status updates
11516           - Making sure the active control is selected when the control is created
11517         * CurrencyManager.cs: Removed obsolete TODO
11518
11519 2006-03-29  Mike Kestner  <mkestner@novell.com>
11520
11521         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
11522         of PrintPreviewDialog and RichTextBox.
11523
11524 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
11525
11526         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
11527           DarkDark, Light and LightLight colors for a specific color
11528         * ThemeWin32Classic.cs:
11529           - Use Button drawing code to draw RadioButtons and CheckBoxes with
11530             Appearance = Button 
11531           - Make use of the new ResPool helper CPColor
11532           - Draw ProgressBar and StatusBar with correct 3D borders
11533
11534 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
11535
11536         * ColorDialog.cs: Return selected color. Fixes bug #77940.
11537
11538 2006-03-28  Mike Kestner  <mkestner@novell.com>
11539
11540         * ListView.cs: fix Icon layout to plan for scrollbar widths when
11541         calculating col/row counts.
11542
11543 2006-03-28  Mike Kestner  <mkestner@novell.com>
11544
11545         * ColumnHeader.cs:
11546         * ListView.cs:
11547         * ListViewItem.cs:
11548         * Menu.cs: 
11549         switch to explicit interface method implementation for some methods
11550         corcompare identifies as inconsistent with MS.
11551
11552 2006-03-28  Mike Kestner  <mkestner@novell.com>
11553
11554         * MainMenu.cs: 
11555         * Menu.cs:
11556         add a few missing methods from the class status output.
11557
11558 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
11559
11560         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
11561           correct.
11562
11563 2006-03-28  Mike Kestner  <mkestner@novell.com>
11564
11565         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
11566
11567 2006-03-27  Mike Kestner  <mkestner@novell.com>
11568
11569         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
11570         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
11571
11572 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
11573
11574         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
11575
11576 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
11577
11578         * ThemeWin32Classic.cs:
11579           - GroupBox: Inserted a little gap between the text and the lines
11580             on the right side
11581           - Made the code in CPDrawBorder3D more readable
11582           - Corrected the drawing location of the up and down arrows in 
11583             CPDrawScrollButton
11584
11585 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
11586
11587         * ControlPaint.cs: Corrected line widths in DrawBorder for
11588           ButtonBorderStyle Inset and Outset
11589
11590 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
11591
11592         * ThemeWin32Classic.cs:
11593           - Rewrote the totally broken CPDrawBorder3D method. That was
11594             one of the main problems for the terrific ThemeWin32Classic
11595             look
11596           - Updated and corrected Button drawing
11597           - Correct the dimensions of the SizeGrip to match ms ones
11598           - Removed a small drawing glitch in DrawComboBoxEditDecorations
11599         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
11600           Border3DStyle.Sunken to match ms.
11601
11602 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
11603
11604         * ThemeWin32Classic.cs: First small part of the "de-uglify
11605           ThemeWin32Classic" effort, SizeGrip
11606
11607 2006-03-24  Jackson Harper  <jackson@ximian.com>
11608
11609         * XplatUIX11.cs: Give a max idle time of one second, this matches
11610         MS and forces an Idle event every second when there are no other
11611         events in the queue.
11612
11613 2006-03-24  Mike Kestner  <mkestner@novell.com>
11614
11615         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
11616         * ListView.Item.cs: fix layout issues with null image lists and images
11617         smaller than checkbox size.
11618         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
11619         mode like MS does.  It's weird, but consistent.  ;-)
11620         Fixes #77890.
11621
11622 2006-03-24  Mike Kestner  <mkestner@novell.com>
11623
11624         * ListView.cs: Scroll wheel support for the item control.  Fixes
11625         #77839.
11626
11627 2006-03-23  Jackson Harper  <jackson@ximian.com>
11628
11629         * ScrollableControl.cs: Special case negative sized areas, not
11630         zero.
11631         * MonthCalendar.cs: Save the rect of the clicked date so we can
11632         use it for invalidation.
11633         - Try to cut down on the number of invalidates
11634         - Invalidate the rect the mouse is over and was over when moving
11635         the mouse, so we get the focus box following the cursor.
11636
11637 2006-03-23  Mike Kestner  <mkestner@novell.com>
11638
11639         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
11640         focus rectangle drawing. Fixes #77835.
11641
11642 2006-03-23  Mike Kestner  <mkestner@novell.com>
11643
11644         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
11645         the if and else if and reverting back to the original == check on the
11646         None conditional.
11647
11648 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
11649
11650         * FontDialog.cs: Update the example panel if the selected index of
11651           the fontListBox changes.
11652
11653 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
11654
11655         * FileDialog.cs: Make FileDialog remember which directory it was in
11656           last in the same execution.
11657
11658 2006-03-22  Mike Kestner  <mkestner@novell.com>
11659
11660         * FileDialog.cs: make the DropDownMenu on the toolbar display
11661         RadioChecks since they are mutually exclusive and that's what MS does.
11662
11663 2006-03-22  Mike Kestner  <mkestner@novell.com>
11664
11665         * Theme.cs: add Color param to CPDrawMenuGlyph.
11666         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
11667         checks and radio marks and arrows are visible on highlighted items.
11668         * ControlPaint.cs: update to use new Theme signature.
11669
11670 2006-03-22  Mike Kestner  <mkestner@novell.com>
11671
11672         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
11673         is active. Fixes #77870.
11674
11675 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
11676
11677         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
11678           to be focused/selected after startup
11679
11680 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
11681
11682         * ColorDialog.cs: 
11683           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
11684             CustomColors and ShowHelp properties
11685           - Some internal rewrites to get better results when using the
11686             ColorMatrix
11687
11688 2006-03-22  Mike Kestner  <mkestner@novell.com>
11689
11690         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
11691         HoverSelection.  Fixes #77836.
11692
11693 2006-03-22  Mike Kestner  <mkestner@novell.com>
11694
11695         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
11696         ToggleButtons.  (De)Sensitize the Back button around a stack count of
11697         1, not 0.  Update ButtonSize based on a pixel count of the win32
11698         control.  Adjust the toolbar size/location for new button size.
11699
11700 2006-03-22  Jackson Harper  <jackson@ximian.com>
11701
11702         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
11703         true.
11704         * ScrollBar.cs: When doing increments and decrements we need to
11705         set the Value property so that ValueChanged gets raised. A
11706         possible optimization here would be to make an internal SetValue
11707         that doesn't invalidate immediately.
11708         * ToolTip.cs: Tooltips get added to their container (when
11709         supplied) so they get disposed when the container is disposed.
11710         - Don't create tooltips for String.Empty. This prevents all these
11711         little 2-3 pixel windows from showing up when running nunit-gui
11712         and driving me mad.
11713         * Form.cs: Don't set topmost when setting the owner if the handles
11714         haven't been created yet.  The topmost set will happen when the
11715         handles are created.
11716
11717 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
11718
11719         * XplatUIX11.cs:
11720           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
11721           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
11722             visible (to allow them to recalculate their sizes)
11723
11724 2006-03-21  Mike Kestner  <mkestner@novell.com>
11725
11726         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
11727         methods. Removed a ton of redundant code.  Still not really happy with
11728         the border rendering, but I think that's mainly because of the
11729         ControlDarkDark being black instead of a dark grey. Depending on how 
11730         close we want to be, we might want to revisit those color choices.
11731         Among the new features added during the refactor were DropDownArrow
11732         pressed rendering, Disabled image rendering.  Proper flat appearance
11733         boundary rendering.  Removed the Divider and Wrapping dividers since I
11734         can't figure out any combination of themes and conditions to make the
11735         MS control draw a horizontal line on a toolbar despite what the
11736         Divider property docs indicate.
11737         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
11738         conditions and incorrect layout.  Updated to coding standard.
11739         * ToolBarButton.cs: refactored layout and positioning code from
11740         ToolBar to here.  Invalidate wherever possible instead of forcing
11741         redraws of the whole toolbar. 
11742         (Known remaining issues: explicit ButtonSize smaller than provided
11743         images.)
11744
11745 2006-03-21  Mike Kestner  <mkestner@novell.com>
11746
11747         * ContextMenu.cs (Show): use the position parameter instead of just
11748         showing at the MousePosition.
11749
11750 2006-03-21  Jackson Harper  <jackson@ximian.com>
11751
11752         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
11753         control handle this.
11754         * TreeNodeCollection.cs: If we are clearing the root node we need
11755         to reset top_node so calcs can still happen.
11756         * ThemeWin32Classic.cs: This is a Flags so we need to check
11757         properly.
11758         
11759 2006-03-21  Jackson Harper  <jackson@ximian.com>
11760
11761         * DataGrid.cs: Create columns when the binding context has been
11762         changed.
11763         * X11Structs.cs: Keysyms are uints.
11764         - Add size to fix build.
11765
11766 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
11767
11768         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
11769           XplatUIOSX.cs: 
11770           - Added ResetMouseHover method to allow controls to retrigger
11771             hovering if they need it more than once
11772           - Implemented MouseHoverTime and MouseHoverSize properties
11773         * Timer.cs: Start() must reset the interval
11774         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
11775           properties
11776
11777 2006-03-21  Jackson Harper  <jackson@ximian.com>
11778
11779         * X11Keyboard.cs: improved layout detection. Move the nonchar
11780         tables into this file.
11781         * KeyboardLayouts.cs: Move the tables into resource files.
11782
11783 2006-03-21  Mike Kestner  <mkestner@novell.com>
11784
11785         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
11786
11787 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
11788
11789         * Mime.cs: Various speed optimizations. Looking up mime types
11790           is now 2 times faster than before
11791
11792 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
11793
11794         * CreateParams.cs: Added internal menu field
11795         * Control.cs: 
11796           - Switched call order for UpdateBounds; now we always call
11797             the one that also takes ClientSize, and we're calculating the 
11798             client size via driver method in the others. The previous
11799             method of tracking client size by difference wasn't working
11800             for forms where even the starting client size wouldn't match
11801             the overall form size (due to borders) (Part of fix for #77729)
11802           - CreateParams(): Do not use parent.Handle unless the handle is
11803             already created. Causes havoc with Nexxia and throws off our
11804             creation of controls
11805         * XplatUIX11.cs:
11806           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
11807           - Switched handling of ConfigureNotify over to new PerformNCCalc 
11808             method (consolidates code)
11809           - Changed RequestNCRecalc to use new PerformNCCalc method
11810           - Added calls to RequestNCRecalc when menus and borders are changed
11811             to allow app to set NC size. (Part of fix for #77729) This matches
11812             when MS send a WM_NCRECALC on Win32 windows.
11813           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
11814             (Part of fix for #77729). This matches what MS does, they also
11815             send that message when the form is made visible.
11816           - XException.GetMessage: Improved usability of X errors by including
11817             a translation of the window into Hwnd and Control class
11818           - Improved debug info for window creation, reparenting and destruction
11819           - Created helper method WindowIsMapped() [Currently not used]
11820         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
11821         * Form.cs:
11822           - CreateParams: Now setting our menu on the new internal menu field
11823           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
11824             avoid calculating the same property twice
11825         * Hwnd.cs:
11826           - Improved usability of ToString() for debugging purposes
11827           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
11828             determine the height of the menu, instead of just the font. This
11829             required to also create a graphics context and to keep a bmp 
11830             around (for performance reasons)
11831
11832 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
11833
11834         * MenuAPI.cs: Added OnMouseUp method
11835         * Form.cs:
11836           - Now remembering the requested client size, avoids size errors
11837           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
11838             instead of base if the menu is active. This is required due to
11839             control now capturing and releasing on down/up and it would
11840             prematurely release our menu capture
11841
11842 2006-03-17  Jackson Harper  <jackson@ximian.com>
11843
11844         * KeyboardLayouts.cs: Add the czech layouts.
11845
11846 2006-03-16  Jackson Harper  <jackson@ximian.com>
11847
11848         * Control.cs: Use the viewport space when sizing not the controls
11849         client size, so things like ScrollableControl that effect the
11850         viewport size (when scrollbars are added) are computed correctly.
11851         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
11852         of ManagerEntrys.
11853         - Handle creating BindingManagers for null data sources.
11854         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
11855         source, otherwise when rows are added they are added to the 'fake'
11856         datasource and we will crash when trying to set the position in
11857         those rows.
11858         - Use Implicit scrollbars on the datagrid so they arent
11859         selectable.
11860         
11861 2006-03-16  Jackson Harper  <jackson@ximian.com>
11862
11863         * Binding.cs:
11864         * InternalWindowManager.cs:
11865         * MdiWindowManager.cs:
11866         * X11Keyboard.cs: I really want Mike to love me again (fix
11867         compiler warnings).
11868
11869 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
11870
11871         * DataGrid.cs:
11872           - OnMouseDown: Switch to editing mode when clicking on the cell
11873                          even if we're clicking on the cell that's currently 
11874                          selected
11875           - ProcessGridKey: Left/Right now wrap like MS.Net does
11876           - ProcessGridKey: Tab now knows to add a new row when tab is
11877                             pressed in the cell of the last column of the 
11878                             last row
11879           - ProcessGridKey: Enter now adds another row  if pressed in the last
11880                             row and selectes the new row, same column cell
11881           - ProcessGridKey: Home/End navigate columns, not rows, like 
11882                             originally implemented
11883           - Broke ProcessKeyPreview code out into an extra Internal method
11884             so it can be called from the edit code
11885         * DataGridTextBox.cs (ProcessKeyMessage):
11886           - Switched to accept Tab keypresses
11887           - Added F2 handling to allow jumping to the end of the edited cell
11888           - Added logic to allow moving caret left/right inside edited cell
11889             and making the edited cell jump when the caret hits cell borders
11890           - Tab and Enter are now passed to the datagrid after being handled
11891         * TextBoxBase.cs:
11892           - Removed capture code now that Control handles it
11893           - set_SelectionStart now ensures caret is visible
11894
11895 2006-03-16  Jackson Harper  <jackson@ximian.com>
11896
11897         * TrackBar.cs: Debackwards the increment/decrement for handling
11898         mouse clicks on the bar with vertical trackbars.
11899         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
11900         bottom to match MS.
11901
11902 2006-03-16  Mike Kestner  <mkestner@novell.com>
11903
11904         * ListView.cs: make shift/ctrl keyboard and mouse selection 
11905         consistent with the MS control. Fix a bug in
11906         SelectedListViewItemCollection.Clear that was pissing me off for the
11907         better part of a day because the collection was being altered
11908         underneath us as we walked the list.
11909
11910 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
11911
11912         * Control.cs: Not sure how we could miss this so long, but it seems
11913           that MS.Net has Capture set all the way from before calling 
11914           OnMouseDown through sending the mouse events until after
11915           OnMouseUp. This will fix DataGrid's selection being set to end
11916           at the location of the MouseUp.
11917
11918 2006-03-15  Jackson Harper  <jackson@ximian.com>
11919
11920         * BindingContext.cs: Check the binding after its added so that it
11921           can initialize the binding managers and hookup to events.
11922         * Binding.cs: Data members seem to sometimes include rows/cols in
11923           the format Row.Column we now take this into account.
11924           - Hookup to the position changed event so we can update the
11925           control when the position has changed in the data set.
11926         * CurrencyManager.cs: Take into account the row/col naming
11927           convention when creating dataset tables.
11928         * BindingContext.cs: Using a newer better way of storing
11929           datasource/datamember pairs.  Hopefully this better matches MS for
11930           looking up binding managers.
11931
11932
11933 2006-03-15  Jackson Harper  <jackson@ximian.com>
11934
11935         * BindingContext.cs: The currency manager needs the data member
11936         name, if the member is a data set we use the name to find the
11937         correct table.
11938         * CurrencyManager.cs: When creating the list prefer an IList over
11939         an IListSource.
11940         - Attempt to create a DataTable from a DataSet (TODO: might need
11941         some better error checking here, although MS doesn't seem to have much)
11942         - If we have a DataTable create a view and use it as our list.
11943
11944 2006-03-15  Mike Kestner  <mkestner@novell.com>
11945
11946         * ListView.cs: keep a matrix of the icon mode layout to facilitate
11947         keyboard navigation. Support Up/Down/Left/Right selection correctly
11948         for all 4 View modes.
11949         * ListViewItem.cs: add internal row/col fields for icon layouts.
11950
11951 2006-03-15  Jackson Harper  <jackson@ximian.com>
11952
11953         * TabControl.cs: Redraw the tabs when we resize so their newly
11954         calculated sizes are drawn on screen.
11955         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
11956         composite characters.
11957         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
11958         - filter events so that composite characters can be created
11959         patches by peter
11960         * X11Structs.cs: Add XIMProperties enum.
11961
11962 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
11963
11964         * Control.cs (BringToFront, SendToBack): Don't use window or handle
11965           unless it's created
11966
11967 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
11968
11969         * Control.cs (PerformLayout): We don't need to consider visiblity
11970           for anchoring, only for docking. This fixes 'whacky' alignment
11971           in listbox and other controls that use implicit scrollbars after
11972           the previous PerformLayout patch
11973         * ListBox.cs: Switched to use implicit scrollbars
11974           
11975 2006-03-14  Mike Kestner  <mkestner@novell.com>
11976
11977         * ToolBar.cs: 
11978         * VScrollBar.cs:
11979         - chain up the "new event" overrides to base and use
11980         OnEvent to raise them.  Part of fix for bug #76509.
11981
11982 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
11983
11984         * FileDialog.cs: Do not select an item in the parent directory
11985           on backspace
11986
11987 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
11988
11989         * Control.cs (PerformLayout): It would seem that we considered
11990           invisible windows for our layout. Not quite the right thing
11991           to do. Now we don't any longer, thereby fixing bug #76889.
11992
11993 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
11994
11995         * Control.cs (CanFocus): I goofed. A control can have focus 
11996           even though it's not selectable. Made it match MS docs.
11997
11998 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
11999
12000         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
12001           center by default (fixes #76895)
12002         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
12003           all uses of Border3DSides.All with the explicit ORd together
12004           Left|Right|Top|Bottom because I assume that nobody was aware 
12005           that All also implies a center fill. Most places I checked had
12006           a fill right above.
12007         * ProgressBarStyle.cs: Added
12008
12009 2006-03-13  Mike Kestner  <mkestner@novell.com>
12010
12011         * ListView.cs: fix breakage in drag shadow header positioning 
12012         from Peter's csc compilation fix.
12013
12014 2006-03-13  Mike Kestner  <mkestner@novell.com>
12015
12016         * ListView.cs: fix NRE produced by backspacing twice in a focused
12017         FileDialog.
12018
12019 2006-03-13  Mike Kestner  <mkestner@novell.com>
12020
12021         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
12022
12023 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
12024
12025         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
12026           be changed
12027         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
12028           the allowed size before making programmatic size changes
12029
12030 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
12031
12032         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
12033           set, metacity is broken and will still use the emty sizes in 
12034           the struct. (Fix for #77089)
12035
12036 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
12037
12038         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
12039           WindowExStyles and marked both enums as Flags
12040         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
12041           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
12042           to match WindowStyles split
12043         * XplatUIX11.cs:
12044           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
12045           - Updated to match WindowStyles split
12046         * XplatUIWin32.cs:
12047           - Fixed FosterParent creation, was using ExStyle on the Style field
12048             (This should help with Popup focus issues)
12049           - Updated to match WindowStyles split
12050
12051 2006-03-13  Jackson Harper  <jackson@ximian.com>
12052
12053         * MdiWindowManager.cs: Use the system menu height. Fixes some
12054         strange sizing issues.
12055
12056 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
12057
12058         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
12059         * TextBoxBase.cs:
12060           - Scroll to caret after inserting text (#77672)
12061           - Make scroll range one pixel higher, fixes off-by-one error (and
12062             makes underlines visible on the last line)
12063
12064 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
12065
12066         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
12067           the keyboard state from being stuck with keys in 'pressed' state when
12068           focus is switched away via keyboard
12069         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
12070           reset the keyboard if no X11 KeyUp events are expected to come
12071         * X11Structs.cs: Switched type of Visible to bool to match driver
12072
12073 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
12074
12075         * TextControl.cs:
12076           - Switched caret to be just 1 pixel wide, matches MS and looks less
12077             clunky
12078           - Moved caret display 1 pixel down from the top of the control
12079             to improve view
12080           - InsertCharAtCharet: Update the selection start if moving the caret
12081             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
12082           - No longer always creating the caret when the caret methods are
12083             called. Only the actual ShowCaret/HideCaret will do that now
12084           - Only setting caret visible if the owner control has focus
12085           - UpdateView: Added invalidation-shortcut logic for center and right 
12086             aligned text. Previously we'd update all according to the left
12087             logic which caused drawing errors. Also fixed height of invalidated
12088             areas, now properly invalidating the whole area (was off-by-one)
12089           - owner_HandleCreated: Always generate the document when the
12090             handle is created; this ensures that 
12091         * TextBoxBase.cs:
12092           - Fixed situation where caret would disappear under the right
12093             window border, also improved scrolling behaviour on left-
12094             aligned textboxes
12095           - Fixed right-aligned textboxes to have a border to the
12096             right instead of the caret being under the right border
12097         * XplatUIX11.cs:
12098           - Switched from 'nested' to simple visible/not visible tracking 
12099             for caret (part of fix for #77671)
12100           - No longer passing through translated FocusIn/FocusOut messages
12101             since we were notifying too often and the wrong windows. Instead
12102             we just notify our focussed window of receiving or loosing focus
12103         * XplatUIWin32.cs: Switched from 'nested' show/hide 
12104           counting for caret to simple visible yes/no behaviour (part of 
12105           fix for #77671)
12106
12107 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
12108
12109         * Mime.cs: Remove debug code...
12110
12111 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
12112
12113         * MimeGenerated.cs: Removed
12114         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
12115           and subclasses) from /usr/(local/)share/mime and
12116           $HOME/.local/share/mime.
12117
12118 2006-03-10  Jackson Harper  <jackson@ximian.com>
12119
12120         * MdiWindowManager.cs: Recalc the NC area when a window is
12121         maximized/restored so that the menu area is drawn on forms that
12122         don't have a menu.
12123
12124 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
12125
12126         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
12127           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
12128           us to force a WM_NCCALCRESIZE message being sent. This is needed
12129           for MDI maximizing.
12130
12131 2006-03-10  Jackson Harper  <jackson@ximian.com>
12132
12133         * Form.cs: We need to use the ActiveMenu when calculating menu
12134         height.
12135         - Fix nullref when the window manager hasn't been created yet.
12136         * Control.cs: Fix nullref when we try to bring a control to the
12137         front that has no parent.
12138         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
12139         height.
12140         - Add a dummy item to the maximized menu so it always has the
12141         correct height. Otherwise when there are no menus we don't get our
12142         icon and buttons.
12143         
12144
12145 2006-03-10  Jackson Harper  <jackson@ximian.com>
12146
12147         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
12148         stuff.
12149         * Form.cs: Make the window_state internal so the window managers
12150         can track it.
12151         - When an MDI child is maximized let its window manager create the
12152         main menu (so it can add its icon).
12153         - Notify the window managers of state changes
12154         - Let the window manager paint its buttons and handle button
12155         clicks on the menu when it is maximized.
12156         * InternalWindowManager.cs: Move the prev_bounds into the mdi
12157         window manager, since tool windows don't use it, only mdi windows.
12158         - Tell the main form that we don't want it to handle NCPAINT
12159         itself to avoid extra painting.
12160         - Handle clicks on a maximized windows menu.
12161         - Handle window state changes
12162         - Handle minimize/maximize clicks correctly by setting the window state.
12163         * MdiWindowManager.cs: Add an icon menu that (the menu you get
12164         when clicking on the forms icon).
12165         - New method to create a forms maximized menu. This is its normal
12166         menu + an icon.
12167         - Handle window state changes.
12168         - Handle sizing of maximized windows.  Maximized windows are just
12169         drawn bigger then the parent visible area. All controls are still
12170         there, they are just outside the visible area (this matches windows).
12171         * MdiClient.cs: No scrollbars when a child window is maximized.
12172         - Let the children windows figure out how big they should be when
12173         sizing maximized windows.
12174         - Implement a version of ArrangeIconicWindows somewhat similar to
12175         Windows version.  There are some little differences, but I don't
12176         think any app will rely on the layout of minimized mdi windows.
12177
12178 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
12179
12180         * Padding.cs: Several fixes to allow compiling with csc 2.0
12181
12182 2006-03-09  Jackson Harper  <jackson@ximian.com>
12183
12184         * Menu.cs:
12185         * MenuItem.cs: Cheap hack so we can add items to the list without
12186         the events being raised.  This allows adding mdi items during
12187         drawing. TODO: Should probably find a better time to add the items.
12188
12189 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
12190
12191         * ThemeWin32Classic.cs:
12192           - CheckBox_DrawText: Added logic to not wrap if not enough space
12193             is available (Fix for bug #77727)
12194           - RadioButton_DrawText: Added logic not to wrap if not enough
12195             space is available (Fix for bug #77727). Also removed some
12196             duplicate code, DrawString always drawing the regular text
12197             before hitting the if statement.
12198
12199 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
12200
12201         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
12202
12203 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
12204
12205         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
12206         * ContainerControl.cs: Partial implementation of some 2.0 scaling
12207           methods. Moved the new 2.0 properties into alphabetical order with
12208           other properties and added MonoTODO tags
12209
12210 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
12211
12212         * AutoScaleMode.cs: Added. Fix build.
12213
12214 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
12215
12216         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
12217           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
12218           and was requiring premature handle creation for calls from above
12219         * Form.cs, Control.cs: Removed handle arguments from calls to
12220           CalculateClientRect()
12221
12222 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
12223
12224         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
12225           drag_column.column_rect is MarshalByRef and can't be used that way
12226
12227 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
12228
12229         * AxHost.cs: Added deserialization constructor for 
12230           AxHost+State (fixes 77743)
12231
12232 2006-03-09  Mike Kestner  <mkestner@novell.com>
12233
12234         * ListView.cs: 
12235         - Added column drag reordering for details view.
12236         - fixed behavior when mouse is dragged off column and
12237         AllowColumnReorder is false.
12238         * ColumnHeader.cs: clone the format too in Clone.
12239         * Theme.cs: add DrawListViewHeaderDragDetails method.
12240         * ThemeWin32Classic.cs:
12241         - impl new method for drawing drag column shadows and targets.
12242         - support column offset for details mode in DrawListViewItem.
12243
12244 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
12245
12246         * TextControl.cs: Reset the char_count when the document is cleared
12247           (Fixes bug reported on mono-winforms mailing list)
12248
12249 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
12250
12251         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
12252           of calling base we simply process the key ourselves, since both
12253           DefWindowProc and the handled method would set m.Result. 
12254           (Fixes #77732)
12255
12256 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
12257
12258         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
12259           method also moves the window; instead implemented a copy of
12260           Control.ScaleCore (Part of fix for #77456)
12261         * TextBoxBase.cs: 
12262           - Created new CreateGraphicsInternal method to allow providing
12263             a graphics context when no handle is created without triggering
12264             handle creation. (Part of fix for #77456)
12265           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
12266         * TextControl.cs: 
12267           - Switched Constructor to require TextBoxBase instead of Control (to
12268             allow uncast access to CreateGraphicsInternal)
12269           - Safeguarded use of owner.Handle property. No longer accessing it
12270             unless the handle is already created.
12271           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
12272           - Now triggering a recalc when owning control becomes visible
12273         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
12274           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
12275           premature handle creation (Part of fix for #77456)
12276         * Control.cs:
12277           - We now only destroy our double-buffering buffers when the
12278             control is resized or disposed, but not when visibility
12279             changes. (The code even re-created them twice every time)
12280           - Now requiring a redraw of the buffer on visibility changes
12281             (fixes bug 77654 part 2)
12282           - Not passing OnParentVisibleChanged up unless the control
12283             is visible
12284           - CanFocus: Fixed to match MS documentation
12285           - Focus: Fixed to return actual focus state and to check if
12286             setting focus is legal before setting it
12287
12288 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
12289
12290         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
12291           when to draw focus rectangle by looking at parent focus and
12292           selected state instead. This fixes TabPages on Linux sometimes
12293           having none or multiple focus rectangles.
12294         * XplatUIX11.cs (SetFocus): 
12295           - Don't set the focus if the same window already has focus
12296           - Use SendMessage instead of PostMessage (like it's Win32
12297             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
12298             to match MS behaviour
12299         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
12300           are not selectable.
12301
12302 2006-03-07  Jackson Harper  <jackson@ximian.com>
12303
12304         * PictureBox.cs: Revert line I accidently committed last week.
12305
12306 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
12307
12308         * Control.cs: 
12309           - Added new IsRecreating and ParentIsRecreating properties to
12310             allow testing if RecreateHandle has been called on ourselves
12311             or one of our parents
12312           - WndProc(WM_DESTROY): If our control handle is being recreated
12313             we immediately need to create the handle when receiving the
12314             destroy, that way our child windows find a valid parent handle
12315             when they themselves are being recreated upon WM_DESTROY receipt
12316             (fix for bug #77654 part 1)
12317         * XplatUIX11.cs:
12318           - DestroyWindow: WM_DESTROY must be sent to our own window before
12319             notifying any child windows. MS documents that child windows
12320             are still valid when WM_DESTROY is received. (Control now relies on
12321             this behaviour)
12322           - Added some fine-grain debug options
12323
12324 2006-03-06  Jackson Harper  <jackson@ximian.com>
12325
12326         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
12327         box and base calculations off this.
12328         * MdiChildContext.cs:
12329         * MdiWindowManager.cs: Don't need to ensure scrollbars here
12330         anymore.
12331         
12332 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
12333
12334         * Splitter.cs: In situations where the affected control is added
12335           to the parent's control list after the splitter, we would not
12336           populate affected. Now we try populating it on mousedown, if
12337           it's not already set, and force it to be re-set whenever our
12338           parent changes.
12339
12340 2006-03-03  Matt Hargett  <matt@use.net>
12341
12342         * Control.cs: implement Control.Padding
12343         * Padding.cs: -Padding.All returns -1 when constructing with the
12344         implicit default ctor
12345         -Padding.ToString() matches MS.NET
12346         * ContainerControl.cs: implement
12347         ContainerControl.AutoScaleDimensions
12348         * ListControl.cs: implement ListControl.FormattingEnabled
12349         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
12350         * ButtonBase.cs:
12351         * TabPage.cs: Implement UseVisualStyleBackColor.
12352         * PictureBox.cs: Implement PictureBox.InitialImage.
12353
12354 2006-03-03  Mike Kestner  <mkestner@novell.com>
12355
12356         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
12357         event declarations to proxy to base event.
12358         * ListViewItem.cs: update to use ItemControl.
12359         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
12360         * ThemeWin32Classic.cs: update to new ListView theme API and fix
12361         column header label rendering for 0 width columns.
12362
12363 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
12364
12365         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
12366           that causes the control to be created. Fixes #77476.
12367
12368 2006-03-02  Jackson Harper  <jackson@ximian.com>
12369
12370         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
12371         expose_pending.
12372
12373 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
12374
12375         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
12376           passed in for the EventArgs (fixes #77690)
12377
12378 2006-03-01  Jackson Harper  <jackson@ximian.com>
12379
12380         * ScrollBar.cs: Refresh afterbeing resized.
12381
12382 2006-02-28  Mike Kestner  <mkestner@novell.com>
12383
12384         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
12385         Clean up a tracker compile warning.
12386         * MenuItem.cs: add internal PerformPopup method.
12387         [Fixes #77457]
12388
12389 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
12390
12391         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
12392           implicit expose) when the text is set to null
12393
12394 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
12395
12396         * RichTextBox.cs (FlushText): When newline is true, we always
12397           need to split the line, even if no text is on it and we may
12398           never eat newlines. (Fixes #77669)
12399
12400 2006-02-28  Mike Kestner  <mkestner@novell.com>
12401
12402         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
12403         and set Selected instead.
12404         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
12405         collections.
12406
12407 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
12408
12409         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
12410
12411 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
12412
12413         * FontDialog.cs:
12414           - Got rid of the panel. All controls are now directly added to
12415             the dialog form
12416           - It is now possible to set a font with the Font property
12417           - MinSize and MaxSize property do now what they should
12418           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
12419           - Searching and selecting a font with the font textbox works now,
12420             the same applies to the style and size textbox
12421           - Draw the correct 3D border in the example panel
12422           - Fixed a little mem leak (unused fonts didn't get disposed)
12423           - Many other internal updates/rewrites...
12424           - Fix typo
12425
12426 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
12427
12428         * TextControl.cs: 
12429           - InsertRTFFromStream: Added 'number of characters inserted' argument
12430           - set_SelectedRTF: Now using the number of characters to calculate
12431             the new location for the selection and cursor (x/y cannot be used
12432             due to potentially already wrapped text)
12433
12434 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
12435
12436         * TextControl.cs: Added property and implemented means to allow 
12437           disabling recalculation of a document (can be used to speed up
12438           multiple inserts and is needed to make RTF inserts predictable, see
12439           bug #77659)
12440         * RichTextBox.cs: Using the new NoRecalc property of Document to
12441           keep x/y insert locations predictable. Also makes it faster inserting
12442           large chunks of RTF
12443
12444 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
12445
12446         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
12447           it's easier for a child control to handle the other messages without
12448           having to duplicate the special functionality
12449         * TextBoxBase.cs
12450           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
12451             code to handle processing the key ourselves, in order to get 
12452             access to the result of KeyEventArgs.Handled. We now only call 
12453             ProcessKey if they key hasn't been handled already. Fixes #77526.
12454           - set_Text: If null or empty string is given, just clear the 
12455             document. Fixes part of #77526
12456
12457 2006-02-27  Jackson Harper  <jackson@ximian.com>
12458
12459         * SizeGrip.cs: Paint the background color before painting the grip
12460         so things look right.
12461         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
12462
12463 2006-02-27  Mike Kestner  <mkestner@novell.com>
12464
12465         * ListView.cs:
12466           - Restructure layout and invalidation model to remove a ton of
12467           flicker from the control and speed up performance in general.
12468           - Add manual column resize, flickers like crazy, but I already have
12469           some ideas on how I'll fix that. (#76822)
12470           - Merge the three Icon-based views into a single layout method.
12471           - Move item selection interaction logic from the item since 
12472           interaction with the collections is more appropriate to the view.
12473           - Deselection on non-item clicks.
12474         * ListViewItem.cs:
12475           - Encapsulate most of the layout. Add some internal props to trigger
12476           layout.  Move to a model where Items invalidate themselves instead
12477           of just invalidating the whole control every time something changes.
12478           - Invalidate on Text/Caption changes.
12479           - switch to an offset based layout model to avoid having to absolute
12480           position every element on item moves.
12481           - correct checkbox layout to conform to MS layout.
12482         * ThemeWin32Classic.cs:
12483           - refactor some column header drawing code.
12484           - fix string justification for column headers (#76821)
12485           - make SmallIcon labels top justified for compat with MS impl.
12486         * ThemeClearlooks.cs:
12487           - adjust to new ListViewItem internal checkbox bounds api.
12488
12489 2006-02-27  Jackson Harper  <jackson@ximian.com>
12490
12491         * Control.cs:  Change where implicit controls fall in the zorder.
12492         They are now on top of all children.
12493         - Synced AddImplicit code with Add
12494         - Removed unused enumerator.
12495         * SizeGrip.cs: Remove the TODO as its been TODONE.
12496
12497 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
12498
12499         * TextControl.cs(Insert): Combine the last lines unless the insertion
12500           string ends with \n\n, otherwise we leave one line too many (Fixes
12501           something I noticed with the testapp for #77526; the bug itself was
12502           already fixed in the previous checkin)
12503
12504 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
12505
12506         * RichTextBox.cs:
12507           - SelectionColor and SelectionFont methods no longer set absolute
12508             styles. Instead, the keep font or color respectively (This 
12509             resolves a long-standing FIXME in the code)
12510           - When flushing RTF text, the insert code now considers text trailing
12511             behind the insertion point (Fixes the bug where when replacing
12512             the selected text via SelectedRTF the remainder of the line behind 
12513             the selection would stay on the first insertion line)
12514         * TextBoxBase.cs:
12515           - AppendText now updates the selection points after inserting text
12516           - AppendText now ensures that the last tag (sometimes 0-length) of
12517             the document is used for the style information (Fixes part of 
12518             bug #77220)
12519         * TextControl.cs:
12520           - Created new FontDefiniton class to allow describing partial style
12521             changes
12522           - StreamLine() now takes a lines argument, to allow it to decide
12523             whether an encountered zero-length tag is the last in the document
12524             (which must be kept to not loose the font/color contained in it,
12525             for later appends)
12526           - Created Combine() and Split() methods for Marker structs, to 
12527             support marker updates due to reformatted documents (soft line
12528             wraps)
12529           - Implemented Document.CaretTag setter
12530           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
12531             of the last line (Not the cause, but also exposed by bug #77220)
12532           - Added LineTag argument to InsertString method, to allow callers
12533             to force a certain tag to be used (required to force use of the
12534             trailing zero-length tag of a document)
12535           - Now updating markers in Combine(), to avoid stale tag markers
12536           - Added some method descriptions to aid maintenance
12537           - Implemented new FormatText concept, allowing additive/subtractive
12538             formatting by only specifying the components that are to be 
12539             changed. This was needed for resolving the RTB.SelectedColor/
12540             RTB.SelectedFont fixmes
12541           - Added Break() support method to allow breaking up linetags (used
12542             for partial formatting)
12543           - Added GenerateTextFormat() method. It is used for partial 
12544             formatting and allows to generate a full font/color from given
12545             attributes and an existing tag.
12546
12547 2006-02-26  Jackson Harper  <jackson@ximian.com>
12548
12549         * XplatUIX11.cs:  Use the correct caption height.
12550         - Translate hittest coordinates to screen coords to match MS.
12551         * XplatUIWin32.cs: When we create MDI windows we need to reset
12552         some of the style flags, so we get a nice blank window, and can
12553         draw all the decorations ourselves.
12554         - Set a clipping rectangle on the non client paint event, the
12555         window manager drawing code needs one.
12556         * Form.cs: The window manager needs to know when the window state
12557         has been updated.
12558         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
12559         don't need to factor in border and title sizes in these
12560         methods. TODO: Remove the args and fix the call points.
12561         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
12562         properly.
12563         - Let the driver set the cursors.
12564         - Improve active window handling
12565         - Correct sizes for title bars and buttons.
12566         - Match MS drawing better
12567         * MdiWindowManager.cs: We don't need to handle border style
12568         updates specially anymore.
12569         - Check for scrollbars when windows are done moving
12570         - Handle Active properly.
12571         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
12572         correctly. I am spewing the exception though, so we don't hide the
12573         bugs.
12574         
12575 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
12576
12577         * DataGridViewRowPostPaintEventArgs.cs,
12578           DataGridViewCellPaintingEventArgs.cs,
12579           DataGridViewRowCollection.cs,
12580           DataGridViewRowPrePaintEventArgs.cs,
12581           DataGridViewCell.cs: Clear a few warnings and implement a few
12582           exceptions that should be thrown.
12583
12584 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
12585
12586         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
12587           'inheriting' our parent's (non-default) cursor. (Part of
12588            the fix for #77479)
12589
12590 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
12591
12592         * XplatUIX11.cs: Fixed cast to make csc happy
12593
12594 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
12595
12596         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
12597           it's for the client area (part of fix for #77479 and needed
12598           for MDI window cursor handling)
12599         * XplatUIX11.cs
12600           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
12601             the appropriate default cursors and also passing the message
12602             up the parent chain 
12603           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
12604             for non-client areas
12605
12606 2006-02-15  Jackson Harper  <jackson@ximian.com>
12607
12608         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
12609         is a real MDI window
12610
12611 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
12612
12613         * X11DesktopColors.cs: Instead of checking the desktop session
12614           string for "KDE" check if it starts with "KDE"
12615
12616 2006-02-10  Jackson Harper  <jackson@ximian.com>
12617
12618         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
12619         systems).
12620
12621 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
12622
12623         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
12624           errors
12625         * ColorDialog.cs:
12626           - Got rid of the panel. All controls are now directly added to
12627             the dialog form
12628           - Changed to mono coding style
12629
12630 2006-02-10  Jackson Harper  <jackson@ximian.com>
12631
12632         * InternalWindowManager.cs: We don't need the set visibility to
12633         false hack anymore now that peter has written beautiful shutdown
12634         code.
12635
12636 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
12637
12638         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
12639           where already explicitly destroyed
12640
12641 2006-02-10  Jackson Harper  <jackson@ximian.com>
12642
12643         * MdiClient.cs: Handle the case where windows are too high or to
12644         the left and we need scrollbars.
12645
12646 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
12647
12648         * MimeIcon.cs: Added some icons
12649         * FileDialog.cs:
12650           - Fixed bug #77477
12651           - Got rid of the panel. All controls are now directly added to
12652             the dialog form
12653           - Changed to mono coding style
12654           - On Linux "My Computer" and "My Network" will now show some
12655             more usefull information. A new class, MasterMount, gathers
12656             this information from /proc/mount. Updated MWFFileView to make
12657             use of this information
12658           - Fixed a bug that caused FileDialog to crash when
12659             ".recently_used" file had a zero size
12660           - FilterIndex does now what it should
12661           - Some Refactoring
12662         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
12663             FileDialog changes
12664
12665 2006-02-09  Jackson Harper  <jackson@ximian.com>
12666
12667         * ComboBox.cs: Don't touch if null.
12668
12669 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
12670
12671         * Cursor.cs: 64bit safeness fix
12672         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
12673
12674 2006-02-09  Jackson Harper  <jackson@ximian.com>
12675
12676         * Form.cs: If a form is made into an MDI form update the styles so
12677         all the props can get set correctly.
12678         - Kill the mdi_container when we dont need it anymore.
12679         * InternalWindowManager.cs: Add missing NOT
12680
12681 2006-02-08  Jackson Harper  <jackson@ximian.com>
12682
12683         * InternalWindowManager.cs: Respek clipping when drawing MDi
12684         decorations.
12685
12686 2006-02-08  Jackson Harper  <jackson@ximian.com>
12687
12688         * Hwnd.cs: Add bits to track non client expose events.
12689         * XplatUIX11.cs: Track non client expose events on the hwnd. This
12690         gives us a proper invalid rect and will allow for some nice
12691         optimizations with NC client drawing
12692         - MDI windows are children windows, so move their style handling
12693         into the child window block.
12694         * InternalWindowManager.cs: Remove a state reset that was
12695         getting invoked at the wrong time. Fixes managed windows getting
12696         into a 'stuck' captured state.
12697
12698 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
12699
12700         * TextControl.cs (Document.ctor): Now initializing 
12701           selection_anchor. Fixes #77493
12702
12703 2006-02-07  Jackson Harper  <jackson@ximian.com>
12704
12705         * TrackBar.cs: The increment/decrements were backwards.
12706
12707 2006-02-07  Mike Kestner  <mkestner@novell.com>
12708
12709         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
12710         to the instance itself.
12711
12712 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
12713
12714         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
12715           on ulongs and pointers, the size differs between 32bit and 64bit
12716           systems. 
12717
12718 2006-02-07  Mike Kestner  <mkestner@novell.com>
12719
12720         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
12721         for 64 bit platforms to work around a metacity bug. 
12722
12723 2006-02-07  Jackson Harper  <jackson@ximian.com>
12724
12725         * TrackBar.cs: Process the input keys we need, and hookup to
12726         KeyDown instead of using WndProc, so we get key messages.
12727
12728 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
12729
12730         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
12731           machine we're on. 
12732         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
12733           we need to translate the XdndVersion atoms array before sending it
12734
12735 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
12736
12737         * XplatUIX11.cs: 
12738           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
12739             number of bits for the property, not the number of bytes. The
12740             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
12741             but would not crash since it specified 8 bits instead of 4 bits)
12742           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
12743             defined as XID -> long in the C headers)
12744           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
12745             references since those are now IntPtr to begin with
12746           - Switched all Atom.XXX 'int' casts to IntPtr casts
12747           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
12748           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
12749           - Added XChangeActivePointerGrab DllImport (for X11DnD)
12750         * X11Structs.cs:
12751           - Changed 'int' type for Atoms in XEvent structures to IntPtr
12752           - Changed atom in HoverStruct to be IntPtr
12753         * X11DnD.cs:
12754           - Removed local DllImports, switched code to use those from XplatUIX11
12755           - Removed/fixed casts related to the switch of Atom to be a IntPtr
12756
12757 2006-02-06  Mike Kestner  <mkestner@novell.com>
12758
12759         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
12760         method signatures in the import region.  There may still be some
12761         lingering struct marshaling issues, as I didn't drill down into those.
12762         Yet.
12763
12764 2006-02-06  Jackson Harper  <jackson@ximian.com>
12765
12766         * ComboBox.cs: Dont manually set the top_item, this is computed
12767         when the scrollbar position is set.
12768
12769 2006-02-06  Mike Kestner  <mkestner@novell.com>
12770
12771         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
12772         startup crashes on amd64.  There's other fixes needed.  All pinvoke
12773         usage of Atom needs to be mapped to IntPtr for example.  And there are
12774         likely other int/long issues to be addressed.
12775
12776 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
12777
12778         * FileDialog.cs: One more...
12779
12780 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
12781
12782         * FileDialog.cs: Next try
12783
12784 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
12785
12786         * FileDialog.cs: First part of fix for #77464
12787
12788 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
12789
12790         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
12791           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
12792           AcceptButton border drawing.
12793
12794 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
12795
12796         * Form.cs: Moved positioning of form after auto scaling is applied,
12797           otherwise it would possibly use wrong form size.
12798
12799 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
12800
12801         * Control.cs (RecreateHandle): No need to re-create any child
12802           controls, the child windows will get destroyed automatically by
12803           the windowing system or driver, and re-created when the handle
12804           is being accessed the first time. Fixes #77456
12805         * Form.cs: No longer setting the form to closing if the handle is 
12806           being recreated. This seems like the right thing to do, don't
12807           have a bug or testcase for this, though.
12808
12809 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
12810
12811         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
12812           controls to avoid unwanted side effects
12813
12814 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
12815
12816         * Control.cs: 
12817           - ScaleCore needs to scale the bounds, not the ClientSize of the 
12818             control. Fixes #77416.
12819           - DefaultSize is 0,0 for control
12820         * TextBoxBase.cs: 
12821           - DefaultSize is 100, 20
12822           - SetBoundsCore: Now enforcing the height, no matter if the provided
12823             height is more or less than the preferred one, as long as AutoSize
12824             is on
12825         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
12826
12827 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
12828
12829         * Control.cs:
12830           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
12831             call unless both performLayout is true *and* we have a pending
12832             layout change
12833           - ResumeLayout: MS does not completely nest Suspend and Resume,
12834             they bottom out at 0, fixed our code to match that.
12835           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
12836             SetBoundsCore, we were updating even when we shouldn't. This fixes
12837             swf-anchors mis-anchoring when resizing the app fast and lots.
12838           - UpdateDistances: Now only setting the left and top distance if 
12839             we have a parent and are not suspended, this is based on
12840             a suggestion by Don Edvaldson in bug #77355.
12841           - OnVisibleChanged: Fixed logic when to create the control. We may
12842             not create the control if we have no parent or if it's not visible;
12843             switched to using Visible property instead of is_visible field 
12844             since the property also considers parent states. This fixes a bug
12845             when starting Paint.Net
12846
12847 2006-02-02  Jackson Harper  <jackson@ximian.com>
12848
12849         * Form.cs: If the forms handle hasn't been created yet don't call
12850         into xplatui to make it top most, just set the topmost flag on the
12851         form in CreateParams
12852         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
12853
12854 2006-02-01  Jackson Harper  <jackson@ximian.com>
12855
12856         * ScrollableControl.cs: Refactored the Recalculate method a
12857         little, this wasn't handling all the variants of bottom and right
12858         bars needed to be added and added/removed based on their
12859         counterparts being added/removed (which changes the drawable
12860         size). Also we special case client widths and heights of 0 and
12861         don't add the scrollbar for those.
12862
12863 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
12864
12865         * XplatUIX11.cs: 
12866           - Added method to get AbsoluteGeometry(); currently unused, but might
12867             be used in the future, if we try again to figure out toplevel
12868             coordinates with some more crappy window managers
12869           - Added FrameExtents() method to retrieve the WM set decoration size
12870           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
12871             to deal with at least KDE, FVWM and metacity (Fixes #77092)
12872         * Hwnd.cs: 
12873           - Added whacky_wm tracking var for metacity
12874           - Added logic to have default menu height if the actual menu height
12875             has not yet been calculated (part of fix for #77426)
12876         * Form.cs: Keep track whether client size has been set and re-set 
12877           it if a menu is added/removed afterwards (Fixes #77426)
12878
12879 2006-01-31  Jackson Harper  <jackson@ximian.com>
12880
12881         * Control.cs: When a new Site is set on the component attempt to
12882         pull the AmbientProperties from it.
12883
12884 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
12885
12886         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
12887           in the background of the owning form. Fixes #77332
12888
12889 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
12890
12891         * MimeIcon.cs: Fix for #77409
12892
12893 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
12894
12895         * XplatUIX11GTK.cs: Initial import
12896
12897 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
12898
12899         * FixedSizeTextBox: fixes class signature
12900
12901 2006-01-30  Jackson Harper  <jackson@ximian.com>
12902
12903         * FixedSizeTextBox.cs: New internal class that represents a
12904         textBox that will not be scaled.
12905         * TreeView.cs:
12906         * ComboBox.cs:
12907         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
12908         standard TextBox.
12909                 
12910 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
12911
12912         * XplatUIX11.cs: Retrieve default screen number instead of
12913           assuming 0. Attempted fix for #77318
12914
12915 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
12916
12917         * XplatUIWin32.cs: 
12918           - GetWindowPos: When a window is parented by FosterParent, use 
12919             the desktop instead of FosterParent as the base to get coordinates
12920           - CreateWindow: Don't make FosterParent the parent window for Popups
12921             if we don't want a taskbar entry, Popups automatically don't get one
12922         * Hwnd.cs: Need to call remove to actually remove the key from the
12923           hash table
12924
12925 2006-01-30  Mike Kestner  <mkestner@novell.com>
12926
12927         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
12928
12929 2006-01-30  Jackson Harper  <jackson@ximian.com>
12930
12931         * TreeView.cs:
12932         * TreeNode.cs: Raise events no matter how the treenode is
12933         checked. Patch by Don Edvalson.
12934
12935 2006-01-30  Jackson Harper  <jackson@ximian.com>
12936
12937         * TreeNode.cs: Signature fix.
12938
12939 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
12940
12941         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
12942
12943 2006-01-20  Mike Kestner  <mkestner@novell.com>
12944
12945         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
12946         event forwarding when menus are active.
12947         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
12948         Most of the patch is pdb's with a little rework.
12949
12950 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
12951
12952         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
12953           Removed GetMenuDC and ReleaseMenuDC methods; replaced
12954           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
12955         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
12956         * InternalWindowManager.cs: Added use of PaintEventStart/End to
12957           handling of WM_NCPAINT message, now passing the PaintEventArgs to
12958           the PaintWindowDecorations method
12959         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
12960         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
12961         * MenuAPI.cs: Made tracker window invisible
12962         * XplatUIWin32.cs:
12963           - Removed GetMenuDC and ReleaseMenuDC methods
12964           - Implemented the client=false path for PaintEventStart and
12965             PaintEventEnd
12966
12967 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
12968
12969         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
12970         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
12971           styles
12972         * Form.cs: 
12973           - MaximizeBox, MinimizeBox: Recreate the handle when setting
12974             the style
12975           - CreateParams: Reworked the styles to match MS look'n'feel,
12976             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
12977             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
12978
12979 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
12980
12981         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
12982           window is not mapped, since otherwise every form that's being 
12983           created is considered minimized, which is wrong.
12984         * Form.cs: Catching the exception and returning our internal value
12985           instead
12986
12987 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
12988
12989         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
12990           SetWindowMinMax() to have means to tell the driver about the minimum,
12991           maximum and maximized state window sizes. (Part of the fix for #76485)
12992         * Form.cs:
12993           - Implemented tracking of minimum and maximum window size, now calling
12994             new SetWindowMinMax() driver method to tell the driver (Part of the
12995             fix for #76485)
12996           - Finished handling of WM_GETMINMAXINFO method, now setting all values
12997             (Completes fix for #76485)
12998           - Calling new SetWindowMinMax driver method when the handle for a 
12999             form is created, to make sure the driver knows about it even if
13000             the values have been set before the window was created
13001           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
13002             to avoid messing up our anchoring calculations (partial fix
13003             for #77355)
13004         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
13005         * XplatUIX11.cs:
13006           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
13007           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
13008             (and presumably other freedesktop.org compliant WMs). Left the
13009             assumption unmapped=minimized, needed for SetVisible to work.
13010           - Now setting the window state when creating windows
13011           - Fixed SetVisible to consider/set the window state when mapping
13012             a Form. We cannot set the state before it's mapped, and we cannot
13013             use Form.WindowState once it's mapped (since it would ask the
13014             driver and get 'normal'. Therefore, we grab the state before
13015             mapping, map, and then set state.
13016           - Implmemented SetWindowMinMax method; Metacity does not seem to
13017             honor the ZoomHints, though.
13018         * XplatUIWin32.cs:
13019           - Removed MINMAXINFO (moved to XplatUIStructs)
13020           - Added SetWindowMinMax stub (on Win32 the only way to set that
13021             information is in response to the WM_GETMINMAXINFO message, which
13022             is handled in Form.cs)
13023           - Added logic to SetVisible to set the proper window state when a 
13024             form is made visible (fixes #75720)
13025
13026 2006-01-26  Jackson Harper  <jackson@ximian.com>
13027
13028         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
13029         same way we handle them with Invoke.
13030
13031 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
13032
13033         * Form.cs:
13034           - Added tracking of window state so CreateParams can return
13035             the appropriate style
13036           - Moved setting of WS_CAPTION style in CreateParams to allow
13037             styles without caption
13038         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
13039           control if the TextBox property is accessed. Fixes #77345
13040         * Control.cs:
13041           - get_Created: now uses is_disposed and is_created to determine
13042             return value (suggested by Jackson)
13043           - CreateHandle: No longer exits if the handle is being recreated
13044           - RecreateHandle: If the handle is not yet created call the 
13045             appropriate method to create either control or handle. If the
13046             control is already created CreateHandle will simply exit instead
13047             of just creating the handle
13048         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
13049           now SendMessage WM_DESTROY directly to the control when DestroyWindow
13050           is called.
13051         * XplatUIX11.cs: 
13052           - When DestroyWindow is called, instead of waiting for the 
13053             DestroyNotification from X11, we directly post it to the WndProc
13054             and immediately dispose the hwnd object.
13055             Same applies to DestroyChildWindows, and this obsoletes the
13056             expose_pending tracking. Contrary to Win32 behaviour we destroy our
13057             child windows before our own, to avoid X11 errors.
13058           - Removed the direct sending of WM_PAINT on UpdateWindow
13059         * XplatUIWin32.cs:
13060           - Reworked DoEvents and GetMessage to allow access to internal queue
13061             even when trying non-blocking access to the queue.  Fixes #77335. 
13062             Based on a patch suggestion by Don Edvalson. The new private
13063             GetMessage can now also be used as a backend for a PeekMessage
13064             frontend version.
13065         * XplatUI.cs: Improved debug output for CreateWindow
13066
13067 2006-01-25  Jackson Harper  <jackson@ximian.com>
13068
13069         * Help.cs: Allow param to be null. Patch by Don Edvalson.
13070
13071 2006-01-24  Jackson Harper  <jackson@ximian.com>
13072
13073         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
13074         when we have a MaxDropItems lower then the selected index.
13075
13076 2006-01-24  Jackson Harper  <jackson@ximian.com>
13077
13078         * Control.cs: Don't allow selection of non visible controls, allow
13079         selection of controls without parents.
13080
13081 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
13082
13083         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
13084         * DataGridDrawingLogic.cs: Add editing row only when is necessary
13085
13086 2006-01-23  Jackson Harper  <jackson@ximian.com>
13087
13088         * UpDownBase.cs: Make the textbox handle all the selection and
13089         tabbing. This fixes tabing to updown controls.
13090
13091 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
13092
13093         * TextBoxBase.cs: fixes exception thown the object was null
13094
13095 2006-01-23  Jackson Harper  <jackson@ximian.com>
13096
13097         * ButtonBase.cs: Just use the base CreateParams. They set
13098         visibility and enabled correctly.
13099         * ComboBox.cs:
13100         * TrackBar.cs:
13101         * MonthCalendar.cs: Lets let the base set as much of the
13102         createparams as possible so we don't have duplicate code all over
13103         the place.
13104
13105 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
13106
13107         * ThemeGtk.cs: Added TrackBar and some experimental code to
13108           get double buffering back
13109
13110 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
13111
13112         * DataGrid.cs: Allows row number set internally higher than the last
13113         when creating a new row. Restores the editing functionality.
13114
13115 2006-01-20  Mike Kestner  <mkestner@novell.com>
13116
13117         * MimeIcon.cs: delay Image creation until the icons are accessed
13118         instead of creating 190 scaled images on GnomeHandler startup.
13119
13120 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
13121
13122         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
13123           first call base before processing the event. Fixes #77279
13124
13125 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
13126
13127         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
13128           that the stride for the GDI bitmap would match the stride of
13129           a DIB or a Cursor.
13130
13131 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
13132
13133         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
13134
13135 2006-01-19  Jackson Harper  <jackson@ximian.com>
13136
13137         * ComboBox.cs: Hookup the text controls keydown event so we get
13138         those when the text control has the focus.
13139
13140 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
13141
13142         * Label.cs: Now using the base events instead of defining new ones;
13143           this allows us to just call the base properties without having to
13144           duplicate all base property logic 
13145
13146 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
13147
13148         * Label.cs: A label by default is not a tabstop (Fixes one of our
13149           failing nunit tests)
13150
13151 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
13152
13153         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
13154         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
13155
13156 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
13157
13158         * Cursor.cs: Reimplemented creating cursor bitmaps without using
13159           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
13160           This fixes #77218
13161         * XplatUIWin32.cs: 
13162           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
13163             constructor creates images that can't be saved. Part of the fix
13164             for #76103
13165           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
13166           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
13167             bug fix for handling window state in forms properly)
13168
13169 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
13170
13171         * ThemeGtk.cs: Simplify ScrollBar drawing
13172
13173 2006-01-18  Jackson Harper  <jackson@ximian.com>
13174
13175         * Splitter.cs: Set the default dock style for the splitter control
13176         in the constructor.
13177
13178 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
13179
13180         * ThemeGtk.cs: Corrected StateType and ShadowType for
13181           gtk_paint_box
13182
13183 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
13184
13185         * Control.cs: Make use of Theme.DoubleBufferingSupported
13186         * ThemeGtk.cs:
13187           - Added drawing for flat style buttons
13188           - Added ScrollBar drawing
13189
13190 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
13191
13192         * ThemeClearlooks.cs: Removed some unneeded code.
13193         * ThemeGtk.cs: First part of ThemeGtk enhancements.
13194
13195 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
13196
13197         * LinkLabel.cs: We need to update the hover drawing when
13198           leaving the control as well.
13199
13200 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
13201
13202         * DataGrid.cs: Clicking on non empty areas in the columns
13203            area was giving an exception
13204
13205 2006-01-17  Jackson Harper  <jackson@ximian.com>
13206
13207         * ThemeWin32Classic.cs:
13208         * ListView.cs: Do not draw/clip the headers when the header style
13209         is None.
13210
13211 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
13212
13213         * DataGrid.cs: Fixes 77260
13214         
13215 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
13216
13217         * DataGrid.cs: Clicking on a column on a empty grid was giving
13218           an exception
13219
13220 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
13221
13222         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
13223           or any keypress will crash the grid.
13224
13225 2006-01-17  Mike Kestner  <mkestner@novell.com>
13226
13227         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
13228         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
13229         invisible/previously-visible items.
13230         [Fixes #76909]
13231
13232 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
13233
13234         * ThemeClearlooks.cs:
13235         - Added CL_Draw_Button method; now other theme controls that are 
13236           not derived from button or do not have a button can draw buttons
13237           too
13238         - Updated ComboBox drawing
13239         - Beautified RadioButton drawing
13240         - Corrected drawing of bottom and left tabs
13241         - Beautified DateTimePicker and MonthCalendar
13242         - Added CPDrawButton and CPDrawRadioButton
13243
13244 2006-01-16  Jackson Harper  <jackson@ximian.com>
13245
13246         * ComboBox.cs: Set the initial value of the scrollbar to the
13247         current index. Reduce the numbers of refreshs and IndexOfs called.
13248
13249 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
13250
13251         * FileDialog.cs: When the file listview is focused hitting the
13252           backspace key moves the fileview to the parent directory
13253
13254 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
13255
13256         * Form.cs: 
13257           - Added RecreateHandle call when changing taskbar visibility to 
13258             trigger reparenting in Win32 driver (Fixes #75719)
13259           - If a window has minimize or maximize buttons, it cannot have
13260             a help button
13261         * XplatUIWin32.cs:
13262           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
13263             the toplevel form with FosterParent (A toolwindow not on the
13264             taskbar) (Fixes #75719)
13265           - Made FosterParent a toolwindow
13266
13267 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
13268
13269         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
13270
13271 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
13272
13273         * ToolTip.cs: If SetToolTip is called from a control and the mouse
13274           is currently over that control, make sure that tooltip_window.Text
13275           gets updated
13276
13277 2006-01-13  Mike Kestner  <mkestner@novell.com>
13278
13279         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
13280
13281 2006-01-13  Jackson Harper  <jackson@ximian.com>
13282
13283         * TreeView.cs: On MS GetNodeAt never actually factors in the X
13284         value passed.  Also redraw the selected node when we recieve
13285         focus, so tabbing between trees works correctly.
13286
13287 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
13288
13289         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
13290           ~/.gconf/%gconf-tree.xml, so use
13291           .gconf/desktop/gnome/interface/%gconf.xml
13292
13293 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
13294
13295         * TextControl.cs: Draw text in gray if control is disabled
13296
13297 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
13298
13299         * TreeView.cs: Draw the focus rectangle outside the highlight, to
13300           make sure it's always visible. Fixes #76680.
13301
13302 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
13303
13304         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
13305
13306 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
13307
13308         * PageSetupDialog.cs: Added.
13309         * PrintDialog.cs: Attributes.
13310         * PrintPreviewControl.cs: Updates.
13311         * PrintPreviewDialog.cs: Updates.
13312         
13313 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
13314
13315         * Control.cs: Undid my selection check fix, since it's not needed
13316         * TextBoxBase.cs:
13317           - Now considering the presence of hscroll/vscroll when sizing
13318             vscroll/hscroll respectively. Fixed bug #77077
13319           - Added Left/Up/Down/Right to IsInputKey list to prevent
13320             ContainerControl from stealing them. This fixes what I broke
13321             with my last checkin.
13322
13323 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
13324
13325         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
13326           I finally understand how the property can be set without a setter :-)
13327
13328 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
13329
13330         * Application.cs:
13331           - Switched RunLoop to use static Message.Create to create a 
13332             Message object
13333           - Added PreProcessMessage call in runloop for keyboard events; this
13334             is part of the fix for #77219, I overlooked this originally in the
13335             MSDN doc for PreProcessMessage
13336         * Control.cs:
13337           - Removed call to PreProcessMessage from handling of keyboard 
13338             messages; it's supposed to be done in the message pump
13339           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
13340             per MSDN documentation.
13341           - IsInputChar: All chars are input chars by default; removed the 
13342             parent calling chain, MS does not document that
13343           - PreProcessMessage: If IsInputChar is true, we want to return false
13344             to allow dispatching of the message
13345           - When selecting the next control, now also check that we're not
13346             selecting ourselves again and therefore return a false positive.
13347         * TextBoxBase.cs:
13348           - Tried to match return values for IsInputKey and ProcessDialogKey
13349             to what MS returns; moved processing of our special keys outside
13350             ProcessDialogKey since MS does not seem to return true on those.
13351           - Moved code that previously was in ProcessDialogKey into new private
13352             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
13353           - Reworked handling of WM_CHAR to not have to duplicate code from
13354             Control.cs anymore, instead we simply call down to base.
13355            
13356 2006-01-12  Jackson Harper  <jackson@ximian.com>
13357
13358         * ComboBox.cs: We always need to refresh the text area when
13359         EndUpdate is called. Fixes the combobox in the file dialog.
13360         * Control.cs: Don't create the creator_thread until the controls
13361         handle is created.  Also in InvokeRequired we check if the
13362         creator_thread is null. This gives the effect of InvokeRequired
13363         returning true if the controls handle is not created yet, and
13364         matches MS.
13365
13366 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
13367
13368         * XplatUI.cs:
13369           - Added StartLoop() driver method. This is used to allow drivers to
13370             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
13371             loop for a particular thread
13372           - Added EndLoop() driver method. This is called once the message
13373             pump for the thread is shut down
13374           - Added SupportsTransparency method to allow the driver to indicate
13375             opacity support for windows
13376         * Form.cs:
13377           - Removed TODO attribute, completed AllowTransparency property
13378           - Added documented logic to Opacity
13379         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
13380           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
13381           versions of CompatibleTextRendering
13382         * X11Structs.cs: Added opacity atom to our atom enumeration
13383         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
13384           of a form might be set before it's reparented by the WM, and we need
13385           the opacity value without calling up to Form)
13386         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
13387           SupportsTransparency() driver methods
13388         * Application.cs: Now calling StartLoop and EndLoop driver methods
13389         * XplatUIX11.cs:
13390           - Added opacity atom registration
13391           - Added StartLoop()/EndLoop() methods. They're empty right now but
13392             will need to get implemented when we switch to a per-thread queue
13393           - Implemented SupportsTransparency() method
13394           - Implemented SetWindowTransparency() method
13395           - Added support for setting the opacity value when a window is
13396             reparented (since the opacity needs to be set on the WM frame)
13397         * XplatUIOSX.cs, XplatUIWin32.cs:
13398           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
13399
13400 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
13401
13402         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
13403
13404 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
13405
13406         * FileDialog.cs: Added ToolTip for MWFFileView
13407         * MimeIcon.cs: Rewrote GnomeHandler.
13408           - Get currently used gnome icon theme from
13409             ($HOME)/.gconf/%gconf-tree.xml
13410           - Make use of inherited icon themes
13411           - Support SVG icon themes like Tango via librsvg
13412
13413 2006-01-12  Miguel de Icaza  <miguel@novell.com>
13414
13415         Revert's Jackson's revert which broke 2.0 builds.   Fix both
13416         builds. 
13417         
13418         * Application.cs: Move the use_compatible_text_rendering outside
13419         the NET_2_0 define.  If we ever need to use the
13420         use_compatible_text_rendering on the individual controls they will
13421         access the variable from the common shared code paths.
13422
13423 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
13424
13425         * XplatUI.cs:
13426           - Added more granular debug options
13427           - Added method to print both window text and id
13428           - Switched debug output to use new Window() debug method
13429           - Added IsEnabled() driver method
13430           - Added EnableWindow() driver method
13431         * Form.cs:
13432           - Removed end_modal; no longer needed, new loop handles termination
13433             via 'closing' variable
13434           - If form is modal, setting DialogResult will now initiate loop
13435             termination via 'closing' variable
13436           - Added support for is_enabled/WS_DISABLED to CreateParams
13437           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
13438             does all the work
13439           - Removed code that's now in RunLoop from ShowDialog()
13440           - Added various documented sanity checks to ShowDialog()
13441           - Added handling of WM_DESTROY message; we set 'closing' on getting
13442             the message to indicate the message pump to terminate
13443           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
13444             send by the Application.ExitThread method. (We send the message
13445             to destroy the window after all other events have been
13446             processed through the queue, instead of destroying the handle 
13447             directly)
13448           - Moved code from Close() method to WM_CLOSE handler; added logic
13449             to only send close-related events if the form is not displayed
13450             modal
13451         * Splitter.cs (..ctor): Fixed typo in resource name
13452         * Control.cs:
13453           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
13454             brush now
13455           - set_Cursor: Now only setting calling into XplatUI if the handle for
13456             the control is already created; this avoids implict handle creation
13457             or crashes if it's not created
13458           - set_Enabled: Now setting the enabled state via the new driver method
13459             instead of just tracking it
13460           - CreateParams: Added logic to set WS_DISABLED based on enabled state
13461           - CreateControl: Reordered event firing and method calls to more
13462             closely fire events in the order MS does. Now setting the
13463             enabled state in the driver when creating the control.
13464           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
13465             match MS order
13466         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
13467           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
13468         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
13469         * Hwnd.cs:
13470           - Added tracking of window enabled state (get_Enabled/set_Enabled)
13471           - Added EnabledHwnd property to easily allow a driver to find the
13472             handle of the first enabled window in the parent chain (this is
13473             used by drivers to pass up input events of disabled windows)
13474         * XplatUIDriver.cs: Added IsEnabled() method
13475         * Application.cs:
13476           - Removed crude and obsolete exiting tracking variable
13477           - Removed internal ModalRun(); replaced by RunLoop()
13478           - Implemented private CloseForms() method to allow closing all 
13479             windows owned by a particular (or all) threads
13480           - Exit() now properly closes all windows without forcing the message
13481             pump to quit
13482           - Removed obsolete InternalExit() method
13483           - Changed Run() methods to use new RunLoop() message pump
13484           - Implemented new RunLoop() method for both modal and non-modal forms
13485         * CommonDialog.cs:
13486           - get_CreateParams: Added setting of WS_DISABLED
13487           - Simplified ShowDialog(); now all the work is done in RunLoop(),
13488             invoked via Form.ShowDialog()
13489         * NativeWindow.cs: We don't remove the window from the collection when
13490           the handle is destroyed; there might still be messages for it in the
13491           queue (mainly the resulting WM_DESTROY); instead it will be removed
13492           when Control calls InvalidateHandle in the WM_DESTROY handler
13493         * XplatUIX11.cs:
13494           - CreateWindow: Added logic to handle the WS_DISABLED window style
13495           - EnableWindow: Implemented based on Hwnd.Enabled
13496           - GetMessage: Reset PostQuitState so the method can be called again
13497           - Implemented support for disabled windows (passing messages to the
13498             first enabled parent) in handling all input messages
13499           - Added optimizations for handling Expose events
13500           - Implemeted new driver method IsEnabled()
13501           - Now always resetting paint pending tracking vars when we start paint
13502           - Re-implemented UpdateWindow via just sending a WM_PAINT message
13503         * XplatUIOSX.cs: Added IsEnabled method stub
13504         * XplatUIWin32.cs: Implemented new IsEnabled() method
13505
13506 2006-01-11  Jackson Harper  <jackson@ximian.com>
13507
13508         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
13509         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
13510         variables a little.
13511         * ColorDialog.cs: Clear out the old form before adding the new
13512         panel.  
13513
13514 2006-01-11  Jackson Harper  <jackson@ximian.com>
13515
13516         * X11Dnd.cs: Make sure to add all the text formats when adding
13517         strings to the data object.
13518         * TreeNodeCollection.cs: When adding to a sorted tree we need to
13519         do some redrawing too.  Also change the UpdateNode to an
13520         UpdateBelow so the newly added node gets painted.
13521         
13522 2006-01-11  Miguel de Icaza  <miguel@novell.com>
13523
13524         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
13525         LinkLabel.cs, PropertyGrid.cs: Implement the
13526         UseCompatibleTextRendering property for 2.x
13527
13528         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
13529
13530 2006-01-11  Jackson Harper  <jackson@ximian.com>
13531
13532         * TreeView.cs: Use the property for setting the selected node so
13533         the correct events get raised.
13534         * TreeNode.cs: Update the tree when the fore/back colours of a
13535         node are set.
13536
13537 2006-01-10  Jackson Harper  <jackson@ximian.com>
13538
13539         * TreeView.cs: Allow setting SelectedNode to null.
13540
13541 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13542
13543         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
13544
13545 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13546
13547         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
13548
13549 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13550
13551         * PrintDialog.cs: Added attributes and set default property values.
13552
13553 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13554
13555         * PrintControllerWithStatusDialog.cs: 
13556         Added PrintControllerWithStatusDialog.
13557
13558 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13559
13560         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
13561         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
13562
13563 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13564
13565         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
13566
13567 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
13568
13569         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
13570         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
13571
13572 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
13573
13574         * MimeIcon.cs: Added internal class SVGUtil.
13575
13576 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
13577
13578         * FileDialog.cs: Don't crash if there are two files with the
13579           same name but different locations.
13580
13581 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
13582
13583         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
13584         dates across multiple month grids. Used to not highlight entire 
13585         month, but does now.
13586         
13587 2006-01-06  Jackson Harper  <jackson@ximian.com>
13588
13589         * MonthCalendar.cs: Removed DoEvents call to prevent a running
13590         message loop. Change timer intervals to numbers that seem more
13591         natural.
13592
13593 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
13594
13595         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
13596           object for location info since screen object is now implemented.
13597
13598 2006-01-05  Jackson Harper  <jackson@ximian.com>
13599
13600         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
13601         * AsyncMethodResult.cs: We no longer use a WeakReference for the
13602         AsyncMethodResult, this is because we ALWAYS want the
13603         ManualResetEvent to get set.
13604         * Control.cs: When disposing use an async invoke to call shutdown
13605         code, so that thigns don't block on the finalizer thread.  Also
13606         check if we even have a message loop before trying to send
13607         messages, if we don't then don't bother sending messages.
13608         - No more weak references for async methods
13609         * XplatUIDriver.cs: No more weak references for async methods.
13610
13611 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
13612
13613         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
13614           returns two FontFamily with the same name
13615
13616 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
13617
13618         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
13619           drawing disabled text. Instead using the ColorGrayText color
13620
13621 2006-01-04  Jackson Harper  <jackson@ximian.com>
13622
13623         * TreeNode.cs: redraw the node when its image index is changed.
13624
13625 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
13626
13627         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
13628           time I checked there are no others like it.
13629
13630 2006-01-04  Jackson Harper  <jackson@ximian.com>
13631
13632         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
13633         this gives the behavoir I was looking for.
13634         * Control.cs: Special case Invoking EventHandlers, this matches MS
13635         and fixes part of bug #76326.
13636
13637 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
13638
13639         * ThemeClearlooks.cs, FileDialog.cs:
13640           - Reflect the latest Theme class changes
13641           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
13642             with DateTime
13643             
13644 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
13645
13646         * Theme.cs: Cache UI resource images and resize them if needed
13647
13648 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
13649
13650         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
13651           is called. This fixes the crash in Nexxia when setting the font
13652           attributes in the chat. [However, RTF needs a look-over to make sure
13653           that all SelectionXXX methods handle the special case that selection
13654           is empty and therefore the change must be applied to all text starting
13655           at the cursor/selection start]
13656
13657 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
13658
13659         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
13660           XplatUIOSX.cs: Added SendMessage and PostMessage methods
13661         * X11Keyboard.cs: Switched to new way of calling PostMessage
13662
13663 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
13664
13665         * Theme.cs: Added theme interface for images to allow the theme to
13666           control what images are used for things like FileDialog, MessageBox
13667           icons, etc.
13668         * MessageBox.cs: Now uses the new Theme icon/image interfaces
13669
13670 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
13671
13672         * FileDialog.cs:
13673           - Removed some dead code
13674           - Opening a recently used file does work now
13675           - Small UI enhancements
13676           - Refactoring
13677
13678 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
13679
13680         * FileDialog.cs: Forgot too add __MonoCS__
13681
13682 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
13683
13684         * FileDialog.cs: We are able to read recently used files now let's
13685           go on and write them.
13686
13687 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
13688
13689         * FileDialog.cs: Breathe some life into "last open"/"recently used"
13690           button
13691         * MimeIcon.cs: Do a check for the top level media type also
13692
13693 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
13694
13695         * ThemeClearlooks.cs:
13696           - Added CPDrawStringDisabled
13697           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
13698             some chars if the text doesn't fit into text_rect
13699           - DrawListViewItem: If View = View.LargeIcon center the image;
13700             rewrote the drawing of ListViewItem.Text if View = 
13701             View.LargeIcon
13702
13703 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
13704
13705         * MimeIcon.cs: Use default KDE icon theme if there is no
13706           "48x48" directory for the current icon theme, fixes #77114
13707         * Mime.cs: Disable not working and actually not used code. 
13708         * ThemeWin32Classic.cs:
13709           - Replace "new SolidBrush" in GetControlBackBrush and
13710             GetControlForeBrush with ResPool.GetSolidBrush
13711           - Changed DrawListViewItem from private to protected virtual
13712         * FileDialog.cs:
13713           - Added form.MaximizeBox = true
13714           - Don't throw an exception if there is a broken symbolic link
13715
13716 2005-12-23  Jackson Harper  <jackson@ximian.com>
13717
13718         * TabControl.cs: Give the panels focus, keyboard navigation is
13719         fixed so this works correctly now.
13720         - We need these key events also.
13721         * ToolBar.cs: Remove some of the poor mans double buffering.
13722         
13723 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
13724
13725         * ComboBox.cs: The internal TextBox now returns the focus.
13726
13727 2005-12-23  Jackson Harper  <jackson@ximian.com>
13728
13729         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
13730
13731 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
13732
13733         * Control.cs: Removed debug code
13734         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
13735           implicit children
13736
13737 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
13738
13739         * Control.cs: When creating the control, update the Z-order after
13740           all it's children are created, too. (Fixes nexxia not showing
13741           picturebox bug)
13742
13743 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
13744
13745         * Control.cs: Do not update the anchoring distances if layout is
13746           suspended, instead do it once layout is resumed
13747
13748 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
13749
13750         * Control.cs: 
13751           - After many hours of debugging, for both Jackson and
13752             myself, it turns out that it helps to set the parent of a control
13753             if you want to actually see it onscreen. In the spirit of that
13754             discovery, we're now setting the parent of the control and
13755             it's children when the control's handle is created. This fix
13756             will make Lutz Roeder's Reflector run happily. 
13757           - now just creating the handle instead of the whole control when
13758             getting a graphics context for the control.
13759
13760 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
13761
13762         * ScrollableControl.cs: When calculating the canvas, don't consider
13763           the scrollbar widths. Instead, predict if horizontal scrollbar
13764           will affect canvas when deciding on vertical display and vice versa.
13765
13766 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
13767
13768         * RichTextBox.cs: Set default RTF font for documents that don't
13769           have a font table (Fixes #77076)
13770
13771 2005-12-22  Jackson Harper  <jackson@ximian.com>
13772
13773         * TextBoxBase.cs: It's difficult to do, but you can have an empty
13774         clipboard. This prevents a NullRef in that case.
13775         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
13776         clipboard. PRIMARY is for the currently selected text only. (We
13777         should implement PRIMARY at some point.
13778
13779 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
13780
13781         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
13782           a Unicode function with a structure that was defined in Ansi way.
13783           This fixes #76942.
13784
13785 2005-12-21  Jackson Harper  <jackson@ximian.com>
13786
13787         * StatusBar.cs: Statusbar handles its fore/back colours on it's
13788         on. Because thats how it rolls. (and this avoids it using ambient
13789         colours).
13790         * ThemeWin32Classic.cs: Use the proper back color for filling.
13791         * Menu.cs: Use the system menu bar color for drawing menu
13792         bars. Using the window back color will bring ambient colours into
13793         the picture.
13794
13795 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
13796
13797         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
13798           Bitmaps were created and not disposed.
13799
13800 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
13801
13802         * Control.cs (CreateControl): Don't do anything if the control is
13803           already created, otherwise we'd fire the OnCreated event more than
13804           once
13805
13806 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
13807
13808         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
13809           will always match. Instead return -1. Fixes #76464.
13810
13811 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
13812
13813         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
13814           neither the beginning nor the end of the line (Fixes bug #76479)
13815
13816 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
13817
13818         * Control.cs:
13819           - ControlNativeWindow.ControlFromHandle(): Now handling situation
13820             where handle is invalid
13821           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
13822             instead of slower linear search
13823         * NativeWindow.cs: Don't remove the window from the hashtable until
13824           after the driver has destroyed it (since the driver might use
13825           Control.FromHandle to lookup the control object
13826         * Hwnd.cs: Added DestroyPending property to track if a window is 
13827           already destroyed as far as the driver is concerned and only hasn't
13828           yet notified the control
13829         * XplatUIX11.cs:
13830           - Activate(): Check if the window is still valid before using the 
13831             handle
13832           - Implemented DestroyChildWindow() method to mark child windows as
13833             destroyed when a window is destroyed. This prevents situations 
13834             where we might call an X method based on queued events for a
13835             window that already has been destroyed but we haven't yet pulled
13836             the destroy method from the queue.
13837           - Added a call to the new DestroyChildWindow() method to the drivers
13838             DestroyWindow code. Also now marking the destroyed window itself
13839             as pending
13840
13841 2005-12-20  Jackson Harper  <jackson@ximian.com>
13842
13843         * StatusBar.cs:
13844         * StatusBarPanel.cs: Don't calculate panel sizes on draw
13845         anymore. Just do them when needed, also track the rects of panels
13846         so that we can optimize refreshing more in the future.
13847
13848 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
13849
13850         * ColorDialog.cs: Fixed focus drawing in small color controls
13851
13852 2005-12-19  Jackson Harper  <jackson@ximian.com>
13853
13854         * InternalWindowManager.cs:
13855         * MdiWindowManager.cs: Cleanup some coordinate system changes so
13856         moving windows works properly.
13857
13858 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
13859
13860         * Control.cs: 
13861           - Removed call to InitLayout() from SetBoundsCore(); doc says
13862             it's only called when a control is added to a container
13863           - Split InitLayout logic, moved to separate UpdateDistances() method
13864             since we need to perform those calculations more often than just
13865             when adding the control to a container. (Needed to fix #77022)
13866           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
13867           - Reduced the OnBindingContextChanged events count, don't send them
13868             unless the control is created, we still aren't totally matching
13869             MS, but I can't quite figure out some of their rules
13870
13871 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
13872
13873         * ThemeClearlooks.cs: Corrected distance between ProgressBar
13874           stripes
13875
13876 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
13877
13878         * ThemeClearlooks.cs:
13879           - Updated ProgressBar drawing
13880           - Corrected drawing of ScrollBars and scroll buttons
13881           - Some temporary fixes for minor pixel artefacts
13882
13883 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
13884
13885         * Control.cs:
13886           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
13887             cause events to be sent in the same order as MS does.
13888           - Added ChangeParent() method to trigger various OnXXXChanged events
13889             that need to be fired when a parent changes (This is a reworking
13890             of the patch from r54254, with the X11 errors fixed)
13891           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
13892             since on MS we get OnLayoutChanged events when calling Clear()
13893           - Changed Enabled property to consider parent state as well, if a
13894             parent is not enabled, the control will not be either
13895           - Changed Parent property to simply call Controls.Add() since that
13896             now does all the work required, this way we avoid code duplication
13897           - Threw in a few OnBindingsContextChanged calls to try and match
13898             when MS sends them. We seem to send a few too many, though.
13899           - Added call to CreateControl when adding the control to a parent.
13900             We were never calling CreateControl. Still needs some work, in
13901             some places we treat HandleCreated and ControlCreated as equal, 
13902             which is wrong
13903           - Removed obsolete commented out code from UpdateZOrder()
13904
13905 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
13906
13907         * ThemeClearlooks.cs: Updated TrackBar drawing.
13908
13909 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
13910
13911         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
13912
13913 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
13914
13915         * FileDialog.cs: Add the Help button and the open readonly
13916           checkbox only if needed
13917
13918 2005-12-16  Jackson Harper  <jackson@ximian.com>
13919
13920         * Control.cs: Make sure we have an active menu before trying to
13921         process commands on it. Prevents menu-less forms from crashing
13922         when Alt is pressed.
13923         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
13924         Dieter Bremes.
13925         * RichTextBox.cs: Expand statement to help out gmcs and fix the
13926         2.0 build.
13927
13928 2005-12-16  Jackson Harper  <jackson@ximian.com>
13929
13930         * InternalWindowManager.cs: Don't translate tool windows screen
13931         coordinates. This fixes windows 'bouncing' around when being moved.
13932
13933 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
13934
13935         * TextBoxBase.cs:
13936           - MaxLength now treats 2^31-1 equal to unlimited length (this is
13937             not quite MS compatible, MS uses that number only for single line
13938             and 2^32-1 for multi-line, but I figure it won't hurt keeping
13939             the limit at 2GB)
13940           - Now enforcing the MaxLength limit when entering characters
13941           - Added argument to internal Paste() method to track if it's called
13942             from programatically or via keyboard, since keyboard driven pastes
13943             need to enforce max-length
13944           - Added logic to Paste to only paste as many chars as MaxLength 
13945             allows
13946         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
13947         * TextControl.cs:
13948           - Added Length property to return number of characters in document
13949           - Added private CharCount property which only tracks actual chars
13950             in the document (no linefeeds) and fires event when CharCount
13951             changes
13952           - Added tracking of character count to all methods that alter it
13953           - Added LengthChanged event to allow applications to subscribe
13954             to any changes to the document
13955
13956 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
13957
13958         * TextBox.cs: 
13959           - Removed local password_char field (moved to TextBoxBase)
13960           - Now setting the document's password var when password is
13961             set
13962         * TextBoxBase.cs:
13963           - Added password_char field (needed here so MultiLine can
13964             access it)
13965           - Added logic to MultiLine property setter to set the document's
13966             variable when password display is allowed
13967           - Removed debug code and made some debug code conditional
13968         * TextControl.cs:
13969           - Added RecalculatePasswordLine() method to handle special password
13970             char only lines
13971           - Added PasswordChar property, also added related tracking vars
13972           - Draw() method now uses local text var for grabbing text to draw,
13973             this var is set to line.text unless we're doing password display,
13974             then it is set to the pre-generated all-password-chars line
13975           - Added calling RecalculatePasswordLine() method for password lines
13976
13977 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
13978
13979         * Hwnd.cs: 
13980           - Added Reparented property to allow tracking of Window Manager
13981             reparenting actions (which affect X/Y calculations of toplevel 
13982             windows)
13983           - Made ToString() print window handles in hex
13984         * XplatUIX11.cs:
13985           - AddConfigureNotify(): Now uses reparented state off Hwnd to
13986             determine if X/Y needs offsetting
13987           - AddConfigureNotify(): Fixed offset calculations
13988           - Now adds ReparentNotify messages into the queue
13989           - Now processes ReparentNotify messages and causes a 
13990             WM_WINDOWPOSCHANGED message to be sent upstream if a window
13991             is reparented (as most likely it's X/Y coordinates are changed
13992             due to that)
13993
13994 2005-12-14  Jackson Harper  <jackson@ximian.com>
13995
13996         * XplatUIX11.cs: Tool windows still need to respek focus.
13997
13998 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
13999
14000         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
14001           have a working release
14002
14003 2005-12-13  Jackson Harper  <jackson@ximian.com>
14004
14005         * Form.cs: Update styles after setting the border style regardless
14006         of whether or not the window is using a window manager.
14007
14008 2005-12-13  Jackson Harper  <jackson@ximian.com>
14009
14010         * Form.cs: We now hook into an internal window manager instead of just an
14011         MDI subsystem, this is so we can have properly behaving tool windows.
14012         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
14013         * InternalWindowManager.cs: New internal class that acts as a
14014         window manager for tool windows and as a base for mdi windows.
14015         * MdiWindowManager.cs: New class that acts as a window manager for
14016         mdi windows.
14017
14018 2005-12-12  Jackson Harper  <jackson@ximian.com>
14019
14020         * Control.cs: Updates so we match behavoir for for implicit
14021         controls. Fixes explosions in MDI.
14022
14023 2005-12-12  Jackson Harper  <jackson@ximian.com>
14024
14025         * Control.cs: Implement Invalidate (Region).
14026
14027 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
14028
14029         * Control.cs: 
14030           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
14031             the same events as MS does. MS fires events for each property 
14032             except, for unknown reasons, Cursor, when the control is reparented. 
14033             I can't seem to totally match add/remove since MS also fires some 
14034             VisibleChanged events, which makes no sense. Consolidated the
14035             parenting code into a separate method so it can be called from
14036             both Add and Remove. set_Parent no longer needs any special logic
14037             as it calls the parent's add method which implicitly fires
14038             all events
14039           - Removed some obsolete code and debug output
14040           - Enabled state is inherited from parents, if this is enabled
14041
14042 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
14043
14044         * Form.cs: Removed commented out code
14045
14046 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
14047
14048         * Control.cs:
14049           - Added internal version of Invoke, with additional argument 
14050             indicating if we're calling it from a Dispose() handler. That
14051             way we can avoid BeginInvoke throwing an exception if we're
14052             calling for an already destroyed window.
14053           - Added a dispose argument to BeginInvokeInternal, and made the
14054             check if a valid window handle chain exists conditional on
14055             it not being a dispose call
14056           - Removed code in DestroyHandle to destroy our children. Since we
14057             now handle the WM_DESTROY message we will catch all our children
14058             being destroyed.
14059           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
14060         * Form.cs:
14061           - Added a field to track the application context of the form.
14062           - No need to set closing variable as response to WM_CLOSE, instead
14063             we destroy the window. We also call PostQuitMessage if the form
14064             has an application context (which makes it the main app form,
14065             which, when closed terminates the app)
14066         * XplatUI.cs:
14067           - Dropped Exit() method, it's naming was confusing
14068           - Added PostQuitMessage() which causes GetMessage to return false
14069             once the message queue is empty
14070         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
14071           PostQuitMessage()
14072         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
14073           no longer a valid XplatUI method, but left it in since it's used
14074           internally. Added empty PostQuitMessage() method.
14075         * MenuAPI.cs: Replaced call to Exit() with call to
14076           PostQuitMessage, even though this is probably no longer needed.
14077         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
14078         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
14079         * Application.cs:
14080           - Replaced call to XplatUI.Exit() with PostQuitMessage()
14081           - Removed old debug code that would call XplatUI for exception
14082             display, enabled standard exception handling (Still not enabled
14083             though, until NativeWindow's ExternalExceptionHandler define
14084             is removed
14085         * NativeWindow.cs:
14086           - Added internal method to allow control to update NativeWindow
14087             after a window has been destroyed
14088           - Added handling of already destroyed windows when calling i
14089             DestroyWindow
14090           - Added removal of handle from list on ReleaseHandle
14091         * XplatUIX11.cs:
14092           - Dropped GetMessageResult var and related code
14093           - Added PostQuitState to field to track if PostQuitMessage has been
14094             called
14095           - Dropped Exit() method
14096           - Added PostQuitMessage() method
14097           - GetMessage now will return false if PostQuitState is set and no
14098             more messages are in the queue.
14099           - Expose handler will no longer generate WM_PAINT messages if we are
14100             in PostQuitState since it's very likely any windows have already
14101             been destroyed, and since Hwnd won't get updated until we have
14102             processed the DestroyNotify we'd be causing X errors.
14103         
14104 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
14105
14106         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
14107           Thanks to Mike for pointing out the err of my ways.
14108
14109 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
14110
14111         * Control.cs(PreProcessMessage): Moved menu handling back, but
14112           after all other key handling, to match MS (who handles Menu in
14113           DefWndProc)
14114         * Menu.cs (WndProc): Removed my brainfart
14115
14116 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
14117
14118         * Control.cs(PreProcessMessage): Removed special menu handling 
14119         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
14120
14121 2005-12-07  Mike Kestner  <mkestner@novell.com>
14122
14123         * Control.cs : special case SYSKEYUP so that we can adjust keynav
14124         state according in tracker.
14125         * Menu.cs : promote tracker field to base class and provide a tracker
14126         lookup capability.  Add/Remove shortcuts dynamically if the top menu
14127         has a tracker. Unparent items that are removed from the collection.
14128         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
14129         * Theme*.cs: add always_show_hotkeys field to support configurability
14130         of mnemonic display.  win32 doesn't show mnemonics until Alt is
14131         pressed.
14132
14133 2005-12-07  Jackson Harper  <jackson@ximian.com>
14134
14135         * MdiChildContext.cs: Use Control.ResetCursor.
14136         * Control.cs: ResetCursor needs to set the property so that the
14137         correct XplatUI call gets made.
14138
14139 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
14140
14141         * Control.cs: More fixes to make our key events match MS. We
14142           were not setting the modifier state on KeyData, and we were
14143           not generating any events when Alt was pressed with a key
14144           since handling of WM_SYSxxx was missing for the OnKey methods.
14145
14146 2005-12-07  Jackson Harper  <jackson@ximian.com>
14147
14148         * MdiChildContext.cs: reenable the sizing code.
14149         - When the mouse leaves a window reset its cursor.
14150
14151 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
14152
14153         * ThemeClearlooks.cs: Reflect latest Hwnd changes
14154
14155 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
14156
14157         * Hwnd.cs: Now using the theme 3d bordersize to calculate
14158           widths of Fixed3D borders
14159
14160 2005-12-07  Jackson Harper  <jackson@ximian.com>
14161
14162         * MdiClient.cs: Fix warnings. Earn Mike's love.
14163
14164 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
14165
14166         * ThemeClearlooks.cs:
14167           - Adjusted mouse over button color
14168           - Added first parts of CheckBox drawing
14169           - Added correct color for selected text background
14170           - Fixed ComboBox drawing
14171           - Added CPDrawBorder3D and CPDrawBorder
14172
14173 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
14174
14175         * XplatUIX11.cs: Added call to XBell for AudibleAlert
14176
14177 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
14178
14179         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
14180           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
14181           alert users via sound. We could add an enum arg with different
14182           types of alerts in the future
14183
14184 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
14185
14186         * Control.cs: Fix behaviour problems pointed out by Mike
14187
14188 2005-12-05  Mike Kestner  <mkestner@novell.com>
14189
14190         * StatusBarPanel.cs: add Invalidate method and hook it into all the
14191         prop setters.  Calls parent.Refresh for now, but could be maybe be
14192         optimized with an internal method on StatusBar at some point.
14193         [Fixes #76513]
14194
14195 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
14196
14197         * RichTextBox.cs: Implemented get_SelectionColor
14198
14199 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
14200
14201         * ThemeClearlooks.cs:
14202           - Removed dead code
14203           - Draw black button border only if button is Form.AcceptButton
14204           - Draw correct button color for pressed RadioButton if the mouse 
14205             has entered the button
14206           - Updated ProgressBar drawing!
14207           - Updated CPDrawSizeGrip drawing
14208           - Updated StatusBarPanel drawing
14209
14210 2005-12-05  Mike Kestner  <mkestner@novell.com>
14211
14212         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
14213         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
14214
14215 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
14216
14217         * ThemeClearlooks.cs: Initial check-in, activate with
14218           export MONO_THEME=clearlooks
14219         * ThemeEngine.cs: Added ThemeClearlooks
14220
14221 2005-12-03  Mike Kestner  <mkestner@novell.com>
14222
14223         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
14224         [Fixes #76897]
14225
14226 2005-12-02  Jackson Harper  <jackson@ximian.com>
14227
14228         * Form.cs: If the child form has no menu the default main menu is
14229         used as the active menu.
14230
14231 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
14232
14233         * ListBox.cs: Check if any items exist before trying to resolve 
14234           coordinates into items
14235
14236 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
14237
14238         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
14239           as the second color for the background hatch
14240
14241 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
14242
14243         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
14244         * RichTextBox.cs: FormatText position arguments are 1-based, now making
14245           sure that what we pass to FormatText is always 1-based. Fixes #76885
14246
14247 2005-11-29  Miguel de Icaza  <miguel@novell.com>
14248
14249         * NumericUpDown.cs (EndInit): When we are done initializing,
14250         reflect any updates on the UI.
14251
14252 2005-12-02  Jackson Harper  <jackson@ximian.com>
14253
14254         * ImplicitHScrollBar.cs:
14255         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
14256         their container controls.
14257         * TreeView.cs: Use the new implicit scrollbars.
14258
14259 2005-12-02  Jackson Harper  <jackson@ximian.com>
14260
14261         * TreeView.cs: Make top_node internal so the TreeNodeCollections
14262         can play with it.
14263         * TreeNodeCollection.cs: If we remove the topnode we need to
14264         update topnode to the next node in line.
14265         - When clearing nodes go through the same process as removing
14266         them, so they get depareneted and checked if they are top node.
14267
14268 2005-12-01  Jackson Harper  <jackson@ximian.com>
14269
14270         * TreeView.cs: When imagelists are used the image area is
14271         selectable as well as the text.
14272         - If there are no selected nodes select the first one.
14273         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
14274         so don't do it more then we need to.
14275
14276 2005-12-01  Jackson Harper  <jackson@ximian.com>
14277
14278         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
14279         that arrows can be scaled.
14280
14281 2005-12-01  Jackson Harper  <jackson@ximian.com>
14282
14283         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
14284         fail. Patch by Dieter Bremes
14285
14286 2005-11-30  Jackson Harper  <jackson@ximian.com>
14287
14288         * Form.cs: Property is 2.0 only
14289         * PrintDialog.cs: Signature fix.
14290
14291 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
14292
14293         * TextControl.cs: 
14294           - No longer artificially moves text 2 pixels down (now that we have
14295             borders this is no longer needed)
14296           - Added calcs for left, hanging and right indent
14297
14298 2005-11-23  Mike Kestner  <mkestner@novell.com>
14299
14300         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
14301
14302 2005-11-30  Jackson Harper  <jackson@ximian.com>
14303
14304         * MdiChildContext.cs: Set the cloned menus forms, as these don't
14305         get cloned as part of CloneMenu ().
14306         * Menu.cs: Make sure the parent of the items get set correctly
14307         when they are added.  And the owners are notified of the changes.
14308         * Form.cs: Create an ActiveMenu property, so that when MDI is used
14309         we can change the menu being displayed/handled by the form without
14310         changing the menu assosciated with the form.
14311         - Don't let Mdi children draw/handle menus.
14312         
14313 2005-11-30  Jackson Harper  <jackson@ximian.com>
14314
14315         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
14316         a MenuChanged event. Just to make the API a little more
14317         consistent.
14318         * MainMenu.cs:
14319         * MenuItem.cs: Use the new OnMenuChanged
14320         * MdiChildContext.cs: Handle menu merging.
14321         * Form.cs: Implement MergedMenu.
14322         
14323 2005-11-30  Jackson Harper  <jackson@ximian.com>
14324
14325         * Menu.cs: We were misusing Add. Add goes behind the specified
14326         index according to the docs, and does not replace the specified
14327         index. So I added an Insert method.
14328
14329 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
14330
14331         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
14332           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
14333           is for Jackson
14334         * RichTextBox.cs: Added calls to base for DnD events
14335
14336 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
14337
14338         * TextControl.cs:
14339           - Fixed drag-selection related crash; style fixes
14340           - Implemented undo class
14341             o Implemented method to capture document state for specified
14342               range in document tree
14343             o Implemented method to restore captured document state
14344             o Implemented cursor tracking
14345             o Implemented basic undo stack
14346           - Added undo cursor tracking to methods altering cursor location
14347           - Added undo tracking to selection deletion (still missing
14348             other text-altering hookups)
14349         * RichTextBox.cs:
14350           - Added SelectionLength property
14351           - Implemented CanPaste()
14352           - Implemented Paste()
14353           - Added missing protected methods
14354           - Fixed RTF->Document conversion; now uses font index 0 and color 
14355             index 0 as the default font for the parsed text
14356           - Fixed RTF<->Document font size translation
14357           - Fixed RTF generation, now properly handles cross-tag boundaries
14358             for single line selection
14359           - No longer always appends blank line to generated RTF
14360           - Removed TODOs
14361           - Added missing attributes
14362           - Hooked up undo-related methods
14363         * TextBoxBase.cs:
14364           - Implemented Copy()
14365           - Implemented Paste()
14366           - Implemented Cut()
14367           - Fixed caret mis-behaviour on backspace across line-boundaries
14368
14369 2005-11-29  Jackson Harper  <jackson@ximian.com>
14370
14371         * MdiClient.cs: Add a method for activating mdi children. Very
14372         basic right now. I imagine someday it might need more girth.
14373         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
14374         children windows names are added to the menu item.
14375         * ThemeWin32Classic.cs: Draw the arrow if the item is an
14376         mdilist. This happens regardless of whether or not there are any
14377         mdi windows to see in the list, and according to my tests happens
14378         before the items are even added. Also happens if there isn't even
14379         an mdi client to get windows from.
14380
14381 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
14382
14383         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
14384         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
14385
14386 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
14387
14388         * DataGridTableStyle.cs:
14389           - Create always the styles for the missing columns even if they are
14390             provided by the user (not default table style)
14391         * DataGrid.cs:
14392           - Fixes bug 76770
14393           - Fixes SetDataBinding (always re-attach source)
14394           - Fixes SetNewDataSource (only clear styles if they are not for 
14395             this source)
14396          -  Expands OnTableStylesCollectionChanged to handle style refresh 
14397             and remove properly
14398
14399 2005-11-29  Jackson Harper  <jackson@ximian.com>
14400
14401         * FileDialog.cs: Implement missing bits, remove some dead
14402         code.
14403         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
14404         creation of the panel so that the options set on the dialog are
14405         seen when the panel is created.
14406         * TreeView.cs: raise a click when items are clicked.
14407         
14408 2005-11-29  Jackson Harper  <jackson@ximian.com>
14409
14410         * MdiClient.cs: Pass some signature methods through to base.
14411
14412 2005-11-28  Jackson Harper  <jackson@ximian.com>
14413
14414         * ListView.cs: Raise the click event when items are clicked.
14415
14416 2005-11-28  Jackson Harper  <jackson@ximian.com>
14417
14418         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
14419         a nullref.
14420
14421 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
14422
14423         * ThemeNice.cs: - Removed 1 pixel bitmaps
14424           - Use SmoothingMode.AntiAlias where it makes sense
14425             (ScrollButton arrow for example)
14426           - Enhanced Button focus drawing
14427           - Fixed ComboBox drawing (no artefacts anymore, focus
14428             rectangle is back again, reduced size of ComboButton, etc.)
14429           - Fixed RadioButton focus drawing for Appearence.Button
14430           - Slight ScrollButton redesign
14431           - Some LinearGradientBrush size fixes
14432           - GroupBoxes have now rounded edges
14433           - Fixed StatusBar drawing
14434
14435 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
14436
14437         * ThemeNice.cs: - Remove dead code
14438           - use correct background colors for menus, etc.
14439           - Fake pixel drawing with 1 pixel bitmaps
14440
14441 2005-11-24  Jackson Harper  <jackson@ximian.com>
14442
14443         * MdiClient.cs: Size the scrollbars when resizing the window.
14444         - Resize the maximized windows when the client is resized
14445         * Form.cs: Make the child context available
14446         
14447 2005-11-23  Jackson Harper  <jackson@ximian.com>
14448
14449         * MdiChildContext.cs: Don't size windows if they are maximized.
14450
14451 2005-11-23  Mike Kestner  <mkestner@novell.com>
14452
14453         * ContextMenu.cs: use MenuTracker.
14454         * Control.cs: remove menu handle usage.
14455         * Form.cs: remove menu handle usage.
14456         * Hwnd.cs: remove menu handle usage.
14457         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
14458         motion and clicks to the new Tracker handlers.
14459         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
14460         and handle usage.
14461         * MenuAPI.cs: refactored to combine popup and menubar event handling.
14462         Killed the MENU and MENUITEM data types and associated collections
14463         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
14464         MenuTracker class that exposes the leftovers from the old MenuAPI
14465         static methods. Restructured Capture handling so that only one grab is
14466         done for the entire menu hierarchy instead of handing off grabs to
14467         submenus. Tracker now has an invisible control to Capture when active.
14468         * MenuItem.cs: add sizing accessors, kill Create
14469         and handle usage.
14470         * Theme.cs: remove menu handle and MENU(ITEM) usage.
14471         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
14472         MENU(ITEM). remove menu handle usage, use Menu directly.
14473         * XplatUIDriver.cs: remove menu handle usage.
14474         * XplatUIOSX.cs: remove menu handle usage.
14475         * XplatUIWin32.cs: remove menu handle usage.
14476         * XplatUIX11.cs: remove menu handle usage.
14477
14478 2005-11-22  Jackson Harper  <jackson@ximian.com>
14479
14480         * Hwnd.cs: Don't compute the menu size for
14481         DefaultClientRectangle.
14482         - Reenable menu sizes being computed for GetClienRectangle.
14483         * Form.cs: Remove comment of trechery
14484         
14485 2005-11-22  Jackson Harper  <jackson@ximian.com>
14486
14487         * Hwnd.cs: The adjustments for the menu bar are made when it is
14488         attached to the form.
14489
14490 2005-11-19  Jackson Harper  <jackson@ximian.com>
14491
14492         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
14493         (just like on windows).
14494
14495 2005-11-19  Jackson Harper  <jackson@ximian.com>
14496
14497         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
14498         use real buttons anymore because they are in non client area. The
14499         one TODO here is that I need to somehow invalidate a section of
14500         the non client area.
14501
14502 2005-11-18  Jackson Harper  <jackson@ximian.com>
14503
14504         * Control.cs: Put the enum check back in now that MDI doesnt have
14505         to use this to set border styles.
14506         * Form.cs: Only set mdi child windows borders if the handle has
14507         been created.
14508         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
14509         this directly on to the driver.
14510         - Get the move start position before adjusting for the titlebar
14511         height, this fixes the windows "skipping" when they are first
14512         moved.
14513
14514 2005-11-18  Jackson Harper  <jackson@ximian.com>
14515
14516         * XplatUIX11.cs: Just compute the mdi borders separately as they
14517         don't totally match up with normal form borders.
14518
14519 2005-11-18  Jackson Harper  <jackson@ximian.com>
14520
14521         * Control.cs: Set WS_ styles for borders, so that the driver does
14522         not have to retrieve the control instance to figure out what kind
14523         of borders it should have.
14524         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
14525         driver can know its an mdi child easily.
14526         * XplatUIX11.cs: Get the border styles and whether the window is
14527         MDI from the Styles and ExStyles params instead of having to get a
14528         control. This prevents a chicken and egg problem.       
14529
14530 2005-11-18  Jackson Harper  <jackson@ximian.com>
14531
14532         * MdiClient.cs: Fix typo so scrollbars show up correctly.
14533
14534 2005-11-18  Jackson Harper  <jackson@ximian.com>
14535
14536         * MdiClient.cs: Calculate when to add and remove scrollbars
14537         correctly.
14538         * MdiChildContext.cs: Adjust the y position to take the titlebar
14539         into account.
14540         - No height for FormBorderStyle.None
14541
14542 2005-11-18  Jackson Harper  <jackson@ximian.com>
14543
14544         * Control.cs: Allow non enum values to be used for
14545         InternalBorderStyle.  MDI does this to set a special border style.
14546         - New utility methods for converting points to/from client coords
14547         - Add the newly created control to the Controls collection before
14548         updating its style. This way UpdateStyle can walk the control
14549         heirarchy to find the control if needed.
14550         so I don't need to create a new Point object all the time.
14551         * Form.cs: Let MDI windows handle their border styles.
14552         - Set styles on MDI windows so the correct title style is derived.
14553         * MdiChildContext.cs: Move all the painting and window handling
14554         into the non client area.
14555         - Use correct sizing and put correct buttons on frames based on
14556         the FormBorderStyle.
14557         - Notify the mdi client about scrolling
14558         - Need to handle the buttons ourselves now, because they are all
14559         in non client areas and we can't add controls there.
14560         * MdiClient.cs: Halfway to scrolling, this implementation is
14561         somewhat broken though, we need to check to make sure other
14562         windows aren't causing scrolling before removing the bars. Also
14563         the bars need to be drawn on top, maybe I can switch implicit
14564         controls to be on top.
14565         * Hwnd.cs: caption_height and tool_caption_height are now
14566         properties of an hwnd, this way they can be set by the driver
14567         based on the type of window they are.  In X11 the window manager
14568         handles the decorations so caption_height is zero unless its an
14569         MDI window.
14570         - Add 3 pixel borders for MDI windows (0xFFFF).
14571         - Get rid of some code duplication, have DefaultClientRectanle
14572         just call GetClientRectangle.
14573         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
14574         Hwnd now.
14575         - Set border styles differently for mdi windows.
14576         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
14577         Hwnd now.
14578         
14579 2005-11-15  Mike Kestner  <mkestner@novell.com>
14580
14581         * Menu.cs: when adding an item to the collection, if item is already 
14582         parented, remove it from the parent.
14583
14584 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
14585
14586         * X11DesktopColors.cs: Added KDE support
14587
14588 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
14589
14590         * XplatUIWin32.cs: 
14591           - Clipboard methods now can translate Rtf format
14592           - No longer removes clipboard contents whenever a new format is added
14593             to allow placing multiple formats on the clipboard
14594         * Clipboard.cs: Clipboard now supports getting a IDataObject and
14595           will place all formats contained in it onto the clipboard. Also
14596           now cleans the clipboard before placing a new object onto it
14597         * RichTextBox.cs:
14598           - Implemented set_Rtf
14599           - Implemented set_SelectedRtf
14600           - Created InsertRTFFromStream() method to allow single code base
14601             for all properties and methods that insert RTF into document
14602           - Removed debug output
14603         * TextControl.cs:
14604           - Fixed Delete(int) to fix up line numbers
14605           - Fixed ReplaceSelection to combine start and end line
14606           - Fixed serious DeleteChars bug that would leave the document tree
14607             broken
14608           - Improved DumpTree with several logic checks to detect broken
14609             document trees
14610           - Removed debug lines
14611           - Fixed Caret.WordForward/WordBack moving code, now always also 
14612             updates caret.tag (fixes crash when word-selecting across tag
14613             boundaries via keyboard)
14614           - Added Insert() method for inserting multiline text into documents
14615           - Fixed DeleteChars() calculation errors that would cause a broken
14616             tag chain with multiple tag lines
14617           - DeleteChars() no longer crashes on multi-tag lines if not all tags
14618           - Split() no longer moves caret if split is at caret location
14619           - ReplaceSelection() now updates the cursor and re-displays it
14620           - ReplaceSelection() now uses new Insert() method to avoid code
14621             duplication
14622           - FormatText() can now handle formatting partial lines
14623         * TextBoxBase.cs:
14624           - Append now uses new TextControl.Insert() method (this avoids 
14625             duplicate code)
14626           - Implemented Ctrl-X (Cut) (
14627           - Implemented Ctrl-C (Copy)
14628           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
14629             regeneration when pasting text; roundtripping Copy&Paste within
14630             edit control still fails due to some calculation bugs in GenerateRTF)
14631           - The Delete key will now remove the current selection if it is visible
14632         * TextBox.cs: Removed debug lines
14633         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
14634           driver to be initialized and can't therefore be done via a static ctor)
14635
14636 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
14637
14638         * TextControl.cs: Added backend code for finding char arrays and strings
14639         * TextBoxBase.cs:
14640           - Added mouse wheel scroll support
14641           - Added support for VScroll and HScroll events
14642         * RichTextBox.cs:
14643           - Implemented all seven Find() variants
14644           - Implemented GetCharFromPosition()
14645           - Implemented GetCharIndexFromPosition()
14646           - Implemented GetLineFromIndex()
14647           - Implemented GetPositionFromCharIndex();
14648           - Implemented SaveFile for PlainText and UnicodeText
14649           - Fixed set_Font, now setting a new font applies that font to
14650             the whole document
14651           - Implemented generic Document to RTF converter
14652           - Implemented SaveFile for RichText format (still missing unicode
14653             conversion for non-ansi chars)
14654           - Implemented get_Rtf
14655           - Implemented get_SelectedRtf
14656
14657 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
14658
14659         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
14660           to allow any captures to be released before triggering OnClick. This
14661           way a click handler may capture the mouse without interference.
14662         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
14663           This way we send them even though X may not allow a grab (if the window
14664           isn't visible, for example)
14665
14666 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
14667
14668         * DataGridViewRowEventArgs.cs: DataGridView implementation
14669         * DataGridViewElement.cs: DataGridView implementation
14670         * DataGridViewComboBoxCell.cs: DataGridView implementation
14671         * DataGridViewDataErrorContexts.cs: DataGridView implementation
14672         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
14673         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
14674         * ImageLayout.cs: DataGridView implementation
14675         * DataGridViewComboBoxColumn.cs: DataGridView implementation
14676         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
14677         * DataGridViewSelectionMode.cs: DataGridView implementation
14678         * IDataGridViewEditingControl.cs: DataGridView implementation
14679         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
14680         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
14681         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
14682         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
14683         * DataGridViewColumnSortMode.cs: DataGridView implementation
14684         * DataGridView.cs: DataGridView implementation
14685         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
14686         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
14687         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
14688         * Padding.cs: DataGridView implementation
14689         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
14690         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
14691         * DataGridViewRowEventHandler.cs: DataGridView implementation
14692         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
14693         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
14694         * DataGridViewButtonCell.cs: DataGridView implementation
14695         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
14696         * DataGridViewEditMode.cs: DataGridView implementation
14697         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
14698         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
14699         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
14700         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
14701         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
14702         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
14703         * DataGridViewCellEventHandler.cs: DataGridView implementation
14704         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
14705         * DataGridViewCellStyleConverter.cs: DataGridView implementation
14706         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
14707         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
14708         * DataGridViewColumnEventArgs.cs: DataGridView implementation
14709         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
14710         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
14711         * QuestionEventArgs.cs: DataGridView implementation
14712         * IDataGridViewEditingCell.cs: DataGridView implementation
14713         * DataGridViewTriState.cs: DataGridView implementation
14714         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
14715         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
14716         * DataGridViewColumnCollection.cs: DataGridView implementation
14717         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
14718         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
14719         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
14720         * DataGridViewColumn.cs: DataGridView implementation
14721         * DataGridViewCellBorderStyle.cs: DataGridView implementation
14722         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
14723         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
14724         * DataGridViewRow.cs: DataGridView implementation
14725         * DataGridViewImageCellLayout.cs: DataGridView implementation
14726         * DataGridViewImageCell.cs: DataGridView implementation
14727         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
14728         * DataGridViewCheckBoxCell.cs: DataGridView implementation
14729         * DataGridViewHeaderCell.cs: DataGridView implementation
14730         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
14731         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
14732         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
14733         * DataGridViewTextBoxColumn.cs: DataGridView implementation
14734         * QuestionEventHandler.cs: DataGridView implementation
14735         * DataGridViewCellStyleScopes.cs: DataGridView implementation
14736         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
14737         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
14738         * DataGridViewCell.cs: DataGridView implementation
14739         * DataGridViewCellEventArgs.cs: DataGridView implementation
14740         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
14741         * DataGridViewCellStyle.cs: DataGridView implementation
14742         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
14743         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
14744         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
14745         * TextFormatFlags.cs: DataGridView implementation
14746         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
14747         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
14748         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
14749         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
14750         * DataGridViewButtonColumn.cs: DataGridView implementation
14751         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
14752         * HandledMouseEventArgs.cs: DataGridView implementation
14753         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
14754         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
14755         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
14756         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
14757         * DataGridViewRowCollection.cs: DataGridView implementation
14758         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
14759         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
14760         * DataGridViewHitTestType.cs: DataGridView implementation
14761         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
14762         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
14763         * DataGridViewColumnEventHandler.cs: DataGridView implementation
14764         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
14765         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
14766         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
14767         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
14768         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
14769         * DataGridViewContentAlignment.cs: DataGridView implementation
14770         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
14771         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
14772         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
14773         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
14774         * DataGridViewPaintParts.cs: DataGridView implementation
14775         * DataGridViewCellCollection.cs: DataGridView implementation
14776         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
14777         * DataGridViewImageColumn.cs: DataGridView implementation
14778         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
14779         * DataGridViewElementStates.cs: DataGridView implementation
14780         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
14781         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
14782         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
14783         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
14784         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
14785         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
14786         * DataGridViewRowHeaderCell.cs: DataGridView implementation
14787         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
14788         * DataGridViewTextBoxCell.cs: DataGridView implementation
14789         * DataGridViewBand.cs: DataGridView implementation
14790         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
14791         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
14792         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
14793         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
14794         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
14795         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
14796         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
14797         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
14798         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
14799         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
14800         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
14801
14802 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
14803
14804         * ThemeWin32Classic.cs: 
14805           - Draw the outside focus rectangle around buttons
14806           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
14807             doesn't use end caps for every dash of a line anymore. This
14808             workaround ignores the forecolor.
14809
14810 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
14811
14812         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
14813           endian safe.
14814
14815 2005-11-07  Jackson Harper  <jackson@ximian.com>
14816
14817         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
14818
14819 2005-11-07  Jackson Harper  <jackson@ximian.com>
14820
14821         * ScrollableControl.cs: Calculate the maximum and change vars
14822         (more) correctly so that scrollbars appear as a sensible size.
14823
14824 2005-11-04  Jackson Harper  <jackson@ximian.com>
14825
14826         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
14827         collection.
14828         * TreeView.cs: When the tree is sorted null out the top_node so
14829         that it is recalculated.
14830         - Use dotted lines instead of dashed lines to match MS better.
14831
14832 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
14833
14834         * ListView.cs: 
14835           - Implements key search for items. Useful when browsing files with FileDialog
14836           - When changing view mode or when clear the items reset scrollbar positions
14837
14838 2005-11-04  Jackson Harper  <jackson@ximian.com>
14839
14840         * CurrencyManager.cs: Implement the MetaDataChanged event, the
14841         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
14842         as to what the method may do as there is no real way of creating a
14843         derived CurrencyManager and calling the method. 
14844
14845 2005-11-03  Jackson Harper  <jackson@ximian.com>
14846
14847         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
14848         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
14849         method which seems to just be used internally to refresh the tabs.
14850
14851 2005-11-03  Jackson Harper  <jackson@ximian.com>
14852
14853         * TabControl.cs: Implement the remove method. Fix some broken
14854         comments.
14855
14856 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
14857
14858         * DateTimePicker.cs:
14859           - Added missing DateTimePickerAccessibleObject class
14860           - Added missing events
14861           - Added OnFontChanged method
14862         * Form.cs: Added missing attributes
14863         * TreeView.cs: Added missing attributes
14864
14865 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
14866
14867         * GridItemCollection.cs: Fix signatures
14868
14869 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
14870
14871         * XplatUI.cs: Updated build rev/date
14872         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
14873           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
14874         * Application.cs: Trigger context-specific ExitThread events
14875
14876 2005-11-03  Jackson Harper  <jackson@ximian.com>
14877
14878         * Menu.cs:
14879         * MainMenu.cs:
14880         * GridTableStylesCollection.cs:
14881         * Timer.cs:
14882         * TabPage.cs:
14883         * HelpProvider.cs:
14884         * StatusBar.cs:
14885         * MonthCalendar.cs: Signature fixes
14886
14887 2005-11-03  Jackson Harper  <jackson@ximian.com>
14888
14889         * TreeNodeCollection.cs: Remove should not be virtual.
14890         * TreeView.cs: Implement the last of the missing methods.
14891
14892 2005-11-03  Jackson Harper  <jackson@ximian.com>
14893
14894         * TreeNodeConverter.cs: Implement to get off my class-status back.
14895
14896 2005-11-03  Jackson Harper  <jackson@ximian.com>
14897
14898         * TreeView.cs: Hookup the bits for drag and drop.
14899         * TreeNode.cs: Don't cache the tree_view or index anymore, now
14900         that nodes can be moved from tree to tree easily this just causes
14901         all sorts of problems.
14902         * TreeNodeCollection: Don't need to give treenodes an index and
14903         treeview anymore when they are added, these are computed on the
14904         fly. Also make sure to remove a node before its added.
14905
14906 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
14907
14908         * TextControl.cs:
14909           - Added CaretSelection enum
14910           - Added comparison methods to Marker struct, makes selection code
14911             more readable
14912           - Added SelectionStart and SelectionEnd as 'moveable' location for
14913             the CaretDirection enum and handler
14914           - Added selection_prev variable to track optimized invalidation for
14915             word and line selection
14916           - Added SelectionVisible property (returns true if there is a valid 
14917             selection)
14918           - Switched CaretHasFocus to only display the caret if there is no
14919             visible selection
14920           - Avoiding StringBuilder.ToString to retrieve a single char, instead
14921             using the direct character index; should be much faster
14922           - Added various conditional debug statements
14923           - Fixed invalidation calculation for selection ranges
14924           - Added ExpandSelection() method to support word and line selection
14925           - Switched SetSelectionToCaret to use new Marker compare overloads
14926           - Added central IsWordSeparator() method to determine word 
14927             separators/whitespace and FindWordSeparator() to streamline common
14928             usage of IsWordSeparator()
14929         * TextBoxBase.cs:
14930           - Removed unneeded grabbed variable, it was just mirroring
14931             Control.Capture
14932           - No longer firing OnTextChanged event when Text setter is called,
14933             since the base will fire the event for us
14934           - Added handling of Ctrl-Up/Down selection
14935           - Added handling of Shift-Cursorkey selection
14936           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
14937             words
14938           - Added handling of Shift and Ctrl-Shift-Home/End selection
14939           - Removed some debug output
14940           - Added handling for single/double/tripple-click to place caret/
14941             select word/select line respectively (Fixes bug #76031)
14942           - Added support for drag expansion of word/line selection
14943         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
14944           current selection
14945
14946 2005-11-02  Jackson Harper  <jackson@ximian.com>
14947
14948         * X11Dnd.cs: If the drag is going to and from a MWF window just
14949         copy the data instead of sending it out through the X Selection
14950         mechanism.
14951
14952 2005-11-02  Jackson Harper  <jackson@ximian.com>
14953
14954         * X11Dnd.cs:
14955         * XplatUIX11.cs: When in a drag we don't want motion notify
14956         messages to get passed on to the other controls. This prevents
14957         mouse move messages from showing up in the drag source.
14958
14959 2005-11-02  Jackson Harper  <jackson@ximian.com>
14960
14961         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
14962         the correct button is release to end a drag.
14963         * XplatUIX11.cs: Make the button state internal so the drag system
14964         can access it.  Dragging needs to know about all button releases,
14965         not just left button.
14966
14967 2005-11-02  Miguel de Icaza  <miguel@novell.com>
14968
14969         * Form.cs (Icon): If the icon is null, reset the icon to the
14970         default value. 
14971
14972         * Cursor.cs: When writing the AND-mask bitmap do not include the
14973         number of colors, but hardcode those to two (black and white),
14974         fixes the loading of color cursors (Paint Dot Net).
14975
14976         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
14977         turn off autoscaling.
14978
14979         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
14980
14981 2005-11-02  Jackson Harper  <jackson@ximian.com>
14982
14983         * X11Dnd.cs: Make sure to send a status message if the pointer
14984         enters a control that can not accept a drop, otherwise the cursor
14985         isn't updated correctly. Also tried to compress the lines of code
14986         a bit.
14987
14988 2005-11-02  Jackson Harper  <jackson@ximian.com>
14989
14990         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
14991         set actions correctly.  This isn't perfect as XDND and win32 have
14992         some differences on how you allow actions. I'll clear this up by
14993         adding a path for drag from MWF to MWF windows.
14994         * XplatUIX11.cs: Hook into the dnd system.
14995
14996 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
14997
14998         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
14999         previously shown but they are no longer need it. Very obvious when 
15000         browsing files with FileDialog.
15001
15002 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
15003
15004         * Control.cs: We always need to call OnPaintBackground. We pretty much
15005           ignore AllPaintingInWmPaint and always do the painting there, whether 
15006           it's set or not, since we always ignore the WM_ERASEBKGND message 
15007           (which we don't generate on X11). This fixes #76616.
15008         * Panel.cs: Removed unneeded background painting. This happens properly
15009           in Control.cs already
15010
15011 2005-10-31  Mike Kestner  <mkestner@novell.com>
15012
15013         * Menu.cs: Add items to collection before setting their index.
15014         * MenuItem.cs : add range checking with ArgumentException like MS.
15015         [Fixes #76510]
15016
15017 2005-10-31  Jackson Harper  <jackson@ximian.com>
15018
15019         * ListBox.cs: Invalidate if the area is visible at all not just
15020         contained in the visible rect. Fixes unselection of semi visible
15021         items.
15022
15023 2005-10-31  Jackson Harper  <jackson@ximian.com>
15024
15025         * Control.cs: Consistently name the dnd methods. Make them
15026         internal so we can override them to match some MS behavoir
15027         internally.
15028         * Win32DnD.cs: Use the new consistent names.
15029
15030 2005-10-31  Jackson Harper  <jackson@ximian.com>
15031
15032         * TreeView.cs: Don't draw the selected node when we lose focus.
15033
15034 2005-10-31  Jackson Harper  <jackson@ximian.com>
15035
15036         * X11Dnd.cs: We still need to reset the state even though a full
15037         reset isn't being done, otherwise status's still get sent all over
15038         the place.
15039
15040 2005-10-31  Jackson Harper  <jackson@ximian.com>
15041
15042         * Control.cs: Make the dnd_aware flag internal so the dnd
15043         subsystem can check it. Catch exceptions thrown in dnd handlers to
15044         match MS behavoir.
15045         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
15046         * X11Dnd.cs: Handle null data in the converters. Set the XDND
15047         version when sending a XdndEnter. Use the control/hwnd dnd_aware
15048         flags to reduce the number of dnd enters/status's sent.
15049
15050 2005-10-31  Jackson Harper  <jackson@ximian.com>
15051
15052         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
15053
15054 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
15055
15056         * PictureBox.cs: Fixes 76512
15057
15058 2005-10-28  Jackson Harper  <jackson@ximian.com>
15059
15060         * X11Dnd.cs: Early implementation to support winforms being a drag
15061         source for data on X11. Also restructured the converters so they
15062         can go both ways now.
15063         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
15064         
15065 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
15066
15067         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
15068           clipboard requests
15069
15070 2005-10-27  Jackson Harper  <jackson@ximian.com>
15071
15072         * TreeNode.cs: Implement serialization so my DnD examples will work.
15073
15074 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
15075
15076         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
15077           TreeView.cs: Don't dispose objects that are not owned.
15078           
15079 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
15080
15081         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
15082           should retrieve the current cursor and report that, but XplatUI
15083           doesn't (yet) have an interface for that (and I'm not sure I even
15084           can, on X11)
15085         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
15086           until any message loop processing is done (and the WM_SETCURSOR
15087           replaces the cursor to the proper one)
15088         * XplatUIX11.cs: 
15089           - Fixed override behaviour, we can't set the cursor globally on X11, 
15090             just for our windows.
15091           - Invalidating the System.Drawing X11 display handle when we are
15092             shutting down
15093         * Control.cs: Fix to make csc happy
15094
15095 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
15096
15097         * TextBoxBase.cs: 
15098           - get_Text: Add last line (without trailing newline) to returned
15099             value (Fixes 76212)
15100           - get_TextLength: Count last line in returned length
15101           - ToString: Call Text property instead of duplicating code
15102
15103 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
15104
15105         * ImageList.cs: Dispose ImageAttributes objects.
15106
15107 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
15108
15109         * ImageList.cs: Use attribute constructors with less arguments where
15110           possible.
15111
15112 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
15113
15114         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
15115           Use typeof instead of strings when assembly is referenced. Added
15116           some more comments.
15117
15118 2005-10-21  Jackson Harper  <jackson@ximian.com>
15119
15120         * ListView.cs: Raise a double click event. Also tried to somewhat
15121         fix when the selectedindexchanged event is raised. Its still
15122         broken though.
15123
15124 2005-10-21  Jackson Harper  <jackson@ximian.com>
15125
15126         * TreeView.cs: New method to invalidate the plus minus area of a
15127         node without invalidating the whole node (maybe this can be used
15128         in some more places).
15129         * TreeNodeCollection.cs: When adding to an empty node we need to
15130         invalidate its plus minus area so the little block shows up.
15131         
15132 2005-10-21  Jackson Harper  <jackson@ximian.com>
15133
15134         * TreeView.cs: Make sure that when we invalidate a node the bounds
15135         are big enough to cover the selected box and the focus
15136         rectangle. Use a different colour for the lines connecting nodes
15137         so they show up with all themes.
15138
15139 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
15140
15141         * NativeWindow.cs: Don't call anything that could call into the driver,
15142           we might be on a different thread.
15143
15144 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
15145
15146         * Control.cs(Dispose): Since Dispose might run on a different thread,
15147           make sure that we call methods that could call into the driver via
15148           invoke, to avoid thread issues
15149
15150 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
15151
15152         * XplatUI.cs: Removed finalizer
15153         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
15154           not allowing to be called on the finalizer thread.
15155
15156 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
15157
15158         * ImageList.cs:
15159           - Reverted r51889 and r51891.
15160           - Added ImageListItem class that stores unmodified image items and image
15161             properties required to create list images until handle is created.
15162           - Added AddItem and moved image creation logic to AddItemInternal.
15163           - Added CreateHandle method that creates images based on unmodified items.
15164           - Added DestroyHandle that changes state to store unmodified items.
15165           - Add and AddStrip methods no more create handle.
15166           - ReduceColorDepth has no return value.
15167           - Dispose destroys handle.
15168           - Modified other methods to reflect the above changes.
15169           - Implemented key support.
15170           - Added profile 2.0 members and attributes.
15171           - Added private Reset and ShouldSerialize methods that provide the same
15172             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
15173             them as they are private.
15174           - Added some more comments about implementation details.
15175
15176 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
15177
15178         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
15179
15180 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
15181
15182         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
15183
15184 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
15185
15186         * DataGridDrawingLogic.cs: Fixes column hit calcultation
15187         * DataGridColumnStyle.cs: Remove debug message
15188
15189 2005-10-20  Jackson Harper  <jackson@ximian.com>
15190
15191         * TreeView.cs: We can always get input keys regardless of whether
15192         or not editing is enabled. They are used for navigation.
15193
15194 2005-10-20  Jackson Harper  <jackson@ximian.com>
15195
15196         * TreeNode.cs: Use the viewport rect for determining if a node
15197         needs to be moved for visibility. Don't use Begin/End edit. This
15198         calls a full refresh when its done.
15199         * TreeView.cs: New SetBottom works correctly.  Make the viewport
15200         rect property internal so the treenodes can see it. When clicking
15201         on a node we need to ensure that its visible because it might just
15202         be partly visible when clicked.
15203
15204 2005-10-20  Jackson Harper  <jackson@ximian.com>
15205
15206         * TreeNodeCollection.cs: Remove debug code.
15207
15208 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
15209
15210         * Datagrid.cs: Implements column sorting in Datagrid
15211         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
15212
15213 2005-10-20  Jackson Harper  <jackson@ximian.com>
15214
15215         * TreeNodeCollection.cs: Remove items properly. Update the correct
15216         area after removing them.
15217
15218 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
15219
15220         * Datagrid.cs: Should not call base.OnPaintBackground
15221
15222 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
15223
15224         * XplatUIX11.cs (GetMessage):
15225           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
15226             window instead of client window
15227           - Now properly calculates NC_xBUTTONUP message coordinates
15228           - ScreenToMenu now properly calculates it's coordinates of whole 
15229             window, since menus are in the whole window, not in the client
15230             window
15231           - Added WholeToScreen coordinate translation method
15232
15233 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
15234
15235         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
15236           want to return a message, loop back to the beginning of the function
15237           and grab the next real message to process instead.
15238
15239 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
15240
15241         * Splitter.cs: Properly set limits if no filler control is used
15242
15243 2005-10-19  Jackson Harper  <jackson@ximian.com>
15244
15245         * ColorDialog.cs: Don't show the help button if it is not enabled
15246         instead of disabling it (this is what MS does). Don't create the
15247         panel until the dialog is run, otherwise the vars (such as
15248         ShowHelp) are not set yet.
15249
15250 2005-10-19  Jackson Harper  <jackson@ximian.com>
15251
15252         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
15253         are reduced when adding nodes.
15254         * TreeNode.cs:
15255         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
15256         tree.
15257         
15258 2005-10-19  Jackson Harper  <jackson@ximian.com>
15259
15260         * FolderBrowserDialog.cs: End editing our treeview so the window
15261         actually gets refreshed.
15262
15263 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
15264
15265         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
15266           Obsoleted handling of WM_ERASEBKGND, now always draws our background
15267           inside of WM_PAINT
15268
15269 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
15270
15271         * MenuAPI.cs: Returns after Hidding window
15272         * XplatUIX11.cs: Added TODO found while debugging menu issues
15273
15274 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
15275
15276         * XplatUIX11.cs: Do not re-map the whole window when it's size
15277           becomes non-zero unless it's supposed to be actually visible
15278
15279 2005-10-18  Jackson Harper  <jackson@ximian.com>
15280
15281         * TreeView.cs: We don't need to keep a count anymore.
15282         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
15283         use the Grow method.
15284
15285 2005-10-18  Jackson Harper  <jackson@ximian.com>
15286
15287         * TreeNodeCollection.cs: Insert is not supported on arrays, so
15288         implement it manually here.
15289
15290 2005-10-18  Jackson Harper  <jackson@ximian.com>
15291
15292         * ImageList.cs: Dont kill the list when the colour depth is
15293         changed, just change the colour depth of all the images.
15294         - Same goes for setting the image size. Just resize them all
15295         instead of killing the list softly.
15296
15297 2005-10-18  Jackson Harper  <jackson@ximian.com>
15298
15299         * Control.cs: Don't invalidate empty rectangles.
15300
15301 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
15302
15303         * ListViewItem.cs:
15304           - Adds checked item to the Checked/Item lists (where empty before)
15305           - Do not add items to the Selected lists if they are already present
15306         * ListView.cs:
15307           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
15308           - When deleting items make sure that we delete them for the Selected
15309           and Checked list also.
15310
15311 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
15312
15313         * Label.cs: Dispose objects no longer used
15314         * ThemeWin32Classic.cs: Dispose objects no longer used
15315
15316 2005-10-18  Jackson Harper  <jackson@ximian.com>
15317
15318         * TabControl.cs: Don't refresh the whole control when the tabs are
15319         scrolled, we just need to refresh the tab area.
15320
15321 2005-10-17  Jackson Harper  <jackson@ximian.com>
15322
15323         * XplatUIX11.cs: Compress code a little bit. Only calculate the
15324         after handle when we need it.
15325
15326 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
15327
15328         * Control.cs: When the parent size changes, recalculate anchor 
15329           positions. Partial fix for #76462
15330
15331 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
15332
15333         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
15334           drawn. Fixes #76462
15335
15336 2005-10-17  Jackson Harper  <jackson@ximian.com>
15337
15338         * MonthCalendar.cs: Don't create the numeric up down until our
15339         handle is created. Otherwise our handle is created in the
15340         constructor and we don't know if we are a WS_CHILD or WS_POPUP
15341         yet.
15342
15343 2005-10-17  Jackson Harper  <jackson@ximian.com>
15344
15345         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
15346         correctly.
15347
15348 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
15349         * TreeNode.cs : small logical fix (was using local var instead of field)
15350         
15351 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
15352
15353         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
15354
15355 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
15356
15357         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
15358
15359 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
15360
15361         * Control.cs: 
15362           - Re-implemented anchoring code. My first version was really broken.
15363             This fixes bug #76033. Unlike the previous implementation we will
15364             no longer have round errors since all numbers are calculated from
15365             scratch every time. Removed various anchor-related obsolete vars.
15366           - InitLayout no longer causes layout event firing and layout to be 
15367             performed
15368
15369 2005-10-16  Jackson Harper  <jackson@ximian.com>
15370
15371         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
15372         which was broken).
15373
15374 2005-10-16  Jackson Harper  <jackson@ximian.com>
15375
15376         * TabControl.cs: Remove debug code.
15377
15378 2005-10-16  Jackson Harper  <jackson@ximian.com>
15379
15380         * XEventQueue.cs: Increase the default queue size (very simple
15381         apps needed to grow the queue).
15382         * Hwnd.cs: No finalizer so we don't need to suppress
15383         finalization. Compute the invalid area manually so a new rectangle
15384         does not newto be created.
15385         * ScrollableControl.cs: Don't set any params (otherwise visibility
15386         isn't set correctly).
15387         * MdiChildContext.cs: New constructor takes the mdi parent so it
15388         doesn't have to be computed and avoids a crash on windows. Draw
15389         the window icon properly, and allow the text to be seen.
15390         * Form.cs: Use new MdiChildContext constructor. Make sure the
15391         child context isn't null in wndproc.
15392         * TabControl.cs: Don't set focus, this is muddling keyboard
15393         behavoir. Expand the tab rows when a window size increase will
15394         allow extra tabs to be seen. Don't allow tabs smaller than the
15395         width of a window to be scrolled out of view.
15396         * TreeNode.cs:
15397         * TreeView.cs: Use measure string to calculate a nodes width, the
15398         width is cached and only updated when the text or the font is
15399         changed. Don't check for expand/collapse clicks on the first level
15400         nodes if root lines are disabled.
15401         
15402 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
15403
15404         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
15405
15406 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
15407
15408         * DataGridBoolColumn.cs: fixes warning
15409
15410 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
15411
15412         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
15413         to match more to match more precisely the MS Net behavior
15414
15415 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
15416
15417         * Hwnd.cs: Added field to track if window is mapped
15418         * XplatUIX11.cs: 
15419           - Unmap windows if they become 0-size, re-map when 
15420             they are >0 again; fixes #76035
15421           - Re-set our error handler after initializing X11Desktop
15422             to override any error handlers Gtk or whatever was called
15423             may have set.
15424
15425 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
15426
15427         * CheckedListBox.cs: Removed unused vars
15428         * ListView.cs: Fixed signatures
15429         * RichTextBox.cs: Removed unused vars
15430         * TextBoxBase.cs: Removed unused vars
15431         * XplatUIWin32.cs: Removed unused vars
15432         * XplatUIX11.cs: Removed unused vars
15433         * XplatUI.cs: Updated version and date to latest published
15434
15435 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
15436
15437         * Cursor.cs: Added private .ctor to work around a bug in
15438           resourceset (Thanks to Geoff Norton for the help on this)
15439         * SplitterEventArgs.cs: Made fields accessible so we don't
15440           waste boatloads of objects and can reuse the same one
15441           in Splitter
15442         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
15443           any captions and borders when generating screen coordinates
15444         * Splitter.cs: Reimplemented control, now fully complete, uses
15445           rubberband drawing, supports and obeys all properties, has
15446           proper cursors
15447
15448 2005-10-13  Miguel de Icaza  <miguel@novell.com>
15449
15450         * Form.cs (Form): Setup default values for autoscale and
15451         autoscale_base_size;  Make these instance variables, not static
15452         variables. 
15453
15454         (OnLoad): on the first load, adjust the size of the form.
15455
15456 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
15457
15458         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
15459           width argument to DrawReversibleRectangle()
15460         * XplatUIWin32.cs, XplatUIX11.cs: 
15461           - Implemented width for DrawReversibleRectangle()
15462           - Added logic to DrawReversibleRectangle that recognizes a zero
15463             width or height and only draws a line in that situation
15464         
15465 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
15466
15467         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
15468         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
15469         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
15470           method (it uses our FosterParent window to get a graphics context)
15471
15472 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
15473
15474         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
15475           and SetWindowBackground methods
15476         * Control.cs:
15477           - Setting proper ControlStyles
15478           - We no longer call XplatUI.SetWindowBackground and XplatUI.
15479             EraseWindowBackground, instead we draw the window background
15480             ourselves in PaintControlBackground. This behaviour is
15481             required to match MS, where, when OnPaintBackground is not
15482             called, the background is not drawn.
15483           - Removed unneeded Refresh() in set_Text
15484         * Hwnd.cs: Dropped the ErasePending support. No longer needed
15485         * XplatUIX11.cs:
15486           - Created DeriveStyles method to translate from CreateParams to
15487             FormBorderStyle and TitleStyle, also handles BorderStyle (which
15488             matches FormBorderStyle enum values)
15489           - Consolidated SetHwndStyles and CalculateWindowRect border/title
15490             style calculations into single DeriveStyles method
15491           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
15492             from redrawing the whole window on any resize or expose.
15493           - Fixed CreateWindow usage of SetWindowValuemask. Before not
15494             all styles were applied to our whole/client window appropriately
15495           - Removed EraseWindowBackground() and SetWindowBackground() methods
15496           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
15497             no longer clear/redraw the background through X
15498           - Removed handling of erase_pending bit, we have no use for it (or
15499             so it seems)
15500         * XplatUIOSX.cs:
15501           - Removed generation and handling of WM_ERASEBKGND message
15502           - Removed EraseWindowBackground() and SetWindowBackground() methods
15503           - Removed handling of hwnd.ErasePending flag
15504         * XplatUIWin32.cs:
15505           - Removed EraseWindowBackground() and SetWindowBackground() methods
15506           - We no longer call EraseWindowBackground on PaintEventStart, we 
15507             ignore the fErase flag, erasing is handled in Control in the
15508             background handler
15509         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
15510           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
15511           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
15512           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
15513           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
15514           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
15515           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
15516
15517 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
15518
15519         * PropertyGrids.cs: Get sub properties
15520         * PropertyGridView.cs: Fix drawing code
15521
15522 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
15523
15524         * ListBox.cs: Fixes 76383
15525
15526 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
15527
15528         * DataGridTextBoxColumn.cs: Sets location and size before attachment
15529         * ThemeWin32Classic.cs: Fixes border drawing and calculations
15530         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
15531
15532
15533 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
15534
15535         * ComboBox.cs: Fixes border drawing
15536
15537 2005-10-10  Miguel de Icaza  <miguel@novell.com>
15538
15539         * MimeIcon.cs: Ignore errors if the file can not be read.
15540
15541 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
15542
15543         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
15544          - Fixed border calculations
15545          - Fixed horizontal scrolling in single column listboxes
15546          - Fixed drawing issues
15547
15548 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
15549
15550         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
15551           FormBorderStyle enum
15552         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
15553           code to determine FormBorderStyles from CreateParams
15554         * Form.cs:
15555           - Fixed bug where we'd set the wrong window styles if we were
15556             not creating an MDI window
15557           - Added call to XplatUI.SetBorderStyle when form borders are set
15558         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
15559         * Hwnd.cs:
15560           - Removed obsolete edge style
15561           - Switched from BorderStyle to FormBorderStyle
15562         
15563 2005-10-10  Jackson Harper  <jackson@ximian.com>
15564
15565         * Form.cs: Use the property to get the window handle instead of
15566         accessing it directly. Prevents a null reference exception.
15567
15568 2005-10-10  Jackson Harper  <jackson@ximian.com>
15569
15570         * TreeView.cs: Don't adjust the rect given to DrawString now that
15571         our libgdiplus draws correctly.
15572
15573 2005-10-08  Jackson Harper  <jackson@ximian.com>
15574
15575         * TreeView.cs: Don't try to find the clicked on node if there are
15576         no nodes in the tree.
15577
15578 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
15579
15580         * RichTextBox.cs:
15581
15582           restore
15583
15584 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
15585
15586         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
15587           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
15588           ErrorProvider.cs:
15589           Use ResPool for brushes and dispose System.Drawing objects that
15590           are not used anymore.
15591
15592 2005-10-07  Jackson Harper  <jackson@ximian.com>
15593
15594         * MdiChildContext.cs: Use the new borders instead of drawing them
15595         ourselves.
15596
15597 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
15598
15599         * Calling UpdateBounds after changing the window's BorderStyle 
15600         since the style can change the ClientSize
15601
15602 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15603
15604         * Control.cs: Made PaintControlBackground virtual
15605         * Panel.cs: Overriding PaintControlBackground instead of using paint
15606           event; paint event method was interfering with 'real' users of the
15607           event.
15608
15609 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
15610
15611         * ThemeWin32Classic.cs: remove border drawing since it is handled
15612         by the base control class now and was causing double border drawing.
15613
15614 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15615
15616         * Panel.cs: Redraw our background on paint. Not a pretty solution,
15617           but it does seem to match MS behaviour. This fixes bug #75324
15618
15619 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15620
15621         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
15622           somewhat hackish looking
15623
15624 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
15625
15626         * TextBoxBase.cs:
15627           - We now accept Enter even if AcceptEnter is false, if the containing
15628             form does not have an AcceptButton configured (fixes bug #76355)
15629           - Calculations are now fixed to no longer use Width/Height, but
15630             ClientSize.Width/Height, since we now support borders (this was
15631             a result of fixing borders and therefore bug #76166)
15632           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
15633             true (fixes bug #76354)
15634         
15635 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15636
15637         * Control.cs: 
15638           - Defaulting BorderStyle and setting it in XplatUI when our window 
15639             is created
15640           - Added enum check to InternalBorderStyle setter
15641         * XplatUIX11.cs: 
15642           - Added drawing of window borders
15643           - Now properly calculates WM decorations offset for toplevel 
15644             windows (fixes bug #74763)
15645         * XplatUIWin32.cs: 
15646           - Implemented BorderStyles for windows (we're letting win32 draw 
15647             the border for us)
15648           - Fixed the signature for SetWindowLong
15649         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
15650           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
15651           setting borders
15652         * UpDownBase.cs: Remove drawing of borders, this is handled by
15653           the driver, outside the client area
15654         * ListView.cs: Removed bogus border calculations. The control should
15655           be oblivious to borders, since those are not part of the client
15656           area. 
15657         * X11DesktopColors.cs: Commented out (currently) unneeded variables
15658         * ThemeWin32Classic.cs: Removed border calculations from ListView 
15659           drawing code
15660
15661 2005-10-06  Jackson Harper  <jackson@ximian.com>
15662
15663         * MdiChildContext.cs: Clear out the old virtual position remove
15664         all the unneeded calls to CreateGraphics.
15665
15666 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
15667
15668         * TextControl.cs: Use proper color for highlighted text; fixes #76350
15669
15670 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
15671
15672         * Form.cs: 
15673           - Added loading and setting of our new default icon
15674           - Only set icon if window is already created
15675
15676 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15677
15678         * Label.cs:
15679           - Do not explicitly set the foreground and background colors, to
15680             allow inheriting from parents (fixes #76302)
15681           - Use Control's InternalBorderStyle property to deal with borders
15682
15683 2005-10-06  Jackson Harper  <jackson@ximian.com>
15684
15685         * MdiChildContext.cs: Use the new xplatui function to draw a
15686         reversible rect.
15687
15688 2005-10-06  Jackson Harper  <jackson@ximian.com>
15689
15690         * Form.cs: Add the parent before creating the child context cause
15691         we need the parent when setting up the child.
15692
15693 2005-10-06  Jackson Harper  <jackson@ximian.com>
15694
15695         * FolderBrowserDialog.cs: redo the tree population code so a
15696         second thread isn't used. Should be a lot faster and more stable
15697         now.
15698
15699 2005-10-05  Jackson Harper  <jackson@ximian.com>
15700
15701         * TreeView.cs: There are no expand/collapse boxes if the node has
15702         no children.
15703
15704 2005-10-05  Jackson Harper  <jackson@ximian.com>
15705
15706         * X11DesktopColors.cs: Get menu colours for the gtk theme.
15707
15708 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
15709
15710         * FileDialog.cs: Fix InitialDirectory
15711
15712 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
15713
15714         * ComboBox.cs:
15715                 - Fixes changing between styles
15716                 - Fixes simple mode
15717                 - Fixes last item crashing when navigating with keyboard
15718
15719 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
15720
15721         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
15722
15723 2005-10-05  Jackson Harper  <jackson@ximian.com>
15724
15725         * TreeView.cs: If updating the root node do a full refresh.
15726         * TreeNode.cs: The root node should be expanded by default. Also
15727         added a utility prop to tell if we are the root node.
15728         * TreeNodeCollection.cs: Only refresh if the node we are being
15729         added to is expanded. Also added a comment on a potential
15730         optimization.
15731         
15732 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
15733
15734         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
15735           in dispose method. Fixes #76330
15736
15737 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
15738
15739         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
15740
15741                 - Implements vertical and horizontal scrolling using XplatUI
15742                 - Fixes keyboard navagation
15743                 - Fixes EnsureVisible
15744                 - Drawing fixes
15745                 - Handles and draws focus properly
15746
15747
15748 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
15749
15750         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
15751           Create handle. NET_2_0: Destroy handle when value is null.
15752
15753 2005-10-03  Jackson Harper  <jackson@ximian.com>
15754
15755         * ScrollBar.cs: My last scrollbar patch was broken. This is a
15756         revert and a new patch to prevent the thumb from refreshing so
15757         much.
15758
15759 2005-10-02  Jackson Harper  <jackson@ximian.com>
15760
15761         * ScrollBar.cs: Don't update position if it hasn't actually
15762         changed. This occurs when you hold down the increment/decrement
15763         buttons and the thumb gets to the max/min.
15764
15765 2005-10-01  Jackson Harper  <jackson@ximian.com>
15766
15767         * Form.cs:
15768         * MdiChildContext.cs:
15769         * MdiClient.cs: Implement ActiveMdiChild in Form.
15770
15771 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
15772
15773         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
15774
15775 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
15776
15777         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
15778           be found
15779
15780 2005-09-30  Jackson Harper  <jackson@ximian.com>
15781
15782         * ListBox.cs: Don't do a full refresh unless some data has
15783         actually changed.
15784
15785 2005-09-30  Jackson Harper  <jackson@ximian.com>
15786
15787         * TreeView.cs: Make sure that the checkboxes size is factored in
15788         even when not visible.
15789
15790 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
15791
15792         * FileDialog.cs: Fix Jordi's build break
15793
15794 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
15795
15796         * FileDialog.cs: 
15797                 - Use standard the Windows colours for the combobox as espected
15798                 - Dispose objects that use resouces when no longer need them
15799
15800 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
15801
15802         * X11DesktopColors.cs: Initial incomplete implementation
15803         * XplatUIX11.cs: Added call to initialize X11DesktopColors
15804
15805 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
15806
15807         * Theme.cs: 
15808           - Switched Theme color names to match the names defined in 
15809             System.Drawing.KnownColors. Life's hard enough, no need to make 
15810             it harder.
15811           - Added setters to all theme color properties so themes can set
15812             their color schemes. The setters also propagate the color changes
15813             to System.Drawing.KnownColors via reflection
15814         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
15815           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
15816           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
15817           use the new, more logical theme color names
15818         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
15819           post-NT colors
15820         * ThemeWin32Classic.cs:
15821           - Removed code to set the old classic Windows colors. Instead it
15822             now relies on the colors returned by System.Drawing.KnownColors
15823             which will be either modern static colors (Unix) or colors
15824             read from the user's configuration (Win32)
15825           - Updated to use the new, more logical theme color names
15826           - Switched DataGrid drawing code to use only Theme colors instead of
15827             a mix of System.Drawing.KnownColors and Theme colors
15828           - DrawFrameControl(): Removed code that fills the button area, the
15829             fill would overwrite any previous fill done by a control. This
15830             fixes bug #75338 
15831           - Added DrawReversibleRectangle() stub
15832         * ScrollableControl.cs: Set visible state to false when scrollbars
15833           are removed (pdn fix)
15834         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
15835           DrawReversibleRectangle() method to allow drawing primitive 
15836           'rubber bands'
15837         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
15838
15839 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15840
15841         * ImageList.cs: Add(Icon): Create handle.
15842
15843 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
15844
15845         * ListView.cs:
15846         * ThemeWin32Classic.cs:
15847                 - Fixes detail mode
15848                 - Sets clippings
15849                 - Issues with drawing
15850
15851 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15852
15853         * ImageList.cs: Moved RecreateHandle back to ImageList as event
15854           source has to be the ImageList.
15855
15856 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15857
15858         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
15859
15860 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15861
15862         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
15863
15864 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15865
15866         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
15867
15868 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
15869         * GridItem.cs: Fixed TODOs
15870         * GridItemCollection.cs: Added ICollection interface
15871
15872 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15873
15874         * ImageList.cs: Resize icons when needed.
15875
15876 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
15877
15878         * ListViewItem.cs
15879                 - Fixes GetBounds and returns on screen rects
15880         * ListView.cs:
15881                 - Fixes vertical and horzintal scrolling of items
15882         * ThemeWin32Classic.cs:
15883                 - Fixes drawing
15884                 
15885 2005-09-29  Raja R Harinath  <harinath@gmail.com>
15886
15887         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
15888
15889 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
15890
15891         * ImageList.cs: Added comments about handle creation. Moved Handle,
15892           HandleCreated and OnRecreateHandle implementations to ImageCollection.
15893           Handle is created in Add methods.
15894
15895 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
15896          
15897         * DataGridDrawingLogic.cs: 
15898                 - Takes rows into account on Colum calculations
15899                 - Returns the column when clickig
15900         * DataGrid.cs:
15901                 - Fixes default HitTestInfo values
15902                 - Fixes HitTestInfo.ToString
15903                 - Fixes ResetBackColor          
15904         
15905 2005-09-28  Jackson Harper  <jackson@ximian.com>
15906
15907         * MdiChildContext.cs: Obey rules for fixed sized windows (no
15908         sizing or cursor changes). Also added some temp code to draw the
15909         titlebars text (Makes dev a little easier).
15910
15911 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
15912
15913         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
15914
15915 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
15916          
15917         * ListBox.cs: Fixes bug 76253
15918
15919 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
15920
15921         * ImageList.cs: Added comments about the current implementation. Added
15922           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
15923           Format32bppArgb to preserve transparency and can use Graphics.FromImage
15924           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
15925           with Bitmap.LockBits for better performance. Revised the whole file to
15926           match MS.NET behaviour and provide better performance. Non-public
15927           interface members are calling public members even when they throw
15928           NotSupportedException for better maintainability. Moved ColorDepth,
15929           ImageSize, ImageStream and TransparentColor implementations to
15930           ImageCollection for better performance as these properties are not used
15931           by ImageList.
15932         * ImageListStreamer.cs: Added a new internal constructor that takes an
15933           ImageList.ImageCollection and serializes Images based on
15934           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
15935           match ImageList property name.
15936
15937 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
15938
15939         * ListBox.cs: Fixes IndexFromPoint for last item
15940
15941 2005-09-27  Jackson Harper  <jackson@ximian.com>
15942
15943         * Form.cs: Set the position of new mdi children correctly.
15944
15945 2005-09-27  Jackson Harper  <jackson@ximian.com>
15946
15947         * MdiClient.cs: New mdi children need to be added to the back of
15948         the controls collection so the zorder is set correctly. Also add a
15949         count of all the child windows that have been created.
15950
15951 2005-09-27  Jackson Harper  <jackson@ximian.com>
15952
15953         * Form.cs (CreateParams): Setup MDI forms correctly.
15954
15955 2005-09-27  Jackson Harper  <jackson@ximian.com>
15956
15957         * MdiChildContext.cs:
15958         * MonthCalendar.cs:
15959         * UpDownBase.cs:
15960         * ListBox.cs:
15961         * ListView.cs:
15962         * TextBoxBase.cs:
15963         * TreeView.cs:
15964         * ScrollableControl.cs:
15965         * ComboBox.cs: Add implicit controls using the new implict control
15966         functionality in ControlCollection. Also try to block multiple
15967         control add in a suspend/resume layout to save some cycles.
15968         
15969 2005-09-27  Jackson Harper  <jackson@ximian.com>
15970
15971         * Control.cs: Add functionality to the controls collection to add
15972         'implicit controls' these are controls that are created by the
15973         containing control but should not be exposed to the user. Such as
15974         scrollbars in the treeview.
15975         * Form.cs: The list var of the ControlsCollection is no longer
15976         available because of the potential of implicit controls getting
15977         ignored by someone accessing the list directly.
15978
15979 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
15980
15981         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
15982           loose it's parent. (Fixed bug introduced in r49103 when we added
15983           setting the child parent to null on Remove)
15984
15985 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
15986
15987         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
15988         * Splitter.cs: Added missing attributes for BorderStyle property.
15989         * TextBoxBase.cs: Marked Calculate* methods internal.
15990         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
15991         MS.NET.
15992
15993 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
15994          
15995         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
15996
15997 2005-09-25  Jackson Harper  <jackson@ximian.com>
15998
15999         * TreeView.cs: Update the node bounds correctly regardless of
16000         whether the node is visible.
16001
16002 2005-09-25  Jackson Harper  <jackson@ximian.com>
16003
16004         * ImageList.cs: Don't dispose the image after it is added to the
16005         image list. Only reformat images that need to be resized.
16006
16007 2005-09-25  Jackson Harper  <jackson@ximian.com>
16008
16009         * ImageList.cs: Don't set the format when changing the image.
16010
16011 2005-09-25  Jackson Harper  <jackson@ximian.com>
16012
16013         * TreeView.cs: We can't just assume the node has a font. Use the
16014         treeviews font if no node font is available.
16015
16016 2005-09-25  Jackson Harper  <jackson@ximian.com>
16017
16018         * TreeView.cs: Allow the scrollbars to be reset with negative
16019         values.
16020         - Don't add scrollbars to negative sized windows.
16021
16022 2005-09-23  Jackson Harper  <jackson@ximian.com>
16023
16024         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
16025         old Mono.Posix. Also remove some stray code that shouldn't have
16026         been committed.
16027
16028 2005-09-23  Jackson Harper  <jackson@ximian.com>
16029
16030         * TreeView.cs: Attempt at proper sizing of the horizontal
16031         scrollbar. Also don't resize the scrollbars unless they are
16032         visible.
16033
16034 2005-09-23  Jackson Harper  <jackson@ximian.com>
16035
16036         * TreeView.cs: We don't need to expand the invalid area when the
16037         selection changes, as this is all drawn in the node's bounding
16038         box. The area needs to be expanded (previous typo was contracting
16039         it) when the focus rect moves.
16040
16041 2005-09-23  Jackson Harper  <jackson@ximian.com>
16042
16043         * TreeView.cs: Display the selection box under the correct
16044         circumstances. We were rendering white text with no selection box
16045         before.
16046
16047 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
16048
16049         * TextControl.cs(Split): Now updates selection start/end if it points 
16050           into a line that's being split. Fixes a FIXME and bug #75258
16051
16052 2005-09-23  Jackson Harper  <jackson@ximian.com>
16053
16054         * Binding.cs:
16055         * ListControl.cs: Don't use the path when retrieving binding
16056         managers from the binding context. My bat sense tells me that the
16057         path is only used on insertion.
16058
16059 2005-09-22  Jackson Harper  <jackson@ximian.com>
16060
16061         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
16062
16063 2005-09-22  Jackson Harper  <jackson@ximian.com>
16064
16065         * Splitter.cs: There are special cursors used for splitting.
16066         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
16067
16068 2005-09-22  Jackson Harper  <jackson@ximian.com>
16069
16070         * Splitter.cs: Change the cursor appropriately when the splitter
16071         is moused over, so the user actually knows there is a splitter
16072         there.
16073
16074 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
16075
16076        * Label.cs : Fix ToString method to give same output as MS.NET
16077
16078 2005-09-22  Jackson Harper  <jackson@ximian.com>
16079
16080         * TreeView.cs: Create the scrollbars when the handle is created
16081         and add them right away, just make them invisble. Also account for
16082         the window being shrunk vertically to the point that the vert
16083         scrollbar needs to be added.
16084         - Remove some 0.5 adjustments to get around anti aliasing issues.
16085         
16086 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
16087          
16088         * MainMenu.cs: Fixes default value
16089         * MenuItem.cs: Fixes default value
16090
16091 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
16092
16093         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
16094
16095 2005-09-21  Jackson Harper  <jackson@ximian.com>
16096
16097         * Control.cs: Don't try to set the border style on the window if
16098         it hasn't been created. When the window is created the border
16099         style will be used.
16100
16101 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
16102
16103         * Control.cs (Update): Don't call XplatUI if we don't have a
16104           window handle yet
16105
16106 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
16107
16108         * ContainerControl.cs: Instead of throwing an exception, print
16109           a one-time warning about Validate not being implemented
16110         * XplatUIWin32.cs: Removed debug output
16111
16112 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
16113
16114         * Control.cs: Only set XplatUI background if we expect the windowing
16115           system to handle the background. This stops controls that draw their
16116           own background from flickering
16117
16118         * XplatUIX11.cs: Support custom visuals and colormaps for window 
16119           creation. This allows, amongst other things, using MWF X11 windows 
16120           with OpenGL.
16121
16122 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
16123
16124         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
16125           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
16126           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
16127           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
16128           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
16129           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
16130           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
16131           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
16132           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
16133           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
16134           GridColumnStylesCollection.cs, 
16135           IDataGridColumnStyleEditingNotificationService.cs,
16136           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
16137           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
16138           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
16139           TreeNodeCollection.cs, AmbientProperties.cs, 
16140           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
16141           DataObject.cs, ErrorProvider.cs, Splitter.cs,
16142           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
16143           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
16144           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
16145           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
16146           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
16147           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
16148           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
16149           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
16150           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
16151           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
16152           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
16153           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
16154           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
16155           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
16156           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
16157           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
16158           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
16159           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
16160           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
16161           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
16162           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
16163           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
16164           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
16165           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
16166           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
16167           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
16168           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
16169           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
16170           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
16171           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
16172           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
16173           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
16174           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
16175           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
16176           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
16177
16178 2005-09-21  Jackson Harper  <jackson@ximian.com>
16179
16180         * TreeNode.cs: Call Before/After Expand not Collapse when
16181         expanding.
16182
16183 2005-09-20  Jackson Harper  <jackson@ximian.com>
16184         
16185         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
16186
16187 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
16188          
16189         * ListViewItem.cs:
16190                 - Fixes bug 76120
16191                 - Fixes proper storing of subitems
16192                 - Fixes not updated items
16193
16194 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
16195
16196         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
16197           things if our window handle isn't created yet. Also disabled 
16198           debug for TextBoxBase
16199
16200 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
16201
16202         * MenuAPI.cs: Remove filtering of events to allow menu usage
16203
16204 2005-09-20  Miguel de Icaza  <miguel@novell.com>
16205
16206         * Cursor.cs: Allow null to be passed to Cursor.Current.
16207
16208 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
16209
16210         * ThemeWin32Classic.cs:
16211           - Change some private methods/fields to protected virtual so that 
16212             they can be accessed and overriden in derived classes
16213           - First refactoring of some methods. Derived themes now don't 
16214             need to duplicate the complete code from ThemeWin32Classic
16215         * ThemeNice.cs:
16216           - Added nice StatusBar
16217           - Derive from ThemeWin32Classic and not Theme
16218           - Removed duplicate ThemeWin32Classic code
16219
16220 2005-09-20  Miguel de Icaza  <miguel@novell.com>
16221
16222         * Control.cs (ControlCollection.Add): If the value null is passed
16223         the control is ignored. 
16224
16225         Optimize this loop.
16226
16227 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
16228
16229         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
16230           PostQuitMessage state.
16231         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
16232
16233 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
16234
16235         * Application.cs: Our constructor will never get called, move 
16236           initialization to fields; fixes bug #75933
16237
16238 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
16239
16240         * FileDialog.cs :
16241                 - Allow files to be selected properly using file name
16242                 combo box.
16243                 - Add ability to change diretory (absolute / relative)
16244                 using file name combo box.
16245
16246 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
16247          
16248         * ListBox.cs: 
16249                 - Fixes Multicolumn listboxes item wrong calculations
16250                 - Allows to click when only one item is in the listbox
16251                 - Fixes crash when no items using keyboard navigation
16252
16253 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
16254
16255         * ComboBox.cs: Reverted almost everything from the latest patch which
16256           broke ComboBox
16257
16258 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
16259         
16260         * ToolTip.cs:
16261                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
16262         * ComboBox.cs:
16263                 - When DropDownStyle is Simple, it does not show scrollbar 
16264                 to the last item of the list.
16265                 - When DropDownStyle is Simple, it crashed when the list was 
16266                 scrolled down with the down cursor key.
16267                 - Fixed a bug that when DropDownStyle is DropDownList, the 
16268                 selected item was not shown.
16269                 - The position of the selected item was not preserved when 
16270                 the next dropdown happened.
16271         * ThemeWin32Classic.cs:
16272                 - Items were wrapped at the right end.
16273         * CheckedListBox.cs:
16274                 - Fixed Add method
16275         * ListBox.cs:
16276                 - Items should be fully shown.
16277                 - When resizing and vertical scrollbar disappeared, the item 
16278                 of index 0 should be on the top of the list.
16279                 - GetItemRectangle should consider the size of ver. scrollbar
16280         * StatusBar.cs:
16281                 - SizingGrip area should not be allocated when it is not 
16282                 displayed.
16283                 - Now it reflects MinWidth of the containing panel and 
16284                 fixed a crash that happens when its width becomes so small.
16285
16286 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
16287
16288         * CheckedListBox.cs: Fixes bug 76028
16289         * ListBox.cs: Fixes bug 76028
16290
16291 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
16292
16293         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
16294         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
16295
16296 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
16297
16298         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
16299
16300 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
16301
16302         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
16303
16304 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
16305
16306         * IRootGridEntry.cs: Added
16307         * PropertyGridCommands.cs: Added
16308         * PropertiesTab.cs: Added missing methods and property
16309         * PropertyGridView.cs: Made class internal
16310         * PropertyGridTextBox.cs: Made class internal
16311
16312 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
16313
16314         * MimeIcon.cs: Try to check some other environment variables
16315           if "DESKTOP_SESSION" returns "default"
16316
16317 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
16318
16319         * ThemeNice.cs: Corrected background colors (e.g. menus)
16320         * ColorDialog.cs: Use correct background colors for controls
16321
16322 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
16323
16324         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
16325
16326 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
16327
16328         * RichTextBox.cs: Added initial implementation
16329         * lang.cs: Removed. Was accidentally checked in long time ago
16330         * TODO: Removed. Contents were obsolete
16331
16332 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
16333                                                                                 
16334         * PropertiesTab.cs : Added
16335
16336 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
16337                                                                                 
16338         * PropertyGrid.cs : Update
16339         * PropertyGridView.cs : Update
16340         * System.Windows.Forms.resx : Added images and strings
16341
16342 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
16343
16344         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
16345  
16346 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
16347
16348         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
16349           a busy loop right after the Ungrab the X11 display is otherwise 
16350           blocked
16351
16352 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
16353
16354         * ThemeWin32Classic.cs: Optimise the use of clipping
16355
16356 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
16357
16358         * DataGrid.cs: fixes recursion bug
16359
16360 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
16361
16362         * ThemeNice.cs: 
16363           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
16364           - Cleanup
16365
16366 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
16367
16368         * ThemeNice.cs: Draw nice ProgressBars
16369
16370 2005-09-01  Miguel de Icaza  <miguel@novell.com>
16371
16372         * VScrollBar.cs: Another buglet found by Aaron's tool. 
16373
16374         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
16375         bug finder.
16376
16377 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
16378
16379         * ThemeNice.cs:
16380           - Added nicer menu drawing
16381           - Updated DrawTab
16382           - some refactoring
16383
16384 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
16385
16386         * CreateParams.cs (ToString): Made output match MS
16387         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
16388             handle is already created (to avoid forcing window creation)
16389         * XplatUIX11.cs: Set window text to caption after creating window,
16390           in case Text was set before window was created
16391         * Form.cs: Use this.Text instead of a static string as caption
16392
16393 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
16394
16395         * NotifyIcon.cs: Don't set the window to visible; this screws
16396           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
16397           OnPaint without a bitmap)
16398         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
16399           happen very often anyway; we could add the check to the WM_PAINT 
16400           event generation code
16401
16402 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
16403
16404         * NotifyIcon.cs: Fill the icon area with a background color, to 
16405           avoid 'residue' when transparent icons are drawn
16406         * XplatUIX11.cs:
16407           - Handle whole_window == client_window when destroying windows
16408           - SystrayAdd(): Set client_window to whole_window value to
16409             get mouse and other events passed to NotifyIcon
16410
16411 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
16412
16413         * Form.cs: Set proper default for Opacity property
16414         * NotifyIcon.cs:
16415           - ShowSystray(): Don't bother creating telling the OS
16416             about the systray item if no icon is provided
16417           - Now handles WM_NCPAINT message to deal with whole/client window
16418             split
16419           - Create window as visible to not get caught by Expose optimization
16420         * Hwnd.cs: Removed debug message
16421         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
16422           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
16423             PaintEventStart/End to use new client argument
16424         * TextBoxBase.cs:
16425           - Commented out debug messages
16426           - Switched PaintEventStart/End to use new client argument
16427         * XplatUI.cs: Added client window bool to PaintEventStart()/
16428           PaintEventEnd() calls, to support drawing in non-client areas
16429         * XplatUIDriver.cs: 
16430           - Added client window bool to PaintEventStart()/PaintEventEnd() 
16431             calls, to support drawing in non-client areas
16432           - Added conditional compile to allow using MWF BeginInvoke 
16433             on MS runtime
16434         * XplatUIX11.cs:
16435           - Added some conditional debug output
16436           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
16437             whole/client window split
16438           - Implemented handling of client argument to PaintEventStart()/End()
16439         * Control.cs:
16440           - Throw exception if BeginInvoke() is called and the window handle
16441             or one of the window's parent handles is not created
16442           - Added conditional compile to allow using MWF BeginInvoke on
16443             MS runtime
16444           - get_Parent(): Only sets parent if handle is created. This avoids
16445             forcing window handle creation when parent is set.
16446           - Now fires Layout and Parent changed events in proper order
16447           - Switched to use Handle instead of window.Handle for Z-Order setting,
16448             the get_Parent() patch above causes us to possibly get null for 'window'
16449           - Implemented handling of client argument to PaintEventStart()/End()
16450           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
16451             default handling)
16452           - Now sends a Refresh() to all child windows when Refresh() is called
16453
16454 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
16455
16456         * Form.cs: Added (non-functional) Opacity property
16457         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
16458
16459 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
16460         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
16461           use export MONO_THEME=nice to activate it.
16462           Currently supported controls:
16463           - Button
16464           - ComboBox
16465           - ScrollBar
16466           - TabControl (TabAlignment.Top only, other will follow)
16467         * ThemeEngine.cs: Add theme nice
16468         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
16469           if enabled
16470
16471 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
16472
16473         * Splitter.cs: Resize docked control and its neighbor.
16474
16475 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
16476         -- Making Windows with Menus layout correctly --
16477         * Form.cs : The first leg of the fix
16478                 Menu setter - adjust Client Size as needed to make space for the menu
16479                 SetClientSizeCore - doesn't call base version to be able to pass the 
16480                         menu handle to XplatUI.CalculateWindowRect
16481         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
16482         * XplatUIX11.cs: The critical second leg of the fix
16483                 GetWindowPos needs to use a recalculated client_rect
16484                 so that resizing the window doesn't break layout of child controls. 
16485                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
16486                 Lots of \t\n killed
16487
16488 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
16489
16490         * Label.cs: Now properly recalculates width and height on Font and Text
16491           changes if AutoSize is set
16492
16493 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
16494         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
16495
16496 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
16497
16498         * ImageList.cs: Makes ToString method compatible with MS
16499
16500 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
16501
16502         * MenuAPI.cs: fixes bug 75716
16503
16504 2005-08-11 Umadevi S <sumadevi@novell.com>
16505         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
16506
16507 2005-08-11 Umadevi S <sumadevi@novell.com>
16508         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
16509
16510 2005-08-10  Umadevi S <sumadevi@novell.com>
16511         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
16512
16513 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
16514
16515         * Menu.cs: fixes bug 75700
16516         * MenuAPI.cs: fixes navigation issues
16517
16518 2005-08-09  Umadevi S <sumadevi@novell.com>
16519         * CheckedListBox.cs - simple fix for GetItemChecked.
16520
16521 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
16522
16523         * ComboBox.cs: Serveral fixes
16524         * ListBox.cs: Serveral fixes
16525
16526 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
16527
16528         * ComboBox.cs: Fixes FindString methods and GetItemHeight
16529         * ListBox.cs: Fixes FindString methods
16530
16531 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
16532
16533         * DataGrid.cs: fixes bugs exposed by new tests
16534
16535 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
16536
16537         * Mime.cs: Compile Mono assembly references only if compiling
16538           with Mono (Allows to build with VS.Net again)
16539
16540 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
16541
16542         * Control.cs (PaintControlBackground): Draw background image
16543         corrrectly.
16544         (CheckForIllegalCrossThreadCalls): Stubbed.
16545         
16546         * Form.cs (OnCreateControl): Center when should be centered.
16547         
16548         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
16549
16550 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
16551
16552         * Binding.cs: Binding to properties should be case unsensitive
16553
16554 2005-07-18 vlindos@nucleusys.com
16555
16556         * DataGrid.cs: fixes setmember order
16557
16558 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
16559
16560         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
16561         * FileDialog.cs: FileDialog is now resizable and uses the new
16562           MimeIconEngine
16563
16564 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
16565
16566         * DataGridTextBoxColumn.cs: default value
16567         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
16568         * GridTableStylesCollection.cs: fixes checking MappingName
16569         * DataGridDrawingLogic.cs: fixes drawing logic issues
16570         * DataSourceHelper.cs: rewritten to make compatible with more data sources
16571         * DataGrid.cs: fixes    
16572
16573 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
16574
16575         * MimeGenerated.cs: Use case sensitive comparer for
16576           NameValueCollections
16577
16578 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
16579
16580         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
16581         * ThemeWin32Classic.cs: bug fixes, code refactoring
16582         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
16583         * DataGrid.cs: bug fixes, code refactoring
16584         * DataGridTextBox.cs: bug fixes, code refactoring
16585         * DataGridColumnStyle.cs:  bug fixes, code refactoring
16586         * Theme.cs:  bug fixes, code refactoring
16587
16588 2005-07-01  Peter Bartok  <pbartok@novell.com> 
16589
16590         * TextControl.cs: Quick fix for the reported crash on ColorDialog
16591           and other text box usage
16592
16593 2005-07-01  Jackson Harper  <jackson@ximian.com>
16594
16595         * TabControl.cs: Make sure the bottom of the tab covers the pages
16596         border.
16597
16598 2005-06-30  Peter Bartok  <pbartok@novell.com> 
16599
16600         * Form.cs (ShowDialog): Assign owner of the dialog
16601         * TextBoxBase.cs: Always refresh caret size when deleting, caret
16602           might have been moved to a tag with different height
16603
16604 2005-06-30  Jackson Harper  <jackson@ximian.com>
16605
16606         * Form.cs: Don't create an infinite loop when setting focus
16607         * MenuItem.cs: Don't dirty the parents if we don't have any
16608
16609 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
16610
16611         * LibSupport.cs: Rename
16612
16613 2005-06-29  Peter Bartok  <pbartok@novell.com>
16614
16615         * TextBoxBase.cs: Re-align caret after deleting a character
16616         * TextControl.cs:
16617           - DeleteChars(): Ensure that tag covers the provided position
16618           - StreamLine(): Drop reference for dropped tag
16619
16620 2005-06-29  Peter Bartok  <pbartok@novell.com> 
16621
16622         * TextControl.cs: 
16623           - Selections now work properly, anchoring at the initial location
16624             and properly extending in either direction (SetSelectionToCaret(),
16625             SetSelectionStart() and SetSelectionEnd())
16626           - No longer redraws the whole control on selection change, now
16627             calculates delta between previous and new selection and only
16628             invalidates/redraws that area
16629           - Fixed FindPos() math off-by-one errors
16630           - Changed DeleteChars() to verify the provided tag covers the
16631             provided position, selections may have a tag that doesn't cover
16632             the position if the selection is at a tag border
16633           - Fixed off-by-one errors in DeleteChars()
16634           - Added missing streamlining check in DeleteChars() to remove
16635             zero-length tags
16636           - Implemented Invalidate() method, now properly calculates exposures
16637             between two given lines/positions
16638           - Implemented SetSelection()
16639           - Obsoleted and removed FixupSelection()
16640           - Improved RecalculateDocument() logic, removing code duplication
16641
16642 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16643
16644         * LibSupport.cs: changes to match different input/output arguments.
16645
16646 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16647
16648         * LibSupport.cs: added libsupport.so init routine.
16649
16650 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
16651         
16652         * ControlBindingsCollection.cs
16653                 - Throws an exception on null datasource when adding
16654                 - Checks for duplicated bindings when adding
16655
16656 2005-06-28  Jackson Harper  <jackson@ximian.com>
16657
16658         * TreeView.cs (OnKeyDown): Support left and right properly
16659         (navigates as well as expanding and collapsing.
16660         - Add support for Multiply, this expands all the selected nodes
16661         children.
16662         - Fix some tabbing.
16663
16664 2005-06-28  Jackson Harper  <jackson@ximian.com>
16665
16666         * TreeView.cs: Implement keyboard navigation, currently supports,
16667         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
16668         support for toggling checkboxes with the space bar.
16669
16670 2005-06-28  Jackson Harper  <jackson@ximian.com>
16671
16672         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
16673         tree.
16674
16675 2005-06-28  Jackson Harper  <jackson@ximian.com>
16676
16677         * TreeView.cs: Add missing event.
16678
16679 2005-06-27  Peter Bartok  <pbartok@novell.com> 
16680
16681         * TextControl.cs:
16682           - Made line ending size configurable (now allows for counting 
16683             lineendings as \n or \r\n)
16684           - Added margin to viewport to keep caret visible on right side
16685           - Fixed translation routines for line/pos to documentpos to consider
16686             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
16687           - Fixed some line-endings to be unix style
16688           - Fixed Document.FormatText to perform it's calculations 1-based
16689           - Added descriptions for a few methods that might otherwise get 
16690             used wrong
16691           - Added NOTE section with some basic conventions to remember at 
16692             the top of the file
16693           - Major fixup for RichTextBox selection drawing:
16694             * Fixed crashes when multiple tags on a single line were selected
16695             * fixed selection box drawing not overlaying text
16696             * fixed bogus offset calculation for tags not starting at index 1
16697             * Switched behaviour from using multiple Substrings of a 
16698               StringBuilder.ToString() to using multiple 
16699               StringBuilder.ToString(start, length) statements, hoping this is
16700               faster (kept original version commented out in the code, in case
16701               original version was faster)
16702         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
16703           alignment != Left
16704         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
16705           call it as well
16706
16707 2005-06-27  Jackson Harper  <jackson@ximian.com>
16708
16709         * TabControl.cs: Move to the left and right with the arrow
16710         keys. These keys don't cycle beyond first and last like
16711         tab. Refresh all the tabs when scrolling them to the left or
16712         right.
16713
16714 2005-06-27  Jackson Harper  <jackson@ximian.com>
16715
16716         * TabControl.cs:
16717           - ToString: Added method
16718           - CreateParams: Remove TODO and comment
16719           - OnKeyDown: Cycle through bounds properly.
16720           - SelectedIndex: Scroll to the right or left if we need to
16721           display the newly selected tab.
16722
16723 2005-06-23  Jackson Harper  <jackson@ximian.com>
16724
16725         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
16726         set.
16727
16728 2005-06-23  Jackson Harper  <jackson@ximian.com>
16729
16730         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
16731         CTRL-SHIFT-TAB, and HOME, END are there any others?
16732
16733 2005-06-23  Jackson Harper  <jackson@ximian.com>
16734
16735         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
16736
16737 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
16738         
16739         * DataGridTextBoxColumn.cs: fixes and enhancements
16740         * ThemeWin32Classic.cs: fixes and enhancements
16741         * DataGridBoolColumn.cs:  fixes and enhancements
16742         * DataGridDrawingLogic.cs:  fixes and enhancements
16743         * CurrencyManager.cs: fixes and enhancements
16744         * DataGrid.cs: fixes and enhancements
16745         * DataGridColumnStyle.cs:  fixes and enhancements
16746
16747 2005-06-22  Jackson Harper  <jackson@ximian.com>
16748
16749         * TabControl.cs: Add some missing methods that just call into the
16750         base. Make the TabPageCollection's IList interface behave in the
16751         same manner as the MS implementation.
16752
16753 2005-06-22  Peter Bartok  <pbartok@novell.com> 
16754
16755         * TextControl.cs: Added sanity check
16756         * TextBoxBase.cs: 
16757           - Fixed wrapping behaviour, don't set wrap on single line controls
16758             (this fixes the breakage of colordialog introduced in an earlier
16759              checkin)
16760           - Added rudimentary support for autoscrolling right-aligned controls
16761             (still needs fixing, also, center alignment scroll is missing)
16762
16763 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
16764         
16765         * ScrollBar.cs: Fixes thumbpos on Maximum values
16766
16767 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
16768         
16769         * PropertyGridView.cs: Pass context information to UITypeEditors 
16770
16771 2005-06-21  Peter Bartok  <pbartok@novell.com> 
16772
16773         * TextBoxBase.cs:
16774           - Now calling PositionCaret with absolute space coordinates
16775           - Enabled vertical scrolling
16776           - Better tracking of scrollbar changes, tied into WidthChange
16777             event
16778           - Improved cursor tracking
16779           - Removed debug output
16780         * TextControl.cs:
16781           - PositionCaret coordinates are now works in absolute space, not 
16782             the canvas
16783           - Improved tracking of document size
16784           - Added events for width and height changes
16785
16786 2005-06-21  Peter Bartok  <pbartok@novell.com>
16787
16788         * Form.cs: Set focus to active control when form is activated
16789         * TextControl.cs: 
16790           - Added word-wrap functionality to RecalculateLine() 
16791           - Added some short function descriptions for VS.Net to aid in
16792             writing dependent controls
16793           - Added Caret property, returning the current coords of the caret
16794           - Added ViewPortWidth and ViewPortHeight properties
16795           - Added Wrap property
16796           - Added CaretMoved event
16797           - Removed some old debug code
16798           - Split() can now create soft splits
16799           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
16800           - Added method to format existing text
16801           - Fixed size/alignment calculations to use viewport
16802           - RecalculateDocument now can handle changing line-numbers while
16803             calculating lines
16804
16805         * TextBox.cs:
16806           - Added some wrap logic, we don't wrap if alignment is not left
16807           - Added casts for scrollbar var, base class switched types to
16808             also support RichTextBoxA
16809           - Implemented handling of scrollbar visibility flags
16810
16811         * TextBoxBase.cs:
16812           - Switched scrollbars type to RichTextBoxScrollBars to support
16813             RichTextBox
16814           - Added tracking of canvas width/height
16815           - Switched scrollbars to be not selectable (to keep focus on text)
16816           - Added central CalculateDocument() method to handle all redraw
16817             requirements
16818           - Added ReadOnly support
16819           - Added WordWrap support
16820           - Fixed handling of Enter key (we now treat it as a DialogKey)
16821           - Fixed caret positioning when h or v scroll is not zero
16822           - Fixed placing/generation of vertical scrollbar
16823           - Added CalculateScrollBars() method to allow updating scrollbar
16824             limits and visibility
16825           - Fixed handling of horizontal scroll
16826           - Added handling of vertical scroll
16827           - Implemented auto-'jump' when caret moves to close to a left or
16828             right border and there is text to be scrolled into view (currently
16829             there's the potential for a stack overflow, until a bug in
16830             scrollbar is fixed)
16831
16832 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
16833         
16834         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
16835
16836 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
16837
16838         * Mime.cs:
16839         - added inodes.
16840         - return application/x-zerosize for files with size zero
16841           (if no extension pattern matches).
16842         - check matches collection for strings too.
16843         - return only the first mime type if the name value
16844           collection has more than one mime type.
16845
16846 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
16847         
16848         * PropertyGrid.cs: Cleaned up some TODOs
16849         * PropertyGridView.cs: Added support for UITypeEditors
16850
16851 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
16852         
16853         * DataGrid.cs: clears cached value
16854
16855 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
16856
16857         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
16858         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
16859         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
16860         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
16861         
16862 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
16863
16864         * ThemeWin32Classic.cs: fixes colour
16865
16866 2005-06-15  Peter Bartok  <pbartok@novell.com>
16867
16868         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
16869         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
16870         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
16871         * Control.cs: Added some MWFCategory and MWFDescription attributes
16872         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
16873
16874 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
16875
16876         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
16877         usage
16878
16879 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
16880
16881         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
16882         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
16883         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
16884         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
16885         * DataGrid.cs: default datagrid settings for Default Styles, fixes
16886         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
16887
16888 2005-06-13  Jackson Harper  <jackson@ximian.com>
16889
16890         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
16891         isn't printed when the user enables dropping. (X11 does accept
16892         drops).
16893         
16894 2005-06-13  Jackson Harper  <jackson@ximian.com>
16895
16896         * TreeView.cs: Remove some TODOS.
16897
16898 2005-06-13  Jackson Harper  <jackson@ximian.com>
16899
16900         * Form.cs: Hook into the mdi framework.
16901         * MdiClient.cs: Use the base control collections add method so
16902         parents get setup correctly. Set the default back colour and dock
16903         style.
16904         * MdiChildContext.cs: New class, this bad actor handles an
16905         instance of an MDI window. Right now there is only basic
16906         support. You can drag, close, and resize windows. Minimize and
16907         Maximize are partially implemented.
16908
16909 2005-06-13  Jackson Harper  <jackson@ximian.com>
16910
16911         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
16912         freaky when both vals are negative. NOTE: There are probably other
16913         places in XplatUIX11 that this needs to be done.
16914
16915 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
16916
16917         * DataGrid.cs: implement missing methods, move KeyboardNavigation
16918         * DataGridColumnStyle.cs: fixes signature
16919
16920 2005-06-12  Jackson Harper  <jackson@ximian.com>
16921
16922         * XplatUIX11.cs: Use sizing cursors similar to the ones on
16923         windows.
16924
16925 2005-06-11  Jackson Harper  <jackson@ximian.com>
16926
16927         * StatusBarPanel.cs: Signature cleanups. Implement
16928         BeginInit/EndInit.
16929
16930 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
16931
16932         * DataGridTextBoxColumn.cs: Honors aligment
16933         * GridColumnStylesCollection.cs: Contains is case unsensitive
16934         * GridTableStylesCollection.cs: several fixes
16935         * DataGridTableStyle.cs: default column creation
16936         * DataGridDrawingLogic.cs: fixes
16937         * CurrencyManager.cs: ListName property
16938         * DataGrid.cs: multiple styles support
16939         * DataGridColumnStyle.cs: fixes
16940         
16941
16942 2005-06-10  Peter Bartok  <pbartok@novell.com>
16943
16944         * Control.cs(Select): Moved SetFocus call to avoid potential
16945           loops if controls change the active control when getting focus
16946         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
16947           the up/down buttons
16948
16949 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
16950
16951         * ImageListConverter.cs: Implemented
16952
16953 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
16954
16955         * MonthCalendar.cs: Wired in NumericUpDown control for year
16956
16957 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
16958
16959         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
16960           DoubleClick events, since they are not meant to be fired.
16961
16962 2005-06-09  Peter Bartok  <pbartok@novell.com>
16963
16964         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
16965           Jonathan's standalone controls into MWF, implemented missing
16966           events, attributes and methods; added xxxAccessible classes
16967         * AccessibleObject.cs: Made fields internal so other classes
16968           can change them if needed
16969
16970 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
16971
16972         * UpDownBase.cs: Complete implementation
16973         * NumericUpDown.cs: Complete implementation
16974         * DomainUpDown.cs: Complete implementation
16975
16976 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
16977
16978         * DataGridTextBoxColumn.cs: drawing fixes
16979         * DataGridCell.cs: fixes ToString method to match MSNet
16980         * DataGridTableStyle.cs: fixes
16981         * DataGridBoolColumn.cs: fixes, drawing
16982         * DataGridDrawingLogic.cs: fixes, new methods
16983         * DataGridTextBox.cs: Keyboard and fixes
16984         * DataGrid.cs:
16985                 - Keyboard navigation
16986                 - Scrolling fixes
16987                 - Row selection (single, multiple, deletion, etc)
16988                 - Lots of fixes
16989         
16990 2005-06-07  Jackson Harper  <jackson@ximian.com>
16991
16992         * ThemeWin32Classic.cs: Clear the background area when drawing
16993         buttons.
16994
16995 2005-06-06  Peter Bartok  <pbartok@novell.com>
16996
16997         * ImageListStreamer.cs: Fixed signature for GetData
16998         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
16999         * ComboBox.cs:
17000           - Added missing ChildAccessibleObject class
17001           - Added missing OnXXXFocus overrides, switched to using those
17002             instead of the event handler
17003         * Control.cs:
17004           - Added Parent property for ControlAccessibleObject
17005           - Fixed signatures
17006           - Fixed attributes
17007           - Added ResetBindings()
17008         * ListBindingConverter.cs: Implemented some methods
17009         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
17010         * ImageList.cs: Implemented basic handle scheme, removed TODOs
17011         * ContainerControl.cs: Fixed signature, now subscribing to the
17012           ControlRemoved event instead of overriding the handler, LAMESPEC
17013         * CurrencyManager.cs: Added missing attribute
17014         * MonthCalendar.cs: Added missing properties
17015
17016 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
17017
17018         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
17019         
17020 2005-06-06  Gaurav Vaish and Ankit Jain
17021
17022         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
17023         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
17024         
17025 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
17026
17027         * Control.cs: fixes CreateParams Width / Height.
17028
17029 2005-06-05  Peter Bartok  <pbartok@novell.com>
17030
17031         * Win32DnD.cs: Removed compilation warnings
17032
17033 2005-06-05  Peter Bartok  <pbartok@novell.com>
17034
17035         * Control.cs (CreateParams): Since we don't know if one of the
17036           properties we use is overridden, lets make sure if we fail accessing
17037           we continue with a backup plan
17038
17039 2005-06-05  Peter Bartok  <pbartok@novell.com>
17040
17041         * Win32DnD.cs:
17042           - Removed debug output
17043           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
17044             struct
17045           - Plugged resource leak
17046         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
17047           MS size
17048
17049 2005-06-05  Peter Bartok  <pbartok@novell.com>
17050
17051         * XplatUIWin32.cs: Removed DnD code
17052         * Win32DnD.cs: Implemented drop source and drop target functionality
17053
17054 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17055
17056         * UpDownBase.cs: remove duplicate addition of event, enable some code
17057         that was commented out.
17058         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
17059         Validate input when a key is pressed. It works fine now for every
17060         combination of Hexadecimal. Only missing some drawing love when sharing
17061         space with other controls.
17062
17063 2005-06-04  Peter Bartok  <pbartok@novell.com>
17064
17065         * Control.cs:
17066           - We need to pass a window for DragDrop, so enable callback events
17067           - Added DnD callback events when being a DragSource
17068         * XplatUI.cs (StartDrag): Added window handle argument
17069         * XplatUIDriver.cs (StartDrag): Added window handle argument
17070         * QueryContinueDragEventArgs: Made fields internally accessible so
17071           drivers can set them
17072         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
17073           can set them
17074
17075 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
17076
17077         * DataGridTextBoxColumn.cs: column text editing
17078         * DataGridTableStyle.cs: Respect columns styles created by the user
17079         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
17080         * DataGridBoolColumn.cs: bool column editing
17081         * DataGrid.cs: fixes to scrolling, properties, etc
17082         * DataGridTextBox.cs: handle keyboard
17083         * DataGridColumnStyle.cs: fixes
17084
17085 2005-06-02  Jackson Harper  <jackson@ximian.com>
17086
17087         * ImageListStreamer.cs: Somewhat broken implementation of
17088         GetObjectData. The RLE needs some work to match MS properly.
17089
17090 2005-06-02  Jackson Harper  <jackson@ximian.com>
17091
17092         * X11Dnd.cs: Attempting to keep at least one file in MWF
17093         monostyled.
17094
17095 2005-06-02  Peter Bartok  <pbartok@novell.com>
17096
17097         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
17098           that way
17099
17100 2005-06-02  Peter Bartok  <pbartok@novell.com>
17101
17102         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
17103         * XplatUI.cs: Added DoDragDrop() method
17104         * XplatUIDriver.cs: Added DoDragDrop() method
17105
17106 2005-06-02  Jackson Harper  <jackson@ximian.com>
17107
17108         * Splitter.cs: Implement BorderStyle.
17109
17110 2005-06-02  Jackson Harper  <jackson@ximian.com>
17111
17112         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
17113         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
17114         X11 using XDND.
17115
17116 2005-06-02  Peter Bartok  <pbartok@novell.com>
17117
17118         * DataObject.cs:
17119           - Added Data setter
17120           - Fixed broken insertion code for SetData, now also
17121             overwrites any existing entry of the same format name
17122         * Hwnd.cs: Added list of pointers that automatically gets
17123           freed when the window is disposed
17124         * XplatUI.cs: Call driver initialization method when loading
17125           a driver
17126         * Control.cs:
17127           - OnDragLeave takes EventArgs, not DragEventArgs
17128           - Added setting of WS_EX_ACCEPTFILES style when dropping is
17129             supported
17130           - Forces style update when drop state changes
17131         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
17132           not perfect since we cannot (yet) call the IDataObject.GetData()
17133           method, we keep getting 0x80004005 error, dunno why)
17134
17135 2005-06-02  Peter Bartok  <pbartok@novell.com>
17136
17137         * DragEventArgs.cs: Make fields internal so we can cache the
17138           object and re-set the fields from XplatUI
17139
17140 2005-06-02  Jackson Harper  <jackson@ximian.com>
17141
17142         * Control.cs: Add some internal methods so the DnD subsystem can
17143         raise DnD events. Also call into the driver when AllowDrop is set.
17144         * XplatUI.cs:
17145         * XplatUIDriver.cs: New method for setting whether or not a window
17146         is allowed to accept drag and drop messages.
17147                 
17148 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
17149         
17150         * ScrollBar.cs: Make sure that values sent in Scroll events
17151         are always between Maximum and Minimum.
17152
17153 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
17154
17155         * Menu.cs: Call MenuChanged when menuitem visibility has been
17156         changed.
17157         * MenuItem.cs: Rebuild menu when item is (not) visible.
17158         * MainMenu.cs: MainMenu has special MenuChanged.
17159         * Theme.cs: Caption and FrameBorderSize are not fixed.
17160         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
17161         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
17162         * XplatUIX11.cs,
17163         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
17164         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
17165
17166 2005-05-30  Jackson Harper  <jackson@ximian.com>
17167
17168         * DataFormat.cs: We can't statically initialize this stuff because
17169         it calls into the xplatui and could create a loop. So we lazy init
17170         it.
17171
17172 2005-05-28  Jackson Harper  <jackson@ximian.com>
17173
17174         * Control.cs: Proper implementation of Product(Name/Version).
17175
17176 2005-05-27  Jackson Harper  <jackson@ximian.com>
17177
17178         * DataObject.cs: Dont crash if no data is found.
17179
17180 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
17181         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
17182                 as per status page, guessing it should be set to true
17183
17184 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
17185
17186         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
17187         * DataGridTableStyle.cs: set proper formatting text, def header text
17188         * ThemeWin32Classic.cs: new themable paramaters
17189         * DataGridBoolColumn.cs: paint check box, get data, fixes
17190         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
17191         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
17192         * DataGridColumnStyle.cs: fixes
17193         * Theme.cs: new themable paramaters
17194                 
17195 2005-05-26  Peter Bartok  <pbartok@novell.com>
17196
17197         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
17198
17199 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
17200         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
17201
17202 2005-05-24  Peter Bartok  <pbartok@novell.com>
17203
17204         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
17205           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
17206           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
17207           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
17208           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
17209           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
17210           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
17211           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
17212           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
17213           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
17214           missing attributes, etc
17215         * DataGridPreferredColumnWidthTypeConverter.cs: Added
17216
17217 2005-05-24  Peter Bartok  <pbartok@novell.com>
17218
17219         * Help.cs: Added, implemented trivial functions, throws up MessageBox
17220           when user tries to get help
17221         * DataObject.cs, DataFormats.cs, LinkArea.cs,
17222           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
17223           to suppress warnings
17224         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
17225           avoid unreachable code warning
17226
17227 2005-05-20  Peter Bartok  <pbartok@novell.com>
17228
17229         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
17230
17231 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
17232
17233         * DataGridTextBoxColumn.cs: Basic painting methods
17234         * DataGridTableStyle.cs: Set table style in the column
17235         * ThemeWin32Classic.cs: Use Theme for colors
17236         * DataGridDrawingLogic.cs: Implement more drawing
17237         * DataGrid.cs: drawing, theming, enhacements, fixes
17238         * DataGridColumnStyle.cs: fixes, drawing
17239         * Theme.cs: theming for Datagrid
17240
17241 2005-05-20  Peter Bartok  <pbartok@novell.com>
17242
17243         * Cursor.cs: Implemented GetObjectData() method
17244
17245 2005-05-20  Peter Bartok  <pbartok@novell.com>
17246
17247         * Cursors.cs: Added setting of cursor name
17248         * Cursor.cs:
17249           - Implemented constructors
17250           - Implemented Draw and DrawStretched
17251           - Implemented Current property
17252           - Implemented == and != operators
17253           - Implemented Dispose()
17254           - Implemented ToString
17255           - Added missing attributes
17256         * XplatUIX11.cs:
17257           - Added missing reset for OverrideCursor when DoEvents is called
17258           - Fixed creation of cursor, logic was wrong
17259         * XplatUIWin32.cs:
17260           - Added missing reset for OverrideCursor when DoEvents is called
17261           - Fixed creation of cursor, bit arrays were swapped
17262         * Clipboard.cs: Removed obsolete MonoTODO attribute
17263
17264 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
17265
17266         * ComboBox.cs: fixes OnSelectedItemChanged
17267         * ControlBindingsCollection.cs: fixes item range check
17268
17269 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
17270
17271         * UpDownBase.cs:
17272                 - Calc preferred height properly
17273                 - Implement missing properties
17274                 
17275         * NumericUpDown.cs: Implement missing events
17276
17277 2005-05-19  Jackson Harper  <jackson@ximian.com>
17278
17279         * TabControl.cs: New method that resizes the tab pages before
17280         redrawing them. This as needed as the control is double buffered
17281         and sizing will not be recalculated unless ResizeTabPages is
17282         called.
17283         * TabPage.cs: Set base.Text instead of Text in the constructor so
17284         that UpdateOwner does not get called. Use the new Redraw method of
17285         TabControl instead of Refresh so the sizing is recalculated.
17286         * ThemeWin32Classic.cs: Draw the text for button tabs.
17287
17288 2005-05-19  Jackson Harper  <jackson@ximian.com>
17289
17290         * Control.cs: Paint control background images. Fix typo where
17291         PaintControlBackground was not getting called correctly.
17292
17293 2005-05-19  Peter Bartok  <pbartok@novell.com>
17294
17295         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
17296           I can investigate, apparently I broke FileDialog
17297
17298 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
17299
17300         * AxHost.cs: Some simple properties.
17301         * Control.cs: window must be accessible after ctor.
17302         * Form.cs: Added TransparencyKey property.
17303         * TextBoxBase.cs: Implemented Clear. Text property can be null.
17304         * XplatUIWin32.cs: SetBorderStyle implemented.
17305
17306 2005-05-18  Peter Bartok  <pbartok@novell.com>
17307
17308         * DataObject.cs: Entries are not global but particular to the
17309           DataObject, now it behaves that way
17310         * XplatUIWin32.cs: Implemented Clipboard methods
17311         * Clipboard.cs: Implemented
17312         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
17313         * XplatUIOSX.cs: Updated to final clipboard prototypes
17314         * XplatUIX11.cs: Implemented Clipboard methods
17315         * XplatUIDriver.cs: Updated to final clipboard prototypes
17316         * XplatUIStructs.cs:
17317           - Added BITMAPINFOHEADER struct
17318           - Added ClipboardFormats enum
17319         * X11Structs.cs:
17320           - Added ClipboardStruct
17321           - Added Atom enum items for clipboard types
17322           - Fixed atom types for Selection event structures
17323         * DataFormats.cs:
17324           - Added internal properties and methods for drivers to enumerate
17325             all known formats
17326           - Switched initialization method to allow drivers to assign their
17327             own IDs even for the MS predefined clipboard IDs
17328         * XplatUI.cs: Updated to final clipboard interface
17329
17330 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
17331         * PropertyGridView.cs: Fixed compiler warnings.
17332
17333 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
17334         * PropertyGrid.cs: Added some event calls
17335         * PropertyGridView.cs: Change drawing code to use double buffering
17336         * PropertyGridTextBox.cs: Changed Text property name
17337         * GridItem.cs: Added Bounds property.
17338         * GridEntry.cs: Added Bounds property.
17339
17340 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
17341
17342         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
17343         since GetType() may not return the correct type if the object is
17344         a remoting proxy.
17345
17346 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
17347
17348         * TreeNodeCollection.cs: fixes get/set item ranges
17349         
17350 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
17351
17352         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
17353                 
17354 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
17355
17356         * ComboBox.cs: Fix item range comparation
17357         * ListView.cs: Fix item range comparation
17358
17359 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
17360
17361         * FontDialog.cs:
17362           - Clear example panel when OnPaint is called
17363           - Better solution for displaying the example panel text
17364           - Select default indexes in the ListBoxes
17365
17366 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
17367
17368         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
17369
17370 2005-05-11  Peter Bartok  <pbartok@novell.com>
17371
17372         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
17373         * SelectionRangeConverter.cs: Implemented
17374         * PropertyGrid.cs: Fixed attribute value
17375         * Control.cs:
17376           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
17377           - Added Sebastien Pouliot's CAS Stack Propagation fixes
17378         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
17379           that's common to all drivers. First methods to go there are
17380           Sebastien Pouliot's CAS Stack Propagation helper methods
17381         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
17382           Sebastien Pouliot for CAS Stack Propagation
17383
17384 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
17385
17386         * OSXStructs.cs:
17387           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
17388
17389 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
17390
17391         * DataGridTextBoxColumn.cs: fixed some members
17392         * GridColumnStylesCollection.cs: indexed column is case insensitive
17393         * DataGridTableStyle.cs: fixes
17394         * ThemeWin32Classic.cs: add new theme parameter
17395         * Theme.cs: add new theme parameter
17396         * DataGridDrawingLogic.cs: Datagrid's drawing logic
17397         * DataGrid.cs: fixes, new internal properties, etc.
17398         * DataGridColumnStyle.cs: allows to set grid value
17399         *
17400
17401 2005-05-10  Peter Bartok  <pbartok@novell.com>
17402
17403         * AccessibleObject.cs:
17404           - Removed MonoTODO attribute on help, method is correct
17405           - Fixed Bounds property
17406         * AxHost.cs: Moved MonoTODO
17407         * ButtonBase.cs: Now setting AccessibleObject properties
17408         * RadioButton.cs: Setting proper AccessibleObject role
17409         * CheckBox.cs: Setting proper AccessibleObject role
17410         * ControlBindingsCollection.cs: Added properties, methods and attributes
17411         * DataFormats.cs: Fixed awkward internal API, and changed to enable
17412           userdefined DataFormats.Format items as well
17413         * ListControl.cs: Removed data_member from the public eye
17414         * OpenFileDialog.cs:
17415           - Made class sealed
17416           - Added missing attributes
17417         * SaveFileDialog.cs: Added missing attributes
17418         * ImageListStreamer.cs: Fixed code that caused warnings
17419         * LinkLabel.cs: Removed unreachable code
17420         * TreeView.cs: Fixed code that caused warnings
17421         * PropertyGridView.cs: Fixed code that caused warnings
17422         * GridColumnStylesCollection.cs: Added missing attributes
17423         * GridTableStylesCollection: Added missing attribute
17424         * PropertyManager: Added .ctor
17425         * SecurityIDType: Added
17426         * DataObject.cs: Implemented class
17427         * LinkArea.cs: Added missing attribute
17428
17429 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
17430
17431         * RadioButton.cs: call base method to allow to fire OnClick event
17432         * UpDownBase.cs: OnMouseUp call base method
17433         * CheckedListBox.cs: call base method before returning
17434         * TrackBar.cs: call base method before returning
17435         
17436
17437 2005-05-10  Peter Bartok  <pbartok@novell.com>
17438
17439         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
17440           for messages
17441
17442 2005-05-10  Peter Bartok  <pbartok@novell.com>
17443
17444         * DataFormats.cs: Implemented
17445         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
17446           XplatUIX11.cs: Added Clipboard APIs
17447         * XplatUIWin32.cs: Implemented Clipboard APIs
17448         * FolderBrowserDialog.cs: Added missing event, attributes
17449
17450 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
17451
17452         * CheckBox.cs: call base method to allow to fire OnClick event
17453
17454 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
17455
17456         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
17457
17458 2005-05-06  Peter Bartok  <pbartok@novell.com>
17459
17460         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
17461         * Screen.cs: Implemented
17462         * HelpNavigator.cs: Added
17463         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
17464           property
17465         * HelpProvider.cs: Implemented all we can do until we have a CHM
17466           help library (which means that "What's This" does work now)
17467
17468 2005-05-06  Jackson Harper  <jackson@ximian.com>
17469
17470         * XplatUIX11.cs: Fix waking up the main loop.
17471                 
17472 2005-05-05  Peter Bartok  <pbartok@novell.com>
17473
17474         * XplatUI.cs: Updated revision
17475         * Form.cs: Removed enless loop
17476         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
17477         * Label.cs (OnPaint): Added call to base.OnPaint()
17478         * ToolTip.cs: Made ToolTipWindow reusable for other controls
17479         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
17480         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
17481         * AxHost.cs: Added
17482         * ButtonBase.cs: Moved base.OnPaint() call to end of method
17483         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
17484           to ToolTip.ToolTipWindow for drawing and size methods; this allows
17485           reuse of ToolTipWindow by other controls
17486         * SizeGrip.cs: Moved base.OnPaint() call to end of method
17487         * XplatUIX11.cs: Now clipping drawing area (experimental)
17488         * PictureBox.cs: Moved base.OnPaint() call to end of method
17489         * Theme.cs: Fixed ToolTip abstracts to match new format
17490         * ErrorProvider.cs: Implemented
17491
17492 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
17493
17494         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
17495         * LinkLabel.cs:
17496                 - Adds cursors
17497                 - Handles focus
17498                 - Implements LinkBehavior
17499                 - Fixes many issues
17500
17501 2005-05-03  Jackson Harper  <jackson@ximian.com>
17502
17503         * ListView.cs: Calculate the scrollbar positioning on resize and
17504         paint, so they get put in the correct place.
17505
17506 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
17507
17508         * ColorDialogs.cs: The small color panels are now handled by
17509           SmallColorControl. This fixes drawing of the focus rectangle
17510           and adds a 3D border.
17511
17512 2005-05-03  Peter Bartok  <pbartok@novell.com>
17513
17514         * Control.cs: Modified version of Jonathan Chamber's fix for
17515           double-buffering
17516
17517 2005-05-03  Jackson Harper  <jackson@ximian.com>
17518
17519         * ListView.cs: Remove redraw variable. Control now handles whether
17520         or not a redraw needs to be done, and will only raise the paint
17521         event if redrawing is needed.
17522
17523 2005-05-03  Jackson Harper  <jackson@ximian.com>
17524
17525         * Splitter.cs: No decorations for the splitter form. Cache the
17526         hatch brush.
17527
17528 2005-05-03  Jackson Harper  <jackson@ximian.com>
17529
17530         * TreeView.cs: Use dashed lines to connect nodes. Use the
17531         ControlPaint method for drawing the focus rect instead of doing
17532         that in treeview.
17533
17534 2005-05-02  Peter Bartok  <pbartok@novell.com>
17535
17536         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
17537
17538 2005-04-29  Jackson Harper  <jackson@ximian.com>
17539
17540         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
17541         entire image buffer. Just clear the clipping rectangle.
17542
17543 2005-04-29  Jackson Harper  <jackson@ximian.com>
17544
17545         * ThemeWin32Classic.cs: Don't draw list view items that are
17546         outside the clipping rectangle.
17547
17548 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
17549
17550         * ListBox.cs: added horizontal item scroll
17551
17552 2005-04-29  Jackson Harper  <jackson@ximian.com>
17553
17554         * ThemeWin32Classic.cs: Remove some old debug code that was
17555         causing flicker with the new double buffering code.
17556
17557 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
17558
17559         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
17560         behave like combobox and comboboxlist (still not sure if this is
17561         correct though).
17562
17563 2005-04-28  Jackson Harper  <jackson@ximian.com>
17564
17565         * ThemeWin32Classic.cs: Don't fill the middle of progress
17566         bars. This fills areas outside of the clip bounds that don't need
17567         to be filled.
17568
17569 2005-04-28  Jackson Harper  <jackson@ximian.com>
17570
17571         * Control.cs: Don't expose functionality to touch the image buffers.
17572         * ProgressBar.cs:
17573         * ListView.cs: We do not need to (and no longer can) manipulate
17574         the image buffers directly. All of this is handled by Control.
17575
17576 2005-04-28  Peter Bartok  <pbartok@novell.com>
17577
17578         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
17579           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
17580           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
17581
17582 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
17583
17584         * Combobox:
17585                 - Adjust control's height for non-simple comboboxes (bug fix)
17586                 - Remove dead code
17587         * MenuAPI.cs: remove unused var
17588         * ScrollBar.cs: remove unsed var
17589                  
17590         * ListBox.cs: unselect items when clearing
17591
17592 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
17593
17594         * ListControl.cs: honors OnPositionChanged and default Selected Item
17595         * ListBox.cs: unselect items when clearing
17596
17597 2005-04-27  Jackson Harper  <jackson@ximian.com>
17598
17599         * X11Keyboard.cs: Initialize a default keyboard and give a warning
17600         if a "correct" keyboard is not found. This will make us not crash,
17601         but might give some users bad keyboard layouts...seems to be the
17602         same thing rewind does.
17603
17604 2005-04-27  Jackson Harper  <jackson@ximian.com>
17605
17606         * BindingManagerBase.cs: Attach the current/position changed
17607         handlers to their respective events.
17608
17609 2005-04-27  Jackson Harper  <jackson@ximian.com>
17610
17611         * Control.cs: Make sure that the first WM_PAINT does a full draw,
17612         not just a blit.
17613         * ThemeWin32Classic.cs: Don't fill the background for picture
17614         boxes. This could overright user drawing.
17615         * ComboBox.cs: Just fill the clipping rect not the entire client
17616         rect when drawing the background. This prevents pieces of the
17617         image buffer from getting overwritten and is theoretically faster.
17618
17619 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
17620
17621         * ComboBox.cs: Databinding support fixes, fire missing events
17622         * ListControl.cs: implement missing methods and properties, fixes
17623         * ThemeWin32Classic.cs: Databiding support on Drawing
17624         * CheckedListBox.cs: Databinding support fixes, fire missing events
17625         * ListBox.cs: Databinding support fixes, fire missing events
17626         
17627 2005-04-25  Peter Bartok  <pbartok@novell.com>
17628
17629         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
17630
17631 2005-04-25  Jackson Harper  <jackson@ximian.com>
17632
17633         * TreeView.cs: Use the horizontal scrollbars height not width when
17634         determining how much of the client area is available.
17635
17636 2005-04-25  Jackson Harper  <jackson@ximian.com>
17637
17638         * Control.cs: Double buffering is handled differently now. As per
17639         the spec, the extra buffer is created in the WM_PAINT message and
17640         passed down to the control's drawing code.
17641         * GroupBox.cs:
17642         * Label.cs:
17643         * CheckBox.cs:
17644         * ProgressBar.cs:
17645         * RadioButton.cs:
17646         * ColorDialog.cs:
17647         * ComboBox.cs:
17648         * PropertyGridView.cs:
17649         * UpDownBase.cs:
17650         * MessageBox.cs:
17651         * MenuAPI.cs:
17652         * ListView.cs:
17653         * ButtonBase.cs:
17654         * SizeGrip.cs:
17655         * ScrollBar.cs:
17656         * ListBox.cs:
17657         * TrackBar.cs:
17658         * ToolBar.cs:
17659         * PictureBox.cs:
17660         * DateTimePicker.cs:
17661         * StatusBar.cs:
17662         * TreeView.cs: Update to new double buffering system.
17663         * MonthCalendar.cs: Uncomment block, as Capture is now
17664         working. Update to new double buffering
17665         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
17666         * PaintEventArgs.cs: New internal method allows us to set the
17667         graphics object. This is used for double buffering.
17668         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
17669         rectangle. The internal paint_area var has been removed from
17670         StatusBar. The clipping rect should be used instead.
17671         * Theme.cs: Give the PictureBox drawing method a clipping rect.
17672         * TabPage.cs: The RefreshTabs method was removed, so just call the
17673         tab controls Refresh method now.
17674         * TabControl.cs: Update to new double buffering. Make sure the
17675         handle is created before sizing the tab pages, otherwise we will
17676         get stuck in a loop.
17677
17678 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
17679
17680         * LinkLabel.cs: Fix typo, bug #74719; patch
17681           from Borja Sanchez Zamorano
17682
17683 2005-04-22  Jackson Harper  <jackson@ximian.com>
17684
17685         * TreeNode.cs: Implement Handle stuff.
17686         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
17687
17688 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
17689
17690         * DataGridTextBoxColumn.cs: call base constructors, fixes
17691         * GridColumnStylesCollection.cs: missing events, methods, and functionality
17692         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
17693         * DataGridTableStyle.cs: implements create default column styles
17694         * DataGridBoolColumn.cs: which types can handle
17695         * DataGrid.cs: missing methods, fixes, new functionality
17696         * DataGridColumnStyle.cs: fixes
17697
17698 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
17699         * FolderBrowserDialog.cs:
17700         - Use a thread to fill the TreeView
17701         - Adjusted some sizes
17702
17703 2005-04-19  Peter Bartok  <pbartok@novell.com>
17704
17705         * LinkLabel.cs: (Re-)create the pieces when setting the Text
17706           property. Fixes #74360.
17707
17708 2005-04-19  Jackson Harper  <jackson@ximian.com>
17709
17710         * XEventQueue.cs: Lock when getting the lockqueue size.
17711         * PictureBox.cs: Call base OnPaint
17712         
17713 2005-04-19  Peter Bartok  <pbartok@novell.com>
17714
17715         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
17716           messages were no longer being processed (this broke BeginInvoke)
17717
17718           
17719 2005-04-18  Jackson Harper  <jackson@ximian.com>
17720
17721         * TreeView.cs: buglet that caused node images to get drawn
17722         regardless of whether or not they were in the clipping rectangle.
17723
17724 2005-04-18  Jackson Harper  <jackson@ximian.com>
17725
17726         * CurrencyManager.cs: There are four rules for GetItemProperties:
17727         - If the type is an array use the element type of the array
17728         - If the type is a typed list, use the type
17729         - If the list contains an Item property that is not an object, use
17730         that property
17731         - use the first element of the list if there are any elements in
17732         the list.
17733         
17734 2005-04-17  Jackson Harper  <jackson@ximian.oom>
17735
17736         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
17737         click. This handles offsets for scrolling properly and reduces
17738         memory. Also fixed GetNode to not offset now that TopNode works
17739         properly.
17740         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
17741         
17742 2005-04-17  Jackson Harper  <jackson@ximian.com>
17743
17744         * CursorConverter.cs: Initial implementation.
17745
17746 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
17747
17748         * ListControl.cs: work towards complex data binding support on ListControl
17749         * CurrencyManager.cs: work towards complex data binding support on ListControl
17750         * ListBox.cs: work towards complex data binding support on ListControl
17751
17752
17753 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
17754
17755         * GridTableStylesCollection.cs: fixes name and constructor
17756         * DataGridTableStyle.cs: fixes
17757         * DataGridBoolColumn.cs: fixes names and constructors
17758         * DataGrid.cs: define methods and properties. Some init implementations
17759         * DataGridCell.cs: define methods and properties. Some init implementations
17760         * GridTablesFactory.cs: Define methods and properties
17761
17762 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
17763
17764         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
17765         graphics port changes.  We still want the coordinates in global screen
17766         coordinates.
17767
17768 2005-04-14  Jackson Harper  <jackson@ximian.com>
17769
17770         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
17771         check plus minus or checkbox clicks unless those features are enabled.
17772
17773 2005-04-14  Jackson Harper  <jackson@ximian.com>
17774
17775         * TreeView.cs: Add methods for setting the top and bottom visible
17776         nodes. TreeNode::EnsureVisible uses these methods.
17777         * TreeNode.cs: Implement EnsureVisible
17778
17779 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
17780
17781         * Form.cs: Pospone menu assignation if the window has not been created yet
17782         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
17783         size and position
17784
17785 2005-04-12  Jackson Harper  <jackson@ximian.com>
17786
17787         * TreeView.cs: Set the TopNode properly when scrolling
17788         occurs. This has the added benifit of reducing the amount of
17789         walking that needs to be done when drawing. Also removed an old
17790         misleading TODO.
17791         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
17792         
17793 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
17794
17795         * Timer.cs: fixes interval setting when the timer is already enabled
17796         
17797 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
17798
17799         * FolderBrowserDialog.cs: First approach
17800
17801 2005-04-09  Peter Bartok  <pbartok@novell.com>
17802
17803         * FolderBrowserDialog: Added
17804
17805 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
17806
17807         * LinkLabel.cs: move drawing code into the theme
17808         * ThemeWin32Classic.cs: drawing code and painting background bugfix
17809         * Theme.cs: define DrawLinkLabel method
17810
17811 2005-04-05  Jackson Harper  <jackson@ximian.com>
17812
17813         * BindingContext.cs: Use weak references so these bad actors don't
17814         stay alive longer then they need to.
17815
17816 2005-04-05  Jackson Harper  <jackson@ximian.com>
17817
17818         * ListControl.cs: Basic implementation of complex databinding.
17819         * ComboBox.cs:
17820         * ListBox.cs: Add calls to ListControl databinding methods.
17821
17822 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
17823
17824         * FileDialog.cs:
17825           - Don't change PopupButtonState to Normal when the
17826             PopupButton gets pressed several times.
17827           - Renamed ButtonPanel to PopupButtonPanel
17828
17829 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
17830
17831         * ColorDialog.cs: Use cached objects instead of creating them
17832         * LinkLabel.cs: Use cached objects instead of creating them
17833         * Splitter.cs: Use cached objects instead of creating them
17834         * FontDialog.cs: Use cached objects instead of creating them
17835         * PropertyGridView.cs: Use cached objects instead of creating them
17836         * MessageBox.cs: Use cached objects instead of creating them
17837         * FileDialog.cs: Use cached objects instead of creating them
17838         * ThemeWin32Classic.cs: Use cached objects instead of creating them
17839         * TreeView.cs: Use cached objects instead of creating them
17840         
17841 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
17842
17843         * Control.cs: use Equals to compare the font since no == op
17844         * ScrollBar.cs: use Equals to compare the font since no == op
17845
17846 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
17847
17848         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
17849
17850 2005-04-01  Jackson Harper  <jackson@ximian.com>
17851
17852         * Binding.cs: Implement IsBinding.
17853         * BindingManagerBase.cs:
17854         * PropertyManager.cs:
17855         * CurrencyManager.cs: Add IsSuspended property.
17856
17857 2005-04-01  Jackson Harper  <jackson@ximian.com>
17858
17859         * Binding.cs: Had some IsAssignableFrom calls backwards.
17860
17861 2005-04-01  Jackson Harper  <jackson@ximian.com>
17862
17863         * Binding.cs: Handle null data members when pulling data.
17864         * PropertyManager.cs: Handle the data member being a property that
17865         does not exist.
17866
17867 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
17868
17869         * DataGridTextBoxColumn.cs: fixes signature
17870         * DataGrid.cs: calls right constructor
17871
17872 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
17873
17874         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
17875         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
17876         * GridTableStylesCollection.cs: implements GridTableStylesCollection
17877         * DataGridTableStyle.cs: implements DataGridTableStyle
17878         * DataGridBoolColumn.cs: implements DataGridBoolColumn
17879         * DataGridTextBox.cs: implements DataGridTextBox
17880         * DataGridColumnStyle.cs: implements DataGridColumnStyle
17881
17882 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
17883
17884         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
17885
17886 2005-03-29  Peter Bartok  <pbartok@novell.com>
17887
17888         * Application.cs:
17889           - Properly implemented CompanyName property
17890           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
17891             returns a path that includes CompanyName, ProductName and
17892             Version (fixes bug #70330)
17893
17894 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
17895
17896         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
17897           fixes bug #72588.
17898
17899 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
17900
17901         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
17902         
17903           - Added ReadOnly CheckBox
17904           - Further refactoring: moved some code from Open-/SaveFileDialog
17905             to FileDialog
17906
17907 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
17908
17909         * OpenFileDialog.cs: Fixed CheckFileExists
17910         * FileDialog.cs:
17911           Moved FileView and DirComboBox outside FileDialog class.
17912           They can now be used outside FileDialog
17913
17914 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
17915
17916         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
17917         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
17918
17919 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
17920
17921         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
17922           - Added missing CreatePrompt property in SaveDialog
17923           - Overall SaveDialog handling should be better now
17924           - Added non standard ShowHiddenFiles property
17925           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
17926           - Added InitialDirectory and RestoreDirectory support
17927
17928 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
17929
17930         * FileDialog.cs: Made dirComboBox usable
17931
17932 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
17933
17934         * FileDialog.cs: Added Filter support (case sensitiv)
17935
17936 2005-03-24  Jackson Harper  <jackson@ximian.com>
17937
17938         * TabControl.cs: Need a couple more pixels for the lines.
17939
17940 2005-03-23  Jackson Harper  <jackson@ximian.com>
17941
17942         * TabControl.cs: Give the tab page focus when it is selected.
17943
17944 2005-03-23  Jackson Harper  <jackson@ximian.com>
17945
17946         * TabControl.cs: Account for the drawing of tabs borders when
17947         invalidating. If the slider was clicked dont do click detection on
17948         the tabs.
17949
17950 2005-03-23  Jackson Harper  <jackson@ximian.com>
17951
17952         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
17953
17954 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
17955
17956         * CategoryGridEntry.cs: Added
17957         * GridItem.cs: Added helper properties
17958         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
17959         * GridEntry.cs: Updated code for collection
17960         * PropertyGrid.cs: Cleaned up some formatting
17961         * PropertyGridView.cs: Added drop down functionality for enums.
17962         * GridItemCollection.cs: Added enumerator logic
17963         * PropertyGridEntry.cs: Added
17964
17965 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
17966
17967         * FileDialog.cs:
17968           - Removed unnecessary commented code
17969           - Fixed handling for entering the filename manually in the combobox
17970
17971 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
17972
17973         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
17974
17975 2005-03-18  Peter Bartok  <pbartok@novell.com>
17976
17977         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
17978           them being touching the border
17979
17980 2005-03-18  Peter Bartok  <pbartok@novell.com>
17981
17982         * TextControl.cs: Quick hack to center text better
17983
17984 2005-03-18  Peter Bartok  <pbartok@novell.com>
17985
17986         * ControlPaint.cs:
17987           - Don't throw NotImplemented exceptions, just print a notice once
17988             instead (requested by Miguel). This makes running existing SWF
17989             apps a bit easier
17990         * Control.cs:
17991           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
17992           - Added context menu trigger on right click
17993         * Panel.cs: Trigger invalidate on resize
17994         * StatusBar.cs:
17995           - Removed old double-buffer drawing
17996           - Added ResizeRedraw style to force proper update of statusbar
17997         * ListView.cs:
17998           - Removed debug output
17999         * ThemeWin32Classic.cs:
18000           - Fixed drawing of status bar, now draws Text property if there
18001             are no defined panels
18002
18003 2005-03-18  Jackson Harper  <jackson@ximian.com>
18004
18005         * ImageList.cs: When the image stream is set pull all the images
18006         from it.
18007         * ImageListStreamer.cs: Implement reading image list streams.
18008
18009 2005-03-18  Peter Bartok  <pbartok@novell.com>
18010
18011         * ThemeWin32Classic.cs (DrawPictureBox):
18012           - Fixed calculations for centered drawing
18013           - Fixed drawing for normal mode, not scaling the image on normal
18014
18015 2005-03-18  Peter Bartok  <pbartok@novell.com>
18016
18017         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
18018           textbox
18019         * FileDialog.cs:
18020           - Made Open/Save button the accept button for FileDialog
18021           - Tied the cancel button to the IButtonControl cancel button
18022           - Save/Open now properly builds the pathname
18023           - Now handles user-entered text
18024           - Preventing crash on right-click if no item is selected
18025           - Fixed Text property, now uses contents of textbox
18026           - Fixed SelectedText property, now just returns the text part that
18027             is selected in the text box
18028
18029 2005-03-18  Jackson Harper  <jackson@ximian.com>
18030
18031         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
18032         rect, make sure to de-adjust the interior rect after drawing the
18033         tab text.
18034
18035 2005-03-18  Peter Bartok  <pbartok@novell.com>
18036
18037         * MenuAPI.cs: Remove menu *before* executing selected action to
18038           prevent the menu from 'hanging around'
18039           
18040 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
18041
18042         * XplatUIOSX.cs: Implemented WorkingArea property
18043
18044 2005-03-17  Peter Bartok  <pbartok@novell.com>
18045
18046         * XplatUIX11.cs: Fixed menu coord calculations
18047         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
18048           for calculating offsets
18049
18050 2005-03-17  Peter Bartok  <pbartok@novell.com>
18051
18052         * Hwnd.cs: Do not consider menu presence for default client
18053           rectangle location/size
18054         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
18055           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
18056           translation functions
18057         * FileDialog.cs: Fixed (what I presume is a) typo
18058
18059 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
18060
18061         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
18062           X access (avoids X-Async errors)
18063
18064 2005-03-16  Jackson Harper  <jackson@ximian.com>
18065
18066         * TabControl.cs: Raise the SelectedIndexChanged event.
18067
18068 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
18069
18070         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
18071           - Removed vertical ToolBar and replaced it with a custom panel
18072             (desktop and home button already work)
18073           - Added Help button (some controls get resized or relocated then)
18074           - Draw correct text depending on Open or Save.
18075           - Fixed some typos...
18076
18077 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
18078
18079         * ScrollBar.cs:
18080           - Only change Maximum and Minimum when need it (bug fix)
18081
18082 2005-03-15  Peter Bartok  <pbartok@novell.com>
18083
18084         * Form.cs: Use Handle for icon, to trigger creation if
18085           the window does not yet exist
18086         * Control.cs:
18087           - CanSelect: Slight performance improvement
18088           - Focus(): Preventing possible recursion
18089           - Invalidate(): Removed ControlStyle based clear flag setting
18090           - WM_PAINT: fixed logic for calling OnPaintBackground
18091           - WM_ERASEBKGND: Fixed logic, added call to new driver method
18092             EraseWindowBackground if the control doesn't paint background
18093         * XplatUIWin32.cs:
18094           - Moved EraseWindowBackground() method to internal methods
18095           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
18096             is sent via SendMessage on BeginPaint call on Win32
18097         * XplatUIX11.cs:
18098           - Added EraseWindowBackground() method
18099           - No longer sends WM_ERASEBKGND on .Expose, but on call to
18100             PaintEventStart, which more closely matches Win32 behaviour
18101           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
18102           - Fixed SetFocus() to properly deal with client and whole windows
18103         * Hwnd.cs: Added ErasePending property
18104         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
18105         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
18106
18107 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
18108
18109         * XplatUIOSX.cs:
18110           - Fix hard loop when timers exist.
18111           - Fix bugs with middle and right click for 3 button mice.
18112
18113 2005-03-11  Peter Bartok  <pbartok@novell.com>
18114
18115         * XplatUIX11.cs:
18116           - get_WorkingArea: Need to call X directly, GetWindowPos only
18117             returns cached data now
18118           - Added sanity check to GetWindowPos hwnd usage
18119
18120 2005-03-11  Jackson Harper  <jackson@ximian.com>
18121
18122         * BindingManagerBase.cs: This method isn't used anymore as
18123         PullData now updates the data in the control.
18124
18125 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
18126
18127         * Form.cs: fixes menu drawing on X11
18128         * MenuAPI.cs:  fixes menu drawing on X11
18129
18130 2005-03-11  Peter Bartok  <pbartok@novell.com>
18131
18132         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
18133           from Jonathan Gilbert; should fix bug #73606
18134         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
18135           in Screen coordinates. Thanks, Jordi.
18136         * Form.cs: Added missing attribute
18137
18138 2005-03-11  Peter Bartok  <pbartok@novell.com>
18139
18140         * Form.cs:
18141           - Rudimentary Mdi support
18142           - Removed outdated FormParent code
18143           - Implemented lots of missing properties and methods, still missing
18144             transparency support
18145           - Added missing attributes
18146           - Implemented support for MaximumBounds
18147           - Added firing of various events
18148         * XplatUI.cs: Added SetIcon() method
18149         * XplatUIDriver.cs: Added SetIcon() abstract
18150         * XplatUIOSX.cs: Stubbed out SetIcon() method
18151         * XplatUIX11.cs:
18152           - Implemented SetIcon() support
18153           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
18154           - Switched to unix line endings
18155         * XplatUIWin32.cs:
18156           - Made POINT internal so for can access it as part of MINMAX
18157           - Implemented SetIcon() support
18158           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
18159             native Mdi support again, might have to go managed)
18160         * Control.cs: Now fires the StyleChanged event
18161         * MdiClient.cs: Added; still mostly empty
18162
18163 2005-03-10  Peter Bartok  <pbartok@novell.com>
18164
18165         * SaveFileDialog.cs: Added emtpy file
18166
18167 2005-03-08  Peter Bartok  <pbartok@novell.com>
18168
18169         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
18170           in turn triggers OnCreateContro) when creating a handle for the
18171           first time.
18172         * TextControl.cs: Fixed endless loop in certain cases when
18173           replacing the current selection
18174
18175 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
18176
18177         * ScrollBar.cs:
18178           - Honors NewValue changes in Scroll events allowing apps to change it
18179           - Adds First and Last Scroll events
18180           - Fixes Thumb events
18181
18182 2005-03-07  Peter Bartok  <pbartok@novell.com>
18183
18184         * Hwnd.cs: Added DefaultClientRectangle property
18185         * XplatUI.cs: Now using the X11 driver Where() method, which provides
18186           more detailed debug information
18187         * XplatUIX11.cs:
18188           - Fixed size-change feedback loop, where we would pull an old size
18189             off the queue and mistakenly change our window's size to an
18190             earlier value
18191           - Now compressing ConfigureNotify events, to reduce looping and
18192             redraw issues
18193         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
18194           is called
18195
18196 2005-03-07  Jackson Harper  <jackson@ximian.com>
18197
18198         * Binding.cs: Push data pushes from data -> property. Check if the
18199         property is readonly when attempting to set it.
18200
18201 2005-03-07  Jackson Harper  <jackson@ximian.com>
18202
18203         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
18204         instead of IsSubclassOf. Pulling data now sets the value on the
18205         control.
18206         * PropertyManager.cs:
18207         * CurrencyManager.cs: Just need to pull data when updating now,
18208         because PullData will set the value on the control.
18209
18210 2005-03-04  Jackson Harper  <jackson@ximian.com>
18211
18212         * Binding.cs: Implement data type parsing and converting on pulled
18213         data. TODO: Are there more ways the data can be converted?
18214
18215 2005-03-04  Jackson Harper  <jackson@ximian.com>
18216
18217         * Binding.cs: Support <Property>IsNull checks. Also bind to the
18218         controls Validating method so we can repull the data when the
18219         control loses focus.
18220
18221 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
18222
18223         * ColumnHeader.cs:
18224           - Fixes null string format
18225           
18226         * ListView.cs:
18227           - Adds enum type checks
18228           - Fixes redrawing and recalc need after changing some properties
18229           - Fixes on focus_item set after the event
18230           - Fixes adding columns after the control has been created
18231           
18232         * ThemeWin32Classic.cs:
18233           - Fixes CheckBox focus rectangle
18234           - Fixes ColumnHeader drawing
18235
18236
18237 2005-03-03  Jackson Harper  <jackson@ximian.com>
18238
18239         * Binding.cs: Bind to <Property>Changed events so we can detect
18240         when properties are changed and update the data.
18241
18242 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
18243
18244         * ImageList.cs:
18245           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
18246           - Fixes ImageList constructor with ImageList container
18247           - Fixes image scaling (wrong parameters at DrawImage)
18248
18249 2005-02-02  Jackson Harper  <jackson@ximian.com>
18250
18251         * Binding.cs: Make property searches case-insensitive. Eliminate
18252         some duplicated code.
18253
18254 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
18255
18256         * ComboBox.cs:
18257                 - Handle focus event
18258                 - Fix scrollbar events
18259                 - Discard highlighted item if remove it
18260                 - Fixes SelectedItem with strings
18261
18262 2005-03-01  Peter Bartok  <pbartok@novell.com>
18263
18264         * Control.cs:
18265           - Fixed Visible property, now follows (once again) parent chain
18266             to return false if any control in the chain is visible=false
18267           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
18268           - Fixed several places where is_visible instead of Visible was used
18269           - Implemented FIXME related to focus selection when setting focused
18270             control to be invisible
18271
18272         * XplatUIWin32.cs: Now using proper method to find out if window is
18273           visible. Thanks to Jordi for pointing it out
18274
18275 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
18276
18277         * ComboBox.cs: show/hide scrollbar instead of creating it
18278
18279 2005-02-27  Jackson Harper  <jackson@ximian.com>
18280
18281         * CurrencyManager.cs: Add PositionChanged stuff.
18282
18283 2005-02-27  Peter Bartok  <pbartok@novell.com>
18284
18285         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
18286         * XplatUIOSX.cs: Added GetMenuOrigin() stub
18287         * XplatUIWin32.cs: Implemented GetMenuOrigin()
18288         * XplatUIX11.cs:
18289           - Implemented GetMenuDC()
18290           - Implemented GetMenuOrigin()
18291           - Implemented ReleaseMenuDC()
18292           - Implemented generation of WM_NCPAINT message
18293           - Implemented generation and handling of WM_NCCALCSIZE message
18294         * Form.cs: Added debug helper message for Jordi's menu work
18295         * Hwnd.cs:
18296           - Modified ClientRect property; added setter, fixed getter to handle
18297             setting of ClientRect
18298           - Added MenuOrigin property
18299
18300 2005-02-26  Peter Bartok  <pbartok@novell.com>
18301
18302         * XplatUIX11.cs:
18303           - Destroys the caret if a window that's being destroyed contains it
18304           - Ignores expose events coming from the X11 queue for windows that
18305             already are destroyed
18306           - Now uses the proper variable for handling DestroyNotify, before we
18307             marked the wrong window as destroyed
18308           - Improved/added some debug output
18309
18310 2005-02-26  Peter Bartok  <pbartok@novell.com>
18311
18312         * X11Keyboard.cs: Fixes to work on 64bit systems
18313
18314 2005-02-26  Peter Bartok  <pbartok@novell.com>
18315
18316         * Control.cs:
18317           - Now calling OnHandleDestroyed from DestroyHandle()
18318             instead of Dispose()
18319           - Removed bogus call to controls.Remove() from DestroyHandle()
18320
18321 2005-02-26  Peter Bartok  <pbartok@novell.com>
18322
18323         * Control.cs: Properly destroy child windows when our handle is
18324           destroyed
18325
18326 2005-02-25  Peter Bartok  <pbartok@novell.com>
18327
18328         * XplatUI.cs:
18329           - Added 'DriverDebug' define to allow tracing XplatUI API calls
18330           - Alphabetized Static Methods and Subclasses
18331
18332         * XplatUIX11.cs:
18333           - Added XException class to allow custom handling of X11 exceptions
18334           - Created custom X11 error handler, tied into XException class
18335           - Added support for MONO_XEXCEPTIONS env var to allow the user
18336             to either throw an exception on X errors or continue running
18337             after displaying the error
18338           - Added handling of DestroyNotify message
18339           - Added handler for CreateNotify message (still disabled)
18340           - Improved (tried to at least) Where method to provide file and lineno
18341         * X11Structs.cs:
18342           - Added XErrorHandler delegate
18343           - Added XRequest enumeration (to suppor translation of errors)
18344
18345 2005-02-25  Jackson Harper  <jackson@ximian.com>
18346
18347         * PropertyManager.cs: Implement editing features
18348         * CurrencyManager.cs:
18349         * Binding.cs: First attempt at UpdateIsBinding
18350         * BindingManagerBase.cs: Call UpdateIsBinding before
18351         pushing/pulling data.
18352
18353 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
18354
18355         * MenuAPI.cs: Respect disabled items
18356         * ThemeWin32Classic.cs
18357                 - Caches ImageAttributes creation for DrawImageDisabled
18358                 - Fixes vertical menu line drawing
18359                 - Draws disabled arrows in disable menu items
18360
18361 2005-02-24  Peter Bartok  <pbartok@novell.com>
18362
18363         * Hwnd.cs:
18364           - Added UserData property to allow associating arbitrary objects
18365             with the handle
18366           - Fixed leak; now removing Hwnd references from static windows array
18367         * XplatUIWin32.cs:
18368           - Fixed Graphics leak in PaintEventEnd
18369           - Removed usage of HandleData, switched over to Hwnd class
18370         * HandleData.cs: Removed, obsoleted by Hwnd.cs
18371
18372 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
18373
18374         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
18375         * ScrollBar.cs: Fixes bug
18376         * TrackBar.cs: removes death code, clipping, mimize refreshes,
18377          keyboard navigation enhancements
18378
18379 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
18380
18381         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
18382         * GroupBox.cs: Add control styles
18383         * Label.cs: Add control styles
18384         * UpDownBase.cs: Add control styles
18385         * ListBox.cs: Add control styles
18386         * XplatUIWin32.cs: Fixes wrong parameter order
18387
18388
18389 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
18390
18391         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
18392
18393 2005-02-23  Jackson Harper  <jackson@ximian.com>
18394
18395         * PropertyManager.cs: Implement property binding. This doesn't
18396         seem to work yet though as (I think) there are some bugs in
18397         System.ComponentModel.PropertyDescriptor.
18398         * BindingContext.cs: Use new PropertyManager constructor.
18399
18400 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
18401
18402         * ProgressBar.cs: use clip region in ProgressBar
18403         * ThemeWin32Classic.cs: use clip region in ProgressBar
18404
18405 2004-02-22  Jackson Harper  <jackson@ximian.com>
18406
18407         * BindingsCollection.cs: Remove some debug code.
18408
18409 2005-02-22  Jackson Harper  <jackson@ximian.com>
18410
18411         * BindingContext.cs:
18412         * ControlBindingsCollection.cs:
18413         * CurrencyManager.cs:
18414         * Binding.cs:
18415         * BindingManagerBase.cs: Initial implementation
18416         * BindingsCollection.cs: Add an internal contains method that the
18417         BindingManagerBase uses to ensure bindings aren't added twice to
18418         the collection.
18419         * PropertyManager.cs: Stubbed out.
18420         * Control.cs:
18421         * ContainerControl.cs: Hook up databinding
18422         
18423 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
18424
18425         * XplatUIOSX.cs:
18426           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
18427           Fixed Invalidate/Update chain.
18428           Fixed tons of other minor bugs (this is almost a complete rewrite).
18429
18430 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
18431
18432         * ComboBox.cs: do subcontrol creation when the control is created
18433
18434 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
18435
18436         * Label.cs: fixes image drawing (image and imagelist)
18437         * ThemeWin32Classic.cs: cache brushes
18438         
18439 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
18440
18441         * Form.cs: Move menu drawing code to Theme class
18442         * ComboBox.cs: Move ComboBox drawing code to Theme class
18443         * MenuItem.cs: Move menu drawing code to Theme class
18444         * MenuAPI.cs: Move menu drawing code to Theme class
18445         * ThemeWin32Classic.cs: New methods
18446         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
18447         * ListBox.cs: Move Listbox drawing code to Theme class
18448         * Theme.cs: New methods
18449
18450 2005-02-20  Peter Bartok  <pbartok@novell.com>
18451
18452         * Control.cs:
18453           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
18454             only process mnemonics on those)
18455           - Fixed event sequence for key handling; first calling
18456             ProcessKeyEventArgs now
18457         * TextBoxBase.cs:
18458           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
18459             for processing non-character keys
18460           - Fixed WM_CHAR to generate proper event sequence before processing
18461         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
18462           generation
18463
18464 2005-02-19  Peter Bartok  <pbartok@novell.com>
18465
18466         * UserControl.cs: Added TextChanged event; added attributes
18467         * SizeGrip.cs: Implemented resizing and optional display of grip
18468         * Form.cs: Fixed attribute
18469         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
18470           Changed meaning of ScrollWindow bool argument; instead of the
18471           clear attribute (which will be true usually anyway), it gives the
18472           option of moving child controls as well.
18473         * XplatUIX11.cs:
18474           - Changed to match new ScrollWindow argument
18475           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
18476             now handles the implicit parent window a WM puts around us
18477         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
18478           to work)
18479         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
18480         * TreeView.cs: Adjusted to new ScrollWindow arguments
18481
18482 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
18483
18484         * Form.cs: Menu integration with non-client area
18485         * MenuItem.cs: Menu integration with non-client area
18486         * MenuAPI.cs: Menu integration with non-client area
18487
18488 2005-02-18  Peter Bartok  <pbartok@novell.com>
18489
18490         * MethodInvoker.cs: Added
18491         * MdiLayout.cs: Added
18492         * SendKeys.cs: Started implementation
18493         * ErrorIconAlignment.cs: Added
18494
18495 2005-02-18  Peter Bartok  <pbartok@novell.com>
18496
18497         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
18498         * Form.cs: Added handling for Menu-related Non-client messages
18499
18500 2005-02-17  Peter Bartok  <pbartok@novell.com>
18501
18502         * UpDownBase.cs: Fixed typo, compilation errors
18503         * DomainUpDown.cs: Fixed attribute value
18504
18505 2005-02-16  Miguel de Icaza  <miguel@novell.com>
18506
18507         * UpDownBase.cs: Attach entry events.
18508         Propagate events.
18509         Add ForeColor property, Focused, InterceptArrowKeys (interception
18510         does not work yet).
18511
18512 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
18513
18514         * Form.cs:
18515                 - Redraw non client are on Setmenu
18516                 - Calc proper menu starting point
18517
18518 2005-02-17  Peter Bartok  <pbartok@novell.com>
18519
18520         * Application.cs: Fixed message_filter check
18521
18522 2005-02-17  Peter Bartok  <pbartok@novell.com>
18523
18524         * Application.cs: Now calls registered message filters
18525         * DockStyle.cs: Fixed attribute
18526         * Form.cs: Fixed attribute
18527         * Menu.cs: Fixed attribute
18528         * ToolTip.cs: Fixed attribute
18529         * TreeNode.cs: Added missing attributes and arranged in regions
18530         * PropertyGrid.cs: Fixed signatures
18531         * TreeNodeCollection.cs: Added attributes
18532         * Splitter.cs: Added missing attributes; arranged into regions
18533         * TabPage.cs: Added missing attributes; arranged into regions
18534         * TextBoxBase.cs: Added missing attributes
18535         * TextBox.cs: Added missing attributes
18536         * ArrangeDirection.cs: Added missing attributes
18537         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
18538         * ToolBarButton.cs: Fixed attributes
18539         * AnchorStyles.cs: Fixed attribute
18540         * TrackBar.cs: Fixed attributes
18541         * TabControl.cs: Added missing attributes and arranged into regions
18542         * ToolBar.cs: Fixed attribute
18543         * StatusBar.cs: Fixed signature, organized into regions and added
18544           attributes
18545         * StatusBarPanel.cs: Fixed attributes
18546         * ContentsResizedEventArgs.cs: Implemented
18547         * ContentsResizedEventHandler.cs: Implemented
18548         * DateBoldEventArgs.cs: Implemented
18549         * DateBoldEventHandler.cs: Implemented
18550         * UpDownEventArgs.cs: Implemented
18551         * UpDownEventHandler.cs: Implemented
18552         
18553 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
18554
18555         * Form.cs: first Menu NC refactoring
18556         * MenuAPI.cs: first Menu NC refactoring
18557         
18558 2005-02-16  Peter Bartok  <pbartok@novell.com>
18559
18560         * ImeMode.cs: Added missing attributes
18561         * Menu.cs: Fixed attribute
18562         * GroupBox.cs: Fixed attribute
18563         * Label.cs: Fixed attribute
18564         * ColorDialog.cs (RunDialog): Removed TODO attribute
18565         * ComboBox.cs: Fixed attributes
18566         * ListControl.cs: Added missing attributes
18567         * PropertyGrid.cs: Fixed attributes
18568         * Control.cs: Fixed attributes
18569         * ListViewItem.cs: Added TypeConverter attribute
18570         * NotifyIcon.cs: Fixed attributes
18571         * ListView.cs: Fixed attributes
18572         * ButtonBase.cs: Fixed attribute
18573         * ImageList.cs: Added missing attributes
18574         * ContainerControl.cs: Fixed signature
18575         * CheckedListBox.cs: Fixed attribute; added missing attributes
18576         * Panel.cs: Fixed attributes
18577         * PropertyTabChangedEventArgs.cs: Added missing attribute
18578         * PropertyValueChangedEventArgs.cs: Added missing attribute
18579         * Binding.cs: Fixed attribute
18580         * ListViewItemConverter: Implemented ListViewSubItemConverter class
18581         * ListBox.cs: Fixed attribute; added missing attributes;
18582         * ScrollableControl.cs: Added missing attributes
18583         * PictureBox.cs: Added missing attributes; implemented missing property
18584         * DateTimePicker.cs: Added missing attributes
18585         * Theme.cs (ToolWindowCaptionHeight): Fixed type
18586         * MonthCalendar.cs: Fixed attributes
18587         * StatusBarPanel.cs: Added missing attributes
18588         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
18589
18590 2005-02-16  Peter Bartok  <pbartok@novell.com>
18591
18592         * TextBoxBase.cs: The previous method to enforce height yet remember
18593           the requested high was less than ideal, this is an attempt to do
18594           it better.
18595         * Control.cs: Added comment about possible problem
18596         * Copyright: Updated format
18597         * GridItemType.cs: Fixed swapped values
18598
18599 2005-02-15  Jackson Harper  <jackson@ximian.com>
18600
18601         * BaseCollection.cs: Use property so we never access an
18602         uninitialized list. Also initialize the list in the property.
18603
18604 2005-02-15  Peter Bartok  <pbartok@novell.com>
18605
18606         * GroupBox.cs (ProcessMnemonic): Implemented
18607         * Label.cs (ProcessMnemonic): Implemented
18608         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
18609           hotkeys
18610
18611 2005-02-15  Peter Bartok  <pbartok@novell.com>
18612
18613         * RadioButton.cs (ProcessMnemonic): Implemented
18614         * CheckBox.cs (ProcessMnemonic): Implemented
18615         * Control.cs:
18616           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
18617             handling
18618           - Added internal method to allow calling ProcessMnemonic from other
18619             controls
18620         * ContainerControl.cs:
18621           - Started support for handling validation chain handling
18622           - Implemented ProcessMnemonic support
18623           - Added Select() call to Active, to make sure the active control
18624             receives focus
18625         * Form.cs: Setting toplevel flag for Forms (this was lost in the
18626           FormParent rewrite)
18627         * ThemeWin32Classic.cs:
18628           - DrawCheckBox(): Fixed stringformat to show hotkeys
18629           - DrawRadioButton(): Fixed stringformat to show hotkeys
18630         * CommonDialog.cs: Removed WndProc override, not needed
18631
18632 2005-02-14  Peter Bartok  <pbartok@novell.com>
18633
18634         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
18635           missed those in the rewrite
18636
18637 2005-02-14  Miguel de Icaza  <miguel@novell.com>
18638
18639         * NumericUpDown.cs (Increment, ToString): Add.
18640         (DecimalPlaces): implement.
18641         
18642         Add attributes.
18643         
18644         * UpDownBase.cs: Add the designer attributes.
18645
18646 2005-02-13  Peter Bartok  <pbartok@novell.com>
18647
18648         * Panel.cs: Removed border_style, now in Control
18649         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
18650           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
18651
18652 2005-02-13  Peter Bartok  <pbartok@novell.com>
18653
18654         * MouseButtons.cs: Added missing attributes
18655         * XplatUIStructs.cs: Added enumeration for title styles
18656         * LeftRightAlignment.cs: Added missing attributes
18657         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
18658           it compatible with Graphics.FromHwnd()
18659         * SelectedGridItemChangedEventArgs.cs: Fixed property type
18660         * Keys.cs: Added missing attributes
18661         * SelectionRange.cs: Added missing attributes
18662         * SelectionRangeConverter.cs: Added
18663         * XplatUI.cs:
18664           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
18665             ReleaseMenuDC methods
18666           - Renamed ReleaseWindow to UngrabWindow
18667           - Added proper startup notice to allow version identification
18668         * Form.cs:
18669           - Added missing attributes
18670           - Removed FormParent concept
18671         * Label.cs: Removed border_style field, now in Control
18672         * RadioButton.cs: Now properly selects RadioButton when focus is
18673           received
18674         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
18675         * Control.cs:
18676           - Added missing attributes
18677           - Added borderstyle handling
18678           - Removed FormParent concept support
18679           - Fixed calls to XplatUI to match changed APIs
18680           - Fixed bug that would case us to use disposed Graphics objects
18681           - Removed unneeded internal methods
18682           - PerformLayout(): Fixed to handle DockStyle.Fill properly
18683           - SelectNextControl(): Fixed to properly check common parents
18684         * TextBoxBase.cs: Removed border_style field (now in Control)
18685         * MessageBox.cs:
18686           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
18687             fixed calculations for form size
18688           - Added support for localized strings and icons
18689           - Improved form size calculations, added border
18690         * ListView.cs: Removed border_style field (now in Control)
18691         * X11Structs.cs: Moved several structs from X11 driver here
18692         * X11Keyboard.cs: Changed debug message
18693         * Application.cs: Removed FormParent concept support
18694         * CommonDialog.cs:
18695           - Resetting end_modal flag
18696           - Removed FormParent concept support
18697         * NativeWindow.cs: Removed FormParent concept support
18698         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
18699           Client area and Non-Client whole window to allow support for WM_NC
18700           messages
18701         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
18702           prevent using it until it supports Hwnd as per Geoff Norton's request
18703         * ToolBar.cs: Fixed drawing, was not doing proper drawing
18704         * PictureBox.cs: Removed border_style field, now in Control
18705         * XplatUIWin32.cs: Added new driver methods
18706
18707 2005-02-12  Peter Bartok  <pbartok@novell.com>
18708
18709         * OpacityConverter.cs: Implemented
18710         * Hwnd.cs: Internal class to support drivers that need to emulate
18711           client area/non-client area window behaviour
18712
18713 2005-02-11  Peter Bartok  <pbartok@novell.com>
18714
18715         * KeysConverter.cs: Implemented
18716
18717 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
18718
18719         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
18720         * LinkLabel: Added missing attributes
18721         * MainMenu.cs: fixes ToString
18722         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
18723         * ListBox.cs: fixes event position
18724         * TrackBar.cs: adds missing attributes and events
18725         
18726 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
18727
18728         * MenuItem.cs: Use SystemInformation and bug fixes
18729         * MenuAPI.cs: Use SystemInformation and bug fixes
18730
18731 2005-02-09  Jackson Harper  <jackson@ximian.com>
18732
18733         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
18734         their keystate otherwise things like VK_MENU get stuck "on".
18735
18736 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
18737
18738         * ListBox.cs: Fixes AddRange bug
18739         
18740 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
18741
18742         * ProgressBar.cs
18743                 - Add missing attributes
18744                 - Add missing method
18745                 
18746         * CheckedListBox.cs: Added missing attributes
18747                 - Add missing attributes
18748                 - Remove extra method
18749         
18750         * ComboBox.cs: Added missing attributes
18751         * VScrollBar.cs: Added missing attributes
18752         * ScrollBar.cs:  Added missing attributes
18753         * ListBox.cs: Fixes signature, add missing consts
18754         * LinkArea.cs:   Added missing attributes
18755         
18756
18757 2005-02-08  Peter Bartok  <pbartok@novell.com>
18758
18759         * Menu.cs: Added missing attributes
18760         * MainMenu.cs: Added missing attributes
18761         * GroupBox.cs: Added missing attributes
18762         * Label.cs: Added missing attributes
18763         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
18764         * ColorDialog.cs:
18765           - Added Instance and Options properties
18766           - Added missing attributes
18767         * Cursor.cs: Made Serializable
18768         * NotifyIcon: Added missing attributes
18769         * MenuItem.cs: Added missing attributes
18770         * TextBoxBase.cs: Implemented AppendText() and Select() methods
18771         * Panel.cs: Added Missing attributes
18772         * MonthCalendar.cs: Fixed CreateParams
18773
18774 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
18775         
18776         * LinkLabel.cs:
18777                 - Fixes signature
18778                 - Fixes issues with links
18779                 - Adds the class attributes
18780
18781 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
18782         
18783         * ComboBox.cs:
18784                 - Fixes button when no items available in dropdown
18785                 - Fixes repainting problems
18786                 - Adds the class attributes
18787                 
18788 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
18789
18790         * XplatUIOSX.cs: Detect the menu bar and title bar height from
18791         the current theme.  Cache these on startup.
18792
18793 2005-02-07  Jackson Harper  <jackson@ximian.com>
18794
18795         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
18796         the scrollbar buttons when they are depressed.
18797
18798 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
18799
18800         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
18801         Get the display size from the main displayid.  We currently dont
18802         support multiple display configurations.
18803
18804 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
18805
18806         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
18807
18808 2005-02-07  Miguel de Icaza  <miguel@novell.com>
18809
18810         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
18811
18812 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
18813
18814         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
18815
18816 2005-02-04  Jackson Harper  <jackson@ximian.com>
18817
18818         * ThemeWin32Classic.cs: Respect the clipping rect when
18819         drawing. Only fill the intersection of clips and rects so there
18820         isn't a lot of large fills.
18821         * ScrollBar.cs: Pass the correct clipping rect to the theme
18822         engine. Remove some debug code.
18823
18824 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
18825         
18826         * DateTimePicker.cs:
18827                 - Fixed crash on DateTime.Parse, use Constructor instead
18828
18829 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
18830         
18831         * MenuItem.cs:
18832         * MenuAPI.cs:
18833                 - Owner draw support (MeasureItem and DrawItem)
18834
18835 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
18836         
18837         *  Menu.cs:
18838                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
18839                 - Fixes MenuItems.Add range
18840         * MenuItem.cs:
18841                 - MergeMenu and Clone and CloneMenu functions
18842
18843 2005-02-03  Jackson Harper  <jackson@ximian.com>
18844
18845         * ScrollBar.cs: Make abstract
18846         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
18847         is abstract.
18848
18849 2005-02-03  Jackson Harper  <jackson@ximian.com>
18850
18851         * ScrollBar.cs: First part of my scrollbar fixups. This removes
18852         all the unneeded refreshes and uses invalidates with properly
18853         computed rects.
18854
18855 2005-02-03  Peter Bartok  <pbartok@novell.com>
18856
18857         * ComponentModel.cs: Added
18858         * IDataGridEditingService.cs: Added
18859         * Timer.cs: Added missing attributes
18860         * ToolTip.cs: Added missing attributes
18861
18862 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
18863
18864         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
18865
18866 2005-02-03  Peter Bartok  <pbartok@novell.com>
18867
18868         * ListBox.cs: Added missing attributes
18869
18870 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
18871         
18872         * ListBox.cs:
18873                 - Fixes font height after font change
18874                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
18875                 
18876 2005-02-02  Peter Bartok  <pbartok@novell.com>
18877
18878         * HandleData.cs: Introduced static methods to allow class
18879           to be more self-contained and track it's own HandleData objects
18880         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
18881           HandleData to use new static methods
18882
18883 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
18884
18885         * Combobox.cs:
18886                 - Fixes default size and PreferredHeight
18887                 - Missing events
18888                 - ObjectCollection.Insert implementation
18889                 
18890         * ListControl.cs
18891                 - Fixes signature
18892         * ListBox.cs:
18893                 - Several fixes
18894                 - ObjectCollection.Insert implementation
18895                 - No selection after clean
18896                 - Small fixes
18897
18898 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
18899
18900         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
18901
18902 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
18903
18904         * Combobox.cs:
18905                 - Caches ItemHeight calculation for OwnerDrawVariable
18906                 - Handles dropdown properly
18907                 - Fixes several minor bugs
18908
18909 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
18910
18911         * ListBox.cs:
18912                 - Fixes 71946 and 71950
18913                 - Fixes changing Multicolumn on the fly
18914                 - Fixes keyboard navigation on Multicolumn listboxes
18915
18916 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
18917         
18918         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
18919         crash reporter log.
18920
18921 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
18922
18923         * XplatUIOSX.cs: Allow applications to actually exit.
18924
18925 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
18926
18927         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
18928         their parent at creation time rather than lazily later.  Fixes a major
18929         regression we were experiencing.
18930
18931 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
18932
18933         * ThemeWin32Classic.cs: more date time picker painting fixes
18934         * DateTimePicker.cs: more monthcalendar drop down fixes
18935         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
18936
18937 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
18938
18939         * ScrollBar.cs:
18940                 - When moving the thumb going outside the control should stop the moving
18941                 - Adds the firing of missing events
18942                 - Fixes no button show if Size is not specified
18943                 - End / Home keys for keyboard navigation
18944
18945 2005-01-30  Peter Bartok  <pbartok@novell.com>
18946
18947         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
18948           sanity check to prevent theoretical loop
18949         * XplatUIWin32.cs (SetVisible): Removed debug output
18950         * XplatUIX11.cs (SystrayChange): Added sanity check
18951         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
18952         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
18953           behaviour, valid until the X11 client window rewrite is done
18954         * TextBox.cs (ctor): Setting proper default foreground and background
18955           colors
18956
18957 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
18958
18959         * Theme: Added DrawDateTimePicker to interface
18960         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
18961         * DateTimePicker.cs: Created (still needs keys and painting code)
18962         * DateTimePickerFormat.cs: added
18963         * MonthCalendar.cs: fixed CreateParams for popup window mode
18964           
18965 2005-01-29  Peter Bartok  <pbartok@novell.com>
18966
18967         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
18968           this should also the calculations for ligher/darker
18969         * Theme.cs: Fixed defaults for ScrollBar widths/heights
18970
18971 2005-01-29  Peter Bartok  <pbartok@novell.com>
18972
18973         * ArrangeDirection.cs: Added
18974         * ArrangeStartingPositon.cs: Added
18975         * SystemInformation.cs: Implemented
18976         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
18977           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
18978           used by SystemInformation class
18979         * X11Strucs.cs: Added XSizeHints structure
18980         * MenuAPI.cs:
18981           - Fixed CreateParams to make sure the menu window is always visible
18982           - TrackPopupMenu: Added check to make sure we don't draw the
18983             menu offscreen
18984
18985 2005-01-29  Peter Bartok  <pbartok@novell.com>
18986
18987         * HandleData.cs: Added method for altering invalid area
18988         * TextBoxBase.cs: Implemented TextLength
18989
18990 2005-01-28  Peter Bartok  <pbartok@novell.com>
18991
18992         * XplatUIX11.cs: Improvement over last patch, not sending
18993           the WM_PAINT directly anymore, instead we scroll any pending
18994           exposed areas and let the system pick out the WM_PAINT later
18995
18996 2005-01-28  Peter Bartok  <pbartok@novell.com>
18997
18998         * SWF.csproj: Deleted, no longer used. Instead,
18999           Managed.Windows.Forms/SWF.csproj should be used
19000         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
19001           directly, to avoid a potential race condition with the next
19002           scroll
19003
19004 2005-01-28  Peter Bartok  <pbartok@novell.com>
19005
19006         * XplatUI.cs: Made class internal
19007
19008 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
19009
19010         * CheckedListBox.cs:
19011                 - Draw focus
19012                 - Fixed Drawing
19013                 - Missing methods and events
19014
19015 2005-01-27  Peter Bartok  <pbartok@novell.com>
19016
19017         * Application.cs (Run): Don't use form if we don't have one
19018
19019 2005-01-27  Peter Bartok  <pbartok@novell.com>
19020
19021         * TextBoxBase.cs (get_Lines): Fixed index off by one error
19022
19023 2005-01-27  Peter Bartok  <pbartok@novell.com>
19024
19025         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
19026         * GridItem.cs: Added; Patch by Jonathan S. Chambers
19027         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
19028         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
19029         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
19030         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
19031         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
19032         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
19033         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
19034         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
19035         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
19036         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
19037
19038 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
19039
19040         * Combobox.cs:
19041                 - Draw focus on Simple Combobox
19042                 - Fixes drawing issues
19043                 - fixes 71834
19044
19045 2005-01-27  Peter Bartok  <pbartok@novell.com>
19046
19047         * Form.cs:
19048           - Place window in default location, instead of hardcoded 0/0
19049           - Send initial LocationChanged event
19050         * Control.cs:
19051           - UpdateBounds after creation to find out where the WM placed us
19052           - Make sure that if the ParentForm changes location the Form
19053             is notified
19054         * XplatUIX11.cs: XGetGeometry will not return the coords relative
19055             to the root, but to whatever the WM placed around us.
19056             Translate to root coordinates before returning toplevel
19057             coordinates
19058         * XplatUIWin32.cs: Removed debug output
19059         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
19060           flag to GetWindowPos, to allow translation of coordinates on X11
19061
19062 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
19063
19064         * ListBox.cs: connect LostFocus Event
19065
19066 2005-01-27  Peter Bartok  <pbartok@novell.com>
19067
19068         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
19069           XplatUIX11.cs: Extended the Systray API
19070         * Form.cs: Removed debug output
19071         * Application.cs: Fixed focus assignment, always need to call
19072           XplatUI.Activate() since Form.Activate() has rules that may
19073           prevent activation
19074         * NotifyIcon.cs: Should be complete now
19075         * ToolTip.cs: Worked around possible timer bug
19076
19077 2005-01-27  Jackson Harper  <jackson@ximian.com>
19078
19079         * TabControl.cs:
19080         - Only invalidate the effected tabs when the
19081         selected index changes. This reduces drawing and gets rid of some
19082         flicker.
19083         - Only refresh if the tabs need to be shifted, otherwise only
19084         invalidate the slider button.
19085         - On windows the tabs are not filled to right if the slider is
19086         visible.
19087         
19088 2005-01-27  Jackson Harper  <jackson@ximian.com>
19089
19090         * TabControl.cs: Only refresh on mouseup if we are showing the
19091         slider. Also only invalidate the button whose state has changed.
19092
19093 2005-01-26  Peter Bartok  <pbartok@novell.com>
19094
19095         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
19096         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
19097           and SystrayRemove() methods
19098         * XplatUIOSX.cs: Stubbed Systray methods
19099         * XplatUIX11.cs:
19100           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
19101             methods
19102           - Fixed broken XChangeProperty calls (marshalling messed up things)
19103         * X11Structs.cs: Added enums and structs required for Size hinting
19104         * NotifyIcon.cs: Added & implemented
19105
19106 2005-01-26  Jackson Harper  <jackson@ximian.com>
19107
19108         * TabControl.cs: Space vertically layed out tabs properly.
19109
19110 2005-01-26  Peter Bartok  <pbartok@novell.com>
19111
19112         * Form.cs (CreateClientParams): Always set the location to 0,0
19113           since we're a child window.
19114
19115         * Control.cs (SetVisibleCore): Always explicitly setting the location
19116           of a toplevel window, apparently X11 doesn't like to move windows
19117           while they're not mapped.
19118
19119 2005-01-26  Jackson Harper  <jackson@ximian.com>
19120
19121         * TabControl.cs: Implement FillToRight size mode with vertically
19122         rendered tabs.
19123
19124 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
19125
19126         * ControlPaint.cs, ThemeWin32Classic.cs
19127                 - Fixes DrawFocusRectangle
19128
19129 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
19130
19131         * MenuAPI.cs:
19132                 - MenuBar tracking only starts when item is first clicked
19133                 - Fixes menu hidding for multiple subitems
19134                 - Unselect item in MenuBar when item Executed
19135                 - Fixes bug 71495
19136
19137 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
19138
19139         * ListControl.cs:
19140                 - IsInputKey for ListBox
19141         * ListBox.cs:
19142                 - Focus item
19143                 - Shift and Control item selection
19144                 - Implement SelectionMode.MultiExtended
19145                 - Fixes RightToLeft
19146         * ComboBox.cs:
19147                 - IsInputKey implemented
19148                 - Do not generate OnTextChangedEdit on internal txt changes
19149                 
19150 2005-01-23  Peter Bartok  <pbartok@novell.com>
19151
19152         * AccessibleObject.cs: Partially implemented Select()
19153         * MonthCalendar.cs: Added missing attributes and events
19154         * Form.cs: Fixed CreateParams behaviour, now controls derived from
19155           form can properly override CreateParams.
19156         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
19157           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
19158           Control performs Invalidate & Update
19159         * NativeWindow (CreateHandle): Added special handling for Form
19160           and Form.FormParent classes to allow overriding of From.CreateParams
19161         * Control.cs:
19162           - ControlNativeWindow: Renamed 'control' variable to more intuitive
19163             name 'owner'
19164           - ControlNativeWindow: Added Owner property
19165           - Removed usage of Refresh() on property changes, changed into
19166             Invalidate(), we need to wait until the queue is processed for
19167             updates, direct calls might cause problems if not all vars for
19168             Paint are initialized
19169           - Added call to UpdateStyles() when creating the window, to set any
19170             styles that CreateWindow might have ignored.
19171           - Added support for Form CreateParent overrides to UpdateStyles()
19172         * MessageBox.cs: Removed no longer needed FormParent override stuff,
19173           CreateParams are now properly overridable
19174         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
19175           CreateParams are now properly overridable
19176
19177 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
19178
19179         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
19180         OnTextBoxChanged.
19181
19182         Capture LostFocus and OnTextBoxChanged.  The later introduces a
19183         recursive invocation that I have not figured out yet.
19184
19185         Reset the timer when not using (it was accumulating).
19186
19187
19188         (OnTextBoxChanged): Set UserEdit to true here to track whether the
19189         user has made changes that require validation.
19190
19191         Reset changing to avoid loops.
19192
19193 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
19194
19195         * NumericUpDown.cs: Display value at startup.
19196
19197         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
19198         ValidateEditText.
19199
19200         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
19201         filled in.  Added some basic parsing of text.
19202
19203         Still missing the OnXXX method overrides, and figuring out the
19204         events that must be emitted.
19205
19206         * UpDownBase.cs: Handle UserEdit on the Text property.
19207         
19208 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
19209
19210         * ComboBox.cs:
19211           - Fixes IntegralHeight
19212           - ToString method
19213
19214 2005-01-21  Jackson Harper  <jackson@ximian.com>
19215
19216         * TabControl.cs: Set the SelectedIndex property when SelectedTab
19217         is set so that the page visibility is updated and the tabs are
19218         sized correctly.
19219
19220 2005-01-21  Jackson Harper  <jackson@ximian.com>
19221
19222         * TabControl.cs: Use cliping rectangle for blitting. Give the
19223         theme the clipping rect so we can do clipping while
19224         drawing. Remove some debug code.
19225
19226 2005-01-21  Jackson Harper  <jackson@ximian.com>
19227
19228         * TabPage.cs: Add a new method so tab pages can force the tab
19229         control to recalculate the tab page sizes.
19230         * TabControl.cs: UpdateOwner needs to make the tab control recalc
19231         sizes.
19232
19233 2005-01-20  Jackson Harper  <jackson@ximian.com>
19234
19235         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
19236
19237 2005-01-20  Jackson Harper  <jackson@ximian.com>
19238
19239         * TreeView.cs: Set the bounds for nodes properly. They were
19240         getting screwed up when checkboxes were not enabled, but images
19241         were.
19242
19243 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
19244
19245         * ListBox.cs:
19246                 - Owner draw support
19247                 - Fixes
19248                 
19249 2005-01-20  Jackson Harper  <jackson@ximian.com>
19250
19251         * XplatUIStructs.cs: More misc keys
19252         * X11Keyboard.cs: Ignore some control keys.
19253
19254 2005-01-20  Jackson Harper  <jackson@ximian.com>
19255
19256         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
19257         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
19258
19259 2005-01-19  Peter Bartok  <pbartok@novell.com>
19260
19261         * Control.cs: Un-selecting the control when it is loosing focus
19262
19263 2005-01-19  Jackson Harper  <jackson@ximian.com>
19264
19265         * TreeView.cs: Hook up to the text controls leave event so we can
19266         end editing when the users clicks outside the text box.
19267         
19268 2005-01-19  Jackson Harper  <jackson@ximian.com>
19269
19270         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
19271         get set in the conversion array.
19272
19273 2005-01-19  Peter Bartok  <pbartok@novell.com>
19274
19275         * Application.cs (ModalRun): Added a call to CreateControl to ensure
19276           focus is properly set
19277         * Button.cs:
19278           - Added missing attributes
19279           - removed styles, those are already set in the base class
19280         * ButtonBase.cs:
19281           - Added missing attributes
19282           - Added clip window styles
19283         * CheckBox.cs: Added missing attributes
19284         * CommonDialog.cs:
19285           - FormParentWindow.CreateParams: Added required clip styles
19286         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
19287           also filters modifier keys
19288         * MessageBox.cs:
19289           - Added assignment of Accept and Cancel button to enable Enter
19290             and Esc keys in MessageBox dialogs
19291           - FormParentWindow.CreateParams: Added required clip styles
19292         * RadioButton.cs: Added missing attributes
19293         * TextControl.cs: No longer draws selection if control does not
19294           have focus
19295         * TextBoxBase.cs:
19296           - Now draws simple rectangle around test area to make it obvious
19297             there's a control. This is a hack until we properly support borders
19298           - A few simple fixes to support selections better, now erases selected
19299             text when typing, and resets selection when using movement keys
19300
19301 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
19302
19303         * UpDownBase.cs: Added some new properties.
19304
19305         * DomainUpDown.cs: Implement a lot to get my test working.
19306
19307 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
19308
19309         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
19310
19311 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
19312
19313         * OSXStructs (WindowAttributes): Fixed csc complaints
19314
19315 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
19316
19317         * XplayUIOSX.cs:
19318           OSXStructs.cs: Initial refactor to move enums and consts into
19319           OSXStructs and use them in the driver for greater readability.
19320
19321 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
19322
19323         * XplatUIOSX.cs: Initial support for Standard Cursors.
19324         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
19325
19326 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
19327
19328         * ComboBox.cs: ability to change style when the ctrl is already
19329         created, missing methods and events, bug fixes, signature fixes
19330
19331 2005-01-19  Peter Bartok  <pbartok@novell.com>
19332
19333         * Cursors.cs (ctor): Added ctor to fix signature
19334
19335 2005-01-18  Peter Bartok  <pbartok@novell.com>
19336
19337         * Button.cs: Implemented DoubleClick event
19338         * ButtonBase.cs:
19339           - Fixed keyboard handling to behave like MS, where the press of
19340             Spacebar is equivalent to a mousedown, and the key release is
19341             equivalent to mouseup. Now a spacebar push will give the same
19342             visual feedback like a mouse click.
19343           - Added missing attributes
19344           - Added ImeModeChanged event
19345           - Added support for generating DoubleClick event for derived classes
19346         * CheckBox.cs:
19347           - Implemented DoubleClick event
19348           - Added missing attributes
19349         * CommonDialog.cs: Added missing attribute
19350         * ContextMenu.cs: Added missing attributes
19351         * RadioButton.cs:
19352           - AutoChecked buttons do not allow to be unselected when clicked
19353             (otherwise we might end up with no selected buttons in a group)
19354           - Added missing attributes
19355           - Implemented DoubleClickEvent
19356         * ThreadExceptionDialog.cs: Enabled TextBox code
19357
19358 2005-01-18  Peter Bartok  <pbartok@novell.com>
19359
19360         * Form.cs: Removed debug output
19361         * Button.cs: Added support for DoubleClick method
19362
19363 2005-01-18  Peter Bartok  <pbartok@novell.com>
19364
19365         * Form.cs:
19366           - Added method to parent window that allows triggering size
19367             calculations when a menu is added/removed
19368           - set_Menu: Cleaned up mess from early days of Form and Control,
19369             now properly triggers a recalc when a menu is added/removed
19370           - Added case to select form itself as focused form if no child
19371             controls exist
19372           - Added PerformLayout call when showing dialog, to ensure properly
19373             placed controls
19374         * Control.cs:
19375           - Select(): Made internal so Form can access it
19376           - Focus(): Only call Xplat layer if required (avoids loop), and sets
19377             status
19378         * Application.cs (Run): Removed hack and calls PerformLayout instead
19379           to trigger calculation when Form becomes visible
19380
19381 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
19382
19383         * ComboBox.cs: fixes for ownerdraw
19384
19385 2005-01-18  Peter Bartok  <pbartok@novell.com>
19386
19387         * TextControl.cs:
19388           - Sentinel is no longer static, each Document gets it's own, this
19389             avoids locking or alternatively overwrite problems when more
19390             than one text control is used simultaneously.
19391           - Switched to use Hilight and HilightText brushes for text selection
19392
19393         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
19394
19395 2005-01-18  Peter Bartok  <pbartok@novell.com>
19396
19397         * Control.cs:
19398           - Hooked up the following events:
19399                 o ControlAdded
19400                 o ControlRemoved
19401                 o HandleDestroyed
19402                 o ImeModeChanged
19403                 o ParentChanged
19404                 o TabStopChanged
19405                 o Invalidated
19406                 o SystemColorsChanged
19407                 o ParentFontChanged
19408                 o Move
19409           - Removed debug output
19410           - Added a call to the current theme's ResetDefaults when a color change
19411             is detected
19412         * Form.cs: Now setting the proper ImeMode
19413         * Theme.cs: Defined a method to force recreation of cached resources
19414           and rereading of system defaults (ResetDefaults())
19415         * ThemeWin32Classic.cs: Added ResetDefaults() stub
19416
19417 2005-01-17  Peter Bartok  <pbartok@novell.com>
19418
19419         * Control.cs: Added missing attributes
19420
19421 2005-01-17  Jackson Harper  <jackson@ximian.com>
19422
19423         * TreeNode.cs: Implement editing. Add missing properties selected
19424         and visible.
19425         * TreeView.cs: Implement node editing. Also some fixes to use
19426         Invalidate (invalid area) instead of Refresh when selecting.
19427
19428 2005-01-17  Peter Bartok  <pbartok@novell.com>
19429
19430         * Control.cs:
19431           - Implemented InvokeGotFocus() method
19432           - Implemented InvokeLostFocus() method
19433           - Implemented InvokePaint() method
19434           - Implemented InvokePaintBackground() method
19435           - Implemented InvokeClick() method
19436           - Implemented FindForm() method
19437           - Implemented RectangleToClient() method
19438           - Implemented ClientToRectangle() method
19439           - Implemented ResetBackColor() method
19440           - Implemented ResetCursor() method
19441           - Implemented ResetFont() method
19442           - Implemented ResteForeColor() method
19443           - Implemented ResetImeMode() method
19444           - Implemented ResetLeftToRight() method
19445           - Implemented ResetText() method
19446           - Implemented Scale() methods
19447           - Implemented ScaleCore() method
19448           - Implemented Update() method
19449           - Removed unused variables
19450           - Stubbed AccessibilityNotifyClients and
19451             ControlAccessibleObject.NotifyClients() methods (dunno what to do
19452             with those yet)
19453           - Now setting proper default for RightToLeft property
19454           - Fixed bug in SetClientSizeCore that would cause windows to get
19455             really big
19456           - Now sending Click/DoubleClick events
19457           - Now selecting controls when left mouse button is clicked on
19458             selectable control
19459         * AccessibleEvents.cs: Added
19460         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
19461         * XplatUIOSX.cs: Stubbed UpdateWindow() method
19462         * XplatUIWin32.cs: Implemented UpdateWindow() method
19463         * XplatUIX11.cs: Implemented UpdateWindow() method
19464         * Form.cs: Removed stray semicolon causing CS0162 warning
19465         * ThemeWin32Classic.cs: Fixed unused variable warnings
19466         * ScrollableControl.cs: Now calls base method for ScaleCore
19467         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
19468           style to avoid interference with internal click handler (which is
19469           different than standard Control click handling)
19470         * RadioButton.cs:
19471           - Now unchecks all sibling radio buttons when control is
19472             selected (Fixes #68756)
19473           - Removed internal tabstop variable, using the one inherited from
19474             Control
19475
19476 2005-01-17  Jackson Harper  <jackson@ximian.com>
19477
19478         * NavigateEventArgs.cs: Fix base type.
19479         * LinkLabel.cs: Sig fix
19480         
19481 2005-01-17  Jackson Harper  <jackson@ximian.com>
19482
19483         * TreeView.cs: Only invalidate the effected nodes bounds when
19484         selecting nodes.
19485
19486 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
19487
19488         * XplatUIWin32.cs: fixes Win32 marshaling
19489         * XplatUIX11.cs: fixes method signature
19490
19491 2005-01-17  Peter Bartok  <pbartok@novell.com>
19492
19493         * XplatUIX11.cs: Clean up resources when we no longer need them
19494
19495 2005-01-17  Peter Bartok  <pbartok@novell.com>
19496
19497         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
19498           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
19499           and DestroyCursor() methods.
19500         * Cursor.cs: Partially implemented, now supports standard cursors;
19501           still contains some debug code
19502         * Cursors.cs: Implemented class
19503         * Control.cs:
19504           - WndProc(): Added handling of WM_SETCURSOR message, setting the
19505             appropriate cursor
19506           - Implemented Cursor property
19507           - Replaced break; with return; more straightforwar and possibly
19508             faster
19509           - Now properly setting the result for WM_HELP
19510         * X11Structs.cs: Added CursorFontShape enum
19511         * XplatUIStructs.cs:
19512           - Added StdCursor enum (to support DefineStdCursor() method)
19513           - Added HitTest enum (to support sending WM_SETCURSOR message)
19514         * XplatUIX11.cs:
19515           - Now sends the WM_SETCURSOR message
19516           - Implemented new cursor methods
19517         * XplatUIOSX.cs: Stubbed new cursor methods
19518         * XplatUIWin32.cs:
19519           - Implemented new cursor methods
19520           - Added GetSystemMetrics function and associated enumeration
19521
19522 2005-01-15  Peter Bartok  <pbartok@novell.com>
19523
19524         * Control.cs:
19525           - WndProc(): Now handles EnableNotifyMessage
19526           - SelectNextControl(): Fixed bug where if no child or sibling
19527             controls exist we looped endlessly
19528
19529 2005-01-14  Jackson Harper  <jackson@ximian.com>
19530
19531         * TreeView.cs: Recalculate the tab pages when a new one is added
19532         so that the proper bounding rects are created.
19533
19534 2005-01-14  Jackson Harper  <jackson@ximian.com>
19535
19536         * TreeView.cs: Draw a gray box instead of a grip in the lower
19537         right hand corner when there are both horizontal and vertical
19538         scroll bars.
19539
19540 2005-01-14  Jackson Harper  <jackson@ximian.com>
19541
19542         * Control.cs: When erasing backgrounds use FromHwnd instead of
19543         FromHdc when there is a NULL wparam. This occurs on the X driver.
19544         * XplatUIX11.cs: Set the wparam to NULL.
19545
19546 2005-01-13  Jackson Harper  <jackson@ximian.com>
19547
19548         * PictureBox.cs: Implement missing methods (except ToString, need
19549         to test that on windows) and events. When visibility is changed we
19550         need to redraw the image because the buffers are killed. When size
19551         is changed refresh if the sizemode needs it.
19552
19553 2005-01-13  Peter Bartok  <pbartok@novell.com>
19554
19555         * Control.cs (SelectNextControl): Was using wrong method to select
19556           a control
19557
19558 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
19559
19560         * ComboBox.cs: fixes dropstyle
19561
19562 2005-01-13  Peter Bartok  <pbartok@novell.com>
19563
19564         * Form.cs:
19565           - Implemented Select() override
19566           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
19567           - Now sets keyboard focus on startup
19568         * Control.cs (SelectNextControl): Now properly handles directed=true
19569         * TextBoxBase.cs:
19570           - WndProc: Now passes tab key on to base if AcceptTabChar=false
19571           - Added (really bad) focus rectangle (mostly for testing)
19572         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
19573           to enforce redraw on focus changes
19574         * ContainerControl.cs:
19575           - Fixed detection of Shift-Tab key presses
19576           - Fixed traversal with arrow keys
19577         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
19578           gonna keep this or if it's complete yet
19579         
19580 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
19581
19582         * ComboBox.cs: missing properties, fixes
19583
19584 2005-01-13  Peter Bartok  <pbartok@novell.com>
19585
19586         * Panel.cs (ctor): Setting Selectable window style to off
19587         * Splitter.cs (ctor): Setting Selectable window style to off
19588         * GroupBox.cs (ctor): Setting Selectable window style to off
19589         * Label.cs (ctor): Setting Selectable window style to off
19590
19591 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
19592
19593         * UpDownBase.cs (InitTimer): If the timer has been already
19594         created, enable it.
19595
19596         Use a TextBox instead of a Label.
19597
19598 2005-01-12  Jackson Harper  <jackson@ximian.com>
19599
19600         * TreeView.cs: Refresh the tree after sorting the nodes. Always
19601         draw the connecting node lines (when ShowLines is true).
19602         * TreeNode.cs: The nodes index can now be updated. This is used
19603         when a node collection is sorted.
19604         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
19605         insert or an existing unsorted node collection can be sorted.
19606         
19607 2005-01-12  Peter Bartok  <pbartok@novell.com>
19608
19609         * ContainerControl.cs: Implemented ProcessDialogKeys()
19610
19611 2005-01-12  Peter Bartok  <pbartok@novell.com>
19612
19613         * Control.cs:
19614           - Implemented SelectNextControl() method
19615           - Several focus related bug fixes
19616           - Fixed Docking calculations to match MS documentation and
19617             behaviour
19618
19619 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
19620
19621         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
19622         bug fixes
19623
19624 2005-01-12  Peter Bartok  <pbartok@novell.com>
19625
19626         * Control.cs:
19627           - Fixed broken Contains() method
19628           - Implemented GetNextControl() method. Finally. This is the pre-
19629             requisite for focus handling.
19630
19631 2005-01-12  Peter Bartok  <pbartok@novell.com>
19632
19633         * OSXStrucs.cs: Added
19634
19635 2005-01-12  Peter Bartok  <pbartok@novell.com>
19636
19637         * XplatUIWin32.cs:
19638           - Removed PeekMessageFlags
19639           - Implemented SetWindowStyle() method
19640         * XplatUIStructs.cs: Added PeekMessageFlags
19641         * X11Structs: Added missing border_width field to XWindowChanges struct
19642         * XplatUIX11.cs:
19643           - PeekMessage: Now throws exception if flags which are not yet
19644             supported are passed
19645           - Implemented SetWindowStyle() method
19646           - Fixed SetZOrder to handle AfterHwnd properly
19647         * XplatUI.cs: Added SetWindowStyle() method
19648         * XplatUIDriver.cs: Added SetWindowStyle() abstract
19649         * Control.cs:
19650           - Implemented UpdateStyles() method
19651           - Implemented UpdateZOrder() method
19652         * XplatUIOSX.cs: Added SetWindowStyle() stub
19653
19654 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
19655
19656         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
19657         button mouse).
19658
19659
19660 2005-01-11  Jackson Harper  <jackson@ximian.com>
19661
19662         * TreeView.cs: Still need to draw lines to siblings even if out of
19663         the current node is out of the clip.
19664
19665 2005-01-11  Jackson Harper  <jackson@ximian.com>
19666
19667         * TreeView.cs: When setting the hbar/vbar/grip position use
19668         SetBounds so that perform layout is only called once. Also suspend
19669         and resume layout so layout is only done once for all controls.
19670         - Removed some debug fluff
19671         * SizeGrip.cs: Call base implmentation in overriding methods.
19672         - When visibility is changed the drawing buffers are killed so we
19673         need to redraw.
19674
19675 2005-01-11  Jackson Harper  <jackson@ximian.com>
19676
19677         * TreeView.cs: Calculate the open node count while drawing. This
19678         saves us an entire tree traversal for every paint operation. Use
19679         a member var for the open node count so less vars are passed around.
19680
19681 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
19682
19683         * MonthCalendar.cs:
19684         - fixed selection to use mousemove, not mouse polling on timer
19685         * ThemeWin32Classic.cs
19686         - removed redundant unused variable "no_more_content"
19687         
19688 2005-01-11  Peter Bartok  <pbartok@novell.com>
19689
19690         * XplatUIX11.cs (DoEvents): Needs to return when no more events
19691           are pending, so it now calls PeekMessage instead of GetMessage;
19692           implemented a incomplete version of PeekMessage
19693         
19694 2005-01-11  Peter Bartok  <pbartok@novell.com>
19695
19696         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
19697           I18n issues
19698         * TextBoxBase.cs: Added sending of TextChanged event
19699
19700 2005-01-10  Jackson Harper  <jackson@ximian.com>
19701
19702         * TreeView.cs: Try not to draw outside the clipping rectangle on
19703         each node element.
19704
19705 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
19706
19707         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
19708
19709 2005-01-10  Jackson Harper  <jackson@ximian.com>
19710
19711         * TreeView.cs:
19712         - Implement fast scrolling. Now only the newly
19713         exposed nodes are drawn and the old image is moved using the
19714         XplatUI::ScrollWindow method.
19715         - Factor in height of nodes when calculating whether or not the
19716         node is in the clipping rect.
19717
19718 2005-01-10  Jackson Harper  <jackson@ximian.com>
19719
19720         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
19721
19722 2005-01-10  Peter Bartok  <pbartok@novell.com>
19723
19724         * Application.cs: Added temporary hack to resolve all our resize
19725           required issues on startup. This will get fixed properly at
19726           some point in the future
19727
19728 2005-01-10  Jackson Harper  <jackson@ximian.com>
19729
19730         * SizeGrip.cs: New internal class that is used as a sizing
19731         grip control...hence the name.
19732
19733 2005-01-10  Peter Bartok  <pbartok@novell.com>
19734
19735         * Control.cs: Implemented proper TabIndex handling, now assigning
19736           a tabindex when a control is added to a container
19737         * GroupBox.cs (ctor): Now sets the Container style bit, required
19738           for Control.GetNextControl()
19739
19740 2005-01-09  Jackson Harper  <jackson@ximian.com>
19741
19742         * TextBoxBase.cs: Clear window when scrolling (fixes build).
19743
19744 2005-01-09  Peter Bartok <pbartok@novell.com>
19745
19746         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
19747           XplatUIX11.cs: Added ability to control ScrollWindow expose and
19748           an overload for ScrollWindow to allow only scrolling a rectangle
19749
19750 2005-01-09  Peter Bartok <pbartok@novell.com>
19751
19752         * Form.cs:
19753           - Implemented SetDesktopBounds method
19754           - Implemented SetDesktopLocation method
19755
19756 2005-01-08  Jackson Harper  <jackson@ximian.com>
19757
19758         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
19759         the node count has changed, this removes to VScroll::Refresh calls
19760         when drawing.
19761
19762 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
19763
19764         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
19765
19766 2005-01-07  Jackson Harper  <jackson@ximian.com>
19767
19768         * TreeNode.cs: Just update the single node when it is
19769         checked. Don't refresh after toggling, the Expand/Collapse already
19770         handles this.
19771         * TreeView.cs: Respect clipping a little more when drawing. Try
19772         not to redraw things that don't need to be redrawn. Just hide the
19773         scrollbars when they are no longer needed instead of removing
19774         them, so they don't have to be created again and again.
19775         
19776 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
19777
19778         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
19779         coordinates to window space to place the caret properly, FIXED.
19780         Implement GetWindowState & SetWindowState
19781
19782 2005-01-06  Peter Bartok <pbartok@novell.com>
19783
19784         * Form.cs:
19785           - Implemented ClientSize property
19786           - Implemented DesktopBounds property
19787           - Implemented DesktopLocation property
19788           - Implemented IsRestrictedWindow property
19789           - Implemented Size property
19790           - Implemented TopLevel property
19791           - Implemented FormWindowState property
19792         * Control.cs:
19793           - Implemented GetTopLevel() method
19794           - Implemented SetTopLevel() method
19795         * X11Structs.cs (Atom):
19796           - Added AnyPropertyType definition
19797           - Added MapState definiton and updated XWindowAttribute struct
19798         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
19799         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
19800         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
19801         * XplatUIWin32.cs:
19802           - Implemented GetWindowState() and SetWindowState() methods
19803           - Fixed Win32GetWindowLong return type
19804         * XplatUIX11.cs:
19805           - Introduced central function for sending NET_WM messages
19806           - Implemented GetWindowState() and SetWindowState() methods
19807         * TextBoxBase.cs (set_Lines):
19808           - Now uses Foreground color for text added via Text property (Duh!)
19809           - Added code to remember programmatically requested size (fixes
19810             behaviour when Multiline is set after Size)
19811           - Added AutoSize logic
19812
19813 2005-01-06  Jackson Harper  <jackson@ximian.com>
19814
19815         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
19816
19817 2005-01-06  Jackson Harper  <jackson@ximian.com>
19818
19819         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
19820         set to less then 0.
19821
19822 2005-01-06  Jackson Harper  <jackson@ximian.com>
19823
19824         * ScrollableControl.cs: Lazy init the scrollbars.
19825         
19826 2005-01-06  Jackson Harper  <jackson@ximian.com>
19827
19828         * Theme.cs: Speed up getting pens and solid brushes, by using
19829         their ARGB as a hash instead of tostring and not calling Contains.
19830
19831 2005-01-06  Peter Bartok <pbartok@novell.com>
19832
19833         * Form.cs:
19834           - Implemented OnActivated and OnDeactivate event trigger
19835           - Implemented Activate() method
19836           - Fixed ShowDialog() to activate the form that was active before
19837             the dialog was shown
19838         * XplatUIX11.cs:
19839           - Added global active_window var that tracks the currently active
19840             X11 window
19841           - Now always grabs Property changes from the root window to always
19842             catch changes on the active window property
19843           - Added code to PropertyNotify handler to send Active/Inactive
19844             messages when state changes. This puts X11 and Win32 en par on
19845             WM_ACTIVATE notifications (except for double notifications when
19846             the user clicks away from our modal window to another one of our
19847             windows)
19848
19849 2005-01-05  Jackson Harper  <jackson@ximian.com>
19850
19851         * ImageList.cs: Implment ctor
19852
19853 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
19854
19855         * XplatUIOSX.cs: Implement Activate/SetTopmost
19856
19857 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
19858
19859         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
19860
19861 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
19862
19863         * XplatUIOSX.cs: Implement GetActive/SetFocus.
19864
19865 2005-01-05  Peter Bartok <pbartok@novell.com>
19866
19867         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
19868           XplatUIOSX.cs: Added GetActive method to return the currently
19869           active window for the application (or null, if none is active)
19870         * Form.cs:
19871           - Implemented ActiveForm
19872           - Commented out owner assignment for modal dialogs (causes problems
19873             on Win32, since the owner will be disabled)
19874           - Reworked some Active/Focus handling (still incomplete)
19875         * CommonDialog.cs: Commented out owner assignment for modal dialogs
19876           (causes problems on Win32, since the owner will be disabled)
19877         * IWin32Window: Added ComVisible attribute
19878
19879 2005-01-05  Peter Bartok <pbartok@novell.com>
19880
19881         * ToolTip.cs (WndProc): Enable setting focus now that we have the
19882           required XplatUI functions.
19883
19884 2005-01-05  Peter Bartok <pbartok@novell.com>
19885
19886         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
19887           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
19888           to implement focus and activation handling; still incomplete and
19889           with debug output
19890
19891 2005-01-04  Peter Bartok <pbartok@novell.com>
19892
19893         * TextBoxBase.cs: Changed access level for Document property to
19894           match switch to internal for TextControl
19895
19896 2005-01-04  Peter Bartok <pbartok@novell.com>
19897
19898         * AccessibleObject: Added ComVisible attribute
19899
19900 2005-01-04  Jackson Harper  <jackson@ximian.com>
19901
19902         * X11Keyboard.cs: Remove unneeded var.
19903
19904 2005-01-04  Jackson Harper  <jackson@ximian.com>
19905
19906         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
19907         but PAINT.
19908         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
19909         ClientMessage. This makes apps exit cleanly (more often).
19910         
19911 2005-01-04  Jackson Harper  <jackson@ximian.com>
19912
19913         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
19914         handling focus, return correct colors and fonts,
19915         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
19916         handle selection, horizontal scrolling, and mouse interaction.
19917
19918 2005-01-04  Peter Bartok <pbartok@novell.com>
19919
19920         * ICommandExecutor.cs: Added
19921         * IDataGridColumnStyleEditingNotificationService.cs: Added
19922         * IFeatureSupport.cs: Added
19923         * IFileReaderService.cs: Added
19924         * IDataObject.cs: Added ComVisible attribute
19925         * AmbientProperties.cs: Added
19926         * BaseCollection.cs: Added missing attributes
19927         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
19928         * BaseCollection.cs: Added missing attributes
19929         * Binding.cs: Added TypeConverter attribute
19930         * BindingContext.cs: Added DefaultEvent attribute
19931         * BindingsCollection.cs: Added DefaultEvent attribute
19932         * Button.cs: Added DefaultValue attribute
19933         * DragEventArgs.cs: Added ComVisible attribute
19934         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
19935         * KeyEventArgs.cs: Added ComVisible attribute
19936         * KeyPressEventArgs.cs: Added ComVisible attribute
19937         * MouseEventArgs.cs: Added ComVisible attribute
19938         * NavigateEventArgs.cs: Added
19939         * NavigateEventHandler.cs: Added
19940         * FeatureSupport.cs: Added
19941         * OSFeature.cs: Added
19942         * Theme.cs: Added abstract Version property to support OSFeature
19943         * ThemeWin32Classic.cs: Added Version property to
19944           support OSFeature.Themes
19945         * ProgressBar.cs: Removed OnPaintBackground override, not required since
19946           the proper styles to avoid background drawing are set, also doesn't
19947           match MS signature
19948         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
19949         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
19950         * ScrollEventArgs.cs: Added ComVisible attribute
19951         * SplitterEventArgs.cs: Added ComVisible attribute
19952         * AccessibleSelection.cs: Added Flags attribute
19953         * Appearance.cs: Added ComVisible attribute
19954         * Border3DSide.cs: Added ComVisible attribute
19955         * Border3DStyle.cs: Added ComVisible attribute
19956         * BorderStyle.cs: Added ComVisible attribute
19957         * DragAction.cs: Added ComVisible attribute
19958         * ErrorBlinkStyle.cs: Added
19959         * ScrollEventType.cs: Added ComVisible attribute
19960         * AnchorStyles.cs: Added Editor attribute
19961         * DockStyle.cs: Added Editor attribute
19962         * HorizontalAlignment.cs: Added ComVisible attribute
19963         * HelpEventArgs.cs: Added ComVisible attribute
19964         * PaintEventArgs.cs: Added IDisposable
19965
19966 2005-01-04  Peter Bartok <pbartok@novell.com>
19967
19968         * TextControl.cs: Switched Line, LineTag and Document classes to
19969           internal
19970
19971 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
19972
19973         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
19974         Simple mode, fixes, IntegralHeight, etc.
19975
19976 2005-01-04  Peter Bartok <pbartok@novell.com>
19977
19978         * TextBoxBase.cs: Using proper font variable now
19979
19980 2005-01-04  Peter Bartok <pbartok@novell.com>
19981
19982         * Form.cs (ShowDialog): Set parent to owner, if provided
19983         * GroupBox.cs: Removed unused vars
19984         * TextControl.cs:
19985           - Added GetHashCode() for Document and LineTag classes
19986           - Removed unused variables
19987           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
19988             to allow translation between continuous char position and line/pos
19989         * CheckBox.cs: Removed vars that are provided by base class
19990         * RadioButton.cs: Removed vars that are provided by base class, added
19991           new keyword where required
19992         * LinkLabel.cs: Added new keyword where required
19993         * Control.cs (WndProc): Removed unused variable
19994         * TextBoxBase.cs:
19995           - Finished SelectionLength property
19996           - Implemented SelectionStart property
19997           - Implemented Text property
19998           - Removed unused vars
19999         * MessageBox.cs: Added new keyword where required
20000         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
20001           WndProc signature
20002         * MenuAPI.cs: Added new keyword where required
20003         * ButtonBase.cs: Removed vars that are provided by base class, added
20004           new keyword where required
20005         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
20006           argument to double, to allow compiling with csc 2.0 (Atsushi ran
20007           into this)
20008         * Application.cs (Run): Now triggers the ThreadExit event
20009         * CommonDialog.cs: Added new keyword where required; now properly sets
20010           parent (owner) for dialog
20011         * XplatUIX11.cs: Commented out unused vars
20012         * StatusBar.cs: Fixed signature for Text property
20013         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
20014
20015 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
20016
20017         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
20018         TrackBar.cs, MonthCalendar.cs: remove unused vars
20019
20020 2005-01-03  Jackson Harper  <jackson@ximian.com>
20021
20022         * ThemeWin32Classic.cs:
20023         * X11Keyboard.cs: Remove unused vars.
20024
20025 2005-01-03  Peter Bartok  <pbartok@novell.com>
20026
20027         * TextBox.cs:
20028           - set_Text: Tied into TextControl
20029           - set_TextAlignment: Tied into TextControl
20030         * TextControl.cs:
20031           - Added alignment properties and implemented alignment handling
20032             and drawing (still has a bug, not generating proper expose events)
20033           - Added new Line() constructor to allow passing the line alignment
20034           - Fixed selection setting, properly handling end<start now
20035           - Added aligment considerations to RecalculateDocument()
20036         * TextBoxBase.cs:
20037           - Now properly enforces control height for single line controls
20038           - Added support for CharacterCasing
20039           - Added IsInputKey override
20040           - Fixed Keys.Enter logic
20041           - Added SetBoundsCore override
20042           - Fixed mouse selection handling
20043
20044 2005-01-03  Jackson Harper  <jackson@ximian.com>
20045
20046         * TreeView.cs:
20047           - Collapse and uncheck all nodes when CheckBoxes is disabled.
20048           - Checkboxes are always aligned to the bottom of the node,
20049           regardless of item height.
20050           - Use the node bounds to draw the text so we can center it when
20051           the item height is greater then the font height.
20052           - Node::Bounds are only the text part of the node.
20053         * TreeNode.cs: New method to combine collapsing and unchecking all
20054           nodes recursively.
20055
20056 2005-01-02  Jackson Harper  <jackson@ximian.com>
20057
20058         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
20059         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
20060         tree when a check is changed. TODO: Only refresh the checked node.
20061
20062 2004-12-30  Jackson Harper  <jackson@ximian.com>
20063
20064         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
20065         * TreeNode.cs: When collapsing make sure to never collapse the
20066         root node.
20067
20068 2004-12-29  Jackson Harper  <jackson@ximian.com>
20069
20070         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
20071         
20072 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
20073
20074         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
20075
20076 2004-12-28  Peter Bartok  <pbartok@novell.com>
20077
20078         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
20079           not yet assigned
20080
20081 2004-12-28  Peter Bartok  <pbartok@novell.com>
20082
20083         * Control.cs (WndProc): Added WM_HELP handler, now generates
20084           HelpRequested event
20085         * Form.cs: Added HelpButton property and required support code
20086         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
20087
20088 2004-12-28  Peter Bartok  <pbartok@novell.com>
20089
20090         * CommonDialog.cs:
20091           - Made DialogForm.owner variable internal
20092           - Added check to ensure owner form is set before setting
20093             owner properties in CreateParams
20094
20095 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
20096
20097         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
20098           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
20099           GetCursorPos.  Fix major visibility issues.  Rework the windowing
20100           system to support borderless/titleless windows (implements menus).
20101           Fix GetWindowPos.  Implement initial background color support for
20102           views.
20103
20104 2004-12-28  Peter Bartok  <pbartok@novell.com>
20105
20106         * Form.cs (get_CreateParams): Make sure we have an owner before using
20107           the owner variable. Implement proper default if no owner exists
20108
20109 2004-12-28  Peter Bartok  <pbartok@novell.com>
20110
20111         * In preparation for making Managed.Windows.Forms the default build target
20112           for System.Windows.Forms, the following stubbed files were added.
20113           Dialogs are currently being implemented by contributors and are only
20114           short-term place holders.
20115         * ColorDialog.cs: Initial check-in (minmal stub)
20116         * DataGrid.cs: Initial check-in (minimal stub)
20117         * DataGridLineStyle.cs: Initial check-in (minimal stub)
20118         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
20119         * DataGridTableStyle.cs: Initial check-in (minimal stub)
20120         * FontDialog.cs: Initial check-in (minimal stub)
20121         * FileDialog.cs: Initial check-in (minimal stub)
20122         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
20123         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
20124         * OpenFileDialog: Initial check-in (minimal stub)
20125         * IComponentEditorPageSite.cs: Initial check-in
20126         * Splitter.cs: Initial check-in (for Jackson)
20127         * SplitterEventArgs.cs: Initial check-in (for Jackson)
20128         * SplitterEventHandler.cs: Initial check-in (for Jackson)
20129         * TextBox.cs: Initial check-in; still needs some wiring to
20130           TextControl backend
20131         * Form.cs: Implemented ControlBox property
20132         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
20133         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
20134         * TextControl.cs: Added selection functionality; added todo header
20135         * TextBoxBase.cs:
20136           - Implemented Lines property
20137           - Implemented TextHeight property
20138           - Implemented SelectedText property
20139           - Implemented SelectionLength property
20140           - Implemented SelectAll method
20141           - Implemented ToString method
20142           - Removed and cleaned up some debug code
20143           - Implemented (still buggy) mouse text selection
20144
20145 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
20146
20147         * ComboBox.cs: Complete DropDownList implementation, fixes.
20148
20149 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
20150
20151         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
20152         * ComboBoxStyle.cs: ComboBoxStyle enum
20153         * ComboBox.cs: Initial work on ComboBox control
20154
20155 2004-12-21  Peter Bartok  <pbartok@novell.com>
20156
20157         * Control.cs (ctor, CreateParams): Moved setting of is_visible
20158           forward so that anything that creates a window gets the default,
20159           also no longer uses Visible property in CreateParams to avoid
20160           walking up the parent chain and possibly get the wrong visible
20161           status. Fixed IsVisible to no longer walk up to the parent.
20162
20163 2004-12-21  Peter Bartok  <pbartok@novell.com>
20164
20165         * Form.cs (ShowDialog): Unset modality for the proper window
20166  
20167 2004-12-20  Peter Bartok  <pbartok@novell.com>
20168
20169         * CommonDialog.cs: Initial check-in
20170
20171 2004-12-20  Peter Bartok  <pbartok@novell.com>
20172
20173         * Control.cs (Visible): Now uses the parent window instead of the
20174           client area window for the property
20175
20176         * Form.cs
20177           - ShowDialog(): Now uses the proper window for modality
20178           - The default visibility state for the form parent is now false. This
20179             will prevent the user from seeing all the changes to the form and
20180             its controls before the application hits Application.Run()
20181           - Removed some stale commented out code
20182
20183         * NativeWindow.cs:
20184           - Added FindWindow() method to have a method to check for existence
20185             of a window handle
20186           - Added ability to override default exception handling (for example
20187             when debugging with VS.Net; to do this the ExternalExceptionHandler
20188             define must be set
20189           - Removed some useless debug output
20190
20191         * XplatUIX11.cs:
20192           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
20193             not working as expected
20194           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
20195             property to allow switching back to the modal window if focus is
20196             given to another one of our windows (Application Modal)
20197           - Now only sets override_redirect if we create a window
20198             without WS_CAPTION
20199           - Moved EventMask selection before mapping of newly created window
20200             so we can catch the map event as well
20201           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
20202           - Added various Atom related DllImports
20203           - Implemented Exit() method
20204           - .ctor() : No longer shows window if WS_VISIBLE is not defined
20205             in the CreateParams
20206
20207         * MessageBox.cs: Now properly deals with the FormParent window by
20208           providing an override the FormParent CreateParams property to
20209           set as POPUP instead of OVERLAPPED window.
20210
20211 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
20212
20213         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
20214         Minor code cleanup.
20215
20216 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
20217         
20218         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
20219
20220 2004-12-18  Peter Bartok  <pbartok@novell.com>
20221
20222         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
20223           implementing SetModal() method
20224
20225 2004-12-18  Peter Bartok  <pbartok@novell.com>
20226
20227         * X11Structs.cs (XGCValues): Fixed type of function element
20228         * XplatUI.cs: Added ScrollWindow() method
20229         * XplatUIDriver.cs: Added ScrollWindow() abstract
20230         * XplatUIWin32.cs: Implemented ScrollWindow() method
20231         * XplatUIX11.cs: Implemented ScrollWindow() method
20232         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
20233
20234 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
20235
20236         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
20237         Some more keyboard support (INCOMPLETE)
20238
20239 2004-12-17  Peter Bartok  <pbartok@novell.com>
20240
20241         * TextControl.cs:
20242         - Added color attribute to line tags.
20243         - Added color argument to all functions dealing with tags
20244         - Added color argument support to various functions
20245         - Fixed miss-calculation of baseline/shift in certain circumstances
20246
20247         * TextBoxBase.cs: Added new color option to test code
20248
20249 2004-12-17  Jackson Harper  <jackson@ximian.com>
20250
20251         * TreeNode.cs:
20252         * MonthCalendar.cs: Signature fixes
20253
20254 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
20255
20256         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
20257         keyboard event moved it.  Create a new graphics context for each paint resolves this
20258
20259 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
20260
20261         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
20262         Make caret exist and go blink blink.  Initial keyboard support.
20263         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
20264         works.
20265
20266 2004-12-17  Jackson Harper  <jackson@ximian.com>
20267
20268         * XplatUIStructs.cs: Updated set of virtual keycodes.
20269         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
20270
20271 2004-12-17  Jackson Harper  <jackson@ximian.com>
20272
20273         * XplatUIX11.cs: Prune old keyboard code.
20274
20275 2004-12-17  Jackson Harper  <jackson@ximian.com>
20276
20277         * XplatUIX11.cs: When generating mouse wparams get the modifier
20278         keys from the ModifierKeys property.
20279
20280 2004-12-17  Jackson Harper  <jackson@ximian.com>
20281
20282         * X11Keyboard.cs: Send up/down input when generating
20283         messages. Remove some unused vars.
20284
20285 2004-12-17  Jackson Harper  <jackson@ximian.com>
20286
20287         * TabControl.cs:
20288         * TreeView.cs: get rid of warnings.
20289
20290 2004-12-17  Jackson Harper  <jackson@ximian.com>
20291
20292         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
20293
20294 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
20295
20296         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
20297           CheckedListBox.cs: Implementation
20298
20299 2004-12-17  Peter Bartok  <pbartok@novell.com>
20300
20301         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
20302
20303 2004-12-16  Peter Bartok  <pbartok@novell.com>
20304
20305         * TextControl.cs:
20306           - InsertCharAtCaret(): Fixed start pos fixup
20307           - CaretLine_get: No longer derives the line from the tag, the tag
20308             could be stale if lines in the document have been added or deleted
20309           - RebalanceAfterDelete(): Fixed bug in balancing code
20310           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
20311           - Line.Streamline(): Now can also elminate leading empty tags
20312           - DumpTree(): Added a few more tests and prevented exception on
20313             uninitialized data
20314           - Added Debug section for Combining lines
20315           - Delete(): Now copies all remaining properties of a line
20316           
20317         * TextBoxBase.cs:
20318           - Left mousebutton now sets the caret (and middle button still acts
20319             as formatting tester, which must go away soon)
20320           - Added Debug section for Deleting/Combining lines
20321           - Fixed calculations for UpdateView after Combining lines
20322
20323 2004-12-16  Peter Bartok  <pbartok@novell.com>
20324
20325         * TextControl.cs: Now properly aligns text on a baseline, using the
20326           new XplatUI.GetFontMetrics() method. Simplified several calculations
20327         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
20328           defined
20329
20330 2004-12-16  Peter Bartok  <pbartok@novell.com>
20331
20332         * XplatUI.cs: Added GetFontMetrics() method
20333         * XplatUIDriver.cs: Added GetFontMetrics() abstract
20334         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
20335           into libgdiplus, our private GetFontMetrics function
20336         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
20337         * XplatUIWin32.cs: Implemented GetFontMetrics() method
20338
20339 2004-12-16  Jackson Harper  <jackson@ximain.com>
20340
20341         * XplatUIStruct.cs: Add enum for dead keys
20342         * X11Keyboard.cs: Map and unmap dead keys.
20343
20344 2004-12-16  Jackson Harper  <jackson@ximian.com>
20345
20346         * X11Keyboard.cs: Detect and use the num lock mask.
20347
20348 2004-12-16  Peter Bartok  <pbartok@novell.com>
20349
20350         * Control.cs (CreateGraphics): Added check to make sure the
20351           handle of the window exists before calling Graphics.FromHwnd()
20352
20353 2004-12-16  Peter Bartok  <pbartok@novell.com>
20354
20355         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
20356           contains a lot of code that's not supposed to be there for the
20357           real thing, but required for developing/testing the textbox
20358           backend.
20359
20360 2004-12-16  Peter Bartok  <pbartok@novell.com>
20361
20362         * TextControl.cs:
20363         - Fixed Streamline method
20364         - Added FindTag method to Line
20365         - Added DumpTree method for debugging
20366         - Added DecrementLines() method for deleting lines
20367         - Fixed UpdateView to update the cursor to end-of-line on single-line
20368           updates
20369         - Added PositionCaret() method
20370         - Fixed MoveCaret(LineDown) to move into the last line, too
20371         - Added InsertChar overload
20372         - Fixed InsertChar tag offset calculations
20373         - Added DeleteChar() method
20374         - Added Combine() method for folding lines
20375         - Fixed Delete() method, no longer allocates wasted Line object and
20376           now copies all properties when swapping nodes
20377         - Delete() method now updates document line counter
20378
20379 2004-12-15  Jackson Harper  <jackson@ximian.com>
20380
20381         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
20382         * X11Keyboard.cs: Expose the currently selected modifier keys
20383         through a property.
20384
20385 2004-12-15  Peter Bartok  <pbartok@novell.com>
20386
20387         * TextControl.cs: Initial check-in. Still incomplete
20388
20389 2004-12-15  Jackson Harper  <jackson@ximian.com>
20390
20391         * TreeNode.cs:
20392         * TreeView.cs: Fix build on csc (second time today ;-))
20393
20394 2004-12-15  Jackson Harper  <jackson@ximian.com>
20395
20396         * TreeView.cs: Store the treenodes plus/minus box bounds when it
20397         is calculated and use this for click testing.
20398         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
20399
20400 2004-12-15  Jackson Harper  <jackson@ximian.com>
20401
20402         * TreeView.cs: Pass the nodes image index to the image list when
20403         drawing that image.
20404
20405 2004-12-15  Jackson Harper  <jackson@ximian.com>
20406
20407         * X11Keyboard.cs: Set messages hwnd.
20408         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
20409         post_message calls.
20410
20411 2004-12-15  Jackson Harper  <jackson@ximian.com>
20412
20413         * X11Keyboard.cs: Fix to compile with csc.
20414         
20415 2004-12-15  Jackson Harper  <jackson@ximian.com>
20416
20417         * X11Structs.cs: Add key mask values
20418         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
20419         * X11Keyboard.cs: New file - Extrapolates and interpolates key
20420         down/up foo into WM_CHAR foo
20421         * KeyboardLayouts.cs: Common keyboard layouts
20422         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
20423         post messages into the main queue.
20424
20425 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
20426
20427         * Button.cs: implement ProcessMnemonic
20428         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
20429           brushes everytime
20430         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
20431         * ButtonBase.cs: Show HotkeyPrefix (not the &)
20432
20433 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
20434         
20435         * MonthCalendar.cs: Implemented click-hold for next/previous month
20436           and date selection
20437           
20438 2004-12-11  Peter Bartok  <pbartok@novell.com>
20439
20440         * X11Structs.cs:
20441           - Added XKeyboardState (moved from XplatUIX11.cs)
20442           - Added XCreateGC related enums and structures
20443           - Added GXFunction for XSetFunction
20444
20445         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
20446
20447         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
20448           CaretVisible() calls
20449
20450         * ToolTip.cs: Added code to prevent stealing focus from app windows
20451
20452         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
20453           DestroyCaret, SetCaretPos and CaretVisible)
20454
20455         * XplatUIX11.cs:
20456           - Added implementation for caret functions
20457           - Moved hover variables into a struct, to make it a bit easier
20458             on the eyes and to debug
20459           - Removed XKeyboardState (moved to XplatUIX11.cs)
20460           - Moved Keyboard properties into the properties region
20461
20462         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
20463           call to get a graphics context for our control
20464
20465         * XplatUIOSX.cs: Added empty overrides for the new caret functions
20466
20467         * TreeView.cs: Fixed bug. No matter what color was set it would always
20468           return SystemColors.Window
20469
20470         * XplatUIWin32.cs: Implemented caret overrides
20471
20472 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
20473
20474         * ListBox.cs: fire events, implement missing methods and properties,
20475         sorting.
20476
20477 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
20478
20479         * MonthCalendar.cs: invalidation bug fixing
20480         * ThemeWin32Classic.cs: paint fixing
20481
20482 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
20483
20484         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
20485         prepare the CGContextRef there now.
20486
20487 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
20488
20489         * MonthCalendar.cs:
20490           - optimisationL only invalidate areas that have changed
20491         * ThemeWin32Classic.cs:
20492           - only paint parts that intersect with clip_area
20493
20494 2004-12-09  Peter Bartok  <pbartok@novell.com>
20495
20496         * Application.cs: Undid changes from r37004 which cause problems
20497         on X11
20498
20499 2004-12-09  Ravindra  <rkumar@novell.com>
20500
20501         * ToolBar.cs: Added support for displaying ContextMenu
20502         attached to a button on ToolBar.
20503         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
20504         property.
20505
20506 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
20507
20508         * Label.cs: autosize works in text change and removes unnecessary
20509         invalidate
20510
20511 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
20512
20513         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
20514         remove warnings
20515
20516 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
20517
20518         * XplatUIOSX.cs: Added mouse move/click/grab support
20519         Remove some debugging WriteLines not needed anymore.
20520         Add window resizing/positioning.
20521         Fix visibility on reparenting.
20522
20523 2004-12-08  Peter Bartok  <pbartok@novell.com>
20524
20525         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
20526
20527 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
20528
20529         * XplatUIOSX.cs: Initial checkin
20530         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
20531
20532 2004-12-03  Ravindra <rkumar@novell.com>
20533
20534         * ListView.cs: Added some keybindings and fixed scrolling.
20535         ScrollBars listen to ValueChanged event instead of Scroll
20536         Event. This would let us take care of all changes being
20537         done in the scrollbars' values programmatically or manually.
20538         * ListView.cs (CanMultiselect): Added a check for shift key.
20539         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
20540         * ListViewItem.cs (Clone): Fixed. We need to make a copy
20541         of ListViewSubItemCollection as well.
20542
20543 2004-12-06  Peter Bartok <pbartok@novell.com>
20544
20545         * Control.cs (Parent): Added check and exception to prevent
20546         circular parenting
20547
20548 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
20549
20550         * ListBox.cs: implemented clipping, selection single and multiple,
20551         bug fixing
20552
20553 2004-12-03  Ravindra <rkumar@novell.com>
20554
20555         * ListView.cs (ListView_KeyDown):
20556         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
20557         when CTRL key is pressed.
20558         * ListViewItem.cs (Selected): Fixed setting the property.
20559
20560 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
20561
20562         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
20563
20564         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
20565         MinimizeBox, ShowInTaskbar, TopMost properties.
20566
20567         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
20568         will be implemented).
20569
20570 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
20571
20572         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
20573
20574         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
20575         tests.
20576         
20577         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
20578         
20579         * TreeView.cs: BackColor is Colors.Window.
20580
20581 2004-12-01  Jackson Harper  <jackson@ximian.com>
20582
20583         * TreeView.cs: When resizing the tree if the user is making it
20584         smaller we don't get expose events, so we need to handle adding
20585         the horizontal scrollbar in the size changed handler as well as
20586         the expose handler.
20587
20588 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
20589
20590         * DrawItemState.cs: fixes wrong enum values
20591
20592 2004-12-01  Jackson Harper  <jackson@ximian.com>
20593
20594         * TreeView.cs: Resize the hbar as well as the vbar on resize.
20595
20596 2004-12-01  Jackson Harper  <jackson@ximian.com>
20597
20598         * NodeLabelEditEventArgs.cs:
20599         * NodeLabelEditEventHandler.cs:
20600         * OpenTreeNodeEnumerator.cs:
20601         * TreeNode.cs:
20602         * TreeNodeCollection.cs:
20603         * TreeView.cs:
20604         * TreeViewAction.cs:
20605         * TreeViewCancelEventArgs.cs:
20606         * TreeViewCancelEventHandler.cs:
20607         * TreeViewEventArgs.cs:
20608         * TreeViewEventHandler.cs: Initial implementation.
20609
20610 2004-12-01  Ravindra <rkumar@novell.com>
20611
20612         * ListView.cs (CalculateListView): Fixed scrolling related
20613         calculations. Also, removed some debug statements from other
20614         places.
20615         * ListViewItem.cs: Changed access to 'selected' instance variable
20616         from private to internal.
20617         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
20618
20619 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
20620
20621         * ThemeWin32Classic.cs: remove cache of brush and pens for
20622         specific controls and use the global system, fixes scrollbutton
20623         bugs (for small sizes, disabled, etc)
20624         
20625         * ScrollBar.cs: does not show the thumb for very small controls
20626         (as MS) and allow smaller buttons that the regular size
20627
20628 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
20629
20630         * UpDownBase.cs: Add abstract methods for the interface.
20631         Add new virtual methods (need to be hooked up to TextEntry when it
20632         exists).
20633         Add override methods for most features.
20634         Computes the size, forces the height of the text entry.
20635
20636         * NumericUpDown.cs: Put here the current testing code.
20637
20638         * Set eol-style property on all files that do not have mixed line
20639         endings, to minimize the future problems.  There are still a few
20640         files with mixed endings, and someone should choose whether they
20641         want to move it or not.
20642
20643 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
20644
20645         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
20646         System.Colors
20647         
20648 2004-11-30  Ravindra <rkumar@novell.com>
20649
20650         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
20651         drawing and replaced use of SystemColors by theme colors.
20652         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
20653         * ListView.cs (ListViewItemCollection.Add): Throw exception when
20654         same ListViewItem is being added more than once.
20655
20656 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
20657
20658         * MonthCalendar.cs:
20659           - ControlStyles love to make the control not flicker
20660           
20661 2004-11-30  Peter Bartok  <pbartok@novell.com>
20662
20663         * CharacterCasing.cs: Added
20664
20665 2004-11-29  Peter Bartok  <pbartok@novell.com>
20666
20667         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
20668           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
20669           I am removing these files as they conflict with already completed
20670           work. While it is fantastic to get contributions to MWF, I
20671           respectfully ask that everyone please coordinate their contributions
20672           through mono-winforms-list or #mono-winforms at this time. We're
20673           explicitly avoiding stubbing and don't want controls that don't have
20674           their basic functionality implemented in svn. Please also see
20675           http://www.mono-project.com/contributing/winforms.html
20676
20677
20678 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
20679
20680         * Application.cs (ModalRun): Don't hang after exit.
20681
20682         * Theme.cs: New TreeViewDefaultSize property.
20683
20684         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
20685         with less hardcoded SystemColors constant.
20686         Implemented TreeViewDefaultSize.
20687
20688         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
20689         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
20690
20691
20692 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
20693
20694         * MonthCalendar.cs:
20695           - Fix NextMonthDate and PrevMonthDate click moving calendar
20696
20697 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
20698
20699         * MonthCalendar.cs:
20700           - Fix usage of ScrollChange Property when scrolling months
20701
20702 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
20703
20704         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
20705          - Fixes menu destroying
20706          - Support adding and removing items on already created menus
20707
20708 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
20709
20710         * MonthCalendar.cs:
20711           - Re-worked all bolded dates handling to match win32
20712         * ThemeWin32Classic.cs:
20713           - Fixed rendering with bolded dates
20714
20715 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
20716
20717         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
20718         - Horizontal scroolbar
20719         - Multicolumn
20720         - Fixes
20721
20722
20723 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
20724
20725         * MonthCalendar.cs:
20726           - Fix Usage of MaxSelectionCount from SelectionRange
20727           - Fixed Shift + Cursor Selection
20728           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
20729           - Fixed normal cursor selection to be compat with win32
20730           - Fixed Shift + Mouse Click selection
20731
20732 2004-11-24  Peter Bartok <pbartok@novell.com>
20733
20734         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
20735         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
20736         * XplatUIX11.cs:
20737           - CreatedKeyBoardMsg now updates keystate with Alt key
20738           - Added workaround for timer crash to CheckTimers, Jackson will
20739             develop a proper fix and check in later
20740           - Implemented DispatchMessage
20741           - Removed calling the native window proc from GetMessage (call
20742             now moved to DispatchMessage)
20743
20744         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
20745           the keydata (Fixes bug #69831)
20746
20747         * XplatUIWin32.cs:
20748           - (DispatchMessage): Switched to return IntPtr
20749           - Added DllImport for SetFocus
20750
20751 2004-11-24  Ravindra <rkumar@novell.com>
20752
20753         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
20754         background drawing.
20755         * ListViewItem.cs: Fixed various properties, calculations
20756         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
20757         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
20758         and some internal properties. Fixed MouseDown handler and Paint
20759         method.
20760
20761 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
20762
20763         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
20764
20765 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
20766
20767         * ContainerControl.cs: correct accidental check in of local changes
20768
20769 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
20770
20771         * ThemeWin32Classic.cs:
20772                 - Fixed Drawing Last month in grid (sometimes not showing)
20773         * MonthCalendar.cs:
20774                 - Fixed title width calculation bug (makeing title small)
20775
20776 2004-11-23  Peter Bartok <pbartok@novell.com>
20777
20778         * XplatUIX11.cs:
20779           - Added generation of WM_MOUSEHOVER event
20780           - Added missing assignment of async_method atom
20781           - Fixed WM_ERASEBKGND; now only redraws the exposed area
20782
20783 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
20784
20785         * ThemeWin32Classic.cs:
20786                 - Fixed Drawing of today circle when showtodaycircle not set
20787                 - fixed drawing of first and last month in the grid (gay dates)
20788         * MonthCalendar.cs:
20789                 - Fixed Drawing of today circle
20790                 - Fixed drawing of grady dates
20791                 - Fixed HitTest for today link when ShowToday set to false
20792                 - Fixed DefaultSize to obey ShowToday
20793
20794 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
20795
20796         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
20797         * System.Windows.Forms/Theme.cs
20798         * MonthCalendar.cs: added for MonthCalendar
20799         * SelectionRange.cs: added for MonthCalendar
20800         * Day.cs: added for MonthCalendar: added for MonthCalendar
20801         * DateRangeEventArgs.cs: added for MonthCalendar
20802         * DateRangeEventHandler.cs: added for MonthCalendar
20803
20804 2004-11-22  Ravindra <rkumar@novell.com>
20805
20806         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
20807         property.
20808
20809 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
20810
20811         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
20812         event handler.
20813         
20814         * NumericUpDown.cs: Added new implementation.
20815         * UpDownBase.cs: Added new implementation.
20816
20817         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
20818         implementations.
20819         
20820         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
20821         implementations.
20822
20823         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
20824         methods.
20825
20826 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
20827
20828         * Timer.cs  (Dispose): Should call the base dispose when
20829         overriding.
20830
20831 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
20832
20833         * ScrollBar.cs: updates thumb position when max, min or increment
20834         is changed
20835
20836 2004-11-21  Ravindra <rkumar@novell.com>
20837
20838         * ListView.cs: Implemented item selection, activation and
20839         column header style. Fixed properties to do a redraw, if
20840         required. Added support for MouseHover, DoubleClick, KeyDown
20841         and KeyUp event handling and some minor fixes.
20842         * ListViewItem.cs: Fixed constructor.
20843         * ThemeWin32Classic.cs: Improved drawing for ListView.
20844
20845 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
20846
20847         * ThemeWin32Classic.cs: initial listbox drawing code
20848         * DrawMode.cs: new enumerator
20849         * ListControl.cs: stubbed class
20850         * ListBox.cs: initial implementation
20851         * Theme.cs: new methods definitions
20852         * SelectionMode.cs: new enumerator
20853
20854 2004-11-17  Peter Bartok  <pbartok@novell.com>
20855
20856         * XplatUIWin32.cs: Added double-click events to the class style
20857         * Control.cs (WndProc):
20858           - Added handling of click-count to MouseDown/ MouseUp events.
20859           - Added handling of middle and right mouse buttons
20860           - Removed old debug code
20861
20862 2004-11-17  Jackson Harper  <jackson@ximian.com>
20863
20864         * XplatUIX11.cs: Use the new Mono.Unix namespace.
20865
20866 2004-11-17  Ravindra <rkumar@novell.com>
20867
20868         * ListView.cs: Added event handling for MouseMove/Up/Down.
20869         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
20870         * ThemeWin32Classic.cs: We need to clear the graphics context and
20871         draw column header in a proper state.
20872
20873
20874 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
20875
20876         *  Menu.cs: fixes signature
20877
20878 2004-11-16  Peter Bartok  <pbartok@novell.com>
20879
20880         * XplatUIX11.cs (GetMessage): Implemented generation of
20881           double click mouse messages
20882
20883 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
20884
20885         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
20886         not by menu
20887
20888 2004-11-11  Peter Bartok  <pbartok@novell.com>
20889
20890         * HandleData.cs: Added Visible property
20891         * XplatUIX11.cs (IsVisible): Now uses Visible property from
20892           HandleData
20893         * XplatUIX11.cs: Removed old debug leftovers
20894         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
20895         * Control.cs (WndProc): Removed old debug leftovers,
20896           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
20897           needed WM_SIZE handling
20898
20899 2004-11-11  Jackson Harper  <jackson@ximian.com>
20900
20901         * OwnerDrawPropertyBag.cs:
20902         * TreeViewImageIndexConverter.cs: Initial implementation
20903
20904 2004-11-10  Jackson Harper  <jackson@ximian.com>
20905
20906         * ThemeWin32Classic.cs:
20907         * TabControl.cs: instead of moving tabs by the slider pos just
20908         start drawing at the tab that is offset by the slider. This way
20909         scrolling always moves by exactly one tab.
20910
20911 2004-11-10  Jackson Harper  <jackson@ximian.com>
20912
20913         * TabControl.cs: You can only scroll left when the slider has
20914         already ben moved right.
20915         
20916 2004-11-10  Jackson Harper  <jackson@ximian.com>
20917
20918         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
20919         the clip area.
20920         
20921 2004-11-10  Jackson Harper  <jackson@ximian.com>
20922
20923         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
20924         clip area.
20925         
20926 2004-11-09  Jackson Harper  <jackson@ximian.com>
20927
20928         * TabControl.cs (CalcXPos): New helper method so we can determine
20929         the proper place to start drawing vertical tabs.
20930         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
20931         
20932 2004-11-09  Jackson Harper  <jackson@ximian.com>
20933
20934         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
20935         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
20936         and Bottom, left and right are illegal values for this and
20937         multiline is enabled when the alignment is set to left or right.
20938         (DrawTab): Each alignment block should draw the text itself now
20939         because Left requires special love. Also add rendering for Left
20940         aligned tabs.
20941         
20942 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
20943
20944         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
20945         does not destroy the windows, removes debugging messages
20946
20947 2004-11-09  jba  <jba-mono@optusnet.com.au>
20948
20949         * ThemeWin32Classic.cs
20950         (DrawButtonBase): Fix verticle text rect clipping in windows
20951         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
20952         rendering and incorrect text rect clipping
20953         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
20954         rendering and incorrect text rect clipping
20955         
20956 2004-11-08  Jackson Harper  <jackson@ximian.com>
20957
20958         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
20959         bottom when they are bottom aligned so the bottoms of the tabs get
20960         displayed.
20961         * TabControl.cs (DropRow): Move rows up instead of down when the
20962         tab control is bottom aligned.
20963
20964 2004-11-08 13:59  pbartok
20965
20966         * XplatUIX11.cs:
20967           - Added handling for various window styles
20968           - Added handling for popup windows
20969           - Added SetTopmost handling
20970
20971 2004-11-08 13:55  pbartok
20972
20973         * XplatUIWin32.cs:
20974           - Added argument to SetTopmost method
20975           - Fixed broken ClientToScreen function
20976
20977 2004-11-08 13:53  pbartok
20978
20979         * XplatUIStructs.cs:
20980           - Added missing WS_EX styles
20981
20982 2004-11-08 13:53  pbartok
20983
20984         * XplatUI.cs, XplatUIDriver.cs:
20985           - Added argument to SetTopmost
20986
20987 2004-11-08 13:52  pbartok
20988
20989         * X11Structs.cs:
20990           - Added XSetWindowAttributes structure
20991           - Improved XWindowAttributes structure
20992           - Added SetWindowValuemask enum
20993           - Added window creation arguments enum
20994           - Added gravity enum
20995           - Added Motif hints structure
20996           - Added various Motif flags and enums
20997           - Added PropertyMode enum for property functions
20998
20999 2004-11-08 13:50  pbartok
21000
21001         * Form.cs:
21002           - Fixed arguments for updated SetTopmost method
21003
21004 2004-11-08 13:49  pbartok
21005
21006         * ToolTip.cs:
21007           - Fixed arguments for updated SetTopmost function
21008           - Fixed usage of PointToClient
21009
21010 2004-11-08 13:44  pbartok
21011
21012         * MenuAPI.cs:
21013           - Added Clipping of children and siblings
21014
21015 2004-11-08 13:41  pbartok
21016
21017         * MainMenu.cs:
21018           - Removed SetMenuBarWindow call. We do this in Form.cs
21019
21020 2004-11-08 13:40  jackson
21021
21022         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
21023           scrolling jimmi in the correct location with bottom aligned tabs
21024
21025 2004-11-08 13:36  pbartok
21026
21027         * ContainerControl.cs:
21028           - Implemented BindingContext
21029           - Implemented ParentForm
21030
21031 2004-11-08 12:46  jackson
21032
21033         * TabControl.cs: Put bottom rendered tabs in the right location
21034
21035 2004-11-08 07:15  jordi
21036
21037         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
21038           removes dead code
21039
21040 2004-11-05 17:30  jackson
21041
21042         * TabControl.cs: When selected tabs are expanded make sure they
21043           don't go beyond the edges of the tab control
21044
21045 2004-11-05 14:57  jackson
21046
21047         * TabControl.cs: Reset show_slider so if the control is resized to
21048           a size where it is no longer needed it's not displayed anymore
21049
21050 2004-11-05 13:16  jackson
21051
21052         * TabControl.cs: Make tab pages non visible when added to the
21053           control
21054
21055 2004-11-05 12:42  jackson
21056
21057         * TabControl.cs: Implement SizeMode.FillToRight
21058
21059 2004-11-05 12:16  jackson
21060
21061         * Control.cs: Do not call CreateHandle if the handle is already
21062           created
21063
21064 2004-11-05 11:46  jackson
21065
21066         * TabControl.cs: Remove superflous call to CalcTabRows
21067
21068 2004-11-05 09:07  jackson
21069
21070         * XplatUIX11.cs: Update for Mono.Posix changes
21071
21072 2004-11-05 07:00  ravindra
21073
21074         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
21075           scrolling.
21076
21077 2004-11-04 22:47  jba
21078
21079         * ThemeWin32Classic.cs:
21080           - Fix Button rendering for FlatStyle = Flat or Popup
21081           - Fix RadioButton and CheckBox rendering when Appearance = Button
21082             (normal and flatstyle).
21083           - Correct outer rectangle color when drawing focus rectangle
21084           - Adjust button bounds to be 1 px smaller when focused
21085           - Make button not draw sunken 3d border when pushed (windows compat)
21086           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
21087           - Offset the text in RadioButton and Checkbox when being rendered as
21088           a button.
21089           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
21090           radiobuttons
21091           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
21092           - Fixed disabled text rendering for normally rendered radiobuttons
21093
21094 2004-11-04 10:26  jackson
21095
21096         * TabControl.cs: Recalculate tab rows when resizing
21097
21098 2004-11-04 07:47  jordi
21099
21100         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
21101           collection completion, drawing issues, missing features
21102
21103 2004-11-04 05:03  ravindra
21104
21105         * ScrollBar.cs:
21106                 - We need to recalculate the Thumb area when
21107                 LargeChange/maximum/minimum values are changed.
21108           - We set the 'pos' in UpdatePos() method to minimum, if it's less
21109                 than minimum. This is required to handle the case if large_change is
21110                 more than max, and use LargeChange property instead of large_change
21111                 variable.
21112           - We return max+1 when large_change is more than max, like MS does.
21113
21114 2004-11-04 04:29  ravindra
21115
21116         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
21117                 - Changed default value signatures (prefixed all with ListView).
21118                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
21119                 ListView.
21120           - Fixed calculations for ListViewItem and implemented Clone()
21121           method.
21122
21123 2004-11-04 04:26  ravindra
21124
21125         * Theme.cs, ThemeWin32Classic.cs:
21126                 - Changed default ListView values signatures (prefixed all with
21127                 ListView).
21128           - Fixed default size values for VScrollBar and HScrollBar.
21129                 - Fixed DrawListViewItem method.
21130
21131 2004-11-04 04:05  ravindra
21132
21133         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
21134
21135 2004-11-04 04:04  ravindra
21136
21137         * ImageList.cs: Implemented the missing overload for Draw method.
21138
21139 2004-11-03 19:29  jackson
21140
21141         * TabControl.cs: Handle dropping rows on selection properly
21142
21143 2004-11-03 11:59  jackson
21144
21145         * TabControl.cs: remove debug code
21146
21147 2004-11-03 11:52  jackson
21148
21149         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
21150           the scrolly widgerywoo
21151
21152 2004-11-02 13:52  jackson
21153
21154         * TabControl.cs: Resize the tab pages and tabs when the tab control
21155           is resized
21156
21157 2004-11-02 13:40  jackson
21158
21159         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
21160           selected tab to the bottom
21161
21162 2004-11-02 13:39  jackson
21163
21164         * TabPage.cs: Store the tab pages row
21165
21166 2004-11-02 12:33  jordi
21167
21168         * MenuItem.cs: fixes handle creation
21169
21170 2004-11-02 11:42  jackson
21171
21172         * TabControl.cs: signature fix
21173
21174 2004-11-02 08:56  jackson
21175
21176         * TabControl.cs: Calculate whether the tab is on an edge properly.
21177           Remove top secret debugging code
21178
21179 2004-11-01 19:57  jackson
21180
21181         * TabControl.cs: Add click handling, and proper sizing
21182
21183 2004-11-01 19:47  jackson
21184
21185         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
21186           tab controls
21187
21188 2004-11-01 19:39  jackson
21189
21190         * TabPage.cs: add internal property to store the bounds of a tab
21191           page
21192
21193 2004-10-30 04:23  ravindra
21194
21195         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
21196           values.
21197
21198 2004-10-30 04:21  ravindra
21199
21200         * ListView.cs, ListViewItem.cs: Added support for scrolling and
21201           fixed calculations.
21202
21203 2004-10-30 03:06  pbartok
21204
21205         * XplatUIX11.cs:
21206           - Removed extension of DllImported libs
21207
21208 2004-10-29 09:55  jordi
21209
21210         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
21211           navigation, itemcollection completion, menu fixes
21212
21213 2004-10-27 22:58  pbartok
21214
21215         * XplatUIX11.cs:
21216           - Now throws a nice error message when no X display could be opened
21217
21218 2004-10-26 13:51  jordi
21219
21220         * ListView.cs: removes warning
21221
21222 2004-10-26 03:55  ravindra
21223
21224         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
21225           ThemeWin32Classic.cs: Some formatting for my last checkins.
21226
21227 2004-10-26 03:36  ravindra
21228
21229         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
21230           control and default values.
21231
21232 2004-10-26 03:35  ravindra
21233
21234         * Theme.cs: Added some default values for ListView control.
21235
21236 2004-10-26 03:33  ravindra
21237
21238         * ToolBar.cs: ToolBar should use the user specified button size, if
21239           there is any. Added a size_specified flag for the same.
21240
21241 2004-10-26 03:33  ravindra
21242
21243         * ColumnHeader.cs: Added some internal members and calculations for
21244           ColumnHeader.
21245
21246 2004-10-26 03:32  ravindra
21247
21248         * ListViewItem.cs: Calculations for ListViewItem.
21249
21250 2004-10-26 03:31  ravindra
21251
21252         * ListView.cs: Added some internal members and calculations for
21253           ListView.
21254
21255 2004-10-22 13:31  jordi
21256
21257         * MenuAPI.cs: speedup menus drawing
21258
21259 2004-10-22 13:16  jackson
21260
21261         * XplatUIX11.cs: Make sure to update exposed regions when adding an
21262           expose event
21263
21264 2004-10-22 11:49  jackson
21265
21266         * Control.cs: oops
21267
21268 2004-10-22 11:41  jackson
21269
21270         * Control.cs: Check to see if the window should have its background
21271           repainted by X when drawing.
21272
21273 2004-10-22 11:31  jackson
21274
21275         * XplatUIX11.cs: When invalidating areas only use XClearArea if
21276           clear is true, this way we do not get flicker from X repainting the
21277           background
21278
21279 2004-10-22 11:28  jackson
21280
21281         * XEventQueue.cs: Queue properly
21282
21283 2004-10-21 09:38  jackson
21284
21285         * XEventQueue.cs: Fix access modifier
21286
21287 2004-10-21 09:36  jackson
21288
21289         * XEventQueue.cs: Don't loose messages
21290
21291 2004-10-21 09:22  jackson
21292
21293         * XEventQueue.cs: Don't loose messages
21294
21295 2004-10-20 04:15  jordi
21296
21297         * BootMode.cs: enum need it by SystemInfo
21298
21299 2004-10-19 21:58  pbartok
21300
21301         * XplatUIWin32.cs:
21302           - Small sanity check
21303
21304 2004-10-19 21:56  pbartok
21305
21306         * Form.cs:
21307           - Added private FormParentWindow class which acts as the container
21308             for our form and as the non-client area where menus are drawn
21309           - Added/Moved required tie-ins to Jordi's menus
21310           - Fixed/Implemented the FormStartPosition functionality
21311
21312 2004-10-19 21:52  pbartok
21313
21314         * Control.cs:
21315           - Removed unneeded locals
21316           - Added code to all size and location properties to understand and
21317             deal with the parent container of Form
21318
21319 2004-10-19 21:33  pbartok
21320
21321         * Application.cs:
21322           - Fixed to deal with new Form subclasses for menus
21323
21324 2004-10-19 17:48  jackson
21325
21326         * XEventQueue.cs: commit correct version of file
21327
21328 2004-10-19 16:50  jackson
21329
21330         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
21331
21332 2004-10-19 16:15  jordi
21333
21334         * MenuAPI.cs: MenuBarCalcSize returns the height
21335
21336 2004-10-19 08:31  pbartok
21337
21338         * Control.cs:
21339           - Added missing call to PreProcessMessage before calling OnXXXKey
21340           methods
21341
21342 2004-10-19 00:04  ravindra
21343
21344         * ToolTip.cs: Fixed constructor.
21345
21346 2004-10-18 09:31  jordi
21347
21348         * MenuAPI.cs: menuitems in menubars do not have shortcuts
21349
21350 2004-10-18 09:26  jordi
21351
21352         * MenuItem.cs: fixes MenuItem class signature
21353
21354 2004-10-18 08:56  jordi
21355
21356         * MenuAPI.cs: prevents windows from showing in the taskbar
21357
21358 2004-10-18 00:28  ravindra
21359
21360         * ToolTip.cs: Suppressed a warning message.
21361
21362 2004-10-18 00:27  ravindra
21363
21364         * Control.cs: Default value of visible property must be true.
21365
21366 2004-10-17 23:19  pbartok
21367
21368         * ToolTip.cs:
21369           - Complete implementation
21370
21371 2004-10-17 23:19  pbartok
21372
21373         * XplatUIX11.cs:
21374           - Added EnableWindow method
21375           - Added SetModal stub
21376           - Added generation of WM_ACTIVATE message (still needs testing)
21377           - Added SetTopMost stub
21378           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
21379
21380 2004-10-17 23:17  pbartok
21381
21382         * XplatUIWin32.cs:
21383           - Removed VirtualKeys to XplatUIStructs
21384           - Implemented SetTopMost method
21385           - Implemented EnableWindow method
21386           - Bugfix in ScreenToClient()
21387           - Bugfixes in ClientToScreen()
21388
21389 2004-10-17 22:51  pbartok
21390
21391         * XplatUIStructs.cs:
21392           - Added WS_EX styles to WindowStyles enumeration
21393
21394 2004-10-17 22:50  pbartok
21395
21396         * XplatUI.cs, XplatUIDriver.cs:
21397           - Added method for enabling/disabling windows
21398           - Added method for setting window modality
21399           - Added method for setting topmost window
21400
21401 2004-10-17 22:49  pbartok
21402
21403         * ThemeWin32Classic.cs:
21404           - Added ToolTip drawing code
21405
21406 2004-10-17 22:49  pbartok
21407
21408         * Theme.cs:
21409           - Added ToolTip abstracts
21410
21411 2004-10-17 22:47  pbartok
21412
21413         * Form.cs:
21414           - Fixed Form.ControlCollection to handle owner relations
21415           - Added Owner/OwnedForms handling
21416           - Implemented Z-Ordering for owned forms
21417           - Removed unneeded private overload of ShowDialog
21418           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
21419             so I hope)
21420           - Fixed Close(), had wrong default
21421           - Added firing of OnLoad event
21422           - Added some commented out debug code for Ownership handling
21423
21424 2004-10-17 22:16  pbartok
21425
21426         * Control.cs:
21427           - Fixed/implemented flat list of controls
21428
21429 2004-10-17 22:14  pbartok
21430
21431         * Application.cs:
21432           - Added code to simulate modal dialogs on Win32
21433
21434 2004-10-17 16:11  jordi
21435
21436         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
21437           mouse event
21438
21439 2004-10-17 13:39  jordi
21440
21441         * MenuAPI.cs: menu drawing fixes
21442
21443 2004-10-15 09:10  ravindra
21444
21445         * StructFormat.cs: General Enum.
21446
21447 2004-10-15 09:09  ravindra
21448
21449         * SizeGripStyle.cs: Enum for Form.
21450
21451 2004-10-15 09:08  ravindra
21452
21453         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
21454           in Theme for ListView.
21455
21456 2004-10-15 09:06  ravindra
21457
21458         * ColumnHeader.cs: Flushing some formatting changes.
21459
21460 2004-10-15 09:05  ravindra
21461
21462         * ListViewItem.cs: Implemented GetBounds method and fixed coding
21463           style.
21464
21465 2004-10-15 09:03  ravindra
21466
21467         * ListView.cs: Implemented Paint method and fixed coding style.
21468
21469 2004-10-15 07:34  jordi
21470
21471         * MenuAPI.cs: fix for X11
21472
21473 2004-10-15 07:32  ravindra
21474
21475         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
21476                 - Renamed Paint() method to Draw() for clarity. Also, moved
21477                 DrawImage() to OnPaint().
21478
21479 2004-10-15 07:25  ravindra
21480
21481         * CheckBox.cs, RadioButton.cs:
21482                 - Removed Redraw (), we get it from ButtonBase.
21483                 - Implemented Paint (), to do class specific painting.
21484
21485 2004-10-15 07:16  ravindra
21486
21487         * ButtonBase.cs:
21488                 - Redraw () is not virtual now.
21489                 - Added an internal virtual method Paint (), so that
21490                 derived classes can do their painting on their own.
21491                 - Modified OnPaint () to call Paint ().
21492
21493 2004-10-15 06:43  jordi
21494
21495         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
21496           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
21497
21498 2004-10-15 00:30  ravindra
21499
21500         * MessageBox.cs:
21501                 - MessageBox on windows does not have min/max buttons.
21502                 This change in CreateParams fixes this on Windows. We
21503                 still need to implement this windowstyle behavior in
21504                 our X11 driver.
21505
21506 2004-10-14 05:14  ravindra
21507
21508         * ToolBar.cs:
21509                 - Changed Redraw () to do a Refresh () always.
21510                 - Fixed the MouseMove event handling when mouse is pressed,
21511                 ie drag event handling.
21512                 - Replaced the usage of ToolBarButton.Pressed property to
21513                 ToolBarButton.pressed internal variable.
21514
21515 2004-10-14 05:10  ravindra
21516
21517         * ToolBarButton.cs:
21518                 - Added an internal member 'inside' to handle mouse move
21519                 with mouse pressed ie mouse drag event.
21520                 - Changed 'Pressed' property to return true only when
21521                 'inside' and 'pressed' are both true.
21522                 - Some coding style love.
21523
21524 2004-10-14 00:17  ravindra
21525
21526         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
21527           public method.
21528
21529 2004-10-14 00:15  ravindra
21530
21531         * ButtonBase.cs: Redraw () related improvements.
21532
21533 2004-10-14 00:14  ravindra
21534
21535         * MessageBox.cs: Moved InitFormSize () out of Paint method and
21536           removed unnecessary calls to Button.Show () method.
21537
21538 2004-10-13 17:50  pbartok
21539
21540         * XplatUIX11.cs:
21541           - Formatting fix
21542           - Removed destroying of window until we solve the problem of X
21543             destroying the window before us on shutdown
21544
21545 2004-10-13 16:32  pbartok
21546
21547         * ButtonBase.cs:
21548           - Now Redraws on MouseUp for FlatStyle Flat and Popup
21549
21550 2004-10-13 14:18  pbartok
21551
21552         * XplatUIX11.cs:
21553           - Added code to destroy the X window
21554
21555 2004-10-13 14:18  pbartok
21556
21557         * XplatUIWin32.cs:
21558           - Added code to destroy a window
21559
21560 2004-10-13 14:12  pbartok
21561
21562         * ButtonBase.cs:
21563           - Added the Redraw on Resize that got dropped in the last rev
21564
21565 2004-10-13 09:06  pbartok
21566
21567         * ThemeWin32Classic.cs:
21568           - Path from John BouAntoun:
21569             * Fix check rendering (centre correctly for normal style, offset
21570               correctly for FlatStyle).
21571             * Fix border color usage (use backcolor) for FlatStyle.Popup
21572             * Use checkbox.Capture instead of checkbox.is_pressed when
21573               rendering flatstyle states.
21574
21575 2004-10-12 21:48  pbartok
21576
21577         * ThemeWin32Classic.cs:
21578           - Removed all occurences of SystemColors and replaced them with the
21579             matching theme color
21580
21581 2004-10-12 21:41  pbartok
21582
21583         * ThemeWin32Classic.cs:
21584           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
21585             him using the function for flatstyle drawing
21586           - Changed functions to use the new version of CPDrawBorder3D
21587
21588 2004-10-12 21:15  pbartok
21589
21590         * ControlPaint.cs:
21591           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
21592             match MS documentation. They need to return defined colors if the
21593             passed color matches the configured control color. Thanks to John
21594             BouAntoun for pointing this out.
21595
21596 2004-10-12 20:57  pbartok
21597
21598         * Control.cs:
21599           - Fix from John BouAntoun: Raise ForeColorChanged event when text
21600             color is changed
21601
21602 2004-10-12 20:46  pbartok
21603
21604         * CheckBox.cs:
21605           - Fix from John BouAntoun: Now properly sets the Appearance property
21606
21607 2004-10-12 20:45  pbartok
21608
21609         * ThemeWin32Classic.cs:
21610           - Fixes from John BouAntoun: now handles forecolors and backcolors
21611             for flatstyle rendered controls much better; It also fixes normal
21612             checkbox rendering when pushed or disabled.
21613
21614 2004-10-08 02:50  jordi
21615
21616         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
21617           work
21618
21619 2004-10-07 08:56  jordi
21620
21621         * ThemeWin32Classic.cs: Removes deletion of cached brushes
21622
21623 2004-10-06 03:59  jordi
21624
21625         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
21626           XplatUIWin32.cs: removes warnings from compilation
21627
21628 2004-10-05 12:23  jackson
21629
21630         * RadioButton.cs: Fix ctor
21631
21632 2004-10-05 11:10  pbartok
21633
21634         * MessageBox.cs:
21635           - Partial implementation by Benjamin Dasnois
21636
21637 2004-10-05 10:15  jackson
21638
21639         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
21640           by John BouAntoun
21641
21642 2004-10-05 03:07  ravindra
21643
21644         * ToolBar.cs:
21645                 - Removed a private method, Draw ().
21646                 - Fixed the ButtonDropDown event handling.
21647                 - Fixed MouseMove event handling.
21648
21649 2004-10-05 03:04  ravindra
21650
21651         * ThemeWin32Classic.cs:
21652                 - Added DrawListView method and ListViewDefaultSize property.
21653                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
21654                 - Changed DOS style CRLF to Unix format (dos2unix).
21655
21656 2004-10-05 03:03  ravindra
21657
21658         * Theme.cs:
21659                 - Added DrawListView method and ListViewDefaultSize property.
21660
21661 2004-10-05 02:42  ravindra
21662
21663         * ToolBarButton.cs: Added an internal member dd_pressed to handle
21664           clicks on DropDown arrow.
21665
21666 2004-10-04 22:56  jackson
21667
21668         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
21669           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
21670           Control handle the buffers, derived classes should not have to
21671           CreateBuffers themselves.
21672
21673 2004-10-04 21:20  jackson
21674
21675         * StatusBar.cs: The control handles resizing the buffers now.
21676
21677 2004-10-04 21:18  jackson
21678
21679         * Control.cs: When resizing the buffers should be invalidated. This
21680           should be handled in Control not in derived classes.
21681
21682 2004-10-04 14:45  jackson
21683
21684         * TabPage.cs: oops
21685
21686 2004-10-04 02:14  pbartok
21687
21688         * LeftRightAlignment.cs:
21689           - Initial check-in
21690
21691 2004-10-04 01:09  jordi
21692
21693         * ThemeWin32Classic.cs: fixes right button position causing right
21694           button not showing on horizontal scrollbars
21695
21696 2004-10-02 13:12  pbartok
21697
21698         * XplatUIX11.cs:
21699           - Simplified the Invalidate method by using an X call instead of
21700             generating the expose ourselves
21701           - Added an expose when the window background is changed
21702           - Implemented ClientToScreen method
21703
21704 2004-10-02 13:08  pbartok
21705
21706         * XplatUIWin32.cs:
21707           - Added Win32EnableWindow method (test for implementing modal
21708           dialogs)
21709           - Added ClientToScreen method and imports
21710
21711 2004-10-02 13:07  pbartok
21712
21713         * XplatUI.cs, XplatUIDriver.cs:
21714           - Added ClientToScreen coordinate translation method
21715
21716 2004-10-02 13:06  pbartok
21717
21718         * KeyPressEventArgs.cs:
21719           - Fixed access level for constructor
21720
21721 2004-10-02 13:06  pbartok
21722
21723         * NativeWindow.cs:
21724           - Changed access level for the window_collection hash table
21725
21726 2004-10-02 13:05  pbartok
21727
21728         * Form.cs:
21729           - Added KeyPreview property
21730           - Added Menu property (still incomplete, pending Jordi's menu work)
21731           - Implemented ProcessCmdKey
21732           - Implemented ProcessDialogKey
21733           - Implemented ProcessKeyPreview
21734
21735 2004-10-02 13:02  pbartok
21736
21737         * Control.cs:
21738           - Added private method to get the Control object from the window
21739           handle
21740           - Implemented ContextMenu property
21741           - Implemented PointToScreen
21742           - Implemented PreProcessMessage
21743           - Implemented IsInputChar
21744           - Implemented IsInputKey
21745           - Implemented ProcessCmdKey
21746           - Completed ProcessKeyEventArgs
21747           - Fixed message loop to call the proper chain of functions on key
21748           events
21749           - Implemented ProcessDialogChar
21750           - Implemented ProcessDialogKey
21751           - Implemented ProcessKeyMessage
21752           - Implemented ProcessKeyPreview
21753           - Added RaiseDragEvent stub (MS internal method)
21754           - Added RaiseKeyEvent stub (MS internal method)
21755           - Added RaiseMouseEvent stub (MS Internal method)
21756           - Added RaisePaintEvent stub (MS Internal method)
21757           - Added ResetMouseEventArgs stub (MS Internal method)
21758           - Implemented RtlTranslateAlignment
21759           - Implemented RtlTranslateContent
21760           - Implemented RtlTranslateHorizontal
21761           - Implemented RtlTranslateLeftRight
21762           - Added generation of KeyPress event
21763
21764 2004-10-02 05:57  ravindra
21765
21766         * ListViewItem.cs: Added attributes.
21767
21768 2004-10-02 05:32  ravindra
21769
21770         * ListView.cs: Added attributes.
21771
21772 2004-10-01 11:53  jackson
21773
21774         * Form.cs: Implement the Close method so work on MessageBox can
21775           continue.
21776
21777 2004-09-30 14:06  pbartok
21778
21779         * XplatUIX11.cs:
21780           - Bug fixes
21781
21782 2004-09-30 11:34  jackson
21783
21784         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
21785
21786 2004-09-30 07:26  ravindra
21787
21788         * ListViewItemConverter.cs: Converter for ListViewItem.
21789
21790 2004-09-30 07:26  ravindra
21791
21792         * SortOrder.cs: Enum for ListView control.
21793
21794 2004-09-30 07:25  ravindra
21795
21796         * ColumnHeader.cs: Supporting class for ListView control.
21797
21798 2004-09-30 07:24  ravindra
21799
21800         * ListView.cs, ListViewItem.cs: Initial implementation.
21801
21802 2004-09-30 07:20  ravindra
21803
21804         * ItemActivation.cs: Enum for ListView Control.
21805
21806 2004-09-29 20:29  pbartok
21807
21808         * XplatUIX11.cs:
21809           - Added lookup of pixel value for background color; tries to get a
21810             color 'close' to the requested color, it avoids having to create a
21811             colormap.  Depending on the display this could mean the used color
21812             is slightly off the desired color. Might have to change it to a more
21813             resource intensive colormap approach, but it will work as a
21814           workaround to avoid red screens.
21815
21816 2004-09-29 14:27  jackson
21817
21818         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
21819
21820 2004-09-28 12:44  pbartok
21821
21822         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
21823           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
21824           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
21825           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
21826           TrackBar.cs, VScrollBar.cs:
21827           - Streamlined Theme interfaces:
21828             * Each DrawXXX method for a control now is passed the object for
21829               the control to be drawn in order to allow accessing any state the
21830               theme might require
21831
21832             * ControlPaint methods for the theme now have a CP prefix to avoid
21833               name clashes with the Draw methods for controls
21834
21835             * Every control now retrieves it's DefaultSize from the current
21836             theme
21837
21838 2004-09-28 12:17  jackson
21839
21840         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
21841           drawing
21842
21843 2004-09-24 14:57  jackson
21844
21845         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
21846           Gives us a nice little performance boost.
21847
21848 2004-09-24 12:02  jackson
21849
21850         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
21851           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
21852           Control and supporting classes. Initial checkin
21853
21854 2004-09-23 13:08  jackson
21855
21856         * Form.cs: Temp build fixage
21857
21858 2004-09-23 01:39  ravindra
21859
21860         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
21861           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
21862           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
21863           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
21864           EventHandlers needed by ListView Control.
21865
21866 2004-09-22 14:12  pbartok
21867
21868         * ScrollableControl.cs:
21869           - Implemented DockPadding property
21870           - Implemented AutoScroll property
21871           - Implemented AutoScrollMargin property
21872           - Implemented AutoScrollMinSize property
21873           - Implemented AutoScrollPosition property
21874           - Implemented DisplayRectangle property (still incomplete)
21875           - Implemented CreateParams property
21876           - Implemented HScroll property
21877           - Implemented VScroll property
21878           - Implemented OnVisibleChanged property
21879
21880 2004-09-22 14:09  pbartok
21881
21882         * Form.cs:
21883           - Added Form.ControllCollection class
21884           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
21885             RemoveOwnedForm (still incomplete, missing on-top and common
21886             minimize/maximize behaviour)
21887           - Added StartPosition property (still incomplete, does not use when
21888             creating the form)
21889           - Added ShowDialog() methods (still incomplete, missing forcing the
21890             dialog modal)
21891
21892 2004-09-22 14:05  pbartok
21893
21894         * Application.cs:
21895           - Added message loop for modal dialogs
21896
21897 2004-09-22 14:02  pbartok
21898
21899         * GroupBox.cs:
21900           - Fixed wrong types for events
21901
21902 2004-09-22 14:00  pbartok
21903
21904         * Shortcut.cs, FormWindowState.cs:
21905           - Fixed wrong values
21906
21907 2004-09-22 12:01  jackson
21908
21909         * Control.cs: Text is never null
21910
21911 2004-09-20 22:14  pbartok
21912
21913         * XplatUIWin32.cs:
21914           - Fixed accessibility level for Idle handler
21915
21916 2004-09-20 18:54  jackson
21917
21918         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21919           XplatUIX11.cs: New message loop that uses poll so we don't get a
21920           busy loop
21921
21922 2004-09-17 10:43  pbartok
21923
21924         * ScrollBar.cs:
21925           - Fixed behaviour of arrow buttons. Now properly behaves like
21926             Buttons (and like Microsoft's scrollbar arrow buttons)
21927
21928 2004-09-17 10:14  pbartok
21929
21930         * ScrollBar.cs:
21931           - Added missing release of keyboard/mouse capture
21932
21933 2004-09-17 06:18  jordi
21934
21935         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
21936           Theme.cs: Very early menu support
21937
21938 2004-09-16 17:45  pbartok
21939
21940         * XplatUIWin32.cs:
21941           - Fixed sending a window to the front
21942           - Added overload for SetWindowPos to avoid casting
21943
21944 2004-09-16 17:44  pbartok
21945
21946         * Control.cs:
21947           - Added SendToBack and BringToFront methods
21948
21949 2004-09-16 07:00  ravindra
21950
21951         * Copyright: Added Novell URL.
21952
21953 2004-09-16 07:00  ravindra
21954
21955         * ToolBar.cs: Invalidate should be done before redrawing.
21956
21957 2004-09-15 21:19  ravindra
21958
21959         * ColumnHeaderStyle.cs: Enum for ListView Control.
21960
21961 2004-09-15 21:18  ravindra
21962
21963         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
21964           ListView Control.
21965
21966 2004-09-13 18:26  jackson
21967
21968         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
21969           properly
21970
21971 2004-09-13 18:13  jackson
21972
21973         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
21974           a second thread and post messages into the main threads message
21975           queue. This makes timing much more consistent. Both win2K and XP
21976           have a minimum timer value of 15 milliseconds, so we now do this
21977           too.
21978
21979 2004-09-13 15:18  pbartok
21980
21981         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21982           XplatUIX11.cs:
21983           - Added Z-Ordering methods
21984
21985 2004-09-13 10:56  pbartok
21986
21987         * Form.cs:
21988           - Fixed #region names
21989           - Moved properties and methods into their proper #regions
21990
21991 2004-09-13 10:51  pbartok
21992
21993         * Form.cs:
21994           - Added Accept and CancelButton properties
21995           - Added ProcessDialogKey() method
21996
21997 2004-09-13 08:18  pbartok
21998
21999         * IWindowTarget.cs:
22000           - Initial check-in
22001
22002 2004-09-10 21:50  pbartok
22003
22004         * Control.cs:
22005           - Added DoDragDrop() [incomplete]
22006           - Properly implemented 'Visible' handling
22007           - Added SetVisibleCore()
22008           - Implemented FindChildAtPoint()
22009           - Implemented GetContainerControl()
22010           - Implemented Hide()
22011
22012 2004-09-10 19:28  pbartok
22013
22014         * Control.cs:
22015           - Moved methods into their appropriate #regions
22016           - Reordered methods within regions alphabetically
22017
22018 2004-09-10 18:57  pbartok
22019
22020         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
22021           - Added method to retrieve text from window
22022
22023 2004-09-10 18:56  pbartok
22024
22025         * Control.cs:
22026           - Moved some internal functions into the internal region
22027           - Implemented FontHeight
22028           - Implemented RenderRightToLeft
22029           - Implemented ResizeRedraw
22030           - Implemented ShowFocusCues
22031           - Implemented ShowKeyboardCues
22032           - Implemented FromChildHandle
22033           - Implemented FromHandle
22034           - Implemented IsMnemonic
22035           - Implemented ReflectMessage
22036           - All public and protected Static Methods are now complete
22037
22038 2004-09-10 16:54  pbartok
22039
22040         * Control.cs:
22041           - Implemented remaining missing public instance properties
22042           - Alphabetized some out of order properties
22043
22044 2004-09-10 05:51  ravindra
22045
22046         * PictureBox.cs: Added a check for null image.
22047
22048 2004-09-10 00:59  jordi
22049
22050         * GroupBox.cs: remove cvs tag
22051
22052 2004-09-09 05:25  ravindra
22053
22054         * ToolBar.cs: Make redraw accessible from ToolBarButton.
22055
22056 2004-09-09 05:23  ravindra
22057
22058         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
22059           parent redraw.
22060
22061 2004-09-09 02:28  pbartok
22062
22063         * ThemeWin32Classic.cs:
22064           - Improve disabled string look
22065
22066 2004-09-09 01:15  jordi
22067
22068         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
22069           args and handler
22070
22071 2004-09-08 23:56  ravindra
22072
22073         * ItemBoundsPortion.cs: It's enum, not a class!
22074
22075 2004-09-08 23:47  ravindra
22076
22077         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
22078           Enums for Form.
22079
22080 2004-09-08 21:13  ravindra
22081
22082         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
22083           ListView control.
22084
22085 2004-09-08 21:03  ravindra
22086
22087         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
22088           avoid crash.
22089
22090 2004-09-08 21:01  ravindra
22091
22092         * ScrollableControl.cs: Removed unreachable code.
22093
22094 2004-09-08 06:45  jordi
22095
22096         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
22097
22098 2004-09-08 01:00  jackson
22099
22100         * XplatUIX11.cs: Only run the timers when updating the message
22101           queue. This effectively gives X messages a higher priority then
22102           timer messages. Timers still need love though
22103
22104 2004-09-07 14:01  jackson
22105
22106         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
22107           this for us and the handle is no longer valid.
22108
22109 2004-09-07 13:59  jackson
22110
22111         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
22112           loop that manages to not crash. TODO: Add poll and cleanup timers
22113
22114 2004-09-07 11:12  jordi
22115
22116         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
22117
22118 2004-09-07 03:40  jordi
22119
22120         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
22121           fixes, methods, multiple links
22122
22123 2004-09-06 06:55  jordi
22124
22125         * Control.cs: Caches ClientRectangle rectangle value
22126
22127 2004-09-05 02:03  jordi
22128
22129         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
22130           certain situations
22131
22132 2004-09-04 11:10  jordi
22133
22134         * Label.cs: Refresh when font changed
22135
22136 2004-09-02 16:24  pbartok
22137
22138         * Control.cs:
22139           - Added sanity check to creation of double buffer bitmap
22140
22141 2004-09-02 16:24  pbartok
22142
22143         * ButtonBase.cs:
22144           - Fixed selection of text color
22145           - Fixed handling of resize event; now properly recreates double
22146             buffering bitmap
22147           - Added missing assignment of TextAlignment
22148           - Added proper default for TextAlignment
22149
22150 2004-09-02 14:26  pbartok
22151
22152         * RadioButton.cs:
22153           - Added missing RadioButton.RadioButtonAccessibleObject class
22154
22155 2004-09-02 14:26  pbartok
22156
22157         * Control.cs:
22158           - Added missing Control.ControlAccessibleObject class
22159           - Started to implement Select()ion mechanisms, still very incomplete
22160
22161 2004-09-02 14:25  pbartok
22162
22163         * AccessibleObject.cs:
22164           - Added missing methods
22165
22166 2004-09-02 14:23  pbartok
22167
22168         * AccessibleNavigation.cs, AccessibleSelection.cs:
22169           - Initial check-in
22170
22171 2004-09-02 10:32  jordi
22172
22173         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
22174           pool for pens, brushes, and hatchbruses
22175
22176 2004-09-01 15:30  jackson
22177
22178         * StatusBar.cs: Fix typo
22179
22180 2004-09-01 14:44  pbartok
22181
22182         * RadioButton.cs:
22183           - Fixed state
22184
22185 2004-09-01 14:39  pbartok
22186
22187         * Button.cs, RadioButton.cs:
22188           - Functional initial check-in
22189
22190 2004-09-01 14:01  pbartok
22191
22192         * CheckBox.cs:
22193           - Added missing default
22194           - Added missing region mark
22195
22196 2004-09-01 09:10  jordi
22197
22198         * Label.cs: fixes method signatures, new methods, events, fixes
22199           autosize
22200
22201 2004-09-01 07:19  jordi
22202
22203         * Control.cs: Init string variables with an empty object
22204
22205 2004-09-01 04:20  jordi
22206
22207         * Control.cs: fires OnFontChanged event
22208
22209 2004-08-31 20:07  pbartok
22210
22211         * ButtonBase.cs:
22212           - Enabled display of strings
22213
22214 2004-08-31 20:05  pbartok
22215
22216         * Form.cs:
22217           - Added (partial) implementation of DialogResult; rest needs to be
22218             implemented when the modal loop code is done
22219
22220 2004-08-31 19:55  pbartok
22221
22222         * CheckBox.cs:
22223           - Fixed to match the removal of the needs_redraw concept
22224
22225 2004-08-31 19:55  pbartok
22226
22227         * ButtonBase.cs:
22228           - Removed the rather odd split between 'needs redraw' and redrawing
22229           - Now handles the events that require regeneration (ambient
22230             properties and size)
22231
22232 2004-08-31 19:41  pbartok
22233
22234         * Control.cs:
22235           - Added firing of BackColorChanged event
22236           - Added TopLevelControl property
22237           - Fixed handling of WM_ERASEBKGRND message
22238
22239 2004-08-31 12:49  pbartok
22240
22241         * ButtonBase.cs:
22242           - Removed debug
22243           - Minor fixes
22244
22245 2004-08-31 12:48  pbartok
22246
22247         * CheckBox.cs:
22248           - Finished (famous last words)
22249
22250 2004-08-31 04:35  jordi
22251
22252         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
22253           scrolling bugs, adds new methods
22254
22255 2004-08-30 14:42  pbartok
22256
22257         * CheckBox.cs:
22258           - Implemented CheckBox drawing code
22259
22260 2004-08-30 14:42  pbartok
22261
22262         * ButtonBase.cs:
22263           - Made Redraw() and CheckRedraw() virtual
22264           - Improved mouse up/down/move logic to properly track buttons
22265
22266 2004-08-30 09:44  pbartok
22267
22268         * CheckBox.cs:
22269           - Updated to fix broken build. Not complete yet.
22270
22271 2004-08-30 09:28  pbartok
22272
22273         * CheckState.cs:
22274           - Initial checkin
22275
22276 2004-08-30 09:17  pbartok
22277
22278         * Appearance.cs:
22279           - Initial check-in
22280
22281 2004-08-27 16:12  ravindra
22282
22283         * ToolBarButton.cs: Added TypeConverter attribute.
22284
22285 2004-08-27 16:07  ravindra
22286
22287         * ImageIndexConverter.cs: Implemented.
22288
22289 2004-08-27 14:17  pbartok
22290
22291         * Control.cs:
22292           - Removed unneeded stack vars
22293           - First attempt to fix sizing issues when layout is suspended
22294
22295 2004-08-25 15:35  jordi
22296
22297         * ScrollBar.cs: more fixes to scrollbar
22298
22299 2004-08-25 14:04  ravindra
22300
22301         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
22302           Added the missing divider code and grip for ToolBar Control.
22303
22304 2004-08-25 13:20  pbartok
22305
22306         * Control.cs:
22307           - Control now properly passes the ambient background color to child
22308             controls
22309
22310 2004-08-25 13:20  jordi
22311
22312         * ScrollBar.cs: small bug fix regarding bar position
22313
22314 2004-08-25 12:33  pbartok
22315
22316         * Timer.cs:
22317           - Now only calls SetTimer or KillTimer if the enabled state has
22318           changed
22319
22320 2004-08-25 12:33  pbartok
22321
22322         * XplatUIWin32.cs:
22323           - Fixed timer handling, now seems to work
22324           - Improved error message for window creation
22325
22326 2004-08-25 12:32  pbartok
22327
22328         * Control.cs:
22329           - Fixed generation of MouseUp message
22330
22331 2004-08-25 12:29  jordi
22332
22333         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
22334           and fixes for progressbar
22335
22336 2004-08-24 18:43  ravindra
22337
22338         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
22339           in ToolBar control.
22340
22341 2004-08-24 17:15  pbartok
22342
22343         * Panel.cs:
22344           - Added #region
22345           - Added missing events
22346           - Alphabetized
22347
22348 2004-08-24 17:14  pbartok
22349
22350         * StatusBar.cs, PictureBox.cs:
22351           - Now uses Control's CreateParams
22352
22353 2004-08-24 16:36  pbartok
22354
22355         * XplatUIX11.cs:
22356           - Fixed background color handling
22357           - Fixed sending of enter/leave events on a grab
22358
22359 2004-08-24 16:35  pbartok
22360
22361         * X11Structs.cs:
22362           - Refined definitions for CrossingEvent
22363
22364 2004-08-24 12:37  jordi
22365
22366         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
22367           formmating, methods signature, and adds missing events
22368
22369 2004-08-24 12:24  jordi
22370
22371         * Control.cs: fire OnEnabledChanged event
22372
22373 2004-08-24 11:17  pbartok
22374
22375         * XplatUIWin32.cs:
22376           - Implemented SetTimer() and KillTimer()
22377
22378 2004-08-24 11:16  pbartok
22379
22380         * XplatUIX11.cs:
22381           - Now uses Remove instead of Add to kill the timer
22382
22383 2004-08-24 10:16  jackson
22384
22385         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
22386           picture boxes in the theme now. Draw picture box borders and obey
22387           sizing modes
22388
22389 2004-08-24 05:49  jackson
22390
22391         * Timer.cs: Remove top secret debugging code
22392
22393 2004-08-24 05:34  jackson
22394
22395         * PictureBox.cs: Temp hack to make picture boxes draw their full
22396           image
22397
22398 2004-08-24 05:29  jackson
22399
22400         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
22401           XplatUIX11.cs: Move timers to the driver level. On X they are
22402           queued by the driver and checked on idle.
22403
22404 2004-08-24 01:07  jackson
22405
22406         * XplatUIX11.cs: Use a queue for async messages instead of passing
22407           them as ClientMessages since that was totally broken. Also simply
22408           check for events and return an idle message if none are found. This
22409           gives us an idle handler, and prevents deadlocking when no messages
22410           are in the queue.
22411
22412 2004-08-23 18:19  ravindra
22413
22414         * XplatUIWin32.cs: Removed the unwanted destructor.
22415
22416 2004-08-23 17:27  pbartok
22417
22418         * ButtonBase.cs:
22419           - Finishing touches. Works now, just needs some optimizations.
22420
22421 2004-08-23 16:53  jordi
22422
22423         * ScrollBar.cs: small fix
22424
22425 2004-08-23 16:45  pbartok
22426
22427         * Application.cs:
22428           - Removed debug output
22429           - Simplifications
22430
22431 2004-08-23 16:43  jordi
22432
22433         * ScrollBar.cs: [no log message]
22434
22435 2004-08-23 16:10  pbartok
22436
22437         * Form.cs:
22438           - Fixed handling of WM_CLOSE message
22439           - Removed debug output
22440
22441 2004-08-23 16:09  pbartok
22442
22443         * Application.cs:
22444           - Added handling of Idle event
22445           - Added handling of form closing
22446           - Fixed reporting of MessageLoop property
22447           - Removed some unneeded code, should provide a bit of a speedup
22448
22449 2004-08-23 15:22  pbartok
22450
22451         * Control.cs:
22452           - Added InitLayout() method
22453           - Added code to properly perform layout when Anchor or Dock property
22454             is changed
22455           - Changed 'interpretation' of ResumeLayout. MS seems to have a
22456             LAMESPEC, tried to do it in a way that makes sense
22457
22458 2004-08-23 14:10  jordi
22459
22460         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
22461           properties and methods
22462
22463 2004-08-23 13:55  pbartok
22464
22465         * Control.cs:
22466           - Properly fixed Jordi's last fix
22467           - Now uses Cursor's Position property instead of calling XplatUI
22468           directly
22469
22470 2004-08-23 13:44  jordi
22471
22472         * PaintEventHandler.cs: Adding missing attribute
22473
22474 2004-08-23 13:39  pbartok
22475
22476         * Cursor.cs:
22477           - Implemented Position property
22478
22479 2004-08-23 13:39  pbartok
22480
22481         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
22482           - Added method to move mouse cursor
22483
22484 2004-08-23 13:39  pbartok
22485
22486         * XplatUIX11.cs:
22487           - Fixed setting of background color
22488           - Added method to move mouse cursor
22489
22490 2004-08-23 13:16  jordi
22491
22492         * Control.cs: avoids null exception
22493
22494 2004-08-22 17:46  jackson
22495
22496         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
22497           PictureBox
22498
22499 2004-08-22 17:40  jackson
22500
22501         * XplatUIX11.cs: Add some missing locks
22502
22503 2004-08-22 15:10  pbartok
22504
22505         * Control.cs, Form.cs:
22506           - Removed OverlappedWindow style from Control, instead it's default
22507             now is child
22508           - Made form windows OverlappedWindow by default
22509
22510 2004-08-22 13:34  jackson
22511
22512         * ScrollBar.cs: Update the position through the Value property so
22513           the OnValueChanged event is raised.
22514
22515 2004-08-22 12:04  pbartok
22516
22517         * SWF.csproj:
22518           - Added Cursor.cs and UserControl.cs
22519
22520 2004-08-22 12:03  pbartok
22521
22522         * Cursor.cs:
22523           - Started implementation, not usable yet
22524
22525 2004-08-22 12:00  pbartok
22526
22527         * UserControl.cs:
22528           - Implemented UserControl (complete)
22529
22530 2004-08-21 19:20  ravindra
22531
22532         * ToolBar.cs: Correcting the formatting mess of VS.NET.
22533
22534 2004-08-21 18:49  ravindra
22535
22536         * ToolBar.cs: Probably this completes the missing attributes in
22537           toolbar control.
22538
22539 2004-08-21 18:03  ravindra
22540
22541         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
22542           Fixed toolbar control signatures.
22543
22544 2004-08-21 16:32  pbartok
22545
22546         * LinkLabel.cs:
22547           - Signature Fixes
22548
22549 2004-08-21 16:30  pbartok
22550
22551         * Label.cs:
22552           - Signature fixes
22553
22554 2004-08-21 16:19  pbartok
22555
22556         * Control.cs, Label.cs:
22557           - Signature fixes
22558
22559 2004-08-21 15:57  pbartok
22560
22561         * ButtonBase.cs:
22562           - Added loads of debug output for development
22563           - Fixed typo in method name
22564
22565 2004-08-21 15:52  pbartok
22566
22567         * ToolBarButtonClickEventArgs.cs:
22568           - Added missing base class
22569
22570 2004-08-21 14:53  pbartok
22571
22572         * Control.cs:
22573           - Updated to match new GrabWindow signature
22574
22575 2004-08-21 14:51  pbartok
22576
22577         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22578           - Added method to get default display size
22579
22580 2004-08-21 14:23  pbartok
22581
22582         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22583           - Added method to query current grab state
22584           - Added argument to allow confining a grab to a window
22585
22586 2004-08-21 14:22  pbartok
22587
22588         * Keys.cs:
22589           - Added [Flags] attribute so that modifiers can be used in bitwise
22590           ops
22591
22592 2004-08-21 14:21  pbartok
22593
22594         * TrackBar.cs, ScrollBar.cs:
22595           - Replaced direct XplatUI calls with their Control counterpart
22596
22597 2004-08-21 13:32  pbartok
22598
22599         * Control.cs:
22600           - Implemented Created property
22601
22602 2004-08-21 13:28  pbartok
22603
22604         * Control.cs:
22605           - Implemented ContainsFocus
22606
22607 2004-08-21 13:26  pbartok
22608
22609         * Control.cs:
22610           - Implemented CausesValidation
22611
22612 2004-08-21 13:21  pbartok
22613
22614         * Control.cs:
22615           - Implemented CanFocus
22616           - Implemented CanSelect
22617           - Implemented Capture
22618
22619 2004-08-21 12:35  pbartok
22620
22621         * XplatUIWin32.cs:
22622           - Fixed bug with Async message handling
22623           - Implemented getting the ModifierKeys
22624
22625 2004-08-21 12:32  jackson
22626
22627         * AsyncMethodResult.cs: Make sure we have the mutex before we
22628           release it. Fixes BeginInvoke on windows
22629
22630 2004-08-21 11:31  pbartok
22631
22632         * XplatUIWin32.cs, XplatUIX11.cs:
22633           - Drivers now return proper mouse state
22634
22635 2004-08-21 10:54  jackson
22636
22637         * Control.cs: Implement EndInvoke
22638
22639 2004-08-21 10:48  jackson
22640
22641         * Timer.cs: Remove unneeded finalizer
22642
22643 2004-08-20 19:52  ravindra
22644
22645         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
22646           in mouse event handling in the ToolBar control.
22647
22648 2004-08-20 19:50  ravindra
22649
22650         * ImageList.cs: Changed draw method to use the arguments passed in
22651           to draw the image.
22652
22653 2004-08-20 18:58  pbartok
22654
22655         * XplatUIStructs.cs:
22656           - Added private message for async communication
22657
22658 2004-08-20 17:38  ravindra
22659
22660         * Control.cs: Made RightToLeft property virtual and removed a
22661           Console.WriteLine.
22662
22663 2004-08-20 14:39  jordi
22664
22665         * ThemeGtk.cs: use style_attach
22666
22667 2004-08-20 14:39  pbartok
22668
22669         * XplatUIWin32.cs:
22670           - Added jackson's Async code from X11 to Win32
22671
22672 2004-08-20 14:09  pbartok
22673
22674         * SWF.csproj:
22675           - Added all new files
22676
22677 2004-08-20 14:09  pbartok
22678
22679         * Control.cs:
22680           - Added call to set window background color
22681
22682 2004-08-20 14:03  pbartok
22683
22684         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
22685           - Added method for setting the window background
22686
22687 2004-08-20 14:02  pbartok
22688
22689         * XplatUIWin32.cs:
22690           - Added method for setting the background color
22691           - Added handling for erasing the window background
22692
22693 2004-08-20 13:45  jordi
22694
22695         * TrackBar.cs: fixes timer, new properties and methods
22696
22697 2004-08-20 13:34  jackson
22698
22699         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
22700           correct thread
22701
22702 2004-08-20 13:22  jackson
22703
22704         * Timer.cs: Timer Tick events are now handed through Controls Async
22705           mechanism so the callbacks are executed in the same thread as X
22706
22707 2004-08-20 13:19  jackson
22708
22709         * XplatUIDriver.cs: Expose functionality to send async messages
22710           through the driver
22711
22712 2004-08-20 13:18  jackson
22713
22714         * Control.cs: Implement Begininvoke
22715
22716 2004-08-20 13:14  jackson
22717
22718         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
22719           messages through the driver
22720
22721 2004-08-20 13:12  jackson
22722
22723         * XplatUIX11.cs: Lock before all X operations. Also added Async
22724           method functionality through XSendEvent
22725
22726 2004-08-20 13:11  jackson
22727
22728         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
22729           This will screw up on 64 bit systems)
22730
22731 2004-08-20 13:10  jackson
22732
22733         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
22734           Async messages through X/Win32
22735
22736 2004-08-19 19:39  pbartok
22737
22738         * XplatUIX11.cs:
22739           - Updated code to match new HandleData.DeviceContext type
22740
22741 2004-08-19 19:38  pbartok
22742
22743         * HandleData.cs:
22744           - Made DeviceContext a generic object to allow usage from various
22745           drivers
22746           - Added support for queueing Windows messages
22747
22748 2004-08-19 19:37  pbartok
22749
22750         * XplatUIWin32.cs:
22751           - Added generation of MouseEnter, MouseLeave and MouseHover events
22752           - Added cleanup on EndPaint
22753
22754 2004-08-19 19:17  pbartok
22755
22756         * Control.cs:
22757           - Added handling of WM_MOUSEHOVER
22758           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
22759           code
22760
22761 2004-08-19 18:55  jordi
22762
22763         * ThemeGtk.cs: fixes button order
22764
22765 2004-08-19 18:12  jordi
22766
22767         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
22768
22769 2004-08-19 17:09  pbartok
22770
22771         * Control.cs:
22772           - Added Right property
22773           - Added RightToLeft property
22774
22775 2004-08-19 16:27  jordi
22776
22777         * ThemeGtk.cs: experimental GTK theme support
22778
22779 2004-08-19 16:26  jordi
22780
22781         * ITheme.cs, Theme.cs: move themes from an interface to a class
22782
22783 2004-08-19 16:25  jordi
22784
22785         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
22786           theme enhancaments
22787
22788 2004-08-19 16:04  pbartok
22789
22790         * XplatUIX11.cs:
22791           - Added colormap basics
22792           - Added a way to re-initialize with a different display handle
22793           - Fixed setting of the window background color
22794           - Added various X11 imports related to colors and colormaps
22795
22796 2004-08-19 15:51  pbartok
22797
22798         * X11Structs.cs:
22799           - Removed packing hints (Paolo suggested this a while back)
22800           - fixed colormap type
22801           - Added default Atom types
22802           - Added Screen and color structs and enums
22803
22804 2004-08-19 15:39  pbartok
22805
22806         * ImageList.cs:
22807           - Added missing Draw() method
22808           - Added missing RecreateHandle event
22809
22810 2004-08-19 15:30  pbartok
22811
22812         * Form.cs:
22813           - Added handling of WM_CLOSE
22814
22815 2004-08-18 13:16  jordi
22816
22817         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
22818           a table
22819
22820 2004-08-18 09:56  jordi
22821
22822         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
22823
22824 2004-08-17 15:31  ravindra
22825
22826         * SWF.csproj: Updated project.
22827
22828 2004-08-17 15:25  pbartok
22829
22830         * Control.cs:
22831           - Drawing improvement; don't call UpdateBounds if we are not visible
22832             (or have been minimized)
22833
22834 2004-08-17 15:24  pbartok
22835
22836         * XplatUIWin32.cs:
22837           - Finished IsVisible
22838           - Added Win32GetWindowPlacement
22839
22840 2004-08-17 15:08  jackson
22841
22842         * Panel.cs: Initial checkin of the Panel
22843
22844 2004-08-17 14:25  pbartok
22845
22846         * Control.cs:
22847           - Fixed broken handling of default window sizes
22848
22849 2004-08-17 13:29  jackson
22850
22851         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
22852           has a large startup time.
22853
22854 2004-08-17 10:25  jackson
22855
22856         * HandleData.cs: union areas properly
22857
22858 2004-08-17 10:12  jackson
22859
22860         * HandleData.cs: union areas properly
22861
22862 2004-08-16 20:00  ravindra
22863
22864         * ToolBar.cs, ToolBarButton.cs: Added attributes.
22865
22866 2004-08-16 18:48  ravindra
22867
22868         * ToolBar.cs: Added attributes.
22869
22870 2004-08-16 17:17  ravindra
22871
22872         * SWF.csproj: Updated project.
22873
22874 2004-08-16 17:16  jackson
22875
22876         * XplatUIX11.cs: Check for more expose events before sending a
22877           WM_PAINT so they can all be grouped together. This makes dragging a
22878           window across another window redraw in a sane way.
22879
22880 2004-08-16 15:47  pbartok
22881
22882         * Control.cs:
22883           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
22884             support OnMouseEnter/Leave()
22885           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
22886             exposure handling
22887
22888 2004-08-16 15:46  pbartok
22889
22890         * XplatUIStructs.cs, XplatUIX11.cs:
22891           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
22892           OnMouseEnter/Leave()
22893
22894 2004-08-16 15:34  jackson
22895
22896         * XplatUIX11.cs: Group multiple expose events in HandleData, make
22897           sure messages get the message field set to WM_NULL if they are not
22898           handled.
22899
22900 2004-08-16 15:24  jackson
22901
22902         * HandleData.cs: HandleData is used for storing message information
22903           for window handles
22904
22905 2004-08-15 17:23  ravindra
22906
22907         * ColorDepth.cs: Added attribute.
22908
22909 2004-08-15 17:23  ravindra
22910
22911         * SWF.csproj: Updated project for ToolBar Control.
22912
22913 2004-08-15 17:20  ravindra
22914
22915         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
22916           control and also dos2unix format.
22917
22918 2004-08-15 17:13  ravindra
22919
22920         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
22921           ToolBarButtonClickEventArgs.cs,
22922           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
22923           ToolBarTextAlign.cs: First Implementation of ToolBar control.
22924
22925 2004-08-15 15:31  pbartok
22926
22927         * ButtonBase.cs:
22928           - First (mostly) working version
22929
22930 2004-08-13 16:15  pbartok
22931
22932         * Control.cs:
22933           - Fixed Anchor default
22934
22935 2004-08-13 15:43  pbartok
22936
22937         * Control.cs:
22938           - Changed GetCursorPos signature
22939
22940 2004-08-13 15:42  pbartok
22941
22942         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
22943           - Changed signature for GetCursorPos
22944
22945 2004-08-13 15:25  pbartok
22946
22947         * XplatUIX11.cs:
22948           - Cleanup
22949           - Fixed resizing/exposure handling
22950
22951 2004-08-13 15:22  jordi
22952
22953         * ThemeWin32Classic.cs: removes redundant code and fixes issues
22954           with tickposition
22955
22956 2004-08-13 14:55  jordi
22957
22958         * TrackBar.cs: change from wndproc to events
22959
22960 2004-08-13 13:00  jordi
22961
22962         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
22963           XplatUIX11.cs: implements PointToClient (ScreenToClient)
22964
22965 2004-08-13 12:53  pbartok
22966
22967         * XplatUIWin32.cs:
22968           - Changed GetWindowPos to also provide client area size
22969           - Fixed broken prototypes for several win32 functions
22970
22971 2004-08-13 12:53  pbartok
22972
22973         * XplatUI.cs, XplatUIDriver.cs:
22974           - Changed GetWindowPos to also provide client area size
22975
22976 2004-08-13 12:52  pbartok
22977
22978         * XplatUIX11.cs:
22979           - Added generation of WM_POSCHANGED
22980           - Changed GetWindowPos to also provide client area size
22981
22982 2004-08-13 12:52  pbartok
22983
22984         * Control.cs:
22985           - Added Dispose() and destructor
22986           - Fixed resizing and bounds calculation
22987           - Fixed Layout
22988           - Added memory savings for invisible windows
22989
22990 2004-08-13 12:46  jordi
22991
22992         * TrackBar.cs: adds timer and grap window
22993
22994 2004-08-13 10:25  jackson
22995
22996         * Timer.cs: SWF Timer
22997
22998 2004-08-12 16:59  pbartok
22999
23000         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
23001           - Implemented method to get current mouse position
23002
23003 2004-08-12 14:29  jordi
23004
23005         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
23006           enhancement, fix mouse problems, highli thumb, etc
23007
23008 2004-08-12 13:31  pbartok
23009
23010         * Control.cs:
23011           - Fixed Anchoring bugs
23012
23013 2004-08-12 13:01  jackson
23014
23015         * StatusBar.cs: Don't forget things
23016
23017 2004-08-12 12:54  jackson
23018
23019         * ThemeWin32Classic.cs: Handle owner draw status bars
23020
23021 2004-08-12 12:54  jackson
23022
23023         * StatusBar.cs: Implement missing properties, events, and methods.
23024           Handle mouse clicking
23025
23026 2004-08-12 10:19  jackson
23027
23028         * StatusBarPanelClickEventArgs.cs,
23029           StatusBarPanelClickEventHandler.cs: Classes for handling status
23030           bar panel click events
23031
23032 2004-08-12 10:10  jackson
23033
23034         * Control.cs: Add missing properties
23035
23036 2004-08-12 09:46  pbartok
23037
23038         * BindingsManagerBase.cs:
23039           - Name changed to BindingManagerBase.cs
23040
23041 2004-08-12 09:25  jordi
23042
23043         * ScrollableControl.cs: calls ctrlbase instead of exeception
23044
23045 2004-08-11 16:28  pbartok
23046
23047         * InputLanguageChangingEventArgs.cs:
23048           - Never check in before compiling. Fixes the last check-in
23049
23050 2004-08-11 16:26  pbartok
23051
23052         * InputLanguageChangingEventArgs.cs:
23053           - More signature fixes
23054
23055 2004-08-11 16:20  pbartok
23056
23057         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
23058           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
23059           ImageListStreamer.cs, InputLanguage.cs,
23060           InputLanguageChangedEventArgs.cs,
23061           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
23062           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
23063           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
23064           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
23065           - Signature fixes
23066
23067 2004-08-11 16:16  pbartok
23068
23069         * Application.cs:
23070           - Fixed Signature
23071           - Added .Net 1.1 method
23072
23073 2004-08-11 15:25  pbartok
23074
23075         * SWF.csproj:
23076           - Fixed BindingManagerBase.cs filename
23077
23078 2004-08-11 15:22  pbartok
23079
23080         * BindingManagerBase.cs:
23081           - Was checked in with wrong filename
23082
23083 2004-08-11 14:50  pbartok
23084
23085         * SWF.csproj:
23086           - Updated
23087
23088 2004-08-11 13:41  jordi
23089
23090         * XplatUIWin32.cs: Fixes ClientRect
23091
23092 2004-08-11 13:19  pbartok
23093
23094         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
23095           XplatUIX11.cs:
23096           - We had SetWindowPos and MoveWindow to set window positions and
23097             size, removed MoveWindow. We have GetWindowPos, so it made sense to
23098             keep SetWindowPos as matching counterpart
23099           - Added some X11 sanity checking
23100
23101 2004-08-11 12:59  pbartok
23102
23103         * Control.cs:
23104           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
23105             (It seems that SetBounds is just a front for SetBoundsCore and
23106              SetBoundsCore updates the underlying window system and
23107              UpdateBounds is responsible for updating the variables associated
23108              with the Control and sending the events)
23109           - Major cleanup of Size handling; we now have two sizes, client_size
23110             and bounds. Bounds defines the window with decorations, client_size
23111             without them.
23112
23113 2004-08-11 12:55  pbartok
23114
23115         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
23116           - Added method to calculate difference between decorated window and
23117             raw client area
23118
23119 2004-08-11 12:54  pbartok
23120
23121         * Label.cs:
23122           - Forcing redraw on resize
23123
23124 2004-08-11 11:43  pbartok
23125
23126         * ImageList.cs:
23127           - Removed disposing of the actual images when the list is disposed
23128
23129 2004-08-11 09:13  pbartok
23130
23131         * Control.cs:
23132           - Now properly reparents windows
23133
23134 2004-08-11 08:37  pbartok
23135
23136         * Control.cs:
23137           - Duh!
23138
23139 2004-08-11 07:47  pbartok
23140
23141         * Control.cs:
23142           - Rewrote the collection stuff. Might not be as fast now, not
23143             keeping the number of children around and accessible directly, but
23144             it's more straightforward
23145
23146 2004-08-11 07:44  pbartok
23147
23148         * AccessibleObject.cs:
23149           - Fixed to match ControlCollection rewrite
23150
23151 2004-08-11 07:43  pbartok
23152
23153         * ImageList.cs:
23154           - Added missing creation of the collection list
23155
23156 2004-08-10 20:08  jackson
23157
23158         * StatusBar.cs: Get the paint message from WndProc
23159
23160 2004-08-10 19:31  jackson
23161
23162         * ThemeWin32Classic.cs: Create Brushes as little as possible
23163
23164 2004-08-10 19:20  jackson
23165
23166         * UICues.cs: Add Flags attribute
23167
23168 2004-08-10 19:19  jackson
23169
23170         * StatusBarPanel.cs: Signature cleanup
23171
23172 2004-08-10 19:10  jackson
23173
23174         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
23175           Initial implementation of status bar item drawing
23176
23177 2004-08-10 17:27  jordi
23178
23179         * TrackBar.cs: add missing methods, properties, and restructure to
23180           hide extra ones
23181
23182 2004-08-10 16:24  jackson
23183
23184         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
23185           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
23186           attribute
23187
23188 2004-08-10 13:21  jordi
23189
23190         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
23191           enhancements and standarize on win colors defaults
23192
23193 2004-08-10 12:52  jackson
23194
23195         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
23196           ThemeWin32Classic.cs: Implement DrawItem functionality
23197
23198 2004-08-10 12:47  jordi
23199
23200         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
23201
23202 2004-08-10 12:32  jordi
23203
23204         * Control.cs: throw ontextchange event
23205
23206 2004-08-10 11:43  pbartok
23207
23208         * Control.cs:
23209           - Added more to the still unfinished Dock/Anchor layout code
23210
23211 2004-08-10 11:39  pbartok
23212
23213         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
23214           - Added GetWindowPos method
23215
23216 2004-08-10 11:36  pbartok
23217
23218         * XplatUIWin32.cs:
23219           - Implemented several methods
23220
23221 2004-08-10 09:47  jackson
23222
23223         * TrackBar.cs: Allow control to handle buffering
23224
23225 2004-08-10 09:41  jackson
23226
23227         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
23228
23229 2004-08-10 09:24  jackson
23230
23231         * Label.cs, LinkLabel.cs: Let Control handle buffering.
23232
23233 2004-08-10 09:09  jackson
23234
23235         * StatusBar.cs: Let Control handle all the buffering.
23236
23237 2004-08-10 09:08  jackson
23238
23239         * Control.cs: Control will now handle the buffering code, so each
23240           control does not have to implement this.
23241
23242 2004-08-10 08:34  jackson
23243
23244         * XplatUIDriver.cs: Use default colors from the theme
23245
23246 2004-08-09 17:12  pbartok
23247
23248         * ImageList.cs:
23249           - Fixed several bugs Ravindra pointed out
23250
23251 2004-08-09 16:11  pbartok
23252
23253         * Control.cs:
23254           - Added incomplete dock layout code
23255           - Added support for mouse wheel
23256
23257 2004-08-09 16:09  pbartok
23258
23259         * XplatUIX11.cs:
23260           - Added handling for middle and right mousebutton
23261           - Added handling for mouse wheel
23262           - Added handling for key state and mouse state and position
23263           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
23264           messages
23265
23266 2004-08-09 15:40  jackson
23267
23268         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
23269           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
23270           checkin
23271
23272 2004-08-09 15:37  jackson
23273
23274         * StatusBar.cs: Initial implementation of StatusBar
23275
23276 2004-08-09 15:36  jackson
23277
23278         * ITheme.cs: Add support for drawing status bar and getting status
23279           bar item sizes
23280
23281 2004-08-09 15:35  pbartok
23282
23283         * MouseButtons.cs:
23284           - Fixed values
23285
23286 2004-08-09 15:34  jackson
23287
23288         * ThemeWin32Classic.cs: Add support for drawing status bar and get
23289           status bar item sizes
23290
23291 2004-08-09 15:21  jackson
23292
23293         * ThemeWin32Classic.cs: Use known colors for default control
23294           colours
23295
23296 2004-08-09 15:12  jackson
23297
23298         * ThemeWin32Classic.cs: Make the default font static, it is static
23299           in control so this doesn't change functionality and creating fonts
23300           is sloooooow.
23301
23302 2004-08-09 14:56  pbartok
23303
23304         * X11Structs.cs:
23305           - Added GrabMode enum
23306
23307 2004-08-09 14:55  pbartok
23308
23309         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
23310           - Removed Run method, was only required for initial development
23311
23312 2004-08-09 14:51  pbartok
23313
23314         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
23315           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
23316           capture
23317
23318 2004-08-09 13:48  pbartok
23319
23320         * XplatUIX11.cs:
23321           - Fixed default sizing for child windows
23322
23323 2004-08-09 12:56  pbartok
23324
23325         * XplatUIX11.cs:
23326           - Added generation of WM_DESTROY message
23327           - Added handling of window manager induced shutdown
23328
23329 2004-08-09 11:31  jackson
23330
23331         * ThemeWin32Classic.cs: New names for control properties
23332
23333 2004-08-09 11:25  jackson
23334
23335         * Control.cs: Use new color names
23336
23337 2004-08-09 11:02  jackson
23338
23339         * XplatUI.cs: Get default window properties from the theme
23340
23341 2004-08-09 11:01  jackson
23342
23343         * ITheme.cs: The theme engine now controls default window
23344           properties
23345
23346 2004-08-09 11:00  jackson
23347
23348         * ThemeWin32Classic.cs: Add default window color properties
23349
23350 2004-08-09 10:17  jackson
23351
23352         * ThemeWin32Classic.cs: Use correct default back color
23353
23354 2004-08-09 10:05  jackson
23355
23356         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
23357           the theme now.
23358
23359 2004-08-09 09:56  jackson
23360
23361         * XplatUI.cs: Remove defaults, these are handled by the theme now.
23362
23363 2004-08-09 09:54  jackson
23364
23365         * Control.cs: Get default properties from the theme.
23366
23367 2004-08-09 09:53  jackson
23368
23369         * ITheme.cs: Themes now handle default control properties
23370
23371 2004-08-09 09:53  jackson
23372
23373         * ThemeWin32Classic.cs: Themes now handle default control
23374           properties so coloring will be consistent
23375
23376 2004-08-08 16:54  jordi
23377
23378         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
23379
23380 2004-08-08 15:08  jordi
23381
23382         * XplatUIX11.cs: fixes keyboard crash
23383
23384 2004-08-08 13:47  jordi
23385
23386         * Label.cs: add cvs header info
23387
23388 2004-08-08 12:09  jackson
23389
23390         * ThemeWin32Classic.cs: Add pen_buttonface
23391
23392 2004-08-08 11:52  jordi
23393
23394         * Label.cs, LinkLabel.cs: [no log message]
23395
23396 2004-08-08 11:34  jordi
23397
23398         * ThemeWin32Classic.cs: Use Windows Standard Colours
23399
23400 2004-08-07 17:32  jordi
23401
23402         * TrackBar.cs: throw exceptions of invalid enums values
23403
23404 2004-08-07 17:31  jordi
23405
23406         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
23407           draw method name
23408
23409 2004-08-07 16:56  jackson
23410
23411         * HorizontalAlignment.cs: Initial checkin
23412
23413 2004-08-07 13:16  jordi
23414
23415         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
23416           methods
23417
23418 2004-08-07 13:05  jordi
23419
23420         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
23421           GetSysColor defines
23422
23423 2004-08-06 18:01  pbartok
23424
23425         * ThemeWin32Classic.cs:
23426           - Fixed some rounding issues with float/int
23427
23428 2004-08-06 18:00  jackson
23429
23430         * DockStyle.cs, AnchorStyles.cs:
23431
23432                   Add flags and serializable attributes.
23433
23434 2004-08-06 17:46  pbartok
23435
23436         * XplatUIX11.cs:
23437           - Implemented GetParent
23438
23439 2004-08-06 17:18  pbartok
23440
23441         * TrackBar.cs:
23442           - Fixed some rounding issues with float/int
23443
23444 2004-08-06 17:17  pbartok
23445
23446         * X11Structs.cs, XplatUIX11.cs:
23447           - Fixed Refresh and Invalidate
23448
23449 2004-08-06 15:30  pbartok
23450
23451         * Control.cs, X11Structs.cs, XplatUIX11.cs:
23452           - Fixed recursive loop when resizing
23453           - Improved/fixed redrawing on expose messages
23454
23455 2004-08-06 09:53  jordi
23456
23457         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
23458           keyboard navigation
23459
23460 2004-08-06 08:02  pbartok
23461
23462         * X11Structs.cs, XplatUIX11.cs:
23463           - Fixed reparenting
23464           - Fixed window border creation
23465
23466 2004-08-05 15:38  pbartok
23467
23468         * XplatUIX11.cs:
23469           - Attempted fix for reparenting problems
23470
23471 2004-08-04 15:14  pbartok
23472
23473         * Control.cs:
23474           - Fixed Invalidation bug (calculated wrong client area)
23475           - Added ClientSize setter
23476
23477 2004-08-04 15:13  pbartok
23478
23479         * Form.cs:
23480           - Added AutoScale properties
23481
23482 2004-08-04 15:13  pbartok
23483
23484         * SWF.csproj:
23485           - Added latest files
23486
23487 2004-08-04 14:11  pbartok
23488
23489         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
23490           XplatUIX11.cs:
23491           - Added Invalidate handling
23492
23493 2004-08-03 17:09  jordi
23494
23495         * XplatUIDriver.cs: fixes spelling mistake
23496
23497 2004-07-27 09:53  jordi
23498
23499         * TrackBar.cs: fixes trackbar events, def classname, methods
23500           signature
23501
23502 2004-07-27 09:29  jordi
23503
23504         * ScrollBar.cs: fixes scrollbar events
23505
23506 2004-07-27 04:38  jordi
23507
23508         * Control.cs: changes to be able to run winforms samples
23509
23510 2004-07-26 11:42  jordi
23511
23512         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
23513           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
23514
23515 2004-07-26 05:41  jordi
23516
23517         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
23518           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
23519           implementation
23520
23521 2004-07-22 09:22  jordi
23522
23523         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
23524           check link overlapping, implement events, and fixes
23525
23526 2004-07-21 10:28  jordi
23527
23528         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
23529
23530 2004-07-21 10:19  jordi
23531
23532         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
23533           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
23534           LinkLabelLinkClickedEventArgs.cs,
23535           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
23536           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
23537           implementation
23538
23539 2004-07-19 13:09  jordi
23540
23541         * Control.cs, Label.cs: label control re-written: added missing
23542           functionlity, events, and properties
23543
23544 2004-07-19 10:49  jordi
23545
23546         * Control.cs: fixes SetBounds logic
23547
23548 2004-07-19 01:29  jordi
23549
23550         * Control.cs: Call RefreshWindow only if the window has created
23551
23552 2004-07-15 14:05  pbartok
23553
23554         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
23555           - Implemented ImageList and ImageList.ImageCollection classes
23556           - Added ColorDepth enumeration
23557           - Updated SWF VS.Net project
23558
23559 2004-07-15 11:06  jordi
23560
23561         * XplatUIStructs.cs: added MsgButons enum
23562
23563 2004-07-15 11:03  jordi
23564
23565         * Control.cs: added basic mouse handeling events
23566
23567 2004-07-15 03:38  jordi
23568
23569         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
23570           Vertical TrackBar control implementation
23571
23572 2004-07-13 09:33  jordi
23573
23574         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
23575
23576 2004-07-13 09:31  jordi
23577
23578         * Control.cs, Form.cs: commit: new properties and fixes form size
23579           problems
23580
23581 2004-07-09 14:13  miguel
23582
23583         * ProgressBar.cs: Spelling
23584
23585 2004-07-09 11:25  pbartok
23586
23587         * ProgressBar.cs:
23588           - Removed usage of Rectangle for drawing. Miguel pointed out it's
23589           faster
23590
23591 2004-07-09 11:17  miguel
23592
23593         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
23594
23595                 * ProgressBar.cs: Fixed spelling for `block'
23596
23597                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
23598                 style guidelines.
23599
23600                 Avoid using the += on rect.X, that exposed a bug in the compiler.
23601
23602 2004-07-08 23:21  pbartok
23603
23604         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
23605           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
23606           BaseCollection.cs, Binding.cs, BindingContext.cs,
23607           BindingMemberInfo.cs, BindingsCollection.cs,
23608           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
23609           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
23610           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
23611           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
23612           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
23613           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
23614           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
23615           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
23616           FrameStyle.cs, GiveFeedbackEventArgs.cs,
23617           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
23618           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
23619           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
23620           InputLanguageChangedEventArgs.cs,
23621           InputLanguageChangedEventHandler.cs,
23622           InputLanguageChangingEventArgs.cs,
23623           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
23624           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
23625           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
23626           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
23627           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
23628           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
23629           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
23630           QueryAccessibilityHelpEventArgs.cs,
23631           QueryAccessibilityHelpEventHandler.cs,
23632           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
23633           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
23634           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
23635           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
23636           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
23637           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
23638           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
23639           XplatUIX11.cs, lang.cs:
23640           - Initial check-in
23641